37#include <unordered_map>
55 size_t operator()(
const pair<sal_UCS4, FontWeight>& rData)
const
85 void AddFallbackForUnicode(
sal_UCS4 cChar,
FontWeight eWeight,
const OUString& rFontName,
87 bool GetFallbackForUnicode(
sal_UCS4 cInChar,
FontWeight eInWeight, OUString* pOutFontName,
88 bool* pOutEmbolden,
ItalicMatrix* pOutItalicMatrix)
const;
89 void IgnoreFallbackForUnicode(
sal_UCS4,
FontWeight eWeight, std::u16string_view rFontName);
91 inline hb_font_t* GetHbFont();
92 bool IsGraphiteFont();
95 bool NeedOffsetCorrection(sal_Int32 nYOffset);
108 sal_GlyphId GetGlyphIndex(uint32_t, uint32_t = 0)
const;
110 double GetGlyphWidth(
sal_GlyphId,
bool =
false,
bool =
true)
const;
112 double GetKashidaWidth()
const;
114 void GetScale(
double* nXScale,
double* nYScale)
const;
116 bool NeedsArtificialItalic()
const;
117 bool NeedsArtificialBold()
const;
123 hb_font_t* InitHbFont();
127 hb_font_t* GetHbFontUntransformed()
const;
143 mutable hb_font_t* m_pHbFontUntransformed =
nullptr;
157 mutable hb_draw_funcs_t* m_pHbDrawFuncs =
nullptr;
constexpr float ARTIFICIAL_ITALIC_MATRIX_XX
constexpr float ARTIFICIAL_ITALIC_MATRIX_XY
constexpr float ARTIFICIAL_ITALIC_SKEW
std::optional< bool > m_xbIsGraphiteFont
const ImplFontCache * GetFontCache() const
vcl::font::PhysicalFontFace * GetFontFace()
const vcl::font::PhysicalFontFace * GetFontFace() const
virtual bool GetGlyphOutline(sal_GlyphId, basegfx::B2DPolyPolygon &, bool) const =0
const vcl::font::FontSelectPattern m_aFontSelData
virtual void ImplInitHbFont(hb_font_t *)
basegfx::B2DPolygon m_aDrawPolygon
ImplFontCache * mpFontCache
FontMetricDataRef mxFontMetric
rtl::Reference< vcl::font::PhysicalFontFace > m_pFontFace
void SetAverageWidthFactor(double nFactor)
Degree10 mnOwnOrientation
const vcl::font::FontSelectPattern & GetFontSelectPattern() const
double GetAverageWidthFactor() const
std::optional< FontFamilyEnum > m_xeFontFamilyEnum
::std::unordered_map<::std::pair< sal_UCS4, FontWeight >, MapEntry > UnicodeFallbackList
UnicodeFallbackList maUnicodeFallbackList
const ConvertChar * mpConversion
abstract base class for physical font faces
#define VCL_PLUGIN_PUBLIC
std::enable_if_t<(sizeof(N)==4)> hash_combine(N &nSeed, T const *pValue, size_t nCount)
ItalicMatrix aItalicMatrix
size_t operator()(const pair< sal_UCS4, FontWeight > &rData) const