Index: core/src/fxge/ge/fx_ge_font.cpp |
diff --git a/core/src/fxge/ge/fx_ge_font.cpp b/core/src/fxge/ge/fx_ge_font.cpp |
index a6ababf572b96bdc69f3027f7e26c784091f1712..fed80e6165b54ca30fc15a62a95cf99fe053cf83 100644 |
--- a/core/src/fxge/ge/fx_ge_font.cpp |
+++ b/core/src/fxge/ge/fx_ge_font.cpp |
@@ -7,7 +7,17 @@ |
#include "../../../include/fxge/fx_ge.h" |
#include "../../../include/fxge/fx_freetype.h" |
#include "text_int.h" |
+ |
#define EM_ADJUST(em, a) (em == 0 ? (a) : (a)*1000 / em) |
+ |
+namespace { |
+ |
+FXFT_Face FT_LoadFont(const uint8_t* pData, int size) { |
+ return CFX_GEModule::Get()->GetFontMgr()->GetFixedFace(pData, size, 0); |
+} |
+ |
+} // namespace |
+ |
CFX_Font::CFX_Font() { |
m_pSubstFont = NULL; |
m_Face = NULL; |
@@ -90,28 +100,12 @@ int CFX_Font::GetGlyphWidth(FX_DWORD glyph_index) { |
FXFT_Get_Glyph_HoriAdvance(m_Face)); |
return width; |
} |
-static FXFT_Face FT_LoadFont(uint8_t* pData, int size) { |
- FXFT_Library library; |
- if (CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary == NULL) { |
- FXFT_Init_FreeType(&CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary); |
- } |
- library = CFX_GEModule::Get()->GetFontMgr()->m_FTLibrary; |
- FXFT_Face face = NULL; |
- int error = FXFT_New_Memory_Face(library, pData, size, 0, &face); |
- if (error) { |
- return NULL; |
- } |
- error = FXFT_Set_Pixel_Sizes(face, 64, 64); |
- if (error) { |
- return NULL; |
- } |
- return face; |
-} |
+ |
FX_BOOL CFX_Font::LoadEmbedded(const uint8_t* data, FX_DWORD size) { |
m_pFontDataAllocation = FX_Alloc(uint8_t, size); |
FXSYS_memcpy(m_pFontDataAllocation, data, size); |
- m_Face = FT_LoadFont((uint8_t*)m_pFontDataAllocation, size); |
- m_pFontData = (uint8_t*)m_pFontDataAllocation; |
+ m_Face = FT_LoadFont(m_pFontDataAllocation, size); |
+ m_pFontData = m_pFontDataAllocation; |
m_bEmbedded = TRUE; |
m_dwSize = size; |
return m_Face != NULL; |