Kill IFX_FontMapper
authorTom Sepez <tsepez@chromium.org>
Fri, 31 Jul 2015 21:00:39 +0000 (14:00 -0700)
committerTom Sepez <tsepez@chromium.org>
Fri, 31 Jul 2015 21:00:39 +0000 (14:00 -0700)
The design envisioned two kinds of font mappers: internal
(of type CFX_FontMapper), and external, both of which
implement a common interface.  But there isn't any means of
making an external one, so the interface is redundant.

IFX_FontMapper also appears in an apple-specific struct,
but was never non-null or used in any way.

The CFX_FontMapper class provides its own mechanism to
include platform-specific features, as it turns out.

R=thestig@chromium.org

Review URL: https://codereview.chromium.org/1259123005 .

core/include/fxge/fx_font.h
core/include/fxge/fx_ge.h
core/src/fxge/apple/apple_int.h
core/src/fxge/ge/fx_ge.cpp
core/src/fxge/ge/fx_ge_fontmap.cpp

index 2832fbf..5797ecb 100644 (file)
@@ -18,7 +18,6 @@ class IFX_FontEncoding;
 class CFX_PathData;
 class CFX_SubstFont;
 class CFX_FaceCache;
-class IFX_FontMapper;
 class CFX_FontMapper;
 class IFX_SystemFontInfo;
 class CFontFileFaceInfo;
@@ -224,22 +223,10 @@ public:
 
     FX_BOOL                    GetStandardFont(const uint8_t*& pFontData, FX_DWORD& size, int index);
     CFX_FontMapper*    m_pBuiltinMapper;
-    IFX_FontMapper*    m_pExtMapper;
     CFX_MapByteStringToPtr     m_FaceMap;
     FXFT_Library       m_FTLibrary;
     FoxitFonts m_ExternalFonts[16];
 };
-class IFX_FontMapper
-{
-public:
-
-    virtual ~IFX_FontMapper() {}
-
-    virtual FXFT_Face  FindSubstFont(const CFX_ByteString& face_name, FX_BOOL bTrueType, FX_DWORD flags,
-                                      int weight, int italic_angle, int CharsetCP, CFX_SubstFont* pSubstFont) = 0;
-
-    CFX_FontMgr*               m_pFontMgr;
-};
 class IFX_FontEnumerator
 {
 public:
@@ -256,11 +243,12 @@ public:
     virtual int  CountFiles() = 0;
     virtual IFX_FileStream* GetFontFile(int index) = 0;
 };
-class CFX_FontMapper : public IFX_FontMapper
+class CFX_FontMapper
 {
 public:
-    CFX_FontMapper();
-    virtual ~CFX_FontMapper();
+    CFX_FontMapper(CFX_FontMgr* mgr);
+    ~CFX_FontMapper();
+
     void                               SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo);
     IFX_SystemFontInfo*        GetSystemFontInfo()
     {
@@ -277,8 +265,8 @@ public:
     {
         return m_pFontEnumerator;
     }
-    virtual FXFT_Face  FindSubstFont(const CFX_ByteString& face_name, FX_BOOL bTrueType, FX_DWORD flags,
-                                      int weight, int italic_angle, int CharsetCP, CFX_SubstFont* pSubstFont);
+    FXFT_Face FindSubstFont(const CFX_ByteString& face_name, FX_BOOL bTrueType, FX_DWORD flags,
+                            int weight, int italic_angle, int CharsetCP, CFX_SubstFont* pSubstFont);
 private:
     CFX_ByteString             GetPSNameFromTT(void* hFont);
     CFX_ByteString             MatchInstalledFonts(const CFX_ByteString& norm_name);
@@ -292,6 +280,7 @@ private:
     IFX_SystemFontInfo*        m_pFontInfo;
     FXFT_Face                  m_FoxitFaces[14];
     IFX_FontEnumerator*                m_pFontEnumerator;
+    CFX_FontMgr* const m_pFontMgr;
 };
 class IFX_SystemFontInfo
 {
index fd9c148..dd349ad 100644 (file)
@@ -42,7 +42,6 @@ public:
     }
     void                                       SetTextGamma(FX_FLOAT gammaValue);
     const uint8_t*                             GetTextGammaTable();
