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