| Index: core/fxge/include/fx_font.h
|
| diff --git a/core/fxge/include/fx_font.h b/core/fxge/include/fx_font.h
|
| index 9a976c44b77bd10ebde7156fdee4f77a107e3cc1..00c9d6f55970cd233461e0a08068a54fe964e7b8 100644
|
| --- a/core/fxge/include/fx_font.h
|
| +++ b/core/fxge/include/fx_font.h
|
| @@ -19,7 +19,7 @@ typedef struct FT_FaceRec_* FXFT_Face;
|
| typedef void* FXFT_Library;
|
|
|
| class CFX_FaceCache;
|
| -class CFX_FontCache;
|
| +class CFX_GlyphBitmap;
|
| class CFX_PathData;
|
| class CFX_SizeGlyphCache;
|
|
|
| @@ -106,13 +106,24 @@ class CFX_Font {
|
| int* pFaceCount = nullptr);
|
|
|
| FX_BOOL LoadClone(const CFX_Font* pFont);
|
| - void SetFace(FXFT_Face face) { m_Face = face; }
|
| + void SetFace(FXFT_Face face);
|
| void SetSubstFont(std::unique_ptr<CFX_SubstFont> subst) {
|
| m_pSubstFont = std::move(subst);
|
| }
|
| #endif // PDF_ENABLE_XFA
|
|
|
| - CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width = 0);
|
| + const CFX_GlyphBitmap* LoadGlyphBitmap(uint32_t glyph_index,
|
| + FX_BOOL bFontStyle,
|
| + const CFX_Matrix* pMatrix,
|
| + int dest_width,
|
| + int anti_alias,
|
| + int& text_flags) const;
|
| + const CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width) const;
|
| +
|
| +#ifdef _SKIA_SUPPORT_
|
| + CFX_TypeFace* GetDeviceCache() const;
|
| +#endif
|
| +
|
| int GetGlyphWidth(uint32_t glyph_index);
|
| int GetAscent() const;
|
| int GetDescent() const;
|
| @@ -139,7 +150,7 @@ class CFX_Font {
|
| #endif
|
| uint8_t* GetFontData() const { return m_pFontData; }
|
| uint32_t GetSize() const { return m_dwSize; }
|
| - void AdjustMMParams(int glyph_index, int width, int weight);
|
| + void AdjustMMParams(int glyph_index, int width, int weight) const;
|
|
|
| static const size_t kAngleSkewArraySize = 30;
|
| static const char s_AngleSkew[kAngleSkewArraySize];
|
| @@ -156,10 +167,20 @@ class CFX_Font {
|
| #endif // PDF_ENABLE_XFA
|
|
|
| private:
|
| + friend class CFX_FaceCache;
|
| + CFX_PathData* LoadGlyphPathImpl(uint32_t glyph_index,
|
| + int dest_width = 0) const;
|
| +
|
| + private:
|
| + CFX_FaceCache* GetFaceCache() const;
|
| +
|
| void ReleasePlatformResource();
|
| void DeleteFace();
|
|
|
| + void ClearFaceCache();
|
| +
|
| FXFT_Face m_Face;
|
| + mutable CFX_FaceCache* m_FaceCache; // not owned.
|
| std::unique_ptr<CFX_SubstFont> m_pSubstFont;
|
| std::vector<uint8_t> m_pFontDataAllocation;
|
| uint8_t* m_pFontData;
|
| @@ -189,12 +210,6 @@ class CFX_FontFaceInfo {
|
| uint32_t m_Charsets;
|
| };
|
|
|
| -class CFX_CountedFaceCache {
|
| - public:
|
| - CFX_FaceCache* m_Obj;
|
| - uint32_t m_nCount;
|
| -};
|
| -
|
| class CFX_GlyphBitmap {
|
| public:
|
| int m_Top;
|
|
|