OLD | NEW |
| (Empty) |
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 public: | |
31 CDWriteExt(); | |
32 ~CDWriteExt(); | |
33 | |
34 void Load(); | |
35 void Unload(); | |
36 | |
37 FX_BOOL IsAvailable() { return m_pDWriteFactory != NULL; } | |
38 | |
39 void* DwCreateFontFaceFromStream(uint8_t* pData, | |
40 FX_DWORD size, | |
41 int simulation_style); | |
42 FX_BOOL DwCreateRenderingTarget(CFX_DIBitmap* pSrc, void** renderTarget); | |
43 void DwDeleteRenderingTarget(void* renderTarget); | |
44 FX_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_SRC_FXGE_WIN32_DWRITE_INT_H_ | |
OLD | NEW |