RetroArch
Classes | Macros | Typedefs | Enumerations | Functions | Variables
dwrite.h File Reference
#include <specstrings.h>
#include <unknwn.h>
#include <dcommon.h>
Include dependency graph for dwrite.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  DWRITE_FONT_METRICS
 The DWRITE_FONT_METRICS structure specifies the metrics of a font face that are applicable to all glyphs within the font face. More...
 
struct  DWRITE_GLYPH_METRICS
 The DWRITE_GLYPH_METRICS structure specifies the metrics of an individual glyph. The units depend on how the metrics are obtained. More...
 
struct  DWRITE_GLYPH_OFFSET
 Optional adjustment to a glyph's position. A glyph offset changes the position of a glyph without affecting the pen position. Offsets are in logical, pre-transform units. More...
 
struct  DWRITE_MATRIX
 The DWRITE_MATRIX structure specifies the graphics transform to be applied to rendered glyphs. More...
 
struct  DWRITE_TEXT_RANGE
 The DWRITE_TEXT_RANGE structure specifies a range of text positions where format is applied. More...
 
struct  DWRITE_FONT_FEATURE
 The DWRITE_FONT_FEATURE structure specifies properties used to identify and execute typographic feature in the font. More...
 
struct  DWRITE_TYPOGRAPHIC_FEATURES
 Defines a set of typographic features to be applied during shaping. Notice the character range which this feature list spans is specified as a separate parameter to GetGlyphs. More...
 
struct  DWRITE_TRIMMING
 The DWRITE_TRIMMING structure specifies the trimming option for text overflowing the layout box. More...
 
struct  DWRITE_SCRIPT_ANALYSIS
 Association of text and its writing system script as well as some display attributes. More...
 
struct  DWRITE_LINE_BREAKPOINT
 Line breakpoint characteristics of a character. More...
 
struct  DWRITE_SHAPING_TEXT_PROPERTIES
 Holds the appropriate digits and numeric punctuation for a given locale. More...
 
struct  DWRITE_SHAPING_GLYPH_PROPERTIES
 Shaping output properties per output glyph. More...
 
struct  DWRITE_GLYPH_RUN
 The interface implemented by the text analyzer's client to provide text to the analyzer. It allows the separation between the logical view of text as a continuous stream of characters identifiable by unique text positions, and the actual memory layout of potentially discrete blocks of text in the client's backing store. More...
 
struct  DWRITE_GLYPH_RUN_DESCRIPTION
 The DWRITE_GLYPH_RUN_DESCRIPTION structure contains additional properties related to those in DWRITE_GLYPH_RUN. More...
 
struct  DWRITE_UNDERLINE
 The DWRITE_UNDERLINE structure contains information about the size and placement of underlines. All coordinates are in device independent pixels (DIPs). More...
 
struct  DWRITE_STRIKETHROUGH
 The DWRITE_STRIKETHROUGH structure contains information about the size and placement of strikethroughs. All coordinates are in device independent pixels (DIPs). More...
 
struct  DWRITE_LINE_METRICS
 The DWRITE_LINE_METRICS structure contains information about a formatted line of text. More...
 
struct  DWRITE_CLUSTER_METRICS
 The DWRITE_CLUSTER_METRICS structure contains information about a glyph cluster. More...
 
struct  DWRITE_TEXT_METRICS
 Overall metrics associated with text after layout. All coordinates are in device independent pixels (DIPs). More...
 
struct  DWRITE_INLINE_OBJECT_METRICS
 Properties describing the geometric measurement of an application-defined inline object. More...
 
struct  DWRITE_OVERHANG_METRICS
 The DWRITE_OVERHANG_METRICS structure holds how much any visible pixels (in DIPs) overshoot each side of the layout or inline objects. More...
 
struct  DWRITE_HIT_TEST_METRICS
 Geometry enclosing of text positions. More...
 

Macros

#define DWRITE_DECLARE_INTERFACE(iid)   DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE
 
#define DWRITE_EXPORT   __declspec(dllimport) WINAPI
 
#define DWRITE_MAKE_OPENTYPE_TAG(a, b, c, d)
 Creates an OpenType tag as a 32bit 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. This macro is compatible with DWRITE_FONT_FEATURE_TAG. More...
 
#define DWRITE_MAKE_FONT_FEATURE_TAG(a, b, c, d)   (static_cast<DWRITE_FONT_FEATURE_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))
 Creates an OpenType tag for glyph positioning and substitution font features. More...
 
#define DWRITE_PIXEL_GEOMETRY_DEFINED
 
#define DWRITE_ALPHA_MAX   255
 Maximum alpha value in a texture returned by IDWriteGlyphRunAnalysis::CreateAlphaTexture. More...
 
#define FACILITY_DWRITE   0x898
 
#define DWRITE_ERR_BASE   0x5000
 
#define MAKE_DWRITE_HR(severity, code)   MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))
 
#define MAKE_DWRITE_HR_ERR(code)   MAKE_DWRITE_HR(SEVERITY_ERROR, code)
 

Typedefs

typedef ID2D1SimplifiedGeometrySink IDWriteGeometrySink
 

Enumerations

enum  DWRITE_FONT_FILE_TYPE {
  DWRITE_FONT_FILE_TYPE_UNKNOWN, DWRITE_FONT_FILE_TYPE_CFF, DWRITE_FONT_FILE_TYPE_TRUETYPE, DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION,
  DWRITE_FONT_FILE_TYPE_TYPE1_PFM, DWRITE_FONT_FILE_TYPE_TYPE1_PFB, DWRITE_FONT_FILE_TYPE_VECTOR, DWRITE_FONT_FILE_TYPE_BITMAP,
  DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION
}
 The type of a font represented by a single font file. Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have separate enum values for each of the file type. More...
 
enum  DWRITE_FONT_FACE_TYPE {
  DWRITE_FONT_FACE_TYPE_CFF, DWRITE_FONT_FACE_TYPE_TRUETYPE, DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION, DWRITE_FONT_FACE_TYPE_TYPE1,
  DWRITE_FONT_FACE_TYPE_VECTOR, DWRITE_FONT_FACE_TYPE_BITMAP, DWRITE_FONT_FACE_TYPE_UNKNOWN, DWRITE_FONT_FACE_TYPE_RAW_CFF,
  DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION = DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION
}
 The file format of a complete font face. Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have a single enum entry. More...
 
enum  DWRITE_FONT_SIMULATIONS { DWRITE_FONT_SIMULATIONS_NONE = 0x0000, DWRITE_FONT_SIMULATIONS_BOLD = 0x0001, DWRITE_FONT_SIMULATIONS_OBLIQUE = 0x0002 }
 Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations can be combined via bitwise OR operation. More...
 
