From dd17a14f060c39f50ca24522b202ffef5436dd43 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Wed, 27 Sep 2017 15:34:54 -0400 Subject: Move CFX_Font definition to cfx_font.h This CL moves the CFX_Font definition out of fx_font.h and into cfx_font.h to match the cfx_font.cpp implementation. Change-Id: Icc2fc7463fa4b9d0bec925e80b60a638136a83a1 Reviewed-on: https://pdfium-review.googlesource.com/14951 Commit-Queue: dsinclair Reviewed-by: Ryan Harrison --- core/fpdfapi/font/cpdf_font.h | 1 + core/fxge/apple/fx_apple_platform.cpp | 1 + core/fxge/cfx_facecache.cpp | 1 + core/fxge/cfx_facecache.h | 2 + core/fxge/cfx_font.cpp | 2 +- core/fxge/cfx_font.h | 127 +++++++++++++++++++++++++++++ core/fxge/cfx_fontcache.h | 1 + core/fxge/cfx_renderdevice.cpp | 1 + core/fxge/cfx_unicodeencoding.cpp | 1 + core/fxge/cfx_unicodeencoding.h | 2 + core/fxge/fx_font.h | 98 ---------------------- core/fxge/skia/fx_skia_device.cpp | 1 + core/fxge/skia/fx_skia_device_unittest.cpp | 1 + core/fxge/win32/fx_win32_print.cpp | 1 + fpdfsdk/cfx_systemhandler.cpp | 1 + fxbarcode/oned/BC_OneDimWriter.cpp | 1 + xfa/fde/cfde_textout.cpp | 1 + xfa/fgas/font/cfgas_fontmgr.cpp | 1 + xfa/fgas/font/cfgas_gefont.cpp | 1 + 19 files changed, 146 insertions(+), 99 deletions(-) create mode 100644 core/fxge/cfx_font.h diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h index 1611e56f2a..0468bcb32a 100644 --- a/core/fpdfapi/font/cpdf_font.h +++ b/core/fpdfapi/font/cpdf_font.h @@ -15,6 +15,7 @@ #include "core/fxcrt/fx_string.h" #include "core/fxcrt/fx_system.h" #include "core/fxcrt/unowned_ptr.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/fx_font.h" class CFX_SubstFont; diff --git a/core/fxge/apple/fx_apple_platform.cpp b/core/fxge/apple/fx_apple_platform.cpp index b82e59cfd1..3c142c6984 100644 --- a/core/fxge/apple/fx_apple_platform.cpp +++ b/core/fxge/apple/fx_apple_platform.cpp @@ -16,6 +16,7 @@ #include "core/fxge/apple/apple_int.h" #include "core/fxge/cfx_cliprgn.h" #include "core/fxge/cfx_facecache.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_gemodule.h" #include "core/fxge/cfx_renderdevice.h" #include "core/fxge/fx_freetype.h" diff --git a/core/fxge/cfx_facecache.cpp b/core/fxge/cfx_facecache.cpp index 782e5f9d07..07d7339c2d 100644 --- a/core/fxge/cfx_facecache.cpp +++ b/core/fxge/cfx_facecache.cpp @@ -12,6 +12,7 @@ #include #include "core/fxcrt/fx_codepage.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_fontmgr.h" #include "core/fxge/cfx_gemodule.h" #include "core/fxge/cfx_pathdata.h" diff --git a/core/fxge/cfx_facecache.h b/core/fxge/cfx_facecache.h index ef5652ed20..95f01d2f10 100644 --- a/core/fxge/cfx_facecache.h +++ b/core/fxge/cfx_facecache.h @@ -18,6 +18,8 @@ #include "third_party/skia/include/core/SkTypeface.h" #endif +class CFX_Font; + class CFX_FaceCache { public: explicit CFX_FaceCache(FXFT_Face face); diff --git a/core/fxge/cfx_font.cpp b/core/fxge/cfx_font.cpp index 87ce9b53ec..e893c13357 100644 --- a/core/fxge/cfx_font.cpp +++ b/core/fxge/cfx_font.cpp @@ -4,7 +4,7 @@ // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com -#include "core/fxge/fx_font.h" +#include "core/fxge/cfx_font.h" #include #include diff --git a/core/fxge/cfx_font.h b/core/fxge/cfx_font.h new file mode 100644 index 0000000000..d9f6debc5f --- /dev/null +++ b/core/fxge/cfx_font.h @@ -0,0 +1,127 @@ +// Copyright 2017 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 + +#ifndef CORE_FXGE_CFX_FONT_H_ +#define CORE_FXGE_CFX_FONT_H_ + +#include +#include +#include + +#include "core/fxcrt/bytestring.h" +#include "core/fxcrt/fx_coordinates.h" +#include "core/fxcrt/unowned_ptr.h" +#include "core/fxge/fx_freetype.h" + +#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_ +#include "core/fxge/fx_font.h" +#endif + +class CFX_FaceCache; +class CFX_GlyphBitmap; +class CFX_PathData; +class CFX_SubstFont; +class IFX_SeekableReadStream; + +class CFX_Font { + public: + CFX_Font(); + ~CFX_Font(); + + void LoadSubst(const ByteString& face_name, + bool bTrueType, + uint32_t flags, + int weight, + int italic_angle, + int CharsetCP, + bool bVertical); + + bool LoadEmbedded(const uint8_t* data, uint32_t size); + FXFT_Face GetFace() const { return m_Face; } + CFX_SubstFont* GetSubstFont() const { return m_pSubstFont.get(); } + +#ifdef PDF_ENABLE_XFA + bool LoadFile(const RetainPtr& pFile, int nFaceIndex); + + bool LoadClone(const CFX_Font* pFont); + void SetFace(FXFT_Face face); + void SetSubstFont(std::unique_ptr subst) { + m_pSubstFont = std::move(subst); + } +#endif // PDF_ENABLE_XFA + + const CFX_GlyphBitmap* LoadGlyphBitmap(uint32_t glyph_index, + bool bFontStyle, + const CFX_Matrix* pMatrix, + int dest_width, + int anti_alias, + int& text_flags) const; + const CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width) const; + +#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_ + CFX_TypeFace* GetDeviceCache() const; +#endif + + int GetGlyphWidth(uint32_t glyph_index); + int GetAscent() const; + int GetDescent() const; + bool GetGlyphBBox(uint32_t glyph_index, FX_RECT& bbox); + bool IsItalic() const; + bool IsBold() const; + bool IsFixedWidth() const; + bool IsVertical() const { return m_bVertical; } + ByteString GetPsName() const; + ByteString GetFamilyName() const; + ByteString GetFaceName() const; + bool IsTTFont() const; + bool GetBBox(FX_RECT& bbox); + bool IsEmbedded() const { return m_bEmbedded; } + uint8_t* GetSubData() const { return m_pGsubData; } + void SetSubData(uint8_t* data) { m_pGsubData = data; } +#if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ + void* GetPlatformFont() const { return m_pPlatformFont; } + void SetPlatformFont(void* font) { m_pPlatformFont = font; } +#endif + uint8_t* GetFontData() const { return m_pFontData; } + uint32_t GetSize() const { return m_dwSize; } + void AdjustMMParams(int glyph_index, int width, int weight) const; + + static const size_t kAngleSkewArraySize = 30; + static const char s_AngleSkew[kAngleSkewArraySize]; + static const size_t kWeightPowArraySize = 100; + static const uint8_t s_WeightPow[kWeightPowArraySize]; + static const uint8_t s_WeightPow_11[kWeightPowArraySize]; + static const uint8_t s_WeightPow_SHIFTJIS[kWeightPowArraySize]; + +#ifdef PDF_ENABLE_XFA + protected: + bool m_bShallowCopy; + FXFT_StreamRec* m_pOwnedStream; +#endif // PDF_ENABLE_XFA + + private: + friend class CFX_FaceCache; + CFX_PathData* LoadGlyphPathImpl(uint32_t glyph_index, int dest_width) const; + CFX_FaceCache* GetFaceCache() const; + void ReleasePlatformResource(); + void DeleteFace(); + void ClearFaceCache(); + + FXFT_Face m_Face; + mutable UnownedPtr m_FaceCache; + std::unique_ptr m_pSubstFont; + std::vector m_pFontDataAllocation; + uint8_t* m_pFontData; + uint8_t* m_pGsubData; + uint32_t m_dwSize; +#if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ + void* m_pPlatformFont; +#endif + bool m_bEmbedded; + bool m_bVertical; +}; + +#endif // CORE_FXGE_CFX_FONT_H_ diff --git a/core/fxge/cfx_fontcache.h b/core/fxge/cfx_fontcache.h index 52ac3fa342..a14ed09a1e 100644 --- a/core/fxge/cfx_fontcache.h +++ b/core/fxge/cfx_fontcache.h @@ -11,6 +11,7 @@ #include #include "core/fxcrt/fx_system.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/fx_font.h" #include "core/fxge/fx_freetype.h" diff --git a/core/fxge/cfx_renderdevice.cpp b/core/fxge/cfx_renderdevice.cpp index 9c44fbc1ef..9ed77e8b7f 100644 --- a/core/fxge/cfx_renderdevice.cpp +++ b/core/fxge/cfx_renderdevice.cpp @@ -14,6 +14,7 @@ #include "core/fxcrt/fx_safe_types.h" #include "core/fxge/cfx_defaultrenderdevice.h" #include "core/fxge/cfx_facecache.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_gemodule.h" #include "core/fxge/cfx_graphstatedata.h" #include "core/fxge/cfx_pathdata.h" diff --git a/core/fxge/cfx_unicodeencoding.cpp b/core/fxge/cfx_unicodeencoding.cpp index 494ae33bb0..446b62c431 100644 --- a/core/fxge/cfx_unicodeencoding.cpp +++ b/core/fxge/cfx_unicodeencoding.cpp @@ -7,6 +7,7 @@ #include "core/fxge/cfx_unicodeencoding.h" #include "core/fxcrt/fx_codepage.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/fx_font.h" #include "core/fxge/fx_freetype.h" diff --git a/core/fxge/cfx_unicodeencoding.h b/core/fxge/cfx_unicodeencoding.h index 7d020894c0..d64d8877d9 100644 --- a/core/fxge/cfx_unicodeencoding.h +++ b/core/fxge/cfx_unicodeencoding.h @@ -32,6 +32,8 @@ #define FXFM_ENCODING_APPLE_ROMAN FXFM_ENC_TAG('a', 'r', 'm', 'n') #endif // PDF_ENABLE_XFA +class CFX_Font; + class CFX_UnicodeEncoding { public: explicit CFX_UnicodeEncoding(CFX_Font* pFont); diff --git a/core/fxge/fx_font.h b/core/fxge/fx_font.h index 598402a7f5..634429e2f6 100644 --- a/core/fxge/fx_font.h +++ b/core/fxge/fx_font.h @@ -78,104 +78,6 @@ class ScopedFontTransform { FT_Face m_Face; }; -class CFX_Font { - public: - CFX_Font(); - ~CFX_Font(); - - void LoadSubst(const ByteString& face_name, - bool bTrueType, - uint32_t flags, - int weight, - int italic_angle, - int CharsetCP, - bool bVertical); - - bool LoadEmbedded(const uint8_t* data, uint32_t size); - FXFT_Face GetFace() const { return m_Face; } - CFX_SubstFont* GetSubstFont() const { return m_pSubstFont.get(); } - -#ifdef PDF_ENABLE_XFA - bool LoadFile(const RetainPtr& pFile, int nFaceIndex); - - bool LoadClone(const CFX_Font* pFont); - void SetFace(FXFT_Face face); - void SetSubstFont(std::unique_ptr subst) { - m_pSubstFont = std::move(subst); - } -#endif // PDF_ENABLE_XFA - - const CFX_GlyphBitmap* LoadGlyphBitmap(uint32_t glyph_index, - bool bFontStyle, - const CFX_Matrix* pMatrix, - int dest_width, - int anti_alias, - int& text_flags) const; - const CFX_PathData* LoadGlyphPath(uint32_t glyph_index, int dest_width) const; - -#if defined _SKIA_SUPPORT_ || defined _SKIA_SUPPORT_PATHS_ - CFX_TypeFace* GetDeviceCache() const; -#endif - - int GetGlyphWidth(uint32_t glyph_index); - int GetAscent() const; - int GetDescent() const; - bool GetGlyphBBox(uint32_t glyph_index, FX_RECT& bbox); - bool IsItalic() const; - bool IsBold() const; - bool IsFixedWidth() const; - bool IsVertical() const { return m_bVertical; } - ByteString GetPsName() const; - ByteString GetFamilyName() const; - ByteString GetFaceName() const; - bool IsTTFont() const; - bool GetBBox(FX_RECT& bbox); - bool IsEmbedded() const { return m_bEmbedded; } - uint8_t* GetSubData() const { return m_pGsubData; } - void SetSubData(uint8_t* data) { m_pGsubData = data; } -#if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ - void* GetPlatformFont() const { return m_pPlatformFont; } - void SetPlatformFont(void* font) { m_pPlatformFont = font; } -#endif - uint8_t* GetFontData() const { return m_pFontData; } - uint32_t GetSize() const { return m_dwSize; } - void AdjustMMParams(int glyph_index, int width, int weight) const; - - static const size_t kAngleSkewArraySize = 30; - static const char s_AngleSkew[kAngleSkewArraySize]; - static const size_t kWeightPowArraySize = 100; - static const uint8_t s_WeightPow[kWeightPowArraySize]; - static const uint8_t s_WeightPow_11[kWeightPowArraySize]; - static const uint8_t s_WeightPow_SHIFTJIS[kWeightPowArraySize]; - -#ifdef PDF_ENABLE_XFA - protected: - bool m_bShallowCopy; - FXFT_StreamRec* m_pOwnedStream; -#endif // PDF_ENABLE_XFA - - private: - friend class CFX_FaceCache; - CFX_PathData* LoadGlyphPathImpl(uint32_t glyph_index, int dest_width) const; - CFX_FaceCache* GetFaceCache() const; - void ReleasePlatformResource(); - void DeleteFace(); - void ClearFaceCache(); - - FXFT_Face m_Face; - mutable UnownedPtr m_FaceCache; - std::unique_ptr m_pSubstFont; - std::vector m_pFontDataAllocation; - uint8_t* m_pFontData; - uint8_t* m_pGsubData; - uint32_t m_dwSize; -#if _FX_PLATFORM_ == _FX_PLATFORM_APPLE_ - void* m_pPlatformFont; -#endif - bool m_bEmbedded; - bool m_bVertical; -}; - class CFX_FontFaceInfo { public: CFX_FontFaceInfo(ByteString filePath, diff --git a/core/fxge/skia/fx_skia_device.cpp b/core/fxge/skia/fx_skia_device.cpp index c8af215f26..8038ec5de1 100644 --- a/core/fxge/skia/fx_skia_device.cpp +++ b/core/fxge/skia/fx_skia_device.cpp @@ -18,6 +18,7 @@ #include "core/fxcrt/fx_extension.h" #include "core/fxcrt/fx_memory.h" #include "core/fxge/cfx_defaultrenderdevice.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_graphstatedata.h" #include "core/fxge/cfx_pathdata.h" #include "core/fxge/cfx_renderdevice.h" diff --git a/core/fxge/skia/fx_skia_device_unittest.cpp b/core/fxge/skia/fx_skia_device_unittest.cpp index a959b6e2dc..7cb28cfb49 100644 --- a/core/fxge/skia/fx_skia_device_unittest.cpp +++ b/core/fxge/skia/fx_skia_device_unittest.cpp @@ -4,6 +4,7 @@ #include "core/fxge/skia/fx_skia_device.h" #include "core/fxge/cfx_defaultrenderdevice.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_graphstatedata.h" #include "core/fxge/cfx_pathdata.h" #include "core/fxge/cfx_renderdevice.h" diff --git a/core/fxge/win32/fx_win32_print.cpp b/core/fxge/win32/fx_win32_print.cpp index 2ff9fd07aa..df9e8387d5 100644 --- a/core/fxge/win32/fx_win32_print.cpp +++ b/core/fxge/win32/fx_win32_print.cpp @@ -11,6 +11,7 @@ #include #include "core/fxcrt/fx_system.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_windowsrenderdevice.h" #include "core/fxge/dib/cfx_dibextractor.h" #include "core/fxge/dib/cfx_imagerenderer.h" diff --git a/fpdfsdk/cfx_systemhandler.cpp b/fpdfsdk/cfx_systemhandler.cpp index 9534d7bd19..bbb029319c 100644 --- a/fpdfsdk/cfx_systemhandler.cpp +++ b/fpdfsdk/cfx_systemhandler.cpp @@ -10,6 +10,7 @@ #include "core/fpdfapi/parser/cpdf_document.h" #include "core/fxcrt/fx_codepage.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_fontmapper.h" #include "core/fxge/cfx_fontmgr.h" #include "core/fxge/cfx_gemodule.h" diff --git a/fxbarcode/oned/BC_OneDimWriter.cpp b/fxbarcode/oned/BC_OneDimWriter.cpp index dc0d48c5bd..e198b6c29d 100644 --- a/fxbarcode/oned/BC_OneDimWriter.cpp +++ b/fxbarcode/oned/BC_OneDimWriter.cpp @@ -27,6 +27,7 @@ #include #include "core/fxge/cfx_defaultrenderdevice.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_graphstatedata.h" #include "core/fxge/cfx_pathdata.h" #include "core/fxge/cfx_renderdevice.h" diff --git a/xfa/fde/cfde_textout.cpp b/xfa/fde/cfde_textout.cpp index 9f96b77b63..8a1f56876c 100644 --- a/xfa/fde/cfde_textout.cpp +++ b/xfa/fde/cfde_textout.cpp @@ -11,6 +11,7 @@ #include "core/fxcrt/fx_coordinates.h" #include "core/fxcrt/fx_system.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_pathdata.h" #include "third_party/base/ptr_util.h" #include "third_party/base/stl_util.h" diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp index 936b46f380..1809a7a52c 100644 --- a/xfa/fgas/font/cfgas_fontmgr.cpp +++ b/xfa/fgas/font/cfgas_fontmgr.cpp @@ -12,6 +12,7 @@ #include "core/fxcrt/cfx_memorystream.h" #include "core/fxcrt/fx_codepage.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_fontmapper.h" #include "core/fxge/cfx_fontmgr.h" #include "core/fxge/cfx_gemodule.h" diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp index 3e7a635b51..a107607655 100644 --- a/xfa/fgas/font/cfgas_gefont.cpp +++ b/xfa/fgas/font/cfgas_gefont.cpp @@ -10,6 +10,7 @@ #include #include "core/fxcrt/fx_codepage.h" +#include "core/fxge/cfx_font.h" #include "core/fxge/cfx_substfont.h" #include "core/fxge/cfx_unicodeencoding.h" #include "core/fxge/cfx_unicodeencodingex.h" -- cgit v1.2.3