-    void                                       SetExtFontMapper(IFX_FontMapper* pFontMapper);
 
     void                                       SetCodecModule(CCodec_ModuleMgr* pCodecModule)
     {
index 715e48d..090ac09 100644 (file)
@@ -65,16 +65,10 @@ public:
 class CApplePlatform
 {
 public:
-    CApplePlatform()
-    {
-        m_pFontMapper = NULL;
-    }
-    ~CApplePlatform()
-    {
-        delete m_pFontMapper;
-    }
+    CApplePlatform() {}
+    ~CApplePlatform() {}
+
     CQuartz2D  _quartz2d;
-    IFX_FontMapper* m_pFontMapper;
 };
 class CFX_QuartzDeviceDriver : public IFX_RenderDeviceDriver
 {
index 4b34a07..6ba6cf5 100644 (file)
@@ -63,8 +63,3 @@ const uint8_t* CFX_GEModule::GetTextGammaTable()
 {
     return m_GammaValue;
 }
-void CFX_GEModule::SetExtFontMapper(IFX_FontMapper* pFontMapper)
-{
-    GetFontMgr()->m_pExtMapper = pFontMapper;
-    pFontMapper->m_pFontMgr = m_pFontMgr;
-}
index 9bbebd9..495d95c 100644 (file)
@@ -61,12 +61,9 @@ FX_BOOL CTTFontDesc::ReleaseFace(FXFT_Face face)
     delete this;
     return TRUE;
 }
-CFX_FontMgr::CFX_FontMgr()
+CFX_FontMgr::CFX_FontMgr() : m_FTLibrary(nullptr)
 {
-    m_pBuiltinMapper = new CFX_FontMapper;
-    m_pBuiltinMapper->m_pFontMgr = this;
-    m_pExtMapper = NULL;
-    m_FTLibrary = NULL;
+    m_pBuiltinMapper = new CFX_FontMapper(this);
     FXSYS_memset(m_ExternalFonts, 0, sizeof m_ExternalFonts);
 }
 CFX_FontMgr::~CFX_FontMgr()
@@ -101,18 +98,10 @@ void CFX_FontMgr::SetSystemFontInfo(IFX_SystemFontInfo* pFontInfo)
 FXFT_Face CFX_FontMgr::FindSubstFont(const CFX_ByteString& face_name, FX_BOOL bTrueType,
                                      FX_DWORD flags, int weight, int italic_angle, int CharsetCP, CFX_SubstFont* pSubstFont)
 {
-    if (m_FTLibrary == NULL) {
+    if (!m_FTLibrary) {
         FXFT_Init_FreeType(&m_FTLibrary);
     }
-    if (m_pExtMapper) {
-        FXFT_Face face = m_pExtMapper->FindSubstFont(face_name, bTrueType, flags, weight, italic_angle,
-                         CharsetCP, pSubstFont);
-        if (face) {
-            return face;
-        }
-    }
-    return m_pBuiltinMapper->FindSubstFont(face_name, bTrueType, flags, weight, italic_angle,
-                                           CharsetCP, pSubstFont);
+    return m_pBuiltinMapper->FindSubstFont(face_name, bTrueType, flags, weight, italic_angle, CharsetCP, pSubstFont);
 }
 FXFT_Face CFX_FontMgr::GetCachedFace(const CFX_ByteString& face_name,
                                      int weight, FX_BOOL bItalic, uint8_t*& pFontData)
@@ -454,13 +443,14 @@ FX_BOOL CFX_FontMgr::GetStandardFont(const uint8_t*& pFontData, FX_DWORD& size,
     }
     return TRUE;
 }
-CFX_FontMapper::CFX_FontMapper()
+CFX_FontMapper::CFX_FontMapper(CFX_FontMgr* mgr)
+        : m_pFontInfo(nullptr),
+          m_bListLoaded(FALSE),
+          m_pFontEnumerator(nullptr),
+          m_pFontMgr(mgr)
 {
     FXSYS_memset(m_FoxitFaces, 0, sizeof m_FoxitFaces);
     m_MMFaces[0] = m_MMFaces[1] = NULL;
-    m_pFontInfo = NULL;
-    m_bListLoaded = FALSE;
-    m_pFontEnumerator = NULL;
 }
 CFX_FontMapper::~CFX_FontMapper()
 {