enum  DWRITE_FONT_WEIGHT {
  DWRITE_FONT_WEIGHT_THIN = 100, DWRITE_FONT_WEIGHT_EXTRA_LIGHT = 200, DWRITE_FONT_WEIGHT_ULTRA_LIGHT = 200, DWRITE_FONT_WEIGHT_LIGHT = 300,
  DWRITE_FONT_WEIGHT_SEMI_LIGHT = 350, DWRITE_FONT_WEIGHT_NORMAL = 400, DWRITE_FONT_WEIGHT_REGULAR = 400, DWRITE_FONT_WEIGHT_MEDIUM = 500,
  DWRITE_FONT_WEIGHT_DEMI_BOLD = 600, DWRITE_FONT_WEIGHT_SEMI_BOLD = 600, DWRITE_FONT_WEIGHT_BOLD = 700, DWRITE_FONT_WEIGHT_EXTRA_BOLD = 800,
  DWRITE_FONT_WEIGHT_ULTRA_BOLD = 800, DWRITE_FONT_WEIGHT_BLACK = 900, DWRITE_FONT_WEIGHT_HEAVY = 900, DWRITE_FONT_WEIGHT_EXTRA_BLACK = 950,
  DWRITE_FONT_WEIGHT_ULTRA_BLACK = 950
}
 The font weight enumeration describes common values for degree of blackness or thickness of strokes of characters in a font. Font weight values less than 1 or greater than 999 are considered to be invalid, and they are rejected by font API functions. More...
 
enum  DWRITE_FONT_STRETCH {
  DWRITE_FONT_STRETCH_UNDEFINED = 0, DWRITE_FONT_STRETCH_ULTRA_CONDENSED = 1, DWRITE_FONT_STRETCH_EXTRA_CONDENSED = 2, DWRITE_FONT_STRETCH_CONDENSED = 3,
  DWRITE_FONT_STRETCH_SEMI_CONDENSED = 4, DWRITE_FONT_STRETCH_NORMAL = 5, DWRITE_FONT_STRETCH_MEDIUM = 5, DWRITE_FONT_STRETCH_SEMI_EXPANDED = 6,
  DWRITE_FONT_STRETCH_EXPANDED = 7, DWRITE_FONT_STRETCH_EXTRA_EXPANDED = 8, DWRITE_FONT_STRETCH_ULTRA_EXPANDED = 9
}
 The font stretch enumeration describes relative change from the normal aspect ratio as specified by a font designer for the glyphs in a font. Values less than 1 or greater than 9 are considered to be invalid, and they are rejected by font API functions. More...
 
enum  DWRITE_FONT_STYLE { DWRITE_FONT_STYLE_NORMAL, DWRITE_FONT_STYLE_OBLIQUE, DWRITE_FONT_STYLE_ITALIC }
 The font style enumeration describes the slope style of a font face, such as Normal, Italic or Oblique. Values other than the ones defined in the enumeration are considered to be invalid, and they are rejected by font API functions. More...
 
enum  DWRITE_INFORMATIONAL_STRING_ID {
  DWRITE_INFORMATIONAL_STRING_NONE, DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE, DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS, DWRITE_INFORMATIONAL_STRING_TRADEMARK,
  DWRITE_INFORMATIONAL_STRING_MANUFACTURER, DWRITE_INFORMATIONAL_STRING_DESIGNER, DWRITE_INFORMATIONAL_STRING_DESIGNER_URL, DWRITE_INFORMATIONAL_STRING_DESCRIPTION,
  DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL, DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION, DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL, DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES,
  DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES, DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES, DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT,
  DWRITE_INFORMATIONAL_STRING_FULL_NAME, DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME, DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME,
  DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG, DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG, DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES, DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES = DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES,
  DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME = DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME
}
 The informational string enumeration identifies a string in a font. More...
 
enum  DWRITE_FACTORY_TYPE { DWRITE_FACTORY_TYPE_SHARED, DWRITE_FACTORY_TYPE_ISOLATED }
 Specifies the type of DirectWrite factory object. DirectWrite factory contains internal state such as font loader registration and cached font data. In most cases it is recommended to use the shared factory object, because it allows multiple components that use DirectWrite to share internal DirectWrite state and reduce memory usage. However, there are cases when it is desirable to reduce the impact of a component, such as a plug-in from an untrusted source, on the rest of the process by sandboxing and isolating it from the rest of the process components. In such cases, it is recommended to use an isolated factory for the sandboxed component. More...
 
enum  DWRITE_PIXEL_GEOMETRY { DWRITE_PIXEL_GEOMETRY_FLAT, DWRITE_PIXEL_GEOMETRY_RGB, DWRITE_PIXEL_GEOMETRY_BGR }
 Font file loader interface handles loading font file resources of a particular type from a key. The font file loader interface is recommended to be implemented by a singleton object. IMPORTANT: font file loader implementations must not register themselves with DirectWrite factory inside their constructors and must not unregister themselves in their destructors, because registration and unregistration operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed outside of the font file loader implementation as a separate step. More...
 
enum  DWRITE_RENDERING_MODE {
  DWRITE_RENDERING_MODE_DEFAULT, DWRITE_RENDERING_MODE_ALIASED, DWRITE_RENDERING_MODE_GDI_CLASSIC, DWRITE_RENDERING_MODE_GDI_NATURAL,
  DWRITE_RENDERING_MODE_NATURAL, DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC, DWRITE_RENDERING_MODE_OUTLINE, DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
  DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL, DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL = DWRITE_RENDERING_MODE_NATURAL, DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC
}
 Represents a method of rendering glyphs. More...
 
enum  DWRITE_READING_DIRECTION { DWRITE_READING_DIRECTION_LEFT_TO_RIGHT = 0, DWRITE_READING_DIRECTION_RIGHT_TO_LEFT = 1, DWRITE_READING_DIRECTION_TOP_TO_BOTTOM = 2, DWRITE_READING_DIRECTION_BOTTOM_TO_TOP = 3 }
 The IDWriteFontCollection encapsulates a collection of font families. More...
 
enum  DWRITE_FLOW_DIRECTION { DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM = 0, DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP = 1, DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT = 2, DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT = 3 }
 Direction for how lines of text are placed relative to one another. More...
 
enum  DWRITE_TEXT_ALIGNMENT { DWRITE_TEXT_ALIGNMENT_LEADING, DWRITE_TEXT_ALIGNMENT_TRAILING, DWRITE_TEXT_ALIGNMENT_CENTER, DWRITE_TEXT_ALIGNMENT_JUSTIFIED }
 Alignment of paragraph text along the reading direction axis relative to the leading and trailing edge of the layout box. More...
 
enum  DWRITE_PARAGRAPH_ALIGNMENT { DWRITE_PARAGRAPH_ALIGNMENT_NEAR, DWRITE_PARAGRAPH_ALIGNMENT_FAR, DWRITE_PARAGRAPH_ALIGNMENT_CENTER }
 Alignment of paragraph text along the flow direction axis relative to the flow's beginning and ending edge of the layout box. More...
 
enum  DWRITE_WORD_WRAPPING {
  DWRITE_WORD_WRAPPING_WRAP = 0, DWRITE_WORD_WRAPPING_NO_WRAP = 1, DWRITE_WORD_WRAPPING_EMERGENCY_BREAK = 2, DWRITE_WORD_WRAPPING_WHOLE_WORD = 3,
  DWRITE_WORD_WRAPPING_CHARACTER = 4
}
 Word wrapping in multiline paragraph. More...
 
