summaryrefslogtreecommitdiff
path: root/xfa/src/fgas/src/font/fx_gdifont.h
diff options
context:
space:
mode:
Diffstat (limited to 'xfa/src/fgas/src/font/fx_gdifont.h')
-rw-r--r--xfa/src/fgas/src/font/fx_gdifont.h212
1 files changed, 106 insertions, 106 deletions
diff --git a/xfa/src/fgas/src/font/fx_gdifont.h b/xfa/src/fgas/src/font/fx_gdifont.h
index c50563b286..648a37c521 100644
--- a/xfa/src/fgas/src/font/fx_gdifont.h
+++ b/xfa/src/fgas/src/font/fx_gdifont.h
@@ -1,106 +1,106 @@
-// 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
-
-#ifndef _FX_GDIOBJECT_IMP
-#define _FX_GDIOBJECT_IMP
-#ifdef _FXPLUS
-#if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || \
- _FX_OS_ == _FX_WIN64_
-typedef struct _FX_GDIGOCACHE {
- GLYPHMETRICS gm;
- uint8_t* pOutline;
-} FX_GDIGOCACHE, *FX_LPGDIGOCACHE;
-typedef FX_GDIGOCACHE const* FX_LPCGDIGOCACHE;
-class CFX_GdiFontCache {
- public:
- CFX_GdiFontCache();
- ~CFX_GdiFontCache();
- void SetCachedGlyphOutline(FX_DWORD dwGlyph,
- const GLYPHMETRICS& gm,
- uint8_t* pOutline);
- FX_LPCGDIGOCACHE GetCachedGlyphOutline(FX_DWORD dwGlyph) const;
-
- protected:
- CFX_MapPtrToPtr m_GlyphMap;
-};
-class CFX_GdiFont : public IFX_Font, public CFX_ThreadLock {
- public:
- CFX_GdiFont(IFX_FontMgr* pFontMgr);
- ~CFX_GdiFont();
- virtual void Release();
- virtual IFX_Font* Retain();
- FX_BOOL LoadFont(const FX_WCHAR* pszFontFamily,
- FX_DWORD dwFontStyles,
- FX_WORD wCodePage);
- FX_BOOL LoadFont(const uint8_t* pBuffer, int32_t iLength);
- FX_BOOL LoadFont(const FX_WCHAR* pszFileName);
- FX_BOOL LoadFont(IFX_Stream* pFontStream);
- FX_BOOL LoadFont(const LOGFONTW& lf);
- virtual IFX_Font* Derive(FX_DWORD dwFontStyles, FX_WORD wCodePage = 0) {
- return NULL;
- }
- virtual void GetFamilyName(CFX_WideString& wsFamily) const;
- virtual FX_DWORD GetFontStyles() const { return m_dwStyles; }
- virtual uint8_t GetCharSet() const { return m_LogFont.lfCharSet; }
- virtual FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
- int32_t& iWidth,
- FX_BOOL bCharCode = FALSE);
- virtual int32_t GetGlyphIndex(FX_WCHAR wUnicode, FX_BOOL bCharCode = FALSE);
- virtual int32_t GetAscent() const;
- virtual int32_t GetDescent() const;
- virtual FX_BOOL GetCharBBox(FX_WCHAR wUnicode,
- CFX_Rect& bbox,
- FX_BOOL bCharCode = FALSE);
- virtual FX_BOOL GetBBox(CFX_Rect& bbox);
- virtual int32_t GetItalicAngle() const;
- virtual void Reset();
- FX_DWORD GetGlyphDIBits(int32_t iGlyphIndex,
- FX_ARGB argb,
- const MAT2* pMatrix,
- GLYPHMETRICS& gm,
- void* pBuffer,
- FX_DWORD bufSize);
- FX_DWORD GetHashCode() const;
-
- protected:
- IFX_FontMgr* m_pFontMgr;
- int32_t m_iRefCount;
- CFX_WordDiscreteArray m_WidthCache;
- OUTLINETEXTMETRICW m_OutlineTM;
- HGDIOBJ m_hOldFont;
- HFONT m_hFont;
- HDC m_hDC;
- LOGFONTW m_LogFont;
- CFX_WideString m_wsFontFileName;
- CFX_WideStringArray m_FontFamilies;
- HANDLE m_hRes;
- FX_DWORD m_dwStyles;
- CFX_PtrArray m_SubstFonts;
- CFX_MapPtrToPtr m_FontMapper;
- CFX_MapPtrToPtr m_FontCache;
- void ClearCache();
- int32_t GetFontFamilies(Gdiplus::FontCollection& fc);
- void RetrieveFontStyles();
- IFX_Font* GetSubstFont(int32_t iGlyphIndex) const;
- FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
- int32_t& iWidth,
- FX_BOOL bRecursive,
- FX_BOOL bCharCode = FALSE);
- int32_t GetGlyphIndex(FX_WCHAR wUnicode,
- FX_BOOL bRecursive,
- IFX_Font** ppFont,
- FX_BOOL bCharCode = FALSE);
- FX_DWORD GetMAT2HashCode(const FIXED* pFixed);
- void CreateGlyphBitmap(int32_t iWidth,
- int32_t iHeight,
- uint8_t* pOutline,
- FX_DWORD* pDIB,
- FX_ARGB argb);
- friend class CFX_GdiFontMgr;
-};
-#endif
-#endif
-#endif
+// 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
+
+#ifndef _FX_GDIOBJECT_IMP
+#define _FX_GDIOBJECT_IMP
+#ifdef _FXPLUS
+#if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || \
+ _FX_OS_ == _FX_WIN64_
+typedef struct _FX_GDIGOCACHE {
+ GLYPHMETRICS gm;
+ uint8_t* pOutline;
+} FX_GDIGOCACHE, *FX_LPGDIGOCACHE;
+typedef FX_GDIGOCACHE const* FX_LPCGDIGOCACHE;
+class CFX_GdiFontCache {
+ public:
+ CFX_GdiFontCache();
+ ~CFX_GdiFontCache();
+ void SetCachedGlyphOutline(FX_DWORD dwGlyph,
+ const GLYPHMETRICS& gm,
+ uint8_t* pOutline);
+ FX_LPCGDIGOCACHE GetCachedGlyphOutline(FX_DWORD dwGlyph) const;
+
+ protected:
+ CFX_MapPtrToPtr m_GlyphMap;
+};
+class CFX_GdiFont : public IFX_Font, public CFX_ThreadLock {
+ public:
+ CFX_GdiFont(IFX_FontMgr* pFontMgr);
+ ~CFX_GdiFont();
+ virtual void Release();
+ virtual IFX_Font* Retain();
+ FX_BOOL LoadFont(const FX_WCHAR* pszFontFamily,
+ FX_DWORD dwFontStyles,
+ FX_WORD wCodePage);
+ FX_BOOL LoadFont(const uint8_t* pBuffer, int32_t iLength);
+ FX_BOOL LoadFont(const FX_WCHAR* pszFileName);
+ FX_BOOL LoadFont(IFX_Stream* pFontStream);
+ FX_BOOL LoadFont(const LOGFONTW& lf);
+ virtual IFX_Font* Derive(FX_DWORD dwFontStyles, FX_WORD wCodePage = 0) {
+ return NULL;
+ }
+ virtual void GetFamilyName(CFX_WideString& wsFamily) const;
+ virtual FX_DWORD GetFontStyles() const { return m_dwStyles; }
+ virtual uint8_t GetCharSet() const { return m_LogFont.lfCharSet; }
+ virtual FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
+ int32_t& iWidth,
+ FX_BOOL bCharCode = FALSE);
+ virtual int32_t GetGlyphIndex(FX_WCHAR wUnicode, FX_BOOL bCharCode = FALSE);
+ virtual int32_t GetAscent() const;
+ virtual int32_t GetDescent() const;
+ virtual FX_BOOL GetCharBBox(FX_WCHAR wUnicode,
+ CFX_Rect& bbox,
+ FX_BOOL bCharCode = FALSE);
+ virtual FX_BOOL GetBBox(CFX_Rect& bbox);
+ virtual int32_t GetItalicAngle() const;
+ virtual void Reset();
+ FX_DWORD GetGlyphDIBits(int32_t iGlyphIndex,
+ FX_ARGB argb,
+ const MAT2* pMatrix,
+ GLYPHMETRICS& gm,
+ void* pBuffer,
+ FX_DWORD bufSize);
+ FX_DWORD GetHashCode() const;
+
+ protected:
+ IFX_FontMgr* m_pFontMgr;
+ int32_t m_iRefCount;
+ CFX_WordDiscreteArray m_WidthCache;
+ OUTLINETEXTMETRICW m_OutlineTM;
+ HGDIOBJ m_hOldFont;
+ HFONT m_hFont;
+ HDC m_hDC;
+ LOGFONTW m_LogFont;
+ CFX_WideString m_wsFontFileName;
+ CFX_WideStringArray m_FontFamilies;
+ HANDLE m_hRes;
+ FX_DWORD m_dwStyles;
+ CFX_PtrArray m_SubstFonts;
+ CFX_MapPtrToPtr m_FontMapper;
+ CFX_MapPtrToPtr m_FontCache;
+ void ClearCache();
+ int32_t GetFontFamilies(Gdiplus::FontCollection& fc);
+ void RetrieveFontStyles();
+ IFX_Font* GetSubstFont(int32_t iGlyphIndex) const;
+ FX_BOOL GetCharWidth(FX_WCHAR wUnicode,
+ int32_t& iWidth,
+ FX_BOOL bRecursive,
+ FX_BOOL bCharCode = FALSE);
+ int32_t GetGlyphIndex(FX_WCHAR wUnicode,
+ FX_BOOL bRecursive,
+ IFX_Font** ppFont,
+ FX_BOOL bCharCode = FALSE);
+ FX_DWORD GetMAT2HashCode(const FIXED* pFixed);
+ void CreateGlyphBitmap(int32_t iWidth,
+ int32_t iHeight,
+ uint8_t* pOutline,
+ FX_DWORD* pDIB,
+ FX_ARGB argb);
+ friend class CFX_GdiFontMgr;
+};
+#endif
+#endif
+#endif