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_1_H_INCLUDED
      8 #define DWRITE_1_H_INCLUDED
      9 
     10 #include <dwrite.h>
     11 
     12 enum DWRITE_OUTLINE_THRESHOLD {
     13     DWRITE_OUTLINE_THRESHOLD_ANTIALIASED,
     14     DWRITE_OUTLINE_THRESHOLD_ALIASED
     15 };
     16 
     17 enum DWRITE_TEXT_ANTIALIAS_MODE
     18 {
     19     DWRITE_TEXT_ANTIALIAS_MODE_CLEARTYPE,
     20     DWRITE_TEXT_ANTIALIAS_MODE_GRAYSCALE
     21 };
     22 
     23 struct DWRITE_CARET_METRICS {
     24     INT16 slopeRise;
     25     INT16 slopeRun;
     26     INT16 offset;
     27 };
     28 
     29 struct DWRITE_UNICODE_RANGE {
     30     UINT32 first;
     31     UINT32 last;
     32 };
     33 
     34 struct DWRITE_FONT_METRICS1 : public DWRITE_FONT_METRICS {
     35     INT16 glyphBoxLeft;
     36     INT16 glyphBoxTop;
     37     INT16 glyphBoxRight;
     38     INT16 glyphBoxBottom;
     39     INT16 subscriptPositionX;
     40     INT16 subscriptPositionY;
     41     INT16 subscriptSizeX;
     42     INT16 subscriptSizeY;
     43     INT16 superscriptPositionX;
     44     INT16 superscriptPositionY;
     45     INT16 superscriptSizeX;
     46     INT16 superscriptSizeY;
     47     BOOL hasTypographicMetrics;
     48 };
     49 
     50 #undef  INTERFACE
     51 #define INTERFACE IDWriteFontCollection
     52 DECLARE_INTERFACE_(IDWriteFontFace1, IDWriteFontFace)
     53 {
     54     BEGIN_INTERFACE
     55 
     56 #ifndef __cplusplus
     57     /* IUnknown methods */
     58     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
     59     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
     60     STDMETHOD_(ULONG, Release)(THIS) PURE;
     61 
     62     /* IDWriteFontFace methods */
     63     STDMETHOD_(DWRITE_FONT_FACE_TYPE, GetType)(THIS) PURE;
     64 
     65     STDMETHOD(GetFiles)(THIS_
     66         UINT32 *numberOfFiles,
     67         IDWriteFontFile **fontFiles) PURE;
     68 
     69     STDMETHOD_(UINT32, GetIndex)(THIS) PURE;
     70     STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)(THIS) PURE;
     71     STDMETHOD_(WINBOOL, IsSymbolFont)(THIS) PURE;
     72 
     73     STDMETHOD_(void, GetMetrics)(THIS_
     74         DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
     75 
     76     STDMETHOD_(UINT16, GetGlyphCount)(THIS) PURE;
     77 
     78     STDMETHOD(GetDesignGlyphMetrics)(THIS_
     79         UINT16 const *glyphIndices,
     80         UINT32 glyphCount,
     81         DWRITE_GLYPH_METRICS *glyphMetrics,
     82         WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
     83 
     84     STDMETHOD(GetGlyphIndices)(THIS_
     85         UINT32 const *codePoints,
     86         UINT32 codePointCount,
     87         UINT16 *glyphIndices) PURE;
     88 
     89     STDMETHOD(TryGetFontTable)(THIS_
     90         UINT32 openTypeTableTag,
     91         const void **tableData,
     92         UINT32 *tableSize,
     93         void **tableContext,
     94         WINBOOL *exists) PURE;
     95 
     96     STDMETHOD_(void, ReleaseFontTable)(THIS_
     97         void *tableContext) PURE;
     98 
     99     STDMETHOD(GetGlyphRunOutline)(THIS_
    100         FLOAT emSize,
    101         UINT16 const *glyphIndices,
    102         FLOAT const *glyphAdvances,
    103         DWRITE_GLYPH_OFFSET const *glyphOffsets,
    104         UINT32 glyphCount,
    105         WINBOOL isSideways,
    106         WINBOOL isRightToLeft,
    107         IDWriteGeometrySink *geometrySink) PURE;
    108 
    109     STDMETHOD(GetRecommendedRenderingMode)(THIS_
    110         FLOAT emSize,
    111         FLOAT pixelsPerDip,
    112         DWRITE_MEASURING_MODE measuringMode,
    113         IDWriteRenderingParams *renderingParams,
    114         DWRITE_RENDERING_MODE *renderingMode) PURE;
    115 
    116     STDMETHOD(GetGdiCompatibleMetrics)(THIS_
    117         FLOAT emSize,
    118         FLOAT pixelsPerDip,
    119         DWRITE_MATRIX const *transform,
    120         DWRITE_FONT_METRICS *fontFaceMetrics) PURE;
    121 
    122 
    123     STDMETHOD(GetGdiCompatibleGlyphMetrics)(THIS_
    124         FLOAT emSize,
    125         FLOAT pixelsPerDip,
    126         DWRITE_MATRIX const *transform,
    127         WINBOOL useGdiNatural,
    128         UINT16 const *glyphIndices,
    129         UINT32 glyphCount,
    130         DWRITE_GLYPH_METRICS *glyphMetrics,
    131         WINBOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    132 #endif
    133 
    134     /* IDWriteFontFace1 methods */
    135     STDMETHOD_(void, GetMetrics)(THIS_ DWRITE_FONT_METRICS*) PURE;
    136     STDMETHOD(GetGdiCompatibleMetrics)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,DWRITE_FONT_METRICS1*) PURE;
    137     STDMETHOD_(void, GetCaretMetrics)(THIS_ DWRITE_CARET_METRICS*) PURE;
    138     STDMETHOD(GetUnicodeRanges)(THIS_ UINT32, DWRITE_UNICODE_RANGE*,UINT32*) PURE;
    139     STDMETHOD_(BOOL, IsMonospacedFont)(THIS) PURE;
    140     STDMETHOD(GetDesignGlyphAdvances)(THIS_ UINT32,UINT16 const*,INT32*,BOOL isSideways __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    141     STDMETHOD(GetGdiCompatibleGlyphAdvances)(THIS_ FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,BOOL,UINT32,
    142             UINT16 const*,INT32*) PURE;
    143     STDMETHOD(GetKerningPairAdjustments)(THIS_ UINT32,UINT16 const*,INT32*) PURE;
    144     STDMETHOD_(BOOL, HasKerningPairs)(THIS);
    145     STDMETHOD(GetRecommendedRenderingMode)(FLOAT,FLOAT,FLOAT,DWRITE_MATRIX const*,BOOL,
    146             DWRITE_OUTLINE_THRESHOLD,DWRITE_MEASURING_MODE,DWRITE_RENDERING_MODE*) PURE;
    147     STDMETHOD(GetVerticalGlyphVariants)(THIS_ UINT32,UINT16 const*,UINT16*);
    148     STDMETHOD_(BOOL, HasVerticalGlyphVariants)(THIS);
    149 };
    150 
    151 __CRT_UUID_DECL(IDWriteFontFace1, 0xa71efdb4,0x9fdb,0x4838,0xad,0x90,0xcf,0xc3,0xbe,0x8c,0x3d,0xaf);
    152 
    153 #undef  INTERFACE
    154 #define INTERFACE IDWriteRenderingParams1
    155 DECLARE_INTERFACE_(IDWriteRenderingParams1,IDWriteRenderingParams)
    156 {
    157     BEGIN_INTERFACE
    158 
    159 #ifndef __cplusplus
    160     /* IUnknown methods */
    161     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    162     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    163     STDMETHOD_(ULONG, Release)(THIS) PURE;
    164 
    165     /* IDWriteRenderingParams methods */
    166     STDMETHOD_(FLOAT, GetGamma)(THIS) PURE;
    167     STDMETHOD_(FLOAT, GetEnhancedContrast)(THIS) PURE;
    168     STDMETHOD_(FLOAT, GetClearTypeLevel)(THIS) PURE;
    169     STDMETHOD_(DWRITE_PIXEL_GEOMETRY, GetPixelGeometry)(THIS) PURE;
    170     STDMETHOD_(DWRITE_RENDERING_MODE, GetRenderingMode)(THIS) PURE;
    171 #endif
    172 
    173     /* IDWriteRenderingParams1 methods */
    174     STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)(THIS) PURE;
    175 
    176     END_INTERFACE
    177 };
    178 
    179 __CRT_UUID_DECL(IDWriteRenderingParams1, 0x94413cf4,0xa6fc,0x4248,0x8b,0x50,0x66,0x74,0x34,0x8f,0xca,0xd3)
    180 
    181 #undef  INTERFACE
    182 #define INTERFACE IDWriteFactory1
    183 DECLARE_INTERFACE_(IDWriteFactory1,IDWriteFactory)
    184 {
    185     BEGIN_INTERFACE
    186 
    187 #ifndef __cplusplus
    188     /* IUnknown methods */
    189     STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    190     STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    191     STDMETHOD_(ULONG, Release)(THIS) PURE;
    192 
    193     /* IDWriteFactory methods */
    194     STDMETHOD(GetSystemFontCollection)(THIS_
    195         IDWriteFontCollection **fontCollection,
    196         WINBOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    197 
    198     STDMETHOD(CreateCustomFontCollection)(THIS_
    199         IDWriteFontCollectionLoader *collectionLoader,
    200         void const *collectionKey,
    201         UINT32 collectionKeySize,
    202         IDWriteFontCollection **fontCollection) PURE;
    203 
    204     STDMETHOD(RegisterFontCollectionLoader)(THIS_
    205         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
    206 
    207     STDMETHOD(UnregisterFontCollectionLoader)(THIS_
    208         IDWriteFontCollectionLoader *fontCollectionLoader) PURE;
    209 
    210     STDMETHOD(CreateFontFileReference)(THIS_
    211         WCHAR const *filePath,
    212         FILETIME const *lastWriteTime,
    213         IDWriteFontFile **fontFile) PURE;
    214 
    215     STDMETHOD(CreateCustomFontFileReference)(THIS_
    216         void const *fontFileReferenceKey,
    217         UINT32 fontFileReferenceKeySize,
    218         IDWriteFontFileLoader *fontFileLoader,
    219         IDWriteFontFile **fontFile) PURE;
    220 
    221     STDMETHOD(CreateFontFace)(THIS_
    222         DWRITE_FONT_FACE_TYPE fontFaceType,
    223         UINT32 numberOfFiles,
    224         IDWriteFontFile *const *fontFiles,
    225         UINT32 faceIndex,
    226         DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
    227         IDWriteFontFace **fontFace) PURE;
    228 
    229     STDMETHOD(CreateRenderingParams)(THIS_
    230         IDWriteRenderingParams **renderingParams) PURE;
    231 
    232     STDMETHOD(CreateMonitorRenderingParams)(THIS_
    233         HMONITOR monitor,
    234         IDWriteRenderingParams **renderingParams) PURE;
    235 
    236     STDMETHOD(CreateCustomRenderingParams)(THIS_
    237         FLOAT gamma,
    238         FLOAT enhancedContrast,
    239         FLOAT clearTypeLevel,
    240         DWRITE_PIXEL_GEOMETRY pixelGeometry,
    241         DWRITE_RENDERING_MODE renderingMode,
    242         IDWriteRenderingParams **renderingParams) PURE;
    243 
    244     STDMETHOD(RegisterFontFileLoader)(THIS_
    245         IDWriteFontFileLoader *fontFileLoader) PURE;
    246 
    247     STDMETHOD(UnregisterFontFileLoader)(THIS_
    248         IDWriteFontFileLoader *fontFileLoader) PURE;
    249 
    250     STDMETHOD(CreateTextFormat)(THIS_
    251         WCHAR const *fontFamilyName,
    252         IDWriteFontCollection *fontCollection,
    253         DWRITE_FONT_WEIGHT fontWeight,
    254         DWRITE_FONT_STYLE fontStyle,
    255         DWRITE_FONT_STRETCH fontStretch,
    256         FLOAT fontSize,
    257         WCHAR const *localeName,
    258         IDWriteTextFormat **textFormat) PURE;
    259 
    260     STDMETHOD(CreateTypography)(THIS_
    261         IDWriteTypography **typography) PURE;
    262 
    263     STDMETHOD(GetGdiInterop)(THIS_
    264         IDWriteGdiInterop **gdiInterop) PURE;
    265 
    266     STDMETHOD(CreateTextLayout)(THIS_
    267         WCHAR const *string,
    268         UINT32 stringLength,
    269         IDWriteTextFormat *textFormat,
    270         FLOAT maxWidth,
    271         FLOAT maxHeight,
    272         IDWriteTextLayout **textLayout) PURE;
    273 
    274     STDMETHOD(CreateGdiCompatibleTextLayout)(THIS_
    275         WCHAR const *string,
    276         UINT32 stringLength,
    277         IDWriteTextFormat *textFormat,
    278         FLOAT layoutWidth,
    279         FLOAT layoutHeight,
    280         FLOAT pixelsPerDip,
    281         DWRITE_MATRIX const *transform,
    282         WINBOOL useGdiNatural,
    283         IDWriteTextLayout **textLayout) PURE;
    284 
    285     STDMETHOD(CreateEllipsisTrimmingSign)(THIS_
    286         IDWriteTextFormat *textFormat,
    287         IDWriteInlineObject **trimmingSign) PURE;
    288 
    289     STDMETHOD(CreateTextAnalyzer)(THIS_
    290         IDWriteTextAnalyzer **textAnalyzer) PURE;
    291 
    292     STDMETHOD(CreateNumberSubstitution)(THIS_
    293         DWRITE_NUMBER_SUBSTITUTION_METHOD substitutionMethod,
    294         WCHAR const *localeName,
    295         WINBOOL ignoreUserOverride,
    296         IDWriteNumberSubstitution **numberSubstitution) PURE;
    297 
    298     STDMETHOD(CreateGlyphRunAnalysis)(THIS_
    299         DWRITE_GLYPH_RUN const *glyphRun,
    300         FLOAT pixelsPerDip,
    301         DWRITE_MATRIX const *transform,
    302         DWRITE_RENDERING_MODE renderingMode,
    303         DWRITE_MEASURING_MODE measuringMode,
    304         FLOAT baselineOriginX,
    305         FLOAT baselineOriginY,
    306         IDWriteGlyphRunAnalysis **glyphRunAnalysis) PURE;
    307 #endif
    308 
    309     /* IDWriteFactory1 methods */
    310     STDMETHOD(GetEudcFontCollection)(THIS_
    311         IDWriteFontCollection **fontCollection,
    312         BOOL checkForUpdates __MINGW_DEF_ARG_VAL(FALSE)) PURE;
    313 
    314     STDMETHOD(CreateCustomRenderingParams)(THIS_
    315         FLOAT gamma,
    316         FLOAT enhancedContrast,
    317         FLOAT enhancedContrastGrayscale,
    318         FLOAT clearTypeLevel,
    319         DWRITE_PIXEL_GEOMETRY pixelGeometry,
    320         DWRITE_RENDERING_MODE renderingMode,
    321         IDWriteRenderingParams1 **renderingParams) PURE;
    322 
    323 #ifdef __cplusplus
    324     using IDWriteFactory::CreateCustomRenderingParams;
    325 #endif
    326 
    327     END_INTERFACE
    328 };
    329 
    330 __CRT_UUID_DECL(IDWriteFactory1, 0x30572f99,0xdac6,0x41db,0xa1,0x6e,0x04,0x86,0x30,0x7e,0x60,0x6a)
    331 
    332 #endif /* DWRITE_1_H_INCLUDED */
    333