• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 
7 #ifndef CORE_FXGE_WIN32_DWRITE_INT_H_
8 #define CORE_FXGE_WIN32_DWRITE_INT_H_
9 
10 #ifndef DECLSPEC_UUID
11 #if (_MSC_VER >= 1100) && defined(__cplusplus)
12 #define DECLSPEC_UUID(x) __declspec(uuid(x))
13 #else
14 #define DECLSPEC_UUID(x)
15 #endif
16 #endif
17 #ifndef DECLSPEC_NOVTABLE
18 #if (_MSC_VER >= 1100) && defined(__cplusplus)
19 #define DECLSPEC_NOVTABLE __declspec(novtable)
20 #else
21 #define DECLSPEC_NOVTABLE
22 #endif
23 #endif
24 #if (WINVER < 0x0500)
25 #ifndef _MAC
26 DECLARE_HANDLE(HMONITOR);
27 #endif
28 #endif
29 class CDWriteExt {
30  public:
31   CDWriteExt();
32   ~CDWriteExt();
33 
34   void Load();
35   void Unload();
36 
IsAvailable()37   bool IsAvailable() { return !!m_pDWriteFactory; }
38 
39   void* DwCreateFontFaceFromStream(uint8_t* pData,
40                                    uint32_t size,
41                                    int simulation_style);
42   bool DwCreateRenderingTarget(CFX_DIBitmap* pSrc, void** renderTarget);
43   void DwDeleteRenderingTarget(void* renderTarget);
44   bool DwRendingString(void* renderTarget,
45                        CFX_ClipRgn* pClipRgn,
46                        FX_RECT& stringRect,
47                        CFX_Matrix* pMatrix,
48                        void* font,
49                        FX_FLOAT font_size,
50                        FX_ARGB text_color,
51                        int glyph_count,
52                        unsigned short* glyph_indices,
53                        FX_FLOAT baselineOriginX,
54                        FX_FLOAT baselineOriginY,
55                        void* glyph_offsets,
56                        FX_FLOAT* glyph_advances);
57   void DwDeleteFont(void* pFont);
58 
59  protected:
60   void* m_hModule;
61   void* m_pDWriteFactory;
62   void* m_pDwFontContext;
63   void* m_pDwTextRenderer;
64 };
65 
66 #endif  // CORE_FXGE_WIN32_DWRITE_INT_H_
67