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

Side by Side Diff: xfa/fgas/font/fgas_stdfontmgr.cpp

Issue 2467203003: Remove FX_BOOL from xfa. (Closed)
Patch Set: Created 4 years, 1 month 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 | « xfa/fgas/font/fgas_stdfontmgr.h ('k') | xfa/fgas/layout/fgas_rtfbreak.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 2015 PDFium Authors. All rights reserved. 1 // Copyright 2015 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 "xfa/fgas/font/fgas_stdfontmgr.h" 7 #include "xfa/fgas/font/fgas_stdfontmgr.h"
8 8
9 #include "core/fxcrt/fx_stream.h" 9 #include "core/fxcrt/fx_stream.h"
10 #include "core/fxge/cfx_fontmapper.h" 10 #include "core/fxge/cfx_fontmapper.h"
(...skipping 19 matching lines...) Expand all
30 m_UnicodeFonts(16), 30 m_UnicodeFonts(16),
31 m_BufferFonts(4), 31 m_BufferFonts(4),
32 m_StreamFonts(4), 32 m_StreamFonts(4),
33 m_DeriveFonts(4) { 33 m_DeriveFonts(4) {
34 if (m_pEnumerator) { 34 if (m_pEnumerator) {
35 m_pEnumerator(m_FontFaces, nullptr, 0xFEFF); 35 m_pEnumerator(m_FontFaces, nullptr, 0xFEFF);
36 } 36 }
37 } 37 }
38 38
39 CFGAS_StdFontMgrImp::~CFGAS_StdFontMgrImp() { 39 CFGAS_StdFontMgrImp::~CFGAS_StdFontMgrImp() {
40 m_FontFaces.RemoveAll(FALSE); 40 m_FontFaces.RemoveAll(false);
41 m_CPFonts.RemoveAll(); 41 m_CPFonts.RemoveAll();
42 m_FamilyFonts.RemoveAll(); 42 m_FamilyFonts.RemoveAll();
43 m_UnicodeFonts.RemoveAll(); 43 m_UnicodeFonts.RemoveAll();
44 m_BufferFonts.RemoveAll(); 44 m_BufferFonts.RemoveAll();
45 m_StreamFonts.RemoveAll(); 45 m_StreamFonts.RemoveAll();
46 m_DeriveFonts.RemoveAll(); 46 m_DeriveFonts.RemoveAll();
47 for (int32_t i = m_Fonts.GetUpperBound(); i >= 0; i--) 47 for (int32_t i = m_Fonts.GetUpperBound(); i >= 0; i--)
48 m_Fonts[i]->Release(); 48 m_Fonts[i]->Release();
49 } 49 }
50 50
51 CFGAS_GEFont* CFGAS_StdFontMgrImp::GetDefFontByCodePage( 51 CFGAS_GEFont* CFGAS_StdFontMgrImp::GetDefFontByCodePage(
52 uint16_t wCodePage, 52 uint16_t wCodePage,
53 uint32_t dwFontStyles, 53 uint32_t dwFontStyles,
54 const FX_WCHAR* pszFontFamily) { 54 const FX_WCHAR* pszFontFamily) {
55 uint32_t dwHash = FGAS_GetFontHashCode(wCodePage, dwFontStyles); 55 uint32_t dwHash = FGAS_GetFontHashCode(wCodePage, dwFontStyles);
56 CFGAS_GEFont* pFont = nullptr; 56 CFGAS_GEFont* pFont = nullptr;
57 if (m_CPFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) { 57 if (m_CPFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) {
58 return pFont ? LoadFont(pFont, dwFontStyles, wCodePage) : nullptr; 58 return pFont ? LoadFont(pFont, dwFontStyles, wCodePage) : nullptr;
59 } 59 }
60 FX_FONTDESCRIPTOR const* pFD = 60 FX_FONTDESCRIPTOR const* pFD =
61 FindFont(pszFontFamily, dwFontStyles, TRUE, wCodePage); 61 FindFont(pszFontFamily, dwFontStyles, true, wCodePage);
62 if (!pFD) 62 if (!pFD)
63 pFD = FindFont(nullptr, dwFontStyles, TRUE, wCodePage); 63 pFD = FindFont(nullptr, dwFontStyles, true, wCodePage);
64 if (!pFD) 64 if (!pFD)
65 pFD = FindFont(nullptr, dwFontStyles, FALSE, wCodePage); 65 pFD = FindFont(nullptr, dwFontStyles, false, wCodePage);
66 if (!pFD) 66 if (!pFD)
67 return nullptr; 67 return nullptr;
68 68
69 pFont = 69 pFont =
70 CFGAS_GEFont::LoadFont(pFD->wsFontFace, dwFontStyles, wCodePage, this); 70 CFGAS_GEFont::LoadFont(pFD->wsFontFace, dwFontStyles, wCodePage, this);
71 if (pFont) { 71 if (pFont) {
72 m_Fonts.Add(pFont); 72 m_Fonts.Add(pFont);
73 m_CPFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont); 73 m_CPFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont);
74 dwHash = FGAS_GetFontFamilyHash(pFD->wsFontFace, dwFontStyles, wCodePage); 74 dwHash = FGAS_GetFontFamilyHash(pFD->wsFontFace, dwFontStyles, wCodePage);
75 m_FamilyFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont); 75 m_FamilyFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont);
(...skipping 18 matching lines...) Expand all
94 if (pRet->wBitField == 999) 94 if (pRet->wBitField == 999)
95 return nullptr; 95 return nullptr;
96 96
97 uint32_t dwHash = 97 uint32_t dwHash =
98 FGAS_GetFontFamilyHash(pszFontFamily, dwFontStyles, pRet->wBitField); 98 FGAS_GetFontFamilyHash(pszFontFamily, dwFontStyles, pRet->wBitField);
99 CFGAS_GEFont* pFont = nullptr; 99 CFGAS_GEFont* pFont = nullptr;
100 if (m_UnicodeFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) 100 if (m_UnicodeFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont))
101 return pFont ? LoadFont(pFont, dwFontStyles, pRet->wCodePage) : nullptr; 101 return pFont ? LoadFont(pFont, dwFontStyles, pRet->wCodePage) : nullptr;
102 102
103 FX_FONTDESCRIPTOR const* pFD = 103 FX_FONTDESCRIPTOR const* pFD =
104 FindFont(pszFontFamily, dwFontStyles, FALSE, pRet->wCodePage, 104 FindFont(pszFontFamily, dwFontStyles, false, pRet->wCodePage,
105 pRet->wBitField, wUnicode); 105 pRet->wBitField, wUnicode);
106 if (!pFD && pszFontFamily) { 106 if (!pFD && pszFontFamily) {
107 pFD = FindFont(nullptr, dwFontStyles, FALSE, pRet->wCodePage, 107 pFD = FindFont(nullptr, dwFontStyles, false, pRet->wCodePage,
108 pRet->wBitField, wUnicode); 108 pRet->wBitField, wUnicode);
109 } 109 }
110 if (!pFD) 110 if (!pFD)
111 return nullptr; 111 return nullptr;
112 112
113 uint16_t wCodePage = FX_GetCodePageFromCharset(pFD->uCharSet); 113 uint16_t wCodePage = FX_GetCodePageFromCharset(pFD->uCharSet);
114 const FX_WCHAR* pFontFace = pFD->wsFontFace; 114 const FX_WCHAR* pFontFace = pFD->wsFontFace;
115 pFont = CFGAS_GEFont::LoadFont(pFontFace, dwFontStyles, wCodePage, this); 115 pFont = CFGAS_GEFont::LoadFont(pFontFace, dwFontStyles, wCodePage, this);
116 if (pFont) { 116 if (pFont) {
117 m_Fonts.Add(pFont); 117 m_Fonts.Add(pFont);
(...skipping 18 matching lines...) Expand all
136 CFGAS_GEFont* CFGAS_StdFontMgrImp::LoadFont(const FX_WCHAR* pszFontFamily, 136 CFGAS_GEFont* CFGAS_StdFontMgrImp::LoadFont(const FX_WCHAR* pszFontFamily,
137 uint32_t dwFontStyles, 137 uint32_t dwFontStyles,
138 uint16_t wCodePage) { 138 uint16_t wCodePage) {
139 uint32_t dwHash = 139 uint32_t dwHash =
140 FGAS_GetFontFamilyHash(pszFontFamily, dwFontStyles, wCodePage); 140 FGAS_GetFontFamilyHash(pszFontFamily, dwFontStyles, wCodePage);
141 CFGAS_GEFont* pFont = nullptr; 141 CFGAS_GEFont* pFont = nullptr;
142 if (m_FamilyFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) { 142 if (m_FamilyFonts.Lookup((void*)(uintptr_t)dwHash, (void*&)pFont)) {
143 return pFont ? LoadFont(pFont, dwFontStyles, wCodePage) : nullptr; 143 return pFont ? LoadFont(pFont, dwFontStyles, wCodePage) : nullptr;
144 } 144 }
145 FX_FONTDESCRIPTOR const* pFD = 145 FX_FONTDESCRIPTOR const* pFD =
146 FindFont(pszFontFamily, dwFontStyles, TRUE, wCodePage); 146 FindFont(pszFontFamily, dwFontStyles, true, wCodePage);
147 if (!pFD) 147 if (!pFD)
148 pFD = FindFont(pszFontFamily, dwFontStyles, FALSE, wCodePage); 148 pFD = FindFont(pszFontFamily, dwFontStyles, false, wCodePage);
149 if (!pFD) 149 if (!pFD)
150 return nullptr; 150 return nullptr;
151 151
152 if (wCodePage == 0xFFFF) { 152 if (wCodePage == 0xFFFF) {
153 wCodePage = FX_GetCodePageFromCharset(pFD->uCharSet); 153 wCodePage = FX_GetCodePageFromCharset(pFD->uCharSet);
154 } 154 }
155 pFont = 155 pFont =
156 CFGAS_GEFont::LoadFont(pFD->wsFontFace, dwFontStyles, wCodePage, this); 156 CFGAS_GEFont::LoadFont(pFD->wsFontFace, dwFontStyles, wCodePage, this);
157 if (pFont) { 157 if (pFont) {
158 m_Fonts.Add(pFont); 158 m_Fonts.Add(pFont);
(...skipping 20 matching lines...) Expand all
179 m_BufferFonts.SetAt((void*)pBuffer, pFont); 179 m_BufferFonts.SetAt((void*)pBuffer, pFont);
180 return pFont->Retain(); 180 return pFont->Retain();
181 } 181 }
182 return nullptr; 182 return nullptr;
183 } 183 }
184 184
185 CFGAS_GEFont* CFGAS_StdFontMgrImp::LoadFont(IFX_Stream* pFontStream, 185 CFGAS_GEFont* CFGAS_StdFontMgrImp::LoadFont(IFX_Stream* pFontStream,
186 const FX_WCHAR* pszFontAlias, 186 const FX_WCHAR* pszFontAlias,
187 uint32_t dwFontStyles, 187 uint32_t dwFontStyles,
188 uint16_t wCodePage, 188 uint16_t wCodePage,
189 FX_BOOL bSaveStream) { 189 bool bSaveStream) {
190 ASSERT(pFontStream && pFontStream->GetLength() > 0); 190 ASSERT(pFontStream && pFontStream->GetLength() > 0);
191 CFGAS_GEFont* pFont = nullptr; 191 CFGAS_GEFont* pFont = nullptr;
192 if (m_StreamFonts.Lookup((void*)pFontStream, (void*&)pFont)) { 192 if (m_StreamFonts.Lookup((void*)pFontStream, (void*&)pFont)) {
193 if (pFont) { 193 if (pFont) {
194 if (pszFontAlias) { 194 if (pszFontAlias) {
195 uint32_t dwHash = 195 uint32_t dwHash =
196 FGAS_GetFontFamilyHash(pszFontAlias, dwFontStyles, wCodePage); 196 FGAS_GetFontFamilyHash(pszFontAlias, dwFontStyles, wCodePage);
197 m_FamilyFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont); 197 m_FamilyFonts.SetAt((void*)(uintptr_t)dwHash, (void*)pFont);
198 } 198 }
199 return LoadFont(pFont, dwFontStyles, wCodePage); 199 return LoadFont(pFont, dwFontStyles, wCodePage);
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 int index = m_FontFaces.Add(*pDesc); 314 int index = m_FontFaces.Add(*pDesc);
315 return m_FontFaces.GetPtrAt(index); 315 return m_FontFaces.GetPtrAt(index);
316 } 316 }
317 return nullptr; 317 return nullptr;
318 } 318 }
319 319
320 FX_FONTDESCRIPTOR const* FX_DefFontMatcher(FX_LPFONTMATCHPARAMS pParams, 320 FX_FONTDESCRIPTOR const* FX_DefFontMatcher(FX_LPFONTMATCHPARAMS pParams,
321 const CFX_FontDescriptors& fonts) { 321 const CFX_FontDescriptors& fonts) {
322 FX_FONTDESCRIPTOR const* pBestFont = nullptr; 322 FX_FONTDESCRIPTOR const* pBestFont = nullptr;
323 int32_t iBestSimilar = 0; 323 int32_t iBestSimilar = 0;
324 FX_BOOL bMatchStyle = 324 bool bMatchStyle = (pParams->dwMatchFlags & FX_FONTMATCHPARA_MacthStyle) > 0;
325 (pParams->dwMatchFlags & FX_FONTMATCHPARA_MacthStyle) > 0;
326 int32_t iCount = fonts.GetSize(); 325 int32_t iCount = fonts.GetSize();
327 for (int32_t i = 0; i < iCount; ++i) { 326 for (int32_t i = 0; i < iCount; ++i) {
328 FX_FONTDESCRIPTOR const* pFont = fonts.GetPtrAt(i); 327 FX_FONTDESCRIPTOR const* pFont = fonts.GetPtrAt(i);
329 if ((pFont->dwFontStyles & FX_FONTSTYLE_BoldItalic) == 328 if ((pFont->dwFontStyles & FX_FONTSTYLE_BoldItalic) ==
330 FX_FONTSTYLE_BoldItalic) { 329 FX_FONTSTYLE_BoldItalic) {
331 continue; 330 continue;
332 } 331 }
333 if (pParams->pwsFamily) { 332 if (pParams->pwsFamily) {
334 if (FXSYS_wcsicmp(pParams->pwsFamily, pFont->wsFontFace)) { 333 if (FXSYS_wcsicmp(pParams->pwsFamily, pFont->wsFontFace)) {
335 continue; 334 continue;
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
590 m_Hash2Fonts.RemoveAll(); 589 m_Hash2Fonts.RemoveAll();
591 pos = m_IFXFont2FileRead.GetStartPosition(); 590 pos = m_IFXFont2FileRead.GetStartPosition();
592 while (pos) { 591 while (pos) {
593 CFGAS_GEFont* pFont; 592 CFGAS_GEFont* pFont;
594 IFX_SeekableReadStream* pFileRead; 593 IFX_SeekableReadStream* pFileRead;
595 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); 594 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead);
596 pFileRead->Release(); 595 pFileRead->Release();
597 } 596 }
598 } 597 }
599 598
600 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFontMapper() { 599 bool CFGAS_FontMgrImp::EnumFontsFromFontMapper() {
601 CFX_FontMapper* pFontMapper = 600 CFX_FontMapper* pFontMapper =
602 CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper(); 601 CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper();
603 if (!pFontMapper) 602 if (!pFontMapper)
604 return FALSE; 603 return false;
605 604
606 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); 605 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo();
607 if (!pSystemFontInfo) 606 if (!pSystemFontInfo)
608 return FALSE; 607 return false;
609 608
610 pSystemFontInfo->EnumFontList(pFontMapper); 609 pSystemFontInfo->EnumFontList(pFontMapper);
611 for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) { 610 for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) {
612 IFX_SeekableReadStream* pFontStream = 611 IFX_SeekableReadStream* pFontStream =
613 CreateFontStream(pFontMapper, pSystemFontInfo, i); 612 CreateFontStream(pFontMapper, pSystemFontInfo, i);
614 if (!pFontStream) 613 if (!pFontStream)
615 continue; 614 continue;
616 615
617 CFX_WideString wsFaceName = 616 CFX_WideString wsFaceName =
618 CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str()); 617 CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str());
619 RegisterFaces(pFontStream, &wsFaceName); 618 RegisterFaces(pFontStream, &wsFaceName);
620 pFontStream->Release(); 619 pFontStream->Release();
621 } 620 }
622 if (m_InstalledFonts.GetSize() == 0) 621 if (m_InstalledFonts.GetSize() == 0)
623 return FALSE; 622 return false;
624 623
625 return TRUE; 624 return true;
626 } 625 }
627 626
628 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFiles() { 627 bool CFGAS_FontMgrImp::EnumFontsFromFiles() {
629 CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary(); 628 CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary();
630 FX_POSITION pos = m_pFontSource->GetStartPosition(); 629 FX_POSITION pos = m_pFontSource->GetStartPosition();
631 IFX_FileAccess* pFontSource = nullptr; 630 IFX_FileAccess* pFontSource = nullptr;
632 IFX_SeekableReadStream* pFontStream = nullptr; 631 IFX_SeekableReadStream* pFontStream = nullptr;
633 while (pos) { 632 while (pos) {
634 pFontSource = m_pFontSource->GetNext(pos); 633 pFontSource = m_pFontSource->GetNext(pos);
635 pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); 634 pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly);
636 if (!pFontStream) { 635 if (!pFontStream) {
637 pFontSource->Release(); 636 pFontSource->Release();
638 continue; 637 continue;
639 } 638 }
640 RegisterFaces(pFontStream, nullptr); 639 RegisterFaces(pFontStream, nullptr);
641 pFontStream->Release(); 640 pFontStream->Release();
642 pFontSource->Release(); 641 pFontSource->Release();
643 } 642 }
644 if (m_InstalledFonts.GetSize() == 0) 643 if (m_InstalledFonts.GetSize() == 0)
645 return FALSE; 644 return false;
646 return TRUE; 645 return true;
647 } 646 }
648 647
649 FX_BOOL CFGAS_FontMgrImp::EnumFonts() { 648 bool CFGAS_FontMgrImp::EnumFonts() {
650 if (EnumFontsFromFontMapper()) 649 if (EnumFontsFromFontMapper())
651 return TRUE; 650 return true;
652 return EnumFontsFromFiles(); 651 return EnumFontsFromFiles();
653 } 652 }
654 653
655 CFGAS_GEFont* CFGAS_FontMgrImp::GetDefFontByCodePage( 654 CFGAS_GEFont* CFGAS_FontMgrImp::GetDefFontByCodePage(
656 uint16_t wCodePage, 655 uint16_t wCodePage,
657 uint32_t dwFontStyles, 656 uint32_t dwFontStyles,
658 const FX_WCHAR* pszFontFamily) { 657 const FX_WCHAR* pszFontFamily) {
659 return nullptr; 658 return nullptr;
660 } 659 }
661 660
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
774 continue; 773 continue;
775 pFont->SetLogicalFontStyle(dwFontStyles); 774 pFont->SetLogicalFontStyle(dwFontStyles);
776 pFonts->Add(pFont); 775 pFonts->Add(pFont);
777 return pFont; 776 return pFont;
778 } 777 }
779 if (!pszFontFamily) 778 if (!pszFontFamily)
780 m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr); 779 m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr);
781 return nullptr; 780 return nullptr;
782 } 781 }
783 782
784 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc, 783 bool CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc,
785 FX_WCHAR wcUnicode) { 784 FX_WCHAR wcUnicode) {
786 IFX_SeekableReadStream* pFileRead = 785 IFX_SeekableReadStream* pFileRead =
787 CreateFontStream(pDesc->m_wsFaceName.UTF8Encode()); 786 CreateFontStream(pDesc->m_wsFaceName.UTF8Encode());
788 if (!pFileRead) 787 if (!pFileRead)
789 return FALSE; 788 return false;
790 FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex); 789 FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex);
791 FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE); 790 FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE);
792 FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode); 791 FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode);
793 pFileRead->Release(); 792 pFileRead->Release();
794 if (!pFace) 793 if (!pFace)
795 return FALSE; 794 return false;
796 if (FXFT_Get_Face_External_Stream(pFace)) 795 if (FXFT_Get_Face_External_Stream(pFace))
797 FXFT_Clear_Face_External_Stream(pFace); 796 FXFT_Clear_Face_External_Stream(pFace);
798 FXFT_Done_Face(pFace); 797 FXFT_Done_Face(pFace);
799 return !retCharmap && retIndex; 798 return !retCharmap && retIndex;
800 } 799 }
801 800
802 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFGAS_GEFont* pFont, 801 bool CFGAS_FontMgrImp::VerifyUnicode(CFGAS_GEFont* pFont, FX_WCHAR wcUnicode) {
803 FX_WCHAR wcUnicode) {
804 if (!pFont) 802 if (!pFont)
805 return FALSE; 803 return false;
806 804
807 FXFT_Face pFace = pFont->GetDevFont()->GetFace(); 805 FXFT_Face pFace = pFont->GetDevFont()->GetFace();
808 FXFT_CharMap charmap = FXFT_Get_Face_Charmap(pFace); 806 FXFT_CharMap charmap = FXFT_Get_Face_Charmap(pFace);
809 if (FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE) != 0) 807 if (FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE) != 0)
810 return FALSE; 808 return false;
811 809
812 if (FXFT_Get_Char_Index(pFace, wcUnicode) == 0) { 810 if (FXFT_Get_Char_Index(pFace, wcUnicode) == 0) {
813 FXFT_Set_Charmap(pFace, charmap); 811 FXFT_Set_Charmap(pFace, charmap);
814 return FALSE; 812 return false;
815 } 813 }
816 return TRUE; 814 return true;
817 } 815 }
818 816
819 CFGAS_GEFont* CFGAS_FontMgrImp::GetFontByLanguage( 817 CFGAS_GEFont* CFGAS_FontMgrImp::GetFontByLanguage(
820 uint16_t wLanguage, 818 uint16_t wLanguage,
821 uint32_t dwFontStyles, 819 uint32_t dwFontStyles,
822 const FX_WCHAR* pszFontFamily) { 820 const FX_WCHAR* pszFontFamily) {
823 return GetFontByCodePage(FX_GetDefCodePageByLanguage(wLanguage), dwFontStyles, 821 return GetFontByCodePage(FX_GetDefCodePageByLanguage(wLanguage), dwFontStyles,
824 pszFontFamily); 822 pszFontFamily);
825 } 823 }
826 824
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
927 if (!hFont) 925 if (!hFont)
928 return nullptr; 926 return nullptr;
929 927
930 uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0); 928 uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0);
931 if (dwFileSize == 0) 929 if (dwFileSize == 0)
932 return nullptr; 930 return nullptr;
933 931
934 uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1); 932 uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1);
935 dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize); 933 dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize);
936 934
937 return FX_CreateMemoryStream(pBuffer, dwFileSize, TRUE); 935 return FX_CreateMemoryStream(pBuffer, dwFileSize, true);
938 } 936 }
939 937
940 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream( 938 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream(
941 const CFX_ByteString& bsFaceName) { 939 const CFX_ByteString& bsFaceName) {
942 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); 940 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
943 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); 941 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper();
944 942
945 if (!pFontMapper) 943 if (!pFontMapper)
946 return nullptr; 944 return nullptr;
947 945
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
1377 1375
1378 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1, 1376 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1,
1379 const CFX_WideString& Name2) { 1377 const CFX_WideString& Name2) {
1380 if (Name1.Find(Name2.c_str()) != -1) { 1378 if (Name1.Find(Name2.c_str()) != -1) {
1381 return 1; 1379 return 1;
1382 } 1380 }
1383 return 0; 1381 return 0;
1384 } 1382 }
1385 1383
1386 #endif 1384 #endif
OLDNEW
« no previous file with comments | « xfa/fgas/font/fgas_stdfontmgr.h ('k') | xfa/fgas/layout/fgas_rtfbreak.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698