2022-03-29 11:23:40 +02:00
|
|
|
/*
|
|
|
|
* Copyright 2022 Ziqing Hui for CodeWeavers
|
|
|
|
*
|
|
|
|
* This library is free software; you can redistribute it and/or
|
|
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
|
|
* License as published by the Free Software Foundation; either
|
|
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This library is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
|
|
* Lesser General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
|
|
* License along with this library; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
*/
|
|
|
|
|
|
|
|
import "d2d1_2.idl";
|
|
|
|
|
|
|
|
typedef enum D2D1_INK_NIB_SHAPE
|
|
|
|
{
|
|
|
|
D2D1_INK_NIB_SHAPE_ROUND = 0x0,
|
|
|
|
D2D1_INK_NIB_SHAPE_SQUARE = 0x1,
|
|
|
|
D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
|
|
|
|
} D2D1_INK_NIB_SHAPE;
|
|
|
|
|
2022-03-29 11:23:41 +02:00
|
|
|
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;
|
|
|
|
|
2022-03-29 11:23:40 +02:00
|
|
|
[
|
|
|
|
object,
|
|
|
|
uuid(bae8b344-23fc-4071-8cb5-d05d6f073848),
|
|
|
|
local,
|
|
|
|
]
|
|
|
|
interface ID2D1InkStyle : ID2D1Resource
|
|
|
|
{
|
|
|
|
void SetNibTransform(
|
|
|
|
[in] const D2D1_MATRIX_3X2_F *transform
|
|
|
|
);
|
|
|
|
void GetNibTransform(
|
|
|
|
[out] D2D1_MATRIX_3X2_F *transform
|
|
|
|
);
|
|
|
|
void SetNibShape(
|
|
|
|
[in] D2D1_INK_NIB_SHAPE shape
|
|
|
|
);
|
|
|
|
D2D1_INK_NIB_SHAPE GetNibShape();
|
|
|
|
};
|
2022-03-29 11:23:41 +02:00
|
|
|
|
|
|
|
[
|
|
|
|
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
|
|
|
|
);
|
|
|
|
};
|