Kill IFX_FontMapper
[pdfium.git] / core / src / fxge / ge / fx_ge.cpp
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     delete m_pFontCache;
21     m_pFontCache = NULL;
22     delete m_pFontMgr;
23     m_pFontMgr = NULL;
24     DestroyPlatform();
25 }
26 CFX_GEModule* CFX_GEModule::Get()
27 {
28     return g_pGEModule;
29 }
30 void CFX_GEModule::Create()
31 {
32     g_pGEModule = new CFX_GEModule;
33     g_pGEModule->m_pFontMgr = new CFX_FontMgr;
34     g_pGEModule->InitPlatform();
35     g_pGEModule->SetTextGamma(2.2f);
36 }
37 void CFX_GEModule::Use(CFX_GEModule* pModule)
38 {
39     g_pGEModule = pModule;
40 }
41 void CFX_GEModule::Destroy()
42 {
43     delete g_pGEModule;
44     g_pGEModule = NULL;
45 }
46 CFX_FontCache* CFX_GEModule::GetFontCache()
47 {
48     if (m_pFontCache == NULL) {
49         m_pFontCache = new CFX_FontCache();
50     }
51     return m_pFontCache;
52 }
53 void CFX_GEModule::SetTextGamma(FX_FLOAT gammaValue)
54 {
55     gammaValue /= 2.2f;
56     int i = 0;
57     while (i < 256) {
58         m_GammaValue[i] = (uint8_t)(FXSYS_pow((FX_FLOAT)i / 255, gammaValue) * 255.0f + 0.5f);
59         i++;
60     }
61 }
62 const uint8_t* CFX_GEModule::GetTextGammaTable()
63 {
64     return m_GammaValue;
65 }