diff options
Diffstat (limited to 'core/src/fxge/ge')
-rw-r--r-- | core/src/fxge/ge/fx_ge_font.cpp | 24 | ||||
-rw-r--r-- | core/src/fxge/ge/fx_ge_fontmap.cpp | 6 |
2 files changed, 30 insertions, 0 deletions
diff --git a/core/src/fxge/ge/fx_ge_font.cpp b/core/src/fxge/ge/fx_ge_font.cpp index e02d46ffad..ffd7b77fb4 100644 --- a/core/src/fxge/ge/fx_ge_font.cpp +++ b/core/src/fxge/ge/fx_ge_font.cpp @@ -10,12 +10,15 @@ #define EM_ADJUST(em, a) (em == 0 ? (a) : (a)*1000 / em) +#ifdef PDF_ENABLE_XFA extern void _FPDFAPI_GetInternalFontData(int id1, const uint8_t*& data, FX_DWORD& size); +#endif namespace { +#ifdef PDF_ENABLE_XFA const FX_DWORD g_EncodingID[] = { FXFM_ENCODING_MS_SYMBOL, FXFM_ENCODING_UNICODE, @@ -39,6 +42,7 @@ CFX_UnicodeEncodingEx* _FXFM_CreateFontEncoding(CFX_Font* pFont, return new CFX_UnicodeEncodingEx(pFont, nEncodingID); } +#endif FXFT_Face FT_LoadFont(const uint8_t* pData, int size) { return CFX_GEModule::Get()->GetFontMgr()->GetFixedFace(pData, size, 0); } @@ -53,13 +57,16 @@ CFX_Font::CFX_Font() { m_pFontData = NULL; m_pFontDataAllocation = NULL; m_dwSize = 0; +#ifdef PDF_ENABLE_XFA m_pOwnedStream = NULL; +#endif m_pGsubData = NULL; m_pPlatformFont = NULL; m_pPlatformFontCollection = NULL; m_pDwFont = NULL; m_hHandle = NULL; m_bDwLoaded = FALSE; +#ifdef PDF_ENABLE_XFA m_bLogic = FALSE; } FX_BOOL CFX_Font::LoadClone(const CFX_Font* pFont) { @@ -93,23 +100,36 @@ FX_BOOL CFX_Font::LoadClone(const CFX_Font* pFont) { m_bDwLoaded = pFont->m_bDwLoaded; m_pOwnedStream = pFont->m_pOwnedStream; return TRUE; +#endif } CFX_Font::~CFX_Font() { delete m_pSubstFont; m_pSubstFont = NULL; +#ifndef PDF_ENABLE_XFA + FX_Free(m_pFontDataAllocation); + m_pFontDataAllocation = NULL; +#else if (m_bLogic) { m_OtfFontData.DetachBuffer(); return; } +#endif if (m_Face) { +#ifndef PDF_ENABLE_XFA + if (FXFT_Get_Face_External_Stream(m_Face)) { + FXFT_Clear_Face_External_Stream(m_Face); + } +#endif if (m_bEmbedded) { DeleteFace(); } else { CFX_GEModule::Get()->GetFontMgr()->ReleaseFace(m_Face); } } +#ifdef PDF_ENABLE_XFA FX_Free(m_pOwnedStream); m_pOwnedStream = NULL; +#endif FX_Free(m_pGsubData); m_pGsubData = NULL; #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ @@ -144,6 +164,7 @@ void CFX_Font::LoadSubst(const CFX_ByteString& face_name, m_dwSize = FXFT_Get_Face_Stream_Size(m_Face); } } +#ifdef PDF_ENABLE_XFA extern "C" { unsigned long _FTStreamRead(FXFT_Stream stream, unsigned long offset, @@ -205,6 +226,7 @@ FX_BOOL CFX_Font::LoadFile(IFX_FileRead* pFile, FXFT_Set_Pixel_Sizes(m_Face, 0, 64); return TRUE; } +#endif int CFX_Font::GetGlyphWidth(FX_DWORD glyph_index) { if (!m_Face) { @@ -460,6 +482,7 @@ FX_DWORD CFX_UnicodeEncoding::GlyphFromCharCode(FX_DWORD charcode) { } return charcode; } +#ifdef PDF_ENABLE_XFA CFX_UnicodeEncodingEx::CFX_UnicodeEncodingEx(CFX_Font* pFont, FX_DWORD EncodingID) @@ -532,3 +555,4 @@ CFX_UnicodeEncodingEx* FX_CreateFontEncodingEx(CFX_Font* pFont, } return NULL; } +#endif diff --git a/core/src/fxge/ge/fx_ge_fontmap.cpp b/core/src/fxge/ge/fx_ge_fontmap.cpp index c41f448e89..6b0d7bf7e8 100644 --- a/core/src/fxge/ge/fx_ge_fontmap.cpp +++ b/core/src/fxge/ge/fx_ge_fontmap.cpp @@ -1083,9 +1083,11 @@ FXFT_Face CFX_FontMapper::FindSubstFont(const CFX_ByteString& name, pSubstFont->m_SubstFlags |= FXFONT_SUBST_EXACT; } if (hFont == NULL) { +#ifdef PDF_ENABLE_XFA if (flags & FXFONT_EXACTMATCH) { return NULL; } +#endif if (bCJK) { if (italic_angle != 0) { bItalic = TRUE; @@ -1211,6 +1213,7 @@ FXFT_Face CFX_FontMapper::FindSubstFont(const CFX_ByteString& name, m_pFontInfo->DeleteFont(hFont); return face; } +#ifdef PDF_ENABLE_XFA FXFT_Face CFX_FontMapper::FindSubstFontByUnicode(FX_DWORD dwUnicode, FX_DWORD flags, int weight, @@ -1293,6 +1296,7 @@ FX_BOOL CFX_FontMapper::IsBuiltinFace(const FXFT_Face face) const { } return FALSE; } +#endif extern "C" { unsigned long _FTStreamRead(FXFT_Stream stream, unsigned long offset, @@ -1514,12 +1518,14 @@ void* CFX_FolderFontInfo::MapFont(int weight, int& iExact) { return NULL; } +#ifdef PDF_ENABLE_XFA void* CFX_FolderFontInfo::MapFontByUnicode(FX_DWORD dwUnicode, int weight, FX_BOOL bItalic, int pitch_family) { return NULL; } +#endif void* CFX_FolderFontInfo::GetFont(const FX_CHAR* face) { auto it = m_FontList.find(face); return it != m_FontList.end() ? it->second : nullptr; |