| // 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, |
| }} |