RetroArch
dwrite_1.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_1_H_INCLUDED
11 #define DWRITE_1_H_INCLUDED
12 
13 #pragma once
14 
15 #include <dwrite.h>
16 
17 
18 
23 {
27  DWRITE_PANOSE_FAMILY_SCRIPT = 3, // or hand written
29  DWRITE_PANOSE_FAMILY_SYMBOL = 5, // or symbol
31 };
32 
38 {
58 };
59 
66 {
80 };
81 
88 {
99 };
100 
107 {
122 };
123 
129 {
141 };
142 
148 {
168 };
169 
175 {
192 };
193 
200 {
215 };
216 
223 {
234 };
235 
241 {
252 };
253 
259 {
264 };
265 
271 {
279 };
280 
286 {
298 };
299 
305 {
320 };
321 
327 {
342 };
343 
349 {
357 };
358 
364 {
378 };
379 
385 {
396 };
397 
403 {
412 };
413 
419 {
429 };
430 
436 {
453 };
454 
460 {
467 };
468 
474 {
488 };
489 
495 {
506 };
507 
517 {
520 };
521 
526 {
531 
536 
541 
546 
551 
556 
561 
566 
571 };
572 
580 {
587 
596 };
597 
604 {
609 
614 
619 
624 };
625 
626 
628 {
633 
638 
643 
648 
655 
661 
670 
679 
686 
692 
701 
710 
716 };
717 
718 
723 {
729 
735 
741 };
742 
743 
753 {
755 
756  UINT8 familyKind; // this is the only field that never changes meaning
757 
758  struct
759  {
760  UINT8 familyKind; // = 2 for text
770  } text;
771 
772  struct
773  {
774  UINT8 familyKind; // = 3 for script
776  UINT8 weight;
779  UINT8 contrast;
784  } script;
785 
786  struct
787  {
788  UINT8 familyKind; // = 4 for decorative
790  UINT8 weight;
792  UINT8 contrast;
794  UINT8 fill; // treatment
798  } decorative;
799 
800  struct
801  {
802  UINT8 familyKind; // = 5 for symbol
804  UINT8 weight;
805  UINT8 spacing;
806  UINT8 aspectRatioAndContrast; // hard coded to no-fit (1)
812  } symbol;
813 };
814 
815 
820 {
825 
830 };
831 
832 
837 {
846 
852 
862 
871 
878 
887 
895 
902 
912 
924 
936 
938 };
939 
940 
945 {
952 
960 
966 
972 
978 
984 
990 
998 
1006 
1008 };
1009 
1010 
1011 interface IDWriteTextAnalysisSource1;
1012 interface IDWriteTextAnalysisSink1;
1013 interface IDWriteRenderingParams1;
1014 
1018 interface DWRITE_DECLARE_INTERFACE("30572f99-dac6-41db-a16e-0486307e606a") IDWriteFactory1 : public IDWriteFactory
1019 {
1053  STDMETHOD(GetEudcFontCollection)(
1054  _COM_Outptr_ IDWriteFontCollection** fontCollection,
1055  BOOL checkForUpdates = FALSE
1056  ) PURE;
1057 
1071  STDMETHOD(CreateCustomRenderingParams)(
1072  FLOAT gamma,
1073  FLOAT enhancedContrast,
1074  FLOAT enhancedContrastGrayscale,
1075  FLOAT clearTypeLevel,
1076  DWRITE_PIXEL_GEOMETRY pixelGeometry,
1077  DWRITE_RENDERING_MODE renderingMode,
1078  _COM_Outptr_ IDWriteRenderingParams1** renderingParams
1079  ) PURE;
1080 
1081  using IDWriteFactory::CreateCustomRenderingParams;
1082 };
1083 
1084 
1090 interface DWRITE_DECLARE_INTERFACE("a71efdb4-9fdb-4838-ad90-cfc3be8c3daf") IDWriteFontFace1 : public IDWriteFontFace
1091 {
1098  STDMETHOD_(void, GetMetrics)(
1099  _Out_ DWRITE_FONT_METRICS1* fontMetrics
1100  ) PURE;
1101 
1119  STDMETHOD(GetGdiCompatibleMetrics)(
1120  FLOAT emSize,
1121  FLOAT pixelsPerDip,
1122  _In_opt_ DWRITE_MATRIX const* transform,
1123  _Out_ DWRITE_FONT_METRICS1* fontMetrics
1124  ) PURE;
1125 
1131  STDMETHOD_(void, GetCaretMetrics)(
1132  _Out_ DWRITE_CARET_METRICS* caretMetrics
1133  ) PURE;
1134 
1153  STDMETHOD(GetUnicodeRanges)(
1154  UINT32 maxRangeCount,
1155  _Out_writes_to_opt_(maxRangeCount, *actualRangeCount) DWRITE_UNICODE_RANGE* unicodeRanges,
1156  _Out_ UINT32* actualRangeCount
1157  ) PURE;
1158 
1163  STDMETHOD_(BOOL, IsMonospacedFont)() PURE;
1164 
1181  STDMETHOD(GetDesignGlyphAdvances)(
1182  UINT32 glyphCount,
1183  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1184  _Out_writes_(glyphCount) INT32* glyphAdvances,
1185  BOOL isSideways = FALSE
1186  ) PURE;
1187 
1219  STDMETHOD(GetGdiCompatibleGlyphAdvances)(
1220  FLOAT emSize,
1221  FLOAT pixelsPerDip,
1222  _In_opt_ DWRITE_MATRIX const* transform,
1223  BOOL useGdiNatural,
1224  BOOL isSideways,
1225  UINT32 glyphCount,
1226  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1227  _Out_writes_(glyphCount) INT32* glyphAdvances
1228  ) PURE;
1229 
1255  STDMETHOD(GetKerningPairAdjustments)(
1256  UINT32 glyphCount,
1257  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1258  _Out_writes_(glyphCount) INT32* glyphAdvanceAdjustments
1259  ) PURE;
1260 
1271  STDMETHOD_(BOOL, HasKerningPairs)() PURE;
1272 
1294  STDMETHOD(GetRecommendedRenderingMode)(
1295  FLOAT fontEmSize,
1296  FLOAT dpiX,
1297  FLOAT dpiY,
1298  _In_opt_ DWRITE_MATRIX const* transform,
1299  BOOL isSideways,
1300  DWRITE_OUTLINE_THRESHOLD outlineThreshold,
1301  DWRITE_MEASURING_MODE measuringMode,
1302  _Out_ DWRITE_RENDERING_MODE* renderingMode
1303  ) PURE;
1304 
1321  STDMETHOD(GetVerticalGlyphVariants)(
1322  UINT32 glyphCount,
1323  _In_reads_(glyphCount) UINT16 const* nominalGlyphIndices,
1324  _Out_writes_(glyphCount) UINT16* verticalGlyphIndices
1325  ) PURE;
1326 
1337  STDMETHOD_(BOOL, HasVerticalGlyphVariants)() PURE;
1338 
1339  using IDWriteFontFace::GetMetrics;
1340  using IDWriteFontFace::GetGdiCompatibleMetrics;
1341  using IDWriteFontFace::GetRecommendedRenderingMode;
1342 };
1343 
1344 
1348 interface DWRITE_DECLARE_INTERFACE("acd16696-8c14-4f5d-877e-fe3fc1d32738") IDWriteFont1 : public IDWriteFont
1349 {
1356  STDMETHOD_(void, GetMetrics)(
1357  _Out_ DWRITE_FONT_METRICS1* fontMetrics
1358  ) PURE;
1359 
1360  using IDWriteFont::GetMetrics;
1361 
1372  STDMETHOD_(void, GetPanose)(
1373  _Out_ DWRITE_PANOSE* panose
1374  ) PURE;
1375 
1394  STDMETHOD(GetUnicodeRanges)(
1395  UINT32 maxRangeCount,
1396  _Out_writes_to_opt_(maxRangeCount, *actualRangeCount) DWRITE_UNICODE_RANGE* unicodeRanges,
1397  _Out_ UINT32* actualRangeCount
1398  ) PURE;
1399 
1404  STDMETHOD_(BOOL, IsMonospacedFont)() PURE;
1405 };
1406 
1410 interface DWRITE_DECLARE_INTERFACE("94413cf4-a6fc-4248-8b50-6674348fcad3") IDWriteRenderingParams1 : public IDWriteRenderingParams
1411 {
1416  STDMETHOD_(FLOAT, GetGrayscaleEnhancedContrast)() PURE;
1417 };
1418 
1422 interface DWRITE_DECLARE_INTERFACE("80DAD800-E21F-4E83-96CE-BFCCE500DB7C") IDWriteTextAnalyzer1 : public IDWriteTextAnalyzer
1423 {
1447  STDMETHOD(ApplyCharacterSpacing)(
1448  FLOAT leadingSpacing,
1449  FLOAT trailingSpacing,
1450  FLOAT minimumAdvanceWidth,
1451  UINT32 textLength,
1452  UINT32 glyphCount,
1453  _In_reads_(textLength) UINT16 const* clusterMap,
1454  _In_reads_(glyphCount) FLOAT const* glyphAdvances,
1455  _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets,
1456  _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
1457  _Out_writes_(glyphCount) FLOAT* modifiedGlyphAdvances,
1458  _Out_writes_(glyphCount) DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets
1459  ) PURE;
1460 
1482  STDMETHOD(GetBaseline)(
1483  _In_ IDWriteFontFace* fontFace,
1484  DWRITE_BASELINE baseline,
1485  BOOL isVertical,
1486  BOOL isSimulationAllowed,
1487  DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
1488  _In_opt_z_ WCHAR const* localeName,
1489  _Out_ INT32* baselineCoordinate,
1490  _Out_ BOOL* exists
1491  ) PURE;
1492 
1507  STDMETHOD(AnalyzeVerticalGlyphOrientation)(
1508  _In_ IDWriteTextAnalysisSource1* analysisSource,
1509  UINT32 textPosition,
1510  UINT32 textLength,
1511  _In_ IDWriteTextAnalysisSink1* analysisSink
1512  ) PURE;
1513 
1529  STDMETHOD(GetGlyphOrientationTransform)(
1530  DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle,
1531  BOOL isSideways,
1532  _Out_ DWRITE_MATRIX* transform
1533  ) PURE;
1534 
1545  STDMETHOD(GetScriptProperties)(
1546  DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
1547  _Out_ DWRITE_SCRIPT_PROPERTIES* scriptProperties
1548  ) PURE;
1549 
1581  STDMETHOD(GetTextComplexity)(
1582  _In_reads_(textLength) WCHAR const* textString,
1583  UINT32 textLength,
1584  _In_ IDWriteFontFace* fontFace,
1585  _Out_ BOOL* isTextSimple,
1586  _Out_range_(0, textLength) UINT32* textLengthRead,
1587  _Out_writes_to_opt_(textLength, *textLengthRead) UINT16* glyphIndices
1588  ) PURE;
1589 
1613  STDMETHOD(GetJustificationOpportunities)(
1614  _In_opt_ IDWriteFontFace* fontFace,
1615  FLOAT fontEmSize,
1616  DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
1617  UINT32 textLength,
1618  UINT32 glyphCount,
1619  _In_reads_(textLength) WCHAR const* textString,
1620  _In_reads_(textLength) UINT16 const* clusterMap,
1621  _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
1622  _Out_writes_(glyphCount) DWRITE_JUSTIFICATION_OPPORTUNITY* justificationOpportunities
1623  ) PURE;
1624 
1645  STDMETHOD(JustifyGlyphAdvances)(
1646  FLOAT lineWidth,
1647  UINT32 glyphCount,
1648  _In_reads_(glyphCount) DWRITE_JUSTIFICATION_OPPORTUNITY const* justificationOpportunities,
1649  _In_reads_(glyphCount) FLOAT const* glyphAdvances,
1650  _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* glyphOffsets,
1651  _Out_writes_(glyphCount) FLOAT* justifiedGlyphAdvances,
1652  _Out_writes_opt_(glyphCount) DWRITE_GLYPH_OFFSET* justifiedGlyphOffsets
1653  ) PURE;
1654 
1693  STDMETHOD(GetJustifiedGlyphs)(
1694  _In_opt_ IDWriteFontFace* fontFace,
1695  FLOAT fontEmSize,
1696  DWRITE_SCRIPT_ANALYSIS scriptAnalysis,
1697  UINT32 textLength,
1698  UINT32 glyphCount,
1699  UINT32 maxGlyphCount,
1700  _In_reads_opt_(textLength) UINT16 const* clusterMap,
1701  _In_reads_(glyphCount) UINT16 const* glyphIndices,
1702  _In_reads_(glyphCount) FLOAT const* glyphAdvances,
1703  _In_reads_(glyphCount) FLOAT const* justifiedGlyphAdvances,
1704  _In_reads_(glyphCount) DWRITE_GLYPH_OFFSET const* justifiedGlyphOffsets,
1705  _In_reads_(glyphCount) DWRITE_SHAPING_GLYPH_PROPERTIES const* glyphProperties,
1706  _Out_range_(glyphCount, maxGlyphCount) UINT32* actualGlyphCount,
1707  _Out_writes_opt_(textLength) UINT16* modifiedClusterMap,
1708  _Out_writes_to_(maxGlyphCount, *actualGlyphCount) UINT16* modifiedGlyphIndices,
1709  _Out_writes_to_(maxGlyphCount, *actualGlyphCount) FLOAT* modifiedGlyphAdvances,
1710  _Out_writes_to_(maxGlyphCount, *actualGlyphCount) DWRITE_GLYPH_OFFSET* modifiedGlyphOffsets
1711  ) PURE;
1712 };
1713 
1714 
1721 interface DWRITE_DECLARE_INTERFACE("639CFAD8-0FB4-4B21-A58A-067920120009") IDWriteTextAnalysisSource1 : public IDWriteTextAnalysisSource
1722 {
1747  STDMETHOD(GetVerticalGlyphOrientation)(
1748  UINT32 textPosition,
1749  _Out_ UINT32* textLength,
1750  _Out_ DWRITE_VERTICAL_GLYPH_ORIENTATION* glyphOrientation,
1751  _Out_ UINT8* bidiLevel
1752  ) PURE;
1753 };
1754 
1755 
1760 interface DWRITE_DECLARE_INTERFACE("B0D941A0-85E7-4D8B-9FD3-5CED9934482A") IDWriteTextAnalysisSink1 : public IDWriteTextAnalysisSink
1761 {
1785  STDMETHOD(SetGlyphOrientation)(
1786  UINT32 textPosition,
1787  UINT32 textLength,
1788  DWRITE_GLYPH_ORIENTATION_ANGLE glyphOrientationAngle,
1789  UINT8 adjustedBidiLevel,
1790  BOOL isSideways,
1791  BOOL isRightToLeft
1792  ) PURE;
1793 };
1794 
1795 
1802 interface DWRITE_DECLARE_INTERFACE("9064D822-80A7-465C-A986-DF65F78B8FEB") IDWriteTextLayout1 : public IDWriteTextLayout
1803 {
1812  STDMETHOD(SetPairKerning)(
1813  BOOL isPairKerningEnabled,
1814  DWRITE_TEXT_RANGE textRange
1815  ) PURE;
1816 
1826  STDMETHOD(GetPairKerning)(
1827  UINT32 currentPosition,
1828  _Out_ BOOL* isPairKerningEnabled,
1829  _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
1830  ) PURE;
1831 
1844  STDMETHOD(SetCharacterSpacing)(
1845  FLOAT leadingSpacing,
1846  FLOAT trailingSpacing,
1847  FLOAT minimumAdvanceWidth,
1848  DWRITE_TEXT_RANGE textRange
1849  ) PURE;
1850 
1864  STDMETHOD(GetCharacterSpacing)(
1865  UINT32 currentPosition,
1866  _Out_ FLOAT* leadingSpacing,
1867  _Out_ FLOAT* trailingSpacing,
1868  _Out_ FLOAT* minimumAdvanceWidth,
1869  _Out_opt_ DWRITE_TEXT_RANGE* textRange = NULL
1870  ) PURE;
1871 };
1872 
1878 {
1886 
1894 };
1895 
1899 interface DWRITE_DECLARE_INTERFACE("791e8298-3ef3-4230-9880-c9bdecc42064") IDWriteBitmapRenderTarget1 : public IDWriteBitmapRenderTarget
1900 {
1907  STDMETHOD_(DWRITE_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)() PURE;
1908 
1921  STDMETHOD(SetTextAntialiasMode)(
1922  DWRITE_TEXT_ANTIALIAS_MODE antialiasMode
1923  ) PURE;
1924 };
1925 
1926 #endif /* DWRITE_1_H_INCLUDED */
Definition: dwrite_1.h:372
Definition: dwrite_1.h:184
Definition: dwrite_1.h:365
int16_t INT16
Definition: coretypes.h:18
Definition: dwrite_1.h:108
Definition: dwrite_1.h:480
Definition: dwrite_1.h:483
INT16 slopeRise
Vertical rise of the caret. Rise / Run yields the caret angle. Rise = 1 for perfectly upright fonts (...
Definition: dwrite_1.h:728
Mathematical baseline which math characters are centered on.
Definition: dwrite_1.h:545
UINT32 isoScriptNumber
The standardized numeric code, ranging 0-999. http://unicode.org/iso15924/iso15924-codes....
Definition: dwrite_1.h:851
DWRITE_PANOSE_ASPECT_RATIO
Ratio between width and height of the face. Present for families: 3-script
Definition: dwrite_1.h:270
Definition: dwrite_1.h:272
Definition: dwrite_1.h:94
UINT8 decorativeClass
Definition: dwrite_1.h:789
Definition: dwrite_1.h:486
Definition: dwrite_1.h:341
UINT8 aspectRatio
Definition: dwrite_1.h:778
DWRITE_PANOSE_DECORATIVE_CLASS
General look of the face. Present for families: 4-decorative
Definition: dwrite_1.h:363
The Roman baseline for horizontal, Central baseline for vertical.
Definition: dwrite_1.h:530
Definition: dwrite_1.h:395
Definition: dwrite_1.h:177
UINT8 armStyle
Definition: dwrite_1.h:766
Definition: dwrite_1.h:371
Definition: dwrite_1.h:339
UINT8 fill
Definition: dwrite_1.h:794
Definition: dwrite_1.h:484
DWRITE_PANOSE_SYMBOL_ASPECT_RATIO
Aspect ratio of symbolic characters. Present for families: 5-symbol
Definition: dwrite_1.h:494
Definition: dwrite_1.h:211
Definition: dwrite_1.h:287
Definition: dwrite_1.h:288
Definition: dwrite_1.h:43
GLboolean GLenum GLenum GLvoid * values
Definition: glext.h:6318
Definition: dwrite_1.h:481
Definition: glslang_tab.cpp:129
Definition: dwrite_1.h:277
Definition: dwrite_1.h:118
Definition: dwrite_1.h:112
Definition: dwrite_1.h:28
DWRITE_PANOSE_CONTRAST
Ratio between thickest and thinnest point of the stroke for a letter such as uppercase 'O'....
Definition: dwrite_1.h:106
Definition: dwrite_1.h:377
INT16 superscriptSizeY
Vertical size of the superscript em box in design units, used to scale the simulated superscript rela...
Definition: dwrite_1.h:709
Definition: dwrite_1.h:163
DWRITE_PANOSE_SERIF_STYLE
Appearance of the serifs. Present for families: 2-text
Definition: dwrite_1.h:37
Definition: dwrite_1.h:427
Definition: dwrite_1.h:47
Definition: dwrite_1.h:422
UINT32 compressionPriority
Priority of this compression point. Larger priorities are applied later, while priority zero does not...
Definition: dwrite_1.h:977
Definition: dwrite_1.h:178
Definition: dwrite_1.h:496
INT16 glyphBoxBottom
Bottom edge of accumulated bounding blackbox of all glyphs in the font.
Definition: dwrite_1.h:647
Definition: dwrite_1.h:149
UINT32 isDistributedWithinCluster
The language is justified within glyph clusters, not just between glyph clusters. One such as the cha...
Definition: dwrite_1.h:911
UINT8 weight
Definition: dwrite_1.h:762
Definition: dwrite_1.h:57
UINT8 xHeight
Definition: dwrite_1.h:769
#define FALSE
Definition: stb_vorbis.h:232
Definition: dwrite_1.h:164
Definition: dwrite_1.h:95
Definition: dwrite_1.h:111
Definition: dwrite_1.h:424
Definition: dwrite_1.h:150
Definition: dwrite_1.h:45
Glyph orientation is upside-down.
Definition: dwrite_1.h:618
DWRITE_PANOSE_SPACING
Monospace vs proportional. Present for families: 3-script, 5-symbol
Definition: dwrite_1.h:258
FLOAT expansionMaximum
Maximum amount of expansion to apply to the side of the glyph. This may vary from 0 to infinity,...
Definition: dwrite_1.h:959
UINT8 aspectRatio157
Definition: dwrite_1.h:809
Definition: dwrite_1.h:354
Definition: dwrite_1.h:206
DWRITE_PANOSE_DECORATIVE_TOPOLOGY
Overall shape characteristics of the font. Present for families: 4-decorative
Definition: dwrite_1.h:435
Definition: dwrite_1.h:116
struct DWRITE_PANOSE::@365 decorative
Definition: dwrite_1.h:76
Definition: dwrite_1.h:67
Definition: dwrite_1.h:518
UINT32 applyToTrailingEdge
Apply expansion/compression to the trailing edge of the glyph. This will be false for connected scrip...
Definition: dwrite_1.h:1005
Definition: dwrite_1.h:394
Definition: dwrite_1.h:353
Glyph orientation is rotated 90 clockwise.
Definition: dwrite_1.h:613
INT16 subscriptPositionX
Horizontal position of the subscript relative to the baseline origin. This is typically negative (to ...
Definition: dwrite_1.h:654
Typeface classification values, used for font selection and matching.
Definition: dwrite_1.h:752
Definition: dwrite_1.h:406
INT16 subscriptSizeX
Horizontal size of the subscript em box in design units, used to scale the simulated subscript relati...
Definition: dwrite_1.h:669
Definition: dwrite_1.h:485
Definition: dwrite_1.h:411
Definition: dwrite_1.h:98
INT16 glyphBoxRight
Right edge of accumulated bounding blackbox of all glyphs in the font.
Definition: dwrite_1.h:642
Definition: dwrite_1.h:229
Definition: dwrite_1.h:425
Definition: dwrite_1.h:205
Definition: dwrite_1.h:244
Definition: dwrite_1.h:213
DWRITE_BASELINE
Baseline for text alignment.
Definition: dwrite_1.h:525
Definition: dwrite_1.h:203
DWRITE_PANOSE_FAMILY
The overall kind of family.
Definition: dwrite_1.h:22
UINT8 scriptForm
Definition: dwrite_1.h:781
Definition: dwrite_1.h:39
UINT8 serifStyle
Definition: dwrite_1.h:761
UINT8 spacing
Definition: dwrite_1.h:777
Definition: dwrite_1.h:479
Definition: dwrite_1.h:482
Definition: dwrite_1.h:73
Definition: dwrite_1.h:208
INT16 glyphBoxTop
Top edge of accumulated bounding blackbox of all glyphs in the font.
Definition: dwrite_1.h:637
DWRITE_PANOSE_TOOL_KIND
Kind of tool used to create character forms. Present for families: 3-script
Definition: dwrite_1.h:240
Definition: dwrite_1.h:25
DWRITE_PANOSE_SCRIPT_TOPOLOGY
Topology of letterforms. Present for families: 3-script
Definition: dwrite_1.h:285
Definition: dwrite_1.h:356
Definition: dwrite_1.h:209
Definition: dwrite_1.h:92
DWRITE_VERTICAL_GLYPH_ORIENTATION
The desired kind of glyph orientation for the text. The client specifies this to the analyzer as the ...
Definition: dwrite_1.h:579
Definition: dwrite_1.h:110
Definition: dwrite_1.h:392
struct DWRITE_PANOSE::@366 symbol
Definition: dwrite_1.h:408
Definition: dwrite_1.h:40
Range of Unicode codepoints.
Definition: dwrite_1.h:819
Definition: dwrite_1.h:207
The DWRITE_TEXT_RANGE structure specifies a range of text positions where format is applied.
Definition: dwrite.h:1965
Grayscale antialiasing computes one coverage value for each pixel. Because the alpha value of each pi...
Definition: dwrite_1.h:1893
UINT8 familyKind
Definition: dwrite_1.h:756
Definition: dwrite_1.h:423
Ideographic bottom baseline for CJK, left in vertical.
Definition: dwrite_1.h:555
#define DWRITE_DECLARE_INTERFACE(iid)
Definition: dwrite.h:25
DWRITE_PANOSE_PROPORTION
Proportion of the glyph shape considering additional detail to standard characters....
Definition: dwrite_1.h:87
Definition: dwrite_1.h:46
UINT32 first
The first codepoint in the Unicode range.
Definition: dwrite_1.h:824
Definition: dwrite_1.h:70
Central baseline, generally used for vertical text.
Definition: dwrite_1.h:540
Definition: dwrite_1.h:336
Hanging baseline, used in scripts like Devanagari.
Definition: dwrite_1.h:550
Definition: dwrite_1.h:202
Definition: dwrite_1.h:328
#define NULL
Pointer to 0.
Definition: gctypes.h:65
Definition: dwrite_1.h:53
Definition: dwrite_1.h:91
Definition: dwrite_1.h:263
INT16 subscriptPositionY
Vertical position of the subscript relative to the baseline. This is typically negative.
Definition: dwrite_1.h:660
Definition: dwrite_1.h:231
UINT8 serifVariant
Definition: dwrite_1.h:793
int32_t INT32
Definition: coretypes.h:17
UINT8 finials
Definition: dwrite_1.h:782
Definition: dwrite_1.h:476
BOOL hasTypographicMetrics
Indicates that the ascent, descent, and lineGap are based on newer 'typographic' values in the font,...
Definition: dwrite_1.h:715
Glyph orientation is rotated 270 clockwise.
Definition: dwrite_1.h:623
Ideographic top baseline for CJK, right in vertical.
Definition: dwrite_1.h:560
UINT32 allowResidualExpansion
Allow this expansion point to use up any remaining slack space even after all expansion priorities ha...
Definition: dwrite_1.h:983
Definition: dwrite_1.h:176
Definition: dwrite_1.h:26
Definition: dwrite_1.h:117
Definition: dwrite_1.h:227
Definition: dwrite_1.h:29
Definition: dwrite_1.h:90
DWRITE_PANOSE_ARM_STYLE
Style of termination of stems and rounded letterforms. Present for families: 2-text
Definition: dwrite_1.h:147
Definition: dwrite_1.h:366
UINT8 aspectRatioAndContrast
Definition: dwrite_1.h:806
Definition: dwrite_1.h:410
Definition: dwrite_1.h:225
Definition: dwrite_1.h:407
DWRITE_OUTLINE_THRESHOLD
Specifies the policy used by GetRecommendedRenderingMode to determine whether to render glyphs in out...
Definition: dwrite_1.h:516
Definition: dwrite_1.h:72
UINT32 isBlockWriting
The language is a block script, expanding between characters.
Definition: dwrite_1.h:901
UINT8 characterRange
Definition: dwrite_1.h:797
UINT32 clusterLookahead
Number of characters to estimate look-ahead for complex scripts. Latin and all Kana are generally 1....
Definition: dwrite_1.h:861
Definition: dwrite_1.h:204
Definition: dwrite_1.h:335
FLOAT compressionMaximum
Maximum amount of compression to apply to the side of the glyph. This may vary from 0 up to the glyph...
Definition: dwrite_1.h:965
UINT8 aspectRatio163
Definition: dwrite_1.h:810
Definition: dwrite_1.h:41
DWRITE_PANOSE_LINING
Outline handling. Present for families: 4-decorative
Definition: dwrite_1.h:418
Definition: dwrite_1.h:330
ClearType antialiasing computes coverage independently for the red, green, and blue color elements of...
Definition: dwrite_1.h:1885
Definition: dwrite_1.h:351
Definition: dwrite_1.h:390
Definition: dwrite_1.h:230
Definition: dwrite_1.h:93
Definition: dwrite_1.h:109
INT16 glyphBoxLeft
Left edge of accumulated bounding blackbox of all glyphs in the font.
Definition: dwrite_1.h:632
Definition: dwrite_1.h:51
INT16 subscriptSizeY
Vertical size of the subscript em box in design units, used to scale the simulated subscript relative...
Definition: dwrite_1.h:678
DWRITE_PANOSE_SCRIPT_FORM
General look of the face, considering slope and tails. Present for families: 3-script
Definition: dwrite_1.h:304
Definition: dwrite_1.h:48
UINT8 symbolKind
Definition: dwrite_1.h:803
UINT32 reserved
Definition: dwrite_1.h:1007
Definition: dwrite_1.h:251
Definition: dwrite_1.h:182
DWRITE_PANOSE_STROKE_VARIATION
Relationship between thin and thick stems. Present for families: 2-text
Definition: dwrite_1.h:128
DWRITE_PANOSE_FINIALS
How character ends and miniscule ascenders are treated. Present for families: 3-script
Definition: dwrite_1.h:326
DWRITE_PANOSE_FILL
Type of fill/line (treatment). Present for families: 4-decorative
Definition: dwrite_1.h:402
UINT8 strokeVariation
Definition: dwrite_1.h:765
Definition: dwrite_1.h:224
INT16 slopeRun
Horizontal run of th caret. Rise / Run yields the caret angle. Run = 0 for perfectly upright fonts (n...
Definition: dwrite_1.h:734
Definition: dwrite_1.h:56
Metrics for caret placement in a font.
Definition: dwrite_1.h:722
UINT8 proportion
Definition: dwrite_1.h:763
UINT32 applyToLeadingEdge
Apply expansion/compression to the leading edge of the glyph. This will be false for connected script...
Definition: dwrite_1.h:997
Definition: dwrite_1.h:307
interface IDWriteTextLayout IDWriteTextLayout
Definition: d2d1.h:51
FLOAT expansionMinimum
Minimum amount of expansion to apply to the side of the glyph. This may vary from 0 to infinity,...
Definition: dwrite_1.h:951
Definition: dwrite_1.h:27
DWRITE_PANOSE_WEIGHT
PANOSE font weights. These roughly correspond to the DWRITE_FONT_WEIGHT's using (panose_weight - 2) *...
Definition: dwrite_1.h:65
DWRITE_PANOSE_XASCENT
Relative size of the lowercase letters. Present for families: 3-script
Definition: dwrite_1.h:348
Definition: dwrite_1.h:421
DWRITE_PANOSE_XHEIGHT
Relative size of lowercase letters and treament of diacritic marks and uppercase glyphs....
Definition: dwrite_1.h:222
Definition: dwrite_1.h:49
Definition: dwrite_1.h:187
DWRITE_PANOSE_MIDLINE
Placement of midline across uppercase characters and treatment of diagonal stem apexes....
Definition: dwrite_1.h:199
Definition: dwrite_1.h:226
Definition: dwrite_1.h:389
UINT8 xAscent
Definition: dwrite_1.h:783
UINT32 reserved
Definition: dwrite_1.h:937
Definition: dwrite_1.h:201
UINT8 midline
Definition: dwrite_1.h:768
Definition: dwrite_1.h:131
Definition: dwrite_1.h:260
Definition: dwrite_1.h:212
UINT32 restrictCaretToClusters
Restrict the caret to whole clusters, like Thai and Devanagari. Scripts such as Arabic by default all...
Definition: dwrite_1.h:877
Definition: dwrite_1.h:388
Definition: dwrite_1.h:502
DWRITE_PANOSE_ASPECT
Ratio between the width and height of the face. Present for families: 4-decorative
Definition: dwrite_1.h:384
UINT32 last
The last codepoint in the Unicode range.
Definition: dwrite_1.h:829
Definition: dwrite_1.h:68
interface IDWriteFontFace IDWriteFontFace
Definition: d2d1_3.h:31
Definition: dwrite_1.h:426
Justification information per glyph.
Definition: dwrite_1.h:944
UINT32 expansionPriority
Priority of this expansion point. Larger priorities are applied later, while priority zero does nothi...
Definition: dwrite_1.h:971
DWRITE_RENDERING_MODE
Represents a method of rendering glyphs.
Definition: dwrite.h:902
Definition: dwrite_1.h:78
Definition: dwrite_1.h:475
UINT8 lining
Definition: dwrite_1.h:795
Definition: dwrite_1.h:245
Definition: dwrite_1.h:437
The DWRITE_MATRIX structure specifies the graphics transform to be applied to rendered glyphs.
Definition: dwrite.h:967
UINT8 aspectRatio211
Definition: dwrite_1.h:811
Definition: dwrite_1.h:331
UINT32 isCursiveWriting
The script is naturally cursive (Arabic/Syriac), meaning it uses other justification methods like kas...
Definition: dwrite_1.h:935
The DWRITE_FONT_METRICS structure specifies the metrics of a font face that are applicable to all gly...
Definition: dwrite.h:472
Definition: dwrite_1.h:333
UINT8 decorativeTopology
Definition: dwrite_1.h:796
Definition: dwrite_1.h:120
UINT8 contrast
Definition: dwrite_1.h:764
UINT8 aspectRatio119
Definition: dwrite_1.h:808
Definition: dwrite_1.h:232
Definition: dwrite_1.h:627
Definition: dwrite_1.h:50
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_1.h:115
uint32_t UINT32
Definition: coretypes.h:10
Definition: dwrite_1.h:42
Definition: dwrite_1.h:306
Shaping output properties per output glyph.
Definition: dwrite.h:2490
Definition: dwrite_1.h:249
Definition: dwrite_1.h:233
Definition: dwrite_1.h:393
UINT32 justificationCharacter
Appropriate character to elongate the given script for justification.
Definition: dwrite_1.h:870
Definition: dwrite_1.h:54
The top-most extent in horizontal, right-most in vertical.
Definition: dwrite_1.h:570
Association of text and its writing system script as well as some display attributes.
Definition: dwrite.h:2347
Definition: dwrite_1.h:121
UINT8 aspect
Definition: dwrite_1.h:791
Definition: dwrite_1.h:355
Definition: dwrite_1.h:404
UINT8 scriptTopology
Definition: dwrite_1.h:780
Definition: dwrite_1.h:114
Definition: dwrite_1.h:519
Definition: dwrite_1.h:391
Definition: dwrite_1.h:77
The bottom-most extent in horizontal, left-most in vertical.
Definition: dwrite_1.h:565
Script-specific properties for caret navigation and justification.
Definition: dwrite_1.h:836
Definition: dwrite_1.h:352
Definition: dwrite_1.h:74
Definition: dwrite_1.h:79
struct DWRITE_PANOSE::@363 text
Definition: dwrite_1.h:386
Definition: dwrite_1.h:420
Optional adjustment to a glyph's position. A glyph offset changes the position of a glyph without aff...
Definition: dwrite.h:600
Ideographic scripts and scripts that permit stacking (Latin, Hebrew) are stacked in vertical reading ...
Definition: dwrite_1.h:595
Definition: dwrite_1.h:228
DWRITE_PANOSE_LETTERFORM
Roundness of letterform. Present for families: 2-text
Definition: dwrite_1.h:174
Definition: dwrite_1.h:75
uint16_t UINT16
Definition: coretypes.h:11
Definition: dwrite_1.h:180
interface IDWriteRenderingParams IDWriteRenderingParams
Definition: d2d1.h:52
Definition: dwrite_1.h:242
Definition: dwrite_1.h:409
DWRITE_PANOSE_SYMBOL_KIND
Kind of symbol set. Present for families: 5-symbol
Definition: dwrite_1.h:473
GLuint GLenum GLenum transform
Definition: glext.h:10314
UINT32 isDiscreteWriting
The characters are discrete units from each other. This includes both block scripts and clustered scr...
Definition: dwrite_1.h:894
DWRITE_TEXT_ANTIALIAS_MODE
The root factory interface for all DWrite objects.
Definition: dwrite_1.h:1877
Definition: dwrite_1.h:461
Definition: dwrite_1.h:24
UINT8 aspectRatio94
Definition: dwrite_1.h:807
Definition: dwrite_1.h:332
interface IDWriteFactory IDWriteFactory
Definition: d2d1_1.h:35
Definition: dwrite_1.h:246
Definition: dwrite_1.h:89
Definition: dwrite_1.h:113
Definition: dwrite_1.h:191
INT16 superscriptPositionX
Horizontal position of the superscript relative to the baseline origin. This is typically positive (t...
Definition: dwrite_1.h:685
Definition: dwrite_1.h:428
Definition: dwrite_1.h:329
Definition: dwrite_1.h:376
Definition: dwrite_1.h:165
UINT32 usesWordDividers
The language uses dividers between words, such as spaces between Latin or the Ethiopic wordspace.
Definition: dwrite_1.h:886
In vertical layout, naturally horizontal scripts (Latin, Thai, Arabic, Devanagari) rotate 90 degrees ...
Definition: dwrite_1.h:586
Definition: dwrite_1.h:69
Definition: dwrite_1.h:478
UINT32 isConnectedWriting
The script's clusters are connected to each other (such as the baseline-linked Devanagari),...
Definition: dwrite_1.h:923
UINT8 letterform
Definition: dwrite_1.h:767
DWRITE_GLYPH_ORIENTATION_ANGLE
How the glyph is oriented to the x-axis. This is an output from the text analyzer,...
Definition: dwrite_1.h:603
Glyph orientation is upright.
Definition: dwrite_1.h:608
Definition: dwrite_1.h:464
Definition: dwrite_1.h:71
Definition: dwrite_1.h:243
Definition: dwrite_1.h:210
Definition: dwrite_1.h:247
Definition: dwrite_1.h:387
Definition: dwrite_1.h:273
Definition: dwrite_1.h:248
The baseline used by alphabetic scripts such as Latin, Greek, Cyrillic.
Definition: dwrite_1.h:535
Definition: dwrite_1.h:55
Definition: dwrite_1.h:276
UINT32 allowResidualCompression
Allow this compression point to use up any remaining space even after all compression priorities have...
Definition: dwrite_1.h:989
INT16 superscriptSizeX
Horizontal size of the superscript em box in design units, used to scale the simulated superscript re...
Definition: dwrite_1.h:700
Definition: dwrite_1.h:350
UINT8 toolKind
Definition: dwrite_1.h:775
UINT32 isoScriptCode
The standardized four character code for the given script. Note these only include the general Unicod...
Definition: dwrite_1.h:845
Definition: dwrite_1.h:275
Definition: dwrite_1.h:30
INT16 superscriptPositionY
Vertical position of the superscript relative to the baseline. This is typically positive.
Definition: dwrite_1.h:691
Definition: dwrite_1.h:477
Definition: dwrite_1.h:462
struct DWRITE_PANOSE::@364 script
Definition: dwrite_1.h:130
Definition: dwrite_1.h:405
INT16 offset
Horizontal offset of the caret along the baseline for good appearance. Offset = 0 for perfectly uprig...
Definition: dwrite_1.h:740
Definition: dwrite_1.h:261
DWRITE_MEASURING_MODE
The measuring method used for text layout.
Definition: dcommon.h:35
DWRITE_PANOSE_CHARACTER_RANGES
Type of characters available in the font. Present for families: 4-decorative
Definition: dwrite_1.h:459
Definition: dwrite_1.h:214
uint8_t UINT8
Definition: coretypes.h:12