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

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

Issue 2443723002: Rename IFX_ stream names (Closed)
Patch Set: Nits 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/fxfa/app/xfa_checksum.cpp » ('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 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; 584 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts;
585 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); 585 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts);
586 for (int32_t i = 0; i < pFonts->GetSize(); i++) 586 for (int32_t i = 0; i < pFonts->GetSize(); i++)
587 delete pFonts->GetAt(i); 587 delete pFonts->GetAt(i);
588 delete pFonts; 588 delete pFonts;
589 } 589 }
590 m_Hash2Fonts.RemoveAll(); 590 m_Hash2Fonts.RemoveAll();
591 pos = m_IFXFont2FileRead.GetStartPosition(); 591 pos = m_IFXFont2FileRead.GetStartPosition();
592 while (pos) { 592 while (pos) {
593 CFGAS_GEFont* pFont; 593 CFGAS_GEFont* pFont;
594 IFX_FileRead* pFileRead; 594 IFX_SeekableReadStream* pFileRead;
595 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); 595 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead);
596 pFileRead->Release(); 596 pFileRead->Release();
597 } 597 }
598 } 598 }
599 599
600 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFontMapper() { 600 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFontMapper() {
601 CFX_FontMapper* pFontMapper = 601 CFX_FontMapper* pFontMapper =
602 CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper(); 602 CFX_GEModule::Get()->GetFontMgr()->GetBuiltinMapper();
603 if (!pFontMapper) 603 if (!pFontMapper)
604 return FALSE; 604 return FALSE;
605 605
606 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); 606 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo();
607 if (!pSystemFontInfo) 607 if (!pSystemFontInfo)
608 return FALSE; 608 return FALSE;
609 609
610 pSystemFontInfo->EnumFontList(pFontMapper); 610 pSystemFontInfo->EnumFontList(pFontMapper);
611 for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) { 611 for (int32_t i = 0; i < pFontMapper->GetFaceSize(); ++i) {
612 IFX_FileRead* pFontStream = 612 IFX_SeekableReadStream* pFontStream =
613 CreateFontStream(pFontMapper, pSystemFontInfo, i); 613 CreateFontStream(pFontMapper, pSystemFontInfo, i);
614 if (!pFontStream) 614 if (!pFontStream)
615 continue; 615 continue;
616 616
617 CFX_WideString wsFaceName = 617 CFX_WideString wsFaceName =
618 CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str()); 618 CFX_WideString::FromLocal(pFontMapper->GetFaceName(i).c_str());
619 RegisterFaces(pFontStream, &wsFaceName); 619 RegisterFaces(pFontStream, &wsFaceName);
620 pFontStream->Release(); 620 pFontStream->Release();
621 } 621 }
622 if (m_InstalledFonts.GetSize() == 0) 622 if (m_InstalledFonts.GetSize() == 0)
623 return FALSE; 623 return FALSE;
624 624
625 return TRUE; 625 return TRUE;
626 } 626 }
627 627
628 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFiles() { 628 FX_BOOL CFGAS_FontMgrImp::EnumFontsFromFiles() {
629 CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary(); 629 CFX_GEModule::Get()->GetFontMgr()->InitFTLibrary();
630 FX_POSITION pos = m_pFontSource->GetStartPosition(); 630 FX_POSITION pos = m_pFontSource->GetStartPosition();
631 IFX_FileAccess* pFontSource = nullptr; 631 IFX_FileAccess* pFontSource = nullptr;
632 IFX_FileRead* pFontStream = nullptr; 632 IFX_SeekableReadStream* pFontStream = nullptr;
633 while (pos) { 633 while (pos) {
634 pFontSource = m_pFontSource->GetNext(pos); 634 pFontSource = m_pFontSource->GetNext(pos);
635 pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly); 635 pFontStream = pFontSource->CreateFileStream(FX_FILEMODE_ReadOnly);
636 if (!pFontStream) { 636 if (!pFontStream) {
637 pFontSource->Release(); 637 pFontSource->Release();
638 continue; 638 continue;
639 } 639 }
640 RegisterFaces(pFontStream, nullptr); 640 RegisterFaces(pFontStream, nullptr);
641 pFontStream->Release(); 641 pFontStream->Release();
642 pFontSource->Release(); 642 pFontSource->Release();
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
776 pFonts->Add(pFont); 776 pFonts->Add(pFont);
777 return pFont; 777 return pFont;
778 } 778 }
779 if (!pszFontFamily) 779 if (!pszFontFamily)
780 m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr); 780 m_FailedUnicodes2Nullptr.SetAt(wUnicode, nullptr);
781 return nullptr; 781 return nullptr;
782 } 782 }
783 783
784 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc, 784 FX_BOOL CFGAS_FontMgrImp::VerifyUnicode(CFX_FontDescriptor* pDesc,
785 FX_WCHAR wcUnicode) { 785 FX_WCHAR wcUnicode) {
786 IFX_FileRead* pFileRead = CreateFontStream(pDesc->m_wsFaceName.UTF8Encode()); 786 IFX_SeekableReadStream* pFileRead =
787 CreateFontStream(pDesc->m_wsFaceName.UTF8Encode());
787 if (!pFileRead) 788 if (!pFileRead)
788 return FALSE; 789 return FALSE;
789 FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex); 790 FXFT_Face pFace = LoadFace(pFileRead, pDesc->m_nFaceIndex);
790 FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE); 791 FT_Error retCharmap = FXFT_Select_Charmap(pFace, FXFT_ENCODING_UNICODE);
791 FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode); 792 FT_Error retIndex = FXFT_Get_Char_Index(pFace, wcUnicode);
792 pFileRead->Release(); 793 pFileRead->Release();
793 if (!pFace) 794 if (!pFace)
794 return FALSE; 795 return FALSE;
795 if (FXFT_Get_Face_External_Stream(pFace)) 796 if (FXFT_Get_Face_External_Stream(pFace))
796 FXFT_Clear_Face_External_Stream(pFace); 797 FXFT_Clear_Face_External_Stream(pFace);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
828 int32_t* pFaceCount) { 829 int32_t* pFaceCount) {
829 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); 830 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
830 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); 831 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper();
831 if (!pFontMapper) 832 if (!pFontMapper)
832 return nullptr; 833 return nullptr;
833 834
834 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); 835 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo();
835 if (!pSystemFontInfo) 836 if (!pSystemFontInfo)
836 return nullptr; 837 return nullptr;
837 838
838 IFX_FileRead* pFontStream = CreateFontStream(wsFaceName.UTF8Encode()); 839 IFX_SeekableReadStream* pFontStream =
840 CreateFontStream(wsFaceName.UTF8Encode());
839 if (!pFontStream) 841 if (!pFontStream)
840 return nullptr; 842 return nullptr;
841 843
842 std::unique_ptr<CFX_Font> pInternalFont(new CFX_Font()); 844 std::unique_ptr<CFX_Font> pInternalFont(new CFX_Font());
843 if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) { 845 if (!pInternalFont->LoadFile(pFontStream, iFaceIndex)) {
844 pFontStream->Release(); 846 pFontStream->Release();
845 return nullptr; 847 return nullptr;
846 } 848 }
847 849
848 CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(std::move(pInternalFont), this); 850 CFGAS_GEFont* pFont = CFGAS_GEFont::LoadFont(std::move(pInternalFont), this);
(...skipping 11 matching lines...) Expand all
860 862
861 extern "C" { 863 extern "C" {
862 864
863 unsigned long _ftStreamRead(FXFT_Stream stream, 865 unsigned long _ftStreamRead(FXFT_Stream stream,
864 unsigned long offset, 866 unsigned long offset,
865 unsigned char* buffer, 867 unsigned char* buffer,
866 unsigned long count) { 868 unsigned long count) {
867 if (count == 0) 869 if (count == 0)
868 return 0; 870 return 0;
869 871
870 IFX_FileRead* pFile = (IFX_FileRead*)stream->descriptor.pointer; 872 IFX_SeekableReadStream* pFile =
873 (IFX_SeekableReadStream*)stream->descriptor.pointer;
871 int res = pFile->ReadBlock(buffer, offset, count); 874 int res = pFile->ReadBlock(buffer, offset, count);
872 if (res) 875 if (res)
873 return count; 876 return count;
874 return 0; 877 return 0;
875 } 878 }
876 879
877 void _ftStreamClose(FXFT_Stream stream) {} 880 void _ftStreamClose(FXFT_Stream stream) {}
878 881
879 }; // extern "C" 882 }; // extern "C"
880 883
881 FXFT_Face CFGAS_FontMgrImp::LoadFace(IFX_FileRead* pFontStream, 884 FXFT_Face CFGAS_FontMgrImp::LoadFace(IFX_SeekableReadStream* pFontStream,
882 int32_t iFaceIndex) { 885 int32_t iFaceIndex) {
883 if (!pFontStream) 886 if (!pFontStream)
884 return nullptr; 887 return nullptr;
885 888
886 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); 889 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
887 pFontMgr->InitFTLibrary(); 890 pFontMgr->InitFTLibrary();
888 FXFT_Library library = pFontMgr->GetFTLibrary(); 891 FXFT_Library library = pFontMgr->GetFTLibrary();
889 if (!library) 892 if (!library)
890 return nullptr; 893 return nullptr;
891 894
(...skipping 14 matching lines...) Expand all
906 FXFT_Face pFace = nullptr; 909 FXFT_Face pFace = nullptr;
907 if (FXFT_Open_Face(library, &ftArgs, iFaceIndex, &pFace)) { 910 if (FXFT_Open_Face(library, &ftArgs, iFaceIndex, &pFace)) {
908 FX_Free(ftStream); 911 FX_Free(ftStream);
909 return nullptr; 912 return nullptr;
910 } 913 }
911 914
912 FXFT_Set_Pixel_Sizes(pFace, 0, 64); 915 FXFT_Set_Pixel_Sizes(pFace, 0, 64);
913 return pFace; 916 return pFace;
914 } 917 }
915 918
916 IFX_FileRead* CFGAS_FontMgrImp::CreateFontStream( 919 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream(
917 CFX_FontMapper* pFontMapper, 920 CFX_FontMapper* pFontMapper,
918 IFX_SystemFontInfo* pSystemFontInfo, 921 IFX_SystemFontInfo* pSystemFontInfo,
919 uint32_t index) { 922 uint32_t index) {
920 int iExact = 0; 923 int iExact = 0;
921 void* hFont = 924 void* hFont =
922 pSystemFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0, 925 pSystemFontInfo->MapFont(0, 0, FXFONT_DEFAULT_CHARSET, 0,
923 pFontMapper->GetFaceName(index).c_str(), iExact); 926 pFontMapper->GetFaceName(index).c_str(), iExact);
924 if (!hFont) 927 if (!hFont)
925 return nullptr; 928 return nullptr;
926 929
927 uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0); 930 uint32_t dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, nullptr, 0);
928 if (dwFileSize == 0) 931 if (dwFileSize == 0)
929 return nullptr; 932 return nullptr;
930 933
931 uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1); 934 uint8_t* pBuffer = FX_Alloc(uint8_t, dwFileSize + 1);
932 dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize); 935 dwFileSize = pSystemFontInfo->GetFontData(hFont, 0, pBuffer, dwFileSize);
933 936
934 return FX_CreateMemoryStream(pBuffer, dwFileSize, TRUE); 937 return FX_CreateMemoryStream(pBuffer, dwFileSize, TRUE);
935 } 938 }
936 939
937 IFX_FileRead* CFGAS_FontMgrImp::CreateFontStream( 940 IFX_SeekableReadStream* CFGAS_FontMgrImp::CreateFontStream(
938 const CFX_ByteString& bsFaceName) { 941 const CFX_ByteString& bsFaceName) {
939 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr(); 942 CFX_FontMgr* pFontMgr = CFX_GEModule::Get()->GetFontMgr();
940 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper(); 943 CFX_FontMapper* pFontMapper = pFontMgr->GetBuiltinMapper();
941 944
942 if (!pFontMapper) 945 if (!pFontMapper)
943 return nullptr; 946 return nullptr;
944 947
945 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo(); 948 IFX_SystemFontInfo* pSystemFontInfo = pFontMapper->GetSystemFontInfo();
946 if (!pSystemFontInfo) 949 if (!pSystemFontInfo)
947 return nullptr; 950 return nullptr;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1104 FX_POSITION pos = m_Hash2CandidateList.GetStartPosition(); 1107 FX_POSITION pos = m_Hash2CandidateList.GetStartPosition();
1105 while (pos) { 1108 while (pos) {
1106 uint32_t dwHash; 1109 uint32_t dwHash;
1107 CFX_FontDescriptorInfos* pDescs; 1110 CFX_FontDescriptorInfos* pDescs;
1108 m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs); 1111 m_Hash2CandidateList.GetNextAssoc(pos, dwHash, pDescs);
1109 delete pDescs; 1112 delete pDescs;
1110 } 1113 }
1111 pos = m_IFXFont2FileRead.GetStartPosition(); 1114 pos = m_IFXFont2FileRead.GetStartPosition();
1112 while (pos) { 1115 while (pos) {
1113 CFGAS_GEFont* pFont; 1116 CFGAS_GEFont* pFont;
1114 IFX_FileRead* pFileRead; 1117 IFX_SeekableReadStream* pFileRead;
1115 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead); 1118 m_IFXFont2FileRead.GetNextAssoc(pos, pFont, pFileRead);
1116 pFileRead->Release(); 1119 pFileRead->Release();
1117 } 1120 }
1118 } 1121 }
1119 1122
1120 void CFGAS_FontMgrImp::RemoveFont(CFGAS_GEFont* pEFont) { 1123 void CFGAS_FontMgrImp::RemoveFont(CFGAS_GEFont* pEFont) {
1121 if (!pEFont) { 1124 if (!pEFont) {
1122 return; 1125 return;
1123 } 1126 }
1124 IFX_FileRead* pFileRead; 1127 IFX_SeekableReadStream* pFileRead;
1125 if (m_IFXFont2FileRead.Lookup(pEFont, pFileRead)) { 1128 if (m_IFXFont2FileRead.Lookup(pEFont, pFileRead)) {
1126 pFileRead->Release(); 1129 pFileRead->Release();
1127 m_IFXFont2FileRead.RemoveKey(pEFont); 1130 m_IFXFont2FileRead.RemoveKey(pEFont);
1128 } 1131 }
1129 FX_POSITION pos; 1132 FX_POSITION pos;
1130 pos = m_Hash2Fonts.GetStartPosition(); 1133 pos = m_Hash2Fonts.GetStartPosition();
1131 while (pos) { 1134 while (pos) {
1132 uint32_t dwHash; 1135 uint32_t dwHash;
1133 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts; 1136 CFX_ArrayTemplate<CFGAS_GEFont*>* pFonts;
1134 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts); 1137 m_Hash2Fonts.GetNextAssoc(pos, dwHash, pFonts);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
1172 1175
1173 pFont->m_wsFamilyNames.Add(CFX_ByteString(pFace->family_name).UTF8Decode()); 1176 pFont->m_wsFamilyNames.Add(CFX_ByteString(pFace->family_name).UTF8Decode());
1174 pFont->m_wsFaceName = 1177 pFont->m_wsFaceName =
1175 pFaceName ? *pFaceName 1178 pFaceName ? *pFaceName
1176 : CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(pFace)); 1179 : CFX_WideString::FromLocal(FXFT_Get_Postscript_Name(pFace));
1177 pFont->m_nFaceIndex = pFace->face_index; 1180 pFont->m_nFaceIndex = pFace->face_index;
1178 1181
1179 m_InstalledFonts.Add(pFont.release()); 1182 m_InstalledFonts.Add(pFont.release());
1180 } 1183 }
1181 1184
1182 void CFGAS_FontMgrImp::RegisterFaces(IFX_FileRead* pFontStream, 1185 void CFGAS_FontMgrImp::RegisterFaces(IFX_SeekableReadStream* pFontStream,
1183 const CFX_WideString* pFaceName) { 1186 const CFX_WideString* pFaceName) {
1184 int32_t index = 0; 1187 int32_t index = 0;
1185 int32_t num_faces = 0; 1188 int32_t num_faces = 0;
1186 do { 1189 do {
1187 FXFT_Face pFace = LoadFace(pFontStream, index++); 1190 FXFT_Face pFace = LoadFace(pFontStream, index++);
1188 if (!pFace) 1191 if (!pFace)
1189 continue; 1192 continue;
1190 // All faces keep number of faces. It can be retrieved from any one face. 1193 // All faces keep number of faces. It can be retrieved from any one face.
1191 if (num_faces == 0) 1194 if (num_faces == 0)
1192 num_faces = pFace->num_faces; 1195 num_faces = pFace->num_faces;
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
1374 1377
1375 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1, 1378 int32_t CFGAS_FontMgrImp::IsPartName(const CFX_WideString& Name1,
1376 const CFX_WideString& Name2) { 1379 const CFX_WideString& Name2) {
1377 if (Name1.Find(Name2.c_str()) != -1) { 1380 if (Name1.Find(Name2.c_str()) != -1) {
1378 return 1; 1381 return 1;
1379 } 1382 }
1380 return 0; 1383 return 0;
1381 } 1384 }
1382 1385
1383 #endif 1386 #endif
OLDNEW
« no previous file with comments | « xfa/fgas/font/fgas_stdfontmgr.h ('k') | xfa/fxfa/app/xfa_checksum.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698