2 * Copyright 2013 Nikolay Sivov for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 import
"d2dbasetypes.h";
24 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
25 cpp_quote
("#undef DrawText")
28 interface ID2D1Factory
;
29 interface ID2D1RenderTarget
;
30 interface ID2D1BitmapRenderTarget
;
31 interface ID2D1Geometry
;
33 interface IDWriteRenderingParams
;
34 interface IDWriteTextFormat
;
35 interface IDWriteTextLayout
;
36 interface IWICBitmapSource
;
38 typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN
;
40 typedef D2D_POINT_2F D2D1_POINT_2F
;
41 typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F
;
42 typedef D2D_RECT_F D2D1_RECT_F
;
43 typedef D2D_SIZE_F D2D1_SIZE_F
;
44 typedef UINT64 D2D1_TAG
;
45 typedef D2D_SIZE_U D2D1_SIZE_U
;
46 typedef D2D_POINT_2U D2D1_POINT_2U
;
47 typedef D2D_RECT_U D2D1_RECT_U
;
48 typedef D2D_COLOR_F D2D1_COLOR_F
;
52 D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR
= 0,
53 D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR
= 1,
54 D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC
= 2,
55 D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR
= 3,
56 D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC
= 4,
57 D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC
= 5,
58 D2D1_INTERPOLATION_MODE_DEFINITION_FANT
= 6,
59 D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR
= 7,
62 typedef enum D2D1_DEBUG_LEVEL
64 D2D1_DEBUG_LEVEL_NONE
= 0,
65 D2D1_DEBUG_LEVEL_ERROR
= 1,
66 D2D1_DEBUG_LEVEL_WARNING
= 2,
67 D2D1_DEBUG_LEVEL_INFORMATION
= 3,
68 D2D1_DEBUG_LEVEL_FORCE_DWORD
= 0xffffffff,
71 typedef enum D2D1_FACTORY_TYPE
73 D2D1_FACTORY_TYPE_SINGLE_THREADED
= 0,
74 D2D1_FACTORY_TYPE_MULTI_THREADED
= 1,
75 D2D1_FACTORY_TYPE_FORCE_DWORD
= 0xfffffff,
78 typedef enum D2D1_FILL_MODE
80 D2D1_FILL_MODE_ALTERNATE
= 0,
81 D2D1_FILL_MODE_WINDING
= 1,
82 D2D1_FILL_MODE_FORCE_DWORD
= 0xffffffff
85 typedef enum D2D1_PATH_SEGMENT
87 D2D1_PATH_SEGMENT_NONE
= 0,
88 D2D1_PATH_SEGMENT_FORCE_UNSTROKED
= 1,
89 D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN
= 2,
90 D2D1_PATH_SEGMENT_FORCE_DWORD
= 0xffffffff
93 typedef enum D2D1_FIGURE_BEGIN
95 D2D1_FIGURE_BEGIN_FILLED
= 0,
96 D2D1_FIGURE_BEGIN_HOLLOW
= 1,
97 D2D1_FIGURE_BEGIN_FORCE_DWORD
= 0xffffffff
100 typedef enum D2D1_FIGURE_END
102 D2D1_FIGURE_END_OPEN
= 0,
103 D2D1_FIGURE_END_CLOSED
= 1,
104 D2D1_FIGURE_END_FORCE_DWORD
= 0xffffffff
107 typedef enum D2D1_CAP_STYLE
109 D2D1_CAP_STYLE_FLAT
= 0,
110 D2D1_CAP_STYLE_SQUARE
= 1,
111 D2D1_CAP_STYLE_ROUND
= 2,
112 D2D1_CAP_STYLE_TRIANGLE
= 3,
113 D2D1_CAP_STYLE_FORCE_DWORD
= 0xffffffff,
116 typedef enum D2D1_LINE_JOIN
118 D2D1_LINE_JOIN_MITER
= 0,
119 D2D1_LINE_JOIN_BEVEL
= 1,
120 D2D1_LINE_JOIN_ROUND
= 2,
121 D2D1_LINE_JOIN_MITER_OR_BEVEL
= 3,
122 D2D1_LINE_JOIN_FORCE_DWORD
= 0xffffffff,
125 typedef enum D2D1_DASH_STYLE
127 D2D1_DASH_STYLE_SOLID
= 0,
128 D2D1_DASH_STYLE_DASH
= 1,
129 D2D1_DASH_STYLE_DOT
= 2,
130 D2D1_DASH_STYLE_DASH_DOT
= 3,
131 D2D1_DASH_STYLE_DASH_DOT_DOT
= 4,
132 D2D1_DASH_STYLE_CUSTOM
= 5,
133 D2D1_DASH_STYLE_FORCE_DWORD
= 0xffffffff,
136 typedef enum D2D1_GEOMETRY_RELATION
138 D2D1_GEOMETRY_RELATION_UNKNOWN
= 0,
139 D2D1_GEOMETRY_RELATION_DISJOINT
= 1,
140 D2D1_GEOMETRY_RELATION_IS_CONTAINED
= 2,
141 D2D1_GEOMETRY_RELATION_CONTAINS
= 3,
142 D2D1_GEOMETRY_RELATION_OVERLAP
= 4,
143 D2D1_GEOMETRY_RELATION_FORCE_DWORD
= 0xffffffff,
144 } D2D1_GEOMETRY_RELATION
;
146 typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION
148 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES
= 0,
149 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES
= 1,
150 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD
= 0xffffffff,
151 } D2D1_GEOMETRY_SIMPLIFICATION_OPTION
;
153 typedef enum D2D1_COMBINE_MODE
155 D2D1_COMBINE_MODE_UNION
= 0,
156 D2D1_COMBINE_MODE_INTERSECT
= 1,
157 D2D1_COMBINE_MODE_XOR
= 2,
158 D2D1_COMBINE_MODE_EXCLUDE
= 3,
159 D2D1_COMBINE_MODE_FORCE_DWORD
= 0xffffffff,
162 typedef enum D2D1_SWEEP_DIRECTION
164 D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE
= 0,
165 D2D1_SWEEP_DIRECTION_CLOCKWISE
= 1,
166 D2D1_SWEEP_DIRECTION_FORCE_DWORD
= 0xffffffff,
167 } D2D1_SWEEP_DIRECTION
;
169 typedef enum D2D1_ARC_SIZE
171 D2D1_ARC_SIZE_SMALL
= 0,
172 D2D1_ARC_SIZE_LARGE
= 1,
173 D2D1_ARC_SIZE_FORCE_DWORD
= 0xffffffff,
176 typedef enum D2D1_ANTIALIAS_MODE
178 D2D1_ANTIALIAS_MODE_PER_PRIMITIVE
= 0,
179 D2D1_ANTIALIAS_MODE_ALIASED
= 1,
180 D2D1_ANTIALIAS_MODE_FORCE_DWORD
= 0xffffffff,
181 } D2D1_ANTIALIAS_MODE
;
183 typedef enum D2D1_TEXT_ANTIALIAS_MODE
185 D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
= 0,
186 D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
= 1,
187 D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
= 2,
188 D2D1_TEXT_ANTIALIAS_MODE_ALIASED
= 3,
189 D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD
= 0xffffffff,
190 } D2D1_TEXT_ANTIALIAS_MODE
;
192 typedef enum D2D1_EXTEND_MODE
194 D2D1_EXTEND_MODE_CLAMP
= 0,
195 D2D1_EXTEND_MODE_WRAP
= 1,
196 D2D1_EXTEND_MODE_MIRROR
= 2,
197 D2D1_EXTEND_MODE_FORCE_DWORD
= 0xffffffff,
200 typedef enum D2D1_BITMAP_INTERPOLATION_MODE
202 D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR
= D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR
,
203 D2D1_BITMAP_INTERPOLATION_MODE_LINEAR
= D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR
,
204 D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD
= 0xffffffff,
205 } D2D1_BITMAP_INTERPOLATION_MODE
;
207 typedef enum D2D1_GAMMA
211 D2D1_GAMMA_FORCE_DWORD
= 0xffffffff,
214 typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
216 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE
= 0x00000000,
217 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE
= 0x00000001,
218 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD
= 0xffffffff,
219 } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
;
221 typedef enum D2D1_OPACITY_MASK_CONTENT
223 D2D1_OPACITY_MASK_CONTENT_GRAPHICS
= 0,
224 D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL
= 1,
225 D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE
= 2,
226 D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD
= 0xffffffff,
227 } D2D1_OPACITY_MASK_CONTENT
;
229 typedef enum D2D1_DRAW_TEXT_OPTIONS
231 D2D1_DRAW_TEXT_OPTIONS_NO_SNAP
= 0x00000001,
232 D2D1_DRAW_TEXT_OPTIONS_CLIP
= 0x00000002,
233 D2D1_DRAW_TEXT_OPTIONS_NONE
= 0x00000000,
234 D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD
= 0xffffffff,
235 } D2D1_DRAW_TEXT_OPTIONS
;
237 typedef enum D2D1_LAYER_OPTIONS
239 D2D1_LAYER_OPTIONS_NONE
= 0x00000000,
240 D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE
= 0x00000001,
241 D2D1_LAYER_OPTIONS_FORCE_DWORD
= 0xffffffff,
242 } D2D1_LAYER_OPTIONS
;
244 typedef enum D2D1_RENDER_TARGET_TYPE
246 D2D1_RENDER_TARGET_TYPE_DEFAULT
= 0,
247 D2D1_RENDER_TARGET_TYPE_SOFTWARE
= 1,
248 D2D1_RENDER_TARGET_TYPE_HARDWARE
= 2,
249 D2D1_RENDER_TARGET_TYPE_FORCE_DWORD
= 0xffffffff,
250 } D2D1_RENDER_TARGET_TYPE
;
252 typedef enum D2D1_RENDER_TARGET_USAGE
254 D2D1_RENDER_TARGET_USAGE_NONE
= 0x00000000,
255 D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING
= 0x00000001,
256 D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE
= 0x00000002,
257 D2D1_RENDER_TARGET_USAGE_FORCE_DWORD
= 0xffffffff,
258 } D2D1_RENDER_TARGET_USAGE
;
260 typedef enum D2D1_FEATURE_LEVEL
262 D2D1_FEATURE_LEVEL_DEFAULT
= 0,
263 D2D1_FEATURE_LEVEL_9
= D3D_FEATURE_LEVEL_9_1
,
264 D2D1_FEATURE_LEVEL_10
= D3D_FEATURE_LEVEL_10_0
,
265 D2D1_FEATURE_LEVEL_FORCE_DWORD
= 0xffffffff,
266 } D2D1_FEATURE_LEVEL
;
268 typedef enum D2D1_WINDOW_STATE
270 D2D1_WINDOW_STATE_NONE
= 0x0000000,
271 D2D1_WINDOW_STATE_OCCLUDED
= 0x0000001,
272 D2D1_WINDOW_STATE_FORCE_DWORD
= 0xffffffff,
275 typedef struct D2D1_BEZIER_SEGMENT
277 D2D1_POINT_2F point1
;
278 D2D1_POINT_2F point2
;
279 D2D1_POINT_2F point3
;
280 } D2D1_BEZIER_SEGMENT
;
282 typedef struct D2D1_FACTORY_OPTIONS
284 D2D1_DEBUG_LEVEL debugLevel
;
285 } D2D1_FACTORY_OPTIONS
;
287 typedef struct D2D1_TRIANGLE
289 D2D1_POINT_2F point1
;
290 D2D1_POINT_2F point2
;
291 D2D1_POINT_2F point3
;
294 typedef struct D2D1_ROUNDED_RECT
301 typedef struct D2D1_ELLIPSE
308 typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT
310 D2D1_POINT_2F point1
;
311 D2D1_POINT_2F point2
;
312 } D2D1_QUADRATIC_BEZIER_SEGMENT
;
314 typedef struct D2D1_ARC_SEGMENT
319 D2D1_SWEEP_DIRECTION sweepDirection
;
320 D2D1_ARC_SIZE arcSize
;
323 typedef struct D2D1_DRAWING_STATE_DESCRIPTION
325 D2D1_ANTIALIAS_MODE antialiasMode
;
326 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
;
329 D2D1_MATRIX_3X2_F transform
;
330 } D2D1_DRAWING_STATE_DESCRIPTION
;
332 typedef struct D2D1_GRADIENT_STOP
336 } D2D1_GRADIENT_STOP
;
338 typedef struct D2D1_BITMAP_PROPERTIES
340 D2D1_PIXEL_FORMAT pixelFormat
;
343 } D2D1_BITMAP_PROPERTIES
;
345 typedef struct D2D1_BITMAP_BRUSH_PROPERTIES
347 D2D1_EXTEND_MODE extendModeX
;
348 D2D1_EXTEND_MODE extendModeY
;
349 D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
;
350 } D2D1_BITMAP_BRUSH_PROPERTIES
;
352 typedef struct D2D1_BRUSH_PROPERTIES
355 D2D1_MATRIX_3X2_F transform
;
356 } D2D1_BRUSH_PROPERTIES
;
358 typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
360 D2D1_POINT_2F startPoint
;
361 D2D1_POINT_2F
endPoint;
362 } D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
;
364 typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
366 D2D1_POINT_2F center
;
367 D2D1_POINT_2F gradientOriginOffset
;
370 } D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
;
372 typedef struct D2D1_LAYER_PARAMETERS
374 D2D1_RECT_F contentBounds
;
375 ID2D1Geometry
*geometricMask
;
376 D2D1_ANTIALIAS_MODE maskAntialiasMode
;
377 D2D1_MATRIX_3X2_F maskTransform
;
379 ID2D1Brush
*opacityBrush
;
380 D2D1_LAYER_OPTIONS layerOptions
;
381 } D2D1_LAYER_PARAMETERS
;
383 typedef struct D2D1_RENDER_TARGET_PROPERTIES
385 D2D1_RENDER_TARGET_TYPE type
;
386 D2D1_PIXEL_FORMAT pixelFormat
;
389 D2D1_RENDER_TARGET_USAGE usage
;
390 D2D1_FEATURE_LEVEL minLevel
;
391 } D2D1_RENDER_TARGET_PROPERTIES
;
396 uuid(2cd90691
-12e2
-11dc
-9fed
-001143a055f9
)
398 interface ID2D1Resource
: IUnknown
401 [out] ID2D1Factory
**factory
408 uuid(2cd9069d
-12e2
-11dc
-9fed
-001143a055f9
)
410 interface ID2D1StrokeStyle
: ID2D1Resource
412 D2D1_CAP_STYLE GetStartCap
();
413 D2D1_CAP_STYLE GetEndCap
();
414 D2D1_CAP_STYLE GetDashCap
();
415 float GetMiterLimit
();
416 D2D1_LINE_JOIN GetLineJoin
();
417 float GetDashOffset
();
418 D2D1_DASH_STYLE GetDashStyle
();
419 UINT32 GetDashesCount
();
421 [out, size_is(count
)] float *dashes
,
429 uuid(2cd9069e
-12e2
-11dc
-9fed
-001143a055f9
)
431 interface ID2D1SimplifiedGeometrySink
: IUnknown
433 void SetFillMode
(D2D1_FILL_MODE mode
);
434 void SetSegmentFlags
(D2D1_PATH_SEGMENT vertexFlags
);
435 void BeginFigure
(D2D1_POINT_2F startPoint
, D2D1_FIGURE_BEGIN figureBegin
);
436 void AddLines
(const D2D1_POINT_2F
*points
, UINT32 count
);
437 void AddBeziers
(const D2D1_BEZIER_SEGMENT
*beziers
, UINT32 count
);
438 void EndFigure
(D2D1_FIGURE_END figureEnd
);
445 uuid(2cd906c1
-12e2
-11dc
-9fed
-001143a055f9
)
447 interface ID2D1TessellationSink
: IUnknown
450 [in, size_is(count
)] const D2D1_TRIANGLE
*triangles
,
459 uuid(2cd906a1
-12e2
-11dc
-9fed
-001143a055f9
)
461 interface ID2D1Geometry
: ID2D1Resource
464 [in] const D2D1_MATRIX_3X2_F
*transform
,
465 [out] D2D1_RECT_F
*bounds
467 HRESULT GetWidenedBounds
(
468 [in] float stroke_width
,
469 [in] ID2D1StrokeStyle
*stroke_style
,
470 [in] const D2D1_MATRIX_3X2_F
*transform
,
471 [in] float tolerance
,
472 [out] D2D1_RECT_F
*bounds
474 HRESULT StrokeContainsPoint
(
475 [in] D2D1_POINT_2F point
,
476 [in] float stroke_width
,
477 [in] ID2D1StrokeStyle
*stroke_style
,
478 [in] const D2D1_MATRIX_3X2_F
*transform
,
479 [in] float tolerance
,
482 HRESULT FillContainsPoint
(
483 [in] D2D1_POINT_2F point
,
484 [in] const D2D1_MATRIX_3X2_F
*transform
,
485 [in] float tolerance
,
488 HRESULT CompareWithGeometry
(
489 [in] ID2D1Geometry
*geometry
,
490 [in] const D2D1_MATRIX_3X2_F
*transform
,
491 [in] float tolerance
,
492 [out] D2D1_GEOMETRY_RELATION
*relation
495 [in] D2D1_GEOMETRY_SIMPLIFICATION_OPTION option
,
496 [in] const D2D1_MATRIX_3X2_F
*transform
,
497 [in] float tolerance
,
498 [in] ID2D1SimplifiedGeometrySink
*sink
501 [in] const D2D1_MATRIX_3X2_F
*transform
,
502 [in] float tolerance
,
503 [in] ID2D1TessellationSink
*sink
505 HRESULT CombineWithGeometry
(
506 [in] ID2D1Geometry
*geometry
,
507 [in] D2D1_COMBINE_MODE combine_mode
,
508 [in] const D2D1_MATRIX_3X2_F
*transform
,
509 [in] float tolerance
,
510 [in] ID2D1SimplifiedGeometrySink
*sink
513 [in] const D2D1_MATRIX_3X2_F
*transform
,
514 [in] float tolerance
,
515 [in] ID2D1SimplifiedGeometrySink
*sink
518 [in] const D2D1_MATRIX_3X2_F
*transform
,
519 [in] float tolerance
,
522 HRESULT ComputeLength
(
523 [in] const D2D1_MATRIX_3X2_F
*transform
,
524 [in] float tolerance
,
527 HRESULT ComputePointAtLength
(
529 [in] const D2D1_MATRIX_3X2_F
*transform
,
530 [in] float tolerance
,
531 [out] D2D1_POINT_2F
*point
,
532 [out] D2D1_POINT_2F
*tangent
535 [in] float stroke_width
,
536 [in] ID2D1StrokeStyle
*stroke_style
,
537 [in] const D2D1_MATRIX_3X2_F
*transform
,
538 [in] float tolerance
,
539 [in] ID2D1SimplifiedGeometrySink
*sink
546 uuid(2cd906a2
-12e2
-11dc
-9fed
-001143a055f9
)
548 interface ID2D1RectangleGeometry
: ID2D1Geometry
551 [out] D2D1_RECT_F
*rect
558 uuid(2cd906a3
-12e2
-11dc
-9fed
-001143a055f9
)
560 interface ID2D1RoundedRectangleGeometry
: ID2D1Geometry
563 [out] D2D1_ROUNDED_RECT
*rect
570 uuid(2cd906a4
-12e2
-11dc
-9fed
-001143a055f9
)
572 interface ID2D1EllipseGeometry
: ID2D1Geometry
575 [out] D2D1_ELLIPSE
*ellipse
582 uuid(2cd906a6
-12e2
-11dc
-9fed
-001143a055f9
)
584 interface ID2D1GeometryGroup
: ID2D1Geometry
586 D2D1_FILL_MODE GetFillMode
();
587 UINT32 GetSourceGeometryCount
();
588 void GetSourceGeometries
(
589 [out, size_is(geometry_count
)] ID2D1Geometry
**geometry
,
590 [in] UINT32 geometry_count
597 uuid(2cd906bb
-12e2
-11dc
-9fed
-001143a055f9
)
599 interface ID2D1TransformedGeometry
: ID2D1Geometry
601 void GetSourceGeometry
(
602 [out] ID2D1Geometry
**geometry
605 [out] D2D1_MATRIX_3X2_F
*transform
612 uuid(2cd9069f
-12e2
-11dc
-9fed
-001143a055f9
)
614 interface ID2D1GeometrySink
: ID2D1SimplifiedGeometrySink
617 [in] D2D1_POINT_2F point
620 [in] const D2D1_BEZIER_SEGMENT
*bezier
622 void AddQuadraticBezier
(
623 [in] const D2D1_QUADRATIC_BEZIER_SEGMENT
*bezier
625 void AddQuadraticBeziers
(
626 [in, size_is(bezier_count
)] const D2D1_QUADRATIC_BEZIER_SEGMENT
*beziers
,
627 [in] UINT32 bezier_count
630 [in] const D2D1_ARC_SEGMENT
*arc
637 uuid(2cd906a5
-12e2
-11dc
-9fed
-001143a055f9
)
639 interface ID2D1PathGeometry
: ID2D1Geometry
642 [out] ID2D1GeometrySink
**sink
645 [in] ID2D1GeometrySink
*sink
647 HRESULT GetSegmentCount
(
650 HRESULT GetFigureCount
(
658 uuid(28506e39
-ebf6
-46a1
-bb47
-fd85565ab957
)
660 interface ID2D1DrawingStateBlock
: ID2D1Resource
663 [out] D2D1_DRAWING_STATE_DESCRIPTION
*desc
666 [in] const D2D1_DRAWING_STATE_DESCRIPTION
*desc
668 void SetTextRenderingParams
(
669 [in] IDWriteRenderingParams
*text_rendering_params
671 void GetTextRenderingParams
(
672 [out] IDWriteRenderingParams
**text_rendering_params
679 uuid(65019f75
-8da2
-497c
-b32c
-dfa34e48ede6
)
681 interface ID2D1Image
: ID2D1Resource
688 uuid(a2296057
-ea42
-4099-983b
-539fb6505426
)
690 interface ID2D1Bitmap
: ID2D1Image
692 D2D1_SIZE_F GetSize
();
693 D2D1_SIZE_U GetPixelSize
();
694 D2D1_PIXEL_FORMAT GetPixelFormat
();
699 HRESULT CopyFromBitmap
(
700 [in] const D2D1_POINT_2U
*dst_point
,
701 [in] ID2D1Bitmap
*bitmap
,
702 [in] const D2D1_RECT_U
*src_rect
704 HRESULT CopyFromRenderTarget
(
705 [in] const D2D1_POINT_2U
*dst_point
,
706 [in] ID2D1RenderTarget
*render_target
,
707 [in] const D2D1_RECT_U
*src_rect
709 HRESULT CopyFromMemory
(
710 [in] const D2D1_RECT_U
*dst_rect
,
711 [in] const void *src_data
,
719 uuid(2cd906a8
-12e2
-11dc
-9fed
-001143a055f9
)
721 interface ID2D1Brush
: ID2D1Resource
727 [in] const D2D1_MATRIX_3X2_F
*transform
731 [out] D2D1_MATRIX_3X2_F
*transform
738 uuid(2cd906aa
-12e2
-11dc
-9fed
-001143a055f9
)
740 interface ID2D1BitmapBrush
: ID2D1Brush
743 [in] D2D1_EXTEND_MODE mode
746 [in] D2D1_EXTEND_MODE mode
748 void SetInterpolationMode
(
749 [in] D2D1_BITMAP_INTERPOLATION_MODE mode
752 [in] ID2D1Bitmap
*bitmap
754 D2D1_EXTEND_MODE GetExtendModeX
();
755 D2D1_EXTEND_MODE GetExtendModeY
();
756 D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode
();
758 [out] ID2D1Bitmap
**bitmap
765 uuid(2cd906a9
-12e2
-11dc
-9fed
-001143a055f9
)
767 interface ID2D1SolidColorBrush
: ID2D1Brush
770 [in] const D2D1_COLOR_F
*color
772 D2D1_COLOR_F GetColor
();
778 uuid(2cd906a7
-12e2
-11dc
-9fed
-001143a055f9
)
780 interface ID2D1GradientStopCollection
: ID2D1Resource
782 UINT32 GetGradientStopCount
();
783 void GetGradientStops
(
784 [out] D2D1_GRADIENT_STOP
*stops
,
785 [in] UINT32 stop_count
787 D2D1_GAMMA GetColorInterpolationGamma
();
788 D2D1_EXTEND_MODE GetExtendMode
();
794 uuid(2cd906ab
-12e2
-11dc
-9fed
-001143a055f9
)
796 interface ID2D1LinearGradientBrush
: ID2D1Brush
799 [in] D2D1_POINT_2F start_point
802 [in] D2D1_POINT_2F end_point
804 D2D1_POINT_2F GetStartPoint
();
805 D2D1_POINT_2F GetEndPoint
();
806 void GetGradientStopCollection
(
807 [out] ID2D1GradientStopCollection
**gradient
814 uuid(2cd906ac
-12e2
-11dc
-9fed
-001143a055f9
)
816 interface ID2D1RadialGradientBrush
: ID2D1Brush
819 [in] D2D1_POINT_2F center
821 void SetGradientOriginOffset
(
822 [in] D2D1_POINT_2F offset
830 D2D1_POINT_2F GetCenter
();
831 D2D1_POINT_2F GetGradientOriginOffset
();
834 void GetGradientStopCollection
(
835 [out] ID2D1GradientStopCollection
**gradient
842 uuid(2cd9069b
-12e2
-11dc
-9fed
-001143a055f9
)
844 interface ID2D1Layer
: ID2D1Resource
846 D2D1_SIZE_F GetSize
();
852 uuid(2cd906c2
-12e2
-11dc
-9fed
-001143a055f9
)
854 interface ID2D1Mesh
: ID2D1Resource
857 [out] ID2D1TessellationSink
**sink
864 uuid(2cd90694
-12e2
-11dc
-9fed
-001143a055f9
)
866 interface ID2D1RenderTarget
: ID2D1Resource
868 HRESULT CreateBitmap
(
869 [in] D2D1_SIZE_U size
,
870 [in] const void *src_data
,
872 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
873 [out] ID2D1Bitmap
**bitmap
875 HRESULT CreateBitmapFromWicBitmap
(
876 [in] IWICBitmapSource
*bitmap_source
,
877 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
878 [out] ID2D1Bitmap
**bitmap
880 HRESULT CreateSharedBitmap
(
882 [in, out] void *data
,
883 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
884 [out] ID2D1Bitmap
**bitmap
886 HRESULT CreateBitmapBrush
(
887 [in] ID2D1Bitmap
*bitmap
,
888 [in] const D2D1_BITMAP_BRUSH_PROPERTIES
*bitmap_brush_desc
,
889 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
890 [out] ID2D1BitmapBrush
**brush
892 HRESULT CreateSolidColorBrush
(
893 [in] const D2D1_COLOR_F
*color
,
894 [in] const D2D1_BRUSH_PROPERTIES
*desc
,
895 [out] ID2D1SolidColorBrush
**brush
897 HRESULT CreateGradientStopCollection
(
898 [in, size_is(stop_count
)] const D2D1_GRADIENT_STOP
*stops
,
899 [in] UINT32 stop_count
,
900 [in] D2D1_GAMMA gamma
,
901 [in] D2D1_EXTEND_MODE extend_mode
,
902 [out] ID2D1GradientStopCollection
**gradient
904 HRESULT CreateLinearGradientBrush
(
905 [in] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
*gradient_brush_desc
,
906 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
907 [in] ID2D1GradientStopCollection
*gradient
,
908 [out] ID2D1LinearGradientBrush
**brush
910 HRESULT CreateRadialGradientBrush
(
911 [in] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
*gradient_brush_desc
,
912 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
913 [in] ID2D1GradientStopCollection
*gradient
,
914 [out] ID2D1RadialGradientBrush
**brush
916 HRESULT CreateCompatibleRenderTarget
(
917 [in] const D2D1_SIZE_F
*size
,
918 [in] const D2D1_SIZE_U
*pixel_size
,
919 [in] const D2D1_PIXEL_FORMAT
*format
,
920 [in] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options
,
921 [out] ID2D1BitmapRenderTarget
**render_target
924 [in] const D2D1_SIZE_F
*size
,
925 [out] ID2D1Layer
**layer
928 [out] ID2D1Mesh
**mesh
931 [in] D2D1_POINT_2F p0
,
932 [in] D2D1_POINT_2F p1
,
933 [in] ID2D1Brush
*brush
,
934 [in] float stroke_width
,
935 [in] ID2D1StrokeStyle
*stroke_style
938 [in] const D2D1_RECT_F
*rect
,
939 [in] ID2D1Brush
*brush
,
940 [in] float stroke_width
,
941 [in] ID2D1StrokeStyle
*stroke_style
944 [in] const D2D1_RECT_F
*rect
,
945 [in] ID2D1Brush
*brush
947 void DrawRoundedRectangle
(
948 [in] const D2D1_ROUNDED_RECT
*rect
,
949 [in] ID2D1Brush
*brush
,
950 [in] float stroke_width
,
951 [in] ID2D1StrokeStyle
*stroke_style
953 void FillRoundedRectangle
(
954 [in] const D2D1_ROUNDED_RECT
*rect
,
955 [in] ID2D1Brush
*brush
958 [in] const D2D1_ELLIPSE
*ellipse
,
959 [in] ID2D1Brush
*brush
,
960 [in] float stroke_width
,
961 [in] ID2D1StrokeStyle
*stroke_style
964 [in] const D2D1_ELLIPSE
*ellipse
,
965 [in] ID2D1Brush
*brush
968 [in] ID2D1Geometry
*geometry
,
969 [in] ID2D1Brush
*brush
,
970 [in] float stroke_width
,
971 [in] ID2D1StrokeStyle
*stroke_style
974 [in] ID2D1Geometry
*geometry
,
975 [in] ID2D1Brush
*brush
,
976 [in] ID2D1Brush
*opacity_brush
979 [in] ID2D1Mesh
*mesh
,
980 [in] ID2D1Brush
*brush
982 void FillOpacityMask
(
983 [in] ID2D1Bitmap
*mask
,
984 [in] ID2D1Brush
*brush
,
985 [in] D2D1_OPACITY_MASK_CONTENT content
,
986 [in] const D2D1_RECT_F
*dst_rect
,
987 [in] const D2D1_RECT_F
*src_rect
990 [in] ID2D1Bitmap
*bitmap
,
991 [in] const D2D1_RECT_F
*dst_rect
,
993 [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode
,
994 [in] const D2D1_RECT_F
*src_rect
997 [in, size_is(string_len
)] const WCHAR
*string,
998 [in] UINT32 string_len
,
999 [in] IDWriteTextFormat
*text_format
,
1000 [in] const D2D1_RECT_F
*layout_rect
,
1001 [in] ID2D1Brush
*brush
,
1002 [in] D2D1_DRAW_TEXT_OPTIONS options
,
1003 [in] DWRITE_MEASURING_MODE measuring_mode
1005 void DrawTextLayout
(
1006 [in] D2D1_POINT_2F origin
,
1007 [in] IDWriteTextLayout
*layout
,
1008 [in] ID2D1Brush
*brush
,
1009 [in] D2D1_DRAW_TEXT_OPTIONS options
1012 [in] D2D1_POINT_2F baseline_origin
,
1013 [in] const DWRITE_GLYPH_RUN
*glyph_run
,
1014 [in] ID2D1Brush
*brush
,
1015 [in] DWRITE_MEASURING_MODE measuring_mode
1018 [in] const D2D1_MATRIX_3X2_F
*transform
1021 [out] D2D1_MATRIX_3X2_F
*transform
1023 void SetAntialiasMode
(
1024 [in] D2D1_ANTIALIAS_MODE antialias_mode
1026 D2D1_ANTIALIAS_MODE GetAntialiasMode
();
1027 void SetTextAntialiasMode
(
1028 [in] D2D1_TEXT_ANTIALIAS_MODE antialias_mode
1030 D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode
();
1031 void SetTextRenderingParams
(
1032 [in] IDWriteRenderingParams
*text_rendering_params
1034 void GetTextRenderingParams
(
1035 [out] IDWriteRenderingParams
**text_rendering_params
1042 [out] D2D1_TAG
*tag1
,
1043 [out] D2D1_TAG
*tag2
1046 [in] const D2D1_LAYER_PARAMETERS
*layer_parameters
,
1047 [in] ID2D1Layer
*layer
1051 [out] D2D1_TAG
*tag1
,
1052 [out] D2D1_TAG
*tag2
1054 void SaveDrawingState
(
1055 [in, out] ID2D1DrawingStateBlock
*state_block
1057 void RestoreDrawingState
(
1058 [in] ID2D1DrawingStateBlock
*state_block
1060 void PushAxisAlignedClip
(
1061 [in] const D2D1_RECT_F
*clip_rect
,
1062 [in] D2D1_ANTIALIAS_MODE antialias_mode
1064 void PopAxisAlignedClip
();
1066 [in] const D2D1_COLOR_F
*color
1070 [out] D2D1_TAG
*tag1
,
1071 [out] D2D1_TAG
*tag2
1073 D2D1_PIXEL_FORMAT GetPixelFormat
();
1082 D2D1_SIZE_F GetSize
();
1083 D2D1_SIZE_U GetPixelSize
();
1084 UINT32 GetMaximumBitmapSize
();
1086 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
1093 uuid(2cd90695
-12e2
-11dc
-9fed
-001143a055f9
)
1095 interface ID2D1BitmapRenderTarget
: ID2D1RenderTarget
1098 [out] ID2D1Bitmap
**bitmap
1105 uuid(2cd90698
-12e2
-11dc
-9fed
-001143a055f9
)
1107 interface ID2D1HwndRenderTarget
: ID2D1RenderTarget
1109 D2D1_WINDOW_STATE CheckWindowState
();
1111 [in] const D2D1_SIZE_U size
1119 uuid(1c51bc64
-de61
-46fd
-9899-63a5d8f03950
)
1121 interface ID2D1DCRenderTarget
: ID2D1RenderTarget
1125 [in] const RECT rect
1129 [local] HRESULT __stdcall D2D1CreateFactory
(D2D1_FACTORY_TYPE factory_type
, REFIID iid
,
1130 const D2D1_FACTORY_OPTIONS
*factory_options
, void **factory
);