enum  DWRITE_LINE_SPACING_METHOD { DWRITE_LINE_SPACING_METHOD_DEFAULT, DWRITE_LINE_SPACING_METHOD_UNIFORM, DWRITE_LINE_SPACING_METHOD_PROPORTIONAL }
 The method used for line spacing in layout. More...
 
enum  DWRITE_TRIMMING_GRANULARITY { DWRITE_TRIMMING_GRANULARITY_NONE, DWRITE_TRIMMING_GRANULARITY_CHARACTER, DWRITE_TRIMMING_GRANULARITY_WORD }
 Text granularity used to trim text overflowing the layout box. More...
 
enum  DWRITE_FONT_FEATURE_TAG {
  DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS = DWRITE_MAKE_OPENTYPE_TAG('a','f','r','c'), DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('c','2','p','c'), DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('c','2','s','c'), DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('c','a','l','t'),
  DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS = DWRITE_MAKE_OPENTYPE_TAG('c','a','s','e'), DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION = DWRITE_MAKE_OPENTYPE_TAG('c','c','m','p'), DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('c','l','i','g'), DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING = DWRITE_MAKE_OPENTYPE_TAG('c','p','s','p'),
  DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH = DWRITE_MAKE_OPENTYPE_TAG('c','s','w','h'), DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('c','u','r','s'), DWRITE_FONT_FEATURE_TAG_DEFAULT = DWRITE_MAKE_OPENTYPE_TAG('d','f','l','t'), DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('d','l','i','g'),
  DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS = DWRITE_MAKE_OPENTYPE_TAG('e','x','p','t'), DWRITE_FONT_FEATURE_TAG_FRACTIONS = DWRITE_MAKE_OPENTYPE_TAG('f','r','a','c'), DWRITE_FONT_FEATURE_TAG_FULL_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('f','w','i','d'), DWRITE_FONT_FEATURE_TAG_HALF_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','f'),
  DWRITE_FONT_FEATURE_TAG_HALANT_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','n'), DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('h','a','l','t'), DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','i','s','t'), DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('h','k','n','a'),
  DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('h','l','i','g'), DWRITE_FONT_FEATURE_TAG_HALF_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('h','w','i','d'), DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS = DWRITE_MAKE_OPENTYPE_TAG('h','o','j','o'), DWRITE_FONT_FEATURE_TAG_JIS04_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','0','4'),
  DWRITE_FONT_FEATURE_TAG_JIS78_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','7','8'), DWRITE_FONT_FEATURE_TAG_JIS83_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','8','3'), DWRITE_FONT_FEATURE_TAG_JIS90_FORMS = DWRITE_MAKE_OPENTYPE_TAG('j','p','9','0'), DWRITE_FONT_FEATURE_TAG_KERNING = DWRITE_MAKE_OPENTYPE_TAG('k','e','r','n'),
  DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('l','i','g','a'), DWRITE_FONT_FEATURE_TAG_LINING_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('l','n','u','m'), DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS = DWRITE_MAKE_OPENTYPE_TAG('l','o','c','l'), DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('m','a','r','k'),
  DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK = DWRITE_MAKE_OPENTYPE_TAG('m','g','r','k'), DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING = DWRITE_MAKE_OPENTYPE_TAG('m','k','m','k'), DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS = DWRITE_MAKE_OPENTYPE_TAG('n','a','l','t'), DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS = DWRITE_MAKE_OPENTYPE_TAG('n','l','c','k'),
  DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('o','n','u','m'), DWRITE_FONT_FEATURE_TAG_ORDINALS = DWRITE_MAKE_OPENTYPE_TAG('o','r','d','n'), DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH = DWRITE_MAKE_OPENTYPE_TAG('p','a','l','t'), DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('p','c','a','p'),
  DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('p','n','u','m'), DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('p','w','i','d'), DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('q','w','i','d'), DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES = DWRITE_MAKE_OPENTYPE_TAG('r','l','i','g'),
  DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS = DWRITE_MAKE_OPENTYPE_TAG('r','u','b','y'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES = DWRITE_MAKE_OPENTYPE_TAG('s','a','l','t'), DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS = DWRITE_MAKE_OPENTYPE_TAG('s','i','n','f'), DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS = DWRITE_MAKE_OPENTYPE_TAG('s','m','c','p'),
  DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS = DWRITE_MAKE_OPENTYPE_TAG('s','m','p','l'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','1'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','2'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','3'),
  DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','4'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','5'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','6'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','7'),
  DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','8'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 = DWRITE_MAKE_OPENTYPE_TAG('s','s','0','9'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','0'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','1'),
  DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','2'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','3'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','4'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','5'),
  DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','6'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','7'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','8'), DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 = DWRITE_MAKE_OPENTYPE_TAG('s','s','1','9'),
  DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 = DWRITE_MAKE_OPENTYPE_TAG('s','s','2','0'), DWRITE_FONT_FEATURE_TAG_SUBSCRIPT = DWRITE_MAKE_OPENTYPE_TAG('s','u','b','s'), DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT = DWRITE_MAKE_OPENTYPE_TAG('s','u','p','s'), DWRITE_FONT_FEATURE_TAG_SWASH = DWRITE_MAKE_OPENTYPE_TAG('s','w','s','h'),
  DWRITE_FONT_FEATURE_TAG_TITLING = DWRITE_MAKE_OPENTYPE_TAG('t','i','t','l'), DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS = DWRITE_MAKE_OPENTYPE_TAG('t','n','a','m'), DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES = DWRITE_MAKE_OPENTYPE_TAG('t','n','u','m'), DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS = DWRITE_MAKE_OPENTYPE_TAG('t','r','a','d'),
  DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS = DWRITE_MAKE_OPENTYPE_TAG('t','w','i','d'), DWRITE_FONT_FEATURE_TAG_UNICASE = DWRITE_MAKE_OPENTYPE_TAG('u','n','i','c'), DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING = DWRITE_MAKE_OPENTYPE_TAG('v','e','r','t'), DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION = DWRITE_MAKE_OPENTYPE_TAG('v','r','t','2'),
  DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO = DWRITE_MAKE_OPENTYPE_TAG('z','e','r','o')
}
 Typographic feature of text supplied by the font. More...
 
enum  DWRITE_SCRIPT_SHAPES { DWRITE_SCRIPT_SHAPES_DEFAULT = 0, DWRITE_SCRIPT_SHAPES_NO_VISUAL = 1 }
 The format of text used for text layout. More...
 
enum  DWRITE_BREAK_CONDITION { DWRITE_BREAK_CONDITION_NEUTRAL, DWRITE_BREAK_CONDITION_CAN_BREAK, DWRITE_BREAK_CONDITION_MAY_NOT_BREAK, DWRITE_BREAK_CONDITION_MUST_BREAK }
 Condition at the edges of inline object or text used to determine line-breaking behavior. More...
 
