Henri Verbeet : d2d1: Add the ID2D1GeometrySink interface.

Alexandre Julliard julliard at winehq.org
Tue May 13 14:23:46 CDT 2014


Module: wine
Branch: master
Commit: 29237d832bd5fd8b28282b5f951833d82089d564
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=29237d832bd5fd8b28282b5f951833d82089d564

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Tue May 13 09:41:13 2014 +0200

d2d1: Add the ID2D1GeometrySink interface.

---

 include/d2d1.idl       |   55 ++++++++++++++++++++++++++++++++++++++++++++++++
 include/d2dbasetypes.h |    6 ++++++
 2 files changed, 61 insertions(+)

diff --git a/include/d2d1.idl b/include/d2d1.idl
index 27a617c..bfed202 100644
--- a/include/d2d1.idl
+++ b/include/d2d1.idl
@@ -22,6 +22,7 @@ import "d2dbasetypes.h";
 typedef D2D_POINT_2F D2D1_POINT_2F;
 typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
 typedef D2D_RECT_F D2D1_RECT_F;
+typedef D2D_SIZE_F D2D1_SIZE_F;
 
 typedef enum D2D1_DEBUG_LEVEL
 {
@@ -123,6 +124,20 @@ typedef enum D2D1_COMBINE_MODE
     D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff,
 } D2D1_COMBINE_MODE;
 
+typedef enum D2D1_SWEEP_DIRECTION
+{
+    D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0,
+    D2D1_SWEEP_DIRECTION_CLOCKWISE = 1,
+    D2D1_SWEEP_DIRECTION_FORCE_DWORD = 0xffffffff,
+} D2D1_SWEEP_DIRECTION;
+
+typedef enum D2D1_ARC_SIZE
+{
+    D2D1_ARC_SIZE_SMALL = 0,
+    D2D1_ARC_SIZE_LARGE = 1,
+    D2D1_ARC_SIZE_FORCE_DWORD = 0xffffffff,
+} D2D1_ARC_SIZE;
+
 typedef struct D2D1_BEZIER_SEGMENT
 {
     D2D1_POINT_2F point1;
@@ -156,6 +171,21 @@ typedef struct D2D1_ELLIPSE
     float radiusY;
 } D2D1_ELLIPSE;
 
+typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT
+{
+    D2D1_POINT_2F point1;
+    D2D1_POINT_2F point2;
+} D2D1_QUADRATIC_BEZIER_SEGMENT;
+
+typedef struct D2D1_ARC_SEGMENT
+{
+    D2D1_POINT_2F point;
+    D2D1_SIZE_F size;
+    float rotationAngle;
+    D2D1_SWEEP_DIRECTION sweepDirection;
+    D2D1_ARC_SIZE arcSize;
+} D2D1_ARC_SEGMENT;
+
 interface ID2D1Factory;
 
 [
@@ -374,5 +404,30 @@ interface ID2D1TransformedGeometry : ID2D1Geometry
     );
 }
 
+[
+    local,
+    object,
+    uuid(2cd9069f-12e2-11dc-9fed-001143a055f9)
+]
+interface ID2D1GeometrySink : ID2D1SimplifiedGeometrySink
+{
+    void AddLine(
+        [in] D2D1_POINT_2F point
+    );
+    void AddBezier(
+        [in] const D2D1_BEZIER_SEGMENT *bezier
+    );
+    void AddQuadraticBezier(
+        [in] const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier
+    );
+    void AddQuadraticBeziers(
+        [in, size_is(bezier_count)] const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers,
+        [in] UINT32 bezier_count
+    );
+    void AddArc(
+        [in] const D2D1_ARC_SEGMENT *arc
+    );
+}
+
 [local] HRESULT __stdcall D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid,
         const D2D1_FACTORY_OPTIONS *factory_options, void **factory);
diff --git a/include/d2dbasetypes.h b/include/d2dbasetypes.h
index 385e0b3..4ddb994 100644
--- a/include/d2dbasetypes.h
+++ b/include/d2dbasetypes.h
@@ -39,3 +39,9 @@ typedef struct D2D_RECT_F
     float right;
     float bottom;
 } D2D_RECT_F;
+
+typedef struct D2D_SIZE_F
+{
+    float width;
+    float height;
+} D2D_SIZE_F;




More information about the wine-cvs mailing list