diff options
Diffstat (limited to 'core/fxge/cfx_gemodule.cpp')
-rw-r--r-- | core/fxge/cfx_gemodule.cpp | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/core/fxge/cfx_gemodule.cpp b/core/fxge/cfx_gemodule.cpp new file mode 100644 index 0000000000..a28a88243a --- /dev/null +++ b/core/fxge/cfx_gemodule.cpp @@ -0,0 +1,54 @@ +// Copyright 2016 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/cfx_gemodule.h" + +#include "core/fxge/cfx_folderfontinfo.h" +#include "core/fxge/cfx_fontcache.h" +#include "core/fxge/cfx_fontmgr.h" +#include "core/fxge/fx_text_int.h" +#include "third_party/base/ptr_util.h" + +namespace { + +CFX_GEModule* g_pGEModule = nullptr; + +} // namespace + +CFX_GEModule::CFX_GEModule() + : m_pFontMgr(pdfium::MakeUnique<CFX_FontMgr>()), + m_pPlatformData(nullptr), + m_pUserFontPaths(nullptr) {} + +CFX_GEModule::~CFX_GEModule() { + 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) { + ASSERT(g_pGEModule); + m_pUserFontPaths = userFontPaths; + InitPlatform(); +} + +CFX_FontCache* CFX_GEModule::GetFontCache() { + if (!m_pFontCache) + m_pFontCache = pdfium::MakeUnique<CFX_FontCache>(); + return m_pFontCache.get(); +} |