[PATCH 3/5] include: Add defines for ID2D1Ink.

Ziqing Hui zhui at codeweavers.com
Tue Mar 29 04:23:41 CDT 2022


Signed-off-by: Ziqing Hui <zhui at codeweavers.com>
---
 include/d2d1_3.idl | 59 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/include/d2d1_3.idl b/include/d2d1_3.idl
index 3b27439f2d1..93c273816e2 100644
--- a/include/d2d1_3.idl
+++ b/include/d2d1_3.idl
@@ -25,6 +25,20 @@ typedef enum D2D1_INK_NIB_SHAPE
     D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
 } D2D1_INK_NIB_SHAPE;
 
+typedef struct D2D1_INK_POINT
+{
+    float x;
+    float y;
+    float radius;
+} D2D1_INK_POINT;
+
+typedef struct D2D1_INK_BEZIER_SEGMENT
+{
+    D2D1_INK_POINT point1;
+    D2D1_INK_POINT point2;
+    D2D1_INK_POINT point3;
+} D2D1_INK_BEZIER_SEGMENT;
+
 [
     object,
     uuid(bae8b344-23fc-4071-8cb5-d05d6f073848),
@@ -43,3 +57,48 @@ interface ID2D1InkStyle : ID2D1Resource
     );
     D2D1_INK_NIB_SHAPE GetNibShape();
 };
+
+[
+    object,
+    uuid(b499923b-7029-478f-a8b3-432c7c5f5312),
+    local,
+]
+interface ID2D1Ink : ID2D1Resource
+{
+    void SetStartPoint(
+        [in] const D2D1_INK_POINT *start_point
+    );
+    D2D1_INK_POINT GetStartPoint();
+    HRESULT AddSegments(
+        [in] const D2D1_INK_BEZIER_SEGMENT *segments,
+        [in] UINT32 segment_count
+    );
+    HRESULT RemoveSegmentsAtEnd(
+        [in] UINT32 segment_count
+    );
+    HRESULT SetSegments(
+        [in] UINT32 start_segment,
+        [in] const D2D1_INK_BEZIER_SEGMENT *segments,
+        [in] UINT32 segment_count
+    );
+    HRESULT SetSegmentAtEnd(
+        [in] const D2D1_INK_BEZIER_SEGMENT *segment
+    );
+    UINT32 GetSegmentCount();
+    HRESULT GetSegments(
+        [in] UINT32 start_segment,
+        [out] D2D1_INK_BEZIER_SEGMENT *segments,
+        [in] UINT32 segment_count
+    );
+    HRESULT StreamAsGeometry(
+        [in, optional] ID2D1InkStyle *ink_style,
+        [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
+        [in] float flattening_tolerance,
+        [in] ID2D1SimplifiedGeometrySink *geometry_sink
+    );
+    HRESULT GetBounds(
+        [in, optional] ID2D1InkStyle *ink_style,
+        [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
+        [out] D2D1_RECT_F *bounds
+    );
+};
-- 
2.25.1




More information about the wine-devel mailing list