d2d1: Add the ID2D1DCRenderTarget interface.
[wine/multimedia.git] / include / d2d1.idl
blob2c9db1a24c16398639a2bc02c9db5e6ec14bd8fb
1 /*
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
19 import "unknwn.idl";
20 import "dcommon.h";
21 import "d2dbasetypes.h";
22 import "d3d10_1.idl";
24 cpp_quote("#ifdef WINE_NO_UNICODE_MACROS")
25 cpp_quote("#undef DrawText")
26 cpp_quote("#endif")
28 interface ID2D1Factory;
29 interface ID2D1RenderTarget;
30 interface ID2D1BitmapRenderTarget;
31 interface ID2D1Geometry;
32 interface ID2D1Brush;
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;
50 enum
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,
69 } D2D1_DEBUG_LEVEL;
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,
76 } D2D1_FACTORY_TYPE;
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
83 } D2D1_FILL_MODE;
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
91 } D2D1_PATH_SEGMENT;
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
98 } D2D1_FIGURE_BEGIN;
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
105 } D2D1_FIGURE_END;
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,
114 } D2D1_CAP_STYLE;
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,
123 } D2D1_LINE_JOIN;
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,
134 } D2D1_DASH_STYLE;
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,
160 } D2D1_COMBINE_MODE;
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,
174 } D2D1_ARC_SIZE;
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,
198 } D2D1_EXTEND_MODE;
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
209 D2D1_GAMMA_2_2 = 0,
210 D2D1_GAMMA_1_0 = 1,
211 D2D1_GAMMA_FORCE_DWORD = 0xffffffff,
212 } D2D1_GAMMA;
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,
273 } D2D1_WINDOW_STATE;
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;
292 } D2D1_TRIANGLE;
294 typedef struct D2D1_ROUNDED_RECT
296 D2D1_RECT_F rect;
297 float radiusX;
298 float radiusY;
299 } D2D1_ROUNDED_RECT;
301 typedef struct D2D1_ELLIPSE
303 D2D1_POINT_2F point;
304 float radiusX;
305 float radiusY;
306 } 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
316 D2D1_POINT_2F point;
317 D2D1_SIZE_F size;
318 float rotationAngle;
319 D2D1_SWEEP_DIRECTION sweepDirection;
320 D2D1_ARC_SIZE arcSize;
321 } D2D1_ARC_SEGMENT;
323 typedef struct D2D1_DRAWING_STATE_DESCRIPTION
325 D2D1_ANTIALIAS_MODE antialiasMode;
326 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode;
327 D2D1_TAG tag1;
328 D2D1_TAG tag2;
329 D2D1_MATRIX_3X2_F transform;
330 } D2D1_DRAWING_STATE_DESCRIPTION;
332 typedef struct D2D1_GRADIENT_STOP
334 float position;
335 D2D1_COLOR_F color;
336 } D2D1_GRADIENT_STOP;
338 typedef struct D2D1_BITMAP_PROPERTIES
340 D2D1_PIXEL_FORMAT pixelFormat;
341 float dpiX;
342 float dpiY;
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
354 float opacity;
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;
368 float radiusX;
369 float radiusY;
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;
378 float opacity;
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;
387 float dpiX;
388 float dpiY;
389 D2D1_RENDER_TARGET_USAGE usage;
390 D2D1_FEATURE_LEVEL minLevel;
391 } D2D1_RENDER_TARGET_PROPERTIES;
394 local,
395 object,
396 uuid(2cd90691-12e2-11dc-9fed-001143a055f9)
398 interface ID2D1Resource : IUnknown
400 void GetFactory(
401 [out] ID2D1Factory **factory
406 local,
407 object,
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();
420 void GetDashes(
421 [out, size_is(count)] float *dashes,
422 [in] UINT32 count
427 local,
428 object,
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);
439 HRESULT Close();
443 local,
444 object,
445 uuid(2cd906c1-12e2-11dc-9fed-001143a055f9)
447 interface ID2D1TessellationSink : IUnknown
449 void AddTriangles(
450 [in, size_is(count)] const D2D1_TRIANGLE *triangles,
451 [in] UINT32 count
453 HRESULT Close();
457 local,
458 object,
459 uuid(2cd906a1-12e2-11dc-9fed-001143a055f9)
461 interface ID2D1Geometry : ID2D1Resource
463 HRESULT GetBounds(
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,
480 [out] BOOL *contains
482 HRESULT FillContainsPoint(
483 [in] D2D1_POINT_2F point,
484 [in] const D2D1_MATRIX_3X2_F *transform,
485 [in] float tolerance,
486 [out] BOOL *contains
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
494 HRESULT Simplify(
495 [in] D2D1_GEOMETRY_SIMPLIFICATION_OPTION option,
496 [in] const D2D1_MATRIX_3X2_F *transform,
497 [in] float tolerance,
498 [in] ID2D1SimplifiedGeometrySink *sink
500 HRESULT Tessellate(
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
512 HRESULT Outline(
513 [in] const D2D1_MATRIX_3X2_F *transform,
514 [in] float tolerance,
515 [in] ID2D1SimplifiedGeometrySink *sink
517 HRESULT ComputeArea(
518 [in] const D2D1_MATRIX_3X2_F *transform,
519 [in] float tolerance,
520 [out] float *area
522 HRESULT ComputeLength(
523 [in] const D2D1_MATRIX_3X2_F *transform,
524 [in] float tolerance,
525 [out] float *length
527 HRESULT ComputePointAtLength(
528 [in] float length,
529 [in] const D2D1_MATRIX_3X2_F *transform,
530 [in] float tolerance,
531 [out] D2D1_POINT_2F *point,
532 [out] D2D1_POINT_2F *tangent
534 HRESULT Widen(
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
544 local,
545 object,
546 uuid(2cd906a2-12e2-11dc-9fed-001143a055f9)
548 interface ID2D1RectangleGeometry : ID2D1Geometry
550 void GetRect(
551 [out] D2D1_RECT_F *rect
556 local,
557 object,
558 uuid(2cd906a3-12e2-11dc-9fed-001143a055f9)
560 interface ID2D1RoundedRectangleGeometry : ID2D1Geometry
562 void GetRoundedRect(
563 [out] D2D1_ROUNDED_RECT *rect
568 local,
569 object,
570 uuid(2cd906a4-12e2-11dc-9fed-001143a055f9)
572 interface ID2D1EllipseGeometry : ID2D1Geometry
574 void GetEllipse(
575 [out] D2D1_ELLIPSE *ellipse
580 local,
581 object,
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
595 local,
596 object,
597 uuid(2cd906bb-12e2-11dc-9fed-001143a055f9)
599 interface ID2D1TransformedGeometry : ID2D1Geometry
601 void GetSourceGeometry(
602 [out] ID2D1Geometry **geometry
604 void GetTransform(
605 [out] D2D1_MATRIX_3X2_F *transform
610 local,
611 object,
612 uuid(2cd9069f-12e2-11dc-9fed-001143a055f9)
614 interface ID2D1GeometrySink : ID2D1SimplifiedGeometrySink
616 void AddLine(
617 [in] D2D1_POINT_2F point
619 void AddBezier(
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
629 void AddArc(
630 [in] const D2D1_ARC_SEGMENT *arc
635 local,
636 object,
637 uuid(2cd906a5-12e2-11dc-9fed-001143a055f9)
639 interface ID2D1PathGeometry : ID2D1Geometry
641 HRESULT Open(
642 [out] ID2D1GeometrySink **sink
644 HRESULT Stream(
645 [in] ID2D1GeometrySink *sink
647 HRESULT GetSegmentCount(
648 [out] UINT32 *count
650 HRESULT GetFigureCount(
651 [out] UINT32 *count
656 local,
657 object,
658 uuid(28506e39-ebf6-46a1-bb47-fd85565ab957)
660 interface ID2D1DrawingStateBlock : ID2D1Resource
662 void GetDescription(
663 [out] D2D1_DRAWING_STATE_DESCRIPTION *desc
665 void SetDescription(
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
677 local,
678 object,
679 uuid(65019f75-8da2-497c-b32c-dfa34e48ede6)
681 interface ID2D1Image : ID2D1Resource
686 local,
687 object,
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();
695 void GetDpi(
696 [out] float *dpi_x,
697 [out] float *dpi_y
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,
712 [in] UINT32 pitch
717 local,
718 object,
719 uuid(2cd906a8-12e2-11dc-9fed-001143a055f9)
721 interface ID2D1Brush : ID2D1Resource
723 void SetOpacity(
724 [in] float opacity
726 void SetTransform(
727 [in] const D2D1_MATRIX_3X2_F *transform
729 float GetOpacity();
730 void GetTransform(
731 [out] D2D1_MATRIX_3X2_F *transform
736 local,
737 object,
738 uuid(2cd906aa-12e2-11dc-9fed-001143a055f9)
740 interface ID2D1BitmapBrush : ID2D1Brush
742 void SetExtendModeX(
743 [in] D2D1_EXTEND_MODE mode
745 void SetExtendModeY(
746 [in] D2D1_EXTEND_MODE mode
748 void SetInterpolationMode(
749 [in] D2D1_BITMAP_INTERPOLATION_MODE mode
751 void SetBitmap(
752 [in] ID2D1Bitmap *bitmap
754 D2D1_EXTEND_MODE GetExtendModeX();
755 D2D1_EXTEND_MODE GetExtendModeY();
756 D2D1_BITMAP_INTERPOLATION_MODE GetInterpolationMode();
757 void GetBitmap(
758 [out] ID2D1Bitmap **bitmap
763 local,
764 object,
765 uuid(2cd906a9-12e2-11dc-9fed-001143a055f9)
767 interface ID2D1SolidColorBrush : ID2D1Brush
769 void SetColor(
770 [in] const D2D1_COLOR_F *color
772 D2D1_COLOR_F GetColor();
776 local,
777 object,
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();
792 local,
793 object,
794 uuid(2cd906ab-12e2-11dc-9fed-001143a055f9)
796 interface ID2D1LinearGradientBrush : ID2D1Brush
798 void SetStartPoint(
799 [in] D2D1_POINT_2F start_point
801 void SetEndPoint(
802 [in] D2D1_POINT_2F end_point
804 D2D1_POINT_2F GetStartPoint();
805 D2D1_POINT_2F GetEndPoint();
806 void GetGradientStopCollection(
807 [out] ID2D1GradientStopCollection **gradient
812 local,
813 object,
814 uuid(2cd906ac-12e2-11dc-9fed-001143a055f9)
816 interface ID2D1RadialGradientBrush : ID2D1Brush
818 void SetCenter(
819 [in] D2D1_POINT_2F center
821 void SetGradientOriginOffset(
822 [in] D2D1_POINT_2F offset
824 void SetRadiusX(
825 [in] float radius
827 void SetRadiusY(
828 [in] float radius
830 D2D1_POINT_2F GetCenter();
831 D2D1_POINT_2F GetGradientOriginOffset();
832 float GetRadiusX();
833 float GetRadiusY();
834 void GetGradientStopCollection(
835 [out] ID2D1GradientStopCollection **gradient
840 local,
841 object,
842 uuid(2cd9069b-12e2-11dc-9fed-001143a055f9)
844 interface ID2D1Layer : ID2D1Resource
846 D2D1_SIZE_F GetSize();
850 local,
851 object,
852 uuid(2cd906c2-12e2-11dc-9fed-001143a055f9)
854 interface ID2D1Mesh : ID2D1Resource
856 HRESULT Open(
857 [out] ID2D1TessellationSink **sink
862 local,
863 object,
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,
871 [in] UINT32 pitch,
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(
881 [in] REFIID iid,
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
923 HRESULT CreateLayer(
924 [in] const D2D1_SIZE_F *size,
925 [out] ID2D1Layer **layer
927 HRESULT CreateMesh(
928 [out] ID2D1Mesh **mesh
930 void DrawLine(
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
937 void DrawRectangle(
938 [in] const D2D1_RECT_F *rect,
939 [in] ID2D1Brush *brush,
940 [in] float stroke_width,
941 [in] ID2D1StrokeStyle *stroke_style
943 void FillRectangle(
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
957 void DrawEllipse(
958 [in] const D2D1_ELLIPSE *ellipse,
959 [in] ID2D1Brush *brush,
960 [in] float stroke_width,
961 [in] ID2D1StrokeStyle *stroke_style
963 void FillEllipse(
964 [in] const D2D1_ELLIPSE *ellipse,
965 [in] ID2D1Brush *brush
967 void DrawGeometry(
968 [in] ID2D1Geometry *geometry,
969 [in] ID2D1Brush *brush,
970 [in] float stroke_width,
971 [in] ID2D1StrokeStyle *stroke_style
973 void FillGeometry(
974 [in] ID2D1Geometry *geometry,
975 [in] ID2D1Brush *brush,
976 [in] ID2D1Brush *opacity_brush
978 void FillMesh(
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
989 void DrawBitmap(
990 [in] ID2D1Bitmap *bitmap,
991 [in] const D2D1_RECT_F *dst_rect,
992 [in] float opacity,
993 [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode,
994 [in] const D2D1_RECT_F *src_rect
996 void DrawText(
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
1011 void DrawGlyphRun(
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
1017 void SetTransform(
1018 [in] const D2D1_MATRIX_3X2_F *transform
1020 void GetTransform(
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
1037 void SetTags(
1038 [in] D2D1_TAG tag1,
1039 [in] D2D1_TAG tag2
1041 void GetTags(
1042 [out] D2D1_TAG *tag1,
1043 [out] D2D1_TAG *tag2
1045 void PushLayer(
1046 [in] const D2D1_LAYER_PARAMETERS *layer_parameters,
1047 [in] ID2D1Layer *layer
1049 void PopLayer();
1050 HRESULT Flush(
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();
1065 void Clear(
1066 [in] const D2D1_COLOR_F *color
1068 void BeginDraw();
1069 HRESULT EndDraw(
1070 [out] D2D1_TAG *tag1,
1071 [out] D2D1_TAG *tag2
1073 D2D1_PIXEL_FORMAT GetPixelFormat();
1074 void SetDpi(
1075 [in] float dpi_x,
1076 [in] float dpi_y
1078 void GetDpi(
1079 [out] float *dpi_x,
1080 [out] float *dpi_y
1082 D2D1_SIZE_F GetSize();
1083 D2D1_SIZE_U GetPixelSize();
1084 UINT32 GetMaximumBitmapSize();
1085 BOOL IsSupported(
1086 [in] const D2D1_RENDER_TARGET_PROPERTIES *desc
1091 local,
1092 object,
1093 uuid(2cd90695-12e2-11dc-9fed-001143a055f9)
1095 interface ID2D1BitmapRenderTarget : ID2D1RenderTarget
1097 HRESULT GetBitmap(
1098 [out] ID2D1Bitmap **bitmap
1103 local,
1104 object,
1105 uuid(2cd90698-12e2-11dc-9fed-001143a055f9)
1107 interface ID2D1HwndRenderTarget : ID2D1RenderTarget
1109 D2D1_WINDOW_STATE CheckWindowState();
1110 HRESULT Resize(
1111 [in] const D2D1_SIZE_U size
1113 HWND GetHwnd();
1117 local,
1118 object,
1119 uuid(1c51bc64-de61-46fd-9899-63a5d8f03950)
1121 interface ID2D1DCRenderTarget : ID2D1RenderTarget
1123 HRESULT BindDC(
1124 [in] const HDC dc,
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);