From 26b86e625a2c9e0f4e6a01047fef051ffa81e40a Mon Sep 17 00:00:00 2001 From: npm Date: Thu, 4 Aug 2016 17:22:14 -0700 Subject: Move CFX_GEModule into its own file This is the first CL in an attempt to split up the classes in fxge/include/fx_ge.h into their own files. Review-Url: https://codereview.chromium.org/2217663002 --- core/fxge/ge/cfx_gemodule.cpp | 71 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 core/fxge/ge/cfx_gemodule.cpp (limited to 'core/fxge/ge/cfx_gemodule.cpp') diff --git a/core/fxge/ge/cfx_gemodule.cpp b/core/fxge/ge/cfx_gemodule.cpp new file mode 100644 index 0000000000..98649a1c6e --- /dev/null +++ b/core/fxge/ge/cfx_gemodule.cpp @@ -0,0 +1,71 @@ +// Copyright 2014 PDFium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com + +#include "core/fxge/include/cfx_gemodule.h" + +#include "core/fxge/ge/cfx_folderfontinfo.h" +#include "core/fxge/ge/fx_text_int.h" +#include "core/fxge/include/cfx_fontmgr.h" + +namespace { + +CFX_GEModule* g_pGEModule = nullptr; + +} // namespace + +CFX_GEModule::CFX_GEModule() + : m_FTLibrary(nullptr), + m_pFontCache(nullptr), + m_pFontMgr(new CFX_FontMgr), + m_pCodecModule(nullptr), + m_pPlatformData(nullptr), + m_pUserFontPaths(nullptr) {} + +CFX_GEModule::~CFX_GEModule() { + delete m_pFontCache; + DestroyPlatform(); +} + +// static +CFX_GEModule* CFX_GEModule::Get() { + if (!g_pGEModule) + g_pGEModule = new CFX_GEModule(); + return g_pGEModule; +} + +// static +void CFX_GEModule::Destroy() { + ASSERT(g_pGEModule); + delete g_pGEModule; + g_pGEModule = nullptr; +} + +void CFX_GEModule::Init(const char** userFontPaths, + CCodec_ModuleMgr* pCodecModule) { + ASSERT(g_pGEModule); + m_pCodecModule = pCodecModule; + m_pUserFontPaths = userFontPaths; + InitPlatform(); + SetTextGamma(2.2f); +} + +CFX_FontCache* CFX_GEModule::GetFontCache() { + if (!m_pFontCache) + m_pFontCache = new CFX_FontCache(); + return m_pFontCache; +} + +void CFX_GEModule::SetTextGamma(FX_FLOAT gammaValue) { + gammaValue /= 2.2f; + for (int i = 0; i < 256; ++i) { + m_GammaValue[i] = static_cast( + FXSYS_pow(static_cast(i) / 255, gammaValue) * 255.0f + 0.5f); + } +} + +const uint8_t* CFX_GEModule::GetTextGammaTable() const { + return m_GammaValue; +} -- cgit v1.2.3