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_FXGE_WIN32_DWRITE_INT_H_
      8 #define CORE_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   bool IsAvailable() { return !!m_pDWriteFactory; }
     38 
     39   void* DwCreateFontFaceFromStream(uint8_t* pData,
     40                                    uint32_t size,
     41                                    int simulation_style);
     42   bool DwCreateRenderingTarget(CFX_DIBitmap* pSrc, void** renderTarget);
     43   void DwDeleteRenderingTarget(void* renderTarget);
     44   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_FXGE_WIN32_DWRITE_INT_H_
     67