Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(417)

Side by Side Diff: core/include/fxge/fx_font.h

Issue 1832173003: Remove FX_DWORD from core/ and delete definition (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/include/fxge/fx_dib.h ('k') | core/include/fxge/fx_ge.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #ifndef CORE_INCLUDE_FXGE_FX_FONT_H_ 7 #ifndef CORE_INCLUDE_FXGE_FX_FONT_H_
8 #define CORE_INCLUDE_FXGE_FX_FONT_H_ 8 #define CORE_INCLUDE_FXGE_FX_FONT_H_
9 9
10 #include <map> 10 #include <map>
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 #define FXFONT_FW_NORMAL 400 59 #define FXFONT_FW_NORMAL 400
60 #define FXFONT_FW_BOLD 700 60 #define FXFONT_FW_BOLD 700
61 61
62 class CFX_Font { 62 class CFX_Font {
63 public: 63 public:
64 CFX_Font(); 64 CFX_Font();
65 ~CFX_Font(); 65 ~CFX_Font();
66 66
67 void LoadSubst(const CFX_ByteString& face_name, 67 void LoadSubst(const CFX_ByteString& face_name,
68 FX_BOOL bTrueType, 68 FX_BOOL bTrueType,
69 FX_DWORD flags, 69 uint32_t flags,
70 int weight, 70 int weight,
71 int italic_angle, 71 int italic_angle,
72 int CharsetCP, 72 int CharsetCP,
73 FX_BOOL bVertical = FALSE); 73 FX_BOOL bVertical = FALSE);
74 FX_BOOL LoadEmbedded(const uint8_t* data, FX_DWORD size); 74 FX_BOOL LoadEmbedded(const uint8_t* data, uint32_t size);
75 FXFT_Face GetFace() const { return m_Face; } 75 FXFT_Face GetFace() const { return m_Face; }
76 76
77 #ifdef PDF_ENABLE_XFA 77 #ifdef PDF_ENABLE_XFA
78 FX_BOOL LoadFile(IFX_FileRead* pFile, 78 FX_BOOL LoadFile(IFX_FileRead* pFile,
79 int nFaceIndex = 0, 79 int nFaceIndex = 0,
80 int* pFaceCount = NULL); 80 int* pFaceCount = NULL);
81 81
82 FX_BOOL LoadClone(const CFX_Font* pFont); 82 FX_BOOL LoadClone(const CFX_Font* pFont);
83 CFX_SubstFont* GetSubstFont() const { return m_pSubstFont; } 83 CFX_SubstFont* GetSubstFont() const { return m_pSubstFont; }
84 void SetFace(FXFT_Face face) { m_Face = face; } 84 void SetFace(FXFT_Face face) { m_Face = face; }
85 void SetSubstFont(CFX_SubstFont* subst) { m_pSubstFont = subst; } 85 void SetSubstFont(CFX_SubstFont* subst) { m_pSubstFont = subst; }
86 #else // PDF_ENABLE_XFA 86 #else // PDF_ENABLE_XFA
87 const CFX_SubstFont* GetSubstFont() const { return m_pSubstFont; } 87 const CFX_SubstFont* GetSubstFont() const { return m_pSubstFont; }
88 #endif // PDF_ENABLE_XFA 88 #endif // PDF_ENABLE_XFA
89 89
90 CFX_PathData* LoadGlyphPath(FX_DWORD glyph_index, int dest_width = 0); 90 CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width = 0);
91 int GetGlyphWidth(FX_DWORD glyph_index); 91 int GetGlyphWidth(uint32_t glyph_index);
92 int GetAscent() const; 92 int GetAscent() const;
93 int GetDescent() const; 93 int GetDescent() const;
94 FX_BOOL GetGlyphBBox(FX_DWORD glyph_index, FX_RECT& bbox); 94 FX_BOOL GetGlyphBBox(uint32_t glyph_index, FX_RECT& bbox);
95 FX_BOOL IsItalic() const; 95 FX_BOOL IsItalic() const;
96 FX_BOOL IsBold() const; 96 FX_BOOL IsBold() const;
97 FX_BOOL IsFixedWidth() const; 97 FX_BOOL IsFixedWidth() const;
98 FX_BOOL IsVertical() const { return m_bVertical; } 98 FX_BOOL IsVertical() const { return m_bVertical; }
99 CFX_WideString GetPsName() const; 99 CFX_WideString GetPsName() const;
100 CFX_ByteString GetFamilyName() const; 100 CFX_ByteString GetFamilyName() const;
101 CFX_ByteString GetFaceName() const; 101 CFX_ByteString GetFaceName() const;
102 FX_BOOL IsTTFont() const; 102 FX_BOOL IsTTFont() const;
103 FX_BOOL GetBBox(FX_RECT& bbox); 103 FX_BOOL GetBBox(FX_RECT& bbox);
104 int GetHeight() const; 104 int GetHeight() const;
105 int GetULPos() const; 105 int GetULPos() const;
106 int GetULthickness() const; 106 int GetULthickness() const;
107 int GetMaxAdvanceWidth() const; 107 int GetMaxAdvanceWidth() const;
108 FX_BOOL IsEmbedded() const { return m_bEmbedded; } 108 FX_BOOL IsEmbedded() const { return m_bEmbedded; }
109 uint8_t* GetSubData() const { return m_pGsubData; } 109 uint8_t* GetSubData() const { return m_pGsubData; }
110 void SetSubData(uint8_t* data) { m_pGsubData = data; } 110 void SetSubData(uint8_t* data) { m_pGsubData = data; }
111 void* GetPlatformFont() const { return m_pPlatformFont; } 111 void* GetPlatformFont() const { return m_pPlatformFont; }
112 void SetPlatformFont(void* font) { m_pPlatformFont = font; } 112 void SetPlatformFont(void* font) { m_pPlatformFont = font; }
113 uint8_t* GetFontData() const { return m_pFontData; } 113 uint8_t* GetFontData() const { return m_pFontData; }
114 FX_DWORD GetSize() const { return m_dwSize; } 114 uint32_t GetSize() const { return m_dwSize; }
115 void AdjustMMParams(int glyph_index, int width, int weight); 115 void AdjustMMParams(int glyph_index, int width, int weight);
116 116
117 private: 117 private:
118 void ReleasePlatformResource(); 118 void ReleasePlatformResource();
119 void DeleteFace(); 119 void DeleteFace();
120 120
121 FXFT_Face m_Face; 121 FXFT_Face m_Face;
122 CFX_SubstFont* m_pSubstFont; 122 CFX_SubstFont* m_pSubstFont;
123 uint8_t* m_pFontDataAllocation; 123 uint8_t* m_pFontDataAllocation;
124 uint8_t* m_pFontData; 124 uint8_t* m_pFontData;
125 uint8_t* m_pGsubData; 125 uint8_t* m_pGsubData;
126 FX_DWORD m_dwSize; 126 uint32_t m_dwSize;
127 CFX_BinaryBuf m_OtfFontData; 127 CFX_BinaryBuf m_OtfFontData;
128 void* m_hHandle; 128 void* m_hHandle;
129 void* m_pPlatformFont; 129 void* m_pPlatformFont;
130 void* m_pPlatformFontCollection; 130 void* m_pPlatformFontCollection;
131 void* m_pDwFont; 131 void* m_pDwFont;
132 FX_BOOL m_bDwLoaded; 132 FX_BOOL m_bDwLoaded;
133 FX_BOOL m_bEmbedded; 133 FX_BOOL m_bEmbedded;
134 FX_BOOL m_bVertical; 134 FX_BOOL m_bVertical;
135 135
136 #ifdef PDF_ENABLE_XFA 136 #ifdef PDF_ENABLE_XFA
137 137
138 protected: 138 protected:
139 FX_BOOL m_bLogic; 139 FX_BOOL m_bLogic;
140 void* m_pOwnedStream; 140 void* m_pOwnedStream;
141 141
142 #endif // PDF_ENABLE_XFA 142 #endif // PDF_ENABLE_XFA
143 }; 143 };
144 144
145 #define ENCODING_INTERNAL 0 145 #define ENCODING_INTERNAL 0
146 #define ENCODING_UNICODE 1 146 #define ENCODING_UNICODE 1
147 147
148 #ifdef PDF_ENABLE_XFA 148 #ifdef PDF_ENABLE_XFA
149 #define FXFM_ENC_TAG(a, b, c, d) \ 149 #define FXFM_ENC_TAG(a, b, c, d) \
150 (((FX_DWORD)(a) << 24) | ((FX_DWORD)(b) << 16) | ((FX_DWORD)(c) << 8) | \ 150 (((uint32_t)(a) << 24) | ((uint32_t)(b) << 16) | ((uint32_t)(c) << 8) | \
151 (FX_DWORD)(d)) 151 (uint32_t)(d))
152 #define FXFM_ENCODING_NONE FXFM_ENC_TAG(0, 0, 0, 0) 152 #define FXFM_ENCODING_NONE FXFM_ENC_TAG(0, 0, 0, 0)
153 #define FXFM_ENCODING_MS_SYMBOL FXFM_ENC_TAG('s', 'y', 'm', 'b') 153 #define FXFM_ENCODING_MS_SYMBOL FXFM_ENC_TAG('s', 'y', 'm', 'b')
154 #define FXFM_ENCODING_UNICODE FXFM_ENC_TAG('u', 'n', 'i', 'c') 154 #define FXFM_ENCODING_UNICODE FXFM_ENC_TAG('u', 'n', 'i', 'c')
155 #define FXFM_ENCODING_MS_SJIS FXFM_ENC_TAG('s', 'j', 'i', 's') 155 #define FXFM_ENCODING_MS_SJIS FXFM_ENC_TAG('s', 'j', 'i', 's')
156 #define FXFM_ENCODING_MS_GB2312 FXFM_ENC_TAG('g', 'b', ' ', ' ') 156 #define FXFM_ENCODING_MS_GB2312 FXFM_ENC_TAG('g', 'b', ' ', ' ')
157 #define FXFM_ENCODING_MS_BIG5 FXFM_ENC_TAG('b', 'i', 'g', '5') 157 #define FXFM_ENCODING_MS_BIG5 FXFM_ENC_TAG('b', 'i', 'g', '5')
158 #define FXFM_ENCODING_MS_WANSUNG FXFM_ENC_TAG('w', 'a', 'n', 's') 158 #define FXFM_ENCODING_MS_WANSUNG FXFM_ENC_TAG('w', 'a', 'n', 's')
159 #define FXFM_ENCODING_MS_JOHAB FXFM_ENC_TAG('j', 'o', 'h', 'a') 159 #define FXFM_ENCODING_MS_JOHAB FXFM_ENC_TAG('j', 'o', 'h', 'a')
160 #define FXFM_ENCODING_ADOBE_STANDARD FXFM_ENC_TAG('A', 'D', 'O', 'B') 160 #define FXFM_ENCODING_ADOBE_STANDARD FXFM_ENC_TAG('A', 'D', 'O', 'B')
161 #define FXFM_ENCODING_ADOBE_EXPERT FXFM_ENC_TAG('A', 'D', 'B', 'E') 161 #define FXFM_ENCODING_ADOBE_EXPERT FXFM_ENC_TAG('A', 'D', 'B', 'E')
162 #define FXFM_ENCODING_ADOBE_CUSTOM FXFM_ENC_TAG('A', 'D', 'B', 'C') 162 #define FXFM_ENCODING_ADOBE_CUSTOM FXFM_ENC_TAG('A', 'D', 'B', 'C')
163 #define FXFM_ENCODING_ADOBE_LATIN_1 FXFM_ENC_TAG('l', 'a', 't', '1') 163 #define FXFM_ENCODING_ADOBE_LATIN_1 FXFM_ENC_TAG('l', 'a', 't', '1')
164 #define FXFM_ENCODING_OLD_LATIN_2 FXFM_ENC_TAG('l', 'a', 't', '2') 164 #define FXFM_ENCODING_OLD_LATIN_2 FXFM_ENC_TAG('l', 'a', 't', '2')
165 #define FXFM_ENCODING_APPLE_ROMAN FXFM_ENC_TAG('a', 'r', 'm', 'n') 165 #define FXFM_ENCODING_APPLE_ROMAN FXFM_ENC_TAG('a', 'r', 'm', 'n')
166 #endif // PDF_ENABLE_XFA 166 #endif // PDF_ENABLE_XFA
167 167
168 class CFX_UnicodeEncoding { 168 class CFX_UnicodeEncoding {
169 public: 169 public:
170 explicit CFX_UnicodeEncoding(CFX_Font* pFont); 170 explicit CFX_UnicodeEncoding(CFX_Font* pFont);
171 virtual ~CFX_UnicodeEncoding(); 171 virtual ~CFX_UnicodeEncoding();
172 172
173 virtual FX_DWORD GlyphFromCharCode(FX_DWORD charcode); 173 virtual uint32_t GlyphFromCharCode(uint32_t charcode);
174 174
175 protected: 175 protected:
176 // Unowned, not nullptr. 176 // Unowned, not nullptr.
177 CFX_Font* m_pFont; 177 CFX_Font* m_pFont;
178 }; 178 };
179 179
180 #ifdef PDF_ENABLE_XFA 180 #ifdef PDF_ENABLE_XFA
181 class CFX_UnicodeEncodingEx : public CFX_UnicodeEncoding { 181 class CFX_UnicodeEncodingEx : public CFX_UnicodeEncoding {
182 public: 182 public:
183 CFX_UnicodeEncodingEx(CFX_Font* pFont, FX_DWORD EncodingID); 183 CFX_UnicodeEncodingEx(CFX_Font* pFont, uint32_t EncodingID);
184 ~CFX_UnicodeEncodingEx() override; 184 ~CFX_UnicodeEncodingEx() override;
185 185
186 // CFX_UnicodeEncoding: 186 // CFX_UnicodeEncoding:
187 FX_DWORD GlyphFromCharCode(FX_DWORD charcode) override; 187 uint32_t GlyphFromCharCode(uint32_t charcode) override;
188 188
189 FX_DWORD CharCodeFromUnicode(FX_WCHAR Unicode) const; 189 uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const;
190 190
191 private: 191 private:
192 FX_DWORD m_nEncodingID; 192 uint32_t m_nEncodingID;
193 }; 193 };
194 CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx( 194 CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx(
195 CFX_Font* pFont, 195 CFX_Font* pFont,
196 FX_DWORD nEncodingID = FXFM_ENCODING_NONE); 196 uint32_t nEncodingID = FXFM_ENCODING_NONE);
197 #endif // PDF_ENABLE_XFA 197 #endif // PDF_ENABLE_XFA
198 198
199 #define FXFONT_SUBST_MM 0x01 199 #define FXFONT_SUBST_MM 0x01
200 #define FXFONT_SUBST_GLYPHPATH 0x04 200 #define FXFONT_SUBST_GLYPHPATH 0x04
201 #define FXFONT_SUBST_CLEARTYPE 0x08 201 #define FXFONT_SUBST_CLEARTYPE 0x08
202 #define FXFONT_SUBST_TRANSFORM 0x10 202 #define FXFONT_SUBST_TRANSFORM 0x10
203 #define FXFONT_SUBST_NONSYMBOL 0x20 203 #define FXFONT_SUBST_NONSYMBOL 0x20
204 #define FXFONT_SUBST_EXACT 0x40 204 #define FXFONT_SUBST_EXACT 0x40
205 #define FXFONT_SUBST_STANDARD 0x80 205 #define FXFONT_SUBST_STANDARD 0x80
206 206
207 class CFX_SubstFont { 207 class CFX_SubstFont {
208 public: 208 public:
209 CFX_SubstFont(); 209 CFX_SubstFont();
210 210
211 void* m_ExtHandle; 211 void* m_ExtHandle;
212 212
213 CFX_ByteString m_Family; 213 CFX_ByteString m_Family;
214 214
215 int m_Charset; 215 int m_Charset;
216 216
217 FX_DWORD m_SubstFlags; 217 uint32_t m_SubstFlags;
218 218
219 int m_Weight; 219 int m_Weight;
220 220
221 int m_ItalicAngle; 221 int m_ItalicAngle;
222 222
223 FX_BOOL m_bSubstOfCJK; 223 FX_BOOL m_bSubstOfCJK;
224 224
225 int m_WeightCJK; 225 int m_WeightCJK;
226 226
227 FX_BOOL m_bItlicCJK; 227 FX_BOOL m_bItlicCJK;
(...skipping 14 matching lines...) Expand all
242 void InitFTLibrary(); 242 void InitFTLibrary();
243 243
244 FXFT_Face GetCachedFace(const CFX_ByteString& face_name, 244 FXFT_Face GetCachedFace(const CFX_ByteString& face_name,
245 int weight, 245 int weight,
246 FX_BOOL bItalic, 246 FX_BOOL bItalic,
247 uint8_t*& pFontData); 247 uint8_t*& pFontData);
248 FXFT_Face AddCachedFace(const CFX_ByteString& face_name, 248 FXFT_Face AddCachedFace(const CFX_ByteString& face_name,
249 int weight, 249 int weight,
250 FX_BOOL bItalic, 250 FX_BOOL bItalic,
251 uint8_t* pData, 251 uint8_t* pData,
252 FX_DWORD size, 252 uint32_t size,
253 int face_index); 253 int face_index);
254 FXFT_Face GetCachedTTCFace(int ttc_size, 254 FXFT_Face GetCachedTTCFace(int ttc_size,
255 FX_DWORD checksum, 255 uint32_t checksum,
256 int font_offset, 256 int font_offset,
257 uint8_t*& pFontData); 257 uint8_t*& pFontData);
258 FXFT_Face AddCachedTTCFace(int ttc_size, 258 FXFT_Face AddCachedTTCFace(int ttc_size,
259 FX_DWORD checksum, 259 uint32_t checksum,
260 uint8_t* pData, 260 uint8_t* pData,
261 FX_DWORD size, 261 uint32_t size,
262 int font_offset); 262 int font_offset);
263 FXFT_Face GetFileFace(const FX_CHAR* filename, int face_index); 263 FXFT_Face GetFileFace(const FX_CHAR* filename, int face_index);
264 FXFT_Face GetFixedFace(const uint8_t* pData, FX_DWORD size, int face_index); 264 FXFT_Face GetFixedFace(const uint8_t* pData, uint32_t size, int face_index);
265 void ReleaseFace(FXFT_Face face); 265 void ReleaseFace(FXFT_Face face);
266 void SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo); 266 void SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo);
267 FXFT_Face FindSubstFont(const CFX_ByteString& face_name, 267 FXFT_Face FindSubstFont(const CFX_ByteString& face_name,
268 FX_BOOL bTrueType, 268 FX_BOOL bTrueType,
269 FX_DWORD flags, 269 uint32_t flags,
270 int weight, 270 int weight,
271 int italic_angle, 271 int italic_angle,
272 int CharsetCP, 272 int CharsetCP,
273 CFX_SubstFont* pSubstFont); 273 CFX_SubstFont* pSubstFont);
274 bool GetBuiltinFont(size_t index, const uint8_t** pFontData, FX_DWORD* size); 274 bool GetBuiltinFont(size_t index, const uint8_t** pFontData, uint32_t* size);
275 CFX_FontMapper* GetBuiltinMapper() const { return m_pBuiltinMapper.get(); } 275 CFX_FontMapper* GetBuiltinMapper() const { return m_pBuiltinMapper.get(); }
276 FXFT_Library GetFTLibrary() const { return m_FTLibrary; } 276 FXFT_Library GetFTLibrary() const { return m_FTLibrary; }
277 277
278 private: 278 private:
279 std::unique_ptr<CFX_FontMapper> m_pBuiltinMapper; 279 std::unique_ptr<CFX_FontMapper> m_pBuiltinMapper;
280 std::map<CFX_ByteString, CTTFontDesc*> m_FaceMap; 280 std::map<CFX_ByteString, CTTFontDesc*> m_FaceMap;
281 FXFT_Library m_FTLibrary; 281 FXFT_Library m_FTLibrary;
282 }; 282 };
283 283
284 class IFX_FontEnumerator { 284 class IFX_FontEnumerator {
(...skipping 24 matching lines...) Expand all
309 IFX_SystemFontInfo* GetSystemFontInfo() { return m_pFontInfo; } 309 IFX_SystemFontInfo* GetSystemFontInfo() { return m_pFontInfo; }
310 void AddInstalledFont(const CFX_ByteString& name, int charset); 310 void AddInstalledFont(const CFX_ByteString& name, int charset);
311 void LoadInstalledFonts(); 311 void LoadInstalledFonts();
312 std::vector<CFX_ByteString> m_InstalledTTFonts; 312 std::vector<CFX_ByteString> m_InstalledTTFonts;
313 void SetFontEnumerator(IFX_FontEnumerator* pFontEnumerator) { 313 void SetFontEnumerator(IFX_FontEnumerator* pFontEnumerator) {
314 m_pFontEnumerator = pFontEnumerator; 314 m_pFontEnumerator = pFontEnumerator;
315 } 315 }
316 IFX_FontEnumerator* GetFontEnumerator() const { return m_pFontEnumerator; } 316 IFX_FontEnumerator* GetFontEnumerator() const { return m_pFontEnumerator; }
317 FXFT_Face FindSubstFont(const CFX_ByteString& face_name, 317 FXFT_Face FindSubstFont(const CFX_ByteString& face_name,
318 FX_BOOL bTrueType, 318 FX_BOOL bTrueType,
319 FX_DWORD flags, 319 uint32_t flags,
320 int weight, 320 int weight,
321 int italic_angle, 321 int italic_angle,
322 int CharsetCP, 322 int CharsetCP,
323 CFX_SubstFont* pSubstFont); 323 CFX_SubstFont* pSubstFont);
324 #ifdef PDF_ENABLE_XFA 324 #ifdef PDF_ENABLE_XFA
325 FXFT_Face FindSubstFontByUnicode(FX_DWORD dwUnicode, 325 FXFT_Face FindSubstFontByUnicode(uint32_t dwUnicode,
326 FX_DWORD flags, 326 uint32_t flags,
327 int weight, 327 int weight,
328 int italic_angle); 328 int italic_angle);
329 #endif // PDF_ENABLE_XFA 329 #endif // PDF_ENABLE_XFA
330 FX_BOOL IsBuiltinFace(const FXFT_Face face) const; 330 FX_BOOL IsBuiltinFace(const FXFT_Face face) const;
331 int GetFaceSize() const; 331 int GetFaceSize() const;
332 CFX_ByteString GetFaceName(int index) const { return m_FaceArray[index]; } 332 CFX_ByteString GetFaceName(int index) const { return m_FaceArray[index]; }
333 333
334 private: 334 private:
335 static const size_t MM_FACE_COUNT = 2; 335 static const size_t MM_FACE_COUNT = 2;
336 static const size_t FOXIT_FACE_COUNT = 14; 336 static const size_t FOXIT_FACE_COUNT = 14;
337 337
338 CFX_ByteString GetPSNameFromTT(void* hFont); 338 CFX_ByteString GetPSNameFromTT(void* hFont);
339 CFX_ByteString MatchInstalledFonts(const CFX_ByteString& norm_name); 339 CFX_ByteString MatchInstalledFonts(const CFX_ByteString& norm_name);
340 FXFT_Face UseInternalSubst(CFX_SubstFont* pSubstFont, 340 FXFT_Face UseInternalSubst(CFX_SubstFont* pSubstFont,
341 int iBaseFont, 341 int iBaseFont,
342 int italic_angle, 342 int italic_angle,
343 int weight, 343 int weight,
344 int picthfamily); 344 int picthfamily);
345 345
346 FX_BOOL m_bListLoaded; 346 FX_BOOL m_bListLoaded;
347 FXFT_Face m_MMFaces[MM_FACE_COUNT]; 347 FXFT_Face m_MMFaces[MM_FACE_COUNT];
348 CFX_ByteString m_LastFamily; 348 CFX_ByteString m_LastFamily;
349 CFX_ArrayTemplate<FX_DWORD> m_CharsetArray; 349 CFX_ArrayTemplate<uint32_t> m_CharsetArray;
350 std::vector<CFX_ByteString> m_FaceArray; 350 std::vector<CFX_ByteString> m_FaceArray;
351 IFX_SystemFontInfo* m_pFontInfo; 351 IFX_SystemFontInfo* m_pFontInfo;
352 FXFT_Face m_FoxitFaces[FOXIT_FACE_COUNT]; 352 FXFT_Face m_FoxitFaces[FOXIT_FACE_COUNT];
353 IFX_FontEnumerator* m_pFontEnumerator; 353 IFX_FontEnumerator* m_pFontEnumerator;
354 CFX_FontMgr* const m_pFontMgr; 354 CFX_FontMgr* const m_pFontMgr;
355 }; 355 };
356 356
357 class IFX_SystemFontInfo { 357 class IFX_SystemFontInfo {
358 public: 358 public:
359 static IFX_SystemFontInfo* CreateDefault(const char** pUserPaths); 359 static IFX_SystemFontInfo* CreateDefault(const char** pUserPaths);
360 virtual void Release() = 0; 360 virtual void Release() = 0;
361 361
362 virtual FX_BOOL EnumFontList(CFX_FontMapper* pMapper) = 0; 362 virtual FX_BOOL EnumFontList(CFX_FontMapper* pMapper) = 0;
363 virtual void* MapFont(int weight, 363 virtual void* MapFont(int weight,
364 FX_BOOL bItalic, 364 FX_BOOL bItalic,
365 int charset, 365 int charset,
366 int pitch_family, 366 int pitch_family,
367 const FX_CHAR* face, 367 const FX_CHAR* face,
368 int& iExact) = 0; 368 int& iExact) = 0;
369 369
370 #ifdef PDF_ENABLE_XFA 370 #ifdef PDF_ENABLE_XFA
371 virtual void* MapFontByUnicode(FX_DWORD dwUnicode, 371 virtual void* MapFontByUnicode(uint32_t dwUnicode,
372 int weight, 372 int weight,
373 FX_BOOL bItalic, 373 FX_BOOL bItalic,
374 int pitch_family); 374 int pitch_family);
375 #endif // PDF_ENABLE_XFA 375 #endif // PDF_ENABLE_XFA
376 376
377 virtual void* GetFont(const FX_CHAR* face) = 0; 377 virtual void* GetFont(const FX_CHAR* face) = 0;
378 virtual FX_DWORD GetFontData(void* hFont, 378 virtual uint32_t GetFontData(void* hFont,
379 FX_DWORD table, 379 uint32_t table,
380 uint8_t* buffer, 380 uint8_t* buffer,
381 FX_DWORD size) = 0; 381 uint32_t size) = 0;
382 virtual FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) = 0; 382 virtual FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) = 0;
383 virtual FX_BOOL GetFontCharset(void* hFont, int& charset) = 0; 383 virtual FX_BOOL GetFontCharset(void* hFont, int& charset) = 0;
384 virtual int GetFaceIndex(void* hFont); 384 virtual int GetFaceIndex(void* hFont);
385 virtual void DeleteFont(void* hFont) = 0; 385 virtual void DeleteFont(void* hFont) = 0;
386 virtual void* RetainFont(void* hFont); 386 virtual void* RetainFont(void* hFont);
387 387
388 protected: 388 protected:
389 virtual ~IFX_SystemFontInfo() {} 389 virtual ~IFX_SystemFontInfo() {}
390 }; 390 };
391 391
392 class CFX_FolderFontInfo : public IFX_SystemFontInfo { 392 class CFX_FolderFontInfo : public IFX_SystemFontInfo {
393 public: 393 public:
394 CFX_FolderFontInfo(); 394 CFX_FolderFontInfo();
395 ~CFX_FolderFontInfo() override; 395 ~CFX_FolderFontInfo() override;
396 void AddPath(const CFX_ByteStringC& path); 396 void AddPath(const CFX_ByteStringC& path);
397 397
398 // IFX_SytemFontInfo: 398 // IFX_SytemFontInfo:
399 void Release() override; 399 void Release() override;
400 FX_BOOL EnumFontList(CFX_FontMapper* pMapper) override; 400 FX_BOOL EnumFontList(CFX_FontMapper* pMapper) override;
401 void* MapFont(int weight, 401 void* MapFont(int weight,
402 FX_BOOL bItalic, 402 FX_BOOL bItalic,
403 int charset, 403 int charset,
404 int pitch_family, 404 int pitch_family,
405 const FX_CHAR* face, 405 const FX_CHAR* face,
406 int& bExact) override; 406 int& bExact) override;
407 #ifdef PDF_ENABLE_XFA 407 #ifdef PDF_ENABLE_XFA
408 void* MapFontByUnicode(FX_DWORD dwUnicode, 408 void* MapFontByUnicode(uint32_t dwUnicode,
409 int weight, 409 int weight,
410 FX_BOOL bItalic, 410 FX_BOOL bItalic,
411 int pitch_family) override; 411 int pitch_family) override;
412 #endif // PDF_ENABLE_XFA 412 #endif // PDF_ENABLE_XFA
413 void* GetFont(const FX_CHAR* face) override; 413 void* GetFont(const FX_CHAR* face) override;
414 FX_DWORD GetFontData(void* hFont, 414 uint32_t GetFontData(void* hFont,
415 FX_DWORD table, 415 uint32_t table,
416 uint8_t* buffer, 416 uint8_t* buffer,
417 FX_DWORD size) override; 417 uint32_t size) override;
418 void DeleteFont(void* hFont) override; 418 void DeleteFont(void* hFont) override;
419 FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) override; 419 FX_BOOL GetFaceName(void* hFont, CFX_ByteString& name) override;
420 FX_BOOL GetFontCharset(void* hFont, int& charset) override; 420 FX_BOOL GetFontCharset(void* hFont, int& charset) override;
421 421
422 protected: 422 protected:
423 void ScanPath(const CFX_ByteString& path); 423 void ScanPath(const CFX_ByteString& path);
424 void ScanFile(const CFX_ByteString& path); 424 void ScanFile(const CFX_ByteString& path);
425 void ReportFace(const CFX_ByteString& path, 425 void ReportFace(const CFX_ByteString& path,
426 FXSYS_FILE* pFile, 426 FXSYS_FILE* pFile,
427 FX_DWORD filesize, 427 uint32_t filesize,
428 FX_DWORD offset); 428 uint32_t offset);
429 void* GetSubstFont(const CFX_ByteString& face); 429 void* GetSubstFont(const CFX_ByteString& face);
430 void* FindFont(int weight, 430 void* FindFont(int weight,
431 FX_BOOL bItalic, 431 FX_BOOL bItalic,
432 int charset, 432 int charset,
433 int pitch_family, 433 int pitch_family,
434 const FX_CHAR* family, 434 const FX_CHAR* family,
435 FX_BOOL bMatchName); 435 FX_BOOL bMatchName);
436 436
437 std::map<CFX_ByteString, CFX_FontFaceInfo*> m_FontList; 437 std::map<CFX_ByteString, CFX_FontFaceInfo*> m_FontList;
438 std::vector<CFX_ByteString> m_PathList; 438 std::vector<CFX_ByteString> m_PathList;
439 CFX_FontMapper* m_pMapper; 439 CFX_FontMapper* m_pMapper;
440 }; 440 };
441 441
442 class CFX_CountedFaceCache { 442 class CFX_CountedFaceCache {
443 public: 443 public:
444 CFX_FaceCache* m_Obj; 444 CFX_FaceCache* m_Obj;
445 FX_DWORD m_nCount; 445 uint32_t m_nCount;
446 }; 446 };
447 447
448 class CFX_FontCache { 448 class CFX_FontCache {
449 public: 449 public:
450 CFX_FontCache(); 450 CFX_FontCache();
451 ~CFX_FontCache(); 451 ~CFX_FontCache();
452 CFX_FaceCache* GetCachedFace(CFX_Font* pFont); 452 CFX_FaceCache* GetCachedFace(CFX_Font* pFont);
453 void ReleaseCachedFace(CFX_Font* pFont); 453 void ReleaseCachedFace(CFX_Font* pFont);
454 void FreeCache(FX_BOOL bRelease = FALSE); 454 void FreeCache(FX_BOOL bRelease = FALSE);
455 455
(...skipping 17 matching lines...) Expand all
473 public: 473 public:
474 int m_Top; 474 int m_Top;
475 int m_Left; 475 int m_Left;
476 CFX_DIBitmap m_Bitmap; 476 CFX_DIBitmap m_Bitmap;
477 }; 477 };
478 class CFX_FaceCache { 478 class CFX_FaceCache {
479 public: 479 public:
480 explicit CFX_FaceCache(FXFT_Face face); 480 explicit CFX_FaceCache(FXFT_Face face);
481 ~CFX_FaceCache(); 481 ~CFX_FaceCache();
482 const CFX_GlyphBitmap* LoadGlyphBitmap(CFX_Font* pFont, 482 const CFX_GlyphBitmap* LoadGlyphBitmap(CFX_Font* pFont,
483 FX_DWORD glyph_index, 483 uint32_t glyph_index,
484 FX_BOOL bFontStyle, 484 FX_BOOL bFontStyle,
485 const CFX_Matrix* pMatrix, 485 const CFX_Matrix* pMatrix,
486 int dest_width, 486 int dest_width,
487 int anti_alias, 487 int anti_alias,
488 int& text_flags); 488 int& text_flags);
489 const CFX_PathData* LoadGlyphPath(CFX_Font* pFont, 489 const CFX_PathData* LoadGlyphPath(CFX_Font* pFont,
490 FX_DWORD glyph_index, 490 uint32_t glyph_index,
491 int dest_width); 491 int dest_width);
492 492
493 private: 493 private:
494 CFX_GlyphBitmap* RenderGlyph(CFX_Font* pFont, 494 CFX_GlyphBitmap* RenderGlyph(CFX_Font* pFont,
495 FX_DWORD glyph_index, 495 uint32_t glyph_index,
496 FX_BOOL bFontStyle, 496 FX_BOOL bFontStyle,
497 const CFX_Matrix* pMatrix, 497 const CFX_Matrix* pMatrix,
498 int dest_width, 498 int dest_width,
499 int anti_alias); 499 int anti_alias);
500 CFX_GlyphBitmap* RenderGlyph_Nativetext(CFX_Font* pFont, 500 CFX_GlyphBitmap* RenderGlyph_Nativetext(CFX_Font* pFont,
501 FX_DWORD glyph_index, 501 uint32_t glyph_index,
502 const CFX_Matrix* pMatrix, 502 const CFX_Matrix* pMatrix,
503 int dest_width, 503 int dest_width,
504 int anti_alias); 504 int anti_alias);
505 CFX_GlyphBitmap* LookUpGlyphBitmap(CFX_Font* pFont, 505 CFX_GlyphBitmap* LookUpGlyphBitmap(CFX_Font* pFont,
506 const CFX_Matrix* pMatrix, 506 const CFX_Matrix* pMatrix,
507 CFX_ByteStringC& FaceGlyphsKey, 507 CFX_ByteStringC& FaceGlyphsKey,
508 FX_DWORD glyph_index, 508 uint32_t glyph_index,
509 FX_BOOL bFontStyle, 509 FX_BOOL bFontStyle,
510 int dest_width, 510 int dest_width,
511 int anti_alias); 511 int anti_alias);
512 void InitPlatform(); 512 void InitPlatform();
513 void DestroyPlatform(); 513 void DestroyPlatform();
514 514
515 FXFT_Face const m_Face; 515 FXFT_Face const m_Face;
516 std::map<CFX_ByteString, CFX_SizeGlyphCache*> m_SizeMap; 516 std::map<CFX_ByteString, CFX_SizeGlyphCache*> m_SizeMap;
517 std::map<FX_DWORD, CFX_PathData*> m_PathMap; 517 std::map<uint32_t, CFX_PathData*> m_PathMap;
518 CFX_DIBitmap* m_pBitmap; 518 CFX_DIBitmap* m_pBitmap;
519 }; 519 };
520 520
521 struct FXTEXT_GLYPHPOS { 521 struct FXTEXT_GLYPHPOS {
522 const CFX_GlyphBitmap* m_pGlyph; 522 const CFX_GlyphBitmap* m_pGlyph;
523 int m_OriginX; 523 int m_OriginX;
524 int m_OriginY; 524 int m_OriginY;
525 FX_FLOAT m_fOriginX; 525 FX_FLOAT m_fOriginX;
526 FX_FLOAT m_fOriginY; 526 FX_FLOAT m_fOriginY;
527 }; 527 };
528 528
529 FX_RECT FXGE_GetGlyphsBBox(FXTEXT_GLYPHPOS* pGlyphAndPos, 529 FX_RECT FXGE_GetGlyphsBBox(FXTEXT_GLYPHPOS* pGlyphAndPos,
530 int nChars, 530 int nChars,
531 int anti_alias, 531 int anti_alias,
532 FX_FLOAT retinaScaleX = 1.0f, 532 FX_FLOAT retinaScaleX = 1.0f,
533 FX_FLOAT retinaScaleY = 1.0f); 533 FX_FLOAT retinaScaleY = 1.0f);
534 534
535 class IFX_GSUBTable { 535 class IFX_GSUBTable {
536 public: 536 public:
537 static IFX_GSUBTable* Create(CFX_Font* pFont); 537 static IFX_GSUBTable* Create(CFX_Font* pFont);
538 virtual FX_BOOL GetVerticalGlyph(FX_DWORD glyphnum, FX_DWORD* vglyphnum) = 0; 538 virtual FX_BOOL GetVerticalGlyph(uint32_t glyphnum, uint32_t* vglyphnum) = 0;
539 539
540 protected: 540 protected:
541 virtual ~IFX_GSUBTable() {} 541 virtual ~IFX_GSUBTable() {}
542 }; 542 };
543 543
544 CFX_ByteString GetNameFromTT(const uint8_t* name_table, 544 CFX_ByteString GetNameFromTT(const uint8_t* name_table,
545 FX_DWORD name_table_size, 545 uint32_t name_table_size,
546 FX_DWORD name); 546 uint32_t name);
547 547
548 int PDF_GetStandardFontName(CFX_ByteString* name); 548 int PDF_GetStandardFontName(CFX_ByteString* name);
549 549
550 #endif // CORE_INCLUDE_FXGE_FX_FONT_H_ 550 #endif // CORE_INCLUDE_FXGE_FX_FONT_H_
OLDNEW
« no previous file with comments | « core/include/fxge/fx_dib.h ('k') | core/include/fxge/fx_ge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698