Chromium Code Reviews| 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..a0134ed043abc5803ee72ae4ca26ce52ca23de36 100644 |
| --- a/core/fxge/include/fx_font.h |
| +++ b/core/fxge/include/fx_font.h |
| @@ -19,7 +19,8 @@ typedef struct FT_FaceRec_* FXFT_Face; |
| typedef void* FXFT_Library; |
| class CFX_FaceCache; |
| -class CFX_FontCache; |
| +class CFX_FontCacheItem; |
| +class CFX_GlyphBitmap; |
| class CFX_PathData; |
| class CFX_SizeGlyphCache; |
| @@ -112,7 +113,6 @@ class CFX_Font { |
| } |
| #endif // PDF_ENABLE_XFA |
| - CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width = 0); |
| int GetGlyphWidth(uint32_t glyph_index); |
| int GetAscent() const; |
| int GetDescent() const; |
| @@ -141,6 +141,9 @@ class CFX_Font { |
| uint32_t GetSize() const { return m_dwSize; } |
| void AdjustMMParams(int glyph_index, int width, int weight); |
| + const CFX_FontCacheItem* GetFontCache() const { return m_FontCache.get(); } |
|
dsinclair
2016/09/14 17:51:51
This isn't really a cache as it's always just one
snake
2016/09/14 19:06:29
I did remove m_FontCache member, now CFX_Font tran
|
| + CFX_FaceCache* GetFaceCache() const; |
| + |
| static const size_t kAngleSkewArraySize = 30; |
| static const char s_AngleSkew[kAngleSkewArraySize]; |
| static const size_t kWeightPowArraySize = 100; |
| @@ -156,10 +159,18 @@ class CFX_Font { |
| #endif // PDF_ENABLE_XFA |
| private: |
| + friend class CFX_FaceCache; |
| + CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width = 0); |
|
dsinclair
2016/09/14 17:51:51
Why not leave this public then we don't need the f
snake
2016/09/14 19:06:29
This method is not using cache, for cleanly any ca
|
| + |
| + private: |
| void ReleasePlatformResource(); |
| void DeleteFace(); |
| + void ClearFaceCache(); |
| + |
| FXFT_Face m_Face; |
| + mutable CFX_FaceCache* m_FaceCache; |
|
dsinclair
2016/09/14 17:51:51
Why mutable?
What is the ownership of this? If it
snake
2016/09/14 19:06:29
It is initialized on demand in GetFaceCache() cons
|
| + std::unique_ptr<CFX_FontCacheItem> m_FontCache; |
| std::unique_ptr<CFX_SubstFont> m_pSubstFont; |
| std::vector<uint8_t> m_pFontDataAllocation; |
| uint8_t* m_pFontData; |
| @@ -172,6 +183,27 @@ class CFX_Font { |
| FX_BOOL m_bVertical; |
| }; |
| +class CFX_FontCacheItem { |
| + public: |
| + explicit CFX_FontCacheItem(CFX_Font* font); |
| + ~CFX_FontCacheItem(); |
| + |
| + 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 |
| + |
| + private: |
| + CFX_Font* m_Font; |
| +}; |
| + |
| class CFX_FontFaceInfo { |
| public: |
| CFX_FontFaceInfo(CFX_ByteString filePath, |
| @@ -189,12 +221,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; |