62 unsigned aSubsetIndex,
bool aBold,
bool aItalic,
63 double aStrokeWidthFactor,
double aAspectRatio );
65 bool Contains( wxUniChar aCode )
const;
148 void EncodeString(
const wxString& aText, std::vector<PDF_STROKE_FONT_RUN>* aRuns,
int aStrokeWidth,
int aFontWidth,
149 int aFontHeight,
bool aBold =
false,
bool aItalic =
false );
153 std::vector<PDF_STROKE_FONT_SUBSET*>
AllSubsets()
const;
157 bool aBold,
bool aItalic );
159 using STYLE_KEY = std::tuple<bool, bool, int, int, int>;
161 static STYLE_KEY styleKey(
bool aBold,
bool aItalic,
int aStrokeWidth,
int aFontWidth,
int aFontHeight );
165 std::vector<std::unique_ptr<PDF_STROKE_FONT_SUBSET>>
subsets;
169 std::unique_ptr<KIFONT::STROKE_FONT>
m_font;
Implement a stroke font drawing.
std::unique_ptr< KIFONT::STROKE_FONT > m_font
unsigned m_nextSubsetIndex
std::map< STYLE_KEY, STYLE_GROUP > m_styleGroups
void EncodeString(const wxString &aText, std::vector< PDF_STROKE_FONT_RUN > *aRuns, int aStrokeWidth, int aFontWidth, int aFontHeight, bool aBold=false, bool aItalic=false)
std::tuple< bool, bool, int, int, int > STYLE_KEY
PDF_STROKE_FONT_SUBSET * ensureSubsetForGlyph(wxUniChar aCode, int aStrokeWidth, int aFontWidth, int aFontHeight, bool aBold, bool aItalic)
std::vector< PDF_STROKE_FONT_SUBSET * > AllSubsets() const
static STYLE_KEY styleKey(bool aBold, bool aItalic, int aStrokeWidth, int aFontWidth, int aFontHeight)
PDF_STROKE_FONT_MANAGER()
const std::string & ResourceName() const
const std::vector< GLYPH > & Glyphs() const
std::string BuildDifferencesArray() const
double FontBBoxMaxY() const
std::string m_resourceName
double FontBBoxMinY() const
const KIFONT::STROKE_FONT * m_font
int EnsureGlyph(wxUniChar aCode)
double UnitsPerEm() const
double FontBBoxMinX() const
int CodeForGlyph(wxUniChar aCode) const
void SetToUnicodeHandle(int aHandle)
int CharProcsHandle() const
std::string BuildWidthsArray() const
double FontBBoxMaxX() const
std::map< wxUniChar, int > m_unicodeToCode
std::string makeGlyphName(int aCode) const
void SetFontHandle(int aHandle)
int ToUnicodeHandle() const
void SetCharProcsHandle(int aHandle)
std::vector< double > m_widths
double m_strokeWidthFactor
const std::vector< double > & Widths() const
std::string BuildToUnicodeCMap() const
bool Contains(wxUniChar aCode) const
PDF_STROKE_FONT_SUBSET(const KIFONT::STROKE_FONT *aFont, double aUnitsPerEm, unsigned aSubsetIndex, bool aBold, bool aItalic, double aStrokeWidthFactor, double aAspectRatio)
std::vector< GLYPH > m_glyphs
const std::string & CMapName() const
const GLYPH * glyphForCode(int aCode) const
std::vector< GLYPH > & Glyphs()
std::string buildGlyphStream(const KIFONT::STROKE_GLYPH *aGlyph) const
int glyphIndexForUnicode(wxUniChar aCode) const
std::vector< std::unique_ptr< PDF_STROKE_FONT_SUBSET > > subsets
PDF_STROKE_FONT_SUBSET * m_subset