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 "core/include/fxge/fx_ge.h"
      8 
      9 #include "text_int.h"
     10 
     11 static CFX_GEModule* g_pGEModule = NULL;
     12 CFX_GEModule::CFX_GEModule(const char** pUserFontPaths) {
     13   m_pFontCache = NULL;
     14   m_pFontMgr = NULL;
     15   m_FTLibrary = NULL;
     16   m_pCodecModule = NULL;
     17   m_pPlatformData = NULL;
     18   m_pUserFontPaths = pUserFontPaths;
     19 }
     20 CFX_GEModule::~CFX_GEModule() {
     21   delete m_pFontCache;
     22   m_pFontCache = NULL;
     23   delete m_pFontMgr;
     24   m_pFontMgr = NULL;
     25   DestroyPlatform();
     26 }
     27 CFX_GEModule* CFX_GEModule::Get() {
     28   return g_pGEModule;
     29 }
     30 void CFX_GEModule::Create(const char** userFontPaths) {
     31   g_pGEModule = new CFX_GEModule(userFontPaths);
     32   g_pGEModule->m_pFontMgr = new CFX_FontMgr;
     33   g_pGEModule->InitPlatform();
     34   g_pGEModule->SetTextGamma(2.2f);
     35 }
     36 void CFX_GEModule::Use(CFX_GEModule* pModule) {
     37   g_pGEModule = pModule;
     38 }
     39 void CFX_GEModule::Destroy() {
     40   delete g_pGEModule;
     41   g_pGEModule = NULL;
     42 }
     43 CFX_FontCache* CFX_GEModule::GetFontCache() {
     44   if (!m_pFontCache) {
     45     m_pFontCache = new CFX_FontCache();
     46   }
     47   return m_pFontCache;
     48 }
     49 void CFX_GEModule::SetTextGamma(FX_FLOAT gammaValue) {
     50   gammaValue /= 2.2f;
     51   int i = 0;
     52   while (i < 256) {
     53     m_GammaValue[i] =
     54         (uint8_t)(FXSYS_pow((FX_FLOAT)i / 255, gammaValue) * 255.0f + 0.5f);
     55     i++;
     56   }
     57 }
     58 const uint8_t* CFX_GEModule::GetTextGammaTable() {
     59   return m_GammaValue;
     60 }
     61