Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 
      7 #ifndef DWRITE_2_H_INCLUDED
      8 #define DWRITE_2_H_INCLUDED
      9 
     10 #include <dwrite_1.h>
     11 
     12 typedef enum DWRITE_GRID_FIT_MODE
     13 {
     14     DWRITE_GRID_FIT_MODE_DEFAULT,
     15     DWRITE_GRID_FIT_MODE_DISABLED,
     16     DWRITE_GRID_FIT_MODE_ENABLED
     17 } DWRITE_GRID_FIT_MODE;
     18 
     19 #ifndef D3DCOLORVALUE_DEFINED
     20 #define D3DCOLORVALUE_DEFINED
     21 typedef struct _D3DCOLORVALUE {
     22     union {
     23         FLOAT r;
     24         FLOAT dvR;
     25     } DUMMYUNIONNAME1;
     26     union {
     27         FLOAT g;
     28         FLOAT dvG;
     29     } DUMMYUNIONNAME2;
     30     union {
     31         FLOAT b;
     32         FLOAT dvB;
     33     } DUMMYUNIONNAME3;
     34     union {
     35         FLOAT a;
     36         FLOAT dvA;
     37     } DUMMYUNIONNAME4;
     38 } D3DCOLORVALUE,*LPD3DCOLORVALUE;
     39 #endif /* D3DCOLORVALUE_DEFINED */
     40 
     41 typedef D3DCOLORVALUE DWRITE_COLOR_F;
     42 
     43 typedef struct DWRITE_COLOR_GLYPH_RUN
     44 {
     45     DWRITE_GLYPH_RUN glyphRun;
     46     DWRITE_GLYPH_RUN_DESCRIPTION *glyphRunDescription;
     47     FLOAT baselineOriginX;
     48     FLOAT baselineOriginY;
     49     DWRITE_COLOR_F runColor;
     50     UINT16 paletteIndex;
     51 } DWRITE_COLOR_GLYPH_RUN;
     52 
     53 #undef  INTERFACE
     54 #define INTERFACE IDWriteFontFallback
     55 DECLARE_INTERFACE_(IDWriteFontFallback,IUnknown)
     56 {
     57     BEGIN_INTERFACE
     58 
     59 #ifndef __cplusplus
     60     /* IUnknown methods */
     61     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     62     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     63     STDMETHOD_(ULONG, Release)(THIS) PURE;
     64 #endif
     65 
     66     STDMETHOD(MapCharacters)(THIS_
     67         IDWriteTextAnalysisSource *analysisSource,
     68         UINT32 textPosition,
     69         UINT32 textLength,
     70         IDWriteFontCollection *baseFontCollection,
     71         wchar_t const *baseFamilyName,
     72         DWRITE_FONT_WEIGHT baseWeight,
     73         DWRITE_FONT_STYLE baseStyle,
     74         DWRITE_FONT_STRETCH baseStretch,
     75         UINT32 *mappedLength,
     76         IDWriteFont **mappedFont,
     77         FLOAT *scale) PURE;
     78 
     79     END_INTERFACE
     80 };
     81 
     82 __CRT_UUID_DECL(IDWriteFontFallback, 0xefa008f9,0xf7a1,0x48bf,0xb0,0x5c,0xf2,0x24,0x71,0x3c,0xc0,0xff)
     83 
     84 #undef  INTERFACE
     85 #define INTERFACE IDWriteFontFallbackBuilder
     86 DECLARE_INTERFACE_(IDWriteFontFallbackBuilder,IUnknown)
     87 {
     88     BEGIN_INTERFACE
     89 
     90 #ifndef __cplusplus
     91     /* IUnknown methods */
     92     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     93     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     94     STDMETHOD_(ULONG, Release)(THIS) PURE;
     95 #endif
     96 
     97     STDMETHOD(AddMapping)(THIS_
     98         DWRITE_UNICODE_RANGE const *ranges,
     99         UINT32 rangesCount,
    100         WCHAR const **targetFamilyNames,
    101         UINT32 targetFamilyNamesCount,
    102         IDWriteFontCollection *fontCollection __MINGW_DEF_ARG_VAL(NULL),
    103         WCHAR const *localeName __MINGW_DEF_ARG_VAL(NULL),
    104         WCHAR const *baseFamilyName __MINGW_DEF_ARG_VAL(NULL),
    105         FLOAT scale __MINGW_DEF_ARG_VAL(1.0f)) PURE;
    106 
    107     STDMETHOD(AddMappings)(THIS_
    108         IDWriteFontFallback *fontFallback) PURE;
    109 
    110     STDMETHOD(CreateFontFallback)(THIS_
    111         IDWriteFontFallback **fontFallback) PURE;
    112 
    113     END_INTERFACE
    114 };
    115 
    116 __CRT_UUID_DECL(IDWriteFontFallbackBuilder, 0xfd882d06,0x8aba,0x4fb8,0xb8,0x49,0x8b,0xe8,0xb7,0x3e,0x14,0xde)
    117 
    118 #undef  INTERFACE
    119 #define INTERFACE IDWriteColorGlyphRunEnumerator
    120 DECLARE_INTERFACE_(IDWriteColorGlyphRunEnumerator,IUnknown)
    121 {
    122     BEGIN_INTERFACE
    123 
    124 #ifndef __cplusplus
    125     /* IUnknown methods */
    126     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    127     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    128     STDMETHOD_(ULONG, Release)(THIS) PURE;
    129 #endif
    130 
    131     STDMETHOD(MoveNext)(THIS_
    132         BOOL *hasRun) PURE;
    133 
    134     STDMETHOD(GetCurrentRun)(THIS_
    135         DWRITE_COLOR_GLYPH_RUN const **colorGlyphRun) PURE;
    136 
    137     END_INTERFACE
    138 };
    139 
    140 __CRT_UUID_DECL(IDWriteColorGlyphRunEnumerator, 0xd31fbe17,0xf157,0x41a2,0x8d,0x24,0xcb,0x77,0x9e,0x05,0x60,0xe8)
    141 
    142 #undef  INTERFACE
    143 #define INTERFACE IDWriteRenderingParams2
    144 DECLARE_INTERFACE_(IDWriteRenderingParams2,IDWriteRenderingParams1)
    145 {
    146     BEGIN_INTERFACE
    147 
    148 #ifndef __cplusplus
    149     /* IUnknown methods */
    150     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    151     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    152     STDMETHOD_(ULONG, Release)(THIS) PURE;
    153 
    154     /* IDWriteRenderingParams methods */
    155     STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
    156     STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE;
    157     STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE;
    158     STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE;
    159     STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE;
    160 
    161     /* IDWriteRenderingParams1 methods */
    162     STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(THIS) PURE;
    163 #endif
    164 
    165     /* IDWriteRenderingParams2 methods */
    166     STDMETHOD_(DWRITE_GRID_FIT_MODE, GetGridFitMode)(THIS) PURE;
    167 
    168     END_INTERFACE
    169 };
    170 
    171 __CRT_UUID_DECL(IDWriteRenderingParams2, 0xf9d711c3,0x9777,0x40ae,0x87,0xe8,0x3e,0x5a,0xf9,0xbf,0x09,0x48)
    172 
    173 #undef  INTERFACE
    174 #define INTERFACE IDWriteFactory2
    175 DECLARE_INTERFACE_(IDWriteFactory2,IDWriteFactory1)
    176 {
    177     BEGIN_INTERFACE
    178 
    179 #ifndef __cplusplus
    180     /* IUnknown methods */
    181     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    182     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    183     STDMETHOD_(ULONG, Release)(THIS) PURE;
    184 
    185     /* IDWriteFactory methods */
    186     STDMETHOD(GetSystemFontCollection)(THIS_
    187         IDWriteFontCollection **fontCollection,
    188         WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    189 
    190     STDMETHOD(CreateCustomFontCollection)(THIS_
    191         IDWriteFontCollectionLoader *collectionLoader,
    192         void const *collectionKey,
    193         UINT32 collectionKeySize,
    194         IDWriteFontCollection **fontCollection) PURE;
    195 
    196     STDMETHOD(RegisterFontCollectionLoader)(THIS_
    197         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
    198 
    199     STDMETHOD(UnregisterFontCollectionLoader)(THIS_
    200         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
    201 
    202     STDMETHOD(CreateFontFileReference)(THIS_
    203         WCHAR const *filePath,
    204         FILETIME const *lastWriteTime,
    205         IDWriteFontFile **fontFile) PURE;
    206 
    207     STDMETHOD(CreateCustomFontFileReference)(THIS_
    208         void const *fontFileReferenceKey,
    209         UINT32 fontFileReferenceKeySize,
    210         IDWriteFontFileLoader *fontFileLoader,
    211         IDWriteFontFile **fontFile) PURE;
    212 
    213     STDMETHOD(CreateFontFace)(THIS_
    214         DWRITE_FONT_FACE_TYPE fontFaceType,
    215         UINT32 numberOfFiles,
    216         IDWriteFontFile *const *fontFiles,
    217         UINT32 faceIndex,
    218         DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
    219         IDWriteFontFace **fontFace) PURE;
    220 
    221     STDMETHOD(CreateRenderingParams)(THIS_
    222         IDWriteRenderingParams **renderingParams) PURE;
    223 
    224     STDMETHOD(CreateMonitorRenderingParams)(THIS_
    225         HMONITOR monitor,
    226         IDWriteRenderingParams **renderingParams) PURE;
    227 
    228     STDMETHOD(CreateCustomRenderingParams)(THIS_
    229         FLOAT gamma,
    230         FLOAT enhancedContrast,
    231         FLOAT clearTypeLevel,
    232         DWRITE_PIXEL_GEOMETRY pixelGeometry,
    233         DWRITE_RENDERING_MODE renderingMode,
    234         IDWriteRenderingParams **renderingParams) PURE;
    235 
    236     STDMETHOD(RegisterFontFileLoader)(THIS_
    237         IDWriteFontFileLoader *fontFileLoader) PURE;
    238 
    239     STDMETHOD(UnregisterFontFileLoader)(THIS_
    240         IDWriteFontFileLoader *fontFileLoader) PURE;
    241 
    242     STDMETHOD(CreateTextFormat)(THIS_
    243         WCHAR const *fontFamilyName,
    244         IDWriteFontCollection *fontCollection,
    245         DWRITE_FONT_WEIGHT fontWeight,
    246         DWRITE_FONT_STYLE fontStyle,
    247         DWRITE_FONT_STRETCH fontStretch,
    248         FLOAT fontSize,
    249         WCHAR const *localeName,
    250         IDWriteTextFormat **textFormat) PURE;
    251 
    252     STDMETHOD(CreateTypography)(THIS_
    253         IDWriteTypography **typography) PURE;
    254 
    255     STDMETHOD(GetGdiInterop)(THIS_
    256         IDWriteGdiInterop **gdiInterop) PURE;
    257 
    258     STDMETHOD(CreateTextLayout)(THIS_
    259         WCHAR const *string,
    260         UINT32 stringLength,
    261         IDWriteTextFormat *textFormat,
    262         FLOAT maxWidth,
    263         FLOAT maxHeight,
    264         IDWriteTextLayout **textLayout) PURE;
    265 
    266     STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_
    267         WCHAR const *string,
    268         UINT32 stringLength,
    269         IDWriteTextFormat *textFormat,
    270         FLOAT layoutWidth,
    271         FLOAT layoutHeight,
    272         FLOAT pixelsPerDip,
    273         DWRITE_MATRIX const *transform,
    274         WINBOOL useGdiNatural,
    275         IDWriteTextLayout **textLayout) PURE;
    276 
    277     STDMETHOD(CreateEllipsisTrimmingSign)(THIS_
    278         IDWriteTextFormat *textFormat,
    279         IDWriteInlineObject **trimmingSign) PURE;
    280 
    281     STDMETHOD(CreateTextAnalyzer)(THIS_
    282         IDWriteTextAnalyzer **textAnalyzer) PURE;
    283 
    284     STDMETHOD(CreateNumberSubstitution)(THIS_
    285         DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
    286         WCHAR const *localeName,
    287         WINBOOL ignoreUserOverride,
    288         IDWriteNumberSubstitution **numberSubstitution) PURE;
    289 
    290     STDMETHOD(CreateGlyphRunAnalysis)(THIS_
    291         DWRITE_GLYPH_RUN const *glyphRun,
    292         FLOAT pixelsPerDip,
    293         DWRITE_MATRIX const *transform,
    294         DWRITE_RENDERING_MODE renderingMode,
    295         DWRITE_MEASURING_MODE measuringMode,
    296         FLOAT baselineOriginX,
    297         FLOAT baselineOriginY,
    298         IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
    299 
    300     /* IDWriteFactory1 methods */
    301     STDMETHOD(GetEudcFontCollection)(THIS_
    302         IDWriteFontCollection **fontCollection,
    303         BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    304 
    305     STDMETHOD(CreateCustomRenderingParams)(THIS_
    306         FLOAT gamma,
    307         FLOAT enhancedContrast,
    308         FLOAT enhancedContrastGrayscale,
    309         FLOAT clearTypeLevel,
    310         DWRITE_PIXEL_GEOMETRY pixelGeometry,
    311         DWRITE_RENDERING_MODE renderingMode,
    312         IDWriteRenderingParams1 **renderingParams) PURE;
    313 #endif
    314 
    315     /* IDWriteFactory2 methods */
    316     STDMETHOD(GetSystemFontFallback)(THIS_
    317         IDWriteFontFallback **fontFallback) PURE;
    318 
    319     STDMETHOD(CreateFontFallbackBuilder)(THIS_
    320         IDWriteFontFallbackBuilder **fontFallbackBuilder) PURE;
    321 
    322     STDMETHOD(TranslateColorGlyphRun)(THIS_
    323         FLOAT baselineOriginX,
    324         FLOAT baselineOriginY,
    325         DWRITE_GLYPH_RUN const *glyphRun,
    326         DWRITE_GLYPH_RUN_DESCRIPTION const *glyphRunDescription,
    327         DWRITE_MEASURING_MODE measuringMode,
    328         DWRITE_MATRIX const *worldToDeviceTransform,
    329         UINT32 colorPaletteIndex,
    330         IDWriteColorGlyphRunEnumerator **colorLayers) PURE;
    331 
    332     STDMETHOD(CreateCustomRenderingParams)(THIS_
    333         FLOAT gamma,
    334         FLOAT enhancedContrast,
    335         FLOAT grayscaleEnhancedContrast,
    336         FLOAT clearTypeLevel,
    337         DWRITE_PIXEL_GEOMETRY pixelGeometry,
    338         DWRITE_RENDERING_MODE renderingMode,
    339         DWRITE_GRID_FIT_MODE gridFitMode,
    340         IDWriteRenderingParams2 **renderingParams) PURE;
    341 
    342 #ifdef __cplusplus
    343     using IDWriteFactory::CreateCustomRenderingParams;
    344     using IDWriteFactory1::CreateCustomRenderingParams;
    345 #endif
    346 
    347     STDMETHOD(CreateGlyphRunAnalysis)(THIS_
    348         DWRITE_GLYPH_RUN const *glyphRun,
    349         DWRITE_MATRIX const *transform,
    350         DWRITE_RENDERING_MODE renderingMode,
    351         DWRITE_MEASURING_MODE measuringMode,
    352         DWRITE_GRID_FIT_MODE gridFitMode,
    353         DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
    354         FLOAT baselineOriginX,
    355         FLOAT baselineOriginY,
    356         IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
    357 
    358 #ifdef __cplusplus
    359     using IDWriteFactory::CreateGlyphRunAnalysis;
    360 #endif
    361 
    362     END_INTERFACE
    363 };
    364 
    365 __CRT_UUID_DECL(IDWriteFactory2, 0x0439fc60,0xca44,0x4994,0x8d,0xee,0x3a,0x9a,0xf7,0xb7,0x32,0xec)
    366 
    367 #endif /* DWRITE_2_H_INCLUDED */
    368