enum  DWRITE_NUMBER_SUBSTITUTION_METHOD {
  DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE, DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL, DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE, DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL,
  DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL
}
 How to apply number substitution on digits and related punctuation. More...
 
enum  DWRITE_TEXTURE_TYPE { DWRITE_TEXTURE_ALIASED_1x1, DWRITE_TEXTURE_CLEARTYPE_3x1 }
 The IDWriteInlineObject interface wraps an application defined inline graphic, allowing DWrite to query metrics as if it was a glyph inline with the text. More...
 

Functions

interface DWRITE_DECLARE_INTERFACE("7d97dbf7-e085-42d4-81e3-6a883bded118") IDWriteGlyphRunAnalysis interface DWRITE_DECLARE_INTERFACE("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") IDWriteFactory EXTERN_C HRESULT DWRITE_EXPORT DWriteCreateFactory (_In_ DWRITE_FACTORY_TYPE factoryType, _In_ REFIID iid, _COM_Outptr_ IUnknown **factory)
 Interface that encapsulates information used to render a glyph run. More...
 

Variables

interface DWRITE_DECLARE_INTERFACE("2f0da53a-2add-47cd-82ee-d9ec34688e75") IDWriteRenderingParams interface ID2D1SimplifiedGeometrySink
 The interface that represents text rendering settings for glyph rasterization and filtering. More...
 
interface DWRITE_DECLARE_INTERFACE("5f49804d-7024-4d43-bfa9-d25984f53849") IDWriteFontFace interface IDWriteFactory
 This interface exposes various font data such as metrics, names, and glyph outlines. It contains font face type, appropriate file references and face identification data. More...
 
interface DWRITE_DECLARE_INTERFACE("cca920e4-52f0-492b-bfa8-29c72ee0a468") IDWriteFontCollectionLoader interface DWRITE_DECLARE_INTERFACE("72755049-5ff7-435d-8348-4be97cfa6c7c") IDWriteFontFileEnumerator interface DWRITE_DECLARE_INTERFACE("08256209-099a-4b34-b86d-c22b110e7771") IDWriteLocalizedStrings interface IDWriteFontFamily
 The font collection loader interface is used to construct a collection of fonts given a particular type of key. The font collection loader interface is recommended to be implemented by a singleton object. IMPORTANT: font collection loader implementations must not register themselves with a DirectWrite factory inside their constructors and must not unregister themselves in their destructors, because registration and unregistration operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed outside of the font file loader implementation as a separate step. More...
 

Macro Definition Documentation

◆ DWRITE_ALPHA_MAX

#define DWRITE_ALPHA_MAX   255

Maximum alpha value in a texture returned by IDWriteGlyphRunAnalysis::CreateAlphaTexture.

◆ DWRITE_DECLARE_INTERFACE

#define DWRITE_DECLARE_INTERFACE (   iid)    DECLSPEC_UUID(iid) DECLSPEC_NOVTABLE

◆ DWRITE_ERR_BASE

#define DWRITE_ERR_BASE   0x5000

◆ DWRITE_EXPORT

#define DWRITE_EXPORT   __declspec(dllimport) WINAPI

◆ DWRITE_MAKE_FONT_FEATURE_TAG

#define DWRITE_MAKE_FONT_FEATURE_TAG (   a,
  b,
  c,
 
)    (static_cast<DWRITE_FONT_FEATURE_TAG>(DWRITE_MAKE_OPENTYPE_TAG(a,b,c,d)))

Creates an OpenType tag for glyph positioning and substitution font features.

◆ DWRITE_MAKE_OPENTYPE_TAG

#define DWRITE_MAKE_OPENTYPE_TAG (   a,
  b,
  c,
 
)
Value:
( \
(static_cast<UINT32>(static_cast<UINT8>(d)) << 24) | \
(static_cast<UINT32>(static_cast<UINT8>(c)) << 16) | \
(static_cast<UINT32>(static_cast<UINT8>(b)) << 8) | \
static_cast<UINT32>(static_cast<UINT8>(a)))
const GLubyte * c
Definition: glext.h:9812
GLboolean GLboolean GLboolean b
Definition: glext.h:6844
uint32_t UINT32
Definition: coretypes.h:10
GLboolean GLboolean GLboolean GLboolean a
Definition: glext.h:6844
uint8_t UINT8
Definition: coretypes.h:12

Creates an OpenType tag as a 32bit 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. This macro is compatible with DWRITE_FONT_FEATURE_TAG.

Example: DWRITE_MAKE_OPENTYPE_TAG('c','c','m','p') Dword: 0x706D6363

◆ DWRITE_PIXEL_GEOMETRY_DEFINED

#define DWRITE_PIXEL_GEOMETRY_DEFINED

◆ FACILITY_DWRITE

#define FACILITY_DWRITE   0x898

◆ MAKE_DWRITE_HR

#define MAKE_DWRITE_HR (   severity,
  code 
)    MAKE_HRESULT(severity, FACILITY_DWRITE, (DWRITE_ERR_BASE + code))

◆ MAKE_DWRITE_HR_ERR

#define MAKE_DWRITE_HR_ERR (   code)    MAKE_DWRITE_HR(SEVERITY_ERROR, code)

Typedef Documentation

◆ IDWriteGeometrySink

Enumeration Type Documentation

◆ DWRITE_BREAK_CONDITION

Condition at the edges of inline object or text used to determine line-breaking behavior.

Enumerator
DWRITE_BREAK_CONDITION_NEUTRAL 

Whether a break is allowed is determined by the condition of the neighboring text span or inline object.

DWRITE_BREAK_CONDITION_CAN_BREAK 

A break is allowed, unless overruled by the condition of the neighboring text span or inline object, either prohibited by a May Not or forced by a Must.

DWRITE_BREAK_CONDITION_MAY_NOT_BREAK 

There should be no break, unless overruled by a Must condition from the neighboring text span or inline object.

DWRITE_BREAK_CONDITION_MUST_BREAK 

The break must happen, regardless of the condition of the adjacent text span or inline object.

◆ DWRITE_FACTORY_TYPE

Specifies the type of DirectWrite factory object. DirectWrite factory contains internal state such as font loader registration and cached font data. In most cases it is recommended to use the shared factory object, because it allows multiple components that use DirectWrite to share internal DirectWrite state and reduce memory usage. However, there are cases when it is desirable to reduce the impact of a component, such as a plug-in from an untrusted source, on the rest of the process by sandboxing and isolating it from the rest of the process components. In such cases, it is recommended to use an isolated factory for the sandboxed component.

Enumerator
DWRITE_FACTORY_TYPE_SHARED 

Shared factory allow for re-use of cached font data across multiple in process components. Such factories also take advantage of cross process font caching components for better performance.

DWRITE_FACTORY_TYPE_ISOLATED 

Objects created from the isolated factory do not interact with internal DirectWrite state from other components.

◆ DWRITE_FLOW_DIRECTION

Direction for how lines of text are placed relative to one another.

Enumerator
DWRITE_FLOW_DIRECTION_TOP_TO_BOTTOM 

Text lines are placed from top to bottom.

DWRITE_FLOW_DIRECTION_BOTTOM_TO_TOP 

Text lines are placed from bottom to top.

DWRITE_FLOW_DIRECTION_LEFT_TO_RIGHT 

Text lines are placed from left to right.

DWRITE_FLOW_DIRECTION_RIGHT_TO_LEFT 

Text lines are placed from right to left.

◆ DWRITE_FONT_FACE_TYPE

The file format of a complete font face. Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have a single enum entry.

Enumerator
DWRITE_FONT_FACE_TYPE_CFF 

OpenType font face with CFF outlines.

DWRITE_FONT_FACE_TYPE_TRUETYPE 

OpenType font face with TrueType outlines.

DWRITE_FONT_FACE_TYPE_OPENTYPE_COLLECTION 

OpenType font face that is a part of a TrueType or CFF collection.

DWRITE_FONT_FACE_TYPE_TYPE1 

A Type 1 font face.

DWRITE_FONT_FACE_TYPE_VECTOR 

A vector .FON format font face.

DWRITE_FONT_FACE_TYPE_BITMAP 

A bitmap .FON format font face.

DWRITE_FONT_FACE_TYPE_UNKNOWN 

Font face type is not recognized by the DirectWrite font system.

DWRITE_FONT_FACE_TYPE_RAW_CFF 

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.

DWRITE_FONT_FACE_TYPE_TRUETYPE_COLLECTION 

◆ DWRITE_FONT_FEATURE_TAG

Typographic feature of text supplied by the font.

Use DWRITE_MAKE_FONT_FEATURE_TAG() to create a custom one.

Enumerator
DWRITE_FONT_FEATURE_TAG_ALTERNATIVE_FRACTIONS 
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS_FROM_CAPITALS 
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS_FROM_CAPITALS 
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_ALTERNATES 
DWRITE_FONT_FEATURE_TAG_CASE_SENSITIVE_FORMS 
DWRITE_FONT_FEATURE_TAG_GLYPH_COMPOSITION_DECOMPOSITION 
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_LIGATURES 
DWRITE_FONT_FEATURE_TAG_CAPITAL_SPACING 
DWRITE_FONT_FEATURE_TAG_CONTEXTUAL_SWASH 
DWRITE_FONT_FEATURE_TAG_CURSIVE_POSITIONING 
DWRITE_FONT_FEATURE_TAG_DEFAULT 
DWRITE_FONT_FEATURE_TAG_DISCRETIONARY_LIGATURES 
DWRITE_FONT_FEATURE_TAG_EXPERT_FORMS 
DWRITE_FONT_FEATURE_TAG_FRACTIONS 
DWRITE_FONT_FEATURE_TAG_FULL_WIDTH 
DWRITE_FONT_FEATURE_TAG_HALF_FORMS 
DWRITE_FONT_FEATURE_TAG_HALANT_FORMS 
DWRITE_FONT_FEATURE_TAG_ALTERNATE_HALF_WIDTH 
DWRITE_FONT_FEATURE_TAG_HISTORICAL_FORMS 
DWRITE_FONT_FEATURE_TAG_HORIZONTAL_KANA_ALTERNATES 
DWRITE_FONT_FEATURE_TAG_HISTORICAL_LIGATURES 
DWRITE_FONT_FEATURE_TAG_HALF_WIDTH 
DWRITE_FONT_FEATURE_TAG_HOJO_KANJI_FORMS 
DWRITE_FONT_FEATURE_TAG_JIS04_FORMS 
DWRITE_FONT_FEATURE_TAG_JIS78_FORMS 
DWRITE_FONT_FEATURE_TAG_JIS83_FORMS 
DWRITE_FONT_FEATURE_TAG_JIS90_FORMS 
DWRITE_FONT_FEATURE_TAG_KERNING 
DWRITE_FONT_FEATURE_TAG_STANDARD_LIGATURES 
DWRITE_FONT_FEATURE_TAG_LINING_FIGURES 
DWRITE_FONT_FEATURE_TAG_LOCALIZED_FORMS 
DWRITE_FONT_FEATURE_TAG_MARK_POSITIONING 
DWRITE_FONT_FEATURE_TAG_MATHEMATICAL_GREEK 
DWRITE_FONT_FEATURE_TAG_MARK_TO_MARK_POSITIONING 
DWRITE_FONT_FEATURE_TAG_ALTERNATE_ANNOTATION_FORMS 
DWRITE_FONT_FEATURE_TAG_NLC_KANJI_FORMS 
DWRITE_FONT_FEATURE_TAG_OLD_STYLE_FIGURES 
DWRITE_FONT_FEATURE_TAG_ORDINALS 
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_ALTERNATE_WIDTH 
DWRITE_FONT_FEATURE_TAG_PETITE_CAPITALS 
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_FIGURES 
DWRITE_FONT_FEATURE_TAG_PROPORTIONAL_WIDTHS 
DWRITE_FONT_FEATURE_TAG_QUARTER_WIDTHS 
DWRITE_FONT_FEATURE_TAG_REQUIRED_LIGATURES 
DWRITE_FONT_FEATURE_TAG_RUBY_NOTATION_FORMS 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_ALTERNATES 
DWRITE_FONT_FEATURE_TAG_SCIENTIFIC_INFERIORS 
DWRITE_FONT_FEATURE_TAG_SMALL_CAPITALS 
DWRITE_FONT_FEATURE_TAG_SIMPLIFIED_FORMS 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_1 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_2 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_3 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_4 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_5 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_6 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_7 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_8 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_9 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_10 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_11 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_12 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_13 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_14 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_15 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_16 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_17 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_18 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_19 
DWRITE_FONT_FEATURE_TAG_STYLISTIC_SET_20 
DWRITE_FONT_FEATURE_TAG_SUBSCRIPT 
DWRITE_FONT_FEATURE_TAG_SUPERSCRIPT 
DWRITE_FONT_FEATURE_TAG_SWASH 
DWRITE_FONT_FEATURE_TAG_TITLING 
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_NAME_FORMS 
DWRITE_FONT_FEATURE_TAG_TABULAR_FIGURES 
DWRITE_FONT_FEATURE_TAG_TRADITIONAL_FORMS 
DWRITE_FONT_FEATURE_TAG_THIRD_WIDTHS 
DWRITE_FONT_FEATURE_TAG_UNICASE 
DWRITE_FONT_FEATURE_TAG_VERTICAL_WRITING 
DWRITE_FONT_FEATURE_TAG_VERTICAL_ALTERNATES_AND_ROTATION 
DWRITE_FONT_FEATURE_TAG_SLASHED_ZERO 

◆ DWRITE_FONT_FILE_TYPE

The type of a font represented by a single font file. Font formats that consist of multiple files, e.g. Type 1 .PFM and .PFB, have separate enum values for each of the file type.

Enumerator
DWRITE_FONT_FILE_TYPE_UNKNOWN 

Font type is not recognized by the DirectWrite font system.

DWRITE_FONT_FILE_TYPE_CFF 

OpenType font with CFF outlines.

DWRITE_FONT_FILE_TYPE_TRUETYPE 

OpenType font with TrueType outlines.

DWRITE_FONT_FILE_TYPE_OPENTYPE_COLLECTION 

OpenType font that contains a TrueType collection.

DWRITE_FONT_FILE_TYPE_TYPE1_PFM 

Type 1 PFM font.

DWRITE_FONT_FILE_TYPE_TYPE1_PFB 

Type 1 PFB font.

DWRITE_FONT_FILE_TYPE_VECTOR 

Vector .FON font.

DWRITE_FONT_FILE_TYPE_BITMAP 

Bitmap .FON font.

DWRITE_FONT_FILE_TYPE_TRUETYPE_COLLECTION 

◆ DWRITE_FONT_SIMULATIONS

Specifies algorithmic style simulations to be applied to the font face. Bold and oblique simulations can be combined via bitwise OR operation.

Enumerator
DWRITE_FONT_SIMULATIONS_NONE 

No simulations are performed.

DWRITE_FONT_SIMULATIONS_BOLD 

Algorithmic emboldening is performed.

DWRITE_FONT_SIMULATIONS_OBLIQUE 

Algorithmic italicization is performed.

◆ DWRITE_FONT_STRETCH

The font stretch enumeration describes relative change from the normal aspect ratio as specified by a font designer for the glyphs in a font. Values less than 1 or greater than 9 are considered to be invalid, and they are rejected by font API functions.

Enumerator
DWRITE_FONT_STRETCH_UNDEFINED 

Predefined font stretch : Not known (0).

DWRITE_FONT_STRETCH_ULTRA_CONDENSED 

Predefined font stretch : Ultra-condensed (1).

DWRITE_FONT_STRETCH_EXTRA_CONDENSED 

Predefined font stretch : Extra-condensed (2).

DWRITE_FONT_STRETCH_CONDENSED 

Predefined font stretch : Condensed (3).

DWRITE_FONT_STRETCH_SEMI_CONDENSED 

Predefined font stretch : Semi-condensed (4).

DWRITE_FONT_STRETCH_NORMAL 

Predefined font stretch : Normal (5).

DWRITE_FONT_STRETCH_MEDIUM 

Predefined font stretch : Medium (5).

DWRITE_FONT_STRETCH_SEMI_EXPANDED 

Predefined font stretch : Semi-expanded (6).

DWRITE_FONT_STRETCH_EXPANDED 

Predefined font stretch : Expanded (7).

DWRITE_FONT_STRETCH_EXTRA_EXPANDED 

Predefined font stretch : Extra-expanded (8).

DWRITE_FONT_STRETCH_ULTRA_EXPANDED 

Predefined font stretch : Ultra-expanded (9).

◆ DWRITE_FONT_STYLE

The font style enumeration describes the slope style of a font face, such as Normal, Italic or Oblique. Values other than the ones defined in the enumeration are considered to be invalid, and they are rejected by font API functions.

Enumerator
DWRITE_FONT_STYLE_NORMAL 

Font slope style : Normal.

DWRITE_FONT_STYLE_OBLIQUE 

Font slope style : Oblique.

DWRITE_FONT_STYLE_ITALIC 

Font slope style : Italic.

◆ DWRITE_FONT_WEIGHT

The font weight enumeration describes common values for degree of blackness or thickness of strokes of characters in a font. Font weight values less than 1 or greater than 999 are considered to be invalid, and they are rejected by font API functions.

Enumerator
DWRITE_FONT_WEIGHT_THIN 

Predefined font weight : Thin (100).

DWRITE_FONT_WEIGHT_EXTRA_LIGHT 

Predefined font weight : Extra-light (200).

DWRITE_FONT_WEIGHT_ULTRA_LIGHT 

Predefined font weight : Ultra-light (200).

DWRITE_FONT_WEIGHT_LIGHT 

Predefined font weight : Light (300).

DWRITE_FONT_WEIGHT_SEMI_LIGHT 

Predefined font weight : Semi-light (350).

DWRITE_FONT_WEIGHT_NORMAL 

Predefined font weight : Normal (400).

DWRITE_FONT_WEIGHT_REGULAR 

Predefined font weight : Regular (400).

DWRITE_FONT_WEIGHT_MEDIUM 

Predefined font weight : Medium (500).

DWRITE_FONT_WEIGHT_DEMI_BOLD 

Predefined font weight : Demi-bold (600).

DWRITE_FONT_WEIGHT_SEMI_BOLD 

Predefined font weight : Semi-bold (600).

DWRITE_FONT_WEIGHT_BOLD 

Predefined font weight : Bold (700).

DWRITE_FONT_WEIGHT_EXTRA_BOLD 

Predefined font weight : Extra-bold (800).

DWRITE_FONT_WEIGHT_ULTRA_BOLD 

Predefined font weight : Ultra-bold (800).

DWRITE_FONT_WEIGHT_BLACK 

Predefined font weight : Black (900).

DWRITE_FONT_WEIGHT_HEAVY 

Predefined font weight : Heavy (900).

DWRITE_FONT_WEIGHT_EXTRA_BLACK 

Predefined font weight : Extra-black (950).

DWRITE_FONT_WEIGHT_ULTRA_BLACK 

Predefined font weight : Ultra-black (950).

◆ DWRITE_INFORMATIONAL_STRING_ID

The informational string enumeration identifies a string in a font.

Enumerator
DWRITE_INFORMATIONAL_STRING_NONE 

Unspecified name ID.

DWRITE_INFORMATIONAL_STRING_COPYRIGHT_NOTICE 

Copyright notice provided by the font.

DWRITE_INFORMATIONAL_STRING_VERSION_STRINGS 

String containing a version number.

DWRITE_INFORMATIONAL_STRING_TRADEMARK 

Trademark information provided by the font.

DWRITE_INFORMATIONAL_STRING_MANUFACTURER 

Name of the font manufacturer.

DWRITE_INFORMATIONAL_STRING_DESIGNER 

Name of the font designer.

DWRITE_INFORMATIONAL_STRING_DESIGNER_URL 

URL of font designer (with protocol, e.g., http://, ftp://).

DWRITE_INFORMATIONAL_STRING_DESCRIPTION 

Description of the font. Can contain revision information, usage recommendations, history, features, etc.

DWRITE_INFORMATIONAL_STRING_FONT_VENDOR_URL 

URL of 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.

DWRITE_INFORMATIONAL_STRING_LICENSE_DESCRIPTION 

Description of how the font may be legally used, or different example scenarios for licensed use. This field should be written in plain language, not legalese.

DWRITE_INFORMATIONAL_STRING_LICENSE_INFO_URL 

URL where additional licensing information can be found.

DWRITE_INFORMATIONAL_STRING_WIN32_FAMILY_NAMES 

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 (e.g., "Arial", "Arial Narrow", "Arial Black").

DWRITE_INFORMATIONAL_STRING_WIN32_SUBFAMILY_NAMES 

GDI-compatible subfamily name.

DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_FAMILY_NAMES 

Typographic 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.

DWRITE_INFORMATIONAL_STRING_TYPOGRAPHIC_SUBFAMILY_NAMES 

Typographic subfamily name preferred by the designer. This name is typically only present if it differs from the GDI-compatible subfamily name.

DWRITE_INFORMATIONAL_STRING_SAMPLE_TEXT 

Sample text. This can be the font name or any other text that the designer thinks is the best example to display the font in.

DWRITE_INFORMATIONAL_STRING_FULL_NAME 

The full name of the font, e.g. "Arial Bold", from name id 4 in the name table.

DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME 

The postscript name of the font, e.g. "GillSans-Bold" from name id 6 in the name table.

DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_CID_NAME 

The postscript CID findfont name, from name id 20 in the name table.

DWRITE_INFORMATIONAL_STRING_WEIGHT_STRETCH_STYLE_FAMILY_NAME 

Family name for the weight-stretch-style model.

DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG 

Script/language tag to identify the scripts or languages that the font was primarily designed to support. See DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG for a longer description.

DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG 

Script/language tag to identify the scripts or languages that the font declares it is able to support.

DWRITE_INFORMATIONAL_STRING_PREFERRED_FAMILY_NAMES 
DWRITE_INFORMATIONAL_STRING_PREFERRED_SUBFAMILY_NAMES 
DWRITE_INFORMATIONAL_STRING_WWS_FAMILY_NAME 

◆ DWRITE_LINE_SPACING_METHOD

The method used for line spacing in layout.

Enumerator
DWRITE_LINE_SPACING_METHOD_DEFAULT 

Line spacing depends solely on the content, growing to accommodate the size of fonts and inline objects.

DWRITE_LINE_SPACING_METHOD_UNIFORM 

Lines are explicitly set to uniform spacing, regardless of contained font sizes. This can be useful to avoid the uneven appearance that can occur from font fallback.

DWRITE_LINE_SPACING_METHOD_PROPORTIONAL 

Line spacing and baseline distances are proportional to the computed values based on the content, the size of the fonts and inline objects.

◆ DWRITE_NUMBER_SUBSTITUTION_METHOD

How to apply number substitution on digits and related punctuation.

Enumerator
DWRITE_NUMBER_SUBSTITUTION_METHOD_FROM_CULTURE 

Specifies that the substitution method should be determined based on LOCALE_IDIGITSUBSTITUTION value of the specified text culture.

DWRITE_NUMBER_SUBSTITUTION_METHOD_CONTEXTUAL 

If the culture is Arabic or Farsi, specifies that the number shape depend on the context. Either traditional or nominal number shape are used depending on the nearest preceding strong character or (if there is none) the reading direction of the paragraph.

DWRITE_NUMBER_SUBSTITUTION_METHOD_NONE 

Specifies that code points 0x30-0x39 are always rendered as nominal numeral shapes (ones of the European number), i.e., no substitution is performed.

DWRITE_NUMBER_SUBSTITUTION_METHOD_NATIONAL 

Specifies that number are rendered using the national number shape as specified by the LOCALE_SNATIVEDIGITS value of the specified text culture.

DWRITE_NUMBER_SUBSTITUTION_METHOD_TRADITIONAL 

Specifies that number are rendered using the traditional shape for the specified culture. For most cultures, this is the same as NativeNational. However, NativeNational results in Latin number for some Arabic cultures, whereas this value results in Arabic number for all Arabic cultures.

◆ DWRITE_PARAGRAPH_ALIGNMENT

Alignment of paragraph text along the flow direction axis relative to the flow's beginning and ending edge of the layout box.

Enumerator
DWRITE_PARAGRAPH_ALIGNMENT_NEAR 

The first line of paragraph is aligned to the flow's beginning edge of the layout box.

DWRITE_PARAGRAPH_ALIGNMENT_FAR 

The last line of paragraph is aligned to the flow's ending edge of the layout box.

DWRITE_PARAGRAPH_ALIGNMENT_CENTER 

The center of the paragraph is aligned to the center of the flow of the layout box.

◆ DWRITE_PIXEL_GEOMETRY

Font file loader interface handles loading font file resources of a particular type from a key. The font file loader interface is recommended to be implemented by a singleton object. IMPORTANT: font file loader implementations must not register themselves with DirectWrite factory inside their constructors and must not unregister themselves in their destructors, because registration and unregistration operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed outside of the font file loader implementation as a separate step.

A built-in implementation of IDWriteFontFileLoader interface that operates on local font files and exposes local font file information from the font file reference key. Font file references created using CreateFontFileReference use this font file loader.

The interface for loading font file data.

The interface that represents a reference to a font file.

Represents the internal structure of a device pixel (i.e., the physical arrangement of red, green, and blue color components) that is assumed for purposes of rendering text.

Enumerator
DWRITE_PIXEL_GEOMETRY_FLAT 

The red, green, and blue color components of each pixel are assumed to occupy the same point.

DWRITE_PIXEL_GEOMETRY_RGB 

Each pixel comprises 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.

DWRITE_PIXEL_GEOMETRY_BGR 

Each pixel comprises three vertical stripes, with blue on the left, green in the center, and red on the right.

◆ DWRITE_READING_DIRECTION

The IDWriteFontCollection encapsulates a collection of font families.

The IDWriteFontList interface represents an ordered set of fonts that are part of an IDWriteFontCollection.

The IDWriteFontFamily interface represents a set of fonts that share the same design but are differentiated by weight, stretch, and style.

The IDWriteFont interface represents a physical font in a font collection.

Direction for how reading progresses.

Enumerator
DWRITE_READING_DIRECTION_LEFT_TO_RIGHT 

Reading progresses from left to right.

DWRITE_READING_DIRECTION_RIGHT_TO_LEFT 

Reading progresses from right to left.

DWRITE_READING_DIRECTION_TOP_TO_BOTTOM 

Reading progresses from top to bottom.

DWRITE_READING_DIRECTION_BOTTOM_TO_TOP 

Reading progresses from bottom to top.

◆ DWRITE_RENDERING_MODE

Represents a method of rendering glyphs.

Enumerator
DWRITE_RENDERING_MODE_DEFAULT 

Specifies that the rendering mode is determined automatically based on the font and size.

DWRITE_RENDERING_MODE_ALIASED 

Specifies that no antialiasing is performed. Each pixel is either set to the foreground color of the text or retains the color of the background.

DWRITE_RENDERING_MODE_GDI_CLASSIC 

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.

DWRITE_RENDERING_MODE_GDI_NATURAL 

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.

DWRITE_RENDERING_MODE_NATURAL 

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.

DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC 

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.

DWRITE_RENDERING_MODE_OUTLINE 

Specifies that rendering should bypass the rasterizer and use the outlines directly. This is typically used at very large sizes.

DWRITE_RENDERING_MODE_CLEARTYPE_GDI_CLASSIC 
DWRITE_RENDERING_MODE_CLEARTYPE_GDI_NATURAL 
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL 
DWRITE_RENDERING_MODE_CLEARTYPE_NATURAL_SYMMETRIC 

◆ DWRITE_SCRIPT_SHAPES

The format of text used for text layout.

This object may not be thread-safe and it may carry the state of text format change.

Font typography setting.

Enumerator
DWRITE_SCRIPT_SHAPES_DEFAULT 

No additional shaping requirement. Text is shaped with the writing system default behavior.

DWRITE_SCRIPT_SHAPES_NO_VISUAL 

Text should leave no visual on display i.e. control or format control characters.

◆ DWRITE_TEXT_ALIGNMENT

Alignment of paragraph text along the reading direction axis relative to the leading and trailing edge of the layout box.

Enumerator
DWRITE_TEXT_ALIGNMENT_LEADING 

The leading edge of the paragraph text is aligned to the layout box's leading edge.

DWRITE_TEXT_ALIGNMENT_TRAILING 

The trailing edge of the paragraph text is aligned to the layout box's trailing edge.

DWRITE_TEXT_ALIGNMENT_CENTER 

The center of the paragraph text is aligned to the center of the layout box.

DWRITE_TEXT_ALIGNMENT_JUSTIFIED 

Align text to the leading side, and also justify text to fill the lines.

◆ DWRITE_TEXTURE_TYPE

The IDWriteInlineObject interface wraps an application defined inline graphic, allowing DWrite to query metrics as if it was a glyph inline with the text.

The IDWritePixelSnapping interface defines the pixel snapping properties of a text renderer.

The IDWriteTextRenderer interface represents a set of application-defined callbacks that perform rendering of text, inline objects, and decorations such as underlines.

The IDWriteTextLayout interface represents a block of text after it has been fully analyzed and formatted.

All coordinates are in device independent pixels (DIPs).

Encapsulates a 32-bit device independent bitmap and device context, which can be used for rendering glyphs.

The GDI interop interface provides interoperability with GDI.

The DWRITE_TEXTURE_TYPE enumeration identifies a type of alpha texture. An alpha texture is a bitmap of alpha values, each representing the darkness (i.e., opacity) of a pixel or subpixel.

Enumerator
DWRITE_TEXTURE_ALIASED_1x1 

Specifies an alpha texture for aliased text rendering (i.e., bi-level, where each pixel is either fully opaque or fully transparent), with one byte per pixel.

DWRITE_TEXTURE_CLEARTYPE_3x1 

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.

◆ DWRITE_TRIMMING_GRANULARITY

Text granularity used to trim text overflowing the layout box.

Enumerator
DWRITE_TRIMMING_GRANULARITY_NONE 

No trimming occurs. Text flows beyond the layout width.

DWRITE_TRIMMING_GRANULARITY_CHARACTER 

Trimming occurs at character cluster boundary.

DWRITE_TRIMMING_GRANULARITY_WORD 

Trimming occurs at word boundary.

◆ DWRITE_WORD_WRAPPING

Word wrapping in multiline paragraph.

Enumerator
DWRITE_WORD_WRAPPING_WRAP 

Words are broken across lines to avoid text overflowing the layout box.

DWRITE_WORD_WRAPPING_NO_WRAP 

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.

DWRITE_WORD_WRAPPING_EMERGENCY_BREAK 

Words are broken across lines to avoid text overflowing the layout box. Emergency wrapping occurs if the word is larger than the maximum width.

DWRITE_WORD_WRAPPING_WHOLE_WORD 

Only wrap whole words, never breaking words (emergency wrapping) when the layout width is too small for even a single word.

DWRITE_WORD_WRAPPING_CHARACTER 

Wrap between any valid characters clusters.

Function Documentation

◆ DWriteCreateFactory()

interface DWRITE_DECLARE_INTERFACE ("7d97dbf7-e085-42d4-81e3-6a883bded118") IDWriteGlyphRunAnalysis interface DWRITE_DECLARE_INTERFACE ("b859ee5a-d838-4b5b-a2e8-1adc7d93db48") IDWriteFactory EXTERN_C HRESULT DWRITE_EXPORT DWriteCreateFactory ( _In_ DWRITE_FACTORY_TYPE  factoryType,
_In_ REFIID  iid,
_COM_Outptr_ IUnknown **  factory 
)

Interface that encapsulates information used to render a glyph run.

The root factory interface for all DWrite objects.

Creates a DirectWrite factory object that is used for subsequent creation of individual DirectWrite objects.

Parameters
factoryTypeIdentifies whether the factory object will be shared or isolated.
iidIdentifies the DirectWrite factory interface, such as __uuidof(IDWriteFactory).
factoryReceives the DirectWrite factory object.
Returns
Standard HRESULT error code.

Obtains DirectWrite factory object that is used for subsequent creation of individual DirectWrite classes. DirectWrite factory contains internal state such as font loader registration and cached font data. In most cases it is recommended to use the shared factory object, because it allows multiple components that use DirectWrite to share internal DirectWrite state and reduce memory usage. However, there are cases when it is desirable to reduce the impact of a component, such as a plug-in from an untrusted source, on the rest of the process by sandboxing and isolating it from the rest of the process components. In such cases, it is recommended to use an isolated factory for the sandboxed component.

Variable Documentation

◆ ID2D1SimplifiedGeometrySink

interface DWRITE_DECLARE_INTERFACE ("2f0da53a-2add-47cd-82ee-d9ec34688e75") IDWriteRenderingParams interface ID2D1SimplifiedGeometrySink

The interface that represents text rendering settings for glyph rasterization and filtering.

◆ IDWriteFactory

interface DWRITE_DECLARE_INTERFACE ("5f49804d-7024-4d43-bfa9-d25984f53849") IDWriteFontFace interface IDWriteFactory

This interface exposes various font data such as metrics, names, and glyph outlines. It contains font face type, appropriate file references and face identification data.

◆ IDWriteFontFamily

interface DWRITE_DECLARE_INTERFACE ("cca920e4-52f0-492b-bfa8-29c72ee0a468") IDWriteFontCollectionLoader interface DWRITE_DECLARE_INTERFACE ("72755049-5ff7-435d-8348-4be97cfa6c7c") IDWriteFontFileEnumerator interface DWRITE_DECLARE_INTERFACE ("08256209-099a-4b34-b86d-c22b110e7771") IDWriteLocalizedStrings interface IDWriteFontFamily

The font collection loader interface is used to construct a collection of fonts given a particular type of key. The font collection loader interface is recommended to be implemented by a singleton object. IMPORTANT: font collection loader implementations must not register themselves with a DirectWrite factory inside their constructors and must not unregister themselves in their destructors, because registration and unregistration operations increment and decrement the object reference count respectively. Instead, registration and unregistration of font file loaders with DirectWrite factory should be performed outside of the font file loader implementation as a separate step.

The font file enumerator interface encapsulates a collection of font files. The font system uses this interface to enumerate font files when building a font collection.

Represents a collection of strings indexed by locale name.