Home | History | Annotate | Download | only in ge
      1 // Copyright 2014 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #include "../../../include/fxge/fx_ge.h"
      8 #include "text_int.h"
      9 static CFX_GEModule* g_pGEModule = NULL;
     10 CFX_GEModule::CFX_GEModule()
     11 {
     12     m_pFontCache = NULL;
     13     m_pFontMgr = NULL;
     14     m_FTLibrary = NULL;
     15     m_pCodecModule = NULL;
     16     m_pPlatformData = NULL;
     17 }
     18 CFX_GEModule::~CFX_GEModule()
     19 {
     20     if (m_pFontCache) {
     21         delete m_pFontCache;
     22     }
     23     m_pFontCache = NULL;
     24     if (m_pFontMgr) {
     25         delete m_pFontMgr;
     26     }
     27     m_pFontMgr = NULL;
     28     DestroyPlatform();
     29 }
     30 CFX_GEModule* CFX_GEModule::Get()
     31 {
     32     return g_pGEModule;
     33 }
     34 void CFX_GEModule::Create()
     35 {
     36     g_pGEModule = FX_NEW CFX_GEModule;
     37     if (!g_pGEModule) {
     38         return;
     39     }
     40     g_pGEModule->m_pFontMgr = FX_NEW CFX_FontMgr;
     41     g_pGEModule->InitPlatform();
     42     g_pGEModule->SetTextGamma(2.2f);
     43 }
     44 void CFX_GEModule::Use(CFX_GEModule* pModule)
     45 {
     46     g_pGEModule = pModule;
     47 }
     48 void CFX_GEModule::Destroy()
     49 {
     50     if (g_pGEModule) {
     51         delete g_pGEModule;
     52     }
     53     g_pGEModule = NULL;
     54 }
     55 CFX_FontCache* CFX_GEModule::GetFontCache()
     56 {
     57     if (m_pFontCache == NULL) {
     58         m_pFontCache = FX_NEW CFX_FontCache();
     59     }
     60     return m_pFontCache;
     61 }
     62 void CFX_GEModule::SetTextGamma(FX_FLOAT gammaValue)
     63 {
     64     gammaValue /= 2.2f;
     65     int i = 0;
     66     while (i < 256) {
     67         m_GammaValue[i] = (FX_BYTE)(FXSYS_pow((FX_FLOAT)i / 255, gammaValue) * 255.0f + 0.5f);
     68         i++;
     69     }
     70 }
     71 FX_LPCBYTE CFX_GEModule::GetTextGammaTable()
     72 {
     73     return m_GammaValue;
     74 }
     75 void CFX_GEModule::SetExtFontMapper(IFX_FontMapper* pFontMapper)
     76 {
     77     GetFontMgr()->m_pExtMapper = pFontMapper;
     78     pFontMapper->m_pFontMgr = m_pFontMgr;
     79 }
     80