| 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 "../../../include/fxge/fx_ge.h" | 7 #include "../../../include/fxge/fx_ge.h" |
| 8 #include "../../../include/fxge/fx_freetype.h" | 8 #include "../../../include/fxge/fx_freetype.h" |
| 9 #include "text_int.h" | 9 #include "text_int.h" |
| 10 #define GET_TT_SHORT(w) (FX_WORD)(((w)[0] << 8) | (w)[1]) | 10 #define GET_TT_SHORT(w) (FX_WORD)(((w)[0] << 8) | (w)[1]) |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 54 } | 54 } |
| 55 m_RefCount --; | 55 m_RefCount --; |
| 56 if (m_RefCount) { | 56 if (m_RefCount) { |
| 57 return FALSE; | 57 return FALSE; |
| 58 } | 58 } |
| 59 delete this; | 59 delete this; |
| 60 return TRUE; | 60 return TRUE; |
| 61 } | 61 } |
| 62 CFX_FontMgr::CFX_FontMgr() | 62 CFX_FontMgr::CFX_FontMgr() |
| 63 { | 63 { |
| 64 m_pBuiltinMapper = FX_NEW CFX_FontMapper; | 64 m_pBuiltinMapper = new CFX_FontMapper; |
| 65 if (!m_pBuiltinMapper) { | |
| 66 return; | |
| 67 } | |
| 68 m_pBuiltinMapper->m_pFontMgr = this; | 65 m_pBuiltinMapper->m_pFontMgr = this; |
| 69 m_pExtMapper = NULL; | 66 m_pExtMapper = NULL; |
| 70 m_FTLibrary = NULL; | 67 m_FTLibrary = NULL; |
| 71 FXSYS_memset32(m_ExternalFonts, 0, sizeof m_ExternalFonts); | 68 FXSYS_memset32(m_ExternalFonts, 0, sizeof m_ExternalFonts); |
| 72 } | 69 } |
| 73 CFX_FontMgr::~CFX_FontMgr() | 70 CFX_FontMgr::~CFX_FontMgr() |
| 74 { | 71 { |
| 75 if (m_pBuiltinMapper) { | 72 if (m_pBuiltinMapper) { |
| 76 delete m_pBuiltinMapper; | 73 delete m_pBuiltinMapper; |
| 77 } | 74 } |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 129 if(pFontDesc) { | 126 if(pFontDesc) { |
| 130 pFontData = pFontDesc->m_pFontData; | 127 pFontData = pFontDesc->m_pFontData; |
| 131 pFontDesc->m_RefCount ++; | 128 pFontDesc->m_RefCount ++; |
| 132 return pFontDesc->m_SingleFace.m_pFace; | 129 return pFontDesc->m_SingleFace.m_pFace; |
| 133 } | 130 } |
| 134 return NULL; | 131 return NULL; |
| 135 } | 132 } |
| 136 FXFT_Face CFX_FontMgr::AddCachedFace(const CFX_ByteString& face_name, | 133 FXFT_Face CFX_FontMgr::AddCachedFace(const CFX_ByteString& face_name, |
| 137 int weight, FX_BOOL bItalic, FX_LPBYTE pDat
a, FX_DWORD size, int face_index) | 134 int weight, FX_BOOL bItalic, FX_LPBYTE pDat
a, FX_DWORD size, int face_index) |
| 138 { | 135 { |
| 139 CTTFontDesc* pFontDesc = FX_NEW CTTFontDesc; | 136 CTTFontDesc* pFontDesc = new CTTFontDesc; |
| 140 if (!pFontDesc) { | |
| 141 return NULL; | |
| 142 } | |
| 143 pFontDesc->m_Type = 1; | 137 pFontDesc->m_Type = 1; |
| 144 pFontDesc->m_SingleFace.m_pFace = NULL; | 138 pFontDesc->m_SingleFace.m_pFace = NULL; |
| 145 pFontDesc->m_SingleFace.m_bBold = weight; | 139 pFontDesc->m_SingleFace.m_bBold = weight; |
| 146 pFontDesc->m_SingleFace.m_bItalic = bItalic; | 140 pFontDesc->m_SingleFace.m_bItalic = bItalic; |
| 147 pFontDesc->m_pFontData = pData; | 141 pFontDesc->m_pFontData = pData; |
| 148 pFontDesc->m_RefCount = 1; | 142 pFontDesc->m_RefCount = 1; |
| 149 FXFT_Library library; | 143 FXFT_Library library; |
| 150 if (m_FTLibrary == NULL) { | 144 if (m_FTLibrary == NULL) { |
| 151 FXFT_Init_FreeType(&m_FTLibrary); | 145 FXFT_Init_FreeType(&m_FTLibrary); |
| 152 } | 146 } |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 330 if (pFontDesc->m_TTCFace.m_pFaces[face_index] == NULL) { | 324 if (pFontDesc->m_TTCFace.m_pFaces[face_index] == NULL) { |
| 331 pFontDesc->m_TTCFace.m_pFaces[face_index] = GetFixedFace(pFontDesc->m_pF
ontData, ttc_size, face_index); | 325 pFontDesc->m_TTCFace.m_pFaces[face_index] = GetFixedFace(pFontDesc->m_pF
ontData, ttc_size, face_index); |
| 332 } | 326 } |
| 333 return pFontDesc->m_TTCFace.m_pFaces[face_index]; | 327 return pFontDesc->m_TTCFace.m_pFaces[face_index]; |
| 334 } | 328 } |
| 335 FXFT_Face CFX_FontMgr::AddCachedTTCFace(int ttc_size, FX_DWORD checksum, | 329 FXFT_Face CFX_FontMgr::AddCachedTTCFace(int ttc_size, FX_DWORD checksum, |
| 336 FX_LPBYTE pData, FX_DWORD size, int font
_offset) | 330 FX_LPBYTE pData, FX_DWORD size, int font
_offset) |
| 337 { | 331 { |
| 338 CFX_ByteString key; | 332 CFX_ByteString key; |
| 339 key.Format("%d:%d", ttc_size, checksum); | 333 key.Format("%d:%d", ttc_size, checksum); |
| 340 CTTFontDesc* pFontDesc = FX_NEW CTTFontDesc; | 334 CTTFontDesc* pFontDesc = new CTTFontDesc; |
| 341 if (!pFontDesc) { | |
| 342 return NULL; | |
| 343 } | |
| 344 pFontDesc->m_Type = 2; | 335 pFontDesc->m_Type = 2; |
| 345 pFontDesc->m_pFontData = pData; | 336 pFontDesc->m_pFontData = pData; |
| 346 for (int i = 0; i < 16; i ++) { | 337 for (int i = 0; i < 16; i ++) { |
| 347 pFontDesc->m_TTCFace.m_pFaces[i] = NULL; | 338 pFontDesc->m_TTCFace.m_pFaces[i] = NULL; |
| 348 } | 339 } |
| 349 pFontDesc->m_RefCount ++; | 340 pFontDesc->m_RefCount ++; |
| 350 key.Format("%d:%d", ttc_size, checksum); | 341 key.Format("%d:%d", ttc_size, checksum); |
| 351 m_FaceMap.SetAt(key, pFontDesc); | 342 m_FaceMap.SetAt(key, pFontDesc); |
| 352 int face_index = GetTTCIndex(pFontDesc->m_pFontData, ttc_size, font_offset); | 343 int face_index = GetTTCIndex(pFontDesc->m_pFontData, ttc_size, font_offset); |
| 353 pFontDesc->m_TTCFace.m_pFaces[face_index] = GetFixedFace(pFontDesc->m_pFontD
ata, ttc_size, face_index); | 344 pFontDesc->m_TTCFace.m_pFaces[face_index] = GetFixedFace(pFontDesc->m_pFontD
ata, ttc_size, face_index); |
| (...skipping 1055 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1409 CFX_ByteString names = _FPDF_LoadTableFromTT(pFile, tables, nTables, 0x6e616
d65); | 1400 CFX_ByteString names = _FPDF_LoadTableFromTT(pFile, tables, nTables, 0x6e616
d65); |
| 1410 CFX_ByteString facename = _FPDF_GetNameFromTT(names, 1); | 1401 CFX_ByteString facename = _FPDF_GetNameFromTT(names, 1); |
| 1411 CFX_ByteString style = _FPDF_GetNameFromTT(names, 2); | 1402 CFX_ByteString style = _FPDF_GetNameFromTT(names, 2); |
| 1412 if (style != "Regular") { | 1403 if (style != "Regular") { |
| 1413 facename += " " + style; | 1404 facename += " " + style; |
| 1414 } | 1405 } |
| 1415 FX_LPVOID p; | 1406 FX_LPVOID p; |
| 1416 if (m_FontList.Lookup(facename, p)) { | 1407 if (m_FontList.Lookup(facename, p)) { |
| 1417 return; | 1408 return; |
| 1418 } | 1409 } |
| 1419 CFontFaceInfo* pInfo = FX_NEW CFontFaceInfo; | 1410 CFontFaceInfo* pInfo = new CFontFaceInfo; |
| 1420 if (!pInfo) { | |
| 1421 return; | |
| 1422 } | |
| 1423 pInfo->m_FilePath = path; | 1411 pInfo->m_FilePath = path; |
| 1424 pInfo->m_FaceName = facename; | 1412 pInfo->m_FaceName = facename; |
| 1425 pInfo->m_FontTables = tables; | 1413 pInfo->m_FontTables = tables; |
| 1426 pInfo->m_FontOffset = offset; | 1414 pInfo->m_FontOffset = offset; |
| 1427 pInfo->m_FileSize = filesize; | 1415 pInfo->m_FileSize = filesize; |
| 1428 pInfo->m_Charsets = 0; | 1416 pInfo->m_Charsets = 0; |
| 1429 CFX_ByteString os2 = _FPDF_LoadTableFromTT(pFile, tables, nTables, 0x4f532f3
2); | 1417 CFX_ByteString os2 = _FPDF_LoadTableFromTT(pFile, tables, nTables, 0x4f532f3
2); |
| 1430 if (os2.GetLength() >= 86) { | 1418 if (os2.GetLength() >= 86) { |
| 1431 FX_LPCBYTE p = (FX_LPCBYTE)os2 + 78; | 1419 FX_LPCBYTE p = (FX_LPCBYTE)os2 + 78; |
| 1432 FX_DWORD codepages = GET_TT_LONG(p); | 1420 FX_DWORD codepages = GET_TT_LONG(p); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1526 return FALSE; | 1514 return FALSE; |
| 1527 } | 1515 } |
| 1528 CFontFaceInfo* pFont = (CFontFaceInfo*)hFont; | 1516 CFontFaceInfo* pFont = (CFontFaceInfo*)hFont; |
| 1529 name = pFont->m_FaceName; | 1517 name = pFont->m_FaceName; |
| 1530 return TRUE; | 1518 return TRUE; |
| 1531 } | 1519 } |
| 1532 FX_BOOL CFX_FolderFontInfo::GetFontCharset(void* hFont, int& charset) | 1520 FX_BOOL CFX_FolderFontInfo::GetFontCharset(void* hFont, int& charset) |
| 1533 { | 1521 { |
| 1534 return FALSE; | 1522 return FALSE; |
| 1535 } | 1523 } |
| OLD | NEW |