Home | History | Annotate | Download | only in win32
      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_
     67