1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5
6 * d2d1.h - Header file for the Direct2D API
7 * No original Microsoft headers were used in the creation of this
8 * file.
9 *API docs available at: http://msdn.microsoft.com/en-us/library/dd372349%28v=VS.85%29.aspx
10 */
11
12 #ifndef _D2D1_H
13 #define _D2D1_H
14
15 #include <unknwn.h>
16 #include <dcommon.h>
17
18 #ifdef __MINGW_HAS_DXSDK
19 #include <dxgiformat.h>
20 #include <d3d10_1.h>
21 #endif
22
23 #include <d2dbasetypes.h>
24 #include <d2derr.h>
25
26 #ifndef _COM_interface
27 #define _COM_interface struct
28 #endif
29
30 typedef UINT64 D2D1_TAG;
31
32 #if !defined(D2D_USE_C_DEFINITIONS) && !defined(__cplusplus)
33 #define D2D_USE_C_DEFINITIONS
34 #endif
35
36 #ifndef __IWICBitmapSource_FWD_DEFINED__
37 #define __IWICBitmapSource_FWD_DEFINED__
38 typedef interface IWICBitmapSource IWICBitmapSource;
39 #endif
40
41 #ifndef __IWICBitmap_FWD_DEFINED__
42 #define __IWICBitmap_FWD_DEFINED__
43 typedef interface IWICBitmap IWICBitmap;
44 #endif
45
46 typedef struct DWRITE_GLYPH_RUN DWRITE_GLYPH_RUN;
47
48 #define D2D1_INVALID_TAG ULONGLONG_MAX
49 #define D2D1_DEFAULT_FLATTENING_TOLERANCE (0.25f)
50
51 /* enumerations */
52
53 #ifndef __MINGW_HAS_DXSDK
54 typedef enum D3D10_FEATURE_LEVEL1 {
55 D3D10_FEATURE_LEVEL_10_0 = 0xa000,
56 D3D10_FEATURE_LEVEL_10_1 = 0xa100,
57 D3D10_FEATURE_LEVEL_9_1 = 0x9100,
58 D3D10_FEATURE_LEVEL_9_2 = 0x9200,
59 D3D10_FEATURE_LEVEL_9_3 = 0x9300
60 } D3D10_FEATURE_LEVEL1;
61
62 typedef enum DXGI_FORMAT {
63 DXGI_FORMAT_UNKNOWN = 0,
64 DXGI_FORMAT_R32G32B32A32_TYPELESS = 1,
65 DXGI_FORMAT_R32G32B32A32_FLOAT = 2,
66 DXGI_FORMAT_R32G32B32A32_UINT = 3,
67 DXGI_FORMAT_R32G32B32A32_SINT = 4,
68 DXGI_FORMAT_R32G32B32_TYPELESS = 5,
69 DXGI_FORMAT_R32G32B32_FLOAT = 6,
70 DXGI_FORMAT_R32G32B32_UINT = 7,
71 DXGI_FORMAT_R32G32B32_SINT = 8,
72 DXGI_FORMAT_R16G16B16A16_TYPELESS = 9,
73 DXGI_FORMAT_R16G16B16A16_FLOAT = 10,
74 DXGI_FORMAT_R16G16B16A16_UNORM = 11,
75 DXGI_FORMAT_R16G16B16A16_UINT = 12,
76 DXGI_FORMAT_R16G16B16A16_SNORM = 13,
77 DXGI_FORMAT_R16G16B16A16_SINT = 14,
78 DXGI_FORMAT_R32G32_TYPELESS = 15,
79 DXGI_FORMAT_R32G32_FLOAT = 16,
80 DXGI_FORMAT_R32G32_UINT = 17,
81 DXGI_FORMAT_R32G32_SINT = 18,
82 DXGI_FORMAT_R32G8X24_TYPELESS = 19,
83 DXGI_FORMAT_D32_FLOAT_S8X24_UINT = 20,
84 DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS = 21,
85 DXGI_FORMAT_X32_TYPELESS_G8X24_UINT = 22,
86 DXGI_FORMAT_R10G10B10A2_TYPELESS = 23,
87 DXGI_FORMAT_R10G10B10A2_UNORM = 24,
88 DXGI_FORMAT_R10G10B10A2_UINT = 25,
89 DXGI_FORMAT_R11G11B10_FLOAT = 26,
90 DXGI_FORMAT_R8G8B8A8_TYPELESS = 27,
91 DXGI_FORMAT_R8G8B8A8_UNORM = 28,
92 DXGI_FORMAT_R8G8B8A8_UNORM_SRGB = 29,
93 DXGI_FORMAT_R8G8B8A8_UINT = 30,
94 DXGI_FORMAT_R8G8B8A8_SNORM = 31,
95 DXGI_FORMAT_R8G8B8A8_SINT = 32,
96 DXGI_FORMAT_R16G16_TYPELESS = 33,
97 DXGI_FORMAT_R16G16_FLOAT = 34,
98 DXGI_FORMAT_R16G16_UNORM = 35,
99 DXGI_FORMAT_R16G16_UINT = 36,
100 DXGI_FORMAT_R16G16_SNORM = 37,
101 DXGI_FORMAT_R16G16_SINT = 38,
102 DXGI_FORMAT_R32_TYPELESS = 39,
103 DXGI_FORMAT_D32_FLOAT = 40,
104 DXGI_FORMAT_R32_FLOAT = 41,
105 DXGI_FORMAT_R32_UINT = 42,
106 DXGI_FORMAT_R32_SINT = 43,
107 DXGI_FORMAT_R24G8_TYPELESS = 44,
108 DXGI_FORMAT_D24_UNORM_S8_UINT = 45,
109 DXGI_FORMAT_R24_UNORM_X8_TYPELESS = 46,
110 DXGI_FORMAT_X24_TYPELESS_G8_UINT = 47,
111 DXGI_FORMAT_R8G8_TYPELESS = 48,
112 DXGI_FORMAT_R8G8_UNORM = 49,
113 DXGI_FORMAT_R8G8_UINT = 50,
114 DXGI_FORMAT_R8G8_SNORM = 51,
115 DXGI_FORMAT_R8G8_SINT = 52,
116 DXGI_FORMAT_R16_TYPELESS = 53,
117 DXGI_FORMAT_R16_FLOAT = 54,
118 DXGI_FORMAT_D16_UNORM = 55,
119 DXGI_FORMAT_R16_UNORM = 56,
120 DXGI_FORMAT_R16_UINT = 57,
121 DXGI_FORMAT_R16_SNORM = 58,
122 DXGI_FORMAT_R16_SINT = 59,
123 DXGI_FORMAT_R8_TYPELESS = 60,
124 DXGI_FORMAT_R8_UNORM = 61,
125 DXGI_FORMAT_R8_UINT = 62,
126 DXGI_FORMAT_R8_SNORM = 63,
127 DXGI_FORMAT_R8_SINT = 64,
128 DXGI_FORMAT_A8_UNORM = 65,
129 DXGI_FORMAT_R1_UNORM = 66,
130 DXGI_FORMAT_R9G9B9E5_SHAREDEXP = 67,
131 DXGI_FORMAT_R8G8_B8G8_UNORM = 68,
132 DXGI_FORMAT_G8R8_G8B8_UNORM = 69,
133 DXGI_FORMAT_BC1_TYPELESS = 70,
134 DXGI_FORMAT_BC1_UNORM = 71,
135 DXGI_FORMAT_BC1_UNORM_SRGB = 72,
136 DXGI_FORMAT_BC2_TYPELESS = 73,
137 DXGI_FORMAT_BC2_UNORM = 74,
138 DXGI_FORMAT_BC2_UNORM_SRGB = 75,
139 DXGI_FORMAT_BC3_TYPELESS = 76,
140 DXGI_FORMAT_BC3_UNORM = 77,
141 DXGI_FORMAT_BC3_UNORM_SRGB = 78,
142 DXGI_FORMAT_BC4_TYPELESS = 79,
143 DXGI_FORMAT_BC4_UNORM = 80,
144 DXGI_FORMAT_BC4_SNORM = 81,
145 DXGI_FORMAT_BC5_TYPELESS = 82,
146 DXGI_FORMAT_BC5_UNORM = 83,
147 DXGI_FORMAT_BC5_SNORM = 84,
148 DXGI_FORMAT_B5G6R5_UNORM = 85,
149 DXGI_FORMAT_B5G5R5A1_UNORM = 86,
150 DXGI_FORMAT_B8G8R8A8_UNORM = 87,
151 DXGI_FORMAT_B8G8R8X8_UNORM = 88,
152 DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM = 89,
153 DXGI_FORMAT_B8G8R8A8_TYPELESS = 90,
154 DXGI_FORMAT_B8G8R8A8_UNORM_SRGB = 91,
155 DXGI_FORMAT_B8G8R8X8_TYPELESS = 92,
156 DXGI_FORMAT_B8G8R8X8_UNORM_SRGB = 93,
157 DXGI_FORMAT_BC6H_TYPELESS = 94,
158 DXGI_FORMAT_BC6H_UF16 = 95,
159 DXGI_FORMAT_BC6H_SF16 = 96,
160 DXGI_FORMAT_BC7_TYPELESS = 97,
161 DXGI_FORMAT_BC7_UNORM = 98,
162 DXGI_FORMAT_BC7_UNORM_SRGB = 99,
163 DXGI_FORMAT_FORCE_UINT = 0xffffffff
164 } DXGI_FORMAT, *LPDXGI_FORMAT;
165
166 #endif /*__MINGW_HAS_DXSDK*/
167
168 #ifndef __IDWriteRenderingParams_FWD_DEFINED__
169 #define __IDWriteRenderingParams_FWD_DEFINED__
170 typedef struct IDWriteRenderingParams IDWriteRenderingParams;
171 #endif
172
173 #ifndef __IDXGISurface_FWD_DEFINED__
174 #define __IDXGISurface_FWD_DEFINED__
175 typedef struct IDXGISurface IDXGISurface;
176 #endif
177
178 #ifndef __IDWriteTextFormat_FWD_DEFINED__
179 #define __IDWriteTextFormat_FWD_DEFINED__
180 typedef struct IDWriteTextFormat IDWriteTextFormat;
181 #endif
182
183 #ifndef __IDWriteTextLayout_FWD_DEFINED__
184 #define __IDWriteTextLayout_FWD_DEFINED__
185 typedef struct IDWriteTextLayout IDWriteTextLayout;
186 #endif
187
188 #ifndef __IDWriteFontFace_FWD_DEFINED__
189 #define __IDWriteFontFace_FWD_DEFINED__
190 typedef struct IDWriteFontFace IDWriteFontFace;
191 #endif
192
193 typedef enum _D2D1_ALPHA_MODE {
194 D2D1_ALPHA_MODE_UNKNOWN = 0,
195 D2D1_ALPHA_MODE_PREMULTIPLIED = 1,
196 D2D1_ALPHA_MODE_STRAIGHT = 2,
197 D2D1_ALPHA_MODE_IGNORE = 3
198 } D2D1_ALPHA_MODE;
199
200 typedef enum _D2D1_ANTIALIAS_MODE {
201 D2D1_ANTIALIAS_MODE_PER_PRIMITIVE = 0,
202 D2D1_ANTIALIAS_MODE_ALIASED = 1
203 } D2D1_ANTIALIAS_MODE;
204
205 typedef enum _D2D1_ARC_SIZE {
206 D2D1_ARC_SIZE_SMALL = 0,
207 D2D1_ARC_SIZE_LARGE = 1
208 } D2D1_ARC_SIZE;
209
210 enum {
211 D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR = 0,
212 D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR = 1,
213 D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC = 2,
214 D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR = 3,
215 D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC = 4,
216 D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC = 5,
217 D2D1_INTERPOLATION_MODE_DEFINITION_FANT = 6,
218 D2D1_INTERPOLATION_MODE_DEFINITION_MIPMAP_LINEAR = 7
219 };
220
221 typedef enum _D2D1_BITMAP_INTERPOLATION_MODE {
222 D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR = 0,
223 D2D1_BITMAP_INTERPOLATION_MODE_LINEAR = 1
224 } D2D1_BITMAP_INTERPOLATION_MODE;
225
226 typedef enum _D2D1_CAP_STYLE {
227 D2D1_CAP_STYLE_FLAT = 0,
228 D2D1_CAP_STYLE_SQUARE = 1,
229 D2D1_CAP_STYLE_ROUND = 2,
230 D2D1_CAP_STYLE_TRIANGLE = 3
231 } D2D1_CAP_STYLE;
232
233 typedef enum _D2D1_COMBINE_MODE {
234 D2D1_COMBINE_MODE_UNION = 0,
235 D2D1_COMBINE_MODE_INTERSECT = 1,
236 D2D1_COMBINE_MODE_XOR = 2,
237 D2D1_COMBINE_MODE_EXCLUDE = 3
238 } D2D1_COMBINE_MODE;
239
240 typedef enum _D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS {
241 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE = 0x00000000,
242 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE = 0x00000001
243 } D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS;
244
245 typedef enum _D2D1_DASH_STYLE {
246 D2D1_DASH_STYLE_SOLID = 0,
247 D2D1_DASH_STYLE_DASH = 1,
248 D2D1_DASH_STYLE_DOT = 2,
249 D2D1_DASH_STYLE_DASH_DOT = 3,
250 D2D1_DASH_STYLE_DASH_DOT_DOT = 4,
251 D2D1_DASH_STYLE_CUSTOM = 5
252 } D2D1_DASH_STYLE;
253
254 typedef enum _D2D1_DC_INITIALIZE_MODE {
255 D2D1_DC_INITIALIZE_MODE_COPY = 0,
256 D2D1_DC_INITIALIZE_MODE_CLEAR = 1
257 } D2D1_DC_INITIALIZE_MODE;
258
259 typedef enum _D2D1_DEBUG_LEVEL {
260 D2D1_DEBUG_LEVEL_NONE = 0,
261 D2D1_DEBUG_LEVEL_ERROR = 1,
262 D2D1_DEBUG_LEVEL_WARNING = 2,
263 D2D1_DEBUG_LEVEL_INFORMATION = 3
264 } D2D1_DEBUG_LEVEL;
265
266 typedef enum _D2D1_DRAW_TEXT_OPTIONS {
267 D2D1_DRAW_TEXT_OPTIONS_NO_SNAP = 0x00000001,
268 D2D1_DRAW_TEXT_OPTIONS_CLIP = 0x00000002,
269 D2D1_DRAW_TEXT_OPTIONS_NONE = 0x00000000
270 } D2D1_DRAW_TEXT_OPTIONS;
271
272 typedef enum _D2D1_EXTEND_MODE {
273 D2D1_EXTEND_MODE_CLAMP = 0,
274 D2D1_EXTEND_MODE_WRAP = 1,
275 D2D1_EXTEND_MODE_MIRROR = 2
276 } D2D1_EXTEND_MODE;
277
278 typedef enum _D2D1_FACTORY_TYPE {
279 D2D1_FACTORY_TYPE_SINGLE_THREADED = 0,
280 D2D1_FACTORY_TYPE_MULTI_THREADED = 1
281 } D2D1_FACTORY_TYPE;
282
283 typedef enum _D2D1_FEATURE_LEVEL {
284 D2D1_FEATURE_LEVEL_DEFAULT = 0,
285 D2D1_FEATURE_LEVEL_9 = D3D10_FEATURE_LEVEL_9_1,
286 D2D1_FEATURE_LEVEL_10 = D3D10_FEATURE_LEVEL_10_0
287 } D2D1_FEATURE_LEVEL;
288
289 typedef enum _D2D1_FIGURE_BEGIN {
290 D2D1_FIGURE_BEGIN_FILLED = 0,
291 D2D1_FIGURE_BEGIN_HOLLOW = 1
292 } D2D1_FIGURE_BEGIN;
293
294 typedef enum _D2D1_FIGURE_END {
295 D2D1_FIGURE_END_OPEN = 0,
296 D2D1_FIGURE_END_CLOSED = 1
297 } D2D1_FIGURE_END;
298
299 typedef enum _D2D1_FILL_MODE {
300 D2D1_FILL_MODE_ALTERNATE = 0,
301 D2D1_FILL_MODE_WINDING = 1
302 } D2D1_FILL_MODE;
303
304 typedef enum _D2D1_GAMMA {
305 D2D1_GAMMA_2_2 = 0,
306 D2D1_GAMMA_1_0 = 1
307 } D2D1_GAMMA;
308
309 typedef enum _D2D1_GEOMETRY_RELATION {
310 D2D1_GEOMETRY_RELATION_UNKNOWN = 0,
311 D2D1_GEOMETRY_RELATION_DISJOINT = 1,
312 D2D1_GEOMETRY_RELATION_IS_CONTAINED = 2,
313 D2D1_GEOMETRY_RELATION_CONTAINS = 3,
314 D2D1_GEOMETRY_RELATION_OVERLAP = 4
315 } D2D1_GEOMETRY_RELATION;
316
317 typedef enum _D2D1_GEOMETRY_SIMPLIFICATION_OPTION {
318 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES = 0,
319 D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES = 1
320 } D2D1_GEOMETRY_SIMPLIFICATION_OPTION;
321
322 typedef enum _D2D1_LAYER_OPTIONS {
323 D2D1_LAYER_OPTIONS_NONE = 0x00000000,
324 D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE = 0x00000001
325 } D2D1_LAYER_OPTIONS;
326
327 typedef enum _D2D1_LINE_JOIN {
328 D2D1_LINE_JOIN_MITER = 0,
329 D2D1_LINE_JOIN_BEVEL = 1,
330 D2D1_LINE_JOIN_ROUND = 2,
331 D2D1_LINE_JOIN_MITER_OR_BEVEL = 3
332 } D2D1_LINE_JOIN;
333
334 typedef enum _D2D1_OPACITY_MASK_CONTENT {
335 D2D1_OPACITY_MASK_CONTENT_GRAPHICS = 0,
336 D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL = 1,
337 D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE = 2
338 } D2D1_OPACITY_MASK_CONTENT;
339
340 typedef enum _D2D1_PATH_SEGMENT {
341 D2D1_PATH_SEGMENT_NONE = 0x00000000,
342 D2D1_PATH_SEGMENT_FORCE_UNSTROKED = 0x00000001,
343 D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN = 0x00000002
344 } D2D1_PATH_SEGMENT;
345
346 typedef enum _D2D1_PRESENT_OPTIONS {
347 D2D1_PRESENT_OPTIONS_NONE = 0x00000000,
348 D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS = 0x00000001,
349 D2D1_PRESENT_OPTIONS_IMMEDIATELY = 0x00000002
350 } D2D1_PRESENT_OPTIONS;
351
352 typedef enum _D2D1_RENDER_TARGET_TYPE {
353 D2D1_RENDER_TARGET_TYPE_DEFAULT = 0,
354 D2D1_RENDER_TARGET_TYPE_SOFTWARE = 1,
355 D2D1_RENDER_TARGET_TYPE_HARDWARE = 2
356 } D2D1_RENDER_TARGET_TYPE;
357
358 typedef enum _D2D1_RENDER_TARGET_USAGE {
359 D2D1_RENDER_TARGET_USAGE_NONE = 0x00000000,
360 D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING = 0x00000001,
361 D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE = 0x00000002
362 } D2D1_RENDER_TARGET_USAGE;
363
364 typedef enum _D2D1_SWEEP_DIRECTION {
365 D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE = 0,
366 D2D1_SWEEP_DIRECTION_CLOCKWISE = 1
367 } D2D1_SWEEP_DIRECTION;
368
369 typedef enum _D2D1_TEXT_ANTIALIAS_MODE {
370 D2D1_TEXT_ANTIALIAS_MODE_DEFAULT = 0,
371 D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE = 1,
372 D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE = 2,
373 D2D1_TEXT_ANTIALIAS_MODE_ALIASED = 3
374 } D2D1_TEXT_ANTIALIAS_MODE;
375
376 typedef enum _D2D1_WINDOW_STATE {
377 D2D1_WINDOW_STATE_NONE = 0x0000000,
378 D2D1_WINDOW_STATE_OCCLUDED = 0x0000001
379 } D2D1_WINDOW_STATE;
380
381 /* this is a hack so we can use forward declares in C (easier than reordering interfaces) */
382 #if !defined(__cplusplus)
383 #undef DECLARE_INTERFACE
384 #define DECLARE_INTERFACE(iface) struct iface { struct iface##Vtbl *lpVtbl; }; typedef struct iface##Vtbl iface##Vtbl; struct iface##Vtbl
385 #endif
386
387 /* interface forward declares */
388
389 typedef _COM_interface ID2D1Bitmap ID2D1Bitmap;
390 typedef _COM_interface ID2D1BitmapBrush ID2D1BitmapBrush;
391 typedef _COM_interface ID2D1BitmapRenderTarget ID2D1BitmapRenderTarget;
392 typedef _COM_interface ID2D1Brush ID2D1Brush;
393 typedef _COM_interface ID2D1DCRenderTarget ID2D1DCRenderTarget;
394 typedef _COM_interface ID2D1DrawingStateBlock ID2D1DrawingStateBlock;
395 typedef _COM_interface ID2D1EllipseGeometry ID2D1EllipseGeometry;
396 typedef _COM_interface ID2D1Factory ID2D1Factory;
397 typedef _COM_interface ID2D1GdiInteropRenderTarget ID2D1GdiInteropRenderTarget;
398 typedef _COM_interface ID2D1Geometry ID2D1Geometry;
399 typedef _COM_interface ID2D1GeometryGroup ID2D1GeometryGroup;
400 typedef _COM_interface ID2D1GeometrySink ID2D1GeometrySink;
401 typedef _COM_interface ID2D1GradientStopCollection ID2D1GradientStopCollection;
402 typedef _COM_interface ID2D1HwndRenderTarget ID2D1HwndRenderTarget;
403 typedef _COM_interface ID2D1Layer ID2D1Layer;
404 typedef _COM_interface ID2D1LinearGradientBrush ID2D1LinearGradientBrush;
405 typedef _COM_interface ID2D1Mesh ID2D1Mesh;
406 typedef _COM_interface ID2D1PathGeometry ID2D1PathGeometry;
407 typedef _COM_interface ID2D1RadialGradientBrush ID2D1RadialGradientBrush;
408 typedef _COM_interface ID2D1RectangleGeometry ID2D1RectangleGeometry;
409 typedef _COM_interface ID2D1RenderTarget ID2D1RenderTarget;
410 typedef _COM_interface ID2D1Resource ID2D1Resource;
411 typedef _COM_interface ID2D1RoundedRectangleGeometry ID2D1RoundedRectangleGeometry;
412 typedef _COM_interface ID2D1SimplifiedGeometrySink ID2D1SimplifiedGeometrySink;
413 typedef _COM_interface ID2D1SolidColorBrush ID2D1SolidColorBrush;
414 typedef _COM_interface ID2D1StrokeStyle ID2D1StrokeStyle;
415 typedef _COM_interface ID2D1TessellationSink ID2D1TessellationSink;
416 typedef _COM_interface ID2D1TransformedGeometry ID2D1TransformedGeometry;
417
418 /* structures */
419
420 typedef struct D2D_MATRIX_3X2_F D2D1_MATRIX_3X2_F;
421
422 typedef struct D2D1_ARC_SEGMENT D2D1_ARC_SEGMENT;
423 typedef struct D2D1_BEZIER_SEGMENT D2D1_BEZIER_SEGMENT;
424 typedef struct D2D1_BITMAP_BRUSH_PROPERTIES D2D1_BITMAP_BRUSH_PROPERTIES;
425 typedef struct D2D1_BITMAP_PROPERTIES D2D1_BITMAP_PROPERTIES;
426 typedef struct D2D1_BRUSH_PROPERTIES D2D1_BRUSH_PROPERTIES;
427 typedef struct D2D1_DRAWING_STATE_DESCRIPTION D2D1_DRAWING_STATE_DESCRIPTION;
428 typedef struct D2D1_ELLIPSE D2D1_ELLIPSE;
429 typedef struct D2D1_FACTORY_OPTIONS D2D1_FACTORY_OPTIONS;
430 typedef struct D2D1_GRADIENT_STOP D2D1_GRADIENT_STOP;
431 typedef struct D2D1_HWND_RENDER_TARGET_PROPERTIES D2D1_HWND_RENDER_TARGET_PROPERTIES;
432 typedef struct D2D1_LAYER_PARAMETERS D2D1_LAYER_PARAMETERS;
433 typedef struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES;
434 typedef struct D2D1_PIXEL_FORMAT D2D1_PIXEL_FORMAT;
435 typedef struct D2D1_QUADRATIC_BEZIER_SEGMENT D2D1_QUADRATIC_BEZIER_SEGMENT;
436 typedef struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES;
437 typedef struct D2D1_RENDER_TARGET_PROPERTIES D2D1_RENDER_TARGET_PROPERTIES;
438 typedef struct D2D1_ROUNDED_RECT D2D1_ROUNDED_RECT;
439 typedef struct D2D1_STROKE_STYLE_PROPERTIES D2D1_STROKE_STYLE_PROPERTIES;
440 typedef struct D2D1_TRIANGLE D2D1_TRIANGLE;
441
442 struct D2D1_ARC_SEGMENT {
443 D2D1_POINT_2F point;
444 D2D1_SIZE_F size;
445 FLOAT rotationAngle;
446 D2D1_SWEEP_DIRECTION sweepDirection;
447 D2D1_ARC_SIZE arcSize;
448 };
449
450 struct D2D1_BEZIER_SEGMENT {
451 D2D1_POINT_2F point1;
452 D2D1_POINT_2F point2;
453 D2D1_POINT_2F point3;
454 };
455
456 struct D2D1_BITMAP_BRUSH_PROPERTIES {
457 D2D1_EXTEND_MODE extendModeX;
458 D2D1_EXTEND_MODE extendModeY;
459 D2D1_BITMAP_INTERPOLATION_MODE interpolationMode;
460 };
461
462 struct D2D1_PIXEL_FORMAT {
463 DXGI_FORMAT format;
464 D2D1_ALPHA_MODE alphaMode;
465 };
466
467 struct D2D1_BITMAP_PROPERTIES {
468 D2D1_PIXEL_FORMAT pixelFormat;
469 FLOAT dpiX;
470 FLOAT dpiY;
471 };
472
473 struct D2D1_BRUSH_PROPERTIES {
474 FLOAT opacity;
475 D2D1_MATRIX_3X2_F transform;
476 };
477
478 struct D2D1_DRAWING_STATE_DESCRIPTION {
479 D2D1_ANTIALIAS_MODE antialiasMode;
480 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode;
481 D2D1_TAG tag1;
482 D2D1_TAG tag2;
483 D2D1_MATRIX_3X2_F transform;
484 };
485
486 struct D2D1_ELLIPSE {
487 D2D1_POINT_2F point;
488 FLOAT radiusX;
489 FLOAT radiusY;
490 };
491
492 struct D2D1_FACTORY_OPTIONS {
493 D2D1_DEBUG_LEVEL debugLevel;
494 };
495
496 struct D2D1_GRADIENT_STOP {
497 FLOAT position;
498 D2D1_COLOR_F color;
499 };
500
501 struct D2D1_HWND_RENDER_TARGET_PROPERTIES {
502 HWND hwnd;
503 D2D1_SIZE_U pixelSize;
504 D2D1_PRESENT_OPTIONS presentOptions;
505 };
506
507 struct D2D1_LAYER_PARAMETERS {
508 D2D1_RECT_F contentBounds;
509 ID2D1Geometry *geometricMask;
510 D2D1_ANTIALIAS_MODE maskAntialiasMode;
511 D2D1_MATRIX_3X2_F maskTransform;
512 FLOAT opacity;
513 ID2D1Brush *opacityBrush;
514 D2D1_LAYER_OPTIONS layerOptions;
515 };
516
517 struct D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES {
518 D2D1_POINT_2F startPoint;
519 D2D1_POINT_2F endPoint;
520 };
521
522 struct D2D1_QUADRATIC_BEZIER_SEGMENT {
523 D2D1_POINT_2F point1;
524 D2D1_POINT_2F point2;
525 };
526
527 struct D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES {
528 D2D1_POINT_2F center;
529 D2D1_POINT_2F gradientOriginOffset;
530 FLOAT radiusX;
531 FLOAT radiusY;
532 };
533
534 struct D2D1_RENDER_TARGET_PROPERTIES {
535 D2D1_RENDER_TARGET_TYPE type;
536 D2D1_PIXEL_FORMAT pixelFormat;
537 FLOAT dpiX;
538 FLOAT dpiY;
539 D2D1_RENDER_TARGET_USAGE usage;
540 D2D1_FEATURE_LEVEL minLevel;
541 };
542
543 struct D2D1_ROUNDED_RECT {
544 D2D1_RECT_F rect;
545 FLOAT radiusX;
546 FLOAT radiusY;
547 };
548
549 struct D2D1_STROKE_STYLE_PROPERTIES {
550 D2D1_CAP_STYLE startCap;
551 D2D1_CAP_STYLE endCap;
552 D2D1_CAP_STYLE dashCap;
553 D2D1_LINE_JOIN lineJoin;
554 FLOAT miterLimit;
555 D2D1_DASH_STYLE dashStyle;
556 FLOAT dashOffset;
557 };
558
559 struct D2D1_TRIANGLE {
560 D2D1_POINT_2F point1;
561 D2D1_POINT_2F point2;
562 D2D1_POINT_2F point3;
563 };
564
565 /* interfaces */
566
567 /**
568 * Header generated from msdn for the purposes of allowing
569 * 3rd party compiler compatibility with the Microsoft API
570 */
571 DEFINE_GUID(IID_ID2D1Resource, 0x2cd90691,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
572
573 #ifndef D2D_USE_C_DEFINITIONS
574
575 interface ID2D1Resource : public IUnknown {
576 STDMETHOD_(void, GetFactory)(ID2D1Factory **factory) const PURE;
577 };
578
579 #else
580
581 typedef struct ID2D1ResourceVtbl {
582 IUnknownVtbl Base;
583
584 STDMETHOD_(void, GetFactory)(ID2D1Resource *This, ID2D1Factory **factory) PURE;
585 } ID2D1ResourceVtbl;
586
587 interface ID2D1Resource {
588 const ID2D1ResourceVtbl *lpVtbl;
589 };
590
591 #define ID2D1Resource_QueryInterface(this,A,B) (this)->lpVtbl->Base.QueryInterface((IUnknown*)(this),A,B)
592 #define ID2D1Resource_AddRef(this) (this)->lpVtbl->Base.AddRef((IUnknown*)(this))
593 #define ID2D1Resource_Release(this) (this)->lpVtbl->Base.Release((IUnknown*)(this))
594 #define ID2D1Resource_GetFactory(this,A) (this)->lpVtbl->GetFactory(this,A)
595
596 #endif
597
598 DEFINE_GUID(IID_ID2D1Brush, 0x2cd906a8,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
599
600 #ifndef D2D_USE_C_DEFINITIONS
601
602 interface ID2D1Brush : public ID2D1Resource {
603 STDMETHOD_(void, SetOpacity)(FLOAT opacity) PURE;
604 STDMETHOD_(void, SetTransform)(const D2D1_MATRIX_3X2_F *transform) PURE;
605 STDMETHOD_(FLOAT, GetOpacity)(void) const PURE;
606 STDMETHOD_(void, GetTransform)(D2D1_MATRIX_3X2_F *transform) const PURE;
607
SetTransform(const D2D1_MATRIX_3X2_F & transform)608 void SetTransform(const D2D1_MATRIX_3X2_F &transform) {
609 SetTransform(&transform);
610 }
611 };
612
613 #else
614
615 typedef struct ID2D1BrushVtbl {
616 ID2D1ResourceVtbl Base;
617
618 STDMETHOD_(void, SetOpacity)(ID2D1Brush *This, FLOAT opacity) PURE;
619 STDMETHOD_(void, SetTransform)(ID2D1Brush *This, const D2D1_MATRIX_3X2_F *transform) PURE;
620 STDMETHOD_(FLOAT, GetOpacity)(ID2D1Brush *This) PURE;
621 STDMETHOD_(void, GetTransform)(ID2D1Brush *This, D2D1_MATRIX_3X2_F *transform) PURE;
622 } ID2D1BrushVtbl;
623
624 interface ID2D1Brush {
625 const ID2D1BrushVtbl *lpVtbl;
626 };
627
628 #define ID2D1Brush_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
629 #define ID2D1Brush_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
630 #define ID2D1Brush_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
631 #define ID2D1Brush_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
632 #define ID2D1Brush_SetOpacity(this,A) (this)->lpVtbl->SetOpacity(this,A)
633 #define ID2D1Brush_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
634 #define ID2D1Brush_GetOpacity(this) (this)->lpVtbl->GetOpacity(this)
635 #define ID2D1Brush_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
636
637 #endif
638
639 DEFINE_GUID(IID_ID2D1Image, 0x65019f75,0x8da2,0x497c,0xb3,0x2c,0xdf,0xa3,0x4e,0x48,0xed,0xe6);
640
641 #ifndef D2D_USE_C_DEFINITIONS
642
643 interface ID2D1Image : public ID2D1Resource {};
644
645 #else
646
647 typedef struct ID2D1ImageVtbl {
648 ID2D1ResourceVtbl Base;
649 } ID2D1ImageVtbl;
650
651 interface ID2D1Image {
652 const ID2D1ImageVtbl *lpVtbl;
653 };
654
655 #define ID2D1Image_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnkwnown*)(this),A,B)
656 #define ID2D1Image_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
657 #define ID2D1Image_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
658 #define ID2D1Image_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
659
660 #endif
661
662 DEFINE_GUID(IID_ID2D1Bitmap, 0xa2296057,0xea42,0x4099,0x98,0x3b,0x53,0x9f,0xb6,0x50,0x54,0x26);
663
664 #ifndef D2D_USE_C_DEFINITIONS
665
666 interface ID2D1Bitmap : public ID2D1Image {
667 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
668 STDMETHOD_(D2D1_SIZE_F, GetSize)(void) const PURE;
669 #else
670 virtual D2D1_SIZE_F* STDMETHODCALLTYPE GetSize(D2D1_SIZE_F*) const = 0;
671 D2D1_SIZE_F STDMETHODCALLTYPE GetSize() const {
672 D2D1_SIZE_F __ret;
673 GetSize(&__ret);
674 return __ret;
675 }
676 #endif
677
678 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
679 STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(void) const PURE;
680 #else
681 virtual D2D1_SIZE_U* STDMETHODCALLTYPE GetPixelSize(D2D1_SIZE_U*) const = 0;
GetPixelSize()682 D2D1_SIZE_U STDMETHODCALLTYPE GetPixelSize() const {
683 D2D1_SIZE_U __ret;
684 GetPixelSize(&__ret);
685 return __ret;
686 }
687 #endif
688
689 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
690 STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(void) const PURE;
691 #else
692 virtual D2D1_PIXEL_FORMAT* STDMETHODCALLTYPE GetPixelFormat(D2D1_PIXEL_FORMAT*) const = 0;
GetPixelFormat()693 D2D1_PIXEL_FORMAT STDMETHODCALLTYPE GetPixelFormat() const {
694 D2D1_PIXEL_FORMAT __ret;
695 GetPixelFormat(&__ret);
696 return __ret;
697 }
698 #endif
699
700 STDMETHOD_(void, GetDpi)(FLOAT *dpiX, FLOAT *dpiY) const PURE;
701 STDMETHOD(CopyFromBitmap)(const D2D1_POINT_2U *destPoint, ID2D1Bitmap *bitmap, const D2D1_RECT_U *srcRect) PURE;
702 STDMETHOD(CopyFromRenderTarget)(const D2D1_POINT_2U *destPoint, ID2D1RenderTarget *renderTarget, const D2D1_RECT_U *srcRect) PURE;
703 STDMETHOD(CopyFromMemory)(const D2D1_RECT_U *dstRect, const void *srcData, UINT32 pitch) PURE;
704 };
705
706 #else
707
708 typedef struct ID2D1BitmapVtbl {
709 ID2D1ImageVtbl Base;
710
711 STDMETHOD_(D2D1_SIZE_F, GetSize)(ID2D1Bitmap *This) PURE;
712 STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(ID2D1Bitmap *This) PURE;
713 STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(ID2D1Bitmap *This) PURE;
714 STDMETHOD_(void, GetDpi)(ID2D1Bitmap *This, FLOAT *dpiX, FLOAT *dpiY) PURE;
715 STDMETHOD(CopyFromBitmap)(ID2D1Bitmap *This, const D2D1_POINT_2U *destPoint, ID2D1Bitmap *bitmap, const D2D1_RECT_U *srcRect) PURE;
716 STDMETHOD(CopyFromRenderTarget)(ID2D1Bitmap *This, const D2D1_POINT_2U *destPoint, ID2D1RenderTarget *renderTarget, const D2D1_RECT_U *srcRect) PURE;
717 STDMETHOD(CopyFromMemory)(ID2D1Bitmap *This, const D2D1_RECT_U *dstRect, const void *srcData, UINT32 pitch) PURE;
718 } ID2D1BitmapVtbl;
719
720 interface ID2D1Bitmap {
721 const ID2D1BitmapVtbl *lpVtbl;
722 };
723
724 #define ID2D1Bitmap_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnkwnown*)(this),A,B)
725 #define ID2D1Bitmap_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
726 #define ID2D1Bitmap_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
727 #define ID2D1Bitmap_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
728 #define ID2D1Bitmap_GetSize(this) (this)->lpVtbl->GetSize(this)
729 #define ID2D1Bitmap_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
730 #define ID2D1Bitmap_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
731 #define ID2D1Bitmap_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
732 #define ID2D1Bitmap_CopyFromBitmap(this,A,B,C) (this)->lpVtbl->CopyFromBitmap(this,A,B,C)
733 #define ID2D1Bitmap_CopyFromRenderTarget(this,A,B,C) (this)->lpVtbl->CopyFromRenderTarget(this,A,B,C)
734 #define ID2D1Bitmap_CopyFromMemory(this,A,B,C) (this)->lpVtbl->CopyFromMemory(this,A,B,C)
735
736 #endif
737
738 DEFINE_GUID(IID_ID2D1BitmapBrush, 0x2cd906aa,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
739
740 #ifndef D2D_USE_C_DEFINITIONS
741
742 interface ID2D1BitmapBrush : public ID2D1Brush {
743 STDMETHOD_(void, SetExtendModeX)(D2D1_EXTEND_MODE extendModeX) PURE;
744 STDMETHOD_(void, SetExtendModeY)(D2D1_EXTEND_MODE extendModeY) PURE;
745 STDMETHOD_(void, SetInterpolationMode)(D2D1_BITMAP_INTERPOLATION_MODE interpolationMode) PURE;
746 STDMETHOD_(void, SetBitmap)(ID2D1Bitmap *bitmap) PURE;
747 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(void) const PURE;
748 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(void) const PURE;
749 STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(void) const PURE;
750 STDMETHOD_(void, GetBitmap)(ID2D1Bitmap **bitmap) const PURE;
751 };
752
753 #else
754
755 typedef struct ID2D1BitmapBrushVtbl {
756 ID2D1BrushVtbl Base;
757
758 STDMETHOD_(void, SetExtendModeX)(ID2D1BitmapBrush *This, D2D1_EXTEND_MODE extendModeX) PURE;
759 STDMETHOD_(void, SetExtendModeY)(ID2D1BitmapBrush *This, D2D1_EXTEND_MODE extendModeY) PURE;
760 STDMETHOD_(void, SetInterpolationMode)(ID2D1BitmapBrush *This, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode) PURE;
761 STDMETHOD_(void, SetBitmap)(ID2D1BitmapBrush *This, ID2D1Bitmap *bitmap) PURE;
762 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeX)(ID2D1BitmapBrush *This) PURE;
763 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendModeY)(ID2D1BitmapBrush *This) PURE;
764 STDMETHOD_(D2D1_BITMAP_INTERPOLATION_MODE, GetInterpolationMode)(ID2D1BitmapBrush *This) PURE;
765 STDMETHOD_(void, GetBitmap)(ID2D1BitmapBrush *This, ID2D1Bitmap **bitmap) PURE;
766 } ID2D1BitmapBrushVtbl;
767
768 interface ID2D1BitmapBrush {
769 const ID2D1BitmapBrushVtbl *lpVtbl;
770 };
771
772 #define ID2D1BitmapBrush_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnkwnown*)(this),A,B)
773 #define ID2D1BitmapBrush_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
774 #define ID2D1BitmapBrush_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
775 #define ID2D1BitmapBrush_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
776 #define ID2D1BitmapBrush_SetOpacity(this,A) (this)->lpVtbl->Base.SetOpacity((ID2D1Brush*)(this),A)
777 #define ID2D1BitmapBrush_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1Brush*)(this),A)
778 #define ID2D1BitmapBrush_GetOpacity(this) (this)->lpVtbl->Base.GetOpacity((ID2D1Brush*)(this))
779 #define ID2D1BitmapBrush_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1Brush*)(this),A)
780 #define ID2D1BitmapBrush_SetExtendModeX(this,A) (this)->lpVtbl->SetExtendModeX(this,A)
781 #define ID2D1BitmapBrush_SetExtendModeY(this,A) (this)->lpVtbl->SetExtendModeY(this,A)
782 #define ID2D1BitmapBrush_SetInterpolationMode(this,A) (this)->lpVtbl->SetInterpolationMode(this,A)
783 #define ID2D1BitmapBrush_SetBitmap(this,A) (this)->lpVtbl->SetBitmap(this,A)
784 #define ID2D1BitmapBrush_GetExtendModeX(this) (this)->lpVtbl->GetExtendModeX(this)
785 #define ID2D1BitmapBrush_GetExtendModeY(this) (this)->lpVtbl->GetExtendModeY(this)
786 #define ID2D1BitmapBrush_GetInterpolationMode(this) (this)->lpVtbl->GetInterpolationMode(this)
787 #define ID2D1BitmapBrush_GetBitmap(this,A) (this)->lpVtbl->GetBitmap(this,A)
788
789 #endif
790
791 DEFINE_GUID(IID_ID2D1RenderTarget, 0x2cd90694,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
792
793 #ifndef D2D_USE_C_DEFINITIONS
794
795 interface ID2D1RenderTarget : public ID2D1Resource {
796 STDMETHOD(CreateBitmap)(D2D1_SIZE_U size, const void *srcData, UINT32 pitch, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
797 STDMETHOD(CreateBitmapFromWicBitmap)(IWICBitmapSource *wicBitmapSource, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
798 STDMETHOD(CreateSharedBitmap)(REFIID riid, void *data, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
799 STDMETHOD(CreateBitmapBrush)(ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1BitmapBrush **bitmapBrush) PURE;
800 STDMETHOD(CreateSolidColorBrush)(const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
801 STDMETHOD(CreateGradientStopCollection)(const D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, D2D1_GAMMA colorInterpolationGamma, D2D1_EXTEND_MODE extendMode, ID2D1GradientStopCollection **gradientStopCollection) PURE;
802 STDMETHOD(CreateLinearGradientBrush)(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
803 STDMETHOD(CreateRadialGradientBrush)(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
804 STDMETHOD(CreateCompatibleRenderTarget)(const D2D1_SIZE_F *desiredSize, const D2D1_SIZE_U *desiredPixelSize, const D2D1_PIXEL_FORMAT *desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
805 STDMETHOD(CreateLayer)(const D2D1_SIZE_F *size, ID2D1Layer **layer) PURE;
806 STDMETHOD(CreateMesh)(ID2D1Mesh **mesh) PURE;
807 STDMETHOD_(void, DrawLine)(D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) PURE;
808 STDMETHOD_(void, DrawRectangle)(const D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) PURE;
809 STDMETHOD_(void, FillRectangle)(const D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
810 STDMETHOD_(void, DrawRoundedRectangle)(const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) PURE;
811 STDMETHOD_(void, FillRoundedRectangle)(const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
812 STDMETHOD_(void, DrawEllipse)(const D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) PURE;
813 STDMETHOD_(void, FillEllipse)(const D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
814 STDMETHOD_(void, DrawGeometry)(ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) PURE;
815 STDMETHOD_(void, FillGeometry)(ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush = NULL) PURE;
816 STDMETHOD_(void, FillMesh)(ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
817 STDMETHOD_(void, FillOpacityMask)(ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, const D2D1_RECT_F *destinationRectangle = NULL, const D2D1_RECT_F *sourceRectangle = NULL) PURE;
818 STDMETHOD_(void, DrawBitmap)(ID2D1Bitmap *bitmap, const D2D1_RECT_F *destinationRectangle = NULL, FLOAT opacity = 1.0f, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, const D2D1_RECT_F *sourceRectangle = NULL) PURE;
819 STDMETHOD_(void, DrawText)(const WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, const D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL) PURE;
820 STDMETHOD_(void, DrawTextLayout)(D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE) PURE;
821 STDMETHOD_(void, DrawGlyphRun)(D2D1_POINT_2F baselineOrigin, CONST DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL) PURE;
822 STDMETHOD_(void, SetTransform)(const D2D1_MATRIX_3X2_F *transform) PURE;
823 STDMETHOD_(void, GetTransform)(D2D1_MATRIX_3X2_F *transform) const PURE;
824 STDMETHOD_(void, SetAntialiasMode)(D2D1_ANTIALIAS_MODE antialiasMode) PURE;
825 STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(void) const PURE;
826 STDMETHOD_(void, SetTextAntialiasMode)(D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
827 STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(void) const PURE;
828 STDMETHOD_(void, SetTextRenderingParams)(IDWriteRenderingParams *textRenderingParams = NULL) PURE;
829 STDMETHOD_(void, GetTextRenderingParams)(IDWriteRenderingParams **textRenderingParams) const PURE;
830 STDMETHOD_(void, SetTags)(D2D1_TAG tag1, D2D1_TAG tag2) PURE;
831 STDMETHOD_(void, GetTags)(D2D1_TAG *tag1 = NULL, D2D1_TAG *tag2 = NULL) const PURE;
832 STDMETHOD_(void, PushLayer)(const D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
833 STDMETHOD_(void, PopLayer)(void) PURE;
834 STDMETHOD(Flush)(D2D1_TAG *tag1 = NULL, D2D1_TAG *tag2 = NULL) PURE;
835 STDMETHOD_(void, SaveDrawingState)(ID2D1DrawingStateBlock *drawingStateBlock) const PURE;
836 STDMETHOD_(void, RestoreDrawingState)(ID2D1DrawingStateBlock *drawingStateBlock) PURE;
837 STDMETHOD_(void, PushAxisAlignedClip)(const D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
838 STDMETHOD_(void, PopAxisAlignedClip)(void) PURE;
839 STDMETHOD_(void, Clear)(const D2D1_COLOR_F *clearColor = NULL) PURE;
840 STDMETHOD_(void, BeginDraw)(void) PURE;
841 STDMETHOD(EndDraw)(D2D1_TAG *tag1 = NULL, D2D1_TAG *tag2 = NULL) PURE;
842
843 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
844 STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(void) const PURE;
845 #else
846 virtual D2D1_PIXEL_FORMAT* STDMETHODCALLTYPE GetPixelFormat(D2D1_PIXEL_FORMAT*) const = 0;
GetPixelFormat()847 D2D1_PIXEL_FORMAT STDMETHODCALLTYPE GetPixelFormat() const {
848 D2D1_PIXEL_FORMAT __ret;
849 GetPixelFormat(&__ret);
850 return __ret;
851 }
852 #endif
853
854 STDMETHOD_(void, SetDpi)(FLOAT dpiX, FLOAT dpiY) PURE;
855 STDMETHOD_(void, GetDpi)(FLOAT *dpiX, FLOAT *dpiY) const PURE;
856
857 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
858 STDMETHOD_(D2D1_SIZE_F, GetSize)(void) const PURE;
859 #else
860 virtual D2D1_SIZE_F* STDMETHODCALLTYPE GetSize(D2D1_SIZE_F*) const = 0;
GetSize()861 D2D1_SIZE_F STDMETHODCALLTYPE GetSize() const {
862 D2D1_SIZE_F __ret;
863 GetSize(&__ret);
864 return __ret;
865 }
866 #endif
867
868 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
869 STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(void) const PURE;
870 #else
871 virtual D2D1_SIZE_U* STDMETHODCALLTYPE GetPixelSize(D2D1_SIZE_U*) const = 0;
GetPixelSize()872 D2D1_SIZE_U STDMETHODCALLTYPE GetPixelSize() const {
873 D2D1_SIZE_U __ret;
874 GetPixelSize(&__ret);
875 return __ret;
876 }
877 #endif
878
879 STDMETHOD_(UINT32, GetMaximumBitmapSize)(void) const PURE;
880 STDMETHOD_(BOOL, IsSupported)(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) const PURE;
881
CreateBitmap(D2D1_SIZE_U size,const void * srcData,UINT32 pitch,const D2D1_BITMAP_PROPERTIES & bitmapProperties,ID2D1Bitmap ** bitmap)882 HRESULT CreateBitmap(D2D1_SIZE_U size, const void *srcData, UINT32 pitch, const D2D1_BITMAP_PROPERTIES &bitmapProperties, ID2D1Bitmap **bitmap) {
883 return CreateBitmap(size, srcData, pitch, &bitmapProperties, bitmap);
884 }
885
CreateBitmap(D2D1_SIZE_U size,const D2D1_BITMAP_PROPERTIES & bitmapProperties,ID2D1Bitmap ** bitmap)886 HRESULT CreateBitmap(D2D1_SIZE_U size, const D2D1_BITMAP_PROPERTIES &bitmapProperties, ID2D1Bitmap **bitmap) {
887 return CreateBitmap(size, NULL, 0, &bitmapProperties, bitmap);
888 }
889
CreateBitmapFromWicBitmap(IWICBitmapSource * wicBitmapSource,const D2D1_BITMAP_PROPERTIES & bitmapProperties,ID2D1Bitmap ** bitmap)890 HRESULT CreateBitmapFromWicBitmap(IWICBitmapSource *wicBitmapSource, const D2D1_BITMAP_PROPERTIES &bitmapProperties, ID2D1Bitmap **bitmap) {
891 return CreateBitmapFromWicBitmap(wicBitmapSource, &bitmapProperties, bitmap);
892 }
893
CreateBitmapFromWicBitmap(IWICBitmapSource * wicBitmapSource,ID2D1Bitmap ** bitmap)894 HRESULT CreateBitmapFromWicBitmap(IWICBitmapSource *wicBitmapSource, ID2D1Bitmap **bitmap) {
895 return CreateBitmapFromWicBitmap(wicBitmapSource, NULL, bitmap);
896 }
897
CreateBitmapBrush(ID2D1Bitmap * bitmap,ID2D1BitmapBrush ** bitmapBrush)898 HRESULT CreateBitmapBrush(ID2D1Bitmap *bitmap, ID2D1BitmapBrush **bitmapBrush) {
899 return CreateBitmapBrush(bitmap, NULL, NULL, bitmapBrush);
900 }
901
CreateBitmapBrush(ID2D1Bitmap * bitmap,const D2D1_BITMAP_BRUSH_PROPERTIES & bitmapBrushProperties,ID2D1BitmapBrush ** bitmapBrush)902 HRESULT CreateBitmapBrush(ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, ID2D1BitmapBrush **bitmapBrush) {
903 return CreateBitmapBrush(bitmap, &bitmapBrushProperties, NULL, bitmapBrush);
904 }
905
CreateBitmapBrush(ID2D1Bitmap * bitmap,const D2D1_BITMAP_BRUSH_PROPERTIES & bitmapBrushProperties,const D2D1_BRUSH_PROPERTIES & brushProperties,ID2D1BitmapBrush ** bitmapBrush)906 HRESULT CreateBitmapBrush(ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES &bitmapBrushProperties, const D2D1_BRUSH_PROPERTIES &brushProperties, ID2D1BitmapBrush **bitmapBrush) {
907 return CreateBitmapBrush(bitmap, &bitmapBrushProperties, &brushProperties, bitmapBrush);
908 }
909
CreateSolidColorBrush(const D2D1_COLOR_F & color,ID2D1SolidColorBrush ** solidColorBrush)910 HRESULT CreateSolidColorBrush(const D2D1_COLOR_F &color, ID2D1SolidColorBrush **solidColorBrush) {
911 return CreateSolidColorBrush(&color, NULL, solidColorBrush);
912 }
913
CreateSolidColorBrush(const D2D1_COLOR_F & color,const D2D1_BRUSH_PROPERTIES & brushProperties,ID2D1SolidColorBrush ** solidColorBrush)914 HRESULT CreateSolidColorBrush(const D2D1_COLOR_F &color, const D2D1_BRUSH_PROPERTIES &brushProperties, ID2D1SolidColorBrush **solidColorBrush) {
915 return CreateSolidColorBrush(&color, &brushProperties, solidColorBrush);
916 }
917
CreateGradientStopCollection(const D2D1_GRADIENT_STOP * gradientStops,UINT gradientStopsCount,ID2D1GradientStopCollection ** gradientStopCollection)918 HRESULT CreateGradientStopCollection(const D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, ID2D1GradientStopCollection **gradientStopCollection) {
919 return CreateGradientStopCollection(gradientStops, gradientStopsCount, D2D1_GAMMA_2_2, D2D1_EXTEND_MODE_CLAMP, gradientStopCollection);
920 }
921
CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES & linearGradientBrushProperties,ID2D1GradientStopCollection * gradientStopCollection,ID2D1LinearGradientBrush ** linearGradientBrush)922 HRESULT CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) {
923 return CreateLinearGradientBrush(&linearGradientBrushProperties, NULL, gradientStopCollection, linearGradientBrush);
924 }
925
CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES & linearGradientBrushProperties,const D2D1_BRUSH_PROPERTIES & brushProperties,ID2D1GradientStopCollection * gradientStopCollection,ID2D1LinearGradientBrush ** linearGradientBrush)926 HRESULT CreateLinearGradientBrush(const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES &linearGradientBrushProperties, const D2D1_BRUSH_PROPERTIES &brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) {
927 return CreateLinearGradientBrush(&linearGradientBrushProperties, &brushProperties, gradientStopCollection, linearGradientBrush);
928 }
929
CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES & radialGradientBrushProperties,ID2D1GradientStopCollection * gradientStopCollection,ID2D1RadialGradientBrush ** radialGradientBrush)930 HRESULT CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) {
931 return CreateRadialGradientBrush(&radialGradientBrushProperties, NULL, gradientStopCollection, radialGradientBrush);
932 }
933
CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES & radialGradientBrushProperties,const D2D1_BRUSH_PROPERTIES & brushProperties,ID2D1GradientStopCollection * gradientStopCollection,ID2D1RadialGradientBrush ** radialGradientBrush)934 HRESULT CreateRadialGradientBrush(const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES &radialGradientBrushProperties, const D2D1_BRUSH_PROPERTIES &brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) {
935 return CreateRadialGradientBrush(&radialGradientBrushProperties, &brushProperties, gradientStopCollection, radialGradientBrush);
936 }
937
CreateCompatibleRenderTarget(ID2D1BitmapRenderTarget ** bitmapRenderTarget)938 HRESULT CreateCompatibleRenderTarget(ID2D1BitmapRenderTarget **bitmapRenderTarget) {
939 return CreateCompatibleRenderTarget(NULL, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
940 }
941
CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize,ID2D1BitmapRenderTarget ** bitmapRenderTarget)942 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, ID2D1BitmapRenderTarget **bitmapRenderTarget) {
943 return CreateCompatibleRenderTarget(&desiredSize, NULL, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
944 }
945
CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize,D2D1_SIZE_U desiredPixelSize,ID2D1BitmapRenderTarget ** bitmapRenderTarget)946 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, ID2D1BitmapRenderTarget **bitmapRenderTarget){
947 return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, NULL, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
948 }
949
CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize,D2D1_SIZE_U desiredPixelSize,D2D1_PIXEL_FORMAT desiredFormat,ID2D1BitmapRenderTarget ** bitmapRenderTarget)950 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, D2D1_PIXEL_FORMAT desiredFormat, ID2D1BitmapRenderTarget **bitmapRenderTarget) {
951 return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE, bitmapRenderTarget);
952 }
953
CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize,D2D1_SIZE_U desiredPixelSize,D2D1_PIXEL_FORMAT desiredFormat,D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options,ID2D1BitmapRenderTarget ** bitmapRenderTarget)954 HRESULT CreateCompatibleRenderTarget(D2D1_SIZE_F desiredSize, D2D1_SIZE_U desiredPixelSize, D2D1_PIXEL_FORMAT desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget **bitmapRenderTarget) {
955 return CreateCompatibleRenderTarget(&desiredSize, &desiredPixelSize, &desiredFormat, options, bitmapRenderTarget);
956 }
957
CreateLayer(D2D1_SIZE_F size,ID2D1Layer ** layer)958 HRESULT CreateLayer(D2D1_SIZE_F size, ID2D1Layer **layer) {
959 return CreateLayer(&size, layer);
960 }
961
CreateLayer(ID2D1Layer ** layer)962 HRESULT CreateLayer(ID2D1Layer **layer) {
963 return CreateLayer(NULL, layer);
964 }
965
966 void DrawRectangle(const D2D1_RECT_F &rect, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) {
967 DrawRectangle(&rect, brush, strokeWidth, strokeStyle);
968 }
969
FillRectangle(const D2D1_RECT_F & rect,ID2D1Brush * brush)970 void FillRectangle(const D2D1_RECT_F &rect, ID2D1Brush *brush) {
971 FillRectangle(&rect, brush);
972 }
973
974 void DrawRoundedRectangle(const D2D1_ROUNDED_RECT &roundedRect, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) {
975 DrawRoundedRectangle(&roundedRect, brush, strokeWidth, strokeStyle);
976 }
977
FillRoundedRectangle(const D2D1_ROUNDED_RECT & roundedRect,ID2D1Brush * brush)978 void FillRoundedRectangle(const D2D1_ROUNDED_RECT &roundedRect, ID2D1Brush *brush) {
979 FillRoundedRectangle(&roundedRect, brush);
980 }
981
982 void DrawEllipse(const D2D1_ELLIPSE &ellipse, ID2D1Brush *brush, FLOAT strokeWidth = 1.0f, ID2D1StrokeStyle *strokeStyle = NULL) {
983 DrawEllipse(&ellipse, brush, strokeWidth, strokeStyle);
984 }
985
FillEllipse(const D2D1_ELLIPSE & ellipse,ID2D1Brush * brush)986 void FillEllipse(const D2D1_ELLIPSE &ellipse, ID2D1Brush *brush) {
987 FillEllipse(&ellipse, brush);
988 }
989
FillOpacityMask(ID2D1Bitmap * opacityMask,ID2D1Brush * brush,D2D1_OPACITY_MASK_CONTENT content,const D2D1_RECT_F & destinationRectangle,const D2D1_RECT_F & sourceRectangle)990 void FillOpacityMask(ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, const D2D1_RECT_F &destinationRectangle, const D2D1_RECT_F &sourceRectangle) {
991 FillOpacityMask(opacityMask, brush, content, &destinationRectangle, &sourceRectangle);
992 }
993
994 void DrawBitmap(ID2D1Bitmap *bitmap, const D2D1_RECT_F &destinationRectangle, FLOAT opacity = 1.0f, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode = D2D1_BITMAP_INTERPOLATION_MODE_LINEAR, const D2D1_RECT_F *sourceRectangle = NULL) {
995 DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, sourceRectangle);
996 }
997
DrawBitmap(ID2D1Bitmap * bitmap,const D2D1_RECT_F & destinationRectangle,FLOAT opacity,D2D1_BITMAP_INTERPOLATION_MODE interpolationMode,const D2D1_RECT_F & sourceRectangle)998 void DrawBitmap(ID2D1Bitmap *bitmap, const D2D1_RECT_F &destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, const D2D1_RECT_F &sourceRectangle) {
999 DrawBitmap(bitmap, &destinationRectangle, opacity, interpolationMode, &sourceRectangle);
1000 }
1001
SetTransform(const D2D1_MATRIX_3X2_F & transform)1002 void SetTransform(const D2D1_MATRIX_3X2_F &transform) {
1003 SetTransform(&transform);
1004 }
1005
PushLayer(const D2D1_LAYER_PARAMETERS & layerParameters,ID2D1Layer * layer)1006 void PushLayer(const D2D1_LAYER_PARAMETERS &layerParameters, ID2D1Layer *layer) {
1007 PushLayer(&layerParameters, layer);
1008 }
1009
PushAxisAlignedClip(const D2D1_RECT_F & clipRect,D2D1_ANTIALIAS_MODE antialiasMode)1010 void PushAxisAlignedClip(const D2D1_RECT_F &clipRect, D2D1_ANTIALIAS_MODE antialiasMode) {
1011 return PushAxisAlignedClip(&clipRect, antialiasMode);
1012 }
1013
Clear(const D2D1_COLOR_F & clearColor)1014 void Clear(const D2D1_COLOR_F &clearColor) {
1015 return Clear(&clearColor);
1016 }
1017
1018 void DrawText(const WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, const D2D1_RECT_F &layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options = D2D1_DRAW_TEXT_OPTIONS_NONE, DWRITE_MEASURING_MODE measuringMode = DWRITE_MEASURING_MODE_NATURAL) {
1019 return DrawText(string, stringLength, textFormat, &layoutRect, defaultForegroundBrush, options, measuringMode);
1020 }
1021
IsSupported(const D2D1_RENDER_TARGET_PROPERTIES & renderTargetProperties)1022 BOOL IsSupported(const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties) const {
1023 return IsSupported(&renderTargetProperties);
1024 }
1025 };
1026
1027 #else
1028
1029 typedef struct ID2D1RenderTargetVtbl {
1030 ID2D1ResourceVtbl Base;
1031
1032 STDMETHOD(CreateBitmap)(ID2D1RenderTarget *This, D2D1_SIZE_U size, const void *srcData, UINT32 pitch, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
1033 STDMETHOD(CreateBitmapFromWicBitmap)(ID2D1RenderTarget *This, IWICBitmapSource *wicBitmapSource, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
1034 STDMETHOD(CreateSharedBitmap)(ID2D1RenderTarget *This, REFIID riid, void *data, const D2D1_BITMAP_PROPERTIES *bitmapProperties, ID2D1Bitmap **bitmap) PURE;
1035 STDMETHOD(CreateBitmapBrush)(ID2D1RenderTarget *This, ID2D1Bitmap *bitmap, const D2D1_BITMAP_BRUSH_PROPERTIES *bitmapBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1BitmapBrush **bitmapBrush) PURE;
1036 STDMETHOD(CreateSolidColorBrush)(ID2D1RenderTarget *This, const D2D1_COLOR_F *color, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1SolidColorBrush **solidColorBrush) PURE;
1037 STDMETHOD(CreateGradientStopCollection)(ID2D1RenderTarget *This, const D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount, D2D1_GAMMA colorInterpolationGamma, D2D1_EXTEND_MODE extendMode, ID2D1GradientStopCollection **gradientStopCollection) PURE;
1038 STDMETHOD(CreateLinearGradientBrush)(ID2D1RenderTarget *This, const D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES *linearGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1LinearGradientBrush **linearGradientBrush) PURE;
1039 STDMETHOD(CreateRadialGradientBrush)(ID2D1RenderTarget *This, const D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES *radialGradientBrushProperties, const D2D1_BRUSH_PROPERTIES *brushProperties, ID2D1GradientStopCollection *gradientStopCollection, ID2D1RadialGradientBrush **radialGradientBrush) PURE;
1040 STDMETHOD(CreateCompatibleRenderTarget)(ID2D1RenderTarget *This, const D2D1_SIZE_F *desiredSize, const D2D1_SIZE_U *desiredPixelSize, const D2D1_PIXEL_FORMAT *desiredFormat, D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS options, ID2D1BitmapRenderTarget **bitmapRenderTarget) PURE;
1041 STDMETHOD(CreateLayer)(ID2D1RenderTarget *This, const D2D1_SIZE_F *size, ID2D1Layer **layer) PURE;
1042 STDMETHOD(CreateMesh)(ID2D1RenderTarget *This, ID2D1Mesh **mesh) PURE;
1043 STDMETHOD_(void, DrawLine)(ID2D1RenderTarget *This, D2D1_POINT_2F point0, D2D1_POINT_2F point1, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
1044 STDMETHOD_(void, DrawRectangle)(ID2D1RenderTarget *This, const D2D1_RECT_F *rect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
1045 STDMETHOD_(void, FillRectangle)(ID2D1RenderTarget *This, const D2D1_RECT_F *rect, ID2D1Brush *brush) PURE;
1046 STDMETHOD_(void, DrawRoundedRectangle)(ID2D1RenderTarget *This, const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
1047 STDMETHOD_(void, FillRoundedRectangle)(ID2D1RenderTarget *This, const D2D1_ROUNDED_RECT *roundedRect, ID2D1Brush *brush) PURE;
1048 STDMETHOD_(void, DrawEllipse)(ID2D1RenderTarget *This, const D2D1_ELLIPSE *ellipse, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
1049 STDMETHOD_(void, FillEllipse)(ID2D1RenderTarget *This, const D2D1_ELLIPSE *ellipse, ID2D1Brush *brush) PURE;
1050 STDMETHOD_(void, DrawGeometry)(ID2D1RenderTarget *This, ID2D1Geometry *geometry, ID2D1Brush *brush, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle) PURE;
1051 STDMETHOD_(void, FillGeometry)(ID2D1RenderTarget *This, ID2D1Geometry *geometry, ID2D1Brush *brush, ID2D1Brush *opacityBrush) PURE;
1052 STDMETHOD_(void, FillMesh)(ID2D1RenderTarget *This, ID2D1Mesh *mesh, ID2D1Brush *brush) PURE;
1053 STDMETHOD_(void, FillOpacityMask)(ID2D1RenderTarget *This, ID2D1Bitmap *opacityMask, ID2D1Brush *brush, D2D1_OPACITY_MASK_CONTENT content, const D2D1_RECT_F *destinationRectangle, const D2D1_RECT_F *sourceRectangle) PURE;
1054 STDMETHOD_(void, DrawBitmap)(ID2D1RenderTarget *This, ID2D1Bitmap *bitmap, const D2D1_RECT_F *destinationRectangle, FLOAT opacity, D2D1_BITMAP_INTERPOLATION_MODE interpolationMode, const D2D1_RECT_F *sourceRectangle) PURE;
1055 STDMETHOD_(void, DrawText)(ID2D1RenderTarget *This, const WCHAR *string, UINT stringLength, IDWriteTextFormat *textFormat, const D2D1_RECT_F *layoutRect, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options, DWRITE_MEASURING_MODE measuringMode) PURE;
1056 STDMETHOD_(void, DrawTextLayout)(ID2D1RenderTarget *This, D2D1_POINT_2F origin, IDWriteTextLayout *textLayout, ID2D1Brush *defaultForegroundBrush, D2D1_DRAW_TEXT_OPTIONS options) PURE;
1057 STDMETHOD_(void, DrawGlyphRun)(ID2D1RenderTarget *This, D2D1_POINT_2F baselineOrigin, const DWRITE_GLYPH_RUN *glyphRun, ID2D1Brush *foregroundBrush, DWRITE_MEASURING_MODE measuringMode) PURE;
1058 STDMETHOD_(void, SetTransform)(ID2D1RenderTarget *This, const D2D1_MATRIX_3X2_F *transform) PURE;
1059 STDMETHOD_(void, GetTransform)(ID2D1RenderTarget *This, D2D1_MATRIX_3X2_F *transform) PURE;
1060 STDMETHOD_(void, SetAntialiasMode)(ID2D1RenderTarget *This, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
1061 STDMETHOD_(D2D1_ANTIALIAS_MODE, GetAntialiasMode)(ID2D1RenderTarget *This) PURE;
1062 STDMETHOD_(void, SetTextAntialiasMode)(ID2D1RenderTarget *This, D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode) PURE;
1063 STDMETHOD_(D2D1_TEXT_ANTIALIAS_MODE, GetTextAntialiasMode)(ID2D1RenderTarget *This) PURE;
1064 STDMETHOD_(void, SetTextRenderingParams)(ID2D1RenderTarget *This, IDWriteRenderingParams *textRenderingParams) PURE;
1065 STDMETHOD_(void, GetTextRenderingParams)(ID2D1RenderTarget *This, IDWriteRenderingParams **textRenderingParams) PURE;
1066 STDMETHOD_(void, SetTags)(ID2D1RenderTarget *This, D2D1_TAG tag1, D2D1_TAG tag2) PURE;
1067 STDMETHOD_(void, GetTags)(ID2D1RenderTarget *This, D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
1068 STDMETHOD_(void, PushLayer)(ID2D1RenderTarget *This, const D2D1_LAYER_PARAMETERS *layerParameters, ID2D1Layer *layer) PURE;
1069 STDMETHOD_(void, PopLayer)(ID2D1RenderTarget *This) PURE;
1070 STDMETHOD(Flush)(ID2D1RenderTarget *This, D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
1071 STDMETHOD_(void, SaveDrawingState)(ID2D1RenderTarget *This, ID2D1DrawingStateBlock *drawingStateBlock) PURE;
1072 STDMETHOD_(void, RestoreDrawingState)(ID2D1RenderTarget *This, ID2D1DrawingStateBlock *drawingStateBlock) PURE;
1073 STDMETHOD_(void, PushAxisAlignedClip)(ID2D1RenderTarget *This, const D2D1_RECT_F *clipRect, D2D1_ANTIALIAS_MODE antialiasMode) PURE;
1074 STDMETHOD_(void, PopAxisAlignedClip)(ID2D1RenderTarget *This) PURE;
1075 STDMETHOD_(void, Clear)(ID2D1RenderTarget *This, const D2D1_COLOR_F *clearColor) PURE;
1076 STDMETHOD_(void, BeginDraw)(ID2D1RenderTarget *This) PURE;
1077 STDMETHOD(EndDraw)(ID2D1RenderTarget *This, D2D1_TAG *tag1, D2D1_TAG *tag2) PURE;
1078 STDMETHOD_(D2D1_PIXEL_FORMAT, GetPixelFormat)(ID2D1RenderTarget *This) PURE;
1079 STDMETHOD_(void, SetDpi)(ID2D1RenderTarget *This, FLOAT dpiX, FLOAT dpiY) PURE;
1080 STDMETHOD_(void, GetDpi)(ID2D1RenderTarget *This, FLOAT *dpiX, FLOAT *dpiY) PURE;
1081 STDMETHOD_(D2D1_SIZE_F, GetSize)(ID2D1RenderTarget *This) PURE;
1082 STDMETHOD_(D2D1_SIZE_U, GetPixelSize)(ID2D1RenderTarget *This) PURE;
1083 STDMETHOD_(UINT32, GetMaximumBitmapSize)(ID2D1RenderTarget *This) PURE;
1084 STDMETHOD_(BOOL, IsSupported)(ID2D1RenderTarget *This, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties) PURE;
1085 } ID2D1RenderTargetVtbl;
1086
1087 interface ID2D1RenderTarget {
1088 const ID2D1RenderTargetVtbl *lpVtbl;
1089 };
1090
1091 #define ID2D1RenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
1092 #define ID2D1RenderTarget_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
1093 #define ID2D1RenderTarget_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
1094 #define ID2D1RenderTarget_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
1095 #define ID2D1RenderTarget_BeginDraw(this) (this)->lpVtbl->BeginDraw(this)
1096 #define ID2D1RenderTarget_Clear(this,A) (this)->lpVtbl->Clear(this,A)
1097 #define ID2D1RenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->CreateBitmap(this,A,B,C,D,E)
1098 #define ID2D1RenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->CreateBitmapBrush(this,A,B)
1099 #define ID2D1RenderTarget_CreateBitmapFromWicBitmap(this,A,B,C) (this)->lpVtbl->CreateBitmapFromWicBitmap(this,A,B,C)
1100 #define ID2D1RenderTarget_CreateCompatibleRenderTarget(this,A,B,C,D,E) (this)->lpVtbl->CreateCompatibleRenderTarget(this,A,B,C,D,E)
1101 #define ID2D1RenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->CreateGradientStopCollection(this,A,B,C)
1102 #define ID2D1RenderTarget_CreateLayer(this,A,B) (this)->lpVtbl->CreateLayer(this,A,B)
1103 #define ID2D1RenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateLinearGradientBrush(this,A,B,C,D)
1104 #define ID2D1RenderTarget_CreateMesh(this,A) (this)->lpVtbl->CreateMesh(this,A)
1105 #define ID2D1RenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->CreateRadialGradientBrush(this,A,B,C,D)
1106 #define ID2D1RenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->CreateSharedBitmap(this,A,B,C,D)
1107 #define ID2D1RenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->CreateSolidColorBrush(this,A,B,C)
1108 #define ID2D1RenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->DrawBitmap(this,A,B,C,D,E)
1109 #define ID2D1RenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->DrawEllipse(this,A,B,C,D)
1110 #define ID2D1RenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->DrawGeometry(this,A,B,C,D)
1111 #define ID2D1RenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->DrawGlyphRun(this,A,B,C,D)
1112 #define ID2D1RenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->DrawLine(this,A,B,C,D,E)
1113 #define ID2D1RenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRectangle(this,A,B,C,D)
1114 #define ID2D1RenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->DrawRoundedRectangle(this,A,B,C,D)
1115 #define ID2D1RenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->DrawText(this,A,B,C,D,E,F,G)
1116 #define ID2D1RenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->DrawTextLayout(this,A,B,C,D)
1117 #define ID2D1RenderTarget_EndDraw(this,A,B) (this)->lpVtbl->EndDraw(this,A,B)
1118 #define ID2D1RenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->FillEllipse(this,A,B)
1119 #define ID2D1RenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->FillGeometry(this,A,B,C)
1120 #define ID2D1RenderTarget_FillMesh(this,A,B) (this)->lpVtbl->FillMesh(this,A,B)
1121 #define ID2D1RenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->FillOpacityMask(this,A,B,C,D,E)
1122 #define ID2D1RenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->FillRectangle(this,A,B)
1123 #define ID2D1RenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->FillRoundedRectangle(this,A,B)
1124 #define ID2D1RenderTarget_Flush(this,A,B) (this)->lpVtbl->Flush(this,A,B)
1125 #define ID2D1RenderTarget_GetAntialiasMode(this) (this)->lpVtbl->GetAntialiasMode(this)
1126 #define ID2D1RenderTarget_GetDpi(this,A,B) (this)->lpVtbl->GetDpi(this,A,B)
1127 #define ID2D1RenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->GetMaximumBitmapSize(this)
1128 #define ID2D1RenderTarget_GetPixelFormat(this) (this)->lpVtbl->GetPixelFormat(this)
1129 #define ID2D1RenderTarget_GetPixelSize(this) (this)->lpVtbl->GetPixelSize(this)
1130 #define ID2D1RenderTarget_GetSize(this) (this)->lpVtbl->GetSize(this)
1131 #define ID2D1RenderTarget_GetTags(this,A,B) (this)->lpVtbl->GetTags(this,A,B)
1132 #define ID2D1RenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->GetTextAntialiasMode(this)
1133 #define ID2D1RenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
1134 #define ID2D1RenderTarget_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
1135 #define ID2D1RenderTarget_IsSupported(this,A) (this)->lpVtbl->IsSupported(this,A)
1136 #define ID2D1RenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->PopAxisAlignedClip(this)
1137 #define ID2D1RenderTarget_PopLayer(this) (this)->lpVtbl->PopLayer(this)
1138 #define ID2D1RenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->PushAxisAlignedClip(this,A,B)
1139 #define ID2D1RenderTarget_PushLayer(this,A,B) (this)->lpVtbl->PushLayer(this,A,B)
1140 #define ID2D1RenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->RestoreDrawingState(this,A)
1141 #define ID2D1RenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->SaveDrawingState(this,A)
1142 #define ID2D1RenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->SetAntialiasMode(this,A)
1143 #define ID2D1RenderTarget_SetDpi(this,A,B) (this)->lpVtbl->SetDpi(this,A,B)
1144 #define ID2D1RenderTarget_SetTags(this,A,B) (this)->lpVtbl->SetTags(this,A,B)
1145 #define ID2D1RenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->SetTextAntialiasMode(this,A)
1146 #define ID2D1RenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
1147 #define ID2D1RenderTarget_SetTransform(this,A) (this)->lpVtbl->SetTransform(this,A)
1148
1149 #endif
1150
1151 DEFINE_GUID(IID_ID2D1Geometry, 0x2cd906a1,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1152
1153 #ifndef D2D_USE_C_DEFINITIONS
1154
1155 interface ID2D1Geometry : public ID2D1Resource {
1156 STDMETHOD(GetBounds)(const D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) const PURE;
1157 STDMETHOD(GetWidenedBounds)(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, D2D1_RECT_F *bounds) const PURE;
1158 STDMETHOD(StrokeContainsPoint)(D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, BOOL *contains) const PURE;
1159 STDMETHOD(FillContainsPoint)(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, BOOL *contains) const PURE;
1160 STDMETHOD(CompareWithGeometry)(ID2D1Geometry *inputGeometry, const D2D1_MATRIX_3X2_F *inputGeometryTransform, FLOAT flatteningTolerance, D2D1_GEOMETRY_RELATION *relation) const PURE;
1161 STDMETHOD(Simplify)(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const PURE;
1162 STDMETHOD(Tessellate)(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1TessellationSink *tessellationSink) const PURE;
1163 STDMETHOD(CombineWithGeometry)(ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, const D2D1_MATRIX_3X2_F *inputGeometryTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const PURE;
1164 STDMETHOD(Outline)(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const PURE;
1165 STDMETHOD(ComputeArea)(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, FLOAT *area) const PURE;
1166 STDMETHOD(ComputeLength)(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, FLOAT *length) const PURE;
1167 STDMETHOD(ComputePointAtLength)(FLOAT length, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) const PURE;
1168 STDMETHOD(Widen)(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const PURE;
1169
GetBounds(const D2D1_MATRIX_3X2_F & worldTransform,D2D1_RECT_F * bounds)1170 HRESULT GetBounds(const D2D1_MATRIX_3X2_F &worldTransform, D2D1_RECT_F *bounds) const {
1171 return GetBounds(&worldTransform, bounds);
1172 }
1173
GetWidenedBounds(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,D2D1_RECT_F * bounds)1174 HRESULT GetWidenedBounds(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, D2D1_RECT_F *bounds) const {
1175 return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, bounds);
1176 }
1177
GetWidenedBounds(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F * worldTransform,D2D1_RECT_F * bounds)1178 HRESULT GetWidenedBounds(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) const {
1179 return GetWidenedBounds(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, bounds);
1180 }
1181
GetWidenedBounds(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,D2D1_RECT_F * bounds)1182 HRESULT GetWidenedBounds(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, D2D1_RECT_F *bounds) const {
1183 return GetWidenedBounds(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, bounds);
1184 }
1185
StrokeContainsPoint(D2D1_POINT_2F point,FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,BOOL * contains)1186 HRESULT StrokeContainsPoint(D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, BOOL *contains) const {
1187 return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, contains);
1188 }
1189
StrokeContainsPoint(D2D1_POINT_2F point,FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F * worldTransform,BOOL * contains)1190 HRESULT StrokeContainsPoint(D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) const {
1191 return StrokeContainsPoint(point, strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
1192 }
1193
StrokeContainsPoint(D2D1_POINT_2F point,FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,BOOL * contains)1194 HRESULT StrokeContainsPoint(D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, BOOL *contains) const {
1195 return StrokeContainsPoint(point, strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
1196 }
1197
FillContainsPoint(D2D1_POINT_2F point,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,BOOL * contains)1198 HRESULT FillContainsPoint(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, BOOL *contains) const {
1199 return FillContainsPoint(point, &worldTransform, flatteningTolerance, contains);
1200 }
1201
FillContainsPoint(D2D1_POINT_2F point,const D2D1_MATRIX_3X2_F * worldTransform,BOOL * contains)1202 HRESULT FillContainsPoint(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F *worldTransform, BOOL *contains) const {
1203 return FillContainsPoint(point, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
1204 }
1205
FillContainsPoint(D2D1_POINT_2F point,const D2D1_MATRIX_3X2_F & worldTransform,BOOL * contains)1206 HRESULT FillContainsPoint(D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F &worldTransform, BOOL *contains) const {
1207 return FillContainsPoint(point, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, contains);
1208 }
1209
CompareWithGeometry(ID2D1Geometry * inputGeometry,const D2D1_MATRIX_3X2_F & inputGeometryTransform,FLOAT flatteningTolerance,D2D1_GEOMETRY_RELATION * relation)1210 HRESULT CompareWithGeometry(ID2D1Geometry *inputGeometry, const D2D1_MATRIX_3X2_F &inputGeometryTransform, FLOAT flatteningTolerance, D2D1_GEOMETRY_RELATION *relation) const {
1211 return CompareWithGeometry(inputGeometry, &inputGeometryTransform, flatteningTolerance, relation);
1212 }
1213
CompareWithGeometry(ID2D1Geometry * inputGeometry,const D2D1_MATRIX_3X2_F * inputGeometryTransform,D2D1_GEOMETRY_RELATION * relation)1214 HRESULT CompareWithGeometry(ID2D1Geometry *inputGeometry, const D2D1_MATRIX_3X2_F *inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) const {
1215 return CompareWithGeometry(inputGeometry, inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, relation);
1216 }
1217
CompareWithGeometry(ID2D1Geometry * inputGeometry,const D2D1_MATRIX_3X2_F & inputGeometryTransform,D2D1_GEOMETRY_RELATION * relation)1218 HRESULT CompareWithGeometry(ID2D1Geometry *inputGeometry, const D2D1_MATRIX_3X2_F &inputGeometryTransform, D2D1_GEOMETRY_RELATION *relation) const {
1219 return CompareWithGeometry(inputGeometry, &inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, relation);
1220 }
1221
Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,ID2D1SimplifiedGeometrySink * geometrySink)1222 HRESULT Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const {
1223 return Simplify(simplificationOption, &worldTransform, flatteningTolerance, geometrySink);
1224 }
1225
Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,const D2D1_MATRIX_3X2_F * worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1226 HRESULT Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1227 return Simplify(simplificationOption, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1228 }
1229
Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption,const D2D1_MATRIX_3X2_F & worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1230 HRESULT Simplify(D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F &worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1231 return Simplify(simplificationOption, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1232 }
1233
Tessellate(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,ID2D1TessellationSink * tessellationSink)1234 HRESULT Tessellate(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, ID2D1TessellationSink *tessellationSink) const {
1235 return Tessellate(&worldTransform, flatteningTolerance, tessellationSink);
1236 }
1237
Tessellate(const D2D1_MATRIX_3X2_F * worldTransform,ID2D1TessellationSink * tessellationSink)1238 HRESULT Tessellate(const D2D1_MATRIX_3X2_F *worldTransform, ID2D1TessellationSink *tessellationSink) const {
1239 return Tessellate(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink);
1240 }
1241
Tessellate(const D2D1_MATRIX_3X2_F & worldTransform,ID2D1TessellationSink * tessellationSink)1242 HRESULT Tessellate(const D2D1_MATRIX_3X2_F &worldTransform, ID2D1TessellationSink *tessellationSink) const {
1243 return Tessellate(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, tessellationSink);
1244 }
1245
CombineWithGeometry(ID2D1Geometry * inputGeometry,D2D1_COMBINE_MODE combineMode,const D2D1_MATRIX_3X2_F & inputGeometryTransform,FLOAT flatteningTolerance,ID2D1SimplifiedGeometrySink * geometrySink)1246 HRESULT CombineWithGeometry(ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, const D2D1_MATRIX_3X2_F &inputGeometryTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const {
1247 return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, flatteningTolerance, geometrySink);
1248 }
1249
CombineWithGeometry(ID2D1Geometry * inputGeometry,D2D1_COMBINE_MODE combineMode,CONST D2D1_MATRIX_3X2_F * inputGeometryTransform,ID2D1SimplifiedGeometrySink * geometrySink)1250 HRESULT CombineWithGeometry(ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, CONST D2D1_MATRIX_3X2_F *inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1251 return CombineWithGeometry(inputGeometry, combineMode, inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1252 }
1253
CombineWithGeometry(ID2D1Geometry * inputGeometry,D2D1_COMBINE_MODE combineMode,const D2D1_MATRIX_3X2_F & inputGeometryTransform,ID2D1SimplifiedGeometrySink * geometrySink)1254 HRESULT CombineWithGeometry(ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, const D2D1_MATRIX_3X2_F &inputGeometryTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1255 return CombineWithGeometry(inputGeometry, combineMode, &inputGeometryTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1256 }
1257
Outline(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,ID2D1SimplifiedGeometrySink * geometrySink)1258 HRESULT Outline(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const {
1259 return Outline(&worldTransform, flatteningTolerance, geometrySink);
1260 }
1261
Outline(const D2D1_MATRIX_3X2_F * worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1262 HRESULT Outline(const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1263 return Outline(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1264 }
1265
Outline(const D2D1_MATRIX_3X2_F & worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1266 HRESULT Outline(const D2D1_MATRIX_3X2_F &worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1267 return Outline(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1268 }
1269
ComputeArea(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,FLOAT * area)1270 HRESULT ComputeArea(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, FLOAT *area) const {
1271 return ComputeArea(&worldTransform, flatteningTolerance, area);
1272 }
1273
ComputeArea(const D2D1_MATRIX_3X2_F * worldTransform,FLOAT * area)1274 HRESULT ComputeArea(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT *area) const {
1275 return ComputeArea(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area);
1276 }
1277
ComputeArea(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT * area)1278 HRESULT ComputeArea(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT *area) const {
1279 return ComputeArea(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, area);
1280 }
1281
ComputeLength(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,FLOAT * length)1282 HRESULT ComputeLength(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, FLOAT *length) const {
1283 return ComputeLength(&worldTransform, flatteningTolerance, length);
1284 }
1285
ComputeLength(const D2D1_MATRIX_3X2_F * worldTransform,FLOAT * length)1286 HRESULT ComputeLength(const D2D1_MATRIX_3X2_F *worldTransform, FLOAT *length) const {
1287 return ComputeLength(worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
1288 }
1289
ComputeLength(const D2D1_MATRIX_3X2_F & worldTransform,FLOAT * length)1290 HRESULT ComputeLength(const D2D1_MATRIX_3X2_F &worldTransform, FLOAT *length) const {
1291 return ComputeLength(&worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, length);
1292 }
1293
ComputePointAtLength(FLOAT length,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,D2D1_POINT_2F * point,D2D1_POINT_2F * unitTangentVector)1294 HRESULT ComputePointAtLength(FLOAT length, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) const {
1295 return ComputePointAtLength(length, &worldTransform, flatteningTolerance, point, unitTangentVector);
1296 }
1297
ComputePointAtLength(FLOAT length,const D2D1_MATRIX_3X2_F * worldTransform,D2D1_POINT_2F * point,D2D1_POINT_2F * unitTangentVector)1298 HRESULT ComputePointAtLength(FLOAT length, const D2D1_MATRIX_3X2_F *worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) const {
1299 return ComputePointAtLength(length, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, point, unitTangentVector);
1300 }
1301
ComputePointAtLength(FLOAT length,const D2D1_MATRIX_3X2_F & worldTransform,D2D1_POINT_2F * point,D2D1_POINT_2F * unitTangentVector)1302 HRESULT ComputePointAtLength(FLOAT length, const D2D1_MATRIX_3X2_F &worldTransform, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) const {
1303 return ComputePointAtLength(length, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, point, unitTangentVector);
1304 }
1305
Widen(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,FLOAT flatteningTolerance,ID2D1SimplifiedGeometrySink * geometrySink)1306 HRESULT Widen(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) const {
1307 return Widen(strokeWidth, strokeStyle, &worldTransform, flatteningTolerance, geometrySink);
1308 }
1309
Widen(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F * worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1310 HRESULT Widen(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1311 return Widen(strokeWidth, strokeStyle, worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1312 }
1313
Widen(FLOAT strokeWidth,ID2D1StrokeStyle * strokeStyle,const D2D1_MATRIX_3X2_F & worldTransform,ID2D1SimplifiedGeometrySink * geometrySink)1314 HRESULT Widen(FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F &worldTransform, ID2D1SimplifiedGeometrySink *geometrySink) const {
1315 return Widen(strokeWidth, strokeStyle, &worldTransform, D2D1_DEFAULT_FLATTENING_TOLERANCE, geometrySink);
1316 }
1317 };
1318
1319 #else
1320
1321 typedef struct ID2D1GeometryVtbl {
1322 ID2D1ResourceVtbl Base;
1323
1324 STDMETHOD(GetBounds)(ID2D1Geometry *This, const D2D1_MATRIX_3X2_F *worldTransform, D2D1_RECT_F *bounds) PURE;
1325 STDMETHOD(GetWidenedBounds)(ID2D1Geometry *This, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, D2D1_RECT_F *bounds) PURE;
1326 STDMETHOD(StrokeContainsPoint)(ID2D1Geometry *This, D2D1_POINT_2F point, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, BOOL *contains) PURE;
1327 STDMETHOD(FillContainsPoint)(ID2D1Geometry *This, D2D1_POINT_2F point, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, BOOL *contains) PURE;
1328 STDMETHOD(CompareWithGeometry)(ID2D1Geometry *This, ID2D1Geometry *inputGeometry, const D2D1_MATRIX_3X2_F *inputGeometryTransform, FLOAT flatteningTolerance, D2D1_GEOMETRY_RELATION *relation) PURE;
1329 STDMETHOD(Simplify)(ID2D1Geometry *This, D2D1_GEOMETRY_SIMPLIFICATION_OPTION simplificationOption, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
1330 STDMETHOD(Tessellate)(ID2D1Geometry *This, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1TessellationSink *tessellationSink) PURE;
1331 STDMETHOD(CombineWithGeometry)(ID2D1Geometry *This, ID2D1Geometry *inputGeometry, D2D1_COMBINE_MODE combineMode, const D2D1_MATRIX_3X2_F *inputGeometryTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
1332 STDMETHOD(Outline)(ID2D1Geometry *This, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
1333 STDMETHOD(ComputeArea)(ID2D1Geometry *This, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, FLOAT *area) PURE;
1334 STDMETHOD(ComputeLength)(ID2D1Geometry *This, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, FLOAT *length) PURE;
1335 STDMETHOD(ComputePointAtLength)(ID2D1Geometry *This, FLOAT length, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, D2D1_POINT_2F *point, D2D1_POINT_2F *unitTangentVector) PURE;
1336 STDMETHOD(Widen)(ID2D1Geometry *This, FLOAT strokeWidth, ID2D1StrokeStyle *strokeStyle, const D2D1_MATRIX_3X2_F *worldTransform, FLOAT flatteningTolerance, ID2D1SimplifiedGeometrySink *geometrySink) PURE;
1337 } ID2D1GeometryVtbl;
1338
1339 interface ID2D1Geometry {
1340 const ID2D1GeometryVtbl *lpVtbl;
1341 };
1342
1343 #define ID2D1Geometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
1344 #define ID2D1Geometry_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
1345 #define ID2D1Geometry_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
1346 #define ID2D1Geometry_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
1347 #define ID2D1Geometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->CombineWithGeometry(this,A,B,C,D)
1348 #define ID2D1Geometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->CompareWithGeometry(this,A,B,C)
1349 #define ID2D1Geometry_ComputeArea(this,A,B) (this)->lpVtbl->ComputeArea(this,A,B)
1350 #define ID2D1Geometry_ComputeLength(this,A,B) (this)->lpVtbl->ComputeLength(this,A,B)
1351 #define ID2D1Geometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->ComputePointAtLength(this,A,B,C,D)
1352 #define ID2D1Geometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->FillContainsPoint(this,A,B,C)
1353 #define ID2D1Geometry_GetBounds(this,A,B) (this)->lpVtbl->GetBounds(this,A,B)
1354 #define ID2D1Geometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->GetWidenedBounds(this,A,B,C,D)
1355 #define ID2D1Geometry_Outline(this,A,B) (this)->lpVtbl->Outline(this,A,B)
1356 #define ID2D1Geometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->StrokeContainsPoint(this,A,B,C,D,E)
1357 #define ID2D1Geometry_Simplify(this,A,B,C) (this)->lpVtbl->Simplify(this,A,B,C)
1358 #define ID2D1Geometry_Tessellate(this,A,B) (this)->lpVtbl->Tessellate(this,A,B)
1359 #define ID2D1Geometry_Widen(this,A,B,C,D) (this)->lpVtbl->Widen(this,A,B,C,D)
1360
1361 #endif
1362
1363 DEFINE_GUID(IID_ID2D1BitmapRenderTarget, 0x2cd90695,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1364
1365 #ifndef D2D_USE_C_DEFINITIONS
1366
1367 interface ID2D1BitmapRenderTarget : public ID2D1RenderTarget {
1368 STDMETHOD(GetBitmap)(ID2D1Bitmap **bitmap) PURE;
1369 };
1370
1371 #else
1372
1373 typedef struct ID2D1BitmapRenderTargetVtbl {
1374 ID2D1RenderTargetVtbl Base;
1375
1376 STDMETHOD(GetBitmap)(ID2D1BitmapRenderTarget *This, ID2D1Bitmap **bitmap) PURE;
1377 } ID2D1BitmapRenderTargetVtbl;
1378
1379 interface ID2D1BitmapRenderTarget {
1380 const ID2D1BitmapRenderTargetVtbl *lpVtbl;
1381 };
1382
1383 #define ID2D1BitmapRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
1384 #define ID2D1BitmapRenderTarget_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
1385 #define ID2D1BitmapRenderTarget_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
1386 #define ID2D1BitmapRenderTarget_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
1387 #define ID2D1BitmapRenderTarget_BeginDraw(this) (this)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget*)(this))
1388 #define ID2D1BitmapRenderTarget_Clear(this,A) (this)->lpVtbl->Base.Clear((ID2D1RenderTarget*)(this),A)
1389 #define ID2D1BitmapRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1390 #define ID2D1BitmapRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget*)(this),A,B)
1391 #define ID2D1BitmapRenderTarget_CreateBitmapFromWicBitmap(this,A,B,C) (this)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget*)(this),A,B,C)
1392 #define ID2D1BitmapRenderTarget_CreateCompatibleBitmapRenderTarget(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateCompatibleBitmapRenderTarget((ID2D1RenderTarget*)(this),A,B,C,D,E)
1393 #define ID2D1BitmapRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget*)(this),A,B,C)
1394 #define ID2D1BitmapRenderTarget_CreateLayer(this,A,B) (this)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget*)(this),A,B)
1395 #define ID2D1BitmapRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1396 #define ID2D1BitmapRenderTarget_CreateMesh(this,A) (this)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget*)(this),A)
1397 #define ID2D1BitmapRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1398 #define ID2D1BitmapRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget*)(this),A,B,C,D)
1399 #define ID2D1BitmapRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget*)(this),A,B,C)
1400 #define ID2D1BitmapRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1401 #define ID2D1BitmapRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget*)(this),A,B,C,D)
1402 #define ID2D1BitmapRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget*)(this),A,B,C,D)
1403 #define ID2D1BitmapRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget*)(this),A,B,C,D)
1404 #define ID2D1BitmapRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawLine((ID2D1RenderTarget*)(this),A,B,C,D,E)
1405 #define ID2D1BitmapRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1406 #define ID2D1BitmapRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1407 #define ID2D1BitmapRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->Base.DrawText((ID2D1RenderTarget*)(this),A,B,C,D,E,F,G)
1408 #define ID2D1BitmapRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget*)(this),A,B,C,D)
1409 #define ID2D1BitmapRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->Base.EndDraw((ID2D1RenderTarget*)(this),A,B)
1410 #define ID2D1BitmapRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget*)(this),A,B)
1411 #define ID2D1BitmapRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget*)(this),A,B,C)
1412 #define ID2D1BitmapRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->Base.FillMesh((ID2D1RenderTarget*)(this),A,B)
1413 #define ID2D1BitmapRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget*)(this),A,B,C,D,E)
1414 #define ID2D1BitmapRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget*)(this),A,B)
1415 #define ID2D1BitmapRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget*)(this),A,B)
1416 #define ID2D1BitmapRenderTarget_Flush(this,A,B) (this)->lpVtbl->Base.Flush((ID2D1RenderTarget*)(this),A,B)
1417 #define ID2D1BitmapRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget*)(this))
1418 #define ID2D1BitmapRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->Base.GetDpi((ID2D1RenderTarget*)(this),A,B)
1419 #define ID2D1BitmapRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget*)(this))
1420 #define ID2D1BitmapRenderTarget_GetPixelFormat(this) (this)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget*)(this))
1421 #define ID2D1BitmapRenderTarget_GetPixelSize(this) (this)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget*)(this))
1422 #define ID2D1BitmapRenderTarget_GetSize(this) (this)->lpVtbl->Base.GetSize((ID2D1RenderTarget*)(this))
1423 #define ID2D1BitmapRenderTarget_GetTags(this,A,B) (this)->lpVtbl->Base.GetTags((ID2D1RenderTarget*)(this),A,B)
1424 #define ID2D1BitmapRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget*)(this))
1425 #define ID2D1BitmapRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget*)(this),A)
1426 #define ID2D1BitmapRenderTarget_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1RenderTarget*)(this),A)
1427 #define ID2D1BitmapRenderTarget_IsSupported(this,A) (this)->lpVtbl->Base.IsSupported((ID2D1RenderTarget*)(this),A)
1428 #define ID2D1BitmapRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget*)(this))
1429 #define ID2D1BitmapRenderTarget_PopLayer(this) (this)->lpVtbl->Base.PopLayer((ID2D1RenderTarget*)(this))
1430 #define ID2D1BitmapRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget*)(this),A,B)
1431 #define ID2D1BitmapRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->Base.PushLayer((ID2D1RenderTarget*)(this),A,B)
1432 #define ID2D1BitmapRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget*)(this),A)
1433 #define ID2D1BitmapRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget*)(this),A)
1434 #define ID2D1BitmapRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget*)(this),A)
1435 #define ID2D1BitmapRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->Base.SetDpi((ID2D1RenderTarget*)(this),A,B)
1436 #define ID2D1BitmapRenderTarget_SetTags(this,A,B) (this)->lpVtbl->Base.SetTags((ID2D1RenderTarget*)(this),A,B)
1437 #define ID2D1BitmapRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget*)(this),A)
1438 #define ID2D1BitmapRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget*)(this),A)
1439 #define ID2D1BitmapRenderTarget_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1RenderTarget*)(this),A)
1440 #define ID2D1BitmapRenderTarget_GetBitmap(this,A) (this)->lpVtbl->GetBitmap(this,A)
1441
1442 #endif
1443
1444 DEFINE_GUID(IID_ID2D1DCRenderTarget, 0x1c51bc64,0xde61,0x46fd,0x98,0x99,0x63,0xa5,0xd8,0xf0,0x39,0x50);
1445
1446 #ifndef D2D_USE_C_DEFINITIONS
1447
1448 interface ID2D1DCRenderTarget : public ID2D1RenderTarget {
1449 STDMETHOD(BindDC)(const HDC hDC, const RECT *pSubRect) PURE;
1450 };
1451
1452 #else
1453
1454 typedef struct ID2D1DCRenderTargetVtbl {
1455 ID2D1RenderTargetVtbl Base;
1456
1457 STDMETHOD(BindDC)(ID2D1DCRenderTarget *This, const HDC hDC, const RECT *pSubRect) PURE;
1458 } ID2D1DCRenderTargetVtbl;
1459
1460 interface ID2D1DCRenderTarget
1461 {
1462 const ID2D1DCRenderTargetVtbl *lpVtbl;
1463 };
1464
1465 #define ID2D1DCRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
1466 #define ID2D1DCRenderTarget_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
1467 #define ID2D1DCRenderTarget_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
1468 #define ID2D1DCRenderTarget_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
1469 #define ID2D1DCRenderTarget_BeginDraw(this) (this)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget*)(this))
1470 #define ID2D1DCRenderTarget_Clear(this,A) (this)->lpVtbl->Base.Clear((ID2D1RenderTarget*)(this),A)
1471 #define ID2D1DCRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1472 #define ID2D1DCRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget*)(this),A,B)
1473 #define ID2D1DCRenderTarget_CreateBitmapFromWicBitmap(this,A,B,C) (this)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget*)(this),A,B,C)
1474 #define ID2D1DCRenderTarget_CreateCompatibleRenderTarget(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget*)(this),A,B,C,D,E)
1475 #define ID2D1DCRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget*)(this),A,B,C)
1476 #define ID2D1DCRenderTarget_CreateLayer(this,A,B) (this)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget*)(this),A,B)
1477 #define ID2D1DCRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1478 #define ID2D1DCRenderTarget_CreateMesh(this,A) (this)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget*)(this),A)
1479 #define ID2D1DCRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1480 #define ID2D1DCRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget*)(this),A,B,C,D)
1481 #define ID2D1DCRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget*)(this),A,B,C)
1482 #define ID2D1DCRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1483 #define ID2D1DCRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget*)(this),A,B,C,D)
1484 #define ID2D1DCRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget*)(this),A,B,C,D)
1485 #define ID2D1DCRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget*)(this),A,B,C,D)
1486 #define ID2D1DCRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawLine((ID2D1RenderTarget*)(this),A,B,C,D,E)
1487 #define ID2D1DCRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1488 #define ID2D1DCRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1489 #define ID2D1DCRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->Base.DrawText((ID2D1RenderTarget*)(this),A,B,C,D,E,F,G)
1490 #define ID2D1DCRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget*)(this),A,B,C,D)
1491 #define ID2D1DCRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->Base.EndDraw((ID2D1RenderTarget*)(this),A,B)
1492 #define ID2D1DCRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget*)(this),A,B)
1493 #define ID2D1DCRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget*)(this),A,B,C)
1494 #define ID2D1DCRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->Base.FillMesh((ID2D1RenderTarget*)(this),A,B)
1495 #define ID2D1DCRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget*)(this),A,B,C,D,E)
1496 #define ID2D1DCRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget*)(this),A,B)
1497 #define ID2D1DCRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget*)(this),A,B)
1498 #define ID2D1DCRenderTarget_Flush(this,A,B) (this)->lpVtbl->Base.Flush((ID2D1RenderTarget*)(this),A,B)
1499 #define ID2D1DCRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget*)(this))
1500 #define ID2D1DCRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->Base.GetDpi((ID2D1RenderTarget*)(this),A,B)
1501 #define ID2D1DCRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget*)(this))
1502 #define ID2D1DCRenderTarget_GetPixelFormat(this) (this)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget*)(this))
1503 #define ID2D1DCRenderTarget_GetPixelSize(this) (this)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget*)(this))
1504 #define ID2D1DCRenderTarget_GetSize(this) (this)->lpVtbl->Base.GetSize((ID2D1RenderTarget*)(this))
1505 #define ID2D1DCRenderTarget_GetTags(this,A,B) (this)->lpVtbl->Base.GetTags((ID2D1RenderTarget*)(this),A,B)
1506 #define ID2D1DCRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget*)(this))
1507 #define ID2D1DCRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget*)(this),A)
1508 #define ID2D1DCRenderTarget_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1RenderTarget*)(this),A)
1509 #define ID2D1DCRenderTarget_IsSupported(this,A) (this)->lpVtbl->Base.IsSupported((ID2D1RenderTarget*)(this),A)
1510 #define ID2D1DCRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget*)(this))
1511 #define ID2D1DCRenderTarget_PopLayer(this) (this)->lpVtbl->Base.PopLayer((ID2D1RenderTarget*)(this))
1512 #define ID2D1DCRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget*)(this),A,B)
1513 #define ID2D1DCRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->Base.PushLayer((ID2D1RenderTarget*)(this),A,B)
1514 #define ID2D1DCRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget*)(this),A)
1515 #define ID2D1DCRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget*)(this),A)
1516 #define ID2D1DCRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget*)(this),A)
1517 #define ID2D1DCRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->Base.SetDpi((ID2D1RenderTarget*)(this),A,B)
1518 #define ID2D1DCRenderTarget_SetTags(this,A,B) (this)->lpVtbl->Base.SetTags((ID2D1RenderTarget*)(this),A,B)
1519 #define ID2D1DCRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget*)(this),A)
1520 #define ID2D1DCRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget*)(this),A)
1521 #define ID2D1DCRenderTarget_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1RenderTarget*)(this),A)
1522 #define ID2D1DCRenderTarget_BindDC(this,A,B) (this)->lpVtbl->BindDC(this,A,B)
1523
1524 #endif
1525
1526 DEFINE_GUID(IID_ID2D1DrawingStateBlock, 0x28506e39,0xebf6,0x46a1,0xbb,0x47,0xfd,0x85,0x56,0x5a,0xb9,0x57);
1527
1528 #ifndef D2D_USE_C_DEFINITIONS
1529
1530 interface ID2D1DrawingStateBlock : public ID2D1Resource {
1531 STDMETHOD_(void, GetDescription)(D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) const PURE;
1532 STDMETHOD_(void, SetDescription)(const D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) PURE;
1533 STDMETHOD_(void, SetTextRenderingParams)(IDWriteRenderingParams *textRenderingParams = NULL) PURE;
1534 STDMETHOD_(void, GetTextRenderingParams)(IDWriteRenderingParams **textRenderingParams) const PURE;
1535
SetDescription(const D2D1_DRAWING_STATE_DESCRIPTION & stateDescription)1536 void SetDescription(const D2D1_DRAWING_STATE_DESCRIPTION &stateDescription) {
1537 SetDescription(&stateDescription);
1538 }
1539 };
1540
1541 #else
1542
1543 typedef struct ID2D1DrawingStateBlockVtbl {
1544 ID2D1ResourceVtbl Base;
1545
1546 STDMETHOD_(void, GetDescription)(ID2D1DrawingStateBlock *This, D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) PURE;
1547 STDMETHOD_(void, SetDescription)(ID2D1DrawingStateBlock *This, const D2D1_DRAWING_STATE_DESCRIPTION *stateDescription) PURE;
1548 STDMETHOD_(void, SetTextRenderingParams)(ID2D1DrawingStateBlock *This, IDWriteRenderingParams *textRenderingParams) PURE;
1549 STDMETHOD_(void, GetTextRenderingParams)(ID2D1DrawingStateBlock *This, IDWriteRenderingParams **textRenderingParams) PURE;
1550 } ID2D1DrawingStateBlockVtbl;
1551
1552 interface ID2D1DrawingStateBlock {
1553 const struct ID2D1DrawingStateBlockVtbl *lpVtbl;
1554 };
1555
1556 #define ID2D1DrawingStateBlock_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
1557 #define ID2D1DrawingStateBlock_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
1558 #define ID2D1DrawingStateBlock_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
1559 #define ID2D1DrawingStateBlock_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
1560 #define ID2D1DrawingStateBlock_GetDescription(this,A) (this)->lpVtbl->GetDescription(this,A)
1561 #define ID2D1DrawingStateBlock_GetTextRenderingParams(this,A) (this)->lpVtbl->GetTextRenderingParams(this,A)
1562 #define ID2D1DrawingStateBlock_SetDescription(this,A) (this)->lpVtbl->SetDescription(this,A)
1563 #define ID2D1DrawingStateBlock_SetTextRenderingParams(this,A) (this)->lpVtbl->SetTextRenderingParams(this,A)
1564
1565 #endif
1566
1567 DEFINE_GUID(IID_ID2D1SimplifiedGeometrySink, 0x2cd9069e,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1568
1569 #ifndef D2D_USE_C_DEFINITIONS
1570
1571 interface ID2D1SimplifiedGeometrySink : public IUnknown {
1572 STDMETHOD_(void, SetFillMode)(D2D1_FILL_MODE fillMode) PURE;
1573 STDMETHOD_(void, SetSegmentFlags)(D2D1_PATH_SEGMENT vertexFlags) PURE;
1574 STDMETHOD_(void, BeginFigure)(D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) PURE;
1575 STDMETHOD_(void, AddLines)(const D2D1_POINT_2F *points, UINT pointsCount) PURE;
1576 STDMETHOD_(void, AddBeziers)(const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
1577 STDMETHOD_(void, EndFigure)(D2D1_FIGURE_END figureEnd) PURE;
1578 STDMETHOD(Close)(void) PURE;
1579 };
1580
1581 #else
1582
1583 typedef struct ID2D1SimplifiedGeometrySinkVtbl {
1584 IUnknownVtbl Base;
1585
1586 STDMETHOD_(void, SetFillMode)(ID2D1SimplifiedGeometrySink *This, D2D1_FILL_MODE fillMode) PURE;
1587 STDMETHOD_(void, SetSegmentFlags)(ID2D1SimplifiedGeometrySink *This, D2D1_PATH_SEGMENT vertexFlags) PURE;
1588 STDMETHOD_(void, BeginFigure)(ID2D1SimplifiedGeometrySink *This, D2D1_POINT_2F startPoint, D2D1_FIGURE_BEGIN figureBegin) PURE;
1589 STDMETHOD_(void, AddLines)(ID2D1SimplifiedGeometrySink *This, const D2D1_POINT_2F *points, UINT pointsCount) PURE;
1590 STDMETHOD_(void, AddBeziers)(ID2D1SimplifiedGeometrySink *This, const D2D1_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
1591 STDMETHOD_(void, EndFigure)(ID2D1SimplifiedGeometrySink *This, D2D1_FIGURE_END figureEnd) PURE;
1592 STDMETHOD(Close)(ID2D1SimplifiedGeometrySink *This) PURE;
1593 } ID2D1SimplifiedGeometrySinkVtbl;
1594
1595 interface ID2D1SimplifiedGeometrySink {
1596 const ID2D1SimplifiedGeometrySinkVtbl *lpVtbl;
1597 };
1598
1599 #define ID2D1SimplifiedGeometrySink_QueryInterface(this,A,B) (this)->lpVtbl->Base.QueryInterface((IUnknown*)(this),A,B)
1600 #define ID2D1SimplifiedGeometrySink_AddRef(this) (this)->lpVtbl->Base.AddRef((IUnknown*)(this))
1601 #define ID2D1SimplifiedGeometrySink_Release(this) (this)->lpVtbl->Base.Release((IUnknown*)(this))
1602 #define ID2D1SimplifiedGeometrySink_SetFillMode(this,A) (this)->lpVtbl->SetFillMode(this,A)
1603 #define ID2D1SimplifiedGeometrySink_SetSegmentFlags(this,A) (this)->lpVtbl->SetSegmentFlags(this,A)
1604 #define ID2D1SimplifiedGeometrySink_BeginFigure(this,A,B) (this)->lpVtbl->BeginFigure(this,A,B)
1605 #define ID2D1SimplifiedGeometrySink_AddLines(this,A,B) (this)->lpVtbl->AddLines(this,A,B)
1606 #define ID2D1SimplifiedGeometrySink_AddBeziers(this,A,B) (this)->lpVtbl->AddBeziers(this,A,B)
1607 #define ID2D1SimplifiedGeometrySink_EndFigure(this,A) (this)->lpVtbl->EndFigure(this,A)
1608 #define ID2D1SimplifiedGeometrySink_Close(this) (this)->lpVtbl->Close(this)
1609
1610 #endif
1611
1612 DEFINE_GUID(IID_ID2D1EllipseGeometry, 0x2cd906a4,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1613
1614 #ifndef D2D_USE_C_DEFINITIONS
1615
1616 interface ID2D1EllipseGeometry : public ID2D1Geometry {
1617 STDMETHOD_(void, GetEllipse)(D2D1_ELLIPSE *ellipse) const PURE;
1618 };
1619
1620 #else
1621
1622 typedef struct ID2D1EllipseGeometryVtbl {
1623 ID2D1GeometryVtbl Base;
1624
1625 STDMETHOD_(void, GetEllipse)(ID2D1EllipseGeometry *This, D2D1_ELLIPSE *ellipse) PURE;
1626 } ID2D1EllipseGeometryVtbl;
1627
1628 interface ID2D1EllipseGeometry {
1629 const struct ID2D1EllipseGeometryVtbl *lpVtbl;
1630 };
1631
1632 #define ID2D1EllipseGeometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
1633 #define ID2D1EllipseGeometry_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
1634 #define ID2D1EllipseGeometry_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
1635 #define ID2D1EllipseGeometry_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
1636 #define ID2D1EllipseGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
1637 #define ID2D1EllipseGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
1638 #define ID2D1EllipseGeometry_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
1639 #define ID2D1EllipseGeometry_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
1640 #define ID2D1EllipseGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
1641 #define ID2D1EllipseGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
1642 #define ID2D1EllipseGeometry_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
1643 #define ID2D1EllipseGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
1644 #define ID2D1EllipseGeometry_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
1645 #define ID2D1EllipseGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
1646 #define ID2D1EllipseGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
1647 #define ID2D1EllipseGeometry_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
1648 #define ID2D1EllipseGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
1649 #define ID2D1EllipseGeometry_GetEllipse(this,A) (this)->lpVtbl->GetEllipse(this,A)
1650
1651 #endif
1652
1653 DEFINE_GUID(IID_ID2D1Factory, 0x06152247,0x6f50,0x465a,0x92,0x45,0x11,0x8b,0xfd,0x3b,0x60,0x07);
1654
1655 #ifndef D2D_USE_C_DEFINITIONS
1656
1657 interface ID2D1Factory : public IUnknown {
1658 STDMETHOD(ReloadSystemMetrics)(void) PURE;
1659 STDMETHOD_(void, GetDesktopDpi)(FLOAT *dpiX, FLOAT *dpiY) PURE;
1660 STDMETHOD(CreateRectangleGeometry)(const D2D1_RECT_F *rectangle, ID2D1RectangleGeometry **rectangleGeometry) PURE;
1661 STDMETHOD(CreateRoundedRectangleGeometry)(const D2D1_ROUNDED_RECT *roundedRectangle, ID2D1RoundedRectangleGeometry **roundedRectangleGeometry) PURE;
1662 STDMETHOD(CreateEllipseGeometry)(const D2D1_ELLIPSE *ellipse, ID2D1EllipseGeometry **ellipseGeometry) PURE;
1663 STDMETHOD(CreateGeometryGroup)(D2D1_FILL_MODE fillMode, ID2D1Geometry **geometries, UINT geometriesCount, ID2D1GeometryGroup **geometryGroup) PURE;
1664 STDMETHOD(CreateTransformedGeometry)(ID2D1Geometry *sourceGeometry, const D2D1_MATRIX_3X2_F *transform, ID2D1TransformedGeometry **transformedGeometry) PURE;
1665 STDMETHOD(CreatePathGeometry)(ID2D1PathGeometry **pathGeometry) PURE;
1666 STDMETHOD(CreateStrokeStyle)(const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, const FLOAT *dashes, UINT dashesCount, ID2D1StrokeStyle **strokeStyle) PURE;
1667 STDMETHOD(CreateDrawingStateBlock)(const D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, IDWriteRenderingParams *textRenderingParams, ID2D1DrawingStateBlock **drawingStateBlock) PURE;
1668 STDMETHOD(CreateWicBitmapRenderTarget)(IWICBitmap *target, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
1669 STDMETHOD(CreateHwndRenderTarget)(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, const D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties, ID2D1HwndRenderTarget **hwndRenderTarget) PURE;
1670 STDMETHOD(CreateDxgiSurfaceRenderTarget)(IDXGISurface *dxgiSurface, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
1671 STDMETHOD(CreateDCRenderTarget)(const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1DCRenderTarget **dcRenderTarget) PURE;
1672
CreateRectangleGeometry(const D2D1_RECT_F & rectangle,ID2D1RectangleGeometry ** rectangleGeometry)1673 HRESULT CreateRectangleGeometry(const D2D1_RECT_F &rectangle, ID2D1RectangleGeometry **rectangleGeometry) {
1674 return CreateRectangleGeometry(&rectangle, rectangleGeometry);
1675 }
1676
CreateRoundedRectangleGeometry(const D2D1_ROUNDED_RECT & roundedRectangle,ID2D1RoundedRectangleGeometry ** roundedRectangleGeometry)1677 HRESULT CreateRoundedRectangleGeometry(const D2D1_ROUNDED_RECT &roundedRectangle, ID2D1RoundedRectangleGeometry **roundedRectangleGeometry) {
1678 return CreateRoundedRectangleGeometry(&roundedRectangle, roundedRectangleGeometry);
1679 }
1680
CreateEllipseGeometry(const D2D1_ELLIPSE & ellipse,ID2D1EllipseGeometry ** ellipseGeometry)1681 HRESULT CreateEllipseGeometry(const D2D1_ELLIPSE &ellipse, ID2D1EllipseGeometry **ellipseGeometry) {
1682 return CreateEllipseGeometry(&ellipse, ellipseGeometry);
1683 }
1684
CreateTransformedGeometry(ID2D1Geometry * sourceGeometry,const D2D1_MATRIX_3X2_F & transform,ID2D1TransformedGeometry ** transformedGeometry)1685 HRESULT CreateTransformedGeometry(ID2D1Geometry *sourceGeometry, const D2D1_MATRIX_3X2_F &transform, ID2D1TransformedGeometry **transformedGeometry) {
1686 return CreateTransformedGeometry(sourceGeometry, &transform, transformedGeometry);
1687 }
1688
CreateStrokeStyle(const D2D1_STROKE_STYLE_PROPERTIES & strokeStyleProperties,const FLOAT * dashes,UINT dashesCount,ID2D1StrokeStyle ** strokeStyle)1689 HRESULT CreateStrokeStyle(const D2D1_STROKE_STYLE_PROPERTIES &strokeStyleProperties, const FLOAT *dashes, UINT dashesCount, ID2D1StrokeStyle **strokeStyle) {
1690 return CreateStrokeStyle(&strokeStyleProperties, dashes, dashesCount, strokeStyle);
1691 }
1692
CreateDrawingStateBlock(const D2D1_DRAWING_STATE_DESCRIPTION & drawingStateDescription,ID2D1DrawingStateBlock ** drawingStateBlock)1693 HRESULT CreateDrawingStateBlock(const D2D1_DRAWING_STATE_DESCRIPTION &drawingStateDescription, ID2D1DrawingStateBlock **drawingStateBlock) {
1694 return CreateDrawingStateBlock(&drawingStateDescription, NULL, drawingStateBlock);
1695 }
1696
CreateDrawingStateBlock(ID2D1DrawingStateBlock ** drawingStateBlock)1697 HRESULT CreateDrawingStateBlock(ID2D1DrawingStateBlock **drawingStateBlock) {
1698 return CreateDrawingStateBlock(NULL, NULL, drawingStateBlock);
1699 }
1700
CreateWicBitmapRenderTarget(IWICBitmap * target,const D2D1_RENDER_TARGET_PROPERTIES & renderTargetProperties,ID2D1RenderTarget ** renderTarget)1701 HRESULT CreateWicBitmapRenderTarget(IWICBitmap *target, const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, ID2D1RenderTarget **renderTarget) {
1702 return CreateWicBitmapRenderTarget(target, &renderTargetProperties, renderTarget);
1703 }
1704
CreateHwndRenderTarget(const D2D1_RENDER_TARGET_PROPERTIES & renderTargetProperties,const D2D1_HWND_RENDER_TARGET_PROPERTIES & hwndRenderTargetProperties,ID2D1HwndRenderTarget ** hwndRenderTarget)1705 HRESULT CreateHwndRenderTarget(const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, const D2D1_HWND_RENDER_TARGET_PROPERTIES &hwndRenderTargetProperties, ID2D1HwndRenderTarget **hwndRenderTarget) {
1706 return CreateHwndRenderTarget(&renderTargetProperties, &hwndRenderTargetProperties, hwndRenderTarget);
1707 }
1708
CreateDxgiSurfaceRenderTarget(IDXGISurface * dxgiSurface,const D2D1_RENDER_TARGET_PROPERTIES & renderTargetProperties,ID2D1RenderTarget ** renderTarget)1709 HRESULT CreateDxgiSurfaceRenderTarget(IDXGISurface *dxgiSurface, const D2D1_RENDER_TARGET_PROPERTIES &renderTargetProperties, ID2D1RenderTarget **renderTarget) {
1710 return CreateDxgiSurfaceRenderTarget(dxgiSurface, &renderTargetProperties, renderTarget);
1711 }
1712 };
1713
1714 #else
1715
1716 typedef struct ID2D1FactoryVtbl {
1717 IUnknownVtbl Base;
1718
1719 STDMETHOD(ReloadSystemMetrics)(ID2D1Factory *This) PURE;
1720 STDMETHOD_(void, GetDesktopDpi)(ID2D1Factory *This, FLOAT *dpiX, FLOAT *dpiY) PURE;
1721 STDMETHOD(CreateRectangleGeometry)(ID2D1Factory *This, const D2D1_RECT_F *rectangle, ID2D1RectangleGeometry **rectangleGeometry) PURE;
1722 STDMETHOD(CreateRoundedRectangleGeometry)(ID2D1Factory *This, const D2D1_ROUNDED_RECT *roundedRectangle, ID2D1RoundedRectangleGeometry **roundedRectangleGeometry) PURE;
1723 STDMETHOD(CreateEllipseGeometry)(ID2D1Factory *This, const D2D1_ELLIPSE *ellipse, ID2D1EllipseGeometry **ellipseGeometry) PURE;
1724 STDMETHOD(CreateGeometryGroup)(ID2D1Factory *This, D2D1_FILL_MODE fillMode, ID2D1Geometry **geometries, UINT geometriesCount, ID2D1GeometryGroup **geometryGroup) PURE;
1725 STDMETHOD(CreateTransformedGeometry)(ID2D1Factory *This, ID2D1Geometry *sourceGeometry, const D2D1_MATRIX_3X2_F *transform, ID2D1TransformedGeometry **transformedGeometry) PURE;
1726 STDMETHOD(CreatePathGeometry)(ID2D1Factory *This, ID2D1PathGeometry **pathGeometry) PURE;
1727 STDMETHOD(CreateStrokeStyle)(ID2D1Factory *This, const D2D1_STROKE_STYLE_PROPERTIES *strokeStyleProperties, const FLOAT *dashes, UINT dashesCount, ID2D1StrokeStyle **strokeStyle) PURE;
1728 STDMETHOD(CreateDrawingStateBlock)(ID2D1Factory *This, const D2D1_DRAWING_STATE_DESCRIPTION *drawingStateDescription, IDWriteRenderingParams *textRenderingParams, ID2D1DrawingStateBlock **drawingStateBlock) PURE;
1729 STDMETHOD(CreateWicBitmapRenderTarget)(ID2D1Factory *This, IWICBitmap *target, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
1730 STDMETHOD(CreateHwndRenderTarget)(ID2D1Factory *This, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, const D2D1_HWND_RENDER_TARGET_PROPERTIES *hwndRenderTargetProperties, ID2D1HwndRenderTarget **hwndRenderTarget) PURE;
1731 STDMETHOD(CreateDxgiSurfaceRenderTarget)(ID2D1Factory *This, IDXGISurface *dxgiSurface, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1RenderTarget **renderTarget) PURE;
1732 STDMETHOD(CreateDCRenderTarget)(ID2D1Factory *This, const D2D1_RENDER_TARGET_PROPERTIES *renderTargetProperties, ID2D1DCRenderTarget **dcRenderTarget) PURE;
1733 } ID2D1FactoryVtbl;
1734
1735 interface ID2D1Factory {
1736 const ID2D1FactoryVtbl *lpVtbl;
1737 };
1738
1739 #define ID2D1Factory_QueryInterface(this,A,B) (this)->lpVtbl->Base.QueryInterface((IUnknown*)(this),A,B)
1740 #define ID2D1Factory_AddRef(this) (this)->lpVtbl->Base.AddRef((IUnknown*)(this))
1741 #define ID2D1Factory_Release(this) (this)->lpVtbl->Base.Release((IUnknown*)(this))
1742 #define ID2D1Factory_CreateDCRenderTarget(this,A,B) (this)->lpVtbl->CreateDCRenderTarget(this,A,B)
1743 #define ID2D1Factory_CreateDrawingStateBlock(this,A,B,C) (this)->lpVtbl->CreateDrawingStateBlock(this,A,B,C)
1744 #define ID2D1Factory_CreateDxgiSurfaceRenderTarget(this,A,B,C) (this)->lpVtbl->CreateDxgiSurfaceRenderTarget(this,A,B,C)
1745 #define ID2D1Factory_CreateEllipseGeometry(this,A,B) (this)->lpVtbl->CreateEllipseGeometry(this,A,B)
1746 #define ID2D1Factory_CreateGeometryGroup(this,A,B,C,D) (this)->lpVtbl->CreateGeometryGroup(this,A,B,C,D)
1747 #define ID2D1Factory_CreateHwndRenderTarget(this,A,B,C) (this)->lpVtbl->CreateHwndRenderTarget(this,A,B,C)
1748 #define ID2D1Factory_CreatePathGeometry(this,A) (this)->lpVtbl->CreatePathGeometry(this,A)
1749 #define ID2D1Factory_CreateRectangleGeometry(this,A,B) (this)->lpVtbl->CreateRectangleGeometry(this,A,B)
1750 #define ID2D1Factory_CreateRoundedRectangleGeometry(this,A,B) (this)->lpVtbl->CreateRoundedRectangleGeometry(this,A,B)
1751 #define ID2D1Factory_CreateStrokeStyle(this,A,B,C,D) (this)->lpVtbl->CreateStrokeStyle(this,A,B,C,D)
1752 #define ID2D1Factory_CreateTransformedGeometry(this,A,B,C) (this)->lpVtbl->CreateTransformedGeometry(this,A,B,C)
1753 #define ID2D1Factory_CreateWicBitmapRenderTarget(this,A,B,C) (this)->lpVtbl->CreateWicBitmapRenderTarget(this,A,B,C)
1754 #define ID2D1Factory_GetDesktopDpi(this,A,B) (this)->lpVtbl->GetDesktopDpi(this,A,B)
1755 #define ID2D1Factory_ReloadSystemMetrics(this) (this)->lpVtbl->ReloadSystemMetrics(this)
1756
1757 #endif
1758
1759 DEFINE_GUID(IID_ID2D1GdiInteropRenderTarget, 0xe0db51c3,0x6f77,0x4bae,0xb3,0xd5,0xe4,0x75,0x09,0xb3,0x58,0x38);
1760
1761 #ifndef D2D_USE_C_DEFINITIONS
1762
1763 interface ID2D1GdiInteropRenderTarget : public IUnknown {
1764 STDMETHOD(GetDC)(D2D1_DC_INITIALIZE_MODE mode, HDC *hdc) PURE;
1765 STDMETHOD(ReleaseDC)(const RECT *update) PURE;
1766 };
1767
1768 #else
1769
1770 typedef struct ID2D1GdiInteropRenderTargetVtbl {
1771 IUnknownVtbl Base;
1772
1773 STDMETHOD(GetDC)(ID2D1GdiInteropRenderTarget *This, D2D1_DC_INITIALIZE_MODE mode, HDC *hdc) PURE;
1774 STDMETHOD(ReleaseDC)(ID2D1GdiInteropRenderTarget *This, const RECT *update) PURE;
1775 } ID2D1GdiInteropRenderTargetVtbl;
1776
1777 interface ID2D1GdiInteropRenderTarget {
1778 const ID2D1GdiInteropRenderTargetVtbl *lpVtbl;
1779 };
1780
1781 #define ID2D1GdiInteropRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->Base.QueryInterface((IUnknown*)(this),A,B)
1782 #define ID2D1GdiInteropRenderTarget_AddRef(this) (this)->lpVtbl->Base.AddRef((IUnknown*)(this))
1783 #define ID2D1GdiInteropRenderTarget_Release(this) (this)->lpVtbl->Base.Release((IUnknown*)(this))
1784 #define ID2D1GdiInteropRenderTarget_GetDC(this,A,B) (this)->lpVtbl->GetDC(this,A,B)
1785 #define ID2D1GdiInteropRenderTarget_ReleaseDC(this,A) (this)->lpVtbl->ReleaseDC(this,A)
1786
1787 #endif
1788
1789 DEFINE_GUID(IID_ID2D1GeometryGroup, 0x2cd906a6,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1790
1791 #ifndef D2D_USE_C_DEFINITIONS
1792
1793 interface ID2D1GeometryGroup : public ID2D1Geometry {
1794 STDMETHOD_(D2D1_FILL_MODE, GetFillMode)() const PURE;
1795 STDMETHOD_(UINT32, GetSourceGeometryCount)() const PURE;
1796 STDMETHOD_(void, GetSourceGeometries)(ID2D1Geometry **geometries, UINT geometriesCount) const PURE;
1797 };
1798
1799 #else
1800
1801 typedef struct ID2D1GeometryGroupVtbl {
1802 ID2D1GeometryVtbl Base;
1803
1804 STDMETHOD_(D2D1_FILL_MODE, GetFillMode)(ID2D1GeometryGroup *This) PURE;
1805 STDMETHOD_(UINT32, GetSourceGeometryCount)(ID2D1GeometryGroup *This) PURE;
1806 STDMETHOD_(void, GetSourceGeometries)(ID2D1GeometryGroup *This, ID2D1Geometry **geometries, UINT geometriesCount) PURE;
1807 } ID2D1GeometryGroupVtbl;
1808
1809 interface ID2D1GeometryGroup {
1810 const struct ID2D1GeometryGroupVtbl *lpVtbl;
1811 };
1812
1813 #define ID2D1GeometryGroup_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
1814 #define ID2D1GeometryGroup_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
1815 #define ID2D1GeometryGroup_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
1816 #define ID2D1GeometryGroup_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
1817 #define ID2D1GeometryGroup_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
1818 #define ID2D1GeometryGroup_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
1819 #define ID2D1GeometryGroup_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
1820 #define ID2D1GeometryGroup_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
1821 #define ID2D1GeometryGroup_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
1822 #define ID2D1GeometryGroup_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
1823 #define ID2D1GeometryGroup_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
1824 #define ID2D1GeometryGroup_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
1825 #define ID2D1GeometryGroup_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
1826 #define ID2D1GeometryGroup_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
1827 #define ID2D1GeometryGroup_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
1828 #define ID2D1GeometryGroup_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
1829 #define ID2D1GeometryGroup_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
1830 #define ID2D1GeometryGroup_GetFillMode(this) (this)->lpVtbl->GetFillMode(this)
1831 #define ID2D1GeometryGroup_GetSourceGeometries(this,A,B) (this)->lpVtbl->GetSourceGeometries(this,A,B)
1832 #define ID2D1GeometryGroup_GetSourceGeometryCount(this) (this)->lpVtbl->GetSourceGeometryCount(this)
1833
1834 #endif
1835
1836 DEFINE_GUID(IID_ID2D1GeometrySink, 0x2cd9069f,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1837
1838 #ifndef D2D_USE_C_DEFINITIONS
1839
1840 interface ID2D1GeometrySink : public ID2D1SimplifiedGeometrySink {
1841 STDMETHOD_(void, AddLine)(D2D1_POINT_2F point) PURE;
1842 STDMETHOD_(void, AddBezier)(const D2D1_BEZIER_SEGMENT *bezier) PURE;
1843 STDMETHOD_(void, AddQuadraticBezier)(const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier) PURE;
1844 STDMETHOD_(void, AddQuadraticBeziers)(const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
1845 STDMETHOD_(void, AddArc)(const D2D1_ARC_SEGMENT *arc) PURE;
1846
AddBezier(const D2D1_BEZIER_SEGMENT & bezier)1847 void AddBezier(const D2D1_BEZIER_SEGMENT &bezier) {
1848 AddBezier(&bezier);
1849 }
1850
AddQuadraticBezier(const D2D1_QUADRATIC_BEZIER_SEGMENT & bezier)1851 void AddQuadraticBezier(const D2D1_QUADRATIC_BEZIER_SEGMENT &bezier) {
1852 AddQuadraticBezier(&bezier);
1853 }
1854
AddArc(const D2D1_ARC_SEGMENT & arc)1855 void AddArc(const D2D1_ARC_SEGMENT &arc) {
1856 AddArc(&arc);
1857 }
1858 };
1859
1860 #else
1861
1862 typedef struct ID2D1GeometrySinkVtbl {
1863 ID2D1SimplifiedGeometrySinkVtbl Base;
1864
1865 STDMETHOD_(void, AddLine)(ID2D1GeometrySink *This, D2D1_POINT_2F point) PURE;
1866 STDMETHOD_(void, AddBezier)(ID2D1GeometrySink *This, const D2D1_BEZIER_SEGMENT *bezier) PURE;
1867 STDMETHOD_(void, AddQuadraticBezier)(ID2D1GeometrySink *This, const D2D1_QUADRATIC_BEZIER_SEGMENT *bezier) PURE;
1868 STDMETHOD_(void, AddQuadraticBeziers)(ID2D1GeometrySink *This, const D2D1_QUADRATIC_BEZIER_SEGMENT *beziers, UINT beziersCount) PURE;
1869 STDMETHOD_(void, AddArc)(ID2D1GeometrySink *This, const D2D1_ARC_SEGMENT *arc) PURE;
1870 } ID2D1GeometrySinkVtbl;
1871
1872 interface ID2D1GeometrySink {
1873 const ID2D1GeometrySinkVtbl *lpVtbl;
1874 };
1875
1876 #define ID2D1GeometrySink_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
1877 #define ID2D1GeometrySink_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
1878 #define ID2D1GeometrySink_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
1879 #define ID2D1GeometrySink_SetFillMode(this,A) (this)->lpVtbl->Base.SetFillMode((ID2D1SimplifiedGeometrySink*)(this),A)
1880 #define ID2D1GeometrySink_SetSegmentFlags(this,A) (this)->lpVtbl->Base.SetSegmentFlags((ID2D1SimplifiedGeometrySink*)(this),A)
1881 #define ID2D1GeometrySink_BeginFigure(this,A,B) (this)->lpVtbl->Base.BeginFigure((ID2D1SimplifiedGeometrySink*)(this),A,B)
1882 #define ID2D1GeometrySink_AddLines(this,A,B) (this)->lpVtbl->Base.AddLines((ID2D1SimplifiedGeometrySink*)(this),A,B)
1883 #define ID2D1GeometrySink_AddBeziers(this,A,B) (this)->lpVtbl->Base.AddBeziers((ID2D1SimplifiedGeometrySink*)(this),A,B)
1884 #define ID2D1GeometrySink_EndFigure(this,A) (this)->lpVtbl->Base.EndFigure((ID2D1SimplifiedGeometrySink*)(this),A)
1885 #define ID2D1GeometrySink_Close(this) (this)->lpVtbl->Base.Close((ID2D1SimplifiedGeometrySink*)(this))
1886 #define ID2D1GeometrySink_AddArc(this,A) (this)->lpVtbl->AddArc(this,A)
1887 #define ID2D1GeometrySink_AddBezier(this,A) (this)->lpVtbl->AddBezier(this,A)
1888 #define ID2D1GeometrySink_AddLine(this,A) (this)->lpVtbl->AddLine(this,A)
1889 #define ID2D1GeometrySink_AddQuadraticBezier(this,A) (this)->lpVtbl->AddQuadraticBezier(this,A)
1890 #define ID2D1GeometrySink_AddQuadraticBeziers(this,A,B) (this)->lpVtbl->AddQuadraticBeziers(this,A,B)
1891
1892 #endif
1893
1894 DEFINE_GUID(IID_ID2D1GradientStopCollection, 0x2cd906a7,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
1895
1896 #ifndef D2D_USE_C_DEFINITIONS
1897
1898 interface ID2D1GradientStopCollection : public ID2D1Resource {
1899 STDMETHOD_(UINT32, GetGradientStopCount)(void) const PURE;
1900 STDMETHOD_(void, GetGradientStops)(D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount) const PURE;
1901 STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(void) const PURE;
1902 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(void) const PURE;
1903 };
1904
1905 #else
1906
1907 typedef struct ID2D1GradientStopCollectionVtbl {
1908 ID2D1ResourceVtbl Base;
1909
1910 STDMETHOD_(UINT32, GetGradientStopCount)(ID2D1GradientStopCollection *This) PURE;
1911 STDMETHOD_(void, GetGradientStops)(ID2D1GradientStopCollection *This, D2D1_GRADIENT_STOP *gradientStops, UINT gradientStopsCount) PURE;
1912 STDMETHOD_(D2D1_GAMMA, GetColorInterpolationGamma)(ID2D1GradientStopCollection *This) PURE;
1913 STDMETHOD_(D2D1_EXTEND_MODE, GetExtendMode)(ID2D1GradientStopCollection *This) PURE;
1914 } ID2D1GradientStopCollectionVtbl;
1915
1916 interface ID2D1GradientStopCollection {
1917 const ID2D1GradientStopCollectionVtbl *lpVtbl;
1918 };
1919
1920 #define ID2D1GradientStopCollection_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
1921 #define ID2D1GradientStopCollection_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
1922 #define ID2D1GradientStopCollection_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
1923 #define ID2D1GradientStopCollection_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
1924 #define ID2D1GradientStopCollection_GetColorInterpolationGamma(this) (this)->lpVtbl->GetColorInterpolationGamma(this)
1925 #define ID2D1GradientStopCollection_GetExtendMode(this) (this)->lpVtbl->GetExtendMode(this)
1926 #define ID2D1GradientStopCollection_GetGradientStopCount(this) (this)->lpVtbl->GetGradientStopCount(this)
1927 #define ID2D1GradientStopCollection_GetGradientStops(this,A,B) (this)->lpVtbl->GetGradientStops(this,A,B)
1928
1929 #endif
1930
1931 #ifndef D2D_USE_C_DEFINITIONS
1932
1933 interface ID2D1HwndRenderTarget : public ID2D1RenderTarget {
1934 STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)() PURE;
1935 STDMETHOD(Resize)(const D2D1_SIZE_U *pixelSize) PURE;
1936 STDMETHOD_(HWND, GetHwnd)() const PURE;
1937
Resize(const D2D1_SIZE_U & pixelSize)1938 HRESULT Resize(const D2D1_SIZE_U &pixelSize) {
1939 return Resize(&pixelSize);
1940 }
1941 };
1942
1943 #else
1944
1945 typedef interface ID2D1HwndRenderTarget ID2D1HwndRenderTarget;
1946
1947 typedef struct ID2D1HwndRenderTargetVtbl {
1948 ID2D1RenderTargetVtbl Base;
1949
1950 STDMETHOD_(D2D1_WINDOW_STATE, CheckWindowState)(ID2D1HwndRenderTarget *This) PURE;
1951 STDMETHOD(Resize)(ID2D1HwndRenderTarget *This, const D2D1_SIZE_U *pixelSize) PURE;
1952 STDMETHOD_(HWND, GetHwnd)(ID2D1HwndRenderTarget *This) PURE;
1953 } ID2D1HwndRenderTargetVtbl;
1954
1955 interface ID2D1HwndRenderTarget {
1956 const struct ID2D1HwndRenderTargetVtbl *lpVtbl;
1957 };
1958
1959 #define ID2D1HwndRenderTarget_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
1960 #define ID2D1HwndRenderTarget_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
1961 #define ID2D1HwndRenderTarget_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
1962 #define ID2D1HwndRenderTarget_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
1963 #define ID2D1HwndRenderTarget_BeginDraw(this) (this)->lpVtbl->Base.BeginDraw((ID2D1RenderTarget*)(this))
1964 #define ID2D1HwndRenderTarget_Clear(this,A) (this)->lpVtbl->Base.Clear((ID2D1RenderTarget*)(this),A)
1965 #define ID2D1HwndRenderTarget_CreateBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1966 #define ID2D1HwndRenderTarget_CreateBitmapBrush(this,A,B) (this)->lpVtbl->Base.CreateBitmapBrush((ID2D1RenderTarget*)(this),A,B)
1967 #define ID2D1HwndRenderTarget_CreateBitmapFromWicBitmap(this,A,B,C) (this)->lpVtbl->Base.CreateBitmapFromWicBitmap((ID2D1RenderTarget*)(this),A,B,C)
1968 #define ID2D1HwndRenderTarget_CreateCompatibleRenderTarget(this,A,B,C,D,E) (this)->lpVtbl->Base.CreateCompatibleRenderTarget((ID2D1RenderTarget*)(this),A,B,C,D,E)
1969 #define ID2D1HwndRenderTarget_CreateGradientStopCollection(this,A,B,C) (this)->lpVtbl->Base.CreateGradientStopCollection((ID2D1RenderTarget*)(this),A,B,C)
1970 #define ID2D1HwndRenderTarget_CreateLayer(this,A,B) (this)->lpVtbl->Base.CreateLayer((ID2D1RenderTarget*)(this),A,B)
1971 #define ID2D1HwndRenderTarget_CreateLinearGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateLinearGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1972 #define ID2D1HwndRenderTarget_CreateMesh(this,A) (this)->lpVtbl->Base.CreateMesh((ID2D1RenderTarget*)(this),A)
1973 #define ID2D1HwndRenderTarget_CreateRadialGradientBrush(this,A,B,C,D) (this)->lpVtbl->Base.CreateRadialGradientBrush((ID2D1RenderTarget*)(this),A,B,C,D)
1974 #define ID2D1HwndRenderTarget_CreateSharedBitmap(this,A,B,C,D) (this)->lpVtbl->Base.CreateSharedBitmap((ID2D1RenderTarget*)(this),A,B,C,D)
1975 #define ID2D1HwndRenderTarget_CreateSolidColorBrush(this,A,B,C) (this)->lpVtbl->Base.CreateSolidColorBrush((ID2D1RenderTarget*)(this),A,B,C)
1976 #define ID2D1HwndRenderTarget_DrawBitmap(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawBitmap((ID2D1RenderTarget*)(this),A,B,C,D,E)
1977 #define ID2D1HwndRenderTarget_DrawEllipse(this,A,B,C,D) (this)->lpVtbl->Base.DrawEllipse((ID2D1RenderTarget*)(this),A,B,C,D)
1978 #define ID2D1HwndRenderTarget_DrawGeometry(this,A,B,C,D) (this)->lpVtbl->Base.DrawGeometry((ID2D1RenderTarget*)(this),A,B,C,D)
1979 #define ID2D1HwndRenderTarget_DrawGlyphRun(this,A,B,C,D) (this)->lpVtbl->Base.DrawGlyphRun((ID2D1RenderTarget*)(this),A,B,C,D)
1980 #define ID2D1HwndRenderTarget_DrawLine(this,A,B,C,D,E) (this)->lpVtbl->Base.DrawLine((ID2D1RenderTarget*)(this),A,B,C,D,E)
1981 #define ID2D1HwndRenderTarget_DrawRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1982 #define ID2D1HwndRenderTarget_DrawRoundedRectangle(this,A,B,C,D) (this)->lpVtbl->Base.DrawRoundedRectangle((ID2D1RenderTarget*)(this),A,B,C,D)
1983 #define ID2D1HwndRenderTarget_DrawText(this,A,B,C,D,E,F,G) (this)->lpVtbl->Base.DrawText((ID2D1RenderTarget*)(this),A,B,C,D,E,F,G)
1984 #define ID2D1HwndRenderTarget_DrawTextLayout(this,A,B,C,D) (this)->lpVtbl->Base.DrawTextLayout((ID2D1RenderTarget*)(this),A,B,C,D)
1985 #define ID2D1HwndRenderTarget_EndDraw(this,A,B) (this)->lpVtbl->Base.EndDraw((ID2D1RenderTarget*)(this),A,B)
1986 #define ID2D1HwndRenderTarget_FillEllipse(this,A,B) (this)->lpVtbl->Base.FillEllipse((ID2D1RenderTarget*)(this),A,B)
1987 #define ID2D1HwndRenderTarget_FillGeometry(this,A,B,C) (this)->lpVtbl->Base.FillGeometry((ID2D1RenderTarget*)(this),A,B,C)
1988 #define ID2D1HwndRenderTarget_FillMesh(this,A,B) (this)->lpVtbl->Base.FillMesh((ID2D1RenderTarget*)(this),A,B)
1989 #define ID2D1HwndRenderTarget_FillOpacityMask(this,A,B,C,D,E) (this)->lpVtbl->Base.FillOpacityMask((ID2D1RenderTarget*)(this),A,B,C,D,E)
1990 #define ID2D1HwndRenderTarget_FillRectangle(this,A,B) (this)->lpVtbl->Base.FillRectangle((ID2D1RenderTarget*)(this),A,B)
1991 #define ID2D1HwndRenderTarget_FillRoundedRectangle(this,A,B) (this)->lpVtbl->Base.FillRoundedRectangle((ID2D1RenderTarget*)(this),A,B)
1992 #define ID2D1HwndRenderTarget_Flush(this,A,B) (this)->lpVtbl->Base.Flush((ID2D1RenderTarget*)(this),A,B)
1993 #define ID2D1HwndRenderTarget_GetAntialiasMode(this) (this)->lpVtbl->Base.GetAntialiasMode((ID2D1RenderTarget*)(this))
1994 #define ID2D1HwndRenderTarget_GetDpi(this,A,B) (this)->lpVtbl->Base.GetDpi((ID2D1RenderTarget*)(this),A,B)
1995 #define ID2D1HwndRenderTarget_GetMaximumBitmapSize(this) (this)->lpVtbl->Base.GetMaximumBitmapSize((ID2D1RenderTarget*)(this))
1996 #define ID2D1HwndRenderTarget_GetPixelFormat(this) (this)->lpVtbl->Base.GetPixelFormat((ID2D1RenderTarget*)(this))
1997 #define ID2D1HwndRenderTarget_GetPixelSize(this) (this)->lpVtbl->Base.GetPixelSize((ID2D1RenderTarget*)(this))
1998 #define ID2D1HwndRenderTarget_GetSize(this) (this)->lpVtbl->Base.GetSize((ID2D1RenderTarget*)(this))
1999 #define ID2D1HwndRenderTarget_GetTags(this,A,B) (this)->lpVtbl->Base.GetTags((ID2D1RenderTarget*)(this),A,B)
2000 #define ID2D1HwndRenderTarget_GetTextAntialiasMode(this) (this)->lpVtbl->Base.GetTextAntialiasMode((ID2D1RenderTarget*)(this))
2001 #define ID2D1HwndRenderTarget_GetTextRenderingParams(this,A) (this)->lpVtbl->Base.GetTextRenderingParams((ID2D1RenderTarget*)(this),A)
2002 #define ID2D1HwndRenderTarget_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1RenderTarget*)(this),A)
2003 #define ID2D1HwndRenderTarget_IsSupported(this,A) (this)->lpVtbl->Base.IsSupported((ID2D1RenderTarget*)(this),A)
2004 #define ID2D1HwndRenderTarget_PopAxisAlignedClip(this) (this)->lpVtbl->Base.PopAxisAlignedClip((ID2D1RenderTarget*)(this))
2005 #define ID2D1HwndRenderTarget_PopLayer(this) (this)->lpVtbl->Base.PopLayer((ID2D1RenderTarget*)(this))
2006 #define ID2D1HwndRenderTarget_PushAxisAlignedClip(this,A,B) (this)->lpVtbl->Base.PushAxisAlignedClip((ID2D1RenderTarget*)(this),A,B)
2007 #define ID2D1HwndRenderTarget_PushLayer(this,A,B) (this)->lpVtbl->Base.PushLayer((ID2D1RenderTarget*)(this),A,B)
2008 #define ID2D1HwndRenderTarget_RestoreDrawingState(this,A) (this)->lpVtbl->Base.RestoreDrawingState((ID2D1RenderTarget*)(this),A)
2009 #define ID2D1HwndRenderTarget_SaveDrawingState(this,A) (this)->lpVtbl->Base.SaveDrawingState((ID2D1RenderTarget*)(this),A)
2010 #define ID2D1HwndRenderTarget_SetAntialiasMode(this,A) (this)->lpVtbl->Base.SetAntialiasMode((ID2D1RenderTarget*)(this),A)
2011 #define ID2D1HwndRenderTarget_SetDpi(this,A,B) (this)->lpVtbl->Base.SetDpi((ID2D1RenderTarget*)(this),A,B)
2012 #define ID2D1HwndRenderTarget_SetTags(this,A,B) (this)->lpVtbl->Base.SetTags((ID2D1RenderTarget*)(this),A,B)
2013 #define ID2D1HwndRenderTarget_SetTextAntialiasMode(this,A) (this)->lpVtbl->Base.SetTextAntialiasMode((ID2D1RenderTarget*)(this),A)
2014 #define ID2D1HwndRenderTarget_SetTextRenderingParams(this,A) (this)->lpVtbl->Base.SetTextRenderingParams((ID2D1RenderTarget*)(this),A)
2015 #define ID2D1HwndRenderTarget_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1RenderTarget*)(this),A)
2016 #define ID2D1HwndRenderTarget_CheckWindowState(this) (this)->lpVtbl->CheckWindowState(this)
2017 #define ID2D1HwndRenderTarget_GetHwnd(this) (this)->lpVtbl->GetHwnd(this)
2018 #define ID2D1HwndRenderTarget_Resize(this,A) (this)->lpVtbl->Resize(this,A)
2019
2020 #endif
2021
2022 DEFINE_GUID(IID_ID2D1Layer, 0x2cd9069b,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2023
2024 #ifndef D2D_USE_C_DEFINITIONS
2025
2026 interface ID2D1Layer : public ID2D1Resource {
2027 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2028 STDMETHOD_(D2D1_SIZE_F, GetSize)(void) const PURE;
2029 #else
2030 virtual D2D1_SIZE_F* STDMETHODCALLTYPE GetSize(D2D1_SIZE_F*) const = 0;
2031 D2D1_SIZE_F STDMETHODCALLTYPE GetSize() const {
2032 D2D1_SIZE_F __ret;
2033 GetSize(&__ret);
2034 return __ret;
2035 }
2036 #endif
2037 };
2038
2039 #else
2040
2041 typedef struct ID2D1LayerVtbl {
2042 ID2D1ResourceVtbl Base;
2043
2044 STDMETHOD_(D2D1_SIZE_F, GetSize)(ID2D1Layer *This) PURE;
2045 } ID2D1LayerVtbl;
2046
2047 interface ID2D1Layer {
2048 const ID2D1LayerVtbl *lpVtbl;
2049 };
2050
2051 #define ID2D1Layer_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
2052 #define ID2D1Layer_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
2053 #define ID2D1Layer_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
2054 #define ID2D1Layer_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
2055 #define ID2D1Layer_GetSize(this) (this)->lpVtbl->GetSize(this)
2056
2057 #endif
2058
2059 DEFINE_GUID(IID_ID2D1LinearGradientBrush, 0x2cd906ab,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2060
2061 #ifndef D2D_USE_C_DEFINITIONS
2062
2063 interface ID2D1LinearGradientBrush : public ID2D1Brush {
2064 STDMETHOD_(void, SetStartPoint)(D2D1_POINT_2F startPoint) PURE;
2065 STDMETHOD_(void, SetEndPoint)(D2D1_POINT_2F endPoint) PURE;
2066
2067 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2068 STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(void) const PURE;
2069 #else
2070 virtual D2D1_POINT_2F* STDMETHODCALLTYPE GetStartPoint(D2D1_POINT_2F*) const = 0;
GetStartPoint()2071 D2D1_POINT_2F STDMETHODCALLTYPE GetStartPoint() const {
2072 D2D1_POINT_2F __ret;
2073 GetStartPoint(&__ret);
2074 return __ret;
2075 }
2076 #endif
2077
2078 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2079 STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(void) const PURE;
2080 #else
2081 virtual D2D1_POINT_2F* STDMETHODCALLTYPE GetEndPoint(D2D1_POINT_2F*) const = 0;
GetEndPoint()2082 D2D1_POINT_2F STDMETHODCALLTYPE GetEndPoint() const {
2083 D2D1_POINT_2F __ret;
2084 GetEndPoint(&__ret);
2085 return __ret;
2086 }
2087 #endif
2088
2089 STDMETHOD_(void, GetGradientStopCollection)(ID2D1GradientStopCollection **gradientStopCollection) const PURE;
2090 };
2091
2092 #else
2093
2094 typedef struct ID2D1LinearGradientBrushVtbl {
2095 ID2D1BrushVtbl Base;
2096
2097 STDMETHOD_(void, SetStartPoint)(ID2D1LinearGradientBrush *This, D2D1_POINT_2F startPoint) PURE;
2098 STDMETHOD_(void, SetEndPoint)(ID2D1LinearGradientBrush *This, D2D1_POINT_2F endPoint) PURE;
2099 STDMETHOD_(D2D1_POINT_2F, GetStartPoint)(ID2D1LinearGradientBrush *This) PURE;
2100 STDMETHOD_(D2D1_POINT_2F, GetEndPoint)(ID2D1LinearGradientBrush *This) PURE;
2101 STDMETHOD_(void, GetGradientStopCollection)(ID2D1LinearGradientBrush *This, ID2D1GradientStopCollection **gradientStopCollection) PURE;
2102 } ID2D1LinearGradientBrushVtbl;
2103
2104 interface ID2D1LinearGradientBrush {
2105 const ID2D1LinearGradientBrushVtbl *lpVtbl;
2106 };
2107
2108 #define ID2D1LinearGradientBrush_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2109 #define ID2D1LinearGradientBrush_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2110 #define ID2D1LinearGradientBrush_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2111 #define ID2D1LinearGradientBrush_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2112 #define ID2D1LinearGradientBrush_SetOpacity(this,A) (this)->lpVtbl->Base.SetOpacity((ID2D1Brush*)(this),A)
2113 #define ID2D1LinearGradientBrush_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1Brush*)(this),A)
2114 #define ID2D1LinearGradientBrush_GetOpacity(this) (this)->lpVtbl->Base.GetOpacity((ID2D1Brush*)(this))
2115 #define ID2D1LinearGradientBrush_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1Brush*)(this),A)
2116 #define ID2D1LinearGradientBrush_GetEndPoint(this) (this)->lpVtbl->GetEndPoint(this)
2117 #define ID2D1LinearGradientBrush_GetGradientStopCollection(this,A) (this)->lpVtbl->GetGradientStopCollection(this,A)
2118 #define ID2D1LinearGradientBrush_GetStartPoint(this) (this)->lpVtbl->GetStartPoint(this)
2119 #define ID2D1LinearGradientBrush_SetEndPoint(this,A) (this)->lpVtbl->SetEndPoint(this,A)
2120 #define ID2D1LinearGradientBrush_SetStartPoint(this,A) (this)->lpVtbl->SetStartPoint(this,A)
2121
2122 #endif
2123
2124 DEFINE_GUID(IID_ID2D1Mesh,0x2cd906c2,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2125
2126 #ifndef D2D_USE_C_DEFINITIONS
2127
2128 interface ID2D1Mesh : public ID2D1Resource {
2129 STDMETHOD(Open)(ID2D1TessellationSink **tessellationSink) PURE;
2130 };
2131
2132 #else
2133
2134 typedef struct ID2D1MeshVtbl{
2135 ID2D1ResourceVtbl Base;
2136
2137 STDMETHOD(Open)(ID2D1Mesh *This, ID2D1TessellationSink **tessellationSink) PURE;
2138 } ID2D1MeshVtbl;
2139
2140 interface ID2D1Mesh {
2141 const struct ID2D1MeshVtbl *lpVtbl;
2142 };
2143
2144 #define ID2D1Mesh_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
2145 #define ID2D1Mesh_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
2146 #define ID2D1Mesh_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
2147 #define ID2D1Mesh_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
2148 #define ID2D1Mesh_Open(this,A) (this)->lpVtbl->Open(this,A)
2149
2150 #endif
2151
2152 DEFINE_GUID(IID_ID2D1PathGeometry, 0x2cd906a5,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2153
2154 #ifndef D2D_USE_C_DEFINITIONS
2155
2156 interface ID2D1PathGeometry : public ID2D1Geometry {
2157 STDMETHOD(Open)(ID2D1GeometrySink **geometrySink) PURE;
2158 STDMETHOD(Stream)(ID2D1GeometrySink *geometrySink) const PURE;
2159 STDMETHOD(GetSegmentCount)(UINT32 *count) const PURE;
2160 STDMETHOD(GetFigureCount)(UINT32 *count) const PURE;
2161 };
2162
2163 #else
2164
2165 typedef struct ID2D1PathGeometryVtbl {
2166 ID2D1GeometryVtbl Base;
2167
2168 STDMETHOD(Open)(ID2D1PathGeometry *This, ID2D1GeometrySink **geometrySink) PURE;
2169 STDMETHOD(Stream)(ID2D1PathGeometry *This, ID2D1GeometrySink *geometrySink) PURE;
2170 STDMETHOD(GetSegmentCount)(ID2D1PathGeometry *This, UINT32 *count) PURE;
2171 STDMETHOD(GetFigureCount)(ID2D1PathGeometry *This, UINT32 *count) PURE;
2172 } ID2D1PathGeometryVtbl;
2173
2174 interface ID2D1PathGeometry {
2175 const ID2D1PathGeometryVtbl *lpVtbl;
2176 };
2177
2178 #define ID2D1PathGeometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2179 #define ID2D1PathGeometry_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2180 #define ID2D1PathGeometry_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2181 #define ID2D1PathGeometry_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2182 #define ID2D1PathGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
2183 #define ID2D1PathGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
2184 #define ID2D1PathGeometry_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
2185 #define ID2D1PathGeometry_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
2186 #define ID2D1PathGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
2187 #define ID2D1PathGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
2188 #define ID2D1PathGeometry_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
2189 #define ID2D1PathGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
2190 #define ID2D1PathGeometry_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
2191 #define ID2D1PathGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
2192 #define ID2D1PathGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
2193 #define ID2D1PathGeometry_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
2194 #define ID2D1PathGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
2195 #define ID2D1PathGeometry_Open(this,A) (this)->lpVtbl->Open(this,A)
2196 #define ID2D1PathGeometry_Stream(this,A) (this)->lpVtbl->Stream(this,A)
2197 #define ID2D1PathGeometry_GetSegmentCount(this,A) (this)->lpVtbl->GetSegmentCount(this,A)
2198 #define ID2D1PathGeometry_GetFigureCount(this,A) (this)->lpVtbl->GetFigureCount(this,A)
2199
2200 #endif
2201
2202 DEFINE_GUID(IID_ID2D1RadialGradientBrush, 0x2cd906ac,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2203
2204 #ifndef D2D_USE_C_DEFINITIONS
2205
2206 interface ID2D1RadialGradientBrush : public ID2D1Brush {
2207 STDMETHOD_(void, SetCenter)(D2D1_POINT_2F center) PURE;
2208 STDMETHOD_(void, SetGradientOriginOffset)(D2D1_POINT_2F gradientOriginOffset) PURE;
2209 STDMETHOD_(void, SetRadiusX)(FLOAT radiusX) PURE;
2210 STDMETHOD_(void, SetRadiusY)(FLOAT radiusY) PURE;
2211
2212 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2213 STDMETHOD_(D2D1_POINT_2F, GetCenter)(void) const PURE;
2214 #else
2215 virtual D2D1_POINT_2F* STDMETHODCALLTYPE GetCenter(D2D1_POINT_2F *__ret) const = 0;
GetCenter()2216 D2D1_POINT_2F STDMETHODCALLTYPE GetCenter() const
2217 {
2218 D2D1_POINT_2F __ret;
2219 GetCenter(&__ret);
2220 return __ret;
2221 }
2222 #endif
2223
2224 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2225 STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(void) const PURE;
2226 #else
2227 virtual D2D1_POINT_2F* STDMETHODCALLTYPE GetGradientOriginOffset(D2D1_POINT_2F *__ret) const = 0;
GetGradientOriginOffset()2228 D2D1_POINT_2F STDMETHODCALLTYPE GetGradientOriginOffset() const
2229 {
2230 D2D1_POINT_2F __ret;
2231 GetGradientOriginOffset(&__ret);
2232 return __ret;
2233 }
2234 #endif
2235
2236 STDMETHOD_(FLOAT, GetRadiusX)(void) const PURE;
2237 STDMETHOD_(FLOAT, GetRadiusY)(void) const PURE;
2238 STDMETHOD_(void, GetGradientStopCollection)(ID2D1GradientStopCollection **gradientStopCollection) const PURE;
2239 };
2240
2241 #else
2242
2243 typedef struct ID2D1RadialGradientBrushVtbl {
2244 ID2D1BrushVtbl Base;
2245
2246 STDMETHOD_(void, SetCenter)(ID2D1RadialGradientBrush *This, D2D1_POINT_2F center) PURE;
2247 STDMETHOD_(void, SetGradientOriginOffset)(ID2D1RadialGradientBrush *This, D2D1_POINT_2F gradientOriginOffset) PURE;
2248 STDMETHOD_(void, SetRadiusX)(ID2D1RadialGradientBrush *This, FLOAT radiusX) PURE;
2249 STDMETHOD_(void, SetRadiusY)(ID2D1RadialGradientBrush *This, FLOAT radiusY) PURE;
2250 STDMETHOD_(D2D1_POINT_2F, GetCenter)(ID2D1RadialGradientBrush *This) PURE;
2251 STDMETHOD_(D2D1_POINT_2F, GetGradientOriginOffset)(ID2D1RadialGradientBrush *This) PURE;
2252 STDMETHOD_(FLOAT, GetRadiusX)(ID2D1RadialGradientBrush *This) PURE;
2253 STDMETHOD_(FLOAT, GetRadiusY)(ID2D1RadialGradientBrush *This) PURE;
2254 STDMETHOD_(void, GetGradientStopCollection)(ID2D1RadialGradientBrush *This, ID2D1GradientStopCollection **gradientStopCollection) PURE;
2255 } ID2D1RadialGradientBrushVtbl;
2256
2257 interface ID2D1RadialGradientBrush {
2258 const ID2D1RadialGradientBrushVtbl *lpVtbl;
2259 };
2260
2261 #define ID2D1RadialGradientBrush_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2262 #define ID2D1RadialGradientBrush_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2263 #define ID2D1RadialGradientBrush_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2264 #define ID2D1RadialGradientBrush_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2265 #define ID2D1RadialGradientBrush_SetOpacity(this,A) (this)->lpVtbl->Base.SetOpacity((ID2D1Brush*)(this),A)
2266 #define ID2D1RadialGradientBrush_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1Brush*)(this),A)
2267 #define ID2D1RadialGradientBrush_GetOpacity(this) (this)->lpVtbl->Base.GetOpacity((ID2D1Brush*)(this))
2268 #define ID2D1RadialGradientBrush_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1Brush*)(this),A)
2269 #define ID2D1RadialGradientBrush_GetCenter(this) (this)->lpVtbl->GetCenter(this)
2270 #define ID2D1RadialGradientBrush_GetGradientOriginOffset(this) (this)->lpVtbl->GetGradientOriginOffset(this)
2271 #define ID2D1RadialGradientBrush_GetGradientStopCollection(this,A) (this)->lpVtbl->GetGradientStopCollection(this,A)
2272 #define ID2D1RadialGradientBrush_GetRadiusX(this) (this)->lpVtbl->GetRadiusX(this)
2273 #define ID2D1RadialGradientBrush_GetRadiusY(this) (this)->lpVtbl->GetRadiusY(this)
2274 #define ID2D1RadialGradientBrush_SetCenter(this,A) (this)->lpVtbl->SetCenter(this,A)
2275 #define ID2D1RadialGradientBrush_SetGradientOriginOffset(this,A) (this)->lpVtbl->SetGradientOriginOffset(this,A)
2276 #define ID2D1RadialGradientBrush_SetRadiusX(this,A) (this)->lpVtbl->SetRadiusX(this,A)
2277 #define ID2D1RadialGradientBrush_SetRadiusY(this,A) (this)->lpVtbl->SetRadiusY(this,A)
2278
2279 #endif
2280
2281 DEFINE_GUID(IID_ID2D1RectangleGeometry, 0x2cd906a2,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2282
2283 #ifndef D2D_USE_C_DEFINITIONS
2284
2285 interface ID2D1RectangleGeometry : public ID2D1Geometry {
2286 STDMETHOD_(void, GetRect)(D2D1_RECT_F *rect) const PURE;
2287 };
2288
2289 #else
2290
2291 typedef struct ID2D1RectangleGeometryVtbl {
2292 ID2D1GeometryVtbl Base;
2293
2294 STDMETHOD_(void, GetRect)(ID2D1RectangleGeometry *This, D2D1_RECT_F *rect) PURE;
2295 } ID2D1RectangleGeometryVtbl;
2296
2297 interface ID2D1RectangleGeometry {
2298 const ID2D1RectangleGeometryVtbl *lpVtbl;
2299 };
2300
2301 #define ID2D1RectangleGeometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2302 #define ID2D1RectangleGeometry_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2303 #define ID2D1RectangleGeometry_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2304 #define ID2D1RectangleGeometry_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2305 #define ID2D1RectangleGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
2306 #define ID2D1RectangleGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
2307 #define ID2D1RectangleGeometry_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
2308 #define ID2D1RectangleGeometry_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
2309 #define ID2D1RectangleGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
2310 #define ID2D1RectangleGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
2311 #define ID2D1RectangleGeometry_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
2312 #define ID2D1RectangleGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
2313 #define ID2D1RectangleGeometry_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
2314 #define ID2D1RectangleGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
2315 #define ID2D1RectangleGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
2316 #define ID2D1RectangleGeometry_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
2317 #define ID2D1RectangleGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
2318 #define ID2D1RectangleGeometry_GetRect(this,A) (this)->lpVtbl->GetRect(this,A)
2319
2320 #endif
2321
2322 DEFINE_GUID(IID_ID2D1RoundedRectangleGeometry, 0x2cd906a3,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2323
2324 #ifndef D2D_USE_C_DEFINITIONS
2325
2326 interface ID2D1RoundedRectangleGeometry : public ID2D1Geometry {
2327 STDMETHOD_(void, GetRoundedRect)(D2D1_ROUNDED_RECT *roundedRect) const PURE;
2328 };
2329
2330 #else
2331
2332 typedef struct ID2D1RoundedRectangleGeometryVtbl {
2333 ID2D1GeometryVtbl Base;
2334
2335 STDMETHOD_(void, GetRoundedRect)(ID2D1RoundedRectangleGeometry *This, D2D1_ROUNDED_RECT *roundedRect) PURE;
2336 } ID2D1RoundedRectangleGeometryVtbl;
2337
2338 interface ID2D1RoundedRectangleGeometry {
2339 const struct ID2D1RoundedRectangleGeometryVtbl *lpVtbl;
2340 };
2341
2342 #define ID2D1RoundedRectangleGeometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2343 #define ID2D1RoundedRectangleGeometry_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2344 #define ID2D1RoundedRectangleGeometry_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2345 #define ID2D1RoundedRectangleGeometry_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2346 #define ID2D1RoundedRectangleGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
2347 #define ID2D1RoundedRectangleGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
2348 #define ID2D1RoundedRectangleGeometry_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
2349 #define ID2D1RoundedRectangleGeometry_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
2350 #define ID2D1RoundedRectangleGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
2351 #define ID2D1RoundedRectangleGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
2352 #define ID2D1RoundedRectangleGeometry_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
2353 #define ID2D1RoundedRectangleGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
2354 #define ID2D1RoundedRectangleGeometry_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
2355 #define ID2D1RoundedRectangleGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
2356 #define ID2D1RoundedRectangleGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
2357 #define ID2D1RoundedRectangleGeometry_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
2358 #define ID2D1RoundedRectangleGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
2359 #define ID2D1RoundedRectangleGeometry_GetRoundedRect(this,A) (this)->lpVtbl->GetRoundedRect(this,A)
2360
2361 #endif
2362
2363 DEFINE_GUID(IID_ID2D1SolidColorBrush, 0x2cd906a9,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2364
2365 #ifndef D2D_USE_C_DEFINITIONS
2366
2367 interface ID2D1SolidColorBrush : public ID2D1Brush {
2368 STDMETHOD_(void, SetColor)(const D2D1_COLOR_F *color) PURE;
2369
2370 #ifndef WIDL_EXPLICIT_AGGREGATE_RETURNS
2371 STDMETHOD_(D2D1_COLOR_F, GetColor)(void) const PURE;
2372 #else
2373 virtual D2D1_COLOR_F* STDMETHODCALLTYPE GetColor(D2D1_COLOR_F*) const = 0;
GetColor()2374 D2D1_COLOR_F STDMETHODCALLTYPE GetColor() const {
2375 D2D1_COLOR_F __ret;
2376 GetColor(&__ret);
2377 return __ret;
2378 }
2379 #endif
2380
SetColor(const D2D1_COLOR_F & color)2381 void SetColor(const D2D1_COLOR_F &color) {
2382 SetColor(&color);
2383 }
2384 };
2385
2386 #else
2387
2388 typedef struct ID2D1SolidColorBrushVtbl {
2389 ID2D1BrushVtbl Base;
2390
2391 STDMETHOD_(void, SetColor)(ID2D1SolidColorBrush *This, const D2D1_COLOR_F *color) PURE;
2392 STDMETHOD_(D2D1_COLOR_F, GetColor)(ID2D1SolidColorBrush *This) PURE;
2393 } ID2D1SolidColorBrushVtbl;
2394
2395 interface ID2D1SolidColorBrush {
2396 const ID2D1SolidColorBrushVtbl *lpVtbl;
2397 };
2398
2399 #define ID2D1SolidColorBrush_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2400 #define ID2D1SolidColorBrush_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2401 #define ID2D1SolidColorBrush_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2402 #define ID2D1SolidColorBrush_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2403 #define ID2D1SolidColorBrush_SetOpacity(this,A) (this)->lpVtbl->Base.SetOpacity((ID2D1Brush*)(this),A)
2404 #define ID2D1SolidColorBrush_SetTransform(this,A) (this)->lpVtbl->Base.SetTransform((ID2D1Brush*)(this),A)
2405 #define ID2D1SolidColorBrush_GetOpacity(this) (this)->lpVtbl->Base.GetOpacity((ID2D1Brush*)(this))
2406 #define ID2D1SolidColorBrush_GetTransform(this,A) (this)->lpVtbl->Base.GetTransform((ID2D1Brush*)(this),A)
2407 #define ID2D1SolidColorBrush_GetColor(this) (this)->lpVtbl->GetColor(this)
2408 #define ID2D1SolidColorBrush_SetColor(this,A) (this)->lpVtbl->SetColor(this,A)
2409
2410 #endif
2411
2412 DEFINE_GUID(IID_ID2D1StrokeStyle, 0x2cd9069d,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2413
2414 #ifndef D2D_USE_C_DEFINITIONS
2415
2416 interface ID2D1StrokeStyle : public ID2D1Resource {
2417 STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(void) const PURE;
2418 STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(void) const PURE;
2419 STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(void) const PURE;
2420 STDMETHOD_(FLOAT, GetMiterLimit)(void) const PURE;
2421 STDMETHOD_(D2D1_LINE_JOIN, GetLineJoin)(void) const PURE;
2422 STDMETHOD_(FLOAT, GetDashOffset)(void) const PURE;
2423 STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(void) const PURE;
2424 STDMETHOD_(UINT32, GetDashesCount)(void) const PURE;
2425 STDMETHOD_(void, GetDashes)(FLOAT *dashes, UINT dashesCount) const PURE;
2426 };
2427
2428 #else
2429
2430 typedef struct ID2D1StrokeStyleVtbl {
2431 ID2D1ResourceVtbl Base;
2432
2433 STDMETHOD_(D2D1_CAP_STYLE, GetStartCap)(ID2D1StrokeStyle *This) PURE;
2434 STDMETHOD_(D2D1_CAP_STYLE, GetEndCap)(ID2D1StrokeStyle *This) PURE;
2435 STDMETHOD_(D2D1_CAP_STYLE, GetDashCap)(ID2D1StrokeStyle *This) PURE;
2436 STDMETHOD_(FLOAT, GetMiterLimit)(ID2D1StrokeStyle *This) PURE;
2437 STDMETHOD_(D2D1_LINE_JOIN, GetLineJoin)(ID2D1StrokeStyle *This) PURE;
2438 STDMETHOD_(FLOAT, GetDashOffset)(ID2D1StrokeStyle *This) PURE;
2439 STDMETHOD_(D2D1_DASH_STYLE, GetDashStyle)(ID2D1StrokeStyle *This) PURE;
2440 STDMETHOD_(UINT32, GetDashesCount)(ID2D1StrokeStyle *This) PURE;
2441 STDMETHOD_(void, GetDashes)(ID2D1StrokeStyle *This, FLOAT *dashes, UINT dashesCount) PURE;
2442 } ID2D1StrokeStyleVtbl;
2443
2444 interface ID2D1StrokeStyle {
2445 const ID2D1StrokeStyleVtbl *lpVtbl;
2446 };
2447
2448 #define ID2D1StrokeStyle_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.QueryInterface((IUnknown*)(this),A,B)
2449 #define ID2D1StrokeStyle_AddRef(this) (this)->lpVtbl->Base.Base.AddRef((IUnknown*)(this))
2450 #define ID2D1StrokeStyle_Release(this) (this)->lpVtbl->Base.Base.Release((IUnknown*)(this))
2451 #define ID2D1StrokeStyle_GetFactory(this,A) (this)->lpVtbl->Base.GetFactory((ID2D1Resource*)(this),A)
2452 #define ID2D1StrokeStyle_GetDashCap(this) (this)->lpVtbl->GetDashCap(this)
2453 #define ID2D1StrokeStyle_GetDashes(this,A,B) (this)->lpVtbl->GetDashes(this,A,B)
2454 #define ID2D1StrokeStyle_GetDashesCount(this) (this)->lpVtbl->GetDashesCount(this)
2455 #define ID2D1StrokeStyle_GetDashOffset(this) (this)->lpVtbl->GetDashOffset(this)
2456 #define ID2D1StrokeStyle_GetDashStyle(this) (this)->lpVtbl->GetDashStyle(this)
2457 #define ID2D1StrokeStyle_GetEndCap(this) (this)->lpVtbl->GetEndCap(this)
2458 #define ID2D1StrokeStyle_GetLineJoin(this) (this)->lpVtbl->GetLineJoin(this)
2459 #define ID2D1StrokeStyle_GetMiterLimit(this) (this)->lpVtbl->GetMiterLimit(this)
2460 #define ID2D1StrokeStyle_GetStartCap(this) (this)->lpVtbl->GetStartCap(this)
2461
2462 #endif
2463
2464 DEFINE_GUID(IID_ID2D1TessellationSink, 0x2cd906c1,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2465
2466 #ifndef D2D_USE_C_DEFINITIONS
2467
2468 interface ID2D1TessellationSink : public IUnknown {
2469 STDMETHOD_(void, AddTriangles)(const D2D1_TRIANGLE *triangles, UINT trianglesCount) PURE;
2470 STDMETHOD(Close)() PURE;
2471 };
2472
2473 #else
2474
2475 typedef struct ID2D1TessellationSinkVtbl {
2476 IUnknownVtbl Base;
2477
2478 STDMETHOD_(void, AddTriangles)(ID2D1TessellationSink *This, const D2D1_TRIANGLE *triangles, UINT trianglesCount) PURE;
2479 STDMETHOD(Close)(ID2D1TessellationSink *This) PURE;
2480 } ID2D1TessellationSinkVtbl;
2481
2482 interface ID2D1TessellationSink {
2483 const struct ID2D1TessellationSinkVtbl *lpVtbl;
2484 };
2485
2486 #define ID2D1TessellationSink_QueryInterface(this,A,B) (this)->lpVtbl->Base.QueryInterface((IUnknown*)(this),A,B)
2487 #define ID2D1TessellationSink_AddRef(this) (this)->lpVtbl->Base.AddRef((IUnknown*)(this))
2488 #define ID2D1TessellationSink_Release(this) (this)->lpVtbl->Base.Release((IUnknown*)(this))
2489 #define ID2D1TessellationSink_AddTriangles(this,A,B) (this)->lpVtbl->AddTriangles(this,A,B)
2490 #define ID2D1TessellationSink_Close(this) (this)->lpVtbl->Close(this)
2491
2492 #endif
2493
2494 DEFINE_GUID(IID_ID2D1TransformedGeometry, 0x2cd906bb,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2495
2496 #ifndef D2D_USE_C_DEFINITIONS
2497
2498 interface ID2D1TransformedGeometry : public ID2D1Geometry {
2499 STDMETHOD_(void, GetSourceGeometry)(ID2D1Geometry **sourceGeometry) const PURE;
2500 STDMETHOD_(void, GetTransform)(D2D1_MATRIX_3X2_F *transform) const PURE;
2501 };
2502
2503 #else
2504
2505 typedef struct ID2D1TransformedGeometryVtbl {
2506 ID2D1GeometryVtbl Base;
2507
2508 STDMETHOD_(void, GetSourceGeometry)(ID2D1TransformedGeometry *This, ID2D1Geometry **sourceGeometry) PURE;
2509 STDMETHOD_(void, GetTransform)(ID2D1TransformedGeometry *This, D2D1_MATRIX_3X2_F *transform) PURE;
2510 } ID2D1TransformedGeometryVtbl;
2511
2512 interface ID2D1TransformedGeometry {
2513 const ID2D1TransformedGeometryVtbl *lpVtbl;
2514 };
2515
2516 #define ID2D1TransformedGeometry_QueryInterface(this,A,B) (this)->lpVtbl->Base.Base.Base.QueryInterface((IUnknown*)(this),A,B)
2517 #define ID2D1TransformedGeometry_AddRef(this) (this)->lpVtbl->Base.Base.Base.AddRef((IUnknown*)(this))
2518 #define ID2D1TransformedGeometry_Release(this) (this)->lpVtbl->Base.Base.Base.Release((IUnknown*)(this))
2519 #define ID2D1TransformedGeometry_GetFactory(this,A) (this)->lpVtbl->Base.Base.GetFactory((ID2D1Resource*)(this),A)
2520 #define ID2D1TransformedGeometry_CombineWithGeometry(this,A,B,C,D) (this)->lpVtbl->Base.CombineWithGeometry((ID2D1Geometry*)(this),A,B,C,D)
2521 #define ID2D1TransformedGeometry_CompareWithGeometry(this,A,B,C) (this)->lpVtbl->Base.CompareWithGeometry((ID2D1Geometry*)(this),A,B,C)
2522 #define ID2D1TransformedGeometry_ComputeArea(this,A,B) (this)->lpVtbl->Base.ComputeArea((ID2D1Geometry*)(this),A,B)
2523 #define ID2D1TransformedGeometry_ComputeLength(this,A,B) (this)->lpVtbl->Base.ComputeLength((ID2D1Geometry*)(this),A,B)
2524 #define ID2D1TransformedGeometry_ComputePointAtLength(this,A,B,C,D) (this)->lpVtbl->Base.ComputePointAtLength((ID2D1Geometry*)(this),A,B,C,D)
2525 #define ID2D1TransformedGeometry_FillContainsPoint(this,A,B,C) (this)->lpVtbl->Base.FillContainsPoint((ID2D1Geometry*)(this),A,B,C)
2526 #define ID2D1TransformedGeometry_GetBounds(this,A,B) (this)->lpVtbl->Base.GetBounds((ID2D1Geometry*)(this),A,B)
2527 #define ID2D1TransformedGeometry_GetWidenedBounds(this,A,B,C,D) (this)->lpVtbl->Base.GetWidenedBounds((ID2D1Geometry*)(this),A,B,C,D)
2528 #define ID2D1TransformedGeometry_Outline(this,A,B) (this)->lpVtbl->Base.Outline((ID2D1Geometry*)(this),A,B)
2529 #define ID2D1TransformedGeometry_StrokeContainsPoint(this,A,B,C,D,E) (this)->lpVtbl->Base.StrokeContainsPoint((ID2D1Geometry*)(this),A,B,C,D,E)
2530 #define ID2D1TransformedGeometry_Simplify(this,A,B,C) (this)->lpVtbl->Base.Simplify((ID2D1Geometry*)(this),A,B,C)
2531 #define ID2D1TransformedGeometry_Tessellate(this,A,B) (this)->lpVtbl->Base.Tessellate((ID2D1Geometry*)(this),A,B)
2532 #define ID2D1TransformedGeometry_Widen(this,A,B,C,D) (this)->lpVtbl->Base.Widen((ID2D1Geometry*)(this),A,B,C,D)
2533 #define ID2D1TransformedGeometry_GetSourceGeometry(this,A) (this)->lpVtbl->GetSourceGeometry(this,A)
2534 #define ID2D1TransformedGeometry_GetTransform(this,A) (this)->lpVtbl->GetTransform(this,A)
2535
2536 #endif
2537
2538 __CRT_UUID_DECL(ID2D1Resource, 0x2cd90691,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2539 __CRT_UUID_DECL(ID2D1Brush, 0x2cd906a8,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2540 __CRT_UUID_DECL(ID2D1Bitmap, 0xa2296057,0xea42,0x4099,0x98,0x3b,0x53,0x9f,0xb6,0x50,0x54,0x26)
2541 __CRT_UUID_DECL(ID2D1BitmapBrush, 0x2cd906aa,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2542 __CRT_UUID_DECL(ID2D1RenderTarget, 0x2cd90694,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2543 __CRT_UUID_DECL(ID2D1Geometry, 0x2cd906a1,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2544 __CRT_UUID_DECL(ID2D1BitmapRenderTarget, 0x2cd90695,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2545 __CRT_UUID_DECL(ID2D1DCRenderTarget, 0x1c51bc64,0xde61,0x46fd,0x98,0x99,0x63,0xa5,0xd8,0xf0,0x39,0x50)
2546 __CRT_UUID_DECL(ID2D1SimplifiedGeometrySink, 0x2cd9069e,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2547 __CRT_UUID_DECL(ID2D1Factory, 0x06152247,0x6f50,0x465a,0x92,0x45,0x11,0x8b,0xfd,0x3b,0x60,0x07)
2548 __CRT_UUID_DECL(ID2D1GdiInteropRenderTarget, 0xe0db51c3,0x6f77,0x4bae,0xb3,0xd5,0xe4,0x75,0x09,0xb3,0x58,0x38)
2549 __CRT_UUID_DECL(ID2D1GeometrySink, 0x2cd9069f,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2550 __CRT_UUID_DECL(ID2D1GradientStopCollection, 0x2cd906a7,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2551 __CRT_UUID_DECL(ID2D1Layer, 0x2cd9069b,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2552 __CRT_UUID_DECL(ID2D1LinearGradientBrush, 0x2cd906ab,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2553 __CRT_UUID_DECL(ID2D1PathGeometry, 0x2cd906a5,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2554 __CRT_UUID_DECL(ID2D1RadialGradientBrush, 0x2cd906ac,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2555 __CRT_UUID_DECL(ID2D1RectangleGeometry, 0x2cd906a2,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2556 __CRT_UUID_DECL(ID2D1SolidColorBrush, 0x2cd906a9,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2557 __CRT_UUID_DECL(ID2D1StrokeStyle, 0x2cd9069d,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2558 __CRT_UUID_DECL(ID2D1TransformedGeometry, 0x2cd906bb,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9)
2559 __CRT_UUID_DECL(ID2D1Mesh,0x2cd906c2,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2560 __CRT_UUID_DECL(ID2D1DrawingStateBlock, 0x28506e39,0xebf6,0x46a1,0xbb,0x47,0xfd,0x85,0x56,0x5a,0xb9,0x57);
2561 __CRT_UUID_DECL(ID2D1EllipseGeometry, 0x2cd906a4,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2562 __CRT_UUID_DECL(ID2D1GeometryGroup, 0x2cd906a6,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2563 __CRT_UUID_DECL(ID2D1RoundedRectangleGeometry, 0x2cd906a3,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2564 __CRT_UUID_DECL(ID2D1TessellationSink, 0x2cd906c1,0x12e2,0x11dc,0x9f,0xed,0x00,0x11,0x43,0xa0,0x55,0xf9);
2565 __CRT_UUID_DECL(ID2D1Image, 0x65019f75,0x8da2,0x497c,0xb3,0x2c,0xdf,0xa3,0x4e,0x48,0xed,0xe6);
2566
2567 #ifdef __cplusplus
2568 extern "C" {
2569 #endif
2570
2571 HRESULT WINAPI D2D1CreateFactory(
2572 D2D1_FACTORY_TYPE factoryType,
2573 REFIID riid,
2574 const D2D1_FACTORY_OPTIONS *pFactoryOptions,
2575 void **ppIFactory
2576 );
2577
2578 WINBOOL WINAPI D2D1InvertMatrix(
2579 D2D1_MATRIX_3X2_F *matrix
2580 );
2581
2582 WINBOOL WINAPI D2D1IsMatrixInvertible(
2583 const D2D1_MATRIX_3X2_F *matrix
2584 );
2585
2586 void WINAPI D2D1MakeRotateMatrix(
2587 FLOAT angle,
2588 D2D1_POINT_2F center,
2589 D2D1_MATRIX_3X2_F *matrix
2590 );
2591
2592 void WINAPI D2D1MakeSkewMatrix(
2593 FLOAT angleX,
2594 FLOAT angleY,
2595 D2D1_POINT_2F center,
2596 D2D1_MATRIX_3X2_F *matrix
2597 );
2598 #ifdef __cplusplus
2599 }
2600 #endif
2601
2602 #ifndef D2D1FORCEINLINE
2603 #define D2D1FORCEINLINE FORCEINLINE
2604 #endif
2605
2606 #include <d2d1helper.h>
2607
2608 #ifndef D2D_USE_C_DEFINITIONS
2609
D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType,REFIID riid,void ** ppv)2610 inline HRESULT D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType, REFIID riid, void **ppv) {
2611 return D2D1CreateFactory(factoryType, riid, NULL, ppv);
2612 }
2613
2614 template<class Factory>
D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType,Factory ** factory)2615 HRESULT D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType, Factory **factory) {
2616 return D2D1CreateFactory(factoryType, __uuidof(Factory), reinterpret_cast<void**>(factory));
2617 }
2618
2619 template<class Factory>
D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType,const D2D1_FACTORY_OPTIONS & factoryOptions,Factory ** factory)2620 HRESULT D2D1CreateFactory(D2D1_FACTORY_TYPE factoryType, const D2D1_FACTORY_OPTIONS &factoryOptions, Factory **factory) {
2621 return D2D1CreateFactory(factoryType, __uuidof(Factory), &factoryOptions, reinterpret_cast<void **>(factory));
2622 }
2623
2624 #endif
2625
2626 #endif /* _D2D1_H */
2627