1ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Copyright 2014 PDFium Authors. All rights reserved. 2ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Use of this source code is governed by a BSD-style license that can be 3ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// found in the LICENSE file. 4ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 5ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 6ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 7ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#ifndef _FPF_SKIA_FONT_H_ 8ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#define _FPF_SKIA_FONT_H_ 9ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#if _FX_OS_ == _FX_ANDROID_ 10ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CFPF_SkiaFontDescriptor; 11ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CFPF_SkiaFontMgr; 12ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass SkTypeface; 13ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovclass CFPF_SkiaFont : public IFPF_Font, public CFX_Object 14ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov{ 15ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovpublic: 16ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFPF_SkiaFont(); 17ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual ~CFPF_SkiaFont(); 18ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual void Release(); 19ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual IFPF_Font* Retain(); 20ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 21ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FPF_HFONT GetHandle(); 22ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 23ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual CFX_ByteString GetFamilyName(); 24ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual CFX_WideString GetPsName(); 25ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 26ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_DWORD GetFontStyle() const 27ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 28ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return m_dwStyle; 29ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 30ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BYTE GetCharset() const 31ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov { 32ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov return m_uCharset; 33ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov } 34ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 35ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetGlyphIndex(FX_WCHAR wUnicode); 36ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetGlyphWidth(FX_INT32 iGlyphIndex); 37ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 38ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetAscent() const; 39ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetDescent() const; 40ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 41ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL GetGlyphBBox(FX_INT32 iGlyphIndex, FX_RECT &rtBBox); 42ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_BOOL GetBBox(FX_RECT &rtBBox); 43ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov 44ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetHeight() const; 45ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_INT32 GetItalicAngle() const; 46ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov virtual FX_DWORD GetFontData(FX_DWORD dwTable, FX_LPBYTE pBuffer, FX_DWORD dwSize); 47ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BOOL InitFont(CFPF_SkiaFontMgr *pFontMgr, CFPF_SkiaFontDescriptor *pFontDes, FX_BSTR bsFamily, FX_DWORD dwStyle, FX_BYTE uCharset); 48ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganovprotected: 49ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFPF_SkiaFontMgr *m_pFontMgr; 50ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov CFPF_SkiaFontDescriptor *m_pFontDes; 51ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FXFT_Face m_Face; 52ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_DWORD m_dwStyle; 53ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_BYTE m_uCharset; 54ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov FX_DWORD m_dwRefCount; 55ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov}; 56ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 57ee451cb395940862dad63c85adfe8f2fd55e864cSvet Ganov#endif 58