summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/include/fxge/fx_font.h25
-rw-r--r--core/include/fxge/fx_ge.h1
-rw-r--r--core/src/fxge/apple/apple_int.h12
-rw-r--r--core/src/fxge/ge/fx_ge.cpp5
-rw-r--r--core/src/fxge/ge/fx_ge_fontmap.cpp28
5 files changed, 19 insertions, 52 deletions
diff --git a/core/include/fxge/fx_font.h b/core/include/fxge/fx_font.h
index 2832fbfcbc..5797ecb246 100644
--- a/core/include/fxge/fx_font.h
+++ b/core/include/fxge/fx_font.h
@@ -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
{
diff --git a/core/include/fxge/fx_ge.h b/core/include/fxge/fx_ge.h
index fd9c148b62..dd349adb29 100644
--- a/core/include/fxge/fx_ge.h
+++ b/core/include/fxge/fx_ge.h
@@ -42,7 +42,6 @@ public:
}
void SetTextGamma(FX_FLOAT gammaValue);
const uint8_t* GetTextGammaTable();
- void SetExtFontMapper(IFX_FontMapper* pFontMapper);
void SetCodecModule(CCodec_ModuleMgr* pCodecModule)
{
diff --git a/core/src/fxge/apple/apple_int.h b/core/src/fxge/apple/apple_int.h
index 715e48d6c2..090ac0924a 100644
--- a/core/src/fxge/apple/apple_int.h
+++ b/core/src/fxge/apple/apple_int.h
@@ -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
{
diff --git a/core/src/fxge/ge/fx_ge.cpp b/core/src/fxge/ge/fx_ge.cpp
index 4b34a079e5..6ba6cf5979 100644
--- a/core/src/fxge/ge/fx_ge.cpp
+++ b/core/src/fxge/ge/fx_ge.cpp
@@ -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;
-}
diff --git a/core/src/fxge/ge/fx_ge_fontmap.cpp b/core/src/fxge/ge/fx_ge_fontmap.cpp
index 9bbebd9917..495d95c8d7 100644
--- a/core/src/fxge/ge/fx_ge_fontmap.cpp
+++ b/core/src/fxge/ge/fx_ge_fontmap.cpp
@@ -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()
{