summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/dwrite_3.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/dwrite_3.rs')
-rw-r--r--vendor/winapi/src/um/dwrite_3.rs578
1 files changed, 578 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/dwrite_3.rs b/vendor/winapi/src/um/dwrite_3.rs
new file mode 100644
index 0000000..f6645c3
--- /dev/null
+++ b/vendor/winapi/src/um/dwrite_3.rs
@@ -0,0 +1,578 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! Mappings for the content of dwrite_3.h
+use ctypes::c_void;
+use shared::basetsd::{UINT16, UINT32, UINT64};
+use shared::minwindef::{BOOL, FILETIME, FLOAT};
+use um::dcommon::{DWRITE_GLYPH_IMAGE_DATA, DWRITE_GLYPH_IMAGE_FORMATS, DWRITE_MEASURING_MODE};
+use um::dwrite::{
+ DWRITE_FONT_SIMULATIONS, DWRITE_FONT_STRETCH, DWRITE_FONT_STYLE, DWRITE_FONT_WEIGHT,
+ DWRITE_GLYPH_RUN, DWRITE_INFORMATIONAL_STRING_ID, DWRITE_LINE_SPACING_METHOD, DWRITE_MATRIX,
+ DWRITE_PIXEL_GEOMETRY, DWRITE_RENDERING_MODE_ALIASED, DWRITE_RENDERING_MODE_DEFAULT,
+ DWRITE_RENDERING_MODE_GDI_CLASSIC, DWRITE_RENDERING_MODE_GDI_NATURAL,
+ DWRITE_RENDERING_MODE_NATURAL, DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
+ DWRITE_RENDERING_MODE_OUTLINE, IDWriteFont, IDWriteFontCollection, IDWriteFontCollectionVtbl,
+ IDWriteFontFace, IDWriteFontFamily, IDWriteFontFamilyVtbl, IDWriteFontFile, IDWriteFontList,
+ IDWriteFontListVtbl, IDWriteGdiInterop, IDWriteGdiInteropVtbl, IDWriteGlyphRunAnalysis,
+ IDWriteLocalizedStrings, IDWriteRenderingParams,
+};
+use um::dwrite_1::{DWRITE_OUTLINE_THRESHOLD, DWRITE_PANOSE, DWRITE_TEXT_ANTIALIAS_MODE};
+use um::dwrite_2::{
+ DWRITE_GRID_FIT_MODE, IDWriteFactory2, IDWriteFactory2Vtbl, IDWriteFont2, IDWriteFont2Vtbl,
+ IDWriteFontFace2, IDWriteFontFace2Vtbl, IDWriteRenderingParams2, IDWriteRenderingParams2Vtbl,
+ IDWriteTextFormat1, IDWriteTextFormat1Vtbl, IDWriteTextLayout2, IDWriteTextLayout2Vtbl,
+};
+use um::unknwnbase::{IUnknown, IUnknownVtbl};
+use um::wingdi::{FONTSIGNATURE, LOGFONTW};
+use um::winnt::{HRESULT, WCHAR};
+pub const DWRITE_E_REMOTEFONT: HRESULT = 0x8898500D;
+pub const DWRITE_E_DOWNLOADCANCELLED: HRESULT = 0x8898500E;
+pub const DWRITE_E_DOWNLOADFAILED: HRESULT = 0x8898500F;
+pub const DWRITE_E_TOOMANYDOWNLOADS: HRESULT = 0x88985010;
+ENUM!{enum DWRITE_FONT_PROPERTY_ID {
+ DWRITE_FONT_PROPERTY_ID_NONE,
+ DWRITE_FONT_PROPERTY_ID_FAMILY_NAME,
+ DWRITE_FONT_PROPERTY_ID_PREFERRED_FAMILY_NAME,
+ DWRITE_FONT_PROPERTY_ID_FACE_NAME,
+ DWRITE_FONT_PROPERTY_ID_FULL_NAME,
+ DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME,
+ DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME,
+ DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG,
+ DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG,
+ DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG,
+ DWRITE_FONT_PROPERTY_ID_WEIGHT ,
+ DWRITE_FONT_PROPERTY_ID_STRETCH,
+ DWRITE_FONT_PROPERTY_ID_STYLE,
+ DWRITE_FONT_PROPERTY_ID_TOTAL,
+}}
+STRUCT!{struct DWRITE_FONT_PROPERTY {
+ propertyId: DWRITE_FONT_PROPERTY_ID,
+ propertyValue: *const WCHAR,
+ localeName: *const WCHAR,
+}}
+ENUM!{enum DWRITE_LOCALITY {
+ DWRITE_LOCALITY_REMOTE,
+ DWRITE_LOCALITY_PARTIAL,
+ DWRITE_LOCALITY_LOCAL,
+}}
+ENUM!{enum DWRITE_RENDERING_MODE1 {
+ DWRITE_RENDERING_MODE1_DEFAULT = DWRITE_RENDERING_MODE_DEFAULT,
+ DWRITE_RENDERING_MODE1_ALIASED = DWRITE_RENDERING_MODE_ALIASED,
+ DWRITE_RENDERING_MODE1_GDI_CLASSIC = DWRITE_RENDERING_MODE_GDI_CLASSIC,
+ DWRITE_RENDERING_MODE1_GDI_NATURAL = DWRITE_RENDERING_MODE_GDI_NATURAL,
+ DWRITE_RENDERING_MODE1_NATURAL = DWRITE_RENDERING_MODE_NATURAL,
+ DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC = DWRITE_RENDERING_MODE_NATURAL_SYMMETRIC,
+ DWRITE_RENDERING_MODE1_OUTLINE = DWRITE_RENDERING_MODE_OUTLINE,
+ DWRITE_RENDERING_MODE1_NATURAL_SYMMETRIC_DOWNSAMPLED,
+}}
+RIDL!{#[uuid(0xb7924baa, 0x391b, 0x412a, 0x8c, 0x5c, 0xe4, 0x4c, 0xc2, 0xd8, 0x67, 0xdc)]
+interface IDWriteRenderingParams3(IDWriteRenderingParams3Vtbl):
+ IDWriteRenderingParams2(IDWriteRenderingParams2Vtbl) {
+ fn GetRenderingMode1() -> DWRITE_RENDERING_MODE1,
+}}
+RIDL!{#[uuid(0x9a1b41c3, 0xd3bb, 0x466a, 0x87, 0xfc, 0xfe, 0x67, 0x55, 0x6a, 0x3b, 0x65)]
+interface IDWriteFactory3(IDWriteFactory3Vtbl): IDWriteFactory2(IDWriteFactory2Vtbl) {
+ fn CreateGlyphRunAnalysis(
+ glyphRun: *const DWRITE_GLYPH_RUN,
+ transform: *const DWRITE_MATRIX,
+ renderingMode: DWRITE_RENDERING_MODE1,
+ measuringMode: DWRITE_MEASURING_MODE,
+ gridFitMode: DWRITE_GRID_FIT_MODE,
+ antialiasMode: DWRITE_TEXT_ANTIALIAS_MODE,
+ baselineOriginX: FLOAT,
+ baselineOriginY: FLOAT,
+ glyphRunAnalysis: *mut *mut IDWriteGlyphRunAnalysis,
+ ) -> HRESULT,
+ fn CreateCustomRenderingParams(
+ gamma: FLOAT,
+ enhancedContrast: FLOAT,
+ grayscaleEnhancedContrast: FLOAT,
+ clearTypeLevel: FLOAT,
+ pixelGeometry: DWRITE_PIXEL_GEOMETRY,
+ renderingMode: DWRITE_RENDERING_MODE1,
+ gridFitMode: DWRITE_GRID_FIT_MODE,
+ renderingParams: *mut *mut IDWriteRenderingParams3,
+ ) -> HRESULT,
+ fn CreateFontFaceReference_2(
+ fontFile: *mut IDWriteFontFile,
+ faceIndex: UINT32,
+ fontSimulations: DWRITE_FONT_SIMULATIONS,
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn CreateFontFaceReference_1(
+ filePath: *const WCHAR,
+ lastWriteTime: *const FILETIME,
+ faceIndex: UINT32,
+ fontSimulations: DWRITE_FONT_SIMULATIONS,
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn GetSystemFontSet(
+ fontSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+ fn CreateFontSetBuilder(
+ fontSetBuilder: *mut *mut IDWriteFontSetBuilder,
+ ) -> HRESULT,
+ fn CreateFontCollectionFromFontSet(
+ fontSet: *mut IDWriteFontSet,
+ fontCollection: *mut *mut IDWriteFontCollection1,
+ ) -> HRESULT,
+ fn GetSystemFontCollection(
+ includeDownloadableFonts: BOOL,
+ fontCollection: *mut *mut IDWriteFontCollection1,
+ checkForUpdates: BOOL,
+ ) -> HRESULT,
+ fn GetFontDownloadQueue(
+ fontDownloadQueue: *mut *mut IDWriteFontDownloadQueue,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6b)]
+interface IDWriteFontSet(IDWriteFontSetVtbl): IUnknown(IUnknownVtbl) {
+ fn GetFontCount() -> UINT32,
+ fn GetFontFaceReference(
+ listIndex: UINT32,
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn FindFontFaceReference(
+ fontFaceReference: *mut IDWriteFontFaceReference,
+ listIndex: *mut UINT32,
+ exists: *mut BOOL,
+ ) -> HRESULT,
+ fn FindFontFace(
+ fontFace: *mut IDWriteFontFace,
+ listIndex: *mut UINT32,
+ exists: *mut BOOL,
+ ) -> HRESULT,
+ fn GetPropertyValues_3(
+ propertyID: DWRITE_FONT_PROPERTY_ID,
+ values: *mut *mut IDWriteStringList,
+ ) -> HRESULT,
+ fn GetPropertyValues_2(
+ propertyID: DWRITE_FONT_PROPERTY_ID,
+ preferredLocaleNames: *const WCHAR,
+ values: *mut *mut IDWriteStringList,
+ ) -> HRESULT,
+ fn GetPropertyValues_1(
+ listIndex: UINT32,
+ propertyId: DWRITE_FONT_PROPERTY_ID,
+ exists: *mut BOOL,
+ values: *mut *mut IDWriteLocalizedStrings,
+ ) -> HRESULT,
+ fn GetPropertyOccurrenceCount(
+ property: *const DWRITE_FONT_PROPERTY,
+ propertyOccurrenceCount: *mut UINT32,
+ ) -> HRESULT,
+ fn GetMatchingFonts_2(
+ familyName: *const WCHAR,
+ fontWeight: DWRITE_FONT_WEIGHT,
+ fontStretch: DWRITE_FONT_STRETCH,
+ fontStyle: DWRITE_FONT_STYLE,
+ filteredSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+ fn GetMatchingFonts_1(
+ properties: *const DWRITE_FONT_PROPERTY,
+ propertyCount: UINT32,
+ filteredSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x2f642afe, 0x9c68, 0x4f40, 0xb8, 0xbe, 0x45, 0x74, 0x01, 0xaf, 0xcb, 0x3d)]
+interface IDWriteFontSetBuilder(IDWriteFontSetBuilderVtbl): IUnknown(IUnknownVtbl) {
+ fn AddFontFaceReference_2(
+ fontFaceReference: *mut IDWriteFontFaceReference,
+ properties: *const DWRITE_FONT_PROPERTY,
+ propertyCount: UINT32,
+ ) -> HRESULT,
+ fn AddFontFaceReference_1(
+ fontFaceReference: *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn AddFontSet(
+ fontSet: *mut IDWriteFontSet,
+ ) -> HRESULT,
+ fn CreateFontSet(
+ fontSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x53585141, 0xd9f8, 0x4095, 0x83, 0x21, 0xd7, 0x3c, 0xf6, 0xbd, 0x11, 0x6c)]
+interface IDWriteFontCollection1(IDWriteFontCollection1Vtbl):
+ IDWriteFontCollection(IDWriteFontCollectionVtbl) {
+ fn GetFontSet(
+ fontSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+ fn GetFontFamily(
+ index: UINT32,
+ fontFamily: *mut *mut IDWriteFontFamily1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xdf)]
+interface IDWriteFontFamily1(IDWriteFontFamily1Vtbl):
+ IDWriteFontFamily(IDWriteFontFamilyVtbl) {
+ fn GetFontLocality(
+ listIndex: UINT32,
+ ) -> DWRITE_LOCALITY,
+ fn GetFont(
+ listIndex: UINT32,
+ font: *mut *mut IDWriteFont3,
+ ) -> HRESULT,
+ fn GetFontFaceReference(
+ listIndex: UINT32,
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xda20d8ef, 0x812a, 0x4c43, 0x98, 0x02, 0x62, 0xec, 0x4a, 0xbd, 0x7a, 0xde)]
+interface IDWriteFontList1(IDWriteFontList1Vtbl): IDWriteFontList(IDWriteFontListVtbl) {
+ fn GetFontLocality(
+ listIndex: UINT32,
+ ) -> DWRITE_LOCALITY,
+ fn GetFont(
+ listIndex: UINT32,
+ font: *mut *mut IDWriteFont3,
+ ) -> HRESULT,
+ fn GetFontFaceReference(
+ listIndex: UINT32,
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x5e7fa7ca, 0xdde3, 0x424c, 0x89, 0xf0, 0x9f, 0xcd, 0x6f, 0xed, 0x58, 0xcd)]
+interface IDWriteFontFaceReference(IDWriteFontFaceReferenceVtbl):
+ IUnknown(IUnknownVtbl) {
+ fn CreateFontFace(
+ fontFace: *mut *mut IDWriteFontFace3,
+ ) -> HRESULT,
+ fn CreateFontFaceWithSimulations(
+ fontFaceSimulationFlags: DWRITE_FONT_SIMULATIONS,
+ fontFace: *mut *mut IDWriteFontFace3,
+ ) -> HRESULT,
+ fn Equals(
+ fontFaceReference: *mut IDWriteFontFaceReference,
+ ) -> BOOL,
+ fn GetFontFaceIndex() -> UINT32,
+ fn GetSimulations() -> DWRITE_FONT_SIMULATIONS,
+ fn GetFontFile(
+ fontFile: *mut *mut IDWriteFontFile,
+ ) -> HRESULT,
+ fn GetLocalFileSize() -> UINT64,
+ fn GetFileSize() -> UINT64,
+ fn GetFileTime(
+ lastWriteTime: *mut FILETIME,
+ ) -> HRESULT,
+ fn GetLocality() -> DWRITE_LOCALITY,
+ fn EnqueueFontDownloadRequest() -> HRESULT,
+ fn EnqueueCharacterDownloadRequest(
+ characters: *const WCHAR,
+ characterCount: UINT32,
+ ) -> HRESULT,
+ fn EnqueueGlyphDownloadRequest(
+ glyphIndices: *const UINT16,
+ glyphCount: UINT32,
+ ) -> HRESULT,
+ fn EnqueueFileFragmentDownloadRequest(
+ fileOffset: UINT64,
+ fragmentSize: UINT64,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x29748ed6, 0x8c9c, 0x4a6a, 0xbe, 0x0b, 0xd9, 0x12, 0xe8, 0x53, 0x89, 0x44)]
+interface IDWriteFont3(IDWriteFont3Vtbl): IDWriteFont2(IDWriteFont2Vtbl) {
+ fn CreateFontFace(
+ fontFace: *mut *mut IDWriteFontFace3,
+ ) -> HRESULT,
+ fn Equals(
+ font: *mut IDWriteFont,
+ ) -> BOOL,
+ fn GetFontFaceReference(
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn HasCharacter(
+ unicodeValue: UINT32,
+ ) -> BOOL,
+ fn GetLocality() -> DWRITE_LOCALITY,
+}}
+RIDL!{#[uuid(0xd37d7598, 0x09be, 0x4222, 0xa2, 0x36, 0x20, 0x81, 0x34, 0x1c, 0xc1, 0xf2)]
+interface IDWriteFontFace3(IDWriteFontFace3Vtbl):
+ IDWriteFontFace2(IDWriteFontFace2Vtbl) {
+ fn GetFontFaceReference(
+ fontFaceReference: *mut *mut IDWriteFontFaceReference,
+ ) -> HRESULT,
+ fn GetPanose(
+ panose: *mut DWRITE_PANOSE,
+ ) -> (),
+ fn GetWeight() -> DWRITE_FONT_WEIGHT,
+ fn GetStretch() -> DWRITE_FONT_STRETCH,
+ fn GetStyle() -> DWRITE_FONT_STYLE,
+ fn GetFamilyNames(
+ names: *mut *mut IDWriteLocalizedStrings,
+ ) -> HRESULT,
+ fn GetFaceNames(
+ names: *mut *mut IDWriteLocalizedStrings,
+ ) -> HRESULT,
+ fn GetInformationalStrings(
+ informationalStringID: DWRITE_INFORMATIONAL_STRING_ID,
+ informationalStrings: *mut *mut IDWriteLocalizedStrings,
+ exists: *mut BOOL,
+ ) -> HRESULT,
+ fn HasCharacter(
+ unicodeValue: UINT32,
+ ) -> BOOL,
+ fn GetRecommendedRenderingMode(
+ fontEmSize: FLOAT,
+ dpiX: FLOAT,
+ dpiY: FLOAT,
+ transform: *const DWRITE_MATRIX,
+ isSideways: BOOL,
+ outlineThreshold: DWRITE_OUTLINE_THRESHOLD,
+ measuringMode: DWRITE_MEASURING_MODE,
+ renderingParams: *mut IDWriteRenderingParams,
+ renderingMode: *mut DWRITE_RENDERING_MODE1,
+ gridFitMode: *mut DWRITE_GRID_FIT_MODE,
+ ) -> HRESULT,
+ fn IsCharacterLocal(
+ unicodeValue: UINT32,
+ ) -> BOOL,
+ fn IsGlyphLocal(
+ glyphId: UINT16,
+ ) -> BOOL,
+ fn AreCharactersLocal(
+ characters: *const WCHAR,
+ characterCount: UINT32,
+ enqueueIfNotLocal: BOOL,
+ isLocal: *mut BOOL,
+ ) -> HRESULT,
+ fn AreGlyphsLocal(
+ glyphIndices: *const UINT16,
+ glyphCount: UINT32,
+ enqueueIfNotLocal: BOOL,
+ isLocal: *mut BOOL,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xcfee3140, 0x1157, 0x47ca, 0x8b, 0x85, 0x31, 0xbf, 0xcf, 0x3f, 0x2d, 0x0e)]
+interface IDWriteStringList(IDWriteStringListVtbl): IUnknown(IUnknownVtbl) {
+ fn GetCount() -> UINT32,
+ fn GetLocaleNameLength(
+ listIndex: UINT32,
+ length: *mut UINT32,
+ ) -> HRESULT,
+ fn GetLocaleName(
+ listIndex: UINT32,
+ localeName: *mut WCHAR,
+ size: UINT32,
+ ) -> HRESULT,
+ fn GetStringLength(
+ listIndex: UINT32,
+ length: *mut UINT32,
+ ) -> HRESULT,
+ fn GetString(
+ listIndex: UINT32,
+ stringBuffer: *mut WCHAR,
+ stringBufferSize: UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xb06fe5b9, 0x43ec, 0x4393, 0x88, 0x1b, 0xdb, 0xe4, 0xdc, 0x72, 0xfd, 0xa7)]
+interface IDWriteFontDownloadListener(IDWriteFontDownloadListenerVtbl):
+ IUnknown(IUnknownVtbl) {
+ fn DownloadCompleted(
+ downloadQueue: *mut IDWriteFontDownloadQueue,
+ context: *mut IUnknown,
+ downloadResult: HRESULT,
+ ) -> (),
+}}
+RIDL!{#[uuid(0xb71e6052, 0x5aea, 0x4fa3, 0x83, 0x2e, 0xf6, 0x0d, 0x43, 0x1f, 0x7e, 0x91)]
+interface IDWriteFontDownloadQueue(IDWriteFontDownloadQueueVtbl):
+ IUnknown(IUnknownVtbl) {
+ fn AddListener(
+ listener: *mut IDWriteFontDownloadListener,
+ token: *mut UINT32,
+ ) -> HRESULT,
+ fn RemoveListener(
+ token: UINT32,
+ ) -> HRESULT,
+ fn IsEmpty() -> BOOL,
+ fn BeginDownload(
+ context: *mut IUnknown,
+ ) -> HRESULT,
+ fn CancelDownload() -> HRESULT,
+ fn GetGenerationCount() -> UINT64,
+}}
+RIDL!{#[uuid(0x4556be70, 0x3abd, 0x4f70, 0x90, 0xbe, 0x42, 0x17, 0x80, 0xa6, 0xf5, 0x15)]
+interface IDWriteGdiInterop1(IDWriteGdiInterop1Vtbl):
+ IDWriteGdiInterop(IDWriteGdiInteropVtbl) {
+ fn CreateFontFromLOGFONT(
+ logFont: *const LOGFONTW,
+ fontCollection: *mut IDWriteFontCollection,
+ font: *mut *mut IDWriteFont,
+ ) -> HRESULT,
+ fn GetFontSignature_2(
+ fontFace: *mut IDWriteFontFace,
+ fontSignature: *mut FONTSIGNATURE,
+ ) -> HRESULT,
+ fn GetFontSignature_1(
+ font: *mut IDWriteFont,
+ fontSignature: *mut FONTSIGNATURE,
+ ) -> HRESULT,
+ fn GetMatchingFontsByLOGFONT(
+ logFont: *const LOGFONTW,
+ fontSet: *mut IDWriteFontSet,
+ filteredSet: *mut *mut IDWriteFontSet,
+ ) -> HRESULT,
+}}
+STRUCT!{struct DWRITE_LINE_METRICS1 {
+ length: UINT32,
+ trailingWhitespaceLength: UINT32,
+ newlineLength: UINT32,
+ height: FLOAT,
+ baseline: FLOAT,
+ isTrimmed: BOOL,
+ leadingBefore: FLOAT,
+ leadingAfter: FLOAT,
+}}
+ENUM!{enum DWRITE_FONT_LINE_GAP_USAGE {
+ DWRITE_FONT_LINE_GAP_USAGE_DEFAULT,
+ DWRITE_FONT_LINE_GAP_USAGE_DISABLED,
+ DWRITE_FONT_LINE_GAP_USAGE_ENABLED,
+}}
+STRUCT!{struct DWRITE_LINE_SPACING {
+ method: DWRITE_LINE_SPACING_METHOD,
+ height: FLOAT,
+ baseline: FLOAT,
+ leadingBefore: FLOAT,
+ fontLineGapUsage: DWRITE_FONT_LINE_GAP_USAGE,
+}}
+RIDL!{#[uuid(0xf67e0edd, 0x9e3d, 0x4ecc, 0x8c, 0x32, 0x41, 0x83, 0x25, 0x3d, 0xfe, 0x70)]
+interface IDWriteTextFormat2(IDWriteTextFormat2Vtbl):
+ IDWriteTextFormat1(IDWriteTextFormat1Vtbl) {
+ fn SetLineSpacing(
+ lineSpacingOptions: *const DWRITE_LINE_SPACING,
+ ) -> HRESULT,
+ fn GetLineSpacing(
+ lineSpacingOptions: *mut DWRITE_LINE_SPACING,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x07ddcd52, 0x020e, 0x4de8, 0xac, 0x33, 0x6c, 0x95, 0x3d, 0x83, 0xf9, 0x2d)]
+interface IDWriteTextLayout3(IDWriteTextLayout3Vtbl):
+ IDWriteTextLayout2(IDWriteTextLayout2Vtbl) {
+ fn InvalidateLayout() -> HRESULT,
+ fn SetLineSpacing(
+ lineSpacingOptions: *const DWRITE_LINE_SPACING,
+ ) -> HRESULT,
+ fn GetLineSpacing(
+ lineSpacingOptions: *mut DWRITE_LINE_SPACING,
+ ) -> HRESULT,
+ fn GetLineMetrics(
+ lineMetrics: *mut DWRITE_LINE_METRICS1,
+ maxLineCount: UINT32,
+ actualLineCount: *mut UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x27f2a904, 0x4eb8, 0x441d, 0x96, 0x78, 0x05, 0x63, 0xf5, 0x3e, 0x3e, 0x2f)]
+interface IDWriteFontFace4(IDWriteFontFace4Vtbl): IDWriteFontFace3(IDWriteFontFace3Vtbl) {
+ fn GetGlyphImageFormats_2(
+ glyph: UINT16,
+ ppemFirst: UINT32,
+ ppemLast: UINT32,
+ formats: *mut DWRITE_GLYPH_IMAGE_FORMATS,
+ ) -> HRESULT,
+ fn GetGlyphImageFormats_1() -> DWRITE_GLYPH_IMAGE_FORMATS,
+ fn GetGlyphImageData(
+ glyph: UINT16,
+ ppem: UINT32,
+ format: DWRITE_GLYPH_IMAGE_FORMATS,
+ data: *mut DWRITE_GLYPH_IMAGE_DATA,
+ context: *mut *mut c_void,
+ ) -> HRESULT,
+ fn ReleaseGlyphImageData(
+ context: *mut c_void,
+ ) -> (),
+}}
+ENUM!{enum DWRITE_FONT_AXIS_TAG {
+ DWRITE_FONT_AXIS_TAG_WEIGHT = 0x74686777,
+ DWRITE_FONT_AXIS_TAG_WIDTH = 0x68746477,
+ DWRITE_FONT_AXIS_TAG_SLANT = 0x746e6c73,
+ DWRITE_FONT_AXIS_TAG_OPTICAL_SIZE = 0x7a73706f,
+ DWRITE_FONT_AXIS_TAG_ITALIC = 0x6c617469,
+}}
+STRUCT!{struct DWRITE_FONT_AXIS_VALUE {
+ axisTag: DWRITE_FONT_AXIS_TAG,
+ value: FLOAT,
+}}
+STRUCT!{struct DWRITE_FONT_AXIS_RANGE {
+ axisTag: DWRITE_FONT_AXIS_TAG,
+ minValue: FLOAT,
+ maxValue: FLOAT,
+}}
+ENUM!{enum DWRITE_FONT_AXIS_ATTRIBUTES {
+ DWRITE_FONT_AXIS_ATTRIBUTES_NONE,
+ DWRITE_FONT_AXIS_ATTRIBUTES_VARIABLE,
+ DWRITE_FONT_AXIS_ATTRIBUTES_HIDDEN,
+}}
+RIDL!{#[uuid(0x98eff3a5, 0xb667, 0x479a, 0xb1, 0x45, 0xe2, 0xfa, 0x5b, 0x9f, 0xdc, 0x29)]
+interface IDWriteFontFace5(IDWriteFontFace5Vtbl): IDWriteFontFace4(IDWriteFontFace4Vtbl) {
+ fn GetFontAxisValueCount() -> UINT32,
+ fn GetFontAxisValues(
+ values: *mut DWRITE_FONT_AXIS_VALUE,
+ valueCount: UINT32,
+ ) -> HRESULT,
+ fn HasVariations() -> BOOL,
+ fn GetFontResource(
+ resource: *mut *mut IDWriteFontResource,
+ ) -> HRESULT,
+ fn Equals(
+ fontFace: *mut IDWriteFontFace,
+ ) -> BOOL,
+}}
+RIDL!{#[uuid(0xc081fe77, 0x2fd1, 0x41ac, 0xa5, 0xa3, 0x34, 0x98, 0x3c, 0x4b, 0xa6, 0x1a)]
+interface IDWriteFontFaceReference1(IDWriteFontFaceReference1Vtbl):
+ IDWriteFontFaceReference(IDWriteFontFaceReferenceVtbl) {
+ fn CreateFontFace(
+ fontFace: *mut *mut IDWriteFontFace5,
+ ) -> HRESULT,
+ fn GetFontAxisValueCount() -> UINT32,
+ fn GetFontAxisValues(
+ values: *mut DWRITE_FONT_AXIS_VALUE,
+ numValues: UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x1f803a76, 0x6871, 0x48e8, 0x98, 0x7f, 0xb9, 0x75, 0x55, 0x1c, 0x50, 0xf2)]
+interface IDWriteFontResource(IDWriteFontResourceVtbl): IUnknown(IUnknownVtbl) {
+ fn GetFontFile(
+ fontFile: *mut *mut IDWriteFontFile,
+ ) -> HRESULT,
+ fn GetFontFaceIndex() -> UINT32,
+ fn GetFontAxisCount() -> UINT32,
+ fn GetDefaultFontAxisValues(
+ values: *const DWRITE_FONT_AXIS_VALUE,
+ numValues: UINT32,
+ ) -> HRESULT,
+ fn GetFontAxisRanges(
+ ranges: *const DWRITE_FONT_AXIS_RANGE,
+ numRanges: UINT32,
+ ) -> HRESULT,
+ fn GetFontAxisAttributes(
+ axis: UINT32,
+ ) -> DWRITE_FONT_AXIS_ATTRIBUTES,
+ fn GetAxisNames(
+ axis: UINT32,
+ names: *mut *mut IDWriteLocalizedStrings,
+ ) -> HRESULT,
+ fn GetAxisValueNameCount(
+ axis: UINT32,
+ ) -> UINT32,
+ fn GetAxisValueNames(
+ axis: UINT32,
+ axisValue: UINT32,
+ axisRange: *mut DWRITE_FONT_AXIS_RANGE,
+ names: *mut *mut IDWriteLocalizedStrings,
+ ) -> HRESULT,
+ fn HasVariations() -> BOOL,
+ fn CreateFontFace(
+ simulations: DWRITE_FONT_SIMULATIONS,
+ axisValues: *const DWRITE_FONT_AXIS_VALUE,
+ numValues: UINT32,
+ fontFace: *mut *mut IDWriteFontFace5,
+ ) -> HRESULT,
+ fn CreateFontFaceReference(
+ simulations: DWRITE_FONT_SIMULATIONS,
+ axisValues: *const DWRITE_FONT_AXIS_VALUE,
+ numValues: UINT32,
+ reference: *mut *mut IDWriteFontFaceReference1,
+ ) -> HRESULT,
+}}