| OLD | NEW |
| 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 #include "core/fxcrt/include/fx_system.h" | 7 #include "core/fxcrt/include/fx_system.h" |
| 8 | 8 |
| 9 #if _FX_OS_ == _FX_ANDROID_ | 9 #if _FX_OS_ == _FX_ANDROID_ |
| 10 | 10 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 35 return 0; | 35 return 0; |
| 36 } | 36 } |
| 37 } | 37 } |
| 38 return count; | 38 return count; |
| 39 } | 39 } |
| 40 static void FPF_SkiaStream_Close(FXFT_Stream stream) {} | 40 static void FPF_SkiaStream_Close(FXFT_Stream stream) {} |
| 41 #ifdef __cplusplus | 41 #ifdef __cplusplus |
| 42 }; | 42 }; |
| 43 #endif | 43 #endif |
| 44 struct FPF_SKIAFONTMAP { | 44 struct FPF_SKIAFONTMAP { |
| 45 FX_DWORD dwFamily; | 45 uint32_t dwFamily; |
| 46 FX_DWORD dwSubSt; | 46 uint32_t dwSubSt; |
| 47 }; | 47 }; |
| 48 static const FPF_SKIAFONTMAP g_SkiaFontmap[] = { | 48 static const FPF_SKIAFONTMAP g_SkiaFontmap[] = { |
| 49 {0x58c5083, 0xc8d2e345}, {0x5dfade2, 0xe1633081}, | 49 {0x58c5083, 0xc8d2e345}, {0x5dfade2, 0xe1633081}, |
| 50 {0x684317d, 0xe1633081}, {0x14ee2d13, 0xc8d2e345}, | 50 {0x684317d, 0xe1633081}, {0x14ee2d13, 0xc8d2e345}, |
| 51 {0x3918fe2d, 0xbbeeec72}, {0x3b98b31c, 0xe1633081}, | 51 {0x3918fe2d, 0xbbeeec72}, {0x3b98b31c, 0xe1633081}, |
| 52 {0x3d49f40e, 0xe1633081}, {0x432c41c5, 0xe1633081}, | 52 {0x3d49f40e, 0xe1633081}, {0x432c41c5, 0xe1633081}, |
| 53 {0x491b6ad0, 0xe1633081}, {0x5612cab1, 0x59b9f8f1}, | 53 {0x491b6ad0, 0xe1633081}, {0x5612cab1, 0x59b9f8f1}, |
| 54 {0x779ce19d, 0xc8d2e345}, {0x7cc9510b, 0x59b9f8f1}, | 54 {0x779ce19d, 0xc8d2e345}, {0x7cc9510b, 0x59b9f8f1}, |
| 55 {0x83746053, 0xbbeeec72}, {0xaaa60c03, 0xbbeeec72}, | 55 {0x83746053, 0xbbeeec72}, {0xaaa60c03, 0xbbeeec72}, |
| 56 {0xbf85ff26, 0xe1633081}, {0xc04fe601, 0xbbeeec72}, | 56 {0xbf85ff26, 0xe1633081}, {0xc04fe601, 0xbbeeec72}, |
| 57 {0xca3812d5, 0x59b9f8f1}, {0xca383e15, 0x59b9f8f1}, | 57 {0xca3812d5, 0x59b9f8f1}, {0xca383e15, 0x59b9f8f1}, |
| 58 {0xcad5eaf6, 0x59b9f8f1}, {0xcb7a04c8, 0xc8d2e345}, | 58 {0xcad5eaf6, 0x59b9f8f1}, {0xcb7a04c8, 0xc8d2e345}, |
| 59 {0xfb4ce0de, 0xe1633081}, | 59 {0xfb4ce0de, 0xe1633081}, |
| 60 }; | 60 }; |
| 61 FX_DWORD FPF_SkiaGetSubstFont(FX_DWORD dwHash) { | 61 uint32_t FPF_SkiaGetSubstFont(uint32_t dwHash) { |
| 62 int32_t iStart = 0; | 62 int32_t iStart = 0; |
| 63 int32_t iEnd = sizeof(g_SkiaFontmap) / sizeof(FPF_SKIAFONTMAP); | 63 int32_t iEnd = sizeof(g_SkiaFontmap) / sizeof(FPF_SKIAFONTMAP); |
| 64 while (iStart <= iEnd) { | 64 while (iStart <= iEnd) { |
| 65 int32_t iMid = (iStart + iEnd) / 2; | 65 int32_t iMid = (iStart + iEnd) / 2; |
| 66 const FPF_SKIAFONTMAP* pItem = &g_SkiaFontmap[iMid]; | 66 const FPF_SKIAFONTMAP* pItem = &g_SkiaFontmap[iMid]; |
| 67 if (dwHash < pItem->dwFamily) { | 67 if (dwHash < pItem->dwFamily) { |
| 68 iEnd = iMid - 1; | 68 iEnd = iMid - 1; |
| 69 } else if (dwHash > pItem->dwFamily) { | 69 } else if (dwHash > pItem->dwFamily) { |
| 70 iStart = iMid + 1; | 70 iStart = iMid + 1; |
| 71 } else { | 71 } else { |
| 72 return pItem->dwSubSt; | 72 return pItem->dwSubSt; |
| 73 } | 73 } |
| 74 } | 74 } |
| 75 return 0; | 75 return 0; |
| 76 } | 76 } |
| 77 static const FPF_SKIAFONTMAP g_SkiaSansFontMap[] = { | 77 static const FPF_SKIAFONTMAP g_SkiaSansFontMap[] = { |
| 78 {0x58c5083, 0xd5b8d10f}, {0x14ee2d13, 0xd5b8d10f}, | 78 {0x58c5083, 0xd5b8d10f}, {0x14ee2d13, 0xd5b8d10f}, |
| 79 {0x779ce19d, 0xd5b8d10f}, {0xcb7a04c8, 0xd5b8d10f}, | 79 {0x779ce19d, 0xd5b8d10f}, {0xcb7a04c8, 0xd5b8d10f}, |
| 80 {0xfb4ce0de, 0xd5b8d10f}, | 80 {0xfb4ce0de, 0xd5b8d10f}, |
| 81 }; | 81 }; |
| 82 FX_DWORD FPF_SkiaGetSansFont(FX_DWORD dwHash) { | 82 uint32_t FPF_SkiaGetSansFont(uint32_t dwHash) { |
| 83 int32_t iStart = 0; | 83 int32_t iStart = 0; |
| 84 int32_t iEnd = sizeof(g_SkiaSansFontMap) / sizeof(FPF_SKIAFONTMAP); | 84 int32_t iEnd = sizeof(g_SkiaSansFontMap) / sizeof(FPF_SKIAFONTMAP); |
| 85 while (iStart <= iEnd) { | 85 while (iStart <= iEnd) { |
| 86 int32_t iMid = (iStart + iEnd) / 2; | 86 int32_t iMid = (iStart + iEnd) / 2; |
| 87 const FPF_SKIAFONTMAP* pItem = &g_SkiaSansFontMap[iMid]; | 87 const FPF_SKIAFONTMAP* pItem = &g_SkiaSansFontMap[iMid]; |
| 88 if (dwHash < pItem->dwFamily) { | 88 if (dwHash < pItem->dwFamily) { |
| 89 iEnd = iMid - 1; | 89 iEnd = iMid - 1; |
| 90 } else if (dwHash > pItem->dwFamily) { | 90 } else if (dwHash > pItem->dwFamily) { |
| 91 iStart = iMid + 1; | 91 iStart = iMid + 1; |
| 92 } else { | 92 } else { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 131 FPF_SKIACHARSET_Vietnamese = 1 << 10, | 131 FPF_SKIACHARSET_Vietnamese = 1 << 10, |
| 132 FPF_SKIACHARSET_Hebrew = 1 << 11, | 132 FPF_SKIACHARSET_Hebrew = 1 << 11, |
| 133 FPF_SKIACHARSET_Arabic = 1 << 12, | 133 FPF_SKIACHARSET_Arabic = 1 << 12, |
| 134 FPF_SKIACHARSET_Baltic = 1 << 13, | 134 FPF_SKIACHARSET_Baltic = 1 << 13, |
| 135 FPF_SKIACHARSET_Cyrillic = 1 << 14, | 135 FPF_SKIACHARSET_Cyrillic = 1 << 14, |
| 136 FPF_SKIACHARSET_Thai = 1 << 15, | 136 FPF_SKIACHARSET_Thai = 1 << 15, |
| 137 FPF_SKIACHARSET_EeasternEuropean = 1 << 16, | 137 FPF_SKIACHARSET_EeasternEuropean = 1 << 16, |
| 138 FPF_SKIACHARSET_PC = 1 << 17, | 138 FPF_SKIACHARSET_PC = 1 << 17, |
| 139 FPF_SKIACHARSET_OEM = 1 << 18, | 139 FPF_SKIACHARSET_OEM = 1 << 18, |
| 140 }; | 140 }; |
| 141 static FX_DWORD FPF_SkiaGetCharset(uint8_t uCharset) { | 141 static uint32_t FPF_SkiaGetCharset(uint8_t uCharset) { |
| 142 switch (uCharset) { | 142 switch (uCharset) { |
| 143 case FXFONT_ANSI_CHARSET: | 143 case FXFONT_ANSI_CHARSET: |
| 144 return FPF_SKIACHARSET_Ansi; | 144 return FPF_SKIACHARSET_Ansi; |
| 145 case FXFONT_DEFAULT_CHARSET: | 145 case FXFONT_DEFAULT_CHARSET: |
| 146 return FPF_SKIACHARSET_Default; | 146 return FPF_SKIACHARSET_Default; |
| 147 case FXFONT_SYMBOL_CHARSET: | 147 case FXFONT_SYMBOL_CHARSET: |
| 148 return FPF_SKIACHARSET_Symbol; | 148 return FPF_SKIACHARSET_Symbol; |
| 149 case FXFONT_SHIFTJIS_CHARSET: | 149 case FXFONT_SHIFTJIS_CHARSET: |
| 150 return FPF_SKIACHARSET_ShiftJIS; | 150 return FPF_SKIACHARSET_ShiftJIS; |
| 151 case FXFONT_HANGEUL_CHARSET: | 151 case FXFONT_HANGEUL_CHARSET: |
| (...skipping 14 matching lines...) Expand all Loading... |
| 166 return FPF_SKIACHARSET_Baltic; | 166 return FPF_SKIACHARSET_Baltic; |
| 167 case FXFONT_RUSSIAN_CHARSET: | 167 case FXFONT_RUSSIAN_CHARSET: |
| 168 return FPF_SKIACHARSET_Cyrillic; | 168 return FPF_SKIACHARSET_Cyrillic; |
| 169 case FXFONT_THAI_CHARSET: | 169 case FXFONT_THAI_CHARSET: |
| 170 return FPF_SKIACHARSET_Thai; | 170 return FPF_SKIACHARSET_Thai; |
| 171 case FXFONT_EASTEUROPE_CHARSET: | 171 case FXFONT_EASTEUROPE_CHARSET: |
| 172 return FPF_SKIACHARSET_EeasternEuropean; | 172 return FPF_SKIACHARSET_EeasternEuropean; |
| 173 } | 173 } |
| 174 return FPF_SKIACHARSET_Default; | 174 return FPF_SKIACHARSET_Default; |
| 175 } | 175 } |
| 176 static FX_DWORD FPF_SKIANormalizeFontName(const CFX_ByteStringC& bsfamily) { | 176 static uint32_t FPF_SKIANormalizeFontName(const CFX_ByteStringC& bsfamily) { |
| 177 FX_DWORD dwHash = 0; | 177 uint32_t dwHash = 0; |
| 178 int32_t iLength = bsfamily.GetLength(); | 178 int32_t iLength = bsfamily.GetLength(); |
| 179 const FX_CHAR* pBuffer = bsfamily.GetCStr(); | 179 const FX_CHAR* pBuffer = bsfamily.GetCStr(); |
| 180 for (int32_t i = 0; i < iLength; i++) { | 180 for (int32_t i = 0; i < iLength; i++) { |
| 181 FX_CHAR ch = pBuffer[i]; | 181 FX_CHAR ch = pBuffer[i]; |
| 182 if (ch == ' ' || ch == '-' || ch == ',') { | 182 if (ch == ' ' || ch == '-' || ch == ',') { |
| 183 continue; | 183 continue; |
| 184 } | 184 } |
| 185 dwHash = 31 * dwHash + FXSYS_tolower(ch); | 185 dwHash = 31 * dwHash + FXSYS_tolower(ch); |
| 186 } | 186 } |
| 187 return dwHash; | 187 return dwHash; |
| 188 } | 188 } |
| 189 static FX_DWORD FPF_SKIAGetFamilyHash(const CFX_ByteStringC& bsFamily, | 189 static uint32_t FPF_SKIAGetFamilyHash(const CFX_ByteStringC& bsFamily, |
| 190 FX_DWORD dwStyle, | 190 uint32_t dwStyle, |
| 191 uint8_t uCharset) { | 191 uint8_t uCharset) { |
| 192 CFX_ByteString bsFont(bsFamily); | 192 CFX_ByteString bsFont(bsFamily); |
| 193 if (dwStyle & FXFONT_BOLD) { | 193 if (dwStyle & FXFONT_BOLD) { |
| 194 bsFont += "Bold"; | 194 bsFont += "Bold"; |
| 195 } | 195 } |
| 196 if (dwStyle & FXFONT_ITALIC) { | 196 if (dwStyle & FXFONT_ITALIC) { |
| 197 bsFont += "Italic"; | 197 bsFont += "Italic"; |
| 198 } | 198 } |
| 199 if (dwStyle & FXFONT_SERIF) { | 199 if (dwStyle & FXFONT_SERIF) { |
| 200 bsFont += "Serif"; | 200 bsFont += "Serif"; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 245 } | 245 } |
| 246 ScanPath("/system/fonts"); | 246 ScanPath("/system/fonts"); |
| 247 OutputSystemFonts(); | 247 OutputSystemFonts(); |
| 248 m_bLoaded = TRUE; | 248 m_bLoaded = TRUE; |
| 249 } | 249 } |
| 250 void CFPF_SkiaFontMgr::LoadPrivateFont(IFX_FileRead* pFontFile) {} | 250 void CFPF_SkiaFontMgr::LoadPrivateFont(IFX_FileRead* pFontFile) {} |
| 251 void CFPF_SkiaFontMgr::LoadPrivateFont(const CFX_ByteStringC& bsFileName) {} | 251 void CFPF_SkiaFontMgr::LoadPrivateFont(const CFX_ByteStringC& bsFileName) {} |
| 252 void CFPF_SkiaFontMgr::LoadPrivateFont(void* pBuffer, size_t szBuffer) {} | 252 void CFPF_SkiaFontMgr::LoadPrivateFont(void* pBuffer, size_t szBuffer) {} |
| 253 IFPF_Font* CFPF_SkiaFontMgr::CreateFont(const CFX_ByteStringC& bsFamilyname, | 253 IFPF_Font* CFPF_SkiaFontMgr::CreateFont(const CFX_ByteStringC& bsFamilyname, |
| 254 uint8_t uCharset, | 254 uint8_t uCharset, |
| 255 FX_DWORD dwStyle, | 255 uint32_t dwStyle, |
| 256 FX_DWORD dwMatch) { | 256 uint32_t dwMatch) { |
| 257 FX_DWORD dwHash = FPF_SKIAGetFamilyHash(bsFamilyname, dwStyle, uCharset); | 257 uint32_t dwHash = FPF_SKIAGetFamilyHash(bsFamilyname, dwStyle, uCharset); |
| 258 auto it = m_FamilyFonts.find(dwHash); | 258 auto it = m_FamilyFonts.find(dwHash); |
| 259 if (it != m_FamilyFonts.end() && it->second) | 259 if (it != m_FamilyFonts.end() && it->second) |
| 260 return it->second->Retain(); | 260 return it->second->Retain(); |
| 261 | 261 |
| 262 FX_DWORD dwFaceName = FPF_SKIANormalizeFontName(bsFamilyname); | 262 uint32_t dwFaceName = FPF_SKIANormalizeFontName(bsFamilyname); |
| 263 FX_DWORD dwSubst = FPF_SkiaGetSubstFont(dwFaceName); | 263 uint32_t dwSubst = FPF_SkiaGetSubstFont(dwFaceName); |
| 264 FX_DWORD dwSubstSans = FPF_SkiaGetSansFont(dwFaceName); | 264 uint32_t dwSubstSans = FPF_SkiaGetSansFont(dwFaceName); |
| 265 FX_BOOL bMaybeSymbol = FPF_SkiaMaybeSymbol(bsFamilyname); | 265 FX_BOOL bMaybeSymbol = FPF_SkiaMaybeSymbol(bsFamilyname); |
| 266 if (uCharset != FXFONT_ARABIC_CHARSET && FPF_SkiaMaybeArabic(bsFamilyname)) { | 266 if (uCharset != FXFONT_ARABIC_CHARSET && FPF_SkiaMaybeArabic(bsFamilyname)) { |
| 267 uCharset = FXFONT_ARABIC_CHARSET; | 267 uCharset = FXFONT_ARABIC_CHARSET; |
| 268 } else if (uCharset == FXFONT_ANSI_CHARSET && | 268 } else if (uCharset == FXFONT_ANSI_CHARSET && |
| 269 (dwMatch & FPF_MATCHFONT_REPLACEANSI)) { | 269 (dwMatch & FPF_MATCHFONT_REPLACEANSI)) { |
| 270 uCharset = FXFONT_DEFAULT_CHARSET; | 270 uCharset = FXFONT_DEFAULT_CHARSET; |
| 271 } | 271 } |
| 272 int32_t nExpectVal = FPF_SKIAMATCHWEIGHT_NAME1 + FPF_SKIAMATCHWEIGHT_1 * 3 + | 272 int32_t nExpectVal = FPF_SKIAMATCHWEIGHT_NAME1 + FPF_SKIAMATCHWEIGHT_1 * 3 + |
| 273 FPF_SKIAMATCHWEIGHT_2 * 2; | 273 FPF_SKIAMATCHWEIGHT_2 * 2; |
| 274 int32_t nItem = -1; | 274 int32_t nItem = -1; |
| 275 int32_t nMax = -1; | 275 int32_t nMax = -1; |
| 276 int32_t nGlyphNum = 0; | 276 int32_t nGlyphNum = 0; |
| 277 for (auto it = m_FontFaces.rbegin(); it != m_FontFaces.rend(); ++it) { | 277 for (auto it = m_FontFaces.rbegin(); it != m_FontFaces.rend(); ++it) { |
| 278 CFPF_SkiaPathFont* pFontDes = static_cast<CFPF_SkiaPathFont*>(*it); | 278 CFPF_SkiaPathFont* pFontDes = static_cast<CFPF_SkiaPathFont*>(*it); |
| 279 if (!(pFontDes->m_dwCharsets & FPF_SkiaGetCharset(uCharset))) { | 279 if (!(pFontDes->m_dwCharsets & FPF_SkiaGetCharset(uCharset))) { |
| 280 continue; | 280 continue; |
| 281 } | 281 } |
| 282 int32_t nFind = 0; | 282 int32_t nFind = 0; |
| 283 FX_DWORD dwSysFontName = FPF_SKIANormalizeFontName(pFontDes->m_pFamily); | 283 uint32_t dwSysFontName = FPF_SKIANormalizeFontName(pFontDes->m_pFamily); |
| 284 if (dwFaceName == dwSysFontName) { | 284 if (dwFaceName == dwSysFontName) { |
| 285 nFind += FPF_SKIAMATCHWEIGHT_NAME1; | 285 nFind += FPF_SKIAMATCHWEIGHT_NAME1; |
| 286 } | 286 } |
| 287 bool bMatchedName = (nFind == FPF_SKIAMATCHWEIGHT_NAME1); | 287 bool bMatchedName = (nFind == FPF_SKIAMATCHWEIGHT_NAME1); |
| 288 if ((dwStyle & FXFONT_BOLD) == (pFontDes->m_dwStyle & FXFONT_BOLD)) { | 288 if ((dwStyle & FXFONT_BOLD) == (pFontDes->m_dwStyle & FXFONT_BOLD)) { |
| 289 nFind += FPF_SKIAMATCHWEIGHT_1; | 289 nFind += FPF_SKIAMATCHWEIGHT_1; |
| 290 } | 290 } |
| 291 if ((dwStyle & FXFONT_ITALIC) == (pFontDes->m_dwStyle & FXFONT_ITALIC)) { | 291 if ((dwStyle & FXFONT_ITALIC) == (pFontDes->m_dwStyle & FXFONT_ITALIC)) { |
| 292 nFind += FPF_SKIAMATCHWEIGHT_1; | 292 nFind += FPF_SKIAMATCHWEIGHT_1; |
| 293 } | 293 } |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 433 void CFPF_SkiaFontMgr::ScanFile(const CFX_ByteStringC& file) { | 433 void CFPF_SkiaFontMgr::ScanFile(const CFX_ByteStringC& file) { |
| 434 FXFT_Face face = GetFontFace(file); | 434 FXFT_Face face = GetFontFace(file); |
| 435 if (face) { | 435 if (face) { |
| 436 CFPF_SkiaPathFont* pFontDesc = new CFPF_SkiaPathFont; | 436 CFPF_SkiaPathFont* pFontDesc = new CFPF_SkiaPathFont; |
| 437 pFontDesc->SetPath(file.GetCStr()); | 437 pFontDesc->SetPath(file.GetCStr()); |
| 438 ReportFace(face, pFontDesc); | 438 ReportFace(face, pFontDesc); |
| 439 m_FontFaces.push_back(pFontDesc); | 439 m_FontFaces.push_back(pFontDesc); |
| 440 FXFT_Done_Face(face); | 440 FXFT_Done_Face(face); |
| 441 } | 441 } |
| 442 } | 442 } |
| 443 static const FX_DWORD g_FPFSkiaFontCharsets[] = { | 443 static const uint32_t g_FPFSkiaFontCharsets[] = { |
| 444 FPF_SKIACHARSET_Ansi, | 444 FPF_SKIACHARSET_Ansi, |
| 445 FPF_SKIACHARSET_EeasternEuropean, | 445 FPF_SKIACHARSET_EeasternEuropean, |
| 446 FPF_SKIACHARSET_Cyrillic, | 446 FPF_SKIACHARSET_Cyrillic, |
| 447 FPF_SKIACHARSET_Greek, | 447 FPF_SKIACHARSET_Greek, |
| 448 FPF_SKIACHARSET_Turkish, | 448 FPF_SKIACHARSET_Turkish, |
| 449 FPF_SKIACHARSET_Hebrew, | 449 FPF_SKIACHARSET_Hebrew, |
| 450 FPF_SKIACHARSET_Arabic, | 450 FPF_SKIACHARSET_Arabic, |
| 451 FPF_SKIACHARSET_Baltic, | 451 FPF_SKIACHARSET_Baltic, |
| 452 0, | 452 0, |
| 453 0, | 453 0, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 467 0, | 467 0, |
| 468 0, | 468 0, |
| 469 0, | 469 0, |
| 470 0, | 470 0, |
| 471 0, | 471 0, |
| 472 0, | 472 0, |
| 473 0, | 473 0, |
| 474 FPF_SKIACHARSET_OEM, | 474 FPF_SKIACHARSET_OEM, |
| 475 FPF_SKIACHARSET_Symbol, | 475 FPF_SKIACHARSET_Symbol, |
| 476 }; | 476 }; |
| 477 static FX_DWORD FPF_SkiaGetFaceCharset(TT_OS2* pOS2) { | 477 static uint32_t FPF_SkiaGetFaceCharset(TT_OS2* pOS2) { |
| 478 FX_DWORD dwCharset = 0; | 478 uint32_t dwCharset = 0; |
| 479 if (pOS2) { | 479 if (pOS2) { |
| 480 for (int32_t i = 0; i < 32; i++) { | 480 for (int32_t i = 0; i < 32; i++) { |
| 481 if (pOS2->ulCodePageRange1 & (1 << i)) { | 481 if (pOS2->ulCodePageRange1 & (1 << i)) { |
| 482 dwCharset |= g_FPFSkiaFontCharsets[i]; | 482 dwCharset |= g_FPFSkiaFontCharsets[i]; |
| 483 } | 483 } |
| 484 } | 484 } |
| 485 } | 485 } |
| 486 dwCharset |= FPF_SKIACHARSET_Default; | 486 dwCharset |= FPF_SKIACHARSET_Default; |
| 487 return dwCharset; | 487 return dwCharset; |
| 488 } | 488 } |
| (...skipping 26 matching lines...) Expand all Loading... |
| 515 } | 515 } |
| 516 if (pOS2 && (pOS2->ulCodePageRange1 & (1 << 31))) { | 516 if (pOS2 && (pOS2->ulCodePageRange1 & (1 << 31))) { |
| 517 pFontDesc->m_dwStyle |= FXFONT_SYMBOLIC; | 517 pFontDesc->m_dwStyle |= FXFONT_SYMBOLIC; |
| 518 } | 518 } |
| 519 pFontDesc->m_dwCharsets = FPF_SkiaGetFaceCharset(pOS2); | 519 pFontDesc->m_dwCharsets = FPF_SkiaGetFaceCharset(pOS2); |
| 520 pFontDesc->m_iFaceIndex = face->face_index; | 520 pFontDesc->m_iFaceIndex = face->face_index; |
| 521 pFontDesc->m_iGlyphNum = face->num_glyphs; | 521 pFontDesc->m_iGlyphNum = face->num_glyphs; |
| 522 } | 522 } |
| 523 void CFPF_SkiaFontMgr::OutputSystemFonts() {} | 523 void CFPF_SkiaFontMgr::OutputSystemFonts() {} |
| 524 #endif | 524 #endif |
| OLD | NEW |