RetroArch
dwrite_3.h
Go to the documentation of this file.
1 //+--------------------------------------------------------------------------
2 //
3 // Copyright (c) Microsoft Corporation. All rights reserved.
4 //
5 // Abstract:
6 // DirectX Typography Services public API definitions.
7 //
8 //----------------------------------------------------------------------------
9 
10 #ifndef DWRITE_3_H_INCLUDED
11 #define DWRITE_3_H_INCLUDED
12 
13 #pragma once
14 
15 #include <dwrite_2.h>
16 
17 interface IDWriteFontFaceReference;
18 interface IDWriteFont3;
19 interface IDWriteFontFace3;
20 interface IDWriteFontSet;
21 interface IDWriteFontSetBuilder;
22 interface IDWriteFontCollection1;
23 interface IDWriteFontFamily1;
24 interface IDWriteStringList;
25 interface IDWriteFontDownloadQueue;
26 
27 
33 #ifndef DWRITE_E_REMOTEFONT
34 #define DWRITE_E_REMOTEFONT _HRESULT_TYPEDEF_(0x8898500DL)
35 #endif
36 
41 #ifndef DWRITE_E_DOWNLOADCANCELLED
42 #define DWRITE_E_DOWNLOADCANCELLED _HRESULT_TYPEDEF_(0x8898500EL)
43 #endif
44 
49 #ifndef DWRITE_E_DOWNLOADFAILED
50 #define DWRITE_E_DOWNLOADFAILED _HRESULT_TYPEDEF_(0x8898500FL)
51 #endif
52 
57 #ifndef DWRITE_E_TOOMANYDOWNLOADS
58 #define DWRITE_E_TOOMANYDOWNLOADS _HRESULT_TYPEDEF_(0x88985010L)
59 #endif
60 
65 {
70 
75 
81 
86 
91 
97 
102 
157 
163 
168 
177 
186 
195 
201 
209 
214 
215  // Obsolete aliases kept to avoid breaking existing code.
219 };
220 
221 
227 {
232 
236  _Field_z_ WCHAR const* propertyValue;
237 
249  _Field_z_ _Maybenull_ WCHAR const* localeName;
250 };
251 
252 
257 {
263 
270 
276 };
277 
278 
283 {
288 
294 
302 
311 
319 
327 
333 
339 };
340 
341 
345 interface DWRITE_DECLARE_INTERFACE("B7924BAA-391B-412A-8C5C-E44CC2D867DC") IDWriteRenderingParams3 : public IDWriteRenderingParams2
346 {
350  STDMETHOD_(DWRITE_RENDERING_MODE1, GetRenderingMode1)() PURE;
351 };
352 
353 
357 interface DWRITE_DECLARE_INTERFACE("9A1B41C3-D3BB-466A-87FC-FE67556A3B65") IDWriteFactory3 : public IDWriteFactory2
358 {
376  STDMETHOD(CreateGlyphRunAnalysis)(
377  _In_ DWRITE_GLYPH_RUN const* glyphRun,
378  _In_opt_ DWRITE_MATRIX const* transform,
379  DWRITE_RENDERING_MODE1 renderingMode,
380  DWRITE_MEASURING_MODE measuringMode,
381  DWRITE_GRID_FIT_MODE gridFitMode,
382  DWRITE_TEXT_ANTIALIAS_MODE antialiasMode,
383  FLOAT baselineOriginX,
384  FLOAT baselineOriginY,
385  _COM_Outptr_ IDWriteGlyphRunAnalysis** glyphRunAnalysis
386  ) PURE;
387 
388  using IDWriteFactory::CreateGlyphRunAnalysis;
389  using IDWriteFactory2::CreateGlyphRunAnalysis;
390 
405  STDMETHOD(CreateCustomRenderingParams)(
406  FLOAT gamma,
407  FLOAT enhancedContrast,
408  FLOAT grayscaleEnhancedContrast,
409  FLOAT clearTypeLevel,
410  DWRITE_PIXEL_GEOMETRY pixelGeometry,
411  DWRITE_RENDERING_MODE1 renderingMode,
412  DWRITE_GRID_FIT_MODE gridFitMode,
413  _COM_Outptr_ IDWriteRenderingParams3** renderingParams
414  ) PURE;
415 
416  using IDWriteFactory::CreateCustomRenderingParams;
417  using IDWriteFactory1::CreateCustomRenderingParams;
418  using IDWriteFactory2::CreateCustomRenderingParams;
419 
436  STDMETHOD(CreateFontFaceReference)(
437  _In_z_ WCHAR const* filePath,
438  _In_opt_ FILETIME const* lastWriteTime,
439  UINT32 faceIndex,
440  DWRITE_FONT_SIMULATIONS fontSimulations,
441  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
442  ) PURE;
443 
455  STDMETHOD(CreateFontFaceReference)(
456  _In_ IDWriteFontFile* fontFile,
457  UINT32 faceIndex,
458  DWRITE_FONT_SIMULATIONS fontSimulations,
459  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
460  ) PURE;
461 
469  STDMETHOD(GetSystemFontSet)(
470  _COM_Outptr_ IDWriteFontSet** fontSet
471  ) PURE;
472 
481  STDMETHOD(CreateFontSetBuilder)(
482  _COM_Outptr_ IDWriteFontSetBuilder** fontSetBuilder
483  ) PURE;
484 
494  STDMETHOD(CreateFontCollectionFromFontSet)(
495  IDWriteFontSet* fontSet,
496  _COM_Outptr_ IDWriteFontCollection1** fontCollection
497  ) PURE;
498 
512  STDMETHOD(GetSystemFontCollection)(
513  BOOL includeDownloadableFonts,
514  _COM_Outptr_ IDWriteFontCollection1** fontCollection,
515  BOOL checkForUpdates = FALSE
516  ) PURE;
517 
518  using IDWriteFactory::GetSystemFontCollection;
519 
527  STDMETHOD(GetFontDownloadQueue)(
528  _COM_Outptr_ IDWriteFontDownloadQueue** fontDownloadQueue
529  ) PURE;
530 };
531 
532 
538 interface DWRITE_DECLARE_INTERFACE("53585141-D9F8-4095-8321-D73CF6BD116B") IDWriteFontSet : public IUnknown
539 {
546  STDMETHOD_(UINT32, GetFontCount)() PURE;
547 
556  STDMETHOD(GetFontFaceReference)(
557  UINT32 listIndex,
558  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
559  ) PURE;
560 
570  STDMETHOD(FindFontFaceReference)(
571  IDWriteFontFaceReference* fontFaceReference,
572  _Out_ UINT32* listIndex,
573  _Out_ BOOL* exists
574  ) PURE;
575 
585  STDMETHOD(FindFontFace)(
586  IDWriteFontFace* fontFace,
587  _Out_ UINT32* listIndex,
588  _Out_ BOOL* exists
589  ) PURE;
590 
601  STDMETHOD(GetPropertyValues)(
602  UINT32 listIndex,
603  DWRITE_FONT_PROPERTY_ID propertyId,
604  _Out_ BOOL* exists,
605  _COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** values
606  ) PURE;
607 
628  STDMETHOD(GetPropertyValues)(
629  DWRITE_FONT_PROPERTY_ID propertyID,
630  _In_z_ WCHAR const* preferredLocaleNames,
631  _COM_Outptr_ IDWriteStringList** values
632  ) PURE;
633 
648  STDMETHOD(GetPropertyValues)(
649  DWRITE_FONT_PROPERTY_ID propertyID,
650  _COM_Outptr_ IDWriteStringList** values
651  ) PURE;
652 
665  STDMETHOD(GetPropertyOccurrenceCount)(
666  _In_ DWRITE_FONT_PROPERTY const* property,
667  _Out_ UINT32* propertyOccurrenceCount
668  ) PURE;
669 
685  STDMETHOD(GetMatchingFonts)(
686  _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties,
687  UINT32 propertyCount,
688  _COM_Outptr_ IDWriteFontSet** filteredSet
689  ) PURE;
690 
708  STDMETHOD(GetMatchingFonts)(
709  _In_z_ WCHAR const* familyName,
710  DWRITE_FONT_WEIGHT fontWeight,
711  DWRITE_FONT_STRETCH fontStretch,
713  _COM_Outptr_ IDWriteFontSet** filteredSet
714  ) PURE;
715 };
716 
717 
721 interface DWRITE_DECLARE_INTERFACE("2F642AFE-9C68-4F40-B8BE-457401AFCB3D") IDWriteFontSetBuilder : public IUnknown
722 {
732  STDMETHOD(AddFontFaceReference)(
733  _In_ IDWriteFontFaceReference* fontFaceReference
734  ) PURE;
735 
754  STDMETHOD(AddFontFaceReference)(
755  _In_ IDWriteFontFaceReference* fontFaceReference,
756  _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties,
757  UINT32 propertyCount
758  ) PURE;
759 
768  STDMETHOD(AddFontSet)(
769  _In_ IDWriteFontSet* fontSet
770  ) PURE;
771 
785  STDMETHOD(CreateFontSet)(
786  _COM_Outptr_ IDWriteFontSet** fontSet
787  ) PURE;
788 };
789 
790 
791 interface DWRITE_DECLARE_INTERFACE("53585141-D9F8-4095-8321-D73CF6BD116C") IDWriteFontCollection1 : public IDWriteFontCollection
792 {
800  STDMETHOD(GetFontSet)(
801  _COM_Outptr_ IDWriteFontSet** fontSet
802  ) PURE;
803 
812  STDMETHOD(GetFontFamily)(
813  UINT32 index,
814  _COM_Outptr_ IDWriteFontFamily1** fontFamily
815  ) PURE;
816 
817  using IDWriteFontCollection::GetFontFamily;
818 };
819 
820 
825 interface DWRITE_DECLARE_INTERFACE("DA20D8EF-812A-4C43-9802-62EC4ABD7ADF") IDWriteFontFamily1 : public IDWriteFontFamily
826 {
842  STDMETHOD_(DWRITE_LOCALITY, GetFontLocality)(UINT32 listIndex) PURE;
843 
852  STDMETHOD(GetFont)(
853  UINT32 listIndex,
854  _COM_Outptr_ IDWriteFont3** font
855  ) PURE;
856 
857  using IDWriteFontFamily::GetFont;
858 
867  STDMETHOD(GetFontFaceReference)(
868  UINT32 listIndex,
869  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
870  ) PURE;
871 };
872 
873 
877 interface DWRITE_DECLARE_INTERFACE("DA20D8EF-812A-4C43-9802-62EC4ABD7ADE") IDWriteFontList1 : public IDWriteFontList
878 {
894  STDMETHOD_(DWRITE_LOCALITY, GetFontLocality)(UINT32 listIndex) PURE;
895 
904  STDMETHOD(GetFont)(
905  UINT32 listIndex,
906  _COM_Outptr_ IDWriteFont3** font
907  ) PURE;
908 
909  using IDWriteFontList::GetFont;
910 
919  STDMETHOD(GetFontFaceReference)(
920  UINT32 listIndex,
921  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
922  ) PURE;
923 };
924 
925 
932 interface DWRITE_DECLARE_INTERFACE("5E7FA7CA-DDE3-424C-89F0-9FCD6FED58CD") IDWriteFontFaceReference : public IUnknown
933 {
945  STDMETHOD(CreateFontFace)(
946  _COM_Outptr_ IDWriteFontFace3** fontFace
947  ) PURE;
948 
961  STDMETHOD(CreateFontFaceWithSimulations)(
962  DWRITE_FONT_SIMULATIONS fontFaceSimulationFlags,
963  _COM_Outptr_ IDWriteFontFace3** fontFace
964  ) PURE;
965 
969  STDMETHOD_(BOOL, Equals)(IDWriteFontFaceReference* fontFaceReference) PURE;
970 
975  STDMETHOD_(UINT32, GetFontFaceIndex)() PURE;
976 
980  STDMETHOD_(DWRITE_FONT_SIMULATIONS, GetSimulations)() PURE;
981 
985  STDMETHOD(GetFontFile)(
986  _COM_Outptr_ IDWriteFontFile** fontFile
987  ) PURE;
988 
1001  STDMETHOD_(UINT64, GetLocalFileSize)() PURE;
1002 
1011  STDMETHOD_(UINT64, GetFileSize)() PURE;
1012 
1019  STDMETHOD(GetFileTime)(_Out_ FILETIME* lastWriteTime) PURE;
1020 
1028  STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE;
1029 
1036  STDMETHOD(EnqueueFontDownloadRequest)() PURE;
1037 
1050  STDMETHOD(EnqueueCharacterDownloadRequest)(
1051  _In_reads_(characterCount) WCHAR const* characters,
1052  UINT32 characterCount
1053  ) PURE;
1054 
1067  STDMETHOD(EnqueueGlyphDownloadRequest)(
1068  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1069  UINT32 glyphCount
1070  ) PURE;
1071 
1080  STDMETHOD(EnqueueFileFragmentDownloadRequest)(
1081  UINT64 fileOffset,
1082  UINT64 fragmentSize
1083  ) PURE;
1084 };
1085 
1086 
1090 interface DWRITE_DECLARE_INTERFACE("29748ED6-8C9C-4A6A-BE0B-D912E8538944") IDWriteFont3 : public IDWriteFont2
1091 {
1099  STDMETHOD(CreateFontFace)(
1100  _COM_Outptr_ IDWriteFontFace3** fontFace
1101  ) PURE;
1102 
1103  using IDWriteFont::CreateFontFace;
1104 
1108  STDMETHOD_(BOOL, Equals)(IDWriteFont* font) PURE;
1109 
1117  STDMETHOD(GetFontFaceReference)(
1118  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
1119  ) PURE;
1120 
1128  STDMETHOD_(BOOL, HasCharacter)(
1129  UINT32 unicodeValue
1130  ) PURE;
1131 
1132  using IDWriteFont::HasCharacter;
1133 
1145  STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE;
1146 };
1147 
1148 
1154 interface DWRITE_DECLARE_INTERFACE("D37D7598-09BE-4222-A236-2081341CC1F2") IDWriteFontFace3 : public IDWriteFontFace2
1155 {
1163  STDMETHOD(GetFontFaceReference)(
1164  _COM_Outptr_ IDWriteFontFaceReference** fontFaceReference
1165  ) PURE;
1166 
1177  STDMETHOD_(void, GetPanose)(
1178  _Out_ DWRITE_PANOSE* panose
1179  ) PURE;
1180 
1184  STDMETHOD_(DWRITE_FONT_WEIGHT, GetWeight)() PURE;
1185 
1189  STDMETHOD_(DWRITE_FONT_STRETCH, GetStretch)() PURE;
1190 
1194  STDMETHOD_(DWRITE_FONT_STYLE, GetStyle)() PURE;
1195 
1203  STDMETHOD(GetFamilyNames)(
1204  _COM_Outptr_ IDWriteLocalizedStrings** names
1205  ) PURE;
1206 
1214  STDMETHOD(GetFaceNames)(
1215  _COM_Outptr_ IDWriteLocalizedStrings** names
1216  ) PURE;
1217 
1228  STDMETHOD(GetInformationalStrings)(
1229  DWRITE_INFORMATIONAL_STRING_ID informationalStringID,
1230  _COM_Outptr_result_maybenull_ IDWriteLocalizedStrings** informationalStrings,
1231  _Out_ BOOL* exists
1232  ) PURE;
1233 
1241  STDMETHOD_(BOOL, HasCharacter)(
1242  UINT32 unicodeValue
1243  ) PURE;
1244 
1270  STDMETHOD(GetRecommendedRenderingMode)(
1271  FLOAT fontEmSize,
1272  FLOAT dpiX,
1273  FLOAT dpiY,
1274  _In_opt_ DWRITE_MATRIX const* transform,
1275  BOOL isSideways,
1276  DWRITE_OUTLINE_THRESHOLD outlineThreshold,
1277  DWRITE_MEASURING_MODE measuringMode,
1278  _In_opt_ IDWriteRenderingParams* renderingParams,
1279  _Out_ DWRITE_RENDERING_MODE1* renderingMode,
1280  _Out_ DWRITE_GRID_FIT_MODE* gridFitMode
1281  ) PURE;
1282 
1283  using IDWriteFontFace2::GetRecommendedRenderingMode;
1284 
1293  STDMETHOD_(BOOL, IsCharacterLocal)(
1294  UINT32 unicodeValue
1295  ) PURE;
1296 
1304  STDMETHOD_(BOOL, IsGlyphLocal)(
1305  UINT16 glyphId
1306  ) PURE;
1307 
1320  STDMETHOD(AreCharactersLocal)(
1321  _In_reads_(characterCount) WCHAR const* characters,
1322  UINT32 characterCount,
1323  BOOL enqueueIfNotLocal,
1324  _Out_ BOOL* isLocal
1325  ) PURE;
1326 
1339  STDMETHOD(AreGlyphsLocal)(
1340  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1341  UINT32 glyphCount,
1342  BOOL enqueueIfNotLocal,
1343  _Out_ BOOL* isLocal
1344  ) PURE;
1345 };
1346 
1347 
1357 interface DWRITE_DECLARE_INTERFACE("CFEE3140-1157-47CA-8B85-31BFCF3F2D0E") IDWriteStringList : public IUnknown
1358 {
1362  STDMETHOD_(UINT32, GetCount)() PURE;
1363 
1372  STDMETHOD(GetLocaleNameLength)(
1373  UINT32 listIndex,
1374  _Out_ UINT32* length
1375  ) PURE;
1376 
1387  STDMETHOD(GetLocaleName)(
1388  UINT32 listIndex,
1389  _Out_writes_z_(size) WCHAR* localeName,
1390  UINT32 size
1391  ) PURE;
1392 
1401  STDMETHOD(GetStringLength)(
1402  UINT32 listIndex,
1403  _Out_ UINT32* length
1404  ) PURE;
1405 
1416  STDMETHOD(GetString)(
1417  UINT32 listIndex,
1418  _Out_writes_z_(stringBufferSize) WCHAR* stringBuffer,
1419  UINT32 stringBufferSize
1420  ) PURE;
1421 };
1422 
1423 
1430 interface DWRITE_DECLARE_INTERFACE("B06FE5B9-43EC-4393-881B-DBE4DC72FDA7") IDWriteFontDownloadListener : public IUnknown
1431 {
1442  STDMETHOD_(void, DownloadCompleted)(
1443  _In_ IDWriteFontDownloadQueue* downloadQueue,
1444  _In_opt_ IUnknown* context,
1445  HRESULT downloadResult
1446  ) PURE;
1447 };
1448 
1449 
1456 interface DWRITE_DECLARE_INTERFACE("B71E6052-5AEA-4FA3-832E-F60D431F7E91") IDWriteFontDownloadQueue : public IUnknown
1457 {
1473  STDMETHOD(AddListener)(
1474  IDWriteFontDownloadListener* listener,
1475  _Out_ UINT32* token
1476  ) PURE;
1477 
1487  STDMETHOD(RemoveListener)(
1488  UINT32 token
1489  ) PURE;
1490 
1499  STDMETHOD_(BOOL, IsEmpty)() PURE;
1500 
1521  STDMETHOD(BeginDownload)(
1522  _In_opt_ IUnknown* context = nullptr
1523  ) PURE;
1524 
1534  STDMETHOD(CancelDownload)() PURE;
1535 
1545  STDMETHOD_(UINT64, GetGenerationCount)() PURE;
1546 };
1547 
1548 
1552 interface DWRITE_DECLARE_INTERFACE("4556BE70-3ABD-4F70-90BE-421780A6F515") IDWriteGdiInterop1 : public IDWriteGdiInterop
1553 {
1572  STDMETHOD(CreateFontFromLOGFONT)(
1573  _In_ LOGFONTW const* logFont,
1574  _In_opt_ IDWriteFontCollection* fontCollection,
1575  _COM_Outptr_ IDWriteFont** font
1576  ) PURE;
1577 
1586  STDMETHOD(GetFontSignature)(
1587  _In_ IDWriteFont* font,
1588  _Out_ FONTSIGNATURE* fontSignature
1589  ) PURE;
1590 
1599  STDMETHOD(GetFontSignature)(
1600  _In_ IDWriteFontFace* fontFace,
1601  _Out_ FONTSIGNATURE* fontSignature
1602  ) PURE;
1603 
1611  STDMETHOD(GetMatchingFontsByLOGFONT)(
1612  _In_ LOGFONT const* logFont,
1613  _In_ IDWriteFontSet* fontSet,
1614  _COM_Outptr_ IDWriteFontSet** filteredSet
1615  ) PURE;
1616 
1617  using IDWriteGdiInterop::CreateFontFromLOGFONT;
1618 };
1619 
1624 {
1631 
1638 };
1639 
1644 {
1649 
1654 
1659 };
1660 
1665 {
1670 
1680 
1690 
1698 
1703 };
1704 
1705 interface DWRITE_DECLARE_INTERFACE("F67E0EDD-9E3D-4ECC-8C32-4183253DFE70") IDWriteTextFormat2 : public IDWriteTextFormat1
1706 {
1714  STDMETHOD(SetLineSpacing)(_In_ DWRITE_LINE_SPACING const* lineSpacingOptions) PURE;
1715 
1723  STDMETHOD(GetLineSpacing)(_Out_ DWRITE_LINE_SPACING* lineSpacingOptions) PURE;
1724 
1725  using IDWriteTextFormat1::SetLineSpacing;
1726  using IDWriteTextFormat1::GetLineSpacing;
1727 };
1728 
1729 interface DWRITE_DECLARE_INTERFACE("07DDCD52-020E-4DE8-AC33-6C953D83F92D") IDWriteTextLayout3 : public IDWriteTextLayout2
1730 {
1740  STDMETHOD(InvalidateLayout)() PURE;
1741 
1749  STDMETHOD(SetLineSpacing)(_In_ DWRITE_LINE_SPACING const* lineSpacingOptions) PURE;
1750 
1758  STDMETHOD(GetLineSpacing)(_Out_ DWRITE_LINE_SPACING* lineSpacingOptions) PURE;
1759 
1776  STDMETHOD(GetLineMetrics)(
1777  _Out_writes_to_opt_(maxLineCount, *actualLineCount) DWRITE_LINE_METRICS1* lineMetrics,
1778  UINT32 maxLineCount,
1779  _Out_ UINT32* actualLineCount
1780  ) PURE;
1781 
1782  using IDWriteTextLayout2::SetLineSpacing;
1783  using IDWriteTextLayout2::GetLineSpacing;
1784  using IDWriteTextLayout2::GetLineMetrics;
1785 };
1786 
1787 
1789 
1790 
1791 #if NTDDI_VERSION >= NTDDI_WIN10_RS1
1792 
1793 
1803 {
1809 
1814 };
1815 
1816 
1821 {
1825  _Field_size_bytes_(imageDataSize) void const* imageData;
1826 
1831 
1837 
1844 
1849 
1854 
1859 
1864 
1869 };
1870 
1871 
1875 interface DWRITE_DECLARE_INTERFACE("7C5F86DA-C7A1-4F05-B8E1-55A179FE5A35") IDWriteColorGlyphRunEnumerator1 : public IDWriteColorGlyphRunEnumerator
1876 {
1888  STDMETHOD(GetCurrentRun)(
1889  _Outptr_ DWRITE_COLOR_GLYPH_RUN1 const** colorGlyphRun
1890  ) PURE;
1891 
1892  using IDWriteColorGlyphRunEnumerator::GetCurrentRun;
1893 };
1894 
1895 
1901 interface DWRITE_DECLARE_INTERFACE("27F2A904-4EB8-441D-9678-0563F53E3E2F") IDWriteFontFace4 : public IDWriteFontFace3
1902 {
1906  STDMETHOD_(DWRITE_GLYPH_IMAGE_FORMATS, GetGlyphImageFormats)() PURE;
1907 
1917  STDMETHOD(GetGlyphImageFormats)(
1918  UINT16 glyphId,
1919  UINT32 pixelsPerEmFirst,
1920  UINT32 pixelsPerEmLast,
1921  _Out_ DWRITE_GLYPH_IMAGE_FORMATS* glyphImageFormats
1922  ) PURE;
1923 
1944  STDMETHOD(GetGlyphImageData)(
1945  _In_ UINT16 glyphId,
1946  UINT32 pixelsPerEm,
1947  DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat,
1948  _Out_ DWRITE_GLYPH_IMAGE_DATA* glyphData,
1949  _Outptr_result_maybenull_ void** glyphDataContext
1950  ) PURE;
1951 
1956  STDMETHOD_(void, ReleaseGlyphImageData)(
1957  void* glyphDataContext
1958  ) PURE;
1959 };
1960 
1961 
1962 interface DWRITE_DECLARE_INTERFACE("4B0B5BD3-0797-4549-8AC5-FE915CC53856") IDWriteFactory4 : public IDWriteFactory3
1963 {
1996  STDMETHOD(TranslateColorGlyphRun)(
1997  D2D1_POINT_2F baselineOrigin,
1998  _In_ DWRITE_GLYPH_RUN const* glyphRun,
1999  _In_opt_ DWRITE_GLYPH_RUN_DESCRIPTION const* glyphRunDescription,
2000  DWRITE_GLYPH_IMAGE_FORMATS desiredGlyphImageFormats,
2001  DWRITE_MEASURING_MODE measuringMode,
2002  _In_opt_ DWRITE_MATRIX const* worldAndDpiTransform,
2003  UINT32 colorPaletteIndex,
2004  _COM_Outptr_ IDWriteColorGlyphRunEnumerator1** colorLayers
2005  ) PURE;
2006 
2007  using IDWriteFactory2::TranslateColorGlyphRun;
2008 
2020  STDMETHOD(ComputeGlyphOrigins)(
2021  DWRITE_GLYPH_RUN const* glyphRun,
2022  DWRITE_MEASURING_MODE measuringMode,
2023  D2D1_POINT_2F baselineOrigin,
2024  _In_opt_ DWRITE_MATRIX const* worldAndDpiTransform,
2025  _Out_writes_(glyphRun->glyphCount) D2D1_POINT_2F* glyphOrigins
2026  ) PURE;
2027 
2032  STDMETHOD(ComputeGlyphOrigins)(
2033  DWRITE_GLYPH_RUN const* glyphRun,
2034  D2D1_POINT_2F baselineOrigin,
2035  _Out_writes_(glyphRun->glyphCount) D2D1_POINT_2F* glyphOrigins
2036  ) PURE;
2037 };
2038 
2039 #endif // NTDDI_VERSION >= NTDDI_WIN10_RS1
2040 
2041 
2043 
2044 
2045 #if NTDDI_VERSION >= NTDDI_WIN10_RS2
2046 
2047 interface DWRITE_DECLARE_INTERFACE("3FF7715F-3CDC-4DC6-9B72-EC5621DCCAFD") IDWriteFontSetBuilder1 : public IDWriteFontSetBuilder
2048 {
2057  STDMETHOD(AddFontFile)(
2058  _In_ IDWriteFontFile* fontFile
2059  ) PURE;
2060 };
2061 
2067 interface DWRITE_DECLARE_INTERFACE("CE25F8FD-863B-4D13-9651-C1F88DC73FE2") IDWriteAsyncResult : public IUnknown
2068 {
2074  STDMETHOD_(HANDLE, GetWaitHandle)() PURE;
2075 
2080  STDMETHOD(GetResult)() PURE;
2081 };
2082 
2083 
2088 {
2093 
2098 };
2099 
2100 
2110 interface DWRITE_DECLARE_INTERFACE("4DB3757A-2C72-4ED9-B2B6-1ABABE1AFF9C") IDWriteRemoteFontFileStream : public IDWriteFontFileStream
2111 {
2123  STDMETHOD(GetLocalFileSize)(
2124  _Out_ UINT64* localFileSize
2125  ) PURE;
2126 
2139  STDMETHOD(GetFileFragmentLocality)(
2140  UINT64 fileOffset,
2141  UINT64 fragmentSize,
2142  _Out_ BOOL* isLocal,
2143  _Out_range_(0, fragmentSize) UINT64* partialSize
2144  ) PURE;
2145 
2152  STDMETHOD_(DWRITE_LOCALITY, GetLocality)() PURE;
2153 
2169  STDMETHOD(BeginDownload)(
2170  _In_ UUID const* downloadOperationID,
2171  _In_reads_(fragmentCount) DWRITE_FILE_FRAGMENT const* fileFragments,
2172  UINT32 fragmentCount,
2173  _COM_Outptr_result_maybenull_ IDWriteAsyncResult** asyncResult
2174  ) PURE;
2175 };
2176 
2177 
2184 {
2188 };
2189 
2190 
2202 interface DWRITE_DECLARE_INTERFACE("68648C83-6EDE-46C0-AB46-20083A887FDE") IDWriteRemoteFontFileLoader : public IDWriteFontFileLoader
2203 {
2221  STDMETHOD(CreateRemoteStreamFromKey)(
2222  _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
2223  UINT32 fontFileReferenceKeySize,
2224  _COM_Outptr_ IDWriteRemoteFontFileStream** fontFileStream
2225  ) PURE;
2226 
2237  STDMETHOD(GetLocalityFromKey)(
2238  _In_reads_bytes_(fontFileReferenceKeySize) void const* fontFileReferenceKey,
2239  UINT32 fontFileReferenceKeySize,
2240  _Out_ DWRITE_LOCALITY* locality
2241  ) PURE;
2242 
2255  STDMETHOD(CreateFontFileReferenceFromUrl)(
2256  IDWriteFactory* factory,
2257  _In_opt_z_ WCHAR const* baseUrl,
2258  _In_z_ WCHAR const* fontFileUrl,
2259  _COM_Outptr_ IDWriteFontFile** fontFile
2260  ) PURE;
2261 };
2262 
2263 
2272 interface DWRITE_DECLARE_INTERFACE("DC102F47-A12D-4B1C-822D-9E117E33043F") IDWriteInMemoryFontFileLoader : public IDWriteFontFileLoader
2273 {
2294  STDMETHOD(CreateInMemoryFontFileReference)(
2295  IDWriteFactory* factory,
2296  _In_reads_bytes_(fontDataSize) void const* fontData,
2297  UINT32 fontDataSize,
2298  _In_opt_ IUnknown* ownerObject,
2299  _COM_Outptr_ IDWriteFontFile** fontFile
2300  ) PURE;
2301 
2306  STDMETHOD_(UINT32, GetFileCount)() PURE;
2307 };
2308 
2309 
2313 interface DWRITE_DECLARE_INTERFACE("958DB99A-BE2A-4F09-AF7D-65189803D1D3") IDWriteFactory5 : public IDWriteFactory4
2314 {
2323  STDMETHOD(CreateFontSetBuilder)(
2324  _COM_Outptr_ IDWriteFontSetBuilder1** fontSetBuilder
2325  ) PURE;
2326 
2327  using IDWriteFactory3::CreateFontSetBuilder;
2328 
2338  STDMETHOD(CreateInMemoryFontFileLoader)(
2339  _COM_Outptr_ IDWriteInMemoryFontFileLoader** newLoader
2340  ) PURE;
2341 
2356  STDMETHOD(CreateHttpFontFileLoader)(
2357  _In_opt_z_ wchar_t const* referrerUrl,
2358  _In_opt_z_ wchar_t const* extraHeaders,
2359  _COM_Outptr_ IDWriteRemoteFontFileLoader** newLoader
2360  ) PURE;
2361 
2370  STDMETHOD_(DWRITE_CONTAINER_TYPE, AnalyzeContainerType)(
2371  _In_reads_bytes_(fileDataSize) void const* fileData,
2372  UINT32 fileDataSize
2373  ) PURE;
2374 
2388  STDMETHOD(UnpackFontFile)(
2389  DWRITE_CONTAINER_TYPE containerType,
2390  _In_reads_bytes_(fileDataSize) void const* fileData,
2391  UINT32 fileDataSize,
2392  _COM_Outptr_ IDWriteFontFileStream** unpackedFontStream
2393  ) PURE;
2394 };
2395 
2396 #endif // NTDDI_VERSION >= NTDDI_WIN10_RS2
2397 
2398 
2400 
2401 
2402 #if NTDDI_VERSION >= NTDDI_WIN10_RS3
2403 
2404 
2405 interface IDWriteFontResource;
2406 interface IDWriteFontFace5;
2407 interface IDWriteFontFaceReference1;
2408 interface IDWriteFontSet1;
2409 interface IDWriteFontCollection2;
2410 interface IDWriteTextFormat3;
2411 interface IDWriteFontSetBuilder2;
2412 
2413 
2417 #define DWRITE_MAKE_FONT_AXIS_TAG(a,b,c,d) (static_cast<DWRITE_FONT_AXIS_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
2418 
2419 
2427 {
2433 };
2434 
2435 
2440 {
2445 
2452 };
2453 
2454 
2459 {
2464 
2469 
2474 };
2475 
2476 
2481 {
2488 
2496 };
2497 
2498 
2503 {
2508 
2515 };
2516 
2517 #ifdef DEFINE_ENUM_FLAG_OPERATORS
2519 #endif
2520 
2521 
2526 {
2531 
2539 
2548 };
2549 
2550 #ifdef DEFINE_ENUM_FLAG_OPERATORS
2552 #endif
2553 
2554 
2555 interface DWRITE_DECLARE_INTERFACE("F3744D80-21F7-42EB-B35D-995BC72FC223") IDWriteFactory6 : public IDWriteFactory5
2556 {
2570  STDMETHOD(CreateFontFaceReference)(
2571  _In_ IDWriteFontFile* fontFile,
2572  UINT32 faceIndex,
2573  DWRITE_FONT_SIMULATIONS fontSimulations,
2574  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
2575  UINT32 fontAxisValueCount,
2576  _COM_Outptr_ IDWriteFontFaceReference1** fontFaceReference
2577  ) PURE;
2578 
2579  using IDWriteFactory5::CreateFontFaceReference;
2580 
2591  STDMETHOD(CreateFontResource)(
2592  _In_ IDWriteFontFile* fontFile,
2593  UINT32 faceIndex,
2594  _COM_Outptr_ IDWriteFontResource** fontResource
2595  ) PURE;
2596 
2605  STDMETHOD(GetSystemFontSet)(
2606  BOOL includeDownloadableFonts,
2607  _COM_Outptr_ IDWriteFontSet1** fontSet
2608  ) PURE;
2609 
2610  using IDWriteFactory3::GetSystemFontSet;
2611 
2621  STDMETHOD(GetSystemFontCollection)(
2622  BOOL includeDownloadableFonts,
2623  DWRITE_FONT_FAMILY_MODEL fontFamilyModel,
2624  _COM_Outptr_ IDWriteFontCollection2** fontCollection
2625  ) PURE;
2626 
2627  using IDWriteFactory::GetSystemFontCollection;
2628  using IDWriteFactory3::GetSystemFontCollection;
2629 
2639  STDMETHOD(CreateFontCollectionFromFontSet)(
2640  IDWriteFontSet* fontSet,
2641  DWRITE_FONT_FAMILY_MODEL fontFamilyModel,
2642  _COM_Outptr_ IDWriteFontCollection2** fontCollection
2643  ) PURE;
2644 
2645  using IDWriteFactory5::CreateFontCollectionFromFontSet;
2646 
2654  STDMETHOD(CreateFontSetBuilder)(
2655  _COM_Outptr_ IDWriteFontSetBuilder2** fontSetBuilder
2656  ) PURE;
2657 
2658  using IDWriteFactory3::CreateFontSetBuilder;
2659  using IDWriteFactory5::CreateFontSetBuilder;
2660 
2678  STDMETHOD(CreateTextFormat)(
2679  _In_z_ WCHAR const* fontFamilyName,
2680  _In_opt_ IDWriteFontCollection* fontCollection,
2681  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
2682  UINT32 fontAxisValueCount,
2683  FLOAT fontSize,
2684  _In_z_ WCHAR const* localeName,
2685  _COM_Outptr_ IDWriteTextFormat3** textFormat
2686  ) PURE;
2687 
2688  using IDWriteFactory::CreateTextFormat;
2689 };
2690 
2691 
2692 interface DWRITE_DECLARE_INTERFACE("98EFF3A5-B667-479A-B145-E2FA5B9FDC29") IDWriteFontFace5 : public IDWriteFontFace4
2693 {
2697  STDMETHOD_(UINT32, GetFontAxisValueCount)() PURE;
2698 
2711  STDMETHOD(GetFontAxisValues)(
2712  _Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
2713  UINT32 fontAxisValueCount
2714  ) PURE;
2715 
2720  STDMETHOD_(BOOL, HasVariations)() PURE;
2721 
2730  STDMETHOD(GetFontResource)(
2731  _COM_Outptr_ IDWriteFontResource** fontResource
2732  ) PURE;
2733 
2737  STDMETHOD_(BOOL, Equals)(IDWriteFontFace* fontFace) PURE;
2738 };
2739 
2740 
2744 interface DWRITE_DECLARE_INTERFACE("1F803A76-6871-48E8-987F-B975551C50F2") IDWriteFontResource : public IUnknown
2745 {
2753  STDMETHOD(GetFontFile)(
2754  _COM_Outptr_ IDWriteFontFile** fontFile
2755  ) PURE;
2756 
2761  STDMETHOD_(UINT32, GetFontFaceIndex)() PURE;
2762 
2766  STDMETHOD_(UINT32, GetFontAxisCount)() PURE;
2767 
2781  STDMETHOD(GetDefaultFontAxisValues)(
2782  _Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
2783  UINT32 fontAxisValueCount
2784  ) PURE;
2785 
2797  STDMETHOD(GetFontAxisRanges)(
2798  _Out_writes_(fontAxisRangeCount) DWRITE_FONT_AXIS_RANGE* fontAxisRanges,
2799  UINT32 fontAxisRangeCount
2800  ) PURE;
2801 
2811  STDMETHOD_(DWRITE_FONT_AXIS_ATTRIBUTES, GetFontAxisAttributes)(
2812  UINT32 axisIndex
2813  ) PURE;
2814 
2827  STDMETHOD(GetAxisNames)(
2828  UINT32 axisIndex,
2829  _COM_Outptr_ IDWriteLocalizedStrings** names
2830  ) PURE;
2831 
2839  STDMETHOD_(UINT32, GetAxisValueNameCount)(
2840  UINT32 axisIndex
2841  ) PURE;
2842 
2858  STDMETHOD(GetAxisValueNames)(
2859  UINT32 axisIndex,
2860  UINT32 axisValueIndex,
2861  _Out_ DWRITE_FONT_AXIS_RANGE* fontAxisRange,
2862  _COM_Outptr_ IDWriteLocalizedStrings** names
2863  ) PURE;
2864 
2869  STDMETHOD_(BOOL, HasVariations)() PURE;
2870 
2886  STDMETHOD(CreateFontFace)(
2887  DWRITE_FONT_SIMULATIONS fontSimulations,
2888  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
2889  UINT32 fontAxisValueCount,
2890  _COM_Outptr_ IDWriteFontFace5** fontFace
2891  ) PURE;
2892 
2908  STDMETHOD(CreateFontFaceReference)(
2909  DWRITE_FONT_SIMULATIONS fontSimulations,
2910  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
2911  UINT32 fontAxisValueCount,
2912  _COM_Outptr_ IDWriteFontFaceReference1** fontFaceReference
2913  ) PURE;
2914 };
2915 
2916 
2917 interface DWRITE_DECLARE_INTERFACE("C081FE77-2FD1-41AC-A5A3-34983C4BA61A") IDWriteFontFaceReference1 : public IDWriteFontFaceReference
2918 {
2929  STDMETHOD(CreateFontFace)(
2930  _COM_Outptr_ IDWriteFontFace5** fontFace
2931  ) PURE;
2932 
2933  using IDWriteFontFaceReference::CreateFontFace;
2934 
2938  STDMETHOD_(UINT32, GetFontAxisValueCount)() PURE;
2939 
2948  STDMETHOD(GetFontAxisValues)(
2949  _Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
2950  UINT32 fontAxisValueCount
2951  ) PURE;
2952 };
2953 
2954 
2955 interface DWRITE_DECLARE_INTERFACE("EE5BA612-B131-463C-8F4F-3189B9401E45") IDWriteFontSetBuilder2 : public IDWriteFontSetBuilder1
2956 {
2977  STDMETHOD(AddFont)(
2978  _In_ IDWriteFontFile* fontFile,
2979  UINT32 fontFaceIndex,
2980  DWRITE_FONT_SIMULATIONS fontSimulations,
2981  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
2982  UINT32 fontAxisValueCount,
2983  _In_reads_(fontAxisRangeCount) DWRITE_FONT_AXIS_RANGE const* fontAxisRanges,
2984  UINT32 fontAxisRangeCount,
2985  _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties,
2986  UINT32 propertyCount
2987  ) PURE;
2988 
2997  STDMETHOD(AddFontFile)(
2998  _In_z_ WCHAR const* filePath
2999  ) PURE;
3000 
3001  using IDWriteFontSetBuilder1::AddFontFile;
3002 };
3003 
3004 
3005 interface DWRITE_DECLARE_INTERFACE("7E9FDA85-6C92-4053-BC47-7AE3530DB4D3") IDWriteFontSet1 : public IDWriteFontSet
3006 {
3022  STDMETHOD(GetMatchingFonts)(
3023  _In_opt_ DWRITE_FONT_PROPERTY const* fontProperty,
3024  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3025  UINT32 fontAxisValueCount,
3026  _COM_Outptr_ IDWriteFontSet1** matchingFonts
3027  ) PURE;
3028 
3036  STDMETHOD(GetFirstFontResources)(
3037  _COM_Outptr_ IDWriteFontSet1** filteredFontSet
3038  ) PURE;
3039 
3054  STDMETHOD(GetFilteredFonts)(
3055  _In_reads_opt_(propertyCount) DWRITE_FONT_PROPERTY const* properties,
3056  UINT32 propertyCount,
3057  BOOL selectAnyProperty,
3058  _COM_Outptr_ IDWriteFontSet1** filteredFontSet
3059  ) PURE;
3060 
3075  STDMETHOD(GetFilteredFonts)(
3076  _In_reads_(fontAxisRangeCount) DWRITE_FONT_AXIS_RANGE const* fontAxisRanges,
3077  UINT32 fontAxisRangeCount,
3078  BOOL selectAnyRange,
3079  _COM_Outptr_ IDWriteFontSet1** filteredFontSet
3080  ) PURE;
3081 
3095  STDMETHOD(GetFilteredFonts)(
3096  _In_reads_(indexCount) UINT32 const* indices,
3097  UINT32 indexCount,
3098  _COM_Outptr_ IDWriteFontSet1** filteredFontSet
3099  ) PURE;
3100 
3114  STDMETHOD(GetFilteredFontIndices)(
3115  _In_reads_(propertyCount) DWRITE_FONT_PROPERTY const* properties,
3116  UINT32 propertyCount,
3117  BOOL selectAnyProperty,
3118  _Out_writes_(maxIndexCount) UINT32* indices,
3119  UINT32 maxIndexCount,
3120  _Out_ UINT32* actualIndexCount
3121  ) PURE;
3122 
3135  STDMETHOD(GetFilteredFontIndices)(
3136  _In_reads_(fontAxisRangeCount) DWRITE_FONT_AXIS_RANGE const* fontAxisRanges,
3137  UINT32 fontAxisRangeCount,
3138  BOOL selectAnyRange,
3139  _Out_writes_(maxIndexCount) UINT32* indices,
3140  UINT32 maxIndexCount,
3141  _Out_ UINT32* actualIndexCount
3142  ) PURE;
3143 
3153  STDMETHOD(GetFontAxisRanges)(
3154  _Out_writes_(maxFontAxisRangeCount) DWRITE_FONT_AXIS_RANGE* fontAxisRanges,
3155  UINT32 maxFontAxisRangeCount,
3156  _Out_ UINT32* actualFontAxisRangeCount
3157  ) PURE;
3158 
3169  STDMETHOD(GetFontAxisRanges)(
3170  UINT32 listIndex,
3171  _Out_writes_(maxFontAxisRangeCount) DWRITE_FONT_AXIS_RANGE* fontAxisRanges,
3172  UINT32 maxFontAxisRangeCount,
3173  _Out_ UINT32* actualFontAxisRangeCount
3174  ) PURE;
3175 
3184  STDMETHOD(GetFontFaceReference)(
3185  UINT32 listIndex,
3186  _COM_Outptr_ IDWriteFontFaceReference1** fontFaceReference
3187  ) PURE;
3188 
3189  using IDWriteFontSet::GetFontFaceReference;
3190 
3199  STDMETHOD(CreateFontResource)(
3200  UINT32 listIndex,
3201  _COM_Outptr_ IDWriteFontResource** fontResource
3202  ) PURE;
3203 
3212  STDMETHOD(CreateFontFace)(
3213  UINT32 listIndex,
3214  _COM_Outptr_ IDWriteFontFace5** fontFace
3215  ) PURE;
3216 
3229  STDMETHOD_(DWRITE_LOCALITY, GetFontLocality)(UINT32 listIndex) PURE;
3230 };
3231 
3232 
3233 interface DWRITE_DECLARE_INTERFACE("C0763A34-77AF-445A-B735-08C37B0A5BF5") IDWriteFontList2 : public IDWriteFontList1
3234 {
3242  STDMETHOD(GetFontSet)(
3243  _COM_Outptr_ IDWriteFontSet1** fontSet
3244  ) PURE;
3245 };
3246 
3247 
3248 interface DWRITE_DECLARE_INTERFACE("3ED49E77-A398-4261-B9CF-C126C2131EF3") IDWriteFontFamily2 : public IDWriteFontFamily1
3249 {
3259  STDMETHOD(GetMatchingFonts)(
3260  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3261  UINT32 fontAxisValueCount,
3262  _COM_Outptr_ IDWriteFontList2** matchingFonts
3263  ) PURE;
3264 
3265  using IDWriteFontFamily::GetMatchingFonts;
3266 
3274  STDMETHOD(GetFontSet)(
3275  _COM_Outptr_ IDWriteFontSet1** fontSet
3276  ) PURE;
3277 };
3278 
3279 
3280 interface DWRITE_DECLARE_INTERFACE("514039C6-4617-4064-BF8B-92EA83E506E0") IDWriteFontCollection2 : public IDWriteFontCollection1
3281 {
3290  STDMETHOD(GetFontFamily)(
3291  UINT32 index,
3292  _COM_Outptr_ IDWriteFontFamily2** fontFamily
3293  ) PURE;
3294 
3295  using IDWriteFontCollection::GetFontFamily;
3296  using IDWriteFontCollection1::GetFontFamily;
3297 
3312  STDMETHOD(GetMatchingFonts)(
3313  _In_z_ WCHAR const* familyName,
3314  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3315  UINT32 fontAxisValueCount,
3316  _COM_Outptr_ IDWriteFontList2** fontList
3317  ) PURE;
3318 
3325  STDMETHOD_(DWRITE_FONT_FAMILY_MODEL, GetFontFamilyModel)() PURE;
3326 
3334  STDMETHOD(GetFontSet)(
3335  _COM_Outptr_ IDWriteFontSet1** fontSet
3336  ) PURE;
3337 };
3338 
3339 
3340 interface DWRITE_DECLARE_INTERFACE("05A9BF42-223F-4441-B5FB-8263685F55E9") IDWriteTextLayout4 : public IDWriteTextLayout3
3341 {
3350  STDMETHOD(SetFontAxisValues)(
3351  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3352  UINT32 fontAxisValueCount,
3353  DWRITE_TEXT_RANGE textRange
3354  ) PURE;
3355 
3359  STDMETHOD_(UINT32, GetFontAxisValueCount)(
3360  UINT32 currentPosition
3361  ) PURE;
3362 
3371  STDMETHOD(GetFontAxisValues)(
3372  UINT32 currentPosition,
3373  _Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
3374  UINT32 fontAxisValueCount,
3375  _Out_opt_ DWRITE_TEXT_RANGE* textRange = nullptr
3376  ) PURE;
3377 
3384  STDMETHOD_(DWRITE_AUTOMATIC_FONT_AXES, GetAutomaticFontAxes)() PURE;
3385 
3393  STDMETHOD(SetAutomaticFontAxes)(DWRITE_AUTOMATIC_FONT_AXES automaticFontAxes) PURE;
3394 };
3395 
3396 
3397 interface DWRITE_DECLARE_INTERFACE("6D3B5641-E550-430D-A85B-B7BF48A93427") IDWriteTextFormat3 : public IDWriteTextFormat2
3398 {
3407  STDMETHOD(SetFontAxisValues)(
3408  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3409  UINT32 fontAxisValueCount
3410  ) PURE;
3411 
3415  STDMETHOD_(UINT32, GetFontAxisValueCount)() PURE;
3416 
3425  STDMETHOD(GetFontAxisValues)(
3426  _Out_writes_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE* fontAxisValues,
3427  UINT32 fontAxisValueCount
3428  ) PURE;
3429 
3436  STDMETHOD_(DWRITE_AUTOMATIC_FONT_AXES, GetAutomaticFontAxes)() PURE;
3437 
3445  STDMETHOD(SetAutomaticFontAxes)(DWRITE_AUTOMATIC_FONT_AXES automaticFontAxes) PURE;
3446 };
3447 
3448 
3449 interface DWRITE_DECLARE_INTERFACE("2397599D-DD0D-4681-BD6A-F4F31EAADE77") IDWriteFontFallback1 : public IDWriteFontFallback
3450 {
3471  STDMETHOD(MapCharacters)(
3472  IDWriteTextAnalysisSource* analysisSource,
3473  UINT32 textPosition,
3474  UINT32 textLength,
3475  _In_opt_ IDWriteFontCollection* baseFontCollection,
3476  _In_opt_z_ WCHAR const* baseFamilyName,
3477  _In_reads_(fontAxisValueCount) DWRITE_FONT_AXIS_VALUE const* fontAxisValues,
3478  UINT32 fontAxisValueCount,
3479  _Deref_out_range_(0, textLength) UINT32* mappedLength,
3480  _Out_ FLOAT* scale,
3481  _COM_Outptr_ IDWriteFontFace5** mappedFontFace
3482  ) PURE;
3483 
3484  using IDWriteFontFallback::MapCharacters;
3485 };
3486 
3487 #endif // NTDDI_VERSION >= NTDDI_WIN10_RS3
3488 
3489 #endif // DWRITE_3_H_INCLUDED
struct nk_font * font
Definition: nk_common.c:40
Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is ...
Definition: dwrite.h:921
D2D1_POINT_2L verticalTopOrigin
Top origin along the vertical central baseline.
Definition: dwrite_3.h:1863
The usage of the font line gap depends on the method used for text layout.
Definition: dwrite_3.h:1648
The interface that represents text rendering settings for glyph rasterization and filtering.
Definition: dwrite_3.h:1623
#define const
Definition: zconf.h:217
Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is ...
Definition: dwrite_3.h:310
Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is ...
Definition: dwrite.h:930
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:6318
Definition: glslang_tab.cpp:129
DWRITE_CONTAINER_TYPE
IDWriteRemoteFontFileStream represents a font file stream parts of which may be non-local....
Definition: dwrite_3.h:2183
Definition: dwrite_3.h:2186
Face name of the for the weight-stretch-style (e.g., Regular or Bold).
Definition: dwrite_3.h:85
DWRITE_FONT_PROPERTY_ID
The font property enumeration identifies a string in a font.
Definition: dwrite_3.h:64
Ιστορικό Εικόνα Πληροφορίες Όλοι Οι Χρήστες Χειρίζονται Το Μενού Αριστερό Αναλογικό Αριστερό Αναλογικό Αριστερό Αναλογικό Y Αριστερό Αναλογικό Δεξί Αναλογικό X Δεξί Αναλογικό Δεξί Αναλογικό Y Δεξί Αναλογικό Σκανδάλη Όπλου Όπλο Aux A Όπλο Aux C Όπλο Select Όπλο D pad Κάτω Όπλο D pad Δεξιά Νεκρή Ζώνη Αναλογικού Σύνδεση Όλων Λήξη Χρόνου Σύνδεσης Hide Unbound Core Input Descriptors Κατάλογος Συσκευών Κατάλογος Ποντικιού Duty Cycle Keyboard Gamepad Mapping Enable Κουμπί B(κάτω)" ) MSG_HASH( MENU_ENUM_LABEL_VALUE_INPUT_JOYPAD_DOWN
Value for a font axis, used when querying and creating font instances.
Definition: dwrite_3.h:2439
#define FALSE
Definition: stb_vorbis.h:232
UINT32 uniqueDataId
Unique identifier for the glyph data. Clients may use this to cache a parsed/decompressed version and...
Definition: dwrite_3.h:1836
uint64_t UINT64
Definition: coretypes.h:8
D2D_POINT_2L D2D1_POINT_2L
Definition: d2d1_1.h:58
GLsizeiptr size
Definition: glext.h:6559
The full name of the font, e.g. "Arial Bold", from name id 4 in the name table.
Definition: dwrite_3.h:90
Specifies that rendering should bypass the rasterizer and use the outlines directly....
Definition: dwrite.h:952
GLenum GLenum GLenum GLenum GLenum scale
Definition: glext.h:9939
Families are grouped by the weight-stretch-style family name, where all faces that differ only by tho...
Definition: dwrite_3.h:2495
FLOAT leadingBefore
Proportion of the entire leading distributed before the line. The allowed value is between 0 and 1....
Definition: dwrite_3.h:1697
DWRITE_FONT_LINE_GAP_USAGE
Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics.
Definition: dwrite_3.h:1643
Typeface classification values, used for font selection and matching.
Definition: dwrite_1.h:752
typedef HRESULT(WINAPI *PFN_D3D12_SERIALIZE_ROOT_SIGNATURE)(_In_ const D3D12_ROOT_SIGNATURE_DESC *pRootSignature
interface DWRITE_DECLARE_INTERFACE("68648C83-6EDE-46C0-AB46-20083A887FDE") IDWriteRemoteFontFileLoader interface DWRITE_DECLARE_INTERFACE("DC102F47-A12D-4B1C-822D-9E117E33043F") IDWriteInMemoryFontFileLoader interface DWRITE_DECLARE_INTERFACE("958DB99A-BE2A-4F09-AF7D-65189803D1D3") IDWriteFactory5 interface IDWriteFontResource
The IDWriteRemoteFontFileLoader interface represents a font file loader that can access remote (i....
Definition: dwrite_3.h:2313
Family name for the weight-stretch-style model.
Definition: dwrite_3.h:74
DWRITE_LINE_SPACING_METHOD method
Method used to determine line spacing.
Definition: dwrite_3.h:1669
Specifies that antialiasing is performed in the horizontal direction. This rendering mode allows glyp...
Definition: dwrite_3.h:318
Definition: dwrite_3.h:2430
interface DWRITE_DECLARE_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") IDWriteFontCollectionLoader interface DWRITE_DECLARE_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") IDWriteFontFileEnumerator interface DWRITE_DECLARE_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") IDWriteLocalizedStrings interface IDWriteFontFamily
The font collection loader interface is used to construct a collection of fonts given a particular ty...
Definition: dwrite.h:1367
Style of the font represented as a decimal string in the range 0-2.
Definition: dwrite_3.h:194
Similar to natural symmetric mode except that when possible, text should be rasterized in a downsampl...
Definition: dwrite_3.h:338
Represents a color glyph run. The IDWriteFactory4::TranslateColorGlyphRun method returns an ordered c...
Definition: dwrite_3.h:1802
The DWRITE_LINE_METRICS structure contains information about a formatted line of text.
Definition: dwrite.h:3223
Definition: dwrite_3.h:218
DWRITE_GLYPH_IMAGE_FORMATS glyphImageFormat
Type of glyph image format for this color run. Exactly one type will be set since TranslateColorGlyph...
Definition: dwrite_3.h:1808
The DWRITE_TEXT_RANGE structure specifies a range of text positions where format is applied.
Definition: dwrite.h:1965
Font property used for filtering font sets and building a font set with explicit properties.
Definition: dwrite_3.h:226
The DWRITE_GLYPH_RUN_DESCRIPTION structure contains additional properties related to those in DWRITE_...
Definition: dwrite.h:3075
#define DWRITE_DECLARE_INTERFACE(iid)
Definition: dwrite.h:25
The font line gap is excluded from line spacing
Definition: dwrite_3.h:1653
DWRITE_GLYPH_IMAGE_FORMATS
Fonts may contain multiple drawable data formats for glyphs. These flags specify which formats are su...
Definition: dcommon.h:62
DWRITE_MEASURING_MODE measuringMode
Measuring mode to use for this glyph run.
Definition: dwrite_3.h:1813
Definition: dwrite_3.h:2432
Definition: dwrite_3.h:217
The font line gap is included in line spacing
Definition: dwrite_3.h:1658
FLOAT maxValue
Maximum value supported by this axis. The maximum can equal the minimum.
Definition: dwrite_3.h:2473
DWRITE_FONT_FAMILY_MODEL
How font families are grouped together, used by IDWriteFontCollection.
Definition: dwrite_3.h:2480
Enumerator for an ordered collection of color glyph runs.
Definition: dwrite_3.h:2087
#define DWRITE_MAKE_FONT_AXIS_TAG(a, b, c, d)
Creates an OpenType tag for a font axis.
Definition: dwrite_3.h:2417
Automatically pick an appropriate optical value based on the font size (via SetFontSize) when no valu...
Definition: dwrite_3.h:2514
DWRITE_OUTLINE_THRESHOLD
Specifies the policy used by GetRecommendedRenderingMode to determine whether to render glyphs in out...
Definition: dwrite_1.h:516
Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is ...
Definition: dwrite_3.h:301
The DWRITE_LINE_SPACING structure specifies the parameters used to specify how to manage space betwee...
Definition: dwrite_3.h:1664
UINT32 glyphCount
The number of glyphs.
Definition: dwrite.h:3036
FLOAT baseline
Distance from top of line to baseline. The interpretation of this parameter depends upon the line spa...
Definition: dwrite_3.h:1689
The resource is completely local, and all font functions can be called without concern of missing dat...
Definition: dwrite_3.h:275
DWRITE_FONT_AXIS_TAG axisTag
Four character identifier of the font axis (weight, width, slant, italic...).
Definition: dwrite_3.h:2444
The IDWriteFont interface represents a physical font in a font collection.
Definition: dwrite_2.h:768
DWRITE_FONT_AXIS_ATTRIBUTES
Attributes for a font axis.
Definition: dwrite_3.h:2525
The interface implemented by the text analyzer's client to provide text to the analyzer....
Definition: dwrite.h:3021
DWRITE_LINE_SPACING_METHOD
The method used for line spacing in layout.
Definition: dwrite.h:1831
Semantic tag to describe the font (e.g. Fancy, Decorative, Handmade, Sans-serif, Swiss,...
Definition: dwrite_3.h:167
This axis is recommended to be remain hidden in user interfaces. The font developer may recommend thi...
Definition: dwrite_3.h:2547
DWRITE_RENDERING_MODE1
Represents a method of rendering glyphs.
Definition: dwrite_3.h:282
Families are grouped by the typographic family name preferred by the font author. The family can cont...
Definition: dwrite_3.h:2487
Weight of the font represented as a decimal string in the range 1-999.
Definition: dwrite_3.h:176
Definition: dwrite_3.h:2187
GDI-compatible family name. Because GDI allows a maximum of four fonts per family,...
Definition: dwrite_3.h:96
Similar to natural mode except that antialiasing is performed in both the horizontal and vertical dir...
Definition: dwrite.h:946
Minimum and maximum range of a font axis.
Definition: dwrite_3.h:2458
Represents an x-coordinate and y-coordinate pair in two-dimensional space.
Definition: dcommon.h:175
DWRITE_FONT_SIMULATIONS
Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations ...
Definition: dwrite.h:141
#define A(i)
Definition: ecp_curves.c:884
Data for a single glyph from GetGlyphImageData.
Definition: dwrite_3.h:1820
Total number of properties for NTDDI_WIN10_RS3 (IDWriteFontSet1).
Definition: dwrite_3.h:213
GLuint GLuint GLsizei GLenum const GLvoid * indices
Definition: glext.h:6292
DWRITE_AUTOMATIC_FONT_AXES
Apply certain axes automatically in layout during font selection.
Definition: dwrite_3.h:2502
interface IDWriteFontFace IDWriteFontFace
Definition: d2d1_3.h:31
#define F0(x, y, z)
Definition: sha256.c:166
UINT64 fragmentSize
Size of the file fragment, in bytes.
Definition: dwrite_3.h:2097
FLOAT height
Spacing between lines. The interpretation of this parameter depends upon the line spacing method,...
Definition: dwrite_3.h:1679
The DWRITE_MATRIX structure specifies the graphics transform to be applied to rendered glyphs.
Definition: dwrite.h:967
GLuint index
Definition: glext.h:6671
Specifies that no antialiasing is performed. Each pixel is either set to the foreground color of the ...
Definition: dwrite.h:913
D2D1_POINT_2L verticalBottomOrigin
Bottom origin along vertical central baseline.
Definition: dwrite_3.h:1868
DWRITE_INFORMATIONAL_STRING_ID
The informational string enumeration identifies a string in a font.
Definition: dwrite.h:344
FLOAT value
Value for the given axis, with the meaning and range depending on the axis semantics....
Definition: dwrite_3.h:2451
Specifies that the rendering mode is determined automatically based on the font and size.
Definition: dwrite_3.h:287
unsigned int BOOL
Definition: gctypes.h:51
DWRITE_PIXEL_GEOMETRY
Font file loader interface handles loading font file resources of a particular type from a key....
Definition: dwrite.h:877
Definition: dwrite_3.h:2429
_Field_z_ _Maybenull_ WCHAR const * localeName
Specifies the language / locale to use, such as "en-US".
Definition: dwrite_3.h:249
D2D1_POINT_2L horizontalRightOrigin
Right origin along the horizontal Roman baseline.
Definition: dwrite_3.h:1858
DWRITE_FONT_WEIGHT
The font weight enumeration describes common values for degree of blackness or thickness of strokes o...
Definition: dwrite.h:167
uint32_t UINT32
Definition: coretypes.h:10
Total number of properties for NTDDI_WIN10 (IDWriteFontSet).
Definition: dwrite_3.h:208
GLenum const GLvoid GLbitfield fontStyle
Definition: glext.h:12622
Specifies that rendering should bypass the rasterizer and use the outlines directly....
Definition: dwrite_3.h:332
GLuint GLuint * names
Definition: glext.h:12452
_Field_size_bytes_(imageDataSize) void const *imageData
Pointer to the glyph data, be it SVG, PNG, JPEG, TIFF.
D2D1_SIZE_U pixelSize
Size of image when the format is pixel data.
Definition: dwrite_3.h:1848
FLOAT minValue
Minimum value supported by this axis.
Definition: dwrite_3.h:2468
This axis is implemented as a variation axis in a variable font, with a continuous range of values,...
Definition: dwrite_3.h:2538
UINT64 fileOffset
Starting offset of the fragment from the beginning of the file.
Definition: dwrite_3.h:2092
No axes are automatically applied.
Definition: dwrite_3.h:2507
The resource is partially local, meaning you can query the size and date of the file stream,...
Definition: dwrite_3.h:269
DWRITE_FONT_AXIS_TAG
Four character identifier for a font axis.
Definition: dwrite_3.h:2426
FLOAT leadingBefore
White space before the content of the line. This is included in the line height and baseline distance...
Definition: dwrite_3.h:1630
The resource is remote, and information is unknown yet, including the file size and date....
Definition: dwrite_3.h:262
Definition: dwrite_3.h:2428
DWRITE_FONT_PROPERTY_ID propertyId
Specifies the requested font property, such as DWRITE_FONT_PROPERTY_ID_FAMILY_NAME.
Definition: dwrite_3.h:231
Stores an ordered pair of integers, typically the width and height of a rectangle.
Definition: dcommon.h:264
uint16_t UINT16
Definition: coretypes.h:11
interface IDWriteRenderingParams IDWriteRenderingParams
Definition: d2d1.h:52
Specifies that no antialiasing is performed. Each pixel is either set to the foreground color of the ...
Definition: dwrite_3.h:293
GLuint GLenum GLenum transform
Definition: glext.h:10314
DWRITE_TEXT_ANTIALIAS_MODE
The root factory interface for all DWrite objects.
Definition: dwrite_1.h:1877
Face name preferred by the designer. This enables font designers to group more than four fonts in a s...
Definition: dwrite_3.h:200
DWRITE_LOCALITY
Specifies the locality of a resource.
Definition: dwrite_3.h:256
Definition: dwrite_3.h:2185
Script/language tag to identify the scripts or languages that the font declares it is able to support...
Definition: dwrite_3.h:162
interface IDWriteFactory IDWriteFactory
Definition: d2d1_1.h:35
Family name preferred by the designer. This enables font designers to group more than four fonts in a...
Definition: dwrite_3.h:80
DEFINE_ENUM_FLAG_OPERATORS(D2D1_DRAW_TEXT_OPTIONS)
Stretch of the font represented as a decimal string in the range 1-9.
Definition: dwrite_3.h:185
Script/language tag to identify the scripts or languages that the font was primarily designed to supp...
Definition: dwrite_3.h:156
Similar to natural mode except that antialiasing is performed in both the horizontal and vertical dir...
Definition: dwrite_3.h:326
DWRITE_FONT_LINE_GAP_USAGE fontLineGapUsage
Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics.
Definition: dwrite_3.h:1702
Definition: dwrite_3.h:2431
UINT32 imageDataSize
Size of glyph data in bytes.
Definition: dwrite_3.h:1830
DWRITE_FONT_STYLE
The font style enumeration describes the slope style of a font face, such as Normal,...
Definition: dwrite.h:322
#define F(x, y, z)
D2D1_POINT_2L horizontalLeftOrigin
Left origin along the horizontal Roman baseline.
Definition: dwrite_3.h:1853
DWRITE_GRID_FIT_MODE
Whether to enable grid-fitting of glyph outlines (a.k.a. hinting).
Definition: dwrite_2.h:44
No attributes.
Definition: dwrite_3.h:2530
GLenum GLuint GLenum GLsizei length
Definition: glext.h:6233
FLOAT leadingAfter
White space after the content of the line. This is included in the height of the line....
Definition: dwrite_3.h:1637
Specifies that antialiasing is performed in the horizontal direction. This rendering mode allows glyp...
Definition: dwrite.h:938
DWRITE_FONT_AXIS_TAG axisTag
Four character identifier of the font axis (weight, width, slant, italic...).
Definition: dwrite_3.h:2463
Specifies that the rendering mode is determined automatically based on the font and size.
Definition: dwrite.h:907
UINT32 pixelsPerEm
Pixels per em of the returned data. For non-scalable raster data (PNG/TIFF/JPG), this can be larger o...
Definition: dwrite_3.h:1843
_Field_z_ WCHAR const * propertyValue
Specifies the property value, such as "Segoe UI".
Definition: dwrite_3.h:236
DWRITE_MEASURING_MODE
The measuring method used for text layout.
Definition: dcommon.h:35
The postscript name of the font, e.g. "GillSans-Bold" from name id 6 in the name table.
Definition: dwrite_3.h:101
DWRITE_FONT_STRETCH
The font stretch enumeration describes relative change from the normal aspect ratio as specified by a...
Definition: dwrite.h:260
Unspecified font property identifier.
Definition: dwrite_3.h:69