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 IsAvailable()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_ 67