aboutsummaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/d2d1_3.rs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
committerValentin Popov <valentin@popov.link>2024-01-08 00:21:28 +0300
commit1b6a04ca5504955c571d1c97504fb45ea0befee4 (patch)
tree7579f518b23313e8a9748a88ab6173d5e030b227 /vendor/winapi/src/um/d2d1_3.rs
parent5ecd8cf2cba827454317368b68571df0d13d7842 (diff)
downloadfparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.tar.xz
fparkan-1b6a04ca5504955c571d1c97504fb45ea0befee4.zip
Initial vendor packages
Signed-off-by: Valentin Popov <valentin@popov.link>
Diffstat (limited to 'vendor/winapi/src/um/d2d1_3.rs')
-rw-r--r--vendor/winapi/src/um/d2d1_3.rs698
1 files changed, 698 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/d2d1_3.rs b/vendor/winapi/src/um/d2d1_3.rs
new file mode 100644
index 0000000..64b7bd3
--- /dev/null
+++ b/vendor/winapi/src/um/d2d1_3.rs
@@ -0,0 +1,698 @@
+// 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 contents of d2d1_3.h
+use ctypes::c_void;
+use shared::basetsd::{UINT16, UINT32, UINT64};
+use shared::dxgi::{IDXGIDevice, IDXGISurface};
+use shared::dxgitype::DXGI_COLOR_SPACE_TYPE;
+use shared::minwindef::{BOOL, BYTE, DWORD, FLOAT};
+use shared::ntdef::WCHAR;
+use shared::winerror::HRESULT;
+use um::d2d1::{
+ D2D1_BITMAP_INTERPOLATION_MODE, D2D1_COLOR_F, D2D1_DRAW_TEXT_OPTIONS, D2D1_GAMMA_1_0,
+ D2D1_GAMMA_2_2, D2D1_MATRIX_3X2_F, D2D1_POINT_2F, D2D1_RECT_F, D2D1_RECT_U, D2D1_SIZE_F,
+ ID2D1Bitmap, ID2D1Brush, ID2D1Image, ID2D1ImageVtbl, ID2D1Resource, ID2D1ResourceVtbl,
+ ID2D1SimplifiedGeometrySink,
+};
+use um::d2d1_1::{
+ D2D1_BUFFER_PRECISION, D2D1_DEVICE_CONTEXT_OPTIONS, D2D1_INTERPOLATION_MODE,
+ D2D1_PRIMITIVE_BLEND, ID2D1ColorContext, ID2D1ColorContextVtbl, ID2D1CommandList,
+ ID2D1GdiMetafile, ID2D1GdiMetafileSink, ID2D1GdiMetafileSinkVtbl, ID2D1GdiMetafileVtbl,
+};
+use um::d2d1_2::{
+ ID2D1CommandSink1, ID2D1CommandSink1Vtbl, ID2D1Device1, ID2D1Device1Vtbl, ID2D1DeviceContext1,
+ ID2D1DeviceContext1Vtbl, ID2D1Factory2, ID2D1Factory2Vtbl,
+};
+use um::d2d1effects::D2D1_BLEND_MODE;
+use um::d2d1svg::ID2D1SvgDocument;
+use um::dcommon::{D2D1_ALPHA_MODE, DWRITE_GLYPH_IMAGE_FORMATS, DWRITE_MEASURING_MODE};
+use um::dwrite::{DWRITE_GLYPH_RUN, IDWriteFontFace, IDWriteTextFormat, IDWriteTextLayout};
+use um::objidlbase::IStream;
+use um::wincodec::IWICBitmapSource;
+ENUM!{enum D2D1_INK_NIB_SHAPE {
+ D2D1_INK_NIB_SHAPE_ROUND = 0,
+ D2D1_INK_NIB_SHAPE_SQUARE = 1,
+}}
+ENUM!{enum D2D1_ORIENTATION {
+ D2D1_ORIENTATION_DEFAULT = 1,
+ D2D1_ORIENTATION_FLIP_HORIZONTAL = 2,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 3,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 4,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 5,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 6,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 7,
+ D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 8,
+}}
+ENUM!{enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS {
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0,
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 1,
+ D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 2,
+}}
+ENUM!{enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS {
+ D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0,
+ D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 1,
+}}
+ENUM!{enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS {
+ D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0,
+ D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 1,
+}}
+STRUCT!{struct D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES {
+ orientation: D2D1_ORIENTATION,
+ scaleX: FLOAT,
+ scaleY: FLOAT,
+ interpolationMode: D2D1_INTERPOLATION_MODE,
+ options: D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS,
+}}
+STRUCT!{struct D2D1_INK_POINT {
+ x: FLOAT,
+ y: FLOAT,
+ radius: FLOAT,
+}}
+STRUCT!{struct D2D1_INK_BEZIER_SEGMENT {
+ point1: D2D1_INK_POINT,
+ point2: D2D1_INK_POINT,
+ point3: D2D1_INK_POINT,
+}}
+STRUCT!{struct D2D1_INK_STYLE_PROPERTIES {
+ nibShape: D2D1_INK_NIB_SHAPE,
+ nibTransform: D2D1_MATRIX_3X2_F,
+}}
+ENUM!{enum D2D1_PATCH_EDGE_MODE {
+ D2D1_PATCH_EDGE_MODE_ALIASED = 0,
+ D2D1_PATCH_EDGE_MODE_ANTIALIASED = 1,
+ D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 2,
+}}
+STRUCT!{struct D2D1_GRADIENT_MESH_PATCH {
+ point00: D2D1_POINT_2F,
+ point01: D2D1_POINT_2F,
+ point02: D2D1_POINT_2F,
+ point03: D2D1_POINT_2F,
+ point10: D2D1_POINT_2F,
+ point11: D2D1_POINT_2F,
+ point12: D2D1_POINT_2F,
+ point13: D2D1_POINT_2F,
+ point20: D2D1_POINT_2F,
+ point21: D2D1_POINT_2F,
+ point22: D2D1_POINT_2F,
+ point23: D2D1_POINT_2F,
+ point30: D2D1_POINT_2F,
+ point31: D2D1_POINT_2F,
+ point32: D2D1_POINT_2F,
+ point33: D2D1_POINT_2F,
+ color00: D2D1_COLOR_F,
+ color03: D2D1_COLOR_F,
+ color30: D2D1_COLOR_F,
+ color33: D2D1_COLOR_F,
+ topEdgeMode: D2D1_PATCH_EDGE_MODE,
+ leftEdgeMode: D2D1_PATCH_EDGE_MODE,
+ bottomEdgeMode: D2D1_PATCH_EDGE_MODE,
+ rightEdgeMode: D2D1_PATCH_EDGE_MODE,
+}}
+ENUM!{enum D2D1_SPRITE_OPTIONS {
+ D2D1_SPRITE_OPTIONS_NONE = 0,
+ D2D1_SPRITE_OPTIONS_CLAMP_TO_SOURCE_RECTANGLE = 1,
+}}
+ENUM!{enum D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION {
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT = 0,
+ D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DISABLE = 1,
+}}
+ENUM!{enum D2D1_GAMMA1 {
+ D2D1_GAMMA1_G22 = D2D1_GAMMA_2_2,
+ D2D1_GAMMA1_G10 = D2D1_GAMMA_1_0,
+ D2D1_GAMMA1_G2084 = 2,
+}}
+STRUCT!{struct D2D1_SIMPLE_COLOR_PROFILE {
+ redPrimary: D2D1_POINT_2F,
+ greenPrimary: D2D1_POINT_2F,
+ bluePrimary: D2D1_POINT_2F,
+ whitePointXZ: D2D1_POINT_2F,
+ gamma: D2D1_GAMMA1,
+}}
+ENUM!{enum D2D1_COLOR_CONTEXT_TYPE {
+ D2D1_COLOR_CONTEXT_TYPE_ICC = 0,
+ D2D1_COLOR_CONTEXT_TYPE_SIMPLE = 1,
+ D2D1_COLOR_CONTEXT_TYPE_DXGI = 2,
+}}
+DEFINE_GUID!{IID_ID2D1InkStyle,
+ 0xbae8b344, 0x23fc, 0x4071, 0x8c, 0xb5, 0xd0, 0x5d, 0x6f, 0x07, 0x38, 0x48}
+DEFINE_GUID!{IID_ID2D1Ink,
+ 0xb499923b, 0x7029, 0x478f, 0xa8, 0xb3, 0x43, 0x2c, 0x7c, 0x5f, 0x53, 0x12}
+DEFINE_GUID!{IID_ID2D1GradientMesh,
+ 0xf292e401, 0xc050, 0x4cde, 0x83, 0xd7, 0x04, 0x96, 0x2d, 0x3b, 0x23, 0xc2}
+DEFINE_GUID!{IID_ID2D1ImageSource,
+ 0xc9b664e5, 0x74a1, 0x4378, 0x9a, 0xc2, 0xee, 0xfc, 0x37, 0xa3, 0xf4, 0xd8}
+DEFINE_GUID!{IID_ID2D1ImageSourceFromWic,
+ 0x77395441, 0x1c8f, 0x4555, 0x86, 0x83, 0xf5, 0x0d, 0xab, 0x0f, 0xe7, 0x92}
+DEFINE_GUID!{IID_ID2D1TransformedImageSource,
+ 0x7f1f79e5, 0x2796, 0x416c, 0x8f, 0x55, 0x70, 0x0f, 0x91, 0x14, 0x45, 0xe5}
+DEFINE_GUID!{IID_ID2D1LookupTable3D,
+ 0x53dd9855, 0xa3b0, 0x4d5b, 0x82, 0xe1, 0x26, 0xe2, 0x5c, 0x5e, 0x57, 0x97}
+DEFINE_GUID!{IID_ID2D1DeviceContext2,
+ 0x394ea6a3, 0x0c34, 0x4321, 0x95, 0x0b, 0x6c, 0xa2, 0x0f, 0x0b, 0xe6, 0xc7}
+DEFINE_GUID!{IID_ID2D1Device2,
+ 0xa44472e1, 0x8dfb, 0x4e60, 0x84, 0x92, 0x6e, 0x28, 0x61, 0xc9, 0xca, 0x8b}
+DEFINE_GUID!{IID_ID2D1Factory3,
+ 0x0869759f, 0x4f00, 0x413f, 0xb0, 0x3e, 0x2b, 0xda, 0x45, 0x40, 0x4d, 0x0f}
+DEFINE_GUID!{IID_ID2D1CommandSink2,
+ 0x3bab440e, 0x417e, 0x47df, 0xa2, 0xe2, 0xbc, 0x0b, 0xe6, 0xa0, 0x09, 0x16}
+DEFINE_GUID!{IID_ID2D1GdiMetafile1,
+ 0x2e69f9e8, 0xdd3f, 0x4bf9, 0x95, 0xba, 0xc0, 0x4f, 0x49, 0xd7, 0x88, 0xdf}
+DEFINE_GUID!{IID_ID2D1GdiMetafileSink1,
+ 0xfd0ecb6b, 0x91e6, 0x411e, 0x86, 0x55, 0x39, 0x5e, 0x76, 0x0f, 0x91, 0xb4}
+DEFINE_GUID!{IID_ID2D1SpriteBatch,
+ 0x4dc583bf, 0x3a10, 0x438a, 0x87, 0x22, 0xe9, 0x76, 0x52, 0x24, 0xf1, 0xf1}
+DEFINE_GUID!{IID_ID2D1DeviceContext3,
+ 0x235a7496, 0x8351, 0x414c, 0xbc, 0xd4, 0x66, 0x72, 0xab, 0x2d, 0x8e, 0x00}
+DEFINE_GUID!{IID_ID2D1Device3,
+ 0x852f2087, 0x802c, 0x4037, 0xab, 0x60, 0xff, 0x2e, 0x7e, 0xe6, 0xfc, 0x01}
+DEFINE_GUID!{IID_ID2D1Factory4,
+ 0xbd4ec2d2, 0x0662, 0x4bee, 0xba, 0x8e, 0x6f, 0x29, 0xf0, 0x32, 0xe0, 0x96}
+DEFINE_GUID!{IID_ID2D1CommandSink3,
+ 0x18079135, 0x4cf3, 0x4868, 0xbc, 0x8e, 0x06, 0x06, 0x7e, 0x6d, 0x24, 0x2d}
+DEFINE_GUID!{IID_ID2D1SvgGlyphStyle,
+ 0xaf671749, 0xd241, 0x4db8, 0x8e, 0x41, 0xdc, 0xc2, 0xe5, 0xc1, 0xa4, 0x38}
+DEFINE_GUID!{IID_ID2D1DeviceContext4,
+ 0x8c427831, 0x3d90, 0x4476, 0xb6, 0x47, 0xc4, 0xfa, 0xe3, 0x49, 0xe4, 0xdb}
+DEFINE_GUID!{IID_ID2D1Device4,
+ 0xd7bdb159, 0x5683, 0x4a46, 0xbc, 0x9c, 0x72, 0xdc, 0x72, 0x0b, 0x85, 0x8b}
+DEFINE_GUID!{IID_ID2D1Factory5,
+ 0xc4349994, 0x838e, 0x4b0f, 0x8c, 0xab, 0x44, 0x99, 0x7d, 0x9e, 0xea, 0xcc}
+DEFINE_GUID!{IID_ID2D1CommandSink4,
+ 0xc78a6519, 0x40d6, 0x4218, 0xb2, 0xde, 0xbe, 0xee, 0xb7, 0x44, 0xbb, 0x3e}
+DEFINE_GUID!{IID_ID2D1ColorContext1,
+ 0x1ab42875, 0xc57f, 0x4be9, 0xbd, 0x85, 0x9c, 0xd7, 0x8d, 0x6f, 0x55, 0xee}
+DEFINE_GUID!{IID_ID2D1DeviceContext5,
+ 0x7836d248, 0x68cc, 0x4df6, 0xb9, 0xe8, 0xde, 0x99, 0x1b, 0xf6, 0x2e, 0xb7}
+DEFINE_GUID!{IID_ID2D1Device5,
+ 0xd55ba0a4, 0x6405, 0x4694, 0xae, 0xf5, 0x08, 0xee, 0x1a, 0x43, 0x58, 0xb4}
+DEFINE_GUID!{IID_ID2D1Factory6,
+ 0xf9976f46, 0xf642, 0x44c1, 0x97, 0xca, 0xda, 0x32, 0xea, 0x2a, 0x26, 0x35}
+DEFINE_GUID!{IID_ID2D1CommandSink5,
+ 0x7047dd26, 0xb1e7, 0x44a7, 0x95, 0x9a, 0x83, 0x49, 0xe2, 0x14, 0x4f, 0xa8}
+DEFINE_GUID!{IID_ID2D1DeviceContext6,
+ 0x985f7e37, 0x4ed0, 0x4a19, 0x98, 0xa3, 0x15, 0xb0, 0xed, 0xfd, 0xe3, 0x06}
+DEFINE_GUID!{IID_ID2D1Device6,
+ 0x7bfef914, 0x2d75, 0x4bad, 0xbe, 0x87, 0xe1, 0x8d, 0xdb, 0x07, 0x7b, 0x6d}
+DEFINE_GUID!{IID_ID2D1Factory7,
+ 0xbdc2bdd3, 0xb96c, 0x4de6, 0xbd, 0xf7, 0x99, 0xd4, 0x74, 0x54, 0x54, 0xde}
+RIDL!{#[uuid(0xbae8b344, 0x23fc, 0x4071, 0x8c, 0xb5, 0xd0, 0x5d, 0x6f, 0x07, 0x38, 0x48)]
+interface ID2D1InkStyle(ID2D1InkStyleVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn SetNibTransform(
+ transform: *const D2D1_MATRIX_3X2_F,
+ ) -> (),
+ fn GetNibTransform(
+ transform: *mut D2D1_MATRIX_3X2_F,
+ ) -> (),
+ fn SetNibShape(
+ nibShape: D2D1_INK_NIB_SHAPE,
+ ) -> (),
+ fn GetNibShape() -> D2D1_INK_NIB_SHAPE,
+}}
+RIDL!{#[uuid(0xb499923b, 0x7029, 0x478f, 0xa8, 0xb3, 0x43, 0x2c, 0x7c, 0x5f, 0x53, 0x12)]
+interface ID2D1Ink(ID2D1InkVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn SetStartPoint(
+ startPoint: *const D2D1_INK_POINT,
+ ) -> (),
+ fn GetStartPoint() -> D2D1_INK_POINT,
+ fn AddSegments(
+ segments: *const D2D1_INK_BEZIER_SEGMENT,
+ segmentsCount: UINT32,
+ ) -> HRESULT,
+ fn RemoveSegmentsAtEnd(
+ segmentsCount: UINT32,
+ ) -> HRESULT,
+ fn SetSegments(
+ startSegment: UINT32,
+ segments: *const D2D1_INK_BEZIER_SEGMENT,
+ segmentsCount: UINT32,
+ ) -> HRESULT,
+ fn SetSegmentAtEnd(
+ segment: *const D2D1_INK_BEZIER_SEGMENT,
+ ) -> HRESULT,
+ fn GetSegmentCount() -> UINT32,
+ fn GetSegments(
+ startSegment: UINT32,
+ segments: *mut D2D1_INK_BEZIER_SEGMENT,
+ segmentsCount: UINT32,
+ ) -> HRESULT,
+ fn StreamAsGeometry(
+ inkStyle: *mut ID2D1InkStyle,
+ worldTransform: *const D2D1_MATRIX_3X2_F,
+ flatteningTolerance: FLOAT,
+ geometrySink: *mut ID2D1SimplifiedGeometrySink,
+ ) -> HRESULT,
+ fn GetBounds(
+ inkStyle: *mut ID2D1InkStyle,
+ worldTransform: *const D2D1_MATRIX_3X2_F,
+ bounds: *mut D2D1_RECT_F,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xf292e401, 0xc050, 0x4cde, 0x83, 0xd7, 0x04, 0x96, 0x2d, 0x3b, 0x23, 0xc2)]
+interface ID2D1GradientMesh(ID2D1GradientMeshVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn GetPatchCount() -> UINT32,
+ fn GetPatches(
+ startIndex: UINT32,
+ patches: *mut D2D1_GRADIENT_MESH_PATCH,
+ patchesCount: UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xc9b664e5, 0x74a1, 0x4378, 0x9a, 0xc2, 0xee, 0xfc, 0x37, 0xa3, 0xf4, 0xd8)]
+interface ID2D1ImageSource(ID2D1ImageSourceVtbl): ID2D1Image(ID2D1ImageVtbl) {
+ fn OfferResources() -> HRESULT,
+ fn TryReclaimResources(
+ resourcesDiscarded: *mut BOOL,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x77395441, 0x1c8f, 0x4555, 0x86, 0x83, 0xf5, 0x0d, 0xab, 0x0f, 0xe7, 0x92)]
+interface ID2D1ImageSourceFromWic(ID2D1ImageSourceFromWicVtbl):
+ ID2D1ImageSource(ID2D1ImageSourceVtbl) {
+ fn EnsureCached(
+ rectangleToFill: *const D2D1_RECT_U,
+ ) -> HRESULT,
+ fn TrimCache(
+ rectangleToPreserve: *const D2D1_RECT_U,
+ ) -> HRESULT,
+ fn GetSource(
+ wicBitmapSource: *mut *mut IWICBitmapSource,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x7f1f79e5, 0x2796, 0x416c, 0x8f, 0x55, 0x70, 0x0f, 0x91, 0x14, 0x45, 0xe5)]
+interface ID2D1TransformedImageSource(ID2D1TransformedImageSourceVtbl):
+ ID2D1Image(ID2D1ImageVtbl) {
+ fn GetSource(
+ imageSource: *mut *mut ID2D1ImageSource,
+ ) -> (),
+ fn GetProperties(
+ properties: *mut D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x53dd9855, 0xa3b0, 0x4d5b, 0x82, 0xe1, 0x26, 0xe2, 0x5c, 0x5e, 0x57, 0x97)]
+interface ID2D1LookupTable3D(ID2D1LookupTable3DVtbl): ID2D1Resource(ID2D1ResourceVtbl) {}}
+RIDL!{#[uuid(0x394ea6a3, 0x0c34, 0x4321, 0x95, 0x0b, 0x6c, 0xa2, 0x0f, 0x0b, 0xe6, 0xc7)]
+interface ID2D1DeviceContext2(ID2D1DeviceContext2Vtbl):
+ ID2D1DeviceContext1(ID2D1DeviceContext1Vtbl) {
+ fn CreateInk(
+ startPoint: *const D2D1_INK_POINT,
+ ink: *mut *mut ID2D1Ink,
+ ) -> HRESULT,
+ fn CreateInkStyle(
+ inkStyleProperties: *const D2D1_INK_STYLE_PROPERTIES,
+ inkStyle: *mut *mut ID2D1InkStyle,
+ ) -> HRESULT,
+ fn CreateGradientMesh(
+ patches: *const D2D1_GRADIENT_MESH_PATCH,
+ patchesCount: UINT32,
+ gradientMesh: *mut *mut ID2D1GradientMesh,
+ ) -> HRESULT,
+ fn CreateImageSourceFromWic(
+ wicBitmapSource: *mut IWICBitmapSource,
+ loadingOptions: D2D1_IMAGE_SOURCE_LOADING_OPTIONS,
+ alphaMode: D2D1_ALPHA_MODE,
+ imageSource: *mut *mut ID2D1ImageSourceFromWic,
+ ) -> HRESULT,
+ fn CreateLookupTable3D(
+ precision: D2D1_BUFFER_PRECISION,
+ extents: *const UINT32,
+ data: *const BYTE,
+ dataCount: UINT32,
+ strides: *const UINT32,
+ lookupTable: *mut *mut ID2D1LookupTable3D,
+ ) -> HRESULT,
+ fn CreateImageSourceFromDxgi(
+ surfaces: *const *mut IDXGISurface,
+ surfaceCount: UINT32,
+ colorSpace: DXGI_COLOR_SPACE_TYPE,
+ options: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS,
+ imageSource: *mut *mut ID2D1ImageSource,
+ ) -> HRESULT,
+ fn GetGradientMeshWorldBounds(
+ gradientMesh: *mut ID2D1GradientMesh,
+ pBounds: *mut D2D1_RECT_F,
+ ) -> HRESULT,
+ fn DrawInk(
+ ink: *mut ID2D1Ink,
+ brush: *mut ID2D1Brush,
+ inkStyle: *mut ID2D1InkStyle,
+ ) -> (),
+ fn DrawGradientMesh(
+ gradientMesh: *mut ID2D1GradientMesh,
+ ) -> (),
+ fn DrawGdiMetafile(
+ gdiMetafile: *mut ID2D1GdiMetafile,
+ destinationRectangle: *const D2D1_RECT_F,
+ sourceRectangle: *const D2D1_RECT_F,
+ ) -> (),
+ fn CreateTransformedImageSource(
+ imageSource: *mut ID2D1ImageSource,
+ properties: *const D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES,
+ transformedImageSource: *mut *mut ID2D1TransformedImageSource,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xa44472e1, 0x8dfb, 0x4e60, 0x84, 0x92, 0x6e, 0x28, 0x61, 0xc9, 0xca, 0x8b)]
+interface ID2D1Device2(ID2D1Device2Vtbl): ID2D1Device1(ID2D1Device1Vtbl) {
+ fn CreateDeviceContext(
+ options: D2D1_DEVICE_CONTEXT_OPTIONS,
+ deviceContext2: *mut *mut ID2D1DeviceContext2,
+ ) -> HRESULT,
+ fn FlushDeviceContexts(
+ bitmap: *mut ID2D1Bitmap,
+ ) -> (),
+ fn GetDxgiDevice(
+ dxgiDevice: *mut *mut IDXGIDevice,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x0869759f, 0x4f00, 0x413f, 0xb0, 0x3e, 0x2b, 0xda, 0x45, 0x40, 0x4d, 0x0f)]
+interface ID2D1Factory3(ID2D1Factory3Vtbl): ID2D1Factory2(ID2D1Factory2Vtbl) {
+ fn CreateDevice(
+ dxgiDevice: *mut IDXGIDevice,
+ d2dDevice2: *mut *mut ID2D1Device2,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x3bab440e, 0x417e, 0x47df, 0xa2, 0xe2, 0xbc, 0x0b, 0xe6, 0xa0, 0x09, 0x16)]
+interface ID2D1CommandSink2(ID2D1CommandSink2Vtbl): ID2D1CommandSink1(ID2D1CommandSink1Vtbl) {
+ fn DrawInk(
+ ink: *mut ID2D1Ink,
+ brush: *mut ID2D1Brush,
+ inkStyle: *mut ID2D1InkStyle,
+ ) -> (),
+ fn DrawGradientMesh(
+ gradientMesh: *mut ID2D1GradientMesh,
+ ) -> (),
+ fn DrawGdiMetafile(
+ gdiMetafile: *mut ID2D1GdiMetafile,
+ destinationRectangle: *const D2D1_RECT_F,
+ sourceRectangle: *const D2D1_RECT_F,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x2e69f9e8, 0xdd3f, 0x4bf9, 0x95, 0xba, 0xc0, 0x4f, 0x49, 0xd7, 0x88, 0xdf)]
+interface ID2D1GdiMetafile1(ID2D1GdiMetafile1Vtbl): ID2D1GdiMetafile(ID2D1GdiMetafileVtbl) {
+ fn GetDpi(
+ dpiX: *mut FLOAT,
+ dpiY: *mut FLOAT,
+ ) -> HRESULT,
+ fn GetSourceBounds(
+ bounds: *mut D2D1_RECT_F,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xfd0ecb6b, 0x91e6, 0x411e, 0x86, 0x55, 0x39, 0x5e, 0x76, 0x0f, 0x91, 0xb4)]
+interface ID2D1GdiMetafileSink1(ID2D1GdiMetafileSink1Vtbl):
+ ID2D1GdiMetafileSink(ID2D1GdiMetafileSinkVtbl) {
+ fn ProcessRecord(
+ recordType: DWORD,
+ recordData: *const c_void,
+ recordDataSize: DWORD,
+ flags: UINT32,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x4dc583bf, 0x3a10, 0x438a, 0x87, 0x22, 0xe9, 0x76, 0x52, 0x24, 0xf1, 0xf1)]
+interface ID2D1SpriteBatch(ID2D1SpriteBatchVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn AddSprites(
+ spriteCount: UINT32,
+ destinationRectangle: *const D2D1_RECT_F,
+ sourceRectangles: *const D2D1_RECT_U,
+ colors: *const D2D1_COLOR_F,
+ transforms: *const D2D1_MATRIX_3X2_F,
+ destinationRectanglesStride: UINT32,
+ sourceRectanglesStride: UINT32,
+ colorsStride: UINT32,
+ transformsStride: D2D1_MATRIX_3X2_F,
+ ) -> HRESULT,
+ fn SetSprites(
+ startIndex: UINT32,
+ spriteCount: UINT32,
+ destinationRectangle: *const D2D1_RECT_F,
+ sourceRectangles: *const D2D1_RECT_U,
+ colors: *const D2D1_COLOR_F,
+ transforms: *const D2D1_MATRIX_3X2_F,
+ destinationRectanglesStride: UINT32,
+ sourceRectanglesStride: UINT32,
+ colorsStride: UINT32,
+ transformsStride: D2D1_MATRIX_3X2_F,
+ ) -> HRESULT,
+ fn GetSprites(
+ startIndex: UINT32,
+ spriteCount: UINT32,
+ destinationRectangle: *mut D2D1_RECT_F,
+ sourceRectangles: *mut D2D1_RECT_U,
+ colors: *mut D2D1_COLOR_F,
+ transforms: *mut D2D1_MATRIX_3X2_F,
+ ) -> HRESULT,
+ fn GetSpriteCount() -> UINT32,
+ fn Clear() -> (),
+}}
+RIDL!{#[uuid(0x235a7496, 0x8351, 0x414c, 0xbc, 0xd4, 0x66, 0x72, 0xab, 0x2d, 0x8e, 0x00)]
+interface ID2D1DeviceContext3(ID2D1DeviceContext3Vtbl):
+ ID2D1DeviceContext2(ID2D1DeviceContext2Vtbl) {
+ fn CreateSpriteBatch(
+ spriteBatch: *mut *mut ID2D1SpriteBatch,
+ ) -> HRESULT,
+ fn DrawSpriteBatch(
+ spriteBatch: *mut ID2D1SpriteBatch,
+ startIndex: UINT32,
+ spriteCount: UINT32,
+ bitmap: *mut ID2D1Bitmap,
+ interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE,
+ spriteOptions: D2D1_SPRITE_OPTIONS,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x852f2087, 0x802c, 0x4037, 0xab, 0x60, 0xff, 0x2e, 0x7e, 0xe6, 0xfc, 0x01)]
+interface ID2D1Device3(ID2D1Device3Vtbl): ID2D1Device2(ID2D1Device2Vtbl) {
+ fn CreateDeviceContext(
+ options: D2D1_DEVICE_CONTEXT_OPTIONS,
+ deviceContext3: *mut *mut ID2D1DeviceContext3,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xbd4ec2d2, 0x0662, 0x4bee, 0xba, 0x8e, 0x6f, 0x29, 0xf0, 0x32, 0xe0, 0x96)]
+interface ID2D1Factory4(ID2D1Factory4Vtbl): ID2D1Factory3(ID2D1Factory3Vtbl) {
+ fn CreateDevice(
+ dxgiDevice: *mut IDXGIDevice,
+ d2dDevice3: *mut *mut ID2D1Device3,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x18079135, 0x4cf3, 0x4868, 0xbc, 0x8e, 0x06, 0x06, 0x7e, 0x6d, 0x24, 0x2d)]
+interface ID2D1CommandSink3(ID2D1CommandSink3Vtbl): ID2D1CommandSink2(ID2D1CommandSink2Vtbl) {
+ fn DrawSpriteBatch(
+ spriteBatch: *mut ID2D1SpriteBatch,
+ startIndex: UINT32,
+ spriteCount: UINT32,
+ bitmap: *mut ID2D1Bitmap,
+ interpolationMode: D2D1_BITMAP_INTERPOLATION_MODE,
+ spriteOptions: D2D1_SPRITE_OPTIONS,
+ ) -> (),
+}}
+RIDL!{#[uuid(0xaf671749, 0xd241, 0x4db8, 0x8e, 0x41, 0xdc, 0xc2, 0xe5, 0xc1, 0xa4, 0x38)]
+interface ID2D1SvgGlyphStyle(ID2D1SvgGlyphStyleVtbl): ID2D1Resource(ID2D1ResourceVtbl) {
+ fn SetFill(
+ brush: *mut ID2D1Brush,
+ ) -> HRESULT,
+ fn GetFill(
+ brush: *mut *mut ID2D1Brush,
+ ) -> (),
+ fn SetStroke(
+ brush: *mut ID2D1Brush,
+ strokeWidth: FLOAT,
+ dashes: *const FLOAT,
+ dashesCount: UINT32,
+ dashOffset: FLOAT,
+ ) -> HRESULT,
+ fn GetStrokeDashesCount() -> UINT32,
+ fn GetStroke(
+ brush: *mut *mut ID2D1Brush,
+ strokeWidth: *mut FLOAT,
+ dashes: *mut FLOAT,
+ dashesCount: UINT32,
+ dashOffset: *mut FLOAT,
+ ) -> (),
+}}
+RIDL!{#[uuid(0x8c427831, 0x3d90, 0x4476, 0xb6, 0x47, 0xc4, 0xfa, 0xe3, 0x49, 0xe4, 0xdb)]
+interface ID2D1DeviceContext4(ID2D1DeviceContext4Vtbl):
+ ID2D1DeviceContext3(ID2D1DeviceContext3Vtbl) {
+ fn CreateSvgGlyphStyle(
+ svgGlyphStyle: *mut *mut ID2D1SvgGlyphStyle,
+ ) -> HRESULT,
+ fn DrawText(
+ string: *const WCHAR,
+ stringLength: UINT32,
+ textFormat: *mut IDWriteTextFormat,
+ layoutRect: *const D2D1_RECT_F,
+ defaultFillBrush: *mut ID2D1Brush,
+ svgGlyphStyle: *mut ID2D1SvgGlyphStyle,
+ colorPaletteIndex: UINT32,
+ options: D2D1_DRAW_TEXT_OPTIONS,
+ measuringMode: DWRITE_MEASURING_MODE,
+ ) -> (),
+ fn DrawTextLayout(
+ origin: D2D1_POINT_2F,
+ textLayout: *mut IDWriteTextLayout,
+ defaultFillBrush: *mut ID2D1Brush,
+ svgGlyphStyle: *mut ID2D1SvgGlyphStyle,
+ colorPaletteIndex: UINT32,
+ options: D2D1_DRAW_TEXT_OPTIONS,
+ ) -> (),
+ fn DrawColorBitmapGlyphRun(
+ glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
+ baselineOrigin: D2D1_POINT_2F,
+ glyphRun: *const DWRITE_GLYPH_RUN,
+ measuringMode: DWRITE_MEASURING_MODE,
+ bitmapSnapOption: D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION,
+ ) -> (),
+ fn DrawSvgGlyphRun(
+ baselineOrigin: D2D1_POINT_2F,
+ glyphRun: *const DWRITE_GLYPH_RUN,
+ defaultFillBrush: *mut ID2D1Brush,
+ svgGlyphStyle: *mut ID2D1SvgGlyphStyle,
+ colorPaletteIndex: UINT32,
+ measuringMode: DWRITE_MEASURING_MODE,
+ ) -> (),
+ fn GetColorBitmapGlyphImage(
+ glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
+ glyphOrigin: D2D1_POINT_2F,
+ fontFace: *mut IDWriteFontFace,
+ fontEmSize: FLOAT,
+ glyphIndex: UINT16,
+ isSideways: BOOL,
+ worldTransform: *const D2D1_MATRIX_3X2_F,
+ dpiX: FLOAT,
+ dpiY: FLOAT,
+ glyphTransform: *mut D2D1_MATRIX_3X2_F,
+ glyphImage: *mut *mut ID2D1Image,
+ ) -> HRESULT,
+ fn GetSvgGlyphImage(
+ glyphImageFormat: DWRITE_GLYPH_IMAGE_FORMATS,
+ glyphOrigin: D2D1_POINT_2F,
+ fontFace: *mut IDWriteFontFace,
+ fontEmSize: FLOAT,
+ glyphIndex: UINT16,
+ isSideways: BOOL,
+ worldTransform: *const D2D1_MATRIX_3X2_F,
+ defaultFillBrush: *mut ID2D1Brush,
+ svgGlyphStyle: *mut ID2D1SvgGlyphStyle,
+ colorPaletteIndex: UINT32,
+ glyphTransform: *mut D2D1_MATRIX_3X2_F,
+ glyphImage: *mut *mut ID2D1CommandList,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xd7bdb159, 0x5683, 0x4a46, 0xbc, 0x9c, 0x72, 0xdc, 0x72, 0x0b, 0x85, 0x8b)]
+interface ID2D1Device4(ID2D1Device4Vtbl): ID2D1Device3(ID2D1Device3Vtbl) {
+ fn CreateDeviceContext(
+ options: D2D1_DEVICE_CONTEXT_OPTIONS,
+ deviceContext4: *mut *mut ID2D1DeviceContext4,
+ ) -> HRESULT,
+ fn SetMaximumColorGlyphCacheMemory(
+ maximumInBytes: UINT64,
+ ) -> (),
+ fn GetMaximumColorGlyphCacheMemory() -> UINT64,
+}}
+RIDL!{#[uuid(0xc4349994, 0x838e, 0x4b0f, 0x8c, 0xab, 0x44, 0x99, 0x7d, 0x9e, 0xea, 0xcc)]
+interface ID2D1Factory5(ID2D1Factory5Vtbl): ID2D1Factory4(ID2D1Factory4Vtbl) {
+ fn CreateDevice(
+ dxgiDevice: *mut IDXGIDevice,
+ d2dDevice4: *mut *mut ID2D1Device4,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xc78a6519, 0x40d6, 0x4218, 0xb2, 0xde, 0xbe, 0xee, 0xb7, 0x44, 0xbb, 0x3e)]
+interface ID2D1CommandSink4(ID2D1CommandSink4Vtbl): ID2D1CommandSink3(ID2D1CommandSink3Vtbl) {
+ fn SetPrimitiveBlend2(
+ primitiveBlend: D2D1_PRIMITIVE_BLEND,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x1ab42875, 0xc57f, 0x4be9, 0xbd, 0x85, 0x9c, 0xd7, 0x8d, 0x6f, 0x55, 0xee)]
+interface ID2D1ColorContext1(ID2D1ColorContext1Vtbl): ID2D1ColorContext(ID2D1ColorContextVtbl) {
+ fn GetColorContextType() -> D2D1_COLOR_CONTEXT_TYPE,
+ fn GetDXGIColorSpace() -> DXGI_COLOR_SPACE_TYPE,
+ fn GetSimpleColorProfile(
+ simpleProfile: *mut D2D1_SIMPLE_COLOR_PROFILE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x7836d248, 0x68cc, 0x4df6, 0xb9, 0xe8, 0xde, 0x99, 0x1b, 0xf6, 0x2e, 0xb7)]
+interface ID2D1DeviceContext5(ID2D1DeviceContext5Vtbl):
+ ID2D1DeviceContext4(ID2D1DeviceContext4Vtbl) {
+ fn CreateSvgDocument(
+ inputXmlStream: *mut IStream,
+ viewportSize: D2D1_SIZE_F,
+ svgDocument: *mut *mut ID2D1SvgDocument,
+ ) -> HRESULT,
+ fn DrawSvgDocument(
+ svgDocument: *mut ID2D1SvgDocument,
+ ) -> (),
+ fn CreateColorContextFromDxgiColorSpace(
+ colorSpace: DXGI_COLOR_SPACE_TYPE,
+ colorContext: *mut *mut ID2D1ColorContext1,
+ ) -> HRESULT,
+ fn CreateColorContextFromSimpleColorProfile(
+ simpleProfile: *const D2D1_SIMPLE_COLOR_PROFILE,
+ colorContext: *mut *mut ID2D1ColorContext1,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xd55ba0a4, 0x6405, 0x4694, 0xae, 0xf5, 0x08, 0xee, 0x1a, 0x43, 0x58, 0xb4)]
+interface ID2D1Device5(ID2D1Device5Vtbl): ID2D1Device4(ID2D1Device4Vtbl) {
+ fn CreateDeviceContext(
+ options: D2D1_DEVICE_CONTEXT_OPTIONS,
+ deviceContext5: *mut *mut ID2D1DeviceContext5,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xf9976f46, 0xf642, 0x44c1, 0x97, 0xca, 0xda, 0x32, 0xea, 0x2a, 0x26, 0x35)]
+interface ID2D1Factory6(ID2D1Factory6Vtbl): ID2D1Factory5(ID2D1Factory5Vtbl) {
+ fn CreateDevice(
+ dxgiDevice: *mut IDXGIDevice,
+ d2dDevice5: *mut *mut ID2D1Device5,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x7047dd26, 0xb1e7, 0x44a7, 0x95, 0x9a, 0x83, 0x49, 0xe2, 0x14, 0x4f, 0xa8)]
+interface ID2D1CommandSink5(ID2D1CommandSink5Vtbl): ID2D1CommandSink4(ID2D1CommandSink4Vtbl) {
+ fn BlendImage(
+ image: *mut ID2D1Image,
+ blendMode: D2D1_BLEND_MODE,
+ targetOffset: *const D2D1_POINT_2F,
+ imageRectangle: *const D2D1_RECT_F,
+ interpolationMode: D2D1_INTERPOLATION_MODE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x985f7e37, 0x4ed0, 0x4a19, 0x98, 0xa3, 0x15, 0xb0, 0xed, 0xfd, 0xe3, 0x06)]
+interface ID2D1DeviceContext6(ID2D1DeviceContext6Vtbl):
+ ID2D1DeviceContext5(ID2D1DeviceContext5Vtbl) {
+ fn BlendImage(
+ image: *mut ID2D1Image,
+ blendMode: D2D1_BLEND_MODE,
+ targetOffset: *const D2D1_POINT_2F,
+ imageRectangle: *const D2D1_RECT_F,
+ interpolationMode: D2D1_INTERPOLATION_MODE,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0x7bfef914, 0x2d75, 0x4bad, 0xbe, 0x87, 0xe1, 0x8d, 0xdb, 0x07, 0x7b, 0x6d)]
+interface ID2D1Device6(ID2D1Device6Vtbl): ID2D1Device5(ID2D1Device5Vtbl) {
+ fn CreateDeviceContext(
+ options: D2D1_DEVICE_CONTEXT_OPTIONS,
+ deviceContext6: *mut *mut ID2D1DeviceContext6,
+ ) -> HRESULT,
+}}
+RIDL!{#[uuid(0xbdc2bdd3, 0xb96c, 0x4de6, 0xbd, 0xf7, 0x99, 0xd4, 0x74, 0x54, 0x54, 0xde)]
+interface ID2D1Factory7(ID2D1Factory7Vtbl): ID2D1Factory6(ID2D1Factory6Vtbl) {
+ fn CreateDevice(
+ dxgiDevice: *mut IDXGIDevice,
+ d2dDevice6: *mut *mut ID2D1Device6,
+ ) -> HRESULT,
+}}
+extern "system" {
+ pub fn D2D1GetGradientMeshInteriorPointsFromCoonsPatch(
+ pPoint0: *const D2D1_POINT_2F,
+ pPoint1: *const D2D1_POINT_2F,
+ pPoint2: *const D2D1_POINT_2F,
+ pPoint3: *const D2D1_POINT_2F,
+ pPoint4: *const D2D1_POINT_2F,
+ pPoint5: *const D2D1_POINT_2F,
+ pPoint6: *const D2D1_POINT_2F,
+ pPoint7: *const D2D1_POINT_2F,
+ pPoint8: *const D2D1_POINT_2F,
+ pPoint9: *const D2D1_POINT_2F,
+ pPoint10: *const D2D1_POINT_2F,
+ pPoint11: *const D2D1_POINT_2F,
+ pTensorPoint11: *mut D2D1_POINT_2F,
+ pTensorPoint12: *mut D2D1_POINT_2F,
+ pTensorPoint21: *mut D2D1_POINT_2F,
+ pTensorPoint22: *mut D2D1_POINT_2F,
+ );
+}