Module: wine Branch: master Commit: 29237d832bd5fd8b28282b5f951833d82089d564 URL: http://source.winehq.org/git/wine.git/?a=commit;h=29237d832bd5fd8b28282b5f95...
Author: Henri Verbeet hverbeet@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;