OLD | NEW |
| (Empty) |
1 // Copyright 2016 PDFium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | |
6 | |
7 #ifndef CORE_FXGE_INCLUDE_CFX_FONTMGR_H_ | |
8 #define CORE_FXGE_INCLUDE_CFX_FONTMGR_H_ | |
9 | |
10 #include <map> | |
11 #include <memory> | |
12 | |
13 #include "core/fxge/include/fx_font.h" | |
14 | |
15 class IFX_SystemFontInfo; | |
16 class CFX_FontMapper; | |
17 class CFX_SubstFont; | |
18 class CTTFontDesc; | |
19 | |
20 class CFX_FontMgr { | |
21 public: | |
22 CFX_FontMgr(); | |
23 ~CFX_FontMgr(); | |
24 | |
25 void InitFTLibrary(); | |
26 | |
27 FXFT_Face GetCachedFace(const CFX_ByteString& face_name, | |
28 int weight, | |
29 FX_BOOL bItalic, | |
30 uint8_t*& pFontData); | |
31 FXFT_Face AddCachedFace(const CFX_ByteString& face_name, | |
32 int weight, | |
33 FX_BOOL bItalic, | |
34 uint8_t* pData, | |
35 uint32_t size, | |
36 int face_index); | |
37 FXFT_Face GetCachedTTCFace(int ttc_size, | |
38 uint32_t checksum, | |
39 int font_offset, | |
40 uint8_t*& pFontData); | |
41 FXFT_Face AddCachedTTCFace(int ttc_size, | |
42 uint32_t checksum, | |
43 uint8_t* pData, | |
44 uint32_t size, | |
45 int font_offset); | |
46 FXFT_Face GetFileFace(const FX_CHAR* filename, int face_index); | |
47 FXFT_Face GetFixedFace(const uint8_t* pData, uint32_t size, int face_index); | |
48 void ReleaseFace(FXFT_Face face); | |
49 void SetSystemFontInfo(std::unique_ptr<IFX_SystemFontInfo> pFontInfo); | |
50 FXFT_Face FindSubstFont(const CFX_ByteString& face_name, | |
51 FX_BOOL bTrueType, | |
52 uint32_t flags, | |
53 int weight, | |
54 int italic_angle, | |
55 int CharsetCP, | |
56 CFX_SubstFont* pSubstFont); | |
57 bool GetBuiltinFont(size_t index, const uint8_t** pFontData, uint32_t* size); | |
58 CFX_FontMapper* GetBuiltinMapper() const { return m_pBuiltinMapper.get(); } | |
59 FXFT_Library GetFTLibrary() const { return m_FTLibrary; } | |
60 bool FTLibrarySupportsHinting() const { return m_FTLibrarySupportsHinting; } | |
61 | |
62 private: | |
63 std::unique_ptr<CFX_FontMapper> m_pBuiltinMapper; | |
64 std::map<CFX_ByteString, CTTFontDesc*> m_FaceMap; | |
65 FXFT_Library m_FTLibrary; | |
66 bool m_FTLibrarySupportsHinting; | |
67 }; | |
68 | |
69 #endif // CORE_FXGE_INCLUDE_CFX_FONTMGR_H_ | |
OLD | NEW |