Indicates how much any visible DIPs (device independent pixels) overshoot each side of the layout or inline objects.Microsoft Docs: The distance from the left-most visible DIP to its left-alignment edge.The distance from the top-most visible DIP to its top alignment edge.The distance from the right-most visible DIP to its right-alignment edge.The distance from the bottom-most visible DIP to its lower-alignment edge.Identifies a string in a font.Microsoft Docs: Unspecified font property identifier.The full name of the font, for example "Arial Bold", from name id 4 in the name table.GDI-compatible family name. Because GDI allows a maximum of four fonts per family, fonts in the same family may have different GDI-compatible family names,
for example "Arial", "Arial Narrow", "Arial Black".The postscript name of the font, for example "GillSans-Bold", from name id 6 in the name table.Script/language tag to identify the scripts or languages that the font was primarily designed to support.Script/language tag to identify the scripts or languages that the font declares it is able to support.Semantic tag to describe the font, for example Fancy, Decorative, Handmade, Sans-serif, Swiss, Pixel, Futuristic.Weight of the font represented as a decimal string in the range 1-999.Stretch of the font represented as a decimal string in the range 1-9.Style of the font represented as a decimal string in the range 0-2.Total number of properties.Family name preferred by the designer. This enables font designers to group more than four fonts in a single family without losing compatibility with
GDI. This name is typically only present if it differs from the GDI-compatible family name.Family name for the weight-width-slope model.Face name of the font, for example Regular or Bold.Specifies the word wrapping to be used in a particular multiline paragraph.Microsoft Docs: Indicates that words are broken across lines to avoid text overflowing the layout box.Indicates that words are kept within the same line even when it overflows the layout box. This option is often used with scrolling to reveal overflow text.
Note Windows 8.1 and later only.
Words are broken across lines to avoid text overflowing the layout box.
Emergency wrapping occurs if the word is larger than the maximum width.
Note Windows 8.1 and later only.
When emergency wrapping, only wrap whole words, never breaking words when the layout width is too small for even a single word.
Note Windows 8.1 and later only.
Wrap between any valid character clusters.Defines constants that specify the mechanism by which a font came to be included in a font set.Microsoft Docs: Specifies that the font source is unknown, or is not any of the other defined font source types.Specifies that the font source is a font file that's installed for all users on the device.Specifies that the font source is a font file that's installed for the current user.Specifies that the font source is an APPX package, which includes one or more font files. The font source name is the full name of the package.Specifies that the font source is a font provider for downloadable fonts.Represents the internal structure of a device pixel (that is, the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text.Microsoft Docs: The red, green, and blue color components of each pixel are assumed to occupy the same point.Each pixel is composed of three vertical stripes, with red on the left, green in the center, and
blue on the right. This is the most common pixel geometry for LCD monitors.Each pixel is composed of three vertical stripes, with blue on the left, green in the center, and
red on the right.Defines constants that specify attributes for a font axis.Microsoft Docs: Specifies no attributes.Specifies that this axis is implemented as a variation axis in a variable font, with a continuous range of values, such as a range of weights from 100..900. Otherwise, it is either a static axis that holds a single point, or it has a range but doesn't vary, such as optical size in the Skia Heading font (which covers a range of points but doesn't interpolate any new glyph outlines).Specifies that this axis is recommended to be remain hidden in user interfaces. The font developer may recommend this if an axis is intended to be accessed only programmatically, or is meant for font-internal or font-developer use only. The axis may be exposed in lower-level font inspection utilities, but should not be exposed in common nor even advanced-mode user interfaces in content-authoring apps.Contains a set of typographic features to be applied during text shaping.Microsoft Docs: A pointer to a structure that specifies properties used to identify and execute typographic features in the font.A value that indicates the number of features being applied to a font face.The type of a font represented by a single font file. Font formats that consist of multiple files, for example Type 1 .PFM and .PFB, have separate enum values for each of the file types.Microsoft Docs: Font type is not recognized by the DirectWrite font system.OpenType font with CFF outlines.OpenType font with TrueType outlines.Type 1 PFM font.Type 1 PFB font.Vector .FON font.Bitmap .FON font.OpenType font that contains a TrueType collection.The DWRITE_PANOSE_XASCENT enumeration contains values that specify the relative size of the lowercase letters.Microsoft Docs: Any xascent.No fit for xascent.Very low xascent.Low xascent.Medium xascent.High xascent.Very high xascent.Specifies the type of DirectWrite factory object.Microsoft Docs: Indicates that the DirectWrite factory is a shared factory and that it allows for the reuse of cached font data across multiple in-process components. Such factories also take advantage of cross process font caching components for better performance.Indicates that the DirectWrite factory object is isolated. Objects created from the isolated factory do not interact with internal DirectWrite state from other components.The DWRITE_PANOSE_DECORATIVE_CLASS enumeration contains values that specify the general look of the character face.Microsoft Docs: Any class of decorative typeface.No fit for decorative typeface.Derivative decorative typeface.Nonstandard topology decorative typeface.Nonstandard elements decorative typeface.Nonstandard aspect decorative typeface.Initials decorative typeface.Cartoon decorative typeface.Picture stems decorative typeface.Ornamented decorative typeface.Text and background decorative typeface.Collage decorative typeface.Montage decorative typeface.The DWRITE_PANOSE_CHARACTER_RANGES enumeration contains values that specify the type of characters available in the font.Microsoft Docs: Any range.No fit for range.The range includes extended collection.The range includes literals.The range doesn't include lower case.The range includes small capitals.The DWRITE_PANOSE_FAMILY enumeration contains values that specify the kind of typeface classification.Microsoft Docs: Any typeface classification.No fit typeface classification.Text display typeface classification.Script (or hand written) typeface classification.Decorative typeface classification.Symbol typeface classification.Pictorial (or symbol) typeface classification.The DWRITE_PANOSE_SYMBOL_ASPECT_RATIO enumeration contains values that specify the aspect ratio of symbolic characters.Microsoft Docs: Any aspect ratio of symbolic characters.No fit for aspect ratio of symbolic characters.No width aspect ratio of symbolic characters.Exceptionally wide symbolic characters.Super wide symbolic characters.Very wide symbolic characters.Wide symbolic characters.Normal aspect ratio of symbolic characters.Narrow symbolic characters.Very narrow symbolic characters.The DWRITE_PANOSE_ARM_STYLE enumeration contains values that specify the style of termination of stems and rounded letterforms for text.Microsoft Docs: Any arm style.No fit arm style.The arm style is straight horizontal.The arm style is straight wedge.The arm style is straight vertical.The arm style is straight single serif.The arm style is straight double serif.The arm style is non-straight horizontal.The arm style is non-straight wedge.The arm style is non-straight vertical.The arm style is non-straight single serif.The arm style is non-straight double serif.The arm style is straight horizontal.The arm style is straight vertical.The arm style is non-straight horizontal.The arm style is non-straight wedge.The arm style is non-straight vertical.The arm style is non-straight single serif.The arm style is non-straight double serif.The DWRITE_PANOSE_TOOL_KIND enumeration contains values that specify the kind of tool that is used to create character forms.Microsoft Docs: Any kind of tool.No fit for the kind of tool.Flat NIB tool.Pressure point tool.Engraved tool.Ball tool.Brush tool.Rough tool.Felt-pen-brush-tip tool.Wild-brush tool.Specifies which formats are supported in the font, either at a font-wide level or per glyph.Microsoft Docs: Indicates no data is available for this glyph.The glyph has TrueType outlines.The glyph has CFF outlines.The glyph has multilayered COLR data.The glyph has SVG outlines as standard XML. Fonts may store the content gzip'd rather than plain text, indicated by the first two bytes as gzip header {0x1F 0x8B}.The glyph has PNG image data, with standard PNG IHDR.The glyph has JPEG image data, with standard JIFF SOI header.The glyph has TIFF image data.The glyph has raw 32-bit premultiplied BGRA data.Defines constants that specify how font families are grouped together.Microsoft Docs: Families are grouped by the typographic family name preferred by the font author. The family can contain as many faces as the font author wants. This corresponds to DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME.Families are grouped by the weight-stretch-style family name, where all faces that differ only by those three axes are grouped into the same family, but any other axes go into a distinct family. For example, the Sitka family with six different optical sizes yields six separate families (Sitka Caption, Display, Text, Subheading, Heading, Banner...). This corresponds to DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FAMILY_NAME.Indicates the measuring method used for text layout.Microsoft Docs: Specifies that text is measured using glyph ideal metrics whose values are independent to the current display resolution.Specifies that text is measured using glyph display-compatible metrics whose values tuned for the current display resolution.Specifies that text is measured using the same glyph display metrics as text measured by GDI using a font created with CLEARTYPE_NATURAL_QUALITY.Represents the degree to which a font has been stretched compared to a font's normal aspect ratio.Microsoft Docs: Predefined font stretch : Not known (0).Predefined font stretch : Ultra-condensed (1).Predefined font stretch : Extra-condensed (2).Predefined font stretch : Condensed (3).Predefined font stretch : Semi-condensed (4).Predefined font stretch : Normal (5).Predefined font stretch : Medium (5).Predefined font stretch : Semi-expanded (6).Predefined font stretch : Expanded (7).Predefined font stretch : Extra-expanded (8).Predefined font stretch : Ultra-expanded (9).The DWRITE_PANOSE_FINIALS enumeration contains values that specify how character ends and miniscule ascenders are treated.Microsoft Docs: Any finials.No fit for finials.No loops.No closed loops.No open loops.Sharp with no loops.Sharp with closed loops.Sharp with open loops.Tapered with no loops.Tapered with closed loops.Tapered with open loops.Round with no loops.Round with closed loops.Round with open loops.The DWRITE_PANOSE_LINING enumeration contains values that specify the handling of the outline for the decorative typeface.Microsoft Docs: Any lining.No fit for lining.No lining.The lining is inline.The lining is outline.The lining is engraved.The lining is shadowed.The lining is relief.The lining is backdrop.The DWRITE_PANOSE_WEIGHT enumeration contains values that specify the weight of characters.Microsoft Docs: Any weight.No fit weight.Very light weight.Light weight.Thin weight.Book weight.Medium weight.Demi weight.Bold weight.Heavy weight.Black weight.Extra black weight.Extra black weight.The DWRITE_PANOSE_SCRIPT_TOPOLOGY enumeration contains values that specify the topology of letterforms.Microsoft Docs: Any script topology.No fit for script topology.Script topology is roman disconnected.Script topology is roman trailing.Script topology is roman connected.Script topology is cursive disconnected.Script topology is cursive trailing.Script topology is cursive connected.Script topology is black-letter disconnected.Script topology is black-letter trailing.Script topology is black-letter connected.The DWRITE_PANOSE_ASPECT_RATIO enumeration contains values that specify info about the ratio between width and height of the character face.Microsoft Docs: Any aspect ratio.No fit for aspect ratio.Very condensed aspect ratio.Condensed aspect ratio.Normal aspect ratio.Expanded aspect ratio.Very expanded aspect ratio.The DWRITE_CARET_METRICS structure specifies the metrics for caret placement in a font.Microsoft Docs: Vertical rise of the caret in font design units. Rise / Run yields the caret angle. Rise = 1 for perfectly upright fonts (non-italic).Horizontal run of the caret in font design units. Rise / Run yields the caret angle. Run = 0 for perfectly upright fonts (non-italic).Horizontal offset of the caret, in font design units, along the baseline for good appearance. Offset = 0 for perfectly upright fonts (non-italic).Specifies the alignment of paragraph text along the reading direction axis, relative to the leading and trailing edge of the layout box.Microsoft Docs: The leading edge of the paragraph text is aligned to the leading edge of the layout box.The trailing edge of the paragraph text is aligned to the trailing edge of the layout box.The center of the paragraph text is aligned to the center of the layout box.Align text to the leading side, and also justify text to fill the lines.The DWRITE_PANOSE_XHEIGHT enumeration contains values that specify info about the relative size of lowercase letters and the treatment of diacritic marks (xheight).Microsoft Docs: Any xheight.No fit xheight.Constant small xheight.Constant standard xheight.Constant large xheight.Ducking small xheight.Ducking standard xheight.Ducking large xheight.Constant standard xheight.Ducking standard xheight.Contains information regarding the size and placement of strikethroughs.Microsoft Docs: A value that indicates the width of the strikethrough, measured parallel to the baseline.A value that indicates the thickness of the strikethrough, measured perpendicular to the baseline.A value that indicates the offset of the strikethrough from the baseline.
A positive offset represents a position below the baseline and
a negative offset is above. Typically, the offset will be negative.Reading direction of the text associated with the strikethrough.
This value is used to interpret whether the width value runs horizontally
or vertically.Flow direction of the text associated with the strikethrough.
This value is used to interpret whether the thickness value advances top to
bottom, left to right, or right to left.An array of characters containing the locale of the text that is the strikethrough is being drawn over.The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes.Contains the metrics associated with text after layout.Microsoft Docs: A value that indicates the left-most point of formatted text relative to the layout box,
while excluding any glyph overhang.A value that indicates the top-most point of formatted text relative to the layout box, while excluding any glyph overhang.A value that indicates the width of the formatted text, while ignoring trailing whitespace
at the end of each line.The width of the formatted text, taking into account the
trailing whitespace at the end of each line.The height of the formatted text. The height of an empty string
is set to the same value as that of the default font.The initial width given to the layout. It can be either larger or smaller than the
text content width, depending on whether the text
was wrapped.Initial height given to the layout. Depending on the length of the text, it may be larger or smaller than the text content height.The maximum reordering count of any line of text, used
to calculate the most number of hit-testing boxes needed.
If the layout has no bidirectional text, or no text at all,
the minimum level is 1.Total number of lines.Represents the density of a typeface, in terms of the lightness or heaviness of the strokes.Microsoft Docs: Predefined font weight : Thin (100).Predefined font weight : Extra-light (200).Predefined font weight : Ultra-light (200).Predefined font weight : Light (300).Predefined font weight : Semi-Light (350).Predefined font weight : Normal (400).Predefined font weight : Regular (400).Predefined font weight : Medium (500).Predefined font weight : Demi-bold (600).Predefined font weight : Semi-bold (600).Predefined font weight : Bold (700).Predefined font weight : Extra-bold (800).Predefined font weight : Ultra-bold (800).Predefined font weight : Black (900).Predefined font weight : Heavy (900).Predefined font weight : Extra-black (950).Predefined font weight : Ultra-black (950).The DWRITE_SCRIPT_PROPERTIES structure specifies script properties for caret navigation and justification.Microsoft Docs: The standardized four character code for the given script.
Note These only include the general Unicode scripts, not any additional ISO 15924 scripts for bibliographic distinction.
The standardized numeric code, ranging 0-999.Number of characters to estimate look-ahead for complex scripts. Latin and all Kana are generally 1. Indic scripts are up to 15, and most others are 8.
Note Combining marks and variation selectors can produce clusters that are longer than these look-aheads, so this estimate is considered typical language use. Diacritics must be tested explicitly separately.
Appropriate character to elongate the given script for justification. For example:
Arabic - U+0640 Tatweel
Ogham - U+1680 Ogham Space Mark
Restrict the caret to whole clusters, like Thai and Devanagari. Scripts such as Arabic by default allow navigation between clusters. Others like Thai always navigate across whole clusters.The language uses dividers between words, such as spaces between Latin or the Ethiopic wordspace. Examples include Latin, Greek, Devanagari, and Ethiopic. Chinese, Korean, and Thai are excluded.The characters are discrete units from each other. This includes both block scripts and clustered scripts. Examples include Latin, Greek, Cyrillic, Hebrew, Chinese, and Thai.The language is a block script, expanding between characters. Examples include Chinese, Japanese, Korean, and Bopomofo.The language is justified within glyph clusters, not just between glyph clusters, such as the character sequence of Thai Lu and Sara Am (U+E026, U+E033), which form a single cluster but still expand between them. Examples include Thai, Lao, and Khmer.The script's clusters are connected to each other (such as the baseline-linked Devanagari), and no separation is added between characters.
Note Cursively linked scripts like Arabic are also connected (but not all connected scripts are cursive).
Examples include Devanagari, Arabic, Syriac, Bengala, Gurmukhi, and Ogham. Latin, Chinese, and Thaana are excluded.The script is naturally cursive (Arabic and Syriac), meaning it uses other justification methods like kashida extension rather than inter-character spacing.
Note Although other scripts like Latin and Japanese might actually support handwritten cursive forms, they are not considered cursive scripts.
Examples include Arabic, Syriac, and Mongolian. Thaana, Devanagari, Latin, and Chinese are excluded.ReservedContains information about the width, thickness, offset, run height, reading direction, and flow direction of an underline.Microsoft Docs: A value that indicates the width of the underline, measured parallel to the baseline.A value that indicates the thickness of the underline, measured perpendicular to the baseline.A value that indicates the offset of the underline from the baseline. A positive offset represents a position below the baseline (away from the text) and a negative offset is above (toward the text).A value that indicates the height of the tallest run where the underline is applied.A value that indicates the reading direction of the text associated with the underline. This value is used to interpret whether the width value runs horizontally or vertically.A value that indicates the flow direction of the text associated with the underline. This value is used to interpret whether the thickness value advances top to bottom, left to right, or right to left.An array of characters which contains the locale of the text that the underline is being drawn under. For example, in vertical text, the underline belongs on the left for Chinese but on the right for Japanese.The measuring mode can be useful to the renderer to determine how underlines are rendered, such as rounding the thickness to a whole pixel in GDI-compatible modes.The optical margin alignment mode.Microsoft Docs: Align to the default origin and side-bearings of the glyph.Align to the ink of the glyphs, such that the black box abuts the margins.The DWRITE_VERTICAL_GLYPH_ORIENTATION enumeration contains values that specify the desired kind of glyph orientation for the text.Microsoft Docs: The default glyph orientation. In vertical layout, naturally horizontal scripts (Latin, Thai, Arabic, Devanagari) rotate 90 degrees clockwise, while ideographic scripts (Chinese, Japanese, Korean) remain upright, 0 degrees.Stacked glyph orientation. Ideographic scripts and scripts that permit stacking (Latin, Hebrew) are stacked in vertical reading layout. Connected scripts (Arabic, Syriac, 'Phags-pa, Ogham), which would otherwise look broken if glyphs were kept at 0 degrees, remain connected and rotate.Describes the region obtained by a hit test.Microsoft Docs: The first text position within the hit region.The number of text positions within the hit region.The x-coordinate of the upper-left corner of the hit region.The y-coordinate of the upper-left corner of the hit region.The width of the hit region.The height of the hit region.The BIDI level of the text positions within the hit region.true if the hit region contains text; otherwise, false.true if the text range is trimmed; otherwise, false.The optional adjustment to a glyph's position.Microsoft Docs: The offset in the advance direction of the run. A positive advance offset moves the glyph to the right (in pre-transform coordinates) if the run is left-to-right or to the left if the run is right-to-left.The offset in the ascent direction, that is, the direction ascenders point. A positive ascender offset moves the glyph up (in pre-transform coordinates). A negative ascender offset moves the glyph down.The DWRITE_PANOSE_ASPECT enumeration contains values that specify the ratio between the width and height of the character face.Microsoft Docs: Any aspect.No fit for aspect.Super condensed aspect.Very condensed aspect.Condensed aspect.Normal aspect.Extended aspect.Very extended aspect.Super extended aspect.Monospace aspect.Shaping output properties for an output glyph.Microsoft Docs: Indicates that the glyph is shaped alone.Reserved for future use.The DWRITE_TEXT_ANTIALIAS_MODE enumeration contains values that specify the type of antialiasing to use for text when the rendering mode calls for antialiasing.Microsoft Docs: ClearType antialiasing computes coverage independently for the red, green, and blue color elements of each pixel. This allows for more detail than conventional antialiasing. However, because there is no one alpha value for each pixel, ClearType is not suitable for rendering text onto a transparent intermediate bitmap.Grayscale antialiasing computes one coverage value for each pixel. Because the alpha value of each pixel is well-defined, text can be rendered onto a transparent bitmap, which can then be composited with other content.
The DWRITE_PANOSE_SPACING enumeration contains values that specify character spacing (monospace versus proportional).Microsoft Docs: Any spacing.No fit for spacing.Spacing is proportional.Spacing is monospace.The informational string enumeration which identifies a string embedded in a font file.Microsoft Docs: Indicates the string containing the unspecified name ID.Indicates the string containing the copyright notice provided by the font.Indicates the string containing a version number.Indicates the string containing the trademark information provided by the font.Indicates the string containing the name of the font manufacturer.Indicates the string containing the name of the font designer.Indicates the string containing the URL of the font designer (with protocol, e.g., http://, ftp://).Indicates the string containing the description of the font. This may also contain revision information, usage recommendations, history, features, and so on.Indicates the string containing the URL of the font vendor (with protocol, e.g., http://, ftp://). If a unique serial number is embedded in the URL, it can be used to register the font.Indicates the string containing the description of how the font may be legally used, or different example scenarios for licensed use.Indicates the string containing the URL where additional licensing information can be found.Indicates the string containing the GDI-compatible family name. Since GDI allows a maximum of four fonts per family, fonts in the same family may have different GDI-compatible family names (e.g., "Arial", "Arial Narrow", "Arial Black").Indicates the string containing a GDI-compatible subfamily name.Contains sample text for display in font lists. This can be the font name or any other text that the designer thinks is the best
example to display the font in.The full name of the font, like Arial Bold, from name id 4 in the name tableThe postscript name of the font, like GillSans-Bold, from name id 6 in the name table.The postscript CID findfont name, from name id 20 in the name tableIndicates the string containing the family name preferred by the designer. This enables font designers to group more than four fonts in a single family without losing compatibility with GDI. This name is typically only present if it differs from the GDI-compatible family name.Indicates the string containing the subfamily name preferred by the designer. This name is typically only present if it differs from the GDI-compatible subfamily name.Creates an OpenType tag for a font axis.Microsoft Docs:
The first character in the tag.
The second character in the tag.
The third character in the tag.
The fourth character in the tag.
The DWRITE_JUSTIFICATION_OPPORTUNITY structure specifies justification info per glyph.Microsoft Docs: Minimum amount of expansion to apply to the side of the glyph. This might vary from zero to infinity, typically being zero except for kashida.Maximum amount of expansion to apply to the side of the glyph. This might vary from zero to infinity, being zero for fixed-size characters and connected scripts, and non-zero for discrete scripts, and non-zero for cursive scripts at expansion points.Maximum amount of compression to apply to the side of the glyph. This might vary from zero up to the glyph cluster size.Priority of this expansion point. Larger priorities are applied later, while priority zero does nothing.Priority of this compression point. Larger priorities are applied later, while priority zero does nothing.Allow this expansion point to use up any remaining slack space even after all expansion priorities have been used up.Allow this compression point to use up any remaining space even after all compression priorities have been used up.Apply expansion and compression to the leading edge of the glyph. This bit is FALSE (0) for connected scripts, fixed-size characters, and diacritics. It is generally FALSE within a multi-glyph cluster, unless the script allows expansion of glyphs within a cluster, like Thai.Apply expansion and compression to the trailing edge of the glyph. This bit is FALSE (0) for connected scripts, fixed-size characters, and diacritics. It is generally FALSE within a multi-glyph cluster, unless the script allows expansion of glyphs within a cluster, like Thai.ReservedLine breakpoint characteristics of a character.Microsoft Docs: Indicates a breaking condition before the character.Indicates a breaking condition after the character.Indicates that the character is some form of whitespace, which may be meaningful for justification.Indicates that the character is a soft hyphen, often used to indicate hyphenation points inside words.Reserved for future use.Specifies the alignment of paragraph text along the flow direction axis, relative to the top and bottom of the flow's layout box.Microsoft Docs: The top of the text flow is aligned to the top edge of the layout box.The bottom of the text flow is aligned to the bottom edge of the layout box.The center of the flow is aligned to the center of the layout box.The DWRITE_PANOSE_FILL enumeration contains values that specify the type of fill and line treatment.Microsoft Docs: Any fill.No fit for fill.The fill is the standard solid fill.No fill.The fill is patterned fill.The fill is complex fill.The fill is shaped fill.The fill is drawn distressed.Creates an OpenType tag as a 32-bit integer, such that the first character in the tag is the lowest byte (least significant on little endian architectures), which can be used to compare with tags in the font file.Microsoft Docs:
The first character in the tag.
The second character in the tag.
The third character in the tag.
The fourth character in the tag.
The DWRITE_PANOSE union describes typeface classification values that you use with IDWriteFont1::GetPanose to select and match the font.Microsoft Docs: A 10-byte array of typeface classification values.A DWRITE_PANOSE_FAMILY-typed value that specifies the typeface classification values to get.The text structure.A DWRITE_PANOSE_SERIF_STYLE-typed value that specifies the serif style of text.A DWRITE_PANOSE_WEIGHT-typed value that specifies the weight of the text.A DWRITE_PANOSE_PROPORTION-typed value that specifies the proportion for the text.A DWRITE_PANOSE_CONTRAST-typed value that specifies the contrast for the text.A DWRITE_PANOSE_STROKE_VARIATION-typed value that specifies the stroke variation for the text.A DWRITE_PANOSE_ARM_STYLE-typed value that specifies the arm style of text.A DWRITE_PANOSE_LETTERFORM-typed value that specifies the letter form for the text.A DWRITE_PANOSE_MIDLINE-typed value that specifies the midline for the text.A DWRITE_PANOSE_XHEIGHT-typed value that specifies the relative size of lowercase text.The script structure.A DWRITE_PANOSE_TOOL_KIND-typed value that specifies the kind of tool for the script.A DWRITE_PANOSE_SPACING-typed value that specifies the spacing of the script.A DWRITE_PANOSE_ASPECT_RATIO-typed value that specifies the aspect ratio of the script.A DWRITE_PANOSE_SCRIPT_TOPOLOGY-typed value that specifies the script topology.A DWRITE_PANOSE_SCRIPT_FORM-typed value that specifies the script form.A DWRITE_PANOSE_FINIALS-typed value that specifies the script finials.A DWRITE_PANOSE_XASCENT-typed value that specifies the relative size of lowercase letters.The decorative structure.A DWRITE_PANOSE_DECORATIVE_CLASS-typed value that specifies the class of the decorative typeface.A DWRITE_PANOSE_ASPECT-typed value that specifies the aspect of the decorative typeface.The serif variant of the decorative typeface.A DWRITE_PANOSE_FILL-typed value that specifies the fill of the decorative typeface.A DWRITE_PANOSE_LINING-typed value that specifies the lining of the decorative typeface.A DWRITE_PANOSE_DECORATIVE_TOPOLOGY-typed value that specifies the decorative topology.A DWRITE_PANOSE_CHARACTER_RANGES-typed value that specifies the character range of the decorative typeface.The symbol structure.A DWRITE_PANOSE_SYMBOL_KIND-typed value that specifies the kind of symbol set.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio and contrast of the symbol typeface.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 94 of the symbol typeface.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 119 of the symbol typeface.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 157 of the symbol typeface.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 163 of the symbol typeface.A DWRITE_PANOSE_SYMBOL_ASPECT_RATIO-typed value that specifies the aspect ratio 211 of the symbol typeface.The DWRITE_GLYPH_ORIENTATION_ANGLE enumeration contains values that specify how the glyph is oriented to the x-axis.Microsoft Docs: Glyph orientation is upright.Glyph orientation is rotated 90 degrees clockwise.Glyph orientation is upside-down.Glyph orientation is rotated 270 degrees clockwise.Contains the information needed by renderers to draw glyph runs.Microsoft Docs: The physical font face object to draw with.The logical size of the font in DIPs (equals 1/96 inch), not points.The number of glyphs in the glyph run.A pointer to an array of indices to render for the glyph run.A pointer to an array containing glyph advance widths for the glyph run.A pointer to an array containing glyph offsets for the glyph run.If true, specifies that glyphs are rotated 90 degrees to the left and vertical metrics are used. Vertical writing is achieved by specifying isSideways = true and rotating the entire run 90 degrees to the right via a rotate transform.The implicit resolved bidi level of the run. Odd levels indicate right-to-left languages like Hebrew and Arabic, while even levels indicate left-to-right languages like English and Japanese (when written horizontally). For right-to-left languages, the text origin is on the right, and text should be drawn to the left.Contains properties describing the geometric measurement of an application-defined inline object.Microsoft Docs: The width of the inline object.The height of the inline object.The distance from the top of the object to the point where it is lined up with the adjacent text.
If the baseline is at the bottom, then baseline simply equals height.A Boolean flag that indicates whether the object is to be placed upright or alongside the text baseline for vertical text.Indicates the file format of a complete font face.Microsoft Docs: OpenType font face with CFF outlines.OpenType font face with TrueType outlines.A Type 1 font face.A vector .FON format font face.A bitmap .FON format font face.Font face type is not recognized by the DirectWrite font system.The font data includes only the CFF table from an OpenType CFF font. This font face type can be used only for embedded fonts (i.e., custom font file loaders) and the resulting font face object supports only the minimum functionality necessary to render glyphs.OpenType font face that is a part of a TrueType collection.The DWRITE_PANOSE_PROPORTION enumeration contains values that specify the proportion of the glyph shape by considering additional detail to standard characters.Microsoft Docs: Any proportion for the text.No fit proportion for the text.Old style proportion for the text.Modern proportion for the text.Extra width proportion for the text.Expanded proportion for the text.Condensed proportion for the text.Very expanded proportion for the text.Very condensed proportion for the text.Monospaced proportion for the text.Represents a range of bytes in a font file.Microsoft Docs: Starting offset of the fragment from the beginning of the file.Size of the file fragment, in bytes.The method used for line spacing in a text layout.Microsoft Docs: Line spacing depends solely on the content, adjusting to accommodate the size of fonts and inline objects.Lines are explicitly set to uniform spacing, regardless of the size of fonts and inline objects. This can be useful to avoid the uneven appearance that can occur from font fallback.Line spacing and baseline distances are proportional to the computed values based on the content, the size of the fonts and inline objects.
Specifies the location of a resource.Microsoft Docs: The resource is remote, and information about it is unknown, including the file size and date. If you attempt to create a font or file stream, the creation will fail until locality becomes at least partial.The resource is partially local, which means you can query the size and date of the file stream. With this type, you also might be able to create a font face and retrieve the particular glyphs for metrics and drawing, but not all the glyphs will be present.The resource is completely local, and all font functions can be called without concern of missing data or errors related to network connectivity.Indicates the condition at the edges of inline object or text used to determine line-breaking behavior.Microsoft Docs: Indicates whether a break is allowed by determining the condition of the neighboring text span or inline object.Indicates that a line break is allowed, unless overruled by the condition of the
neighboring text span or inline object, either prohibited by a
"may not break" condition or forced by a "must break" condition.Indicates that there should be no line break, unless overruled by a "must break" condition from
the neighboring text span or inline object.Indicates that the line break must happen, regardless of the condition of the adjacent
text span or inline object.The DWRITE_PANOSE_SCRIPT_FORM enumeration contains values that specify the general look of the character face, with consideration of its slope and tails.Microsoft Docs: Any script form.No fit for script form.Script form is upright with no wrapping.Script form is upright with some wrapping.Script form is upright with more wrapping.Script form is upright with extreme wrapping.Script form is oblique with no wrapping.Script form is oblique with some wrapping.Script form is oblique with more wrapping.Script form is oblique with extreme wrapping.Script form is exaggerated with no wrapping.Script form is exaggerated with some wrapping.Script form is exaggerated with more wrapping.Script form is exaggerated with extreme wrapping.Contains the metrics associated with text after layout.Microsoft Docs: The height of the formatted text taking into account the trailing whitespace at the end of each line. This is
pertinent for vertical text.Contains the information needed by renderers to draw glyph runs with glyph color information.Microsoft Docs: Glyph run to draw for this layer.Pointer to the glyph run description for this layer. This may be NULL. For example, when the original glyph run is split into multiple layers, one layer might have a description and the others have none.X coordinate of the baseline origin for the layer.Y coordinate of the baseline origin for the layer.Color value of the run; if all members are zero, the run should be drawn using the current brush.Zero-based index into the font’s color palette; if this is 0xFFFF, the run should be drawn using the current brush.Represents a method of rendering glyphs.Microsoft Docs: Specifies that the rendering mode is determined automatically, based on the font and size.Specifies that no anti-aliasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background.Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is layout-compatible with GDI using CLEARTYPE_QUALITY.
Use DWRITE_MEASURING_MODE_GDI_CLASSIC to get glyph advances. The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is layout-compatible with GDI using CLEARTYPE_NATURAL_QUALITY.
Glyph advances are close to the font design advances, but are still rounded to whole pixels. Use DWRITE_MEASURING_MODE_GDI_NATURAL to get glyph advances.
The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Specifies that antialiasing is performed in the horizontal direction. This rendering mode allows glyphs to be positioned with subpixel precision and
is therefore suitable
for natural (i.e., resolution-independent) layout. The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Similar to natural mode except that antialiasing is performed in both the horizontal and vertical directions.
This is typically used at larger sizes to make curves and diagonal lines look smoother. The antialiasing may be either ClearType or grayscale depending
on the text antialiasing mode.Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes.Specifies a range of text positions where format is applied in the text represented by an IDWriteTextLayout object.Microsoft Docs: The start position of the text range.The number positions in the text range.Specifies properties used to identify and execute typographic features in the current font face.Microsoft Docs: The feature OpenType name identifier.The execution parameter of the feature.Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations can be combined via bitwise OR operation.Microsoft Docs: Indicates that no simulations are applied to the font face.Indicates that algorithmic emboldening is applied to the font face. DWRITE_FONT_SIMULATIONS_BOLD increases weight by applying a widening algorithm to the glyph outline. This may be used to simulate a bold weight where no designed bold weight is available.Indicates that algorithmic italicization is applied to the font face. DWRITE_FONT_SIMULATIONS_OBLIQUE applies obliquing (shear) to the glyph outline. This may be used to simulate an oblique/italic style where no designed oblique/italic style is available.The DWRITE_PANOSE_DECORATIVE_TOPOLOGY enumeration contains values that specify the overall shape characteristics of the font.Microsoft Docs: Any decorative topology.No fit for decorative topology.Standard decorative topology.Square decorative topology.Multiple segment decorative topology.Art deco decorative topology.Uneven weighting decorative topology.Diverse arms decorative topology.Diverse forms decorative topology.Lombardic forms decorative topology.Upper case in lower case decorative topology.The decorative topology is implied.Horseshoe E and A decorative topology.Cursive decorative topology.Blackletter decorative topology.Swash variance decorative topology.Specifies how glyphs are rendered.Microsoft Docs: Specifies that the rendering mode is determined automatically, based on the font and size.Specifies that no anti-aliasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background.Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is layout-compatible with GDI using CLEARTYPE_QUALITY.
Use DWRITE_MEASURING_MODE_GDI_CLASSIC to get glyph advances. The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Specifies that antialiasing is performed in the horizontal direction and the appearance of glyphs is layout-compatible with GDI using CLEARTYPE_NATURAL_QUALITY.
Glyph advances are close to the font design advances, but are still rounded to whole pixels. Use DWRITE_MEASURING_MODE_GDI_NATURAL to get glyph advances.
The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Specifies that antialiasing is performed in the horizontal direction. This rendering mode allows glyphs to be positioned with subpixel precision and
is therefore suitable for natural (i.e., resolution-independent) layout.
The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Similar to natural mode except that antialiasing is performed in both the horizontal and vertical directions.
This is typically used at larger sizes to make curves and diagonal lines look smoother.
The antialiasing may be either ClearType or grayscale depending on the text antialiasing mode.Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes.Similar to natural symmetric mode except that when possible, text should be rasterized in a downsampled form.Represents a color glyph run. The IDWriteFactory4::TranslateColorGlyphRun method returns an ordered collection of color glyph runs of varying types depending on what the font supports.Microsoft Docs: Type of glyph image format for this color run. Exactly one type will be set since TranslateColorGlyphRun has already broken down the run into separate parts.Measuring mode to use for this glyph run.Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics.Microsoft Docs: The usage of the font line gap depends on the method used for text layout.The font line gap is excluded from line spacing.The font line gap is included in line spacing.Represents the minimum and maximum range of the possible values for a font axis.Microsoft Docs: The four-character identifier of the font axis (for example, weight, width, slant, italic, and so on).The minimum value supported by this axis.The maximum value supported by this axis.Stores the association of text and its writing system script, as well as some display attributes.Microsoft Docs: The zero-based index representation of writing system script.A value that indicates additional shaping requirement of text.Contains information about a formatted line of text.Microsoft Docs: White space before the content of the line. This is included in the line height and baseline distances.
If the line is formatted horizontally either with a uniform line spacing or with proportional
line spacing, this value represents the extra space above the content.White space after the content of the line. This is included in the height of the line.
If the line is formatted horizontally either with a uniform line spacing or with proportional
line spacing, this value represents the extra space below the content.The DWRITE_PANOSE_SERIF_STYLE enumeration contains values that specify the appearance of the serif text.Microsoft Docs: Any appearance of the serif text.No fit appearance of the serif text.Cove appearance of the serif text.Obtuse cove appearance of the serif text.Square cove appearance of the serif text.Obtuse square cove appearance of the serif text.Square appearance of the serif text.Thin appearance of the serif text.Oval appearance of the serif text.Exaggerated appearance of the serif text.Triangle appearance of the serif text.Normal sans appearance of the serif text.Obtuse sans appearance of the serif text.Perpendicular sans appearance of the serif text.Flared appearance of the serif text.Rounded appearance of the serif text.Script appearance of the serif text.Perpendicular sans appearance of the serif text.Oval appearance of the serif text.The DWRITE_MATRIX structure specifies the graphics transform to be applied to rendered glyphs.Microsoft Docs: A value indicating the horizontal scaling / cosine of rotation.A value indicating the vertical shear / sine of rotation.A value indicating the horizontal shear / negative sine of rotation.A value indicating the vertical scaling / cosine of rotation.A value indicating the horizontal shift (always orthogonal regardless of rotation).A value indicating the vertical shift (always orthogonal regardless of rotation.)Specifies how to apply number substitution on digits and related punctuation.Microsoft Docs: Specifies that the substitution method should be determined based on the LOCALE_IDIGITSUBSTITUTION value of the specified text culture.If the culture is Arabic or Persian, specifies that the number shapes depend on the context. Either traditional or nominal number shapes are used, depending on the nearest preceding strong character or (if there is none) the reading direction of the paragraph.Specifies that code points 0x30-0x39 are always rendered as nominal numeral shapes (ones of the European number), that is, no substitution is performed.Specifies that numbers are rendered using the national number shapes as specified by the LOCALE_SNATIVEDIGITS value of the specified text culture.Specifies that numbers are rendered using the traditional shapes for the specified culture. For most cultures, this is the same as NativeNational. However, NativeNational results in Latin numbers for some Arabic cultures, whereasDWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL results in arabic numbers for all Arabic cultures.Sets the vertical spacing between lines of text.Microsoft Docs: Method used to determine line spacing.Spacing between lines. The interpretation of this parameter depends upon the line spacing method, as follows:
Line spacing: ignored
uniform line spacing: explicit distance in DIPs between lines
proportional line spacing: a scaling factor to be applied to the computed line height;
for each line, the height of the line is computed as for default line spacing, and the scaling factor is applied to that value.
Distance from top of line to baseline.
The interpretation of this parameter depends upon the line spacing method, as follows:
default line spacing: ignored
uniform line spacing: explicit distance in DIPs from the top of the line to the baseline
proportional line spacing: a scaling factor applied to the computed baseline; for each line,
the baseline distance is computed as for default line spacing, and the scaling factor is applied to that value.
Proportion of the entire leading distributed before the line. The allowed value is between 0 and 1.0. The remaining
leading is distributed after the line. It is ignored for the default and uniform line spacing methods.
The leading that is available to distribute before or after the line depends on the values of the height and
baseline parameters.Specify whether DWRITE_FONT_METRICS::lineGap value should be part of the line metrics.Indicates the direction of how lines of text are placed relative to one another.Microsoft Docs: Specifies that text lines are placed from top to bottom.Specifies that text lines are placed from bottom to top.Specifies that text lines are placed from left to right.Specifies that text lines are placed from right to left.Data for a single glyph from GetGlyphImageData.Microsoft Docs: Pointer to the glyph data.Size of glyph data in bytes.Unique identifier for the glyph data. Clients may use this to cache a parsed/decompressed version and tell whether a repeated call to the same font returns the same data.Pixels per em of the returned data. For non-scalable raster data (PNG/TIFF/JPG), this can be larger or smaller than requested from GetGlyphImageData when there isn't an exact match.
For scaling intermediate sizes, use: desired pixels per em * font em size / actual pixels per em.Size of image when the format is pixel data.Left origin along the horizontal Roman baseline.Right origin along the horizontal Roman baseline.Top origin along the vertical central baseline.Bottom origin along vertical central baseline.Specifies whether to enable grid-fitting of glyph outlines (also known as hinting).Microsoft Docs: Choose grid fitting based on the font's table information.Always disable grid fitting, using the ideal glyph outlines.Enable grid fitting, adjusting glyph outlines for device pixel display.Specifies the trimming option for text overflowing the layout box.Microsoft Docs: A value that specifies the text granularity used to trim text overflowing the layout box.A character code used as the delimiter that signals the beginning of the portion of text to be preserved.
Text starting from the Nth occurence of the delimiter (where N equals delimiterCount) counting backwards from the end of the text block will be preserved.
For example, given the text is a path like c:\A\B\C\D\file.txt and delimiter equal to '\' and delimiterCount equal to 1, the file.txt portion of the text would be preserved.
Specifying a delimiterCount of 2 would preserve D\file.txt.The delimiter count, counting from the end of the text, to preserve text from.Specifies the container format of a font resource. A container format is distinct from a font file format (DWRITE_FONT_FILE_TYPE) because the container describes the container in which the underlying font file is packaged.Microsoft Docs: Identifies a type of alpha texture.Microsoft Docs: Specifies an alpha texture for aliased text rendering (that is, each pixel is either fully opaque or fully transparent), with one byte per pixel.Specifies an alpha texture for ClearType text rendering, with three bytes per pixel in the horizontal dimension and one byte per pixel in the vertical dimension.The DWRITE_BASELINE enumeration contains values that specify the baseline for text alignment.Microsoft Docs: The Roman baseline for horizontal; the Central baseline for vertical.The baseline that is used by alphabetic scripts such as Latin, Greek, and Cyrillic.Central baseline, which is generally used for vertical text.Mathematical baseline, which math characters are centered on.Hanging baseline, which is used in scripts like Devanagari.Ideographic bottom baseline for CJK, left in vertical.Ideographic top baseline for CJK, right in vertical.The bottom-most extent in horizontal, left-most in vertical.The top-most extent in horizontal, right-most in vertical.The DWRITE_PANOSE_MIDLINE enumeration contains values that specify info about the placement of midline across uppercase characters and the treatment of diagonal stem apexes.Microsoft Docs: Any midline.No fit midline.Standard trimmed midline.Standard pointed midline.Standard serifed midline.High trimmed midline.High pointed midline.High serifed midline.Constant trimmed midline.Constant pointed midline.Constant serifed midline.Low trimmed midline.Low pointed midline.Low serifed midline.Contains information about a glyph cluster.Microsoft Docs: The total advance width of all glyphs in the cluster.The number of text positions in the cluster.Indicates whether a line can be broken right after the cluster.Indicates whether the cluster corresponds to a whitespace character.Indicates whether the cluster corresponds to a newline character.Indicates whether the cluster corresponds to a soft hyphen character.Indicates whether the cluster is read from right to left.Reserved for future use.The DWRITE_UNICODE_RANGE structure specifies the range of Unicode code points.Microsoft Docs: The first code point in the Unicode range.The last code point in the Unicode range.The DWRITE_PANOSE_SYMBOL_KIND enumeration contains values that specify the kind of symbol set.Microsoft Docs: Any kind of symbol set.No fit for the kind of symbol set.The kind of symbol set is montages.The kind of symbol set is pictures.The kind of symbol set is shapes.The kind of symbol set is scientific symbols.The kind of symbol set is music symbols.The kind of symbol set is expert symbols.The kind of symbol set is patterns.The kind of symbol set is boarders.The kind of symbol set is icons.The kind of symbol set is logos.The kind of symbol set is industry specific.Specifies the metrics of an individual glyph.Microsoft Docs: Specifies the X offset from the glyph origin to the left edge of the black box. The glyph origin is the current horizontal writing position. A negative value means the black box extends to the left of the origin (often true for lowercase italic 'f').Specifies the X offset from the origin of the current glyph to the origin of the next glyph when writing horizontally.Specifies the X offset from the right edge of the black box to the origin of the next glyph when writing horizontally. The value is negative when the right edge of the black box overhangs the layout box.Specifies the vertical offset from the vertical origin to the top of the black box. Thus, a positive value adds whitespace whereas a negative value means the glyph overhangs the top of the layout box.Specifies the Y offset from the vertical origin of the current glyph to the vertical origin of the next glyph when writing vertically. Note that the term "origin" by itself denotes the horizontal origin. The vertical origin is different. Its Y coordinate is specified by verticalOriginY value, and its X coordinate is half the advanceWidth to the right of the horizontal origin.Specifies the vertical distance from the bottom edge of the black box to the advance height. This is positive when the bottom edge of the black box is within the layout box, or negative when the bottom edge of black box overhangs the layout box.Specifies the Y coordinate of a glyph's vertical origin, in the font's design coordinate system. The y coordinate of a glyph's vertical origin is the sum of the glyph's top side bearing and the top (that is, yMax) of the glyph's bounding box.Specifies the direction in which reading progresses.Microsoft Docs: Indicates that reading progresses from left to right.Indicates that reading progresses from right to left.
Note Windows 8.1 and later only.
Indicates that reading progresses from top to bottom.
Note Windows 8.1 and later only.
Indicates that reading progresses from bottom to top.The DWRITE_OUTLINE_THRESHOLD enumeration contains values that specify the policy used by the IDWriteFontFace1::GetRecommendedRenderingMode method to determine whether to render glyphs in outline mode.Microsoft Docs: Graphics system renders anti-aliased outlines.Graphics system renders aliased outlines.The DWRITE_PANOSE_CONTRAST enumeration contains values that specify the ratio between thickest and thinnest point of the stroke for a letter such as uppercase 'O'.Microsoft Docs: Any contrast.No fit contrast.No contrast.Very low contrast.Low contrast.Medium low contrast.Medium contrast.Medium high contrast.High contrast.Very high contrast.Horizontal low contrast.Horizontal medium contrast.Horizontal high contrast.Broken contrast.Represents a value for a font axis. Used when querying and creating font instances.Microsoft Docs: The four-character identifier of the font axis (for example, weight, width, slant, italic, and so on).A value for the axis specified in axisTag. The meaning and range of the value depends on the semantics of the particular axis. Certain well-known axes have standard ranges and defaults. Here are some examples.
- Weight (1..1000, default == 400)
- Width (>0, default == 100)
- Slant (-90..90, default == -20)
- Italic (0 or 1)The DWRITE_PANOSE_LETTERFORM enumeration contains values that specify the roundness of letterform for text.Microsoft Docs: Any letterform.No fit letterform.Normal contact letterform.Normal weighted letterform.Normal boxed letterform.Normal flattened letterform.Normal rounded letterform.Normal off-center letterform.Normal square letterform.Oblique contact letterform.Oblique weighted letterform.Oblique boxed letterform.Oblique flattened letterform.Oblique rounded letterform.Oblique off-center letterform.Oblique square letterform.Font property used for filtering font sets and building a font set with explicit properties.Microsoft Docs: Specifies the requested font property, such as DWRITE_FONT_PROPERTY_ID_FAMILY_NAME.Specifies the value, such as "Segoe UI".Specifies the locale to use, such as "en-US". Simply leave this empty when used
with the font set filtering functions, as they will find a match regardless of
language. For passing to AddFontFaceReference, the localeName specifies the language
of the property value.Indicates additional shaping requirements for text.Microsoft Docs: Indicates that there is no additional shaping requirements for text. Text is shaped with the writing system default behavior.Indicates that text should leave no visible control or format control characters.The DWRITE_PANOSE_STROKE_VARIATION enumeration contains values that specify the relationship between thin and thick stems of text characters.Microsoft Docs: Any stroke variation for text characters.No fit stroke variation for text characters.No stroke variation for text characters.The stroke variation for text characters is gradual diagonal.The stroke variation for text characters is gradual transitional.The stroke variation for text characters is gradual vertical.The stroke variation for text characters is gradual horizontal.The stroke variation for text characters is rapid vertical.The stroke variation for text characters is rapid horizontal.The stroke variation for text characters is instant vertical.The stroke variation for text characters is instant horizontal.Defines constants that specify certain axes that can be applied automatically in layout during font selection.Microsoft Docs: Specifies that no axes are automatically applied.Specifies that—when no value is specified via DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE—an appropriate optical value should be automatically chosen based on the font size (via IDWriteTextLayout::SetFontSize). You can still apply the 'opsz' value over text ranges via IDWriteTextFormat3::SetFontAxisValues, which take priority.Contains shaping output properties for an output glyph.Microsoft Docs: Indicates that the glyph has justification applied.Indicates that the glyph is the start of a cluster.Indicates that the glyph is a diacritic mark.Indicates that the glyph is a word boundary with no visible space.Reserved for future use.Defines constants that specify a four-character identifier for a font axis.Microsoft Docs: Specifies the weight axis, using the identifier 'w','g','h','t'.Specifies the width axis, using the identifier 'w','d','t','h'.Specifies the slant axis, using the identifier 's','l','n','t'.Specifies the optical size axis, using the identifier 'o','p','s','z'.Specifies the italic axis, using the identifier 'i','t','a','l'.Represents the style of a font face as normal, italic, or oblique.Microsoft Docs: Font style : Normal.Font style : Oblique.Font style : Italic.Contains additional properties related to those in DWRITE_GLYPH_RUN.Microsoft Docs: An array of characters containing the locale name associated with this run.An array of characters containing the text associated with the glyphs.The number of characters in UTF16 code-units. Note that this may be different than the number of glyphs.An array of indices to the glyph indices array, of the first glyphs of all the glyph clusters of the glyphs to render.Corresponding text position in the string this glyph run came from. This is relative to the beginning of the string represented by the IDWriteTextLayout object.A value that indicates the typographic feature of text supplied by the font.Microsoft Docs: Replaces figures separated by a slash with an alternative form.
Equivalent OpenType tag: 'afrc'Turns capital characters into petite capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in petite-cap form to avoid disrupting the flow of text. See the pcap feature description for notes on the relationship of caps, smallcaps and petite caps.
Equivalent OpenType tag: 'c2pc'Turns capital characters into small capitals. It is generally used for words which would otherwise be set in all caps, such as acronyms, but which are desired in small-cap form to avoid disrupting the flow of text.
Equivalent OpenType tag: 'c2sc'In specified situations, replaces default glyphs with alternate forms which provide better joining behavior. Used in script typefaces which are designed to have some or all of their glyphs join.
Equivalent OpenType tag: 'calt'Shifts various punctuation marks up to a position that works better with all-capital sequences or sets of lining figures; also changes oldstyle figures to lining figures. By default, glyphs in a text face are designed to work with lowercase characters. Some characters should be shifted vertically to fit the higher visual center of all-capital or lining text. Also, lining figures are the same height (or close to it) as capitals, and fit much better with all-capital text.
Equivalent OpenType tag: 'case'To minimize the number of glyph alternates, it is sometimes desired to decompose a character into two glyphs. Additionally, it may be preferable to compose two characters into a single glyph for better glyph processing. This feature permits such composition/decomposition. The feature should be processed as the first feature processed, and should be processed only when it is called.
Equivalent OpenType tag: 'ccmp'Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. Unlike other ligature features, clig specifies the context in which the ligature is recommended. This capability is important in some script designs and for swash ligatures.
Equivalent OpenType tag: 'clig'Globally adjusts inter-glyph spacing for all-capital text. Most typefaces contain capitals and lowercase characters, and the capitals are positioned to work with the lowercase. When capitals are used for words, they need more space between them for legibility and esthetics. This feature would not apply to monospaced designs. Of course the user may want to override this behavior in order to do more pronounced letterspacing for esthetic reasons.
Equivalent OpenType tag: 'cpsp'Replaces default character glyphs with corresponding swash glyphs in a specified context. Note that there may be more than one swash alternate for a given character.
Equivalent OpenType tag: 'cswh'In cursive scripts like Arabic, this feature cursively positions adjacent glyphs.
Equivalent OpenType tag: 'curs'The default.Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures which may be used for special effect, at the user's preference.
Equivalent OpenType tag: 'dlig'Replaces standard forms in Japanese fonts with corresponding forms preferred by typographers. For example, a user would invoke this feature to replace kanji character U+5516 with U+555E.
Equivalent OpenType tag: 'expt'Replaces figures separated by a slash with 'common' (diagonal) fractions.
Equivalent OpenType tag: 'frac'Replaces glyphs set on other widths with glyphs set on full (usually em) widths. In a CJKV font, this may include "lower ASCII" Latin characters and various symbols. In a European font, this feature replaces proportionally-spaced glyphs with monospaced glyphs, which are generally set on widths of 0.6 em. For example, a user may invoke this feature in a Japanese font to get full monospaced Latin glyphs instead of the corresponding proportionally-spaced versions.
Equivalent OpenType tag: 'fwid'Produces the half forms of consonants in Indic scripts. For example, in Hindi (Devanagari script), the conjunct KKa, obtained by doubling the Ka, is denoted with a half form of Ka followed by the full form.
Equivalent OpenType tag: 'half'Produces the halant forms of consonants in Indic scripts. For example, in Sanskrit (Devanagari script), syllable final consonants are frequently required in their halant form.
Equivalent OpenType tag: 'haln'Respaces glyphs designed to be set on full-em widths, fitting them onto half-em widths. This differs from hwid in that it does not substitute new glyphs.
Equivalent OpenType tag: 'halt'Replaces the default (current) forms with the historical alternates. While some ligatures are also used for historical effect, this feature deals only with single characters. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect.
Equivalent OpenType tag: 'hist'Replaces standard kana with forms that have been specially designed for only horizontal writing. This is a typographic optimization for improved fit and more even color.
Equivalent OpenType tag: 'hkna'Replaces the default (current) forms with the historical alternates. Some ligatures were in common use in the past, but appear anachronistic today. Some fonts include the historical forms as alternates, so they can be used for a 'period' effect.
Equivalent OpenType tag: 'hlig'Replaces glyphs on proportional widths, or fixed widths other than half an em, with glyphs on half-em (en) widths. Many CJKV fonts have glyphs which are set on multiple widths; this feature selects the half-em version. There are various contexts in which this is the preferred behavior, including compatibility with older desktop documents.
Equivalent OpenType tag: 'hwid'Used to access the JIS X 0212-1990 glyphs for the cases when the JIS X 0213:2004 form is encoded. The JIS X 0212-1990 (aka, "Hojo Kanji") and JIS X 0213:2004 character sets overlap significantly. In some cases their prototypical glyphs differ. When building fonts that support both JIS X 0212-1990 and JIS X 0213:2004 (such as those supporting the Adobe-Japan 1-6 character collection), it is recommended that JIS X 0213:2004 forms be the preferred encoded form.
Equivalent OpenType tag: 'hojo'The National Language Council (NLC) of Japan has defined new glyph shapes for a number of JIS characters, which were incorporated into JIS X 0213:2004 as new prototypical forms. The 'jp04' feature is A subset of the 'nlck' feature, and is used to access these prototypical glyphs in a manner that maintains the integrity of JIS X 0213:2004.
Equivalent OpenType tag: 'jp04'Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS C 6226-1978 (JIS78) specification.
Equivalent OpenType tag: 'jp78'Replaces default (JIS90) Japanese glyphs with the corresponding forms from the JIS X 0208-1983 (JIS83) specification.
Equivalent OpenType tag: 'jp83'Replaces Japanese glyphs from the JIS78 or JIS83 specifications with the corresponding forms from the JIS X 0208-1990 (JIS90) specification.
Equivalent OpenType tag: 'jp90'Adjusts amount of space between glyphs, generally to provide optically consistent spacing between glyphs. Although a well-designed typeface has consistent inter-glyph spacing overall, some glyph combinations require adjustment for improved legibility. Besides standard adjustment in the horizontal direction, this feature can supply size-dependent kerning data via device tables, "cross-stream" kerning in the Y text direction, and adjustment of glyph placement independent of the advance adjustment. Note that this feature may apply to runs of more than two glyphs, and would not be used in monospaced fonts. Also note that this feature does not apply to text set vertically.
Equivalent OpenType tag: 'kern'Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers the ligatures which the designer/manufacturer judges should be used in normal conditions.
Equivalent OpenType tag: 'liga'Changes selected figures from oldstyle to the default lining form. For example, a user may invoke this feature in order to get lining figures, which fit better with all-capital text. This feature overrides results of the Oldstyle Figures feature (onum).
Equivalent OpenType tag: 'lnum'Enables localized forms of glyphs to be substituted for default forms. Many scripts used to write multiple languages over wide geographical areas have developed localized variant forms of specific letters, which are used by individual literary communities. For example, a number of letters in the Bulgarian and Serbian alphabets have forms distinct from their Russian counterparts and from each other. In some cases the localized form differs only subtly from the script 'norm', in others the forms are radically distinct.
Equivalent OpenType tag: 'locl'Positions mark glyphs with respect to base glyphs. For example, in Arabic script positioning the Hamza above the Yeh.
Equivalent OpenType tag: 'mark'Replaces standard typographic forms of Greek glyphs with corresponding forms commonly used in mathematical notation (which are a subset of the Greek alphabet).
Equivalent OpenType tag: 'mgrk'Positions marks with respect to other marks. Required in various non-Latin scripts like Arabic. For example, in Arabic, the ligaturised mark Ha with Hamza above it can also be obtained by positioning these marks relative to one another.
Equivalent OpenType tag: 'mkmk'Replaces default glyphs with various notational forms (such as glyphs placed in open or solid circles, squares, parentheses, diamonds or rounded boxes). In some cases an annotation form may already be present, but the user may want a different one.
Equivalent OpenType tag: 'nalt'Used to access glyphs made from glyph shapes defined by the National Language Council (NLC) of Japan for a number of JIS characters in 2000.
Equivalent OpenType tag: 'nlck'Changes selected figures from the default lining style to oldstyle form. For example, a user may invoke this feature to get oldstyle figures, which fit better into the flow of normal upper- and lowercase text. This feature overrides results of the Lining Figures feature (lnum).
Equivalent OpenType tag: 'onum'Replaces default alphabetic glyphs with the corresponding ordinal forms for use after figures. One exception to the follows-a-figure rule is the numero character (U+2116), which is actually a ligature substitution, but is best accessed through this feature.
Equivalent OpenType tag: 'ordn'Respaces glyphs designed to be set on full-em widths, fitting them onto individual (more or less proportional) horizontal widths. This differs from pwid in that it does not substitute new glyphs (GPOS, not GSUB feature). The user may prefer the monospaced form, or may simply want to ensure that the glyph is well-fit and not rotated in vertical setting (Latin forms designed for proportional spacing would be rotated).
Equivalent OpenType tag: 'palt'Turns lowercase characters into petite capitals. Forms related to petite capitals, such as specially designed figures, may be included. Some fonts contain an additional size of capital letters, shorter than the regular smallcaps and it is referred to as petite caps. Such forms are most likely to be found in designs with a small lowercase x-height, where they better harmonise with lowercase text than the taller smallcaps (for examples of petite caps, see the Emigre type families Mrs Eaves and Filosofia).
Equivalent OpenType tag: 'pcap'Replaces figure glyphs set on uniform (tabular) widths with corresponding glyphs set on glyph-specific (proportional) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs.
Equivalent OpenType tag: 'pnum'Replaces glyphs set on uniform widths (typically full or half-em) with proportionally spaced glyphs. The proportional variants are often used for the Latin characters in CJKV fonts, but may also be used for Kana in Japanese fonts.
Equivalent OpenType tag: 'pwid'Replaces glyphs on other widths with glyphs set on widths of one quarter of an em (half an en). The characters involved are normally figures and some forms of punctuation.
Equivalent OpenType tag: 'qwid'Replaces a sequence of glyphs with a single glyph which is preferred for typographic purposes. This feature covers those ligatures, which the script determines as required to be used in normal conditions. This feature is important for some scripts to ensure correct glyph formation.
Equivalent OpenType tag: 'rlig'Identifies glyphs in the font which have been designed for "ruby", from the old typesetting term for four-point-sized type. Japanese typesetting often uses smaller kana glyphs, generally in superscripted form, to clarify the meaning of kanji which may be unfamiliar to the reader.
Equivalent OpenType tag: 'ruby'Replaces the default forms with the stylistic alternates. Many fonts contain alternate glyph designs for a purely esthetic effect; these don't always fit into a clear category like swash or historical. As in the case of swash glyphs, there may be more than one alternate form.
Equivalent OpenType tag: 'salt'Replaces lining or oldstyle figures with inferior figures (smaller glyphs which sit lower than the standard baseline, primarily for chemical or mathematical notation). May also replace lowercase characters with alphabetic inferiors.
Equivalent OpenType tag: 'sinf'Turns lowercase characters into small capitals. This corresponds to the common SC font layout. It is generally used for display lines set in Large & small caps, such as titles. Forms related to small capitals, such as oldstyle figures, may be included.
Equivalent OpenType tag: 'smcp'Replaces 'traditional' Chinese or Japanese forms with the corresponding 'simplified' forms.
Equivalent OpenType tag: 'smpl'In addition to, or instead of, stylistic alternatives of individual glyphs (see 'salt' feature), some fonts may contain sets of stylistic variant glyphs corresponding to portions of the character set, such as multiple variants for lowercase letters in a Latin font. Glyphs in stylistic sets may be designed to harmonise visually, interract in particular ways, or otherwise work together. Examples of fonts including stylistic sets are Zapfino Linotype and Adobe's Poetica. Individual features numbered sequentially with the tag name convention 'ss01' 'ss02' 'ss03' . 'ss20' provide a mechanism for glyphs in these sets to be associated via GSUB lookup indexes to default forms and to each other, and for users to select from available stylistic sets
Equivalent OpenType tag: 'ss01'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss02'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss03'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss04'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss05'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss06'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss07'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss08'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss09'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss10'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss11'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss12'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss13'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss14'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss15'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss16'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss17'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss18'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss19'See the description for DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1.
Equivalent OpenType tag: 'ss20'May replace a default glyph with a subscript glyph, or it may combine a glyph substitution with positioning adjustments for proper placement.
Equivalent OpenType tag: 'subs'Replaces lining or oldstyle figures with superior figures (primarily for footnote indication), and replaces lowercase letters with superior letters (primarily for abbreviated French titles).
Equivalent OpenType tag: 'sups'Replaces default character glyphs with corresponding swash glyphs. Note that there may be more than one swash alternate for a given character.
Equivalent OpenType tag: 'swsh'Replaces the default glyphs with corresponding forms designed specifically for titling. These may be all-capital and/or larger on the body, and adjusted for viewing at larger sizes.
Equivalent OpenType tag: 'titl'Replaces 'simplified' Japanese kanji forms with the corresponding 'traditional' forms. This is equivalent to the Traditional Forms feature, but explicitly limited to the traditional forms considered proper for use in personal names (as many as 205 glyphs in some fonts).
Equivalent OpenType tag: 'tnam'Replaces figure glyphs set on proportional widths with corresponding glyphs set on uniform (tabular) widths. Tabular widths will generally be the default, but this cannot be safely assumed. Of course this feature would not be present in monospaced designs.
Equivalent OpenType tag: 'tnum'Replaces 'simplified' Chinese hanzi or Japanese kanji forms with the corresponding 'traditional' forms.
Equivalent OpenType tag: 'trad'Replaces glyphs on other widths with glyphs set on widths of one third of an em. The characters involved are normally figures and some forms of punctuation.
Equivalent OpenType tag: 'twid'Maps upper- and lowercase letters to a mixed set of lowercase and small capital forms, resulting in a single case alphabet (for an example of unicase, see the Emigre type family Filosofia). The letters substituted may vary from font to font, as appropriate to the design. If aligning to the x-height, smallcap glyphs may be substituted, or specially designed unicase forms might be used. Substitutions might also include specially designed figures.
Equivalent OpenType tag: 'unic'Indicates that the font is displayed vertically.Replaces normal figures with figures adjusted for vertical display.Allows the user to change from the default 0 to a slashed form. Some fonts contain both a default form of zero, and an alternative form which uses a diagonal slash through the counter. Especially in condensed designs, it can be difficult to distinguish between 0 and O (zero and capital O) in any situation where capitals and lining figures may be arbitrarily mixed.
Equivalent OpenType tag: 'zero'Specifies the text granularity used to trim text overflowing the layout box.Microsoft Docs: No trimming occurs. Text flows beyond the layout width.Trimming occurs at a character cluster boundary.Trimming occurs at a word boundary.Contains information about a formatted line of text.Microsoft Docs: The number of text positions in the text line.
This includes any trailing whitespace and newline characters.The number of whitespace positions at the end of the text line.
Newline sequences are considered whitespace.The number of characters in the newline sequence at the end of the text line.
If the count is zero, then the text line was either wrapped or it is the end of the text.The height of the text line.The distance from the top of the text line to its baseline.The line is trimmed.The DWRITE_FONT_METRICS structure specifies the metrics that are applicable to all glyphs within the font face.Microsoft Docs: The number of font design units per em unit. Font files use their own coordinate system of font design units. A font design unit is the smallest measurable unit in the em square, an imaginary square that is used to size and align glyphs. The concept of em square is used as a reference scale factor when defining font size and device transformation semantics. The size of one em square is also commonly used to compute the paragraph identation value.The ascent value of the font face in font design units. Ascent is the distance from the top of font character alignment box to the English baseline.The descent value of the font face in font design units. Descent is the distance from the bottom of font character alignment box to the English baseline.The line gap in font design units. Recommended additional white space to add between lines to improve legibility. The recommended line spacing (baseline-to-baseline distance) is the sum of ascent, descent, and lineGap. The line gap is usually positive or zero but can be negative, in which case the recommended line spacing is less than the height of the character alignment box.The cap height value of the font face in font design units. Cap height is the distance from the English baseline to the top of a typical English capital. Capital "H" is often used as a reference character for the purpose of calculating the cap height value.The x-height value of the font face in font design units. x-height is the distance from the English baseline to the top of lowercase letter "x", or a similar lowercase character.The underline position value of the font face in font design units. Underline position is the position of underline relative to the English baseline. The value is usually made negative in order to place the underline below the baseline.The suggested underline thickness value of the font face in font design units.The strikethrough position value of the font face in font design units. Strikethrough position is the position of strikethrough relative to the English baseline. The value is usually made positive in order to place the strikethrough above the baseline.The suggested strikethrough thickness value of the font face in font design units.The DWRITE_FONT_METRICS1 structure specifies the metrics that are applicable to all glyphs within the font face.Microsoft Docs: Left edge of accumulated bounding blackbox of all glyphs in the font.Top edge of accumulated bounding blackbox of all glyphs in the font.Right edge of accumulated bounding blackbox of all glyphs in the font.Bottom edge of accumulated bounding blackbox of all glyphs in the font.Horizontal position of the subscript relative to the baseline origin. This is typically negative (to the left) in italic and oblique fonts, and zero in regular fonts.Vertical position of the subscript relative to the baseline. This is typically negative.Horizontal size of the subscript em box in design units, used to scale the simulated subscript relative to the full em box size. This is the numerator of the scaling ratio where denominator is the design units per em. If this member is zero, the font does not specify a scale factor, and the client uses its own policy.Vertical size of the subscript em box in design units, used to scale the simulated subscript relative to the full em box size. This is the numerator of the scaling ratio where denominator is the design units per em. If this member is zero, the font does not specify a scale factor, and the client uses its own policy.Horizontal position of the superscript relative to the baseline origin. This is typically positive (to the right) in italic and oblique fonts, and zero in regular fonts.Vertical position of the superscript relative to the baseline. This is typically positive.Horizontal size of the superscript em box in design units, used to scale the simulated superscript relative to the full em box size. This is the numerator of the scaling ratio where denominator is the design units per em. If this member is zero, the font does not specify a scale factor, and the client should use its own policy.Vertical size of the superscript em box in design units, used to scale the simulated superscript relative to the full em box size. This is the numerator of the scaling ratio where denominator is the design units per em. If this member is zero, the font does not specify a scale factor, and the client should use its own policy.A Boolean value that indicates that the ascent, descent, and lineGap are based on newer 'typographic' values in the font, rather than legacy values.