| 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 EM_ADJUST(em, a) (em == 0?(a): (a)*1000/em) |   10 #define EM_ADJUST(em, a) (em == 0?(a): (a)*1000/em) | 
| (...skipping 14 matching lines...) Expand all  Loading... | 
|   25     m_pDwFont = NULL; |   25     m_pDwFont = NULL; | 
|   26     m_hHandle = NULL; |   26     m_hHandle = NULL; | 
|   27     m_bDwLoaded = FALSE; |   27     m_bDwLoaded = FALSE; | 
|   28 } |   28 } | 
|   29 CFX_Font::~CFX_Font() |   29 CFX_Font::~CFX_Font() | 
|   30 { |   30 { | 
|   31     if (m_pSubstFont) { |   31     if (m_pSubstFont) { | 
|   32         delete m_pSubstFont; |   32         delete m_pSubstFont; | 
|   33         m_pSubstFont = NULL; |   33         m_pSubstFont = NULL; | 
|   34     } |   34     } | 
|   35 #ifdef FOXIT_CHROME_BUILD |  | 
|   36     if (m_pFontDataAllocation) { |   35     if (m_pFontDataAllocation) { | 
|   37         FX_Free(m_pFontDataAllocation); |   36         FX_Free(m_pFontDataAllocation); | 
|   38         m_pFontDataAllocation = NULL; |   37         m_pFontDataAllocation = NULL; | 
|   39     } |   38     } | 
|   40 #endif |  | 
|   41     if (m_Face) { |   39     if (m_Face) { | 
|   42 #ifdef FOXIT_CHROME_BUILD |  | 
|   43         if (FXFT_Get_Face_External_Stream(m_Face)) { |   40         if (FXFT_Get_Face_External_Stream(m_Face)) { | 
|   44             FXFT_Clear_Face_External_Stream(m_Face); |   41             FXFT_Clear_Face_External_Stream(m_Face); | 
|   45         } |   42         } | 
|   46 #endif |  | 
|   47         if(m_bEmbedded) { |   43         if(m_bEmbedded) { | 
|   48             DeleteFace(); |   44             DeleteFace(); | 
|   49         } else { |   45         } else { | 
|   50             CFX_GEModule::Get()->GetFontMgr()->ReleaseFace(m_Face); |   46             CFX_GEModule::Get()->GetFontMgr()->ReleaseFace(m_Face); | 
|   51         } |   47         } | 
|   52     } |   48     } | 
|   53     if (m_pOwnedStream) { |   49     if (m_pOwnedStream) { | 
|   54         FX_Free(m_pOwnedStream); |   50         FX_Free(m_pOwnedStream); | 
|   55         m_pOwnedStream = NULL; |   51         m_pOwnedStream = NULL; | 
|   56     } |   52     } | 
|   57     if (m_pGsubData) { |   53     if (m_pGsubData) { | 
|   58         FX_Free(m_pGsubData); |   54         FX_Free(m_pGsubData); | 
|   59         m_pGsubData = NULL; |   55         m_pGsubData = NULL; | 
|   60     } |   56     } | 
|   61 #if (_FXM_PLATFORM_  == _FXM_PLATFORM_APPLE_ && (!defined(_FPDFAPI_MINI_))) |   57 #if _FXM_PLATFORM_  == _FXM_PLATFORM_APPLE_ | 
|   62     ReleasePlatformResource(); |   58     ReleasePlatformResource(); | 
|   63 #endif |   59 #endif | 
|   64 } |   60 } | 
|   65 void CFX_Font::DeleteFace() |   61 void CFX_Font::DeleteFace() | 
|   66 { |   62 { | 
|   67     FXFT_Done_Face(m_Face); |   63     FXFT_Done_Face(m_Face); | 
|   68     m_Face = NULL; |   64     m_Face = NULL; | 
|   69 } |   65 } | 
|   70 FX_BOOL CFX_Font::LoadSubst(const CFX_ByteString& face_name, FX_BOOL bTrueType, 
     FX_DWORD flags, |   66 FX_BOOL CFX_Font::LoadSubst(const CFX_ByteString& face_name, FX_BOOL bTrueType, 
     FX_DWORD flags, | 
|   71                             int weight, int italic_angle, int CharsetCP, FX_BOOL
      bVertical) |   67                             int weight, int italic_angle, int CharsetCP, FX_BOOL
      bVertical) | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  176         return NULL; |  172         return NULL; | 
|  177     } |  173     } | 
|  178     error = FXFT_Set_Pixel_Sizes(face, 64, 64); |  174     error = FXFT_Set_Pixel_Sizes(face, 64, 64); | 
|  179     if (error) { |  175     if (error) { | 
|  180         return NULL; |  176         return NULL; | 
|  181     } |  177     } | 
|  182     return face; |  178     return face; | 
|  183 } |  179 } | 
|  184 FX_BOOL CFX_Font::LoadEmbedded(FX_LPCBYTE data, FX_DWORD size) |  180 FX_BOOL CFX_Font::LoadEmbedded(FX_LPCBYTE data, FX_DWORD size) | 
|  185 { |  181 { | 
|  186 #ifdef FOXIT_CHROME_BUILD |  | 
|  187     m_pFontDataAllocation = FX_Alloc(FX_BYTE, size); |  182     m_pFontDataAllocation = FX_Alloc(FX_BYTE, size); | 
|  188     if (!m_pFontDataAllocation) { |  183     if (!m_pFontDataAllocation) { | 
|  189         return FALSE; |  184         return FALSE; | 
|  190     } |  185     } | 
|  191     FXSYS_memcpy32(m_pFontDataAllocation, data, size); |  186     FXSYS_memcpy32(m_pFontDataAllocation, data, size); | 
|  192     m_Face = FT_LoadFont((FX_LPBYTE)m_pFontDataAllocation, size); |  187     m_Face = FT_LoadFont((FX_LPBYTE)m_pFontDataAllocation, size); | 
|  193     m_pFontData = (FX_LPBYTE)m_pFontDataAllocation; |  188     m_pFontData = (FX_LPBYTE)m_pFontDataAllocation; | 
|  194 #else |  | 
|  195     m_Face = FT_LoadFont((FX_LPBYTE)data, size); |  | 
|  196     m_pFontData = (FX_LPBYTE)data; |  | 
|  197 #endif |  | 
|  198     m_bEmbedded = TRUE; |  189     m_bEmbedded = TRUE; | 
|  199     m_dwSize = size; |  190     m_dwSize = size; | 
|  200     return m_Face != NULL; |  191     return m_Face != NULL; | 
|  201 } |  192 } | 
|  202 FX_BOOL CFX_Font::IsTTFont() |  193 FX_BOOL CFX_Font::IsTTFont() | 
|  203 { |  194 { | 
|  204     if (m_Face == NULL) { |  195     if (m_Face == NULL) { | 
|  205         return FALSE; |  196         return FALSE; | 
|  206     } |  197     } | 
|  207     return FXFT_Is_Face_TT_OT(m_Face) == FXFT_FACE_FLAG_SFNT; |  198     return FXFT_Is_Face_TT_OT(m_Face) == FXFT_FACE_FLAG_SFNT; | 
| (...skipping 240 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  448         } |  439         } | 
|  449     } |  440     } | 
|  450     return FXFT_Get_Char_Index(face, charcode); |  441     return FXFT_Get_Char_Index(face, charcode); | 
|  451 } |  442 } | 
|  452 IFX_FontEncoding* FXGE_CreateUnicodeEncoding(CFX_Font* pFont) |  443 IFX_FontEncoding* FXGE_CreateUnicodeEncoding(CFX_Font* pFont) | 
|  453 { |  444 { | 
|  454     CFX_UnicodeEncoding* pEncoding = NULL; |  445     CFX_UnicodeEncoding* pEncoding = NULL; | 
|  455     pEncoding = FX_NEW CFX_UnicodeEncoding(pFont); |  446     pEncoding = FX_NEW CFX_UnicodeEncoding(pFont); | 
|  456     return pEncoding; |  447     return pEncoding; | 
|  457 } |  448 } | 
| OLD | NEW |