Merge to XFA: Fix ALL the include guards.
[pdfium.git] / core / src / fxge / win32 / dwrite_int.h
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_SRC_FXGE_WIN32_DWRITE_INT_H_
8 #define CORE_SRC_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 {
31 public:
32     CDWriteExt();
33     ~CDWriteExt();
34
35     void                        Load();
36     void            Unload();
37
38     FX_BOOL                     IsAvailable()
39     {
40         return m_pDWriteFactory != NULL;
41     }
42
43     void*                       DwCreateFontFaceFromStream(FX_LPBYTE pData, FX_DWORD size, int simulation_style);
44     FX_BOOL         DwCreateRenderingTarget(CFX_DIBitmap* pSrc, void** renderTarget);
45     void            DwDeleteRenderingTarget(void* renderTarget);
46     FX_BOOL                     DwRendingString(void* renderTarget, CFX_ClipRgn* pClipRgn, FX_RECT& stringRect, CFX_AffineMatrix* pMatrix,
47                                     void *font, FX_FLOAT font_size, FX_ARGB text_color,
48                                     int glyph_count, unsigned short* glyph_indices,
49                                     FX_FLOAT baselineOriginX, FX_FLOAT baselineOriginY,
50                                     void* glyph_offsets,
51                                     FX_FLOAT* glyph_advances);
52     void                        DwDeleteFont(void* pFont);
53
54 protected:
55     void*                       m_hModule;
56     void*                       m_pDWriteFactory;
57     void*                   m_pDwFontContext;
58     void*               m_pDwTextRenderer;
59 };
60
61 #endif  // CORE_SRC_FXGE_WIN32_DWRITE_INT_H_