23#ifndef OUTLINE_FONT_H_
24#define OUTLINE_FONT_H_
31#include <freetype2/ft2build.h>
91 EMBEDDING_PERMISSION GetEmbeddingPermission()
const;
102 static OUTLINE_FONT* LoadFont(
const wxString& aFontFileName,
bool aBold,
bool aItalic,
103 const std::vector<wxString>* aEmbeddedFiles,
104 bool aForDrawingSheet );
111 double GetInterline(
double aGlyphHeight,
const METRICS& aFontMetrics )
const override;
128 VECTOR2I GetTextAsGlyphs(
BOX2I* aBoundingBox, std::vector<std::unique_ptr<GLYPH>>* aGlyphs,
129 const wxString& aText,
const VECTOR2I& aSize,
133 void GetLinesAsGlyphs( std::vector<std::unique_ptr<GLYPH>>* aGlyphs,
const wxString& aText,
135 const METRICS& aFontMetrics )
const;
156 bool LoadGlyphContours(
unsigned int aGlyphIndex, std::vector<CONTOUR>& aContours )
const;
166 static void SelectCharmap( FT_Face aFace );
169 FT_Error loadFace(
const wxString& aFontFileName,
int aFaceIndex );
173 VECTOR2I getTextAsGlyphs(
BOX2I* aBoundingBox, std::vector<std::unique_ptr<GLYPH>>* aGlyphs,
174 const wxString& aText,
const VECTOR2I& aSize,
180 std::vector<std::unique_ptr<GLYPH>>* aGlyphs,
181 const wxString& aText,
const VECTOR2I& aSize,
183 bool aMirror,
const VECTOR2I& aOrigin,
constexpr BOX2I KiROUND(const BOX2D &aBoxD)
wxString m_fontFileName
Font file name.
Implement outline font drawing.
static std::mutex m_freeTypeMutex
Mutex for freetype access, FT_Library and FT_Face are not thread safe.
double GetSuperSubBaselineOffset(TEXT_STYLE_FLAGS aTextStyle) const override
Return the baseline shift of a superscript or subscript run, as a downwards fraction of the reduced g...
static FT_Library m_freeType
static constexpr double m_superscriptVerticalOffset
bool IsFakeItalic() const
const FT_Face & GetFace() const
int subscriptSize(int aSize) const
bool IsItalic() const override
static constexpr int m_charSizeScaler
int faceSize(int aSize) const
bool IsOutline() const override
std::map< unsigned int, std::vector< std::vector< VECTOR2D > > > m_contourCache
static constexpr double m_subscriptSuperscriptSize
const wxString & GetFileName() const
static constexpr double m_outlineFontSizeCompensation
static constexpr double m_underlineOffsetScaler
double GetSuperSubSizeMultiplier() const override
Return the factor the text size is multiplied by for a superscript or subscript run.
int subscriptSize() const
bool IsBold() const override
static constexpr double m_subscriptVerticalOffset
unsigned int TEXT_STYLE_FLAGS
bool IsSuperscript(TEXT_STYLE_FLAGS aFlags)
bool IsSubscript(TEXT_STYLE_FLAGS aFlags)
VECTOR2< int32_t > VECTOR2I