d2d1: Add the ID2D1Geometry interface.
This commit is contained in:
parent
7b6ee15bc2
commit
2f72c13c37
115
include/d2d1.idl
115
include/d2d1.idl
|
@ -20,6 +20,8 @@ import "unknwn.idl";
|
|||
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 enum D2D1_DEBUG_LEVEL
|
||||
{
|
||||
|
@ -95,6 +97,32 @@ typedef enum D2D1_DASH_STYLE
|
|||
D2D1_DASH_STYLE_FORCE_DWORD = 0xffffffff,
|
||||
} D2D1_DASH_STYLE;
|
||||
|
||||
typedef enum D2D1_GEOMETRY_RELATION
|
||||
{
|
||||
D2D1_GEOMETRY_RELATION_UNKNOWN = 0,
|
||||
D2D1_GEOMETRY_RELATION_DISJOINT = 1,
|
||||
D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2,
|
||||
D2D1_GEOMETRY_RELATION_CONTAINS = 3,
|
||||
D2D1_GEOMETRY_RELATION_OVERLAP = 4,
|
||||
D2D1_GEOMETRY_RELATION_FORCE_DWORD = 0xffffffff,
|
||||
} D2D1_GEOMETRY_RELATION;
|
||||
|
||||
typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION
|
||||
{
|
||||
D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0,
|
||||
D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1,
|
||||
D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD = 0xffffffff,
|
||||
} D2D1_GEOMETRY_SIMPLIFICATION_OPTION;
|
||||
|
||||
typedef enum D2D1_COMBINE_MODE
|
||||
{
|
||||
D2D1_COMBINE_MODE_UNION = 0,
|
||||
D2D1_COMBINE_MODE_INTERSECT = 1,
|
||||
D2D1_COMBINE_MODE_XOR = 2,
|
||||
D2D1_COMBINE_MODE_EXCLUDE = 3,
|
||||
D2D1_COMBINE_MODE_FORCE_DWORD = 0xffffffff,
|
||||
} D2D1_COMBINE_MODE;
|
||||
|
||||
typedef struct D2D1_BEZIER_SEGMENT
|
||||
{
|
||||
D2D1_POINT_2F point1;
|
||||
|
@ -179,5 +207,92 @@ interface ID2D1TessellationSink : IUnknown
|
|||
HRESULT Close();
|
||||
}
|
||||
|
||||
[
|
||||
local,
|
||||
object,
|
||||
uuid(2cd906a1-12e2-11dc-9fed-001143a055f9)
|
||||
]
|
||||
interface ID2D1Geometry : ID2D1Resource
|
||||
{
|
||||
HRESULT GetBounds(
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[out] D2D1_RECT_F *bounds
|
||||
);
|
||||
HRESULT GetWidenedBounds(
|
||||
[in] float stroke_width,
|
||||
[in, optional] ID2D1StrokeStyle *stroke_style,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] D2D1_RECT_F *bounds
|
||||
);
|
||||
HRESULT StrokeContainsPoint(
|
||||
[in] D2D1_POINT_2F point,
|
||||
[in] float stroke_width,
|
||||
[in, optional] ID2D1StrokeStyle *stroke_style,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] BOOL *contains
|
||||
);
|
||||
HRESULT FillContainsPoint(
|
||||
[in] D2D1_POINT_2F point,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] BOOL *contains
|
||||
);
|
||||
HRESULT CompareWithGeometry(
|
||||
[in] ID2D1Geometry *geometry,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] D2D1_GEOMETRY_RELATION *relation
|
||||
);
|
||||
HRESULT Simplify(
|
||||
[in] D2D1_GEOMETRY_SIMPLIFICATION_OPTION option,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[in] ID2D1SimplifiedGeometrySink *sink
|
||||
);
|
||||
HRESULT Tessellate(
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[in] ID2D1TessellationSink *sink
|
||||
);
|
||||
HRESULT CombineWithGeometry(
|
||||
[in] ID2D1Geometry *geometry,
|
||||
[in] D2D1_COMBINE_MODE combine_mode,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[in] ID2D1SimplifiedGeometrySink *sink
|
||||
);
|
||||
HRESULT Outline(
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[in] ID2D1SimplifiedGeometrySink *sink
|
||||
);
|
||||
HRESULT ComputeArea(
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] float *area
|
||||
);
|
||||
HRESULT ComputeLength(
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out] float *length
|
||||
);
|
||||
HRESULT ComputePointAtLength(
|
||||
[in] float length,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[out, optional] D2D1_POINT_2F *point,
|
||||
[out, optional] D2D1_POINT_2F *tangent
|
||||
);
|
||||
HRESULT Widen(
|
||||
[in] float stroke_width,
|
||||
[in, optional] ID2D1StrokeStyle *stroke_style,
|
||||
[in, optional] const D2D1_MATRIX_3X2_F *transform,
|
||||
[in] float tolerance,
|
||||
[in] ID2D1SimplifiedGeometrySink *sink
|
||||
);
|
||||
}
|
||||
|
||||
[local] HRESULT __stdcall D2D1CreateFactory(D2D1_FACTORY_TYPE factory_type, REFIID iid,
|
||||
const D2D1_FACTORY_OPTIONS *factory_options, void **factory);
|
||||
|
|
|
@ -21,3 +21,21 @@ typedef struct D2D_POINT_2F
|
|||
FLOAT x;
|
||||
FLOAT y;
|
||||
} D2D_POINT_2F;
|
||||
|
||||
typedef struct D2D_MATRIX_3X2_F
|
||||
{
|
||||
float _11;
|
||||
float _12;
|
||||
float _21;
|
||||
float _22;
|
||||
float _31;
|
||||
float _32;
|
||||
} D2D_MATRIX_3X2_F;
|
||||
|
||||
typedef struct D2D_RECT_F
|
||||
{
|
||||
float left;
|
||||
float top;
|
||||
float right;
|
||||
float bottom;
|
||||
} D2D_RECT_F;
|
||||
|
|
Loading…
Reference in New Issue