diff options
author | npm <npm@chromium.org> | 2016-08-04 17:22:14 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-04 17:22:14 -0700 |
commit | 26b86e625a2c9e0f4e6a01047fef051ffa81e40a (patch) | |
tree | 7960c029a579a3f40572cd6685b2d2851c9cf668 /core/fxge/ge/cfx_gemodule.cpp | |
parent | ff74356915d4c7f7c6eb16de1e9f403da4ecb6d5 (diff) | |
download | pdfium-26b86e625a2c9e0f4e6a01047fef051ffa81e40a.tar.xz |
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
Diffstat (limited to 'core/fxge/ge/cfx_gemodule.cpp')
-rw-r--r-- | core/fxge/ge/cfx_gemodule.cpp | 71 |
1 files changed, 71 insertions, 0 deletions
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<uint8_t>( + FXSYS_pow(static_cast<FX_FLOAT>(i) / 255, gammaValue) * 255.0f + 0.5f); + } +} + +const uint8_t* CFX_GEModule::GetTextGammaTable() const { + return m_GammaValue; +} |