| 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;
|
|
|