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