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