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";
25 cpp_quote
("#ifdef WINE_NO_UNICODE_MACROS")
26 cpp_quote
("#undef DrawText")
29 interface ID2D1Factory
;
30 interface ID2D1RenderTarget
;
31 interface ID2D1BitmapRenderTarget
;
32 interface ID2D1Geometry
;
34 interface IDWriteRenderingParams
;
35 interface IDWriteTextFormat
;
36 interface IDWriteTextLayout
;
37 interface IWICBitmapSource
;
40 cpp_quote
("#ifndef __dwrite_h__")
41 /* already defined in dwrite.h but needed for WIDL */
42 typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN
;
43 cpp_quote
("#endif /* __dwrite_h__ */")
45 typedef D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F
;
46 typedef D2D_RECT_F D2D1_RECT_F
;
47 typedef D2D_SIZE_F D2D1_SIZE_F
;
48 typedef UINT64 D2D1_TAG
;
49 typedef D2D_POINT_2U D2D1_POINT_2U
;
50 typedef D2D_RECT_U D2D1_RECT_U
;
51 typedef D2D_COLOR_F D2D1_COLOR_F
;
55 D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR
= 0,
56 D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR
= 1,
57 D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC
= 2,
58 D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR
= 3,
59 D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC
= 4,
60 D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC
= 5,
61 D2D1_INTERPOLATION_MODE_DEFINITION_FANT
= 6,
62 D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR
= 7,
65 typedef enum D2D1_DEBUG_LEVEL
67 D2D1_DEBUG_LEVEL_NONE
= 0,
68 D2D1_DEBUG_LEVEL_ERROR
= 1,
69 D2D1_DEBUG_LEVEL_WARNING
= 2,
70 D2D1_DEBUG_LEVEL_INFORMATION
= 3,
71 D2D1_DEBUG_LEVEL_FORCE_DWORD
= 0xffffffff,
74 typedef enum D2D1_FACTORY_TYPE
76 D2D1_FACTORY_TYPE_SINGLE_THREADED
= 0,
77 D2D1_FACTORY_TYPE_MULTI_THREADED
= 1,
78 D2D1_FACTORY_TYPE_FORCE_DWORD
= 0xfffffff,
81 typedef enum D2D1_FILL_MODE
83 D2D1_FILL_MODE_ALTERNATE
= 0,
84 D2D1_FILL_MODE_WINDING
= 1,
85 D2D1_FILL_MODE_FORCE_DWORD
= 0xffffffff
88 typedef enum D2D1_PATH_SEGMENT
90 D2D1_PATH_SEGMENT_NONE
= 0,
91 D2D1_PATH_SEGMENT_FORCE_UNSTROKED
= 1,
92 D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN
= 2,
93 D2D1_PATH_SEGMENT_FORCE_DWORD
= 0xffffffff
96 typedef enum D2D1_FIGURE_BEGIN
98 D2D1_FIGURE_BEGIN_FILLED
= 0,
99 D2D1_FIGURE_BEGIN_HOLLOW
= 1,
100 D2D1_FIGURE_BEGIN_FORCE_DWORD
= 0xffffffff
103 typedef enum D2D1_FIGURE_END
105 D2D1_FIGURE_END_OPEN
= 0,
106 D2D1_FIGURE_END_CLOSED
= 1,
107 D2D1_FIGURE_END_FORCE_DWORD
= 0xffffffff
110 typedef enum D2D1_CAP_STYLE
112 D2D1_CAP_STYLE_FLAT
= 0,
113 D2D1_CAP_STYLE_SQUARE
= 1,
114 D2D1_CAP_STYLE_ROUND
= 2,
115 D2D1_CAP_STYLE_TRIANGLE
= 3,
116 D2D1_CAP_STYLE_FORCE_DWORD
= 0xffffffff,
119 typedef enum D2D1_LINE_JOIN
121 D2D1_LINE_JOIN_MITER
= 0,
122 D2D1_LINE_JOIN_BEVEL
= 1,
123 D2D1_LINE_JOIN_ROUND
= 2,
124 D2D1_LINE_JOIN_MITER_OR_BEVEL
= 3,
125 D2D1_LINE_JOIN_FORCE_DWORD
= 0xffffffff,
128 typedef enum D2D1_DASH_STYLE
130 D2D1_DASH_STYLE_SOLID
= 0,
131 D2D1_DASH_STYLE_DASH
= 1,
132 D2D1_DASH_STYLE_DOT
= 2,
133 D2D1_DASH_STYLE_DASH_DOT
= 3,
134 D2D1_DASH_STYLE_DASH_DOT_DOT
= 4,
135 D2D1_DASH_STYLE_CUSTOM
= 5,
136 D2D1_DASH_STYLE_FORCE_DWORD
= 0xffffffff,
139 typedef enum D2D1_GEOMETRY_RELATION
141 D2D1_GEOMETRY_RELATION_UNKNOWN
= 0,
142 D2D1_GEOMETRY_RELATION_DISJOINT
= 1,
143 D2D1_GEOMETRY_RELATION_IS_CONTAINED
= 2,
144 D2D1_GEOMETRY_RELATION_CONTAINS
= 3,
145 D2D1_GEOMETRY_RELATION_OVERLAP
= 4,
146 D2D1_GEOMETRY_RELATION_FORCE_DWORD
= 0xffffffff,
147 } D2D1_GEOMETRY_RELATION
;
149 typedef enum D2D1_GEOMETRY_SIMPLIFICATION_OPTION
151 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES
= 0,
152 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES
= 1,
153 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD
= 0xffffffff,
154 } D2D1_GEOMETRY_SIMPLIFICATION_OPTION
;
156 typedef enum D2D1_COMBINE_MODE
158 D2D1_COMBINE_MODE_UNION
= 0,
159 D2D1_COMBINE_MODE_INTERSECT
= 1,
160 D2D1_COMBINE_MODE_XOR
= 2,
161 D2D1_COMBINE_MODE_EXCLUDE
= 3,
162 D2D1_COMBINE_MODE_FORCE_DWORD
= 0xffffffff,
165 typedef enum D2D1_SWEEP_DIRECTION
167 D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE
= 0,
168 D2D1_SWEEP_DIRECTION_CLOCKWISE
= 1,
169 D2D1_SWEEP_DIRECTION_FORCE_DWORD
= 0xffffffff,
170 } D2D1_SWEEP_DIRECTION
;
172 typedef enum D2D1_ARC_SIZE
174 D2D1_ARC_SIZE_SMALL
= 0,
175 D2D1_ARC_SIZE_LARGE
= 1,
176 D2D1_ARC_SIZE_FORCE_DWORD
= 0xffffffff,
179 typedef enum D2D1_ANTIALIAS_MODE
181 D2D1_ANTIALIAS_MODE_PER_PRIMITIVE
= 0,
182 D2D1_ANTIALIAS_MODE_ALIASED
= 1,
183 D2D1_ANTIALIAS_MODE_FORCE_DWORD
= 0xffffffff,
184 } D2D1_ANTIALIAS_MODE
;
186 typedef enum D2D1_TEXT_ANTIALIAS_MODE
188 D2D1_TEXT_ANTIALIAS_MODE_DEFAULT
= 0,
189 D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE
= 1,
190 D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE
= 2,
191 D2D1_TEXT_ANTIALIAS_MODE_ALIASED
= 3,
192 D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD
= 0xffffffff,
193 } D2D1_TEXT_ANTIALIAS_MODE
;
195 typedef enum D2D1_EXTEND_MODE
197 D2D1_EXTEND_MODE_CLAMP
= 0,
198 D2D1_EXTEND_MODE_WRAP
= 1,
199 D2D1_EXTEND_MODE_MIRROR
= 2,
200 D2D1_EXTEND_MODE_FORCE_DWORD
= 0xffffffff,
203 typedef enum D2D1_BITMAP_INTERPOLATION_MODE
205 D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR
= D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR
,
206 D2D1_BITMAP_INTERPOLATION_MODE_LINEAR
= D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR
,
207 D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD
= 0xffffffff,
208 } D2D1_BITMAP_INTERPOLATION_MODE
;
210 typedef enum D2D1_GAMMA
214 D2D1_GAMMA_FORCE_DWORD
= 0xffffffff,
217 typedef enum D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
219 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE
= 0x00000000,
220 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE
= 0x00000001,
221 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD
= 0xffffffff,
222 } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS
;
224 typedef enum D2D1_OPACITY_MASK_CONTENT
226 D2D1_OPACITY_MASK_CONTENT_GRAPHICS
= 0,
227 D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL
= 1,
228 D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE
= 2,
229 D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD
= 0xffffffff,
230 } D2D1_OPACITY_MASK_CONTENT
;
232 typedef enum D2D1_DRAW_TEXT_OPTIONS
234 D2D1_DRAW_TEXT_OPTIONS_NO_SNAP
= 0x00000001,
235 D2D1_DRAW_TEXT_OPTIONS_CLIP
= 0x00000002,
236 D2D1_DRAW_TEXT_OPTIONS_NONE
= 0x00000000,
237 D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD
= 0xffffffff,
238 } D2D1_DRAW_TEXT_OPTIONS
;
240 typedef enum D2D1_LAYER_OPTIONS
242 D2D1_LAYER_OPTIONS_NONE
= 0x00000000,
243 D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE
= 0x00000001,
244 D2D1_LAYER_OPTIONS_FORCE_DWORD
= 0xffffffff,
245 } D2D1_LAYER_OPTIONS
;
247 typedef enum D2D1_RENDER_TARGET_TYPE
249 D2D1_RENDER_TARGET_TYPE_DEFAULT
= 0,
250 D2D1_RENDER_TARGET_TYPE_SOFTWARE
= 1,
251 D2D1_RENDER_TARGET_TYPE_HARDWARE
= 2,
252 D2D1_RENDER_TARGET_TYPE_FORCE_DWORD
= 0xffffffff,
253 } D2D1_RENDER_TARGET_TYPE
;
255 typedef enum D2D1_RENDER_TARGET_USAGE
257 D2D1_RENDER_TARGET_USAGE_NONE
= 0x00000000,
258 D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING
= 0x00000001,
259 D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE
= 0x00000002,
260 D2D1_RENDER_TARGET_USAGE_FORCE_DWORD
= 0xffffffff,
261 } D2D1_RENDER_TARGET_USAGE
;
263 typedef enum D2D1_FEATURE_LEVEL
265 D2D1_FEATURE_LEVEL_DEFAULT
= 0,
266 D2D1_FEATURE_LEVEL_9
= D3D_FEATURE_LEVEL_9_1
,
267 D2D1_FEATURE_LEVEL_10
= D3D_FEATURE_LEVEL_10_0
,
268 D2D1_FEATURE_LEVEL_FORCE_DWORD
= 0xffffffff,
269 } D2D1_FEATURE_LEVEL
;
271 typedef enum D2D1_WINDOW_STATE
273 D2D1_WINDOW_STATE_NONE
= 0x0000000,
274 D2D1_WINDOW_STATE_OCCLUDED
= 0x0000001,
275 D2D1_WINDOW_STATE_FORCE_DWORD
= 0xffffffff,
278 typedef enum D2D1_DC_INITIALIZE_MODE
280 D2D1_DC_INITIALIZE_MODE_COPY
= 0,
281 D2D1_DC_INITIALIZE_MODE_CLEAR
= 1,
282 D2D1_DC_INITIALIZE_MODE_FORCE_DWORD
= 0xffffffff,
283 } D2D1_DC_INITIALIZE_MODE
;
285 typedef enum D2D1_PRESENT_OPTIONS
287 D2D1_PRESENT_OPTIONS_NONE
= 0x00000000,
288 D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS
= 0x00000001,
289 D2D1_PRESENT_OPTIONS_IMMEDIATELY
= 0x00000002,
290 D2D1_PRESENT_OPTIONS_FORCE_DWORD
= 0xffffffff,
291 } D2D1_PRESENT_OPTIONS
;
293 typedef struct D2D1_BEZIER_SEGMENT
295 D2D1_POINT_2F point1
;
296 D2D1_POINT_2F point2
;
297 D2D1_POINT_2F point3
;
298 } D2D1_BEZIER_SEGMENT
;
300 typedef struct D2D1_FACTORY_OPTIONS
302 D2D1_DEBUG_LEVEL debugLevel
;
303 } D2D1_FACTORY_OPTIONS
;
305 typedef struct D2D1_TRIANGLE
307 D2D1_POINT_2F point1
;
308 D2D1_POINT_2F point2
;
309 D2D1_POINT_2F point3
;
312 typedef struct D2D1_ROUNDED_RECT
319 typedef struct D2D1_ELLIPSE
326 typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT
328 D2D1_POINT_2F point1
;
329 D2D1_POINT_2F point2
;
330 } D2D1_QUADRATIC_BEZIER_SEGMENT
;
332 typedef struct D2D1_ARC_SEGMENT
337 D2D1_SWEEP_DIRECTION sweepDirection
;
338 D2D1_ARC_SIZE arcSize
;
341 typedef struct D2D1_DRAWING_STATE_DESCRIPTION
343 D2D1_ANTIALIAS_MODE antialiasMode
;
344 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
;
347 D2D1_MATRIX_3X2_F transform
;
348 } D2D1_DRAWING_STATE_DESCRIPTION
;
350 typedef struct D2D1_GRADIENT_STOP
354 } D2D1_GRADIENT_STOP
;
356 typedef struct D2D1_BITMAP_PROPERTIES
358 D2D1_PIXEL_FORMAT pixelFormat
;
361 } D2D1_BITMAP_PROPERTIES
;
363 typedef struct D2D1_BITMAP_BRUSH_PROPERTIES
365 D2D1_EXTEND_MODE extendModeX
;
366 D2D1_EXTEND_MODE extendModeY
;
367 D2D1_BITMAP_INTERPOLATION_MODE interpolationMode
;
368 } D2D1_BITMAP_BRUSH_PROPERTIES
;
370 typedef struct D2D1_BRUSH_PROPERTIES
373 D2D1_MATRIX_3X2_F transform
;
374 } D2D1_BRUSH_PROPERTIES
;
376 typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
378 D2D1_POINT_2F startPoint
;
379 D2D1_POINT_2F
endPoint;
380 } D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
;
382 typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
384 D2D1_POINT_2F center
;
385 D2D1_POINT_2F gradientOriginOffset
;
388 } D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
;
390 typedef struct D2D1_LAYER_PARAMETERS
392 D2D1_RECT_F contentBounds
;
393 ID2D1Geometry
*geometricMask
;
394 D2D1_ANTIALIAS_MODE maskAntialiasMode
;
395 D2D1_MATRIX_3X2_F maskTransform
;
397 ID2D1Brush
*opacityBrush
;
398 D2D1_LAYER_OPTIONS layerOptions
;
399 } D2D1_LAYER_PARAMETERS
;
401 typedef struct D2D1_RENDER_TARGET_PROPERTIES
403 D2D1_RENDER_TARGET_TYPE type
;
404 D2D1_PIXEL_FORMAT pixelFormat
;
407 D2D1_RENDER_TARGET_USAGE usage
;
408 D2D1_FEATURE_LEVEL minLevel
;
409 } D2D1_RENDER_TARGET_PROPERTIES
;
411 typedef struct D2D1_STROKE_STYLE_PROPERTIES
413 D2D1_CAP_STYLE startCap
;
414 D2D1_CAP_STYLE endCap
;
415 D2D1_CAP_STYLE dashCap
;
416 D2D1_LINE_JOIN lineJoin
;
418 D2D1_DASH_STYLE dashStyle
;
420 } D2D1_STROKE_STYLE_PROPERTIES
;
422 typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES
425 D2D1_SIZE_U pixelSize
;
426 D2D1_PRESENT_OPTIONS presentOptions
;
427 } D2D1_HWND_RENDER_TARGET_PROPERTIES
;
432 uuid(2cd90691
-12e2
-11dc
-9fed
-001143a055f9
)
434 interface ID2D1Resource
: IUnknown
437 [out] ID2D1Factory
**factory
444 uuid(2cd9069d
-12e2
-11dc
-9fed
-001143a055f9
)
446 interface ID2D1StrokeStyle
: ID2D1Resource
448 D2D1_CAP_STYLE GetStartCap
();
449 D2D1_CAP_STYLE GetEndCap
();
450 D2D1_CAP_STYLE GetDashCap
();
451 float GetMiterLimit
();
452 D2D1_LINE_JOIN GetLineJoin
();
453 float GetDashOffset
();
454 D2D1_DASH_STYLE GetDashStyle
();
455 UINT32 GetDashesCount
();
457 [out, size_is(count
)] float *dashes
,
465 uuid(2cd9069e
-12e2
-11dc
-9fed
-001143a055f9
)
467 interface ID2D1SimplifiedGeometrySink
: IUnknown
469 void SetFillMode
(D2D1_FILL_MODE mode
);
470 void SetSegmentFlags
(D2D1_PATH_SEGMENT vertexFlags
);
471 void BeginFigure
(D2D1_POINT_2F startPoint
, D2D1_FIGURE_BEGIN figureBegin
);
472 void AddLines
(const D2D1_POINT_2F
*points
, UINT32 count
);
473 void AddBeziers
(const D2D1_BEZIER_SEGMENT
*beziers
, UINT32 count
);
474 void EndFigure
(D2D1_FIGURE_END figureEnd
);
481 uuid(2cd906c1
-12e2
-11dc
-9fed
-001143a055f9
)
483 interface ID2D1TessellationSink
: IUnknown
486 [in, size_is(count
)] const D2D1_TRIANGLE
*triangles
,
495 uuid(2cd906a1
-12e2
-11dc
-9fed
-001143a055f9
)
497 interface ID2D1Geometry
: ID2D1Resource
500 [in] const D2D1_MATRIX_3X2_F
*transform
,
501 [out] D2D1_RECT_F
*bounds
503 HRESULT GetWidenedBounds
(
504 [in] float stroke_width
,
505 [in] ID2D1StrokeStyle
*stroke_style
,
506 [in] const D2D1_MATRIX_3X2_F
*transform
,
507 [in] float tolerance
,
508 [out] D2D1_RECT_F
*bounds
510 HRESULT StrokeContainsPoint
(
511 [in] D2D1_POINT_2F point
,
512 [in] float stroke_width
,
513 [in] ID2D1StrokeStyle
*stroke_style
,
514 [in] const D2D1_MATRIX_3X2_F
*transform
,
515 [in] float tolerance
,
518 HRESULT FillContainsPoint
(
519 [in] D2D1_POINT_2F point
,
520 [in] const D2D1_MATRIX_3X2_F
*transform
,
521 [in] float tolerance
,
524 HRESULT CompareWithGeometry
(
525 [in] ID2D1Geometry
*geometry
,
526 [in] const D2D1_MATRIX_3X2_F
*transform
,
527 [in] float tolerance
,
528 [out] D2D1_GEOMETRY_RELATION
*relation
531 [in] D2D1_GEOMETRY_SIMPLIFICATION_OPTION option
,
532 [in] const D2D1_MATRIX_3X2_F
*transform
,
533 [in] float tolerance
,
534 [in] ID2D1SimplifiedGeometrySink
*sink
537 [in] const D2D1_MATRIX_3X2_F
*transform
,
538 [in] float tolerance
,
539 [in] ID2D1TessellationSink
*sink
541 HRESULT CombineWithGeometry
(
542 [in] ID2D1Geometry
*geometry
,
543 [in] D2D1_COMBINE_MODE combine_mode
,
544 [in] const D2D1_MATRIX_3X2_F
*transform
,
545 [in] float tolerance
,
546 [in] ID2D1SimplifiedGeometrySink
*sink
549 [in] const D2D1_MATRIX_3X2_F
*transform
,
550 [in] float tolerance
,
551 [in] ID2D1SimplifiedGeometrySink
*sink
554 [in] const D2D1_MATRIX_3X2_F
*transform
,
555 [in] float tolerance
,
558 HRESULT ComputeLength
(
559 [in] const D2D1_MATRIX_3X2_F
*transform
,
560 [in] float tolerance
,
563 HRESULT ComputePointAtLength
(
565 [in] const D2D1_MATRIX_3X2_F
*transform
,
566 [in] float tolerance
,
567 [out] D2D1_POINT_2F
*point
,
568 [out] D2D1_POINT_2F
*tangent
571 [in] float stroke_width
,
572 [in] ID2D1StrokeStyle
*stroke_style
,
573 [in] const D2D1_MATRIX_3X2_F
*transform
,
574 [in] float tolerance
,
575 [in] ID2D1SimplifiedGeometrySink
*sink
582 uuid(2cd906a2
-12e2
-11dc
-9fed
-001143a055f9
)
584 interface ID2D1RectangleGeometry
: ID2D1Geometry
587 [out] D2D1_RECT_F
*rect
594 uuid(2cd906a3
-12e2
-11dc
-9fed
-001143a055f9
)
596 interface ID2D1RoundedRectangleGeometry
: ID2D1Geometry
599 [out] D2D1_ROUNDED_RECT
*rect
606 uuid(2cd906a4
-12e2
-11dc
-9fed
-001143a055f9
)
608 interface ID2D1EllipseGeometry
: ID2D1Geometry
611 [out] D2D1_ELLIPSE
*ellipse
618 uuid(2cd906a6
-12e2
-11dc
-9fed
-001143a055f9
)
620 interface ID2D1GeometryGroup
: ID2D1Geometry
622 D2D1_FILL_MODE GetFillMode
();
623 UINT32 GetSourceGeometryCount
();
624 void GetSourceGeometries
(
625 [out, size_is(geometry_count
)] ID2D1Geometry
**geometry
,
626 [in] UINT32 geometry_count
633 uuid(2cd906bb
-12e2
-11dc
-9fed
-001143a055f9
)
635 interface ID2D1TransformedGeometry
: ID2D1Geometry
637 void GetSourceGeometry
(
638 [out] ID2D1Geometry
**geometry
641 [out] D2D1_MATRIX_3X2_F
*transform
648 uuid(2cd9069f
-12e2
-11dc
-9fed
-001143a055f9
)
650 interface ID2D1GeometrySink
: ID2D1SimplifiedGeometrySink
653 [in] D2D1_POINT_2F point
656 [in] const D2D1_BEZIER_SEGMENT
*bezier
658 void AddQuadraticBezier
(
659 [in] const D2D1_QUADRATIC_BEZIER_SEGMENT
*bezier
661 void AddQuadraticBeziers
(
662 [in, size_is(bezier_count
)] const D2D1_QUADRATIC_BEZIER_SEGMENT
*beziers
,
663 [in] UINT32 bezier_count
666 [in] const D2D1_ARC_SEGMENT
*arc
673 uuid(2cd906a5
-12e2
-11dc
-9fed
-001143a055f9
)
675 interface ID2D1PathGeometry
: ID2D1Geometry
678 [out] ID2D1GeometrySink
**sink
681 [in] ID2D1GeometrySink
*sink
683 HRESULT GetSegmentCount
(
686 HRESULT GetFigureCount
(
694 uuid(28506e39
-ebf6
-46a1
-bb47
-fd85565ab957
)
696 interface ID2D1DrawingStateBlock
: ID2D1Resource
699 [out] D2D1_DRAWING_STATE_DESCRIPTION
*desc
702 [in] const D2D1_DRAWING_STATE_DESCRIPTION
*desc
704 void SetTextRenderingParams
(
705 [in] IDWriteRenderingParams
*text_rendering_params
707 void GetTextRenderingParams
(
708 [out] IDWriteRenderingParams
**text_rendering_params
715 uuid(65019f75
-8da2
-497c
-b32c
-dfa34e48ede6
)
717 interface ID2D1Image
: ID2D1Resource
724 uuid(a2296057
-ea42
-4099-983b
-539fb6505426
)
726 interface ID2D1Bitmap
: ID2D1Image
728 D2D1_SIZE_F GetSize
();
729 D2D1_SIZE_U GetPixelSize
();
730 D2D1_PIXEL_FORMAT GetPixelFormat
();
735 HRESULT CopyFromBitmap
(
736 [in] const D2D1_POINT_2U
*dst_point
,
737 [in] ID2D1Bitmap
*bitmap
,
738 [in] const D2D1_RECT_U
*src_rect
740 HRESULT CopyFromRenderTarget
(
741 [in] const D2D1_POINT_2U
*dst_point
,
742 [in] ID2D1RenderTarget
*render_target
,
743 [in] const D2D1_RECT_U
*src_rect
745 HRESULT CopyFromMemory
(
746 [in] const D2D1_RECT_U
*dst_rect
,
747 [in] const void *src_data
,
755 uuid(2cd906a8
-12e2
-11dc
-9fed
-001143a055f9
)
757 interface ID2D1Brush
: ID2D1Resource
763 [in] const D2D1_MATRIX_3X2_F
*transform
767 [out] D2D1_MATRIX_3X2_F
*transform
774 uuid(2cd906aa
-12e2
-11dc
-9fed
-001143a055f9
)
776 interface ID2D1BitmapBrush
: ID2D1Brush
779 [in] D2D1_EXTEND_MODE mode
782 [in] D2D1_EXTEND_MODE mode
784 void SetInterpolationMode
(
785 [in] D2D1_BITMAP_INTERPOLATION_MODE mode
788 [in] ID2D1Bitmap
*bitmap
790 D2D1_EXTEND_MODE GetExtendModeX
();
791 D2D1_EXTEND_MODE GetExtendModeY
();
792 D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode
();
794 [out] ID2D1Bitmap
**bitmap
801 uuid(2cd906a9
-12e2
-11dc
-9fed
-001143a055f9
)
803 interface ID2D1SolidColorBrush
: ID2D1Brush
806 [in] const D2D1_COLOR_F
*color
808 D2D1_COLOR_F GetColor
();
814 uuid(2cd906a7
-12e2
-11dc
-9fed
-001143a055f9
)
816 interface ID2D1GradientStopCollection
: ID2D1Resource
818 UINT32 GetGradientStopCount
();
819 void GetGradientStops
(
820 [out] D2D1_GRADIENT_STOP
*stops
,
821 [in] UINT32 stop_count
823 D2D1_GAMMA GetColorInterpolationGamma
();
824 D2D1_EXTEND_MODE GetExtendMode
();
830 uuid(2cd906ab
-12e2
-11dc
-9fed
-001143a055f9
)
832 interface ID2D1LinearGradientBrush
: ID2D1Brush
835 [in] D2D1_POINT_2F start_point
838 [in] D2D1_POINT_2F end_point
840 D2D1_POINT_2F GetStartPoint
();
841 D2D1_POINT_2F GetEndPoint
();
842 void GetGradientStopCollection
(
843 [out] ID2D1GradientStopCollection
**gradient
850 uuid(2cd906ac
-12e2
-11dc
-9fed
-001143a055f9
)
852 interface ID2D1RadialGradientBrush
: ID2D1Brush
855 [in] D2D1_POINT_2F center
857 void SetGradientOriginOffset
(
858 [in] D2D1_POINT_2F offset
866 D2D1_POINT_2F GetCenter
();
867 D2D1_POINT_2F GetGradientOriginOffset
();
870 void GetGradientStopCollection
(
871 [out] ID2D1GradientStopCollection
**gradient
878 uuid(2cd9069b
-12e2
-11dc
-9fed
-001143a055f9
)
880 interface ID2D1Layer
: ID2D1Resource
882 D2D1_SIZE_F GetSize
();
888 uuid(2cd906c2
-12e2
-11dc
-9fed
-001143a055f9
)
890 interface ID2D1Mesh
: ID2D1Resource
893 [out] ID2D1TessellationSink
**sink
900 uuid(2cd90694
-12e2
-11dc
-9fed
-001143a055f9
)
902 interface ID2D1RenderTarget
: ID2D1Resource
904 HRESULT CreateBitmap
(
905 [in] D2D1_SIZE_U size
,
906 [in] const void *src_data
,
908 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
909 [out] ID2D1Bitmap
**bitmap
911 HRESULT CreateBitmapFromWicBitmap
(
912 [in] IWICBitmapSource
*bitmap_source
,
913 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
914 [out] ID2D1Bitmap
**bitmap
916 HRESULT CreateSharedBitmap
(
918 [in, out] void *data
,
919 [in] const D2D1_BITMAP_PROPERTIES
*desc
,
920 [out] ID2D1Bitmap
**bitmap
922 HRESULT CreateBitmapBrush
(
923 [in] ID2D1Bitmap
*bitmap
,
924 [in] const D2D1_BITMAP_BRUSH_PROPERTIES
*bitmap_brush_desc
,
925 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
926 [out] ID2D1BitmapBrush
**brush
928 HRESULT CreateSolidColorBrush
(
929 [in] const D2D1_COLOR_F
*color
,
930 [in] const D2D1_BRUSH_PROPERTIES
*desc
,
931 [out] ID2D1SolidColorBrush
**brush
933 HRESULT CreateGradientStopCollection
(
934 [in, size_is(stop_count
)] const D2D1_GRADIENT_STOP
*stops
,
935 [in] UINT32 stop_count
,
936 [in] D2D1_GAMMA gamma
,
937 [in] D2D1_EXTEND_MODE extend_mode
,
938 [out] ID2D1GradientStopCollection
**gradient
940 HRESULT CreateLinearGradientBrush
(
941 [in] const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES
*gradient_brush_desc
,
942 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
943 [in] ID2D1GradientStopCollection
*gradient
,
944 [out] ID2D1LinearGradientBrush
**brush
946 HRESULT CreateRadialGradientBrush
(
947 [in] const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES
*gradient_brush_desc
,
948 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
949 [in] ID2D1GradientStopCollection
*gradient
,
950 [out] ID2D1RadialGradientBrush
**brush
952 HRESULT CreateCompatibleRenderTarget
(
953 [in] const D2D1_SIZE_F
*size
,
954 [in] const D2D1_SIZE_U
*pixel_size
,
955 [in] const D2D1_PIXEL_FORMAT
*format
,
956 [in] D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options
,
957 [out] ID2D1BitmapRenderTarget
**render_target
960 [in] const D2D1_SIZE_F
*size
,
961 [out] ID2D1Layer
**layer
964 [out] ID2D1Mesh
**mesh
967 [in] D2D1_POINT_2F p0
,
968 [in] D2D1_POINT_2F p1
,
969 [in] ID2D1Brush
*brush
,
970 [in] float stroke_width
,
971 [in] ID2D1StrokeStyle
*stroke_style
974 [in] const D2D1_RECT_F
*rect
,
975 [in] ID2D1Brush
*brush
,
976 [in] float stroke_width
,
977 [in] ID2D1StrokeStyle
*stroke_style
980 [in] const D2D1_RECT_F
*rect
,
981 [in] ID2D1Brush
*brush
983 void DrawRoundedRectangle
(
984 [in] const D2D1_ROUNDED_RECT
*rect
,
985 [in] ID2D1Brush
*brush
,
986 [in] float stroke_width
,
987 [in] ID2D1StrokeStyle
*stroke_style
989 void FillRoundedRectangle
(
990 [in] const D2D1_ROUNDED_RECT
*rect
,
991 [in] ID2D1Brush
*brush
994 [in] const D2D1_ELLIPSE
*ellipse
,
995 [in] ID2D1Brush
*brush
,
996 [in] float stroke_width
,
997 [in] ID2D1StrokeStyle
*stroke_style
1000 [in] const D2D1_ELLIPSE
*ellipse
,
1001 [in] ID2D1Brush
*brush
1004 [in] ID2D1Geometry
*geometry
,
1005 [in] ID2D1Brush
*brush
,
1006 [in] float stroke_width
,
1007 [in] ID2D1StrokeStyle
*stroke_style
1010 [in] ID2D1Geometry
*geometry
,
1011 [in] ID2D1Brush
*brush
,
1012 [in] ID2D1Brush
*opacity_brush
1015 [in] ID2D1Mesh
*mesh
,
1016 [in] ID2D1Brush
*brush
1018 void FillOpacityMask
(
1019 [in] ID2D1Bitmap
*mask
,
1020 [in] ID2D1Brush
*brush
,
1021 [in] D2D1_OPACITY_MASK_CONTENT content
,
1022 [in] const D2D1_RECT_F
*dst_rect
,
1023 [in] const D2D1_RECT_F
*src_rect
1026 [in] ID2D1Bitmap
*bitmap
,
1027 [in] const D2D1_RECT_F
*dst_rect
,
1029 [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode
,
1030 [in] const D2D1_RECT_F
*src_rect
1033 [in, size_is(string_len
)] const WCHAR
*string,
1034 [in] UINT32 string_len
,
1035 [in] IDWriteTextFormat
*text_format
,
1036 [in] const D2D1_RECT_F
*layout_rect
,
1037 [in] ID2D1Brush
*brush
,
1038 [in] D2D1_DRAW_TEXT_OPTIONS options
,
1039 [in] DWRITE_MEASURING_MODE measuring_mode
1041 void DrawTextLayout
(
1042 [in] D2D1_POINT_2F origin
,
1043 [in] IDWriteTextLayout
*layout
,
1044 [in] ID2D1Brush
*brush
,
1045 [in] D2D1_DRAW_TEXT_OPTIONS options
1048 [in] D2D1_POINT_2F baseline_origin
,
1049 [in] const DWRITE_GLYPH_RUN
*glyph_run
,
1050 [in] ID2D1Brush
*brush
,
1051 [in] DWRITE_MEASURING_MODE measuring_mode
1054 [in] const D2D1_MATRIX_3X2_F
*transform
1057 [out] D2D1_MATRIX_3X2_F
*transform
1059 void SetAntialiasMode
(
1060 [in] D2D1_ANTIALIAS_MODE antialias_mode
1062 D2D1_ANTIALIAS_MODE GetAntialiasMode
();
1063 void SetTextAntialiasMode
(
1064 [in] D2D1_TEXT_ANTIALIAS_MODE antialias_mode
1066 D2D1_TEXT_ANTIALIAS_MODE GetTextAntialiasMode
();
1067 void SetTextRenderingParams
(
1068 [in] IDWriteRenderingParams
*text_rendering_params
1070 void GetTextRenderingParams
(
1071 [out] IDWriteRenderingParams
**text_rendering_params
1078 [out] D2D1_TAG
*tag1
,
1079 [out] D2D1_TAG
*tag2
1082 [in] const D2D1_LAYER_PARAMETERS
*layer_parameters
,
1083 [in] ID2D1Layer
*layer
1087 [out] D2D1_TAG
*tag1
,
1088 [out] D2D1_TAG
*tag2
1090 void SaveDrawingState
(
1091 [in, out] ID2D1DrawingStateBlock
*state_block
1093 void RestoreDrawingState
(
1094 [in] ID2D1DrawingStateBlock
*state_block
1096 void PushAxisAlignedClip
(
1097 [in] const D2D1_RECT_F
*clip_rect
,
1098 [in] D2D1_ANTIALIAS_MODE antialias_mode
1100 void PopAxisAlignedClip
();
1102 [in] const D2D1_COLOR_F
*color
1106 [out] D2D1_TAG
*tag1
,
1107 [out] D2D1_TAG
*tag2
1109 D2D1_PIXEL_FORMAT GetPixelFormat
();
1118 D2D1_SIZE_F GetSize
();
1119 D2D1_SIZE_U GetPixelSize
();
1120 UINT32 GetMaximumBitmapSize
();
1122 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
1129 uuid(2cd90695
-12e2
-11dc
-9fed
-001143a055f9
)
1131 interface ID2D1BitmapRenderTarget
: ID2D1RenderTarget
1134 [out] ID2D1Bitmap
**bitmap
1141 uuid(2cd90698
-12e2
-11dc
-9fed
-001143a055f9
)
1143 interface ID2D1HwndRenderTarget
: ID2D1RenderTarget
1145 D2D1_WINDOW_STATE CheckWindowState
();
1147 [in] const D2D1_SIZE_U size
1155 uuid(1c51bc64
-de61
-46fd
-9899-63a5d8f03950
)
1157 interface ID2D1DCRenderTarget
: ID2D1RenderTarget
1161 [in] const RECT
*rect
1168 uuid(e0db51c3
-6f77
-4bae
-b3d5
-e47509b35838
)
1170 interface ID2D1GdiInteropRenderTarget
: IUnknown
1173 [in] D2D1_DC_INITIALIZE_MODE mode
,
1177 [in] const RECT
*update
1184 uuid(06152247-6f50
-465a
-9245-118bfd3b6007
)
1186 interface ID2D1Factory
: IUnknown
1188 HRESULT ReloadSystemMetrics
();
1193 HRESULT CreateRectangleGeometry
(
1194 [in] const D2D1_RECT_F
*rect
,
1195 [out] ID2D1RectangleGeometry
**geometry
1197 HRESULT CreateRoundedRectangleGeometry
(
1198 [in] const D2D1_ROUNDED_RECT
*rect
,
1199 [out] ID2D1RoundedRectangleGeometry
**geometry
1201 HRESULT CreateEllipseGeometry
(
1202 [in] const D2D1_ELLIPSE
*ellipse
,
1203 [out] ID2D1EllipseGeometry
**geometry
1205 HRESULT CreateGeometryGroup
(
1206 [in] D2D1_FILL_MODE fill_mode
,
1207 [in, size_is(geometry_count
)] ID2D1Geometry
*geometry
,
1208 [in] UINT32 geometry_count
,
1209 [out] ID2D1GeometryGroup
**group
1211 HRESULT CreateTransformedGeometry
(
1212 [in] ID2D1Geometry
*src_geometry
,
1213 [in] const D2D1_MATRIX_3X2_F
*transform
,
1214 [out] ID2D1TransformedGeometry
**transformed_geometry
1216 HRESULT CreatePathGeometry
(
1217 [out] ID2D1PathGeometry
**geometry
1219 HRESULT CreateStrokeStyle
(
1220 [in] const D2D1_STROKE_STYLE_PROPERTIES
*desc
,
1221 [in, size_is(dash_count
)] const float *dashes
,
1222 [in] UINT32 dash_count
,
1223 [out] ID2D1StrokeStyle
**stroke_style
1225 HRESULT CreateDrawingStateBlock
(
1226 [in] const D2D1_DRAWING_STATE_DESCRIPTION
*desc
,
1227 [in] IDWriteRenderingParams
*text_rendering_params
,
1228 [out] ID2D1DrawingStateBlock
**state_block
1230 HRESULT CreateWicBitmapRenderTarget
(
1231 [in] IWICBitmap
*target
,
1232 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
,
1233 [out] ID2D1RenderTarget
**render_target
1235 HRESULT CreateHwndRenderTarget
(
1236 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
,
1237 [in] const D2D1_HWND_RENDER_TARGET_PROPERTIES
*hwnd_rt_desc
,
1238 [out] ID2D1HwndRenderTarget
**render_target
1240 HRESULT CreateDxgiSurfaceRenderTarget
(
1241 [in] IDXGISurface
*surface
,
1242 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
,
1243 [out] ID2D1RenderTarget
**render_target
1245 HRESULT CreateDCRenderTarget
(
1246 [in] const D2D1_RENDER_TARGET_PROPERTIES
*desc
,
1247 [out] ID2D1DCRenderTarget
**render_target
1251 [local] HRESULT __stdcall D2D1CreateFactory
(D2D1_FACTORY_TYPE factory_type
, REFIID iid
,
1252 const D2D1_FACTORY_OPTIONS
*factory_options
, void **factory
);
1253 [local] void __stdcall D2D1MakeRotateMatrix
(float angle
, D2D1_POINT_2F center
, D2D1_MATRIX_3X2_F
*matrix
);