winapi_ui_automation/um/
d2d1_2.rs

1// Licensed under the Apache License, Version 2.0
2// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
3// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
4// All files in the project carrying such notice may not be copied, modified, or distributed
5// except according to those terms.
6//! Mappings for the contents of d2d1_2.h
7use shared::dxgi::IDXGIDevice;
8use shared::minwindef::FLOAT;
9use um::d2d1::{ID2D1Brush, ID2D1Geometry, ID2D1StrokeStyle};
10use um::d2d1::{ID2D1Resource, ID2D1ResourceVtbl};
11use um::d2d1_1::{D2D1_DEVICE_CONTEXT_OPTIONS, D2D1_PRIMITIVE_BLEND};
12use um::d2d1_1::{ID2D1DeviceContext, ID2D1DeviceContextVtbl};
13use um::d2d1_1::{ID2D1Device, ID2D1DeviceVtbl};
14use um::d2d1_1::{ID2D1Factory1, ID2D1Factory1Vtbl};
15use um::d2d1_1::{ID2D1CommandSink, ID2D1CommandSinkVtbl};
16use um::winnt::HRESULT;
17ENUM!{enum D2D1_RENDERING_PRIORITY {
18    D2D1_RENDERING_PRIORITY_NORMAL = 0,
19    D2D1_RENDERING_PRIORITY_LOW = 1,
20    D2D1_RENDERING_PRIORITY_FORCE_DWORD = 0xffffffff,
21}}
22RIDL!{#[uuid(0xa16907d7, 0xbc02, 0x4801, 0x99, 0xe8, 0x8c, 0xf7, 0xf4, 0x85, 0xf7, 0x74)]
23interface ID2D1GeometryRealization(ID2D1GeometryRealizationVtbl):
24    ID2D1Resource(ID2D1ResourceVtbl) {}}
25RIDL!{#[uuid(0xd37f57e4, 0x6908, 0x459f, 0xa1, 0x99, 0xe7, 0x2f, 0x24, 0xf7, 0x99, 0x87)]
26interface ID2D1DeviceContext1(ID2D1DeviceContext1Vtbl):
27    ID2D1DeviceContext(ID2D1DeviceContextVtbl) {
28    fn CreateFilledGeometryRealization(
29        geometry: *mut ID2D1Geometry,
30        flatteningTolerance: FLOAT,
31        geometryRealization: *mut *mut ID2D1GeometryRealization,
32    ) -> HRESULT,
33    fn CreateStrokedGeometryRealization(
34        geometry: *mut ID2D1Geometry,
35        flatteningTolerance: FLOAT,
36        strokeWidth: FLOAT,
37        strokeStyle: *mut ID2D1StrokeStyle,
38        geometryRealization: *mut *mut ID2D1GeometryRealization,
39    ) -> HRESULT,
40    fn DrawGeometryRealization(
41        geometryRealization: *mut ID2D1GeometryRealization,
42        brush: *mut ID2D1Brush,
43    ) -> (),
44}}
45RIDL!{#[uuid(0xd21768e1, 0x23a4, 0x4823, 0xa1, 0x4b, 0x7c, 0x3e, 0xba, 0x85, 0xd6, 0x58)]
46interface ID2D1Device1(ID2D1Device1Vtbl): ID2D1Device(ID2D1DeviceVtbl) {
47    fn GetRenderingPriority() -> D2D1_RENDERING_PRIORITY,
48    fn SetRenderingPriority(
49        renderingPriority: D2D1_RENDERING_PRIORITY,
50    ) -> (),
51    fn CreateDeviceContext(
52        options: D2D1_DEVICE_CONTEXT_OPTIONS,
53        deviceContext1: *mut *mut ID2D1DeviceContext1,
54    ) -> HRESULT,
55}}
56RIDL!{#[uuid(0x94f81a73, 0x9212, 0x4376, 0x9c, 0x58, 0xb1, 0x6a, 0x3a, 0x0d, 0x39, 0x92)]
57interface ID2D1Factory2(ID2D1Factory2Vtbl): ID2D1Factory1(ID2D1Factory1Vtbl) {
58    fn CreateDevice(
59        dxgiDevice: *mut IDXGIDevice,
60        d2dDevice1: *mut *mut ID2D1Device1,
61    ) -> HRESULT,
62}}
63RIDL!{#[uuid(0x9eb767fd, 0x4269, 0x4467, 0xb8, 0xc2, 0xeb, 0x30, 0xcb, 0x30, 0x57, 0x43)]
64interface ID2D1CommandSink1(ID2D1CommandSink1Vtbl): ID2D1CommandSink(ID2D1CommandSinkVtbl) {
65    fn SetPrimitiveBlend1(
66        primitiveBlend: D2D1_PRIMITIVE_BLEND,
67    ) -> HRESULT,
68}}