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