]> git.cworth.org Git - apitrace/blob - specs/temp.py
Draft D2D trace support.
[apitrace] / specs / temp.py
1 D2D1_ALPHA_MODE = Enum("D2D1_ALPHA_MODE", [
2     "D2D1_ALPHA_MODE_UNKNOWN",
3     "D2D1_ALPHA_MODE_PREMULTIPLIED",
4     "D2D1_ALPHA_MODE_STRAIGHT",
5     "D2D1_ALPHA_MODE_IGNORE",
6     "D2D1_ALPHA_MODE_FORCE_DWORD",
7 ])
8
9 D2D1_GAMMA = Enum("D2D1_GAMMA", [
10     "D2D1_GAMMA_2_2",
11     "D2D1_GAMMA_1_0",
12     "D2D1_GAMMA_FORCE_DWORD",
13 ])
14
15 D2D1_OPACITY_MASK_CONTENT = Enum("D2D1_OPACITY_MASK_CONTENT", [
16     "D2D1_OPACITY_MASK_CONTENT_GRAPHICS",
17     "D2D1_OPACITY_MASK_CONTENT_TEXT_NATURAL",
18     "D2D1_OPACITY_MASK_CONTENT_TEXT_GDI_COMPATIBLE",
19     "D2D1_OPACITY_MASK_CONTENT_FORCE_DWORD",
20 ])
21
22 D2D1_EXTEND_MODE = Enum("D2D1_EXTEND_MODE", [
23     "D2D1_EXTEND_MODE_CLAMP",
24     "D2D1_EXTEND_MODE_WRAP",
25     "D2D1_EXTEND_MODE_MIRROR",
26     "D2D1_EXTEND_MODE_FORCE_DWORD",
27 ])
28
29 D2D1_ANTIALIAS_MODE = Enum("D2D1_ANTIALIAS_MODE", [
30     "D2D1_ANTIALIAS_MODE_PER_PRIMITIVE",
31     "D2D1_ANTIALIAS_MODE_ALIASED",
32     "D2D1_ANTIALIAS_MODE_FORCE_DWORD",
33 ])
34
35 D2D1_TEXT_ANTIALIAS_MODE = Enum("D2D1_TEXT_ANTIALIAS_MODE", [
36     "D2D1_TEXT_ANTIALIAS_MODE_DEFAULT",
37     "D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE",
38     "D2D1_TEXT_ANTIALIAS_MODE_GRAYSCALE",
39     "D2D1_TEXT_ANTIALIAS_MODE_ALIASED",
40     "D2D1_TEXT_ANTIALIAS_MODE_FORCE_DWORD",
41 ])
42
43 D2D1_BITMAP_INTERPOLATION_MODE = Enum("D2D1_BITMAP_INTERPOLATION_MODE", [
44     "D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR",
45     "D2D1_BITMAP_INTERPOLATION_MODE_LINEAR",
46     "D2D1_BITMAP_INTERPOLATION_MODE_FORCE_DWORD",
47 ])
48
49 D2D1_DRAW_TEXT_OPTIONS = Enum("D2D1_DRAW_TEXT_OPTIONS", [
50     "D2D1_DRAW_TEXT_OPTIONS_NO_SNAP",
51     "D2D1_DRAW_TEXT_OPTIONS_NO_CLIP",
52     "D2D1_DRAW_TEXT_OPTIONS_NONE",
53     "D2D1_DRAW_TEXT_OPTIONS_FORCE_DWORD",
54 ])
55
56 D2D1_PIXEL_FORMAT = Struct("D2D1_PIXEL_FORMAT", [
57     (DXGI_FORMAT, "format"),
58     (D2D1_ALPHA_MODE, "alphaMode"),
59 ])
60
61 D2D1_POINT_2U = Alias("D2D1_POINT_2U", D2D_POINT_2U)
62 D2D1_POINT_2F = Alias("D2D1_POINT_2F", D2D_POINT_2F)
63 D2D1_RECT_F = Alias("D2D1_RECT_F", D2D_RECT_F)
64 D2D1_RECT_U = Alias("D2D1_RECT_U", D2D_RECT_U)
65 D2D1_SIZE_F = Alias("D2D1_SIZE_F", D2D_SIZE_F)
66 D2D1_SIZE_U = Alias("D2D1_SIZE_U", D2D_SIZE_U)
67 D2D1_COLOR_F = Alias("D2D1_COLOR_F", D2D_COLOR_F)
68 D2D1_MATRIX_3X2_F = Alias("D2D1_MATRIX_3X2_F", D2D_MATRIX_3X2_F)
69 D2D1_TAG = Alias("D2D1_TAG", UINT64)
70 D2D1_BITMAP_PROPERTIES = Struct("D2D1_BITMAP_PROPERTIES", [
71     (D2D1_PIXEL_FORMAT, "pixelFormat"),
72     (FLOAT, "dpiX"),
73     (FLOAT, "dpiY"),
74 ])
75
76 D2D1_GRADIENT_STOP = Struct("D2D1_GRADIENT_STOP", [
77     (FLOAT, "position"),
78     (D2D1_COLOR_F, "color"),
79 ])
80
81 D2D1_BRUSH_PROPERTIES = Struct("D2D1_BRUSH_PROPERTIES", [
82     (FLOAT, "opacity"),
83     (D2D1_MATRIX_3X2_F, "transform"),
84 ])
85
86 D2D1_BITMAP_BRUSH_PROPERTIES = Struct("D2D1_BITMAP_BRUSH_PROPERTIES", [
87     (D2D1_EXTEND_MODE, "extendModeX"),
88     (D2D1_EXTEND_MODE, "extendModeY"),
89     (D2D1_BITMAP_INTERPOLATION_MODE, "interpolationMode"),
90 ])
91
92 D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES = Struct("D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES", [
93     (D2D1_POINT_2F, "startPoint"),
94     (D2D1_POINT_2F, "endPoint"),
95 ])
96
97 D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES = Struct("D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES", [
98     (D2D1_POINT_2F, "center"),
99     (D2D1_POINT_2F, "gradientOriginOffset"),
100     (FLOAT, "radiusX"),
101     (FLOAT, "radiusY"),
102 ])
103
104 D2D1_ARC_SIZE = Enum("D2D1_ARC_SIZE", [
105     "D2D1_ARC_SIZE_SMALL",
106     "D2D1_ARC_SIZE_LARGE",
107     "D2D1_ARC_SIZE_FORCE_DWORD",
108 ])
109
110 D2D1_CAP_STYLE = Enum("D2D1_CAP_STYLE", [
111     "D2D1_CAP_STYLE_FLAT",
112     "D2D1_CAP_STYLE_SQUARE",
113     "D2D1_CAP_STYLE_ROUND",
114     "D2D1_CAP_STYLE_TRIANGLE",
115     "D2D1_CAP_STYLE_FORCE_DWORD",
116 ])
117
118 D2D1_DASH_STYLE = Enum("D2D1_DASH_STYLE", [
119     "D2D1_DASH_STYLE_SOLID",
120     "D2D1_DASH_STYLE_DASH",
121     "D2D1_DASH_STYLE_DOT",
122     "D2D1_DASH_STYLE_DASH_DOT",
123     "D2D1_DASH_STYLE_DASH_DOT_DOT",
124     "D2D1_DASH_STYLE_CUSTOM",
125     "D2D1_DASH_STYLE_FORCE_DWORD",
126 ])
127
128 D2D1_LINE_JOIN = Enum("D2D1_LINE_JOIN", [
129     "D2D1_LINE_JOIN_MITER",
130     "D2D1_LINE_JOIN_BEVEL",
131     "D2D1_LINE_JOIN_ROUND",
132     "D2D1_LINE_JOIN_MITER_OR_BEVEL",
133     "D2D1_LINE_JOIN_FORCE_DWORD",
134 ])
135
136 D2D1_COMBINE_MODE = Enum("D2D1_COMBINE_MODE", [
137     "D2D1_COMBINE_MODE_UNION",
138     "D2D1_COMBINE_MODE_INTERSECT",
139     "D2D1_COMBINE_MODE_XOR",
140     "D2D1_COMBINE_MODE_EXCLUDE",
141     "D2D1_COMBINE_MODE_FORCE_DWORD",
142 ])
143
144 D2D1_GEOMETRY_RELATION = Enum("D2D1_GEOMETRY_RELATION", [
145     "D2D1_GEOMETRY_RELATION_UNKNOWN",
146     "D2D1_GEOMETRY_RELATION_DISJOINT",
147     "D2D1_GEOMETRY_RELATION_IS_CONTAINED",
148     "D2D1_GEOMETRY_RELATION_CONTAINS",
149     "D2D1_GEOMETRY_RELATION_OVERLAP",
150     "D2D1_GEOMETRY_RELATION_FORCE_DWORD",
151 ])
152
153 D2D1_GEOMETRY_SIMPLIFICATION_OPTION = Enum("D2D1_GEOMETRY_SIMPLIFICATION_OPTION", [
154     "D2D1_GEOMETRY_SIMPLIFICATION_OPTION_CUBICS_AND_LINES",
155     "D2D1_GEOMETRY_SIMPLIFICATION_OPTION_LINES",
156     "D2D1_GEOMETRY_SIMPLIFICATION_OPTION_FORCE_DWORD",
157 ])
158
159 D2D1_FIGURE_BEGIN = Enum("D2D1_FIGURE_BEGIN", [
160     "D2D1_FIGURE_BEGIN_FILLED",
161     "D2D1_FIGURE_BEGIN_HOLLOW",
162     "D2D1_FIGURE_BEGIN_FORCE_DWORD",
163 ])
164
165 D2D1_FIGURE_END = Enum("D2D1_FIGURE_END", [
166     "D2D1_FIGURE_END_OPEN",
167     "D2D1_FIGURE_END_CLOSED",
168     "D2D1_FIGURE_END_FORCE_DWORD",
169 ])
170
171 D2D1_BEZIER_SEGMENT = Struct("D2D1_BEZIER_SEGMENT", [
172     (D2D1_POINT_2F, "point1"),
173     (D2D1_POINT_2F, "point2"),
174     (D2D1_POINT_2F, "point3"),
175 ])
176
177 D2D1_TRIANGLE = Struct("D2D1_TRIANGLE", [
178     (D2D1_POINT_2F, "point1"),
179     (D2D1_POINT_2F, "point2"),
180     (D2D1_POINT_2F, "point3"),
181 ])
182
183 D2D1_PATH_SEGMENT = Enum("D2D1_PATH_SEGMENT", [
184     "D2D1_PATH_SEGMENT_NONE",
185     "D2D1_PATH_SEGMENT_FORCE_UNSTROKED",
186     "D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN",
187     "D2D1_PATH_SEGMENT_FORCE_DWORD",
188 ])
189
190 D2D1_SWEEP_DIRECTION = Enum("D2D1_SWEEP_DIRECTION", [
191     "D2D1_SWEEP_DIRECTION_COUNTER_CLOCKWISE",
192     "D2D1_SWEEP_DIRECTION_CLOCKWISE",
193     "D2D1_SWEEP_DIRECTION_FORCE_DWORD",
194 ])
195
196 D2D1_FILL_MODE = Enum("D2D1_FILL_MODE", [
197     "D2D1_FILL_MODE_ALTERNATE",
198     "D2D1_FILL_MODE_WINDING",
199     "D2D1_FILL_MODE_FORCE_DWORD",
200 ])
201
202 D2D1_ARC_SEGMENT = Struct("D2D1_ARC_SEGMENT", [
203     (D2D1_POINT_2F, "point"),
204     (D2D1_SIZE_F, "size"),
205     (FLOAT, "rotationAngle"),
206     (D2D1_SWEEP_DIRECTION, "sweepDirection"),
207     (D2D1_ARC_SIZE, "arcSize"),
208 ])
209
210 D2D1_QUADRATIC_BEZIER_SEGMENT = Struct("D2D1_QUADRATIC_BEZIER_SEGMENT", [
211     (D2D1_POINT_2F, "point1"),
212     (D2D1_POINT_2F, "point2"),
213 ])
214
215 D2D1_ELLIPSE = Struct("D2D1_ELLIPSE", [
216     (D2D1_POINT_2F, "point"),
217     (FLOAT, "radiusX"),
218     (FLOAT, "radiusY"),
219 ])
220
221 D2D1_ROUNDED_RECT = Struct("D2D1_ROUNDED_RECT", [
222     (D2D1_RECT_F, "rect"),
223     (FLOAT, "radiusX"),
224     (FLOAT, "radiusY"),
225 ])
226
227 D2D1_STROKE_STYLE_PROPERTIES = Struct("D2D1_STROKE_STYLE_PROPERTIES", [
228     (D2D1_CAP_STYLE, "startCap"),
229     (D2D1_CAP_STYLE, "endCap"),
230     (D2D1_CAP_STYLE, "dashCap"),
231     (D2D1_LINE_JOIN, "lineJoin"),
232     (FLOAT, "miterLimit"),
233     (D2D1_DASH_STYLE, "dashStyle"),
234     (FLOAT, "dashOffset"),
235 ])
236
237 D2D1_LAYER_OPTIONS = Enum("D2D1_LAYER_OPTIONS", [
238     "D2D1_LAYER_OPTIONS_NONE",
239     "D2D1_LAYER_OPTIONS_INITIALIZE_FOR_CLEARTYPE",
240     "D2D1_LAYER_OPTIONS_FORCE_DWORD",
241 ])
242
243 D2D1_LAYER_PARAMETERS = Struct("D2D1_LAYER_PARAMETERS", [
244     (D2D1_RECT_F, "contentBounds"),
245     (OpaquePointer(ID2D1Geometry), "geometricMask"),
246     (D2D1_ANTIALIAS_MODE, "maskAntialiasMode"),
247     (D2D1_MATRIX_3X2_F, "maskTransform"),
248     (FLOAT, "opacity"),
249     (OpaquePointer(ID2D1Brush), "opacityBrush"),
250     (D2D1_LAYER_OPTIONS, "layerOptions"),
251 ])
252
253 D2D1_WINDOW_STATE = Enum("D2D1_WINDOW_STATE", [
254     "D2D1_WINDOW_STATE_NONE",
255     "D2D1_WINDOW_STATE_OCCLUDED",
256     "D2D1_WINDOW_STATE_FORCE_DWORD",
257 ])
258
259 D2D1_RENDER_TARGET_TYPE = Enum("D2D1_RENDER_TARGET_TYPE", [
260     "D2D1_RENDER_TARGET_TYPE_DEFAULT",
261     "D2D1_RENDER_TARGET_TYPE_SOFTWARE",
262     "D2D1_RENDER_TARGET_TYPE_HARDWARE",
263     "D2D1_RENDER_TARGET_TYPE_FORCE_DWORD",
264 ])
265
266 D2D1_FEATURE_LEVEL = Enum("D2D1_FEATURE_LEVEL", [
267     "D2D1_FEATURE_LEVEL_DEFAULT",
268     "D2D1_FEATURE_LEVEL_9",
269     "D2D1_FEATURE_LEVEL_10",
270     "D2D1_FEATURE_LEVEL_FORCE_DWORD",
271 ])
272
273 D2D1_RENDER_TARGET_USAGE = Enum("D2D1_RENDER_TARGET_USAGE", [
274     "D2D1_RENDER_TARGET_USAGE_NONE",
275     "D2D1_RENDER_TARGET_USAGE_FORCE_BITMAP_REMOTING",
276     "D2D1_RENDER_TARGET_USAGE_GDI_COMPATIBLE",
277     "D2D1_RENDER_TARGET_USAGE_FORCE_DWORD",
278 ])
279
280 D2D1_PRESENT_OPTIONS = Enum("D2D1_PRESENT_OPTIONS", [
281     "D2D1_PRESENT_OPTIONS_NONE",
282     "D2D1_PRESENT_OPTIONS_RETAIN_CONTENTS",
283     "D2D1_PRESENT_OPTIONS_IMMEDIATELY",
284     "D2D1_PRESENT_OPTIONS_FORCE_DWORD",
285 ])
286
287 D2D1_RENDER_TARGET_PROPERTIES = Struct("D2D1_RENDER_TARGET_PROPERTIES", [
288     (D2D1_RENDER_TARGET_TYPE, "type"),
289     (D2D1_PIXEL_FORMAT, "pixelFormat"),
290     (FLOAT, "dpiX"),
291     (FLOAT, "dpiY"),
292     (D2D1_RENDER_TARGET_USAGE, "usage"),
293     (D2D1_FEATURE_LEVEL, "minLevel"),
294 ])
295
296 D2D1_HWND_RENDER_TARGET_PROPERTIES = Struct("D2D1_HWND_RENDER_TARGET_PROPERTIES", [
297     (HWND, "hwnd"),
298     (D2D1_SIZE_U, "pixelSize"),
299     (D2D1_PRESENT_OPTIONS, "presentOptions"),
300 ])
301
302 D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS = Enum("D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS", [
303     "D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_NONE",
304     "D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_GDI_COMPATIBLE",
305     "D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS_FORCE_DWORD",
306 ])
307
308 D2D1_DRAWING_STATE_DESCRIPTION = Struct("D2D1_DRAWING_STATE_DESCRIPTION", [
309     (D2D1_ANTIALIAS_MODE, "antialiasMode"),
310     (D2D1_TEXT_ANTIALIAS_MODE, "textAntialiasMode"),
311     (D2D1_TAG, "tag1"),
312     (D2D1_TAG, "tag2"),
313     (D2D1_MATRIX_3X2_F, "transform"),
314 ])
315
316 D2D1_DC_INITIALIZE_MODE = Enum("D2D1_DC_INITIALIZE_MODE", [
317     "D2D1_DC_INITIALIZE_MODE_COPY",
318     "D2D1_DC_INITIALIZE_MODE_CLEAR",
319     "D2D1_DC_INITIALIZE_MODE_FORCE_DWORD",
320 ])
321
322 D2D1_DEBUG_LEVEL = Enum("D2D1_DEBUG_LEVEL", [
323     "D2D1_DEBUG_LEVEL_NONE",
324     "D2D1_DEBUG_LEVEL_ERROR",
325     "D2D1_DEBUG_LEVEL_WARNING",
326     "D2D1_DEBUG_LEVEL_INFORMATION",
327     "D2D1_DEBUG_LEVEL_FORCE_DWORD",
328 ])
329
330 D2D1_FACTORY_TYPE = Enum("D2D1_FACTORY_TYPE", [
331     "D2D1_FACTORY_TYPE_SINGLE_THREADED",
332     "D2D1_FACTORY_TYPE_MULTI_THREADED",
333     "D2D1_FACTORY_TYPE_FORCE_DWORD",
334 ])
335
336 D2D1_FACTORY_OPTIONS = Struct("D2D1_FACTORY_OPTIONS", [
337     (D2D1_DEBUG_LEVEL, "debugLevel"),
338 ])
339
340 ID2D1Resource = Interface("ID2D1Resource", IUnknown)
341 ID2D1Resource.methods += [
342     Method(Void, "GetFactory", [Out(OpaquePointer(OpaquePointer(ID2D1Factory)), "factory")], const=True),
343 ]
344
345 ID2D1Bitmap = Interface("ID2D1Bitmap", ID2D1Resource)
346 ID2D1Bitmap.methods += [
347     Method(D2D1_SIZE_F, "GetSize", [], const=True),
348     Method(D2D1_SIZE_U, "GetPixelSize", [], const=True),
349     Method(D2D1_PIXEL_FORMAT, "GetPixelFormat", [], const=True),
350     Method(Void, "GetDpi", [Out(OpaquePointer(FLOAT), "dpiX"), Out(OpaquePointer(FLOAT), "dpiY")], const=True),
351     Method(HRESULT, "CopyFromBitmap", [(OpaquePointer(Const(D2D1_POINT_2U)), "destPoint"), (OpaquePointer(ID2D1Bitmap), "bitmap"), (OpaquePointer(Const(D2D1_RECT_U)), "srcRect")]),
352     Method(HRESULT, "CopyFromRenderTarget", [(OpaquePointer(Const(D2D1_POINT_2U)), "destPoint"), (OpaquePointer(ID2D1RenderTarget), "renderTarget"), (OpaquePointer(Const(D2D1_RECT_U)), "srcRect")]),
353     Method(HRESULT, "CopyFromMemory", [(OpaquePointer(Const(D2D1_RECT_U)), "dstRect"), (OpaquePointer(Const(Void)), "srcData"), (UINT32, "pitch")]),
354 ]
355
356 ID2D1GradientStopCollection = Interface("ID2D1GradientStopCollection", ID2D1Resource)
357 ID2D1GradientStopCollection.methods += [
358     Method(UINT32, "GetGradientStopCount", [], const=True),
359     Method(Void, "GetGradientStops", [Out(OpaquePointer(D2D1_GRADIENT_STOP), "gradientStops"), (UINT, "gradientStopsCount")], const=True),
360     Method(D2D1_GAMMA, "GetColorInterpolationGamma", [], const=True),
361     Method(D2D1_EXTEND_MODE, "GetExtendMode", [], const=True),
362 ]
363
364 ID2D1Brush = Interface("ID2D1Brush", ID2D1Resource)
365 ID2D1Brush.methods += [
366     Method(Void, "SetOpacity", [(FLOAT, "opacity")]),
367     Method(Void, "SetTransform", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "transform")]),
368     Method(FLOAT, "GetOpacity", [], const=True),
369     Method(Void, "GetTransform", [Out(OpaquePointer(D2D1_MATRIX_3X2_F), "transform")], const=True),
370 ]
371
372 ID2D1BitmapBrush = Interface("ID2D1BitmapBrush", ID2D1Brush)
373 ID2D1BitmapBrush.methods += [
374     Method(Void, "SetExtendModeX", [(D2D1_EXTEND_MODE, "extendModeX")]),
375     Method(Void, "SetExtendModeY", [(D2D1_EXTEND_MODE, "extendModeY")]),
376     Method(Void, "SetInterpolationMode", [(D2D1_BITMAP_INTERPOLATION_MODE, "interpolationMode")]),
377     Method(Void, "SetBitmap", [(OpaquePointer(ID2D1Bitmap), "bitmap")]),
378     Method(D2D1_EXTEND_MODE, "GetExtendModeX", [], const=True),
379     Method(D2D1_EXTEND_MODE, "GetExtendModeY", [], const=True),
380     Method(D2D1_BITMAP_INTERPOLATION_MODE, "GetInterpolationMode", [], const=True),
381     Method(Void, "GetBitmap", [Out(OpaquePointer(OpaquePointer(ID2D1Bitmap)), "bitmap")], const=True),
382 ]
383
384 ID2D1SolidColorBrush = Interface("ID2D1SolidColorBrush", ID2D1Brush)
385 ID2D1SolidColorBrush.methods += [
386     Method(Void, "SetColor", [(OpaquePointer(Const(D2D1_COLOR_F)), "color")]),
387     Method(D2D1_COLOR_F, "GetColor", [], const=True),
388 ]
389
390 ID2D1LinearGradientBrush = Interface("ID2D1LinearGradientBrush", ID2D1Brush)
391 ID2D1LinearGradientBrush.methods += [
392     Method(Void, "SetStartPoint", [(D2D1_POINT_2F, "startPoint")]),
393     Method(Void, "SetEndPoint", [(D2D1_POINT_2F, "endPoint")]),
394     Method(D2D1_POINT_2F, "GetStartPoint", [], const=True),
395     Method(D2D1_POINT_2F, "GetEndPoint", [], const=True),
396     Method(Void, "GetGradientStopCollection", [Out(OpaquePointer(OpaquePointer(ID2D1GradientStopCollection)), "gradientStopCollection")], const=True),
397 ]
398
399 ID2D1RadialGradientBrush = Interface("ID2D1RadialGradientBrush", ID2D1Brush)
400 ID2D1RadialGradientBrush.methods += [
401     Method(Void, "SetCenter", [(D2D1_POINT_2F, "center")]),
402     Method(Void, "SetGradientOriginOffset", [(D2D1_POINT_2F, "gradientOriginOffset")]),
403     Method(Void, "SetRadiusX", [(FLOAT, "radiusX")]),
404     Method(Void, "SetRadiusY", [(FLOAT, "radiusY")]),
405     Method(D2D1_POINT_2F, "GetCenter", [], const=True),
406     Method(D2D1_POINT_2F, "GetGradientOriginOffset", [], const=True),
407     Method(FLOAT, "GetRadiusX", [], const=True),
408     Method(FLOAT, "GetRadiusY", [], const=True),
409     Method(Void, "GetGradientStopCollection", [Out(OpaquePointer(OpaquePointer(ID2D1GradientStopCollection)), "gradientStopCollection")], const=True),
410 ]
411
412 ID2D1StrokeStyle = Interface("ID2D1StrokeStyle", ID2D1Resource)
413 ID2D1StrokeStyle.methods += [
414     Method(D2D1_CAP_STYLE, "GetStartCap", [], const=True),
415     Method(D2D1_CAP_STYLE, "GetEndCap", [], const=True),
416     Method(D2D1_CAP_STYLE, "GetDashCap", [], const=True),
417     Method(FLOAT, "GetMiterLimit", [], const=True),
418     Method(D2D1_LINE_JOIN, "GetLineJoin", [], const=True),
419     Method(FLOAT, "GetDashOffset", [], const=True),
420     Method(D2D1_DASH_STYLE, "GetDashStyle", [], const=True),
421     Method(UINT32, "GetDashesCount", [], const=True),
422     Method(Void, "GetDashes", [Out(OpaquePointer(FLOAT), "dashes"), (UINT, "dashesCount")], const=True),
423 ]
424
425 ID2D1Geometry = Interface("ID2D1Geometry", ID2D1Resource)
426 ID2D1Geometry.methods += [
427     Method(HRESULT, "GetBounds", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), Out(OpaquePointer(D2D1_RECT_F), "bounds")], const=True),
428     Method(HRESULT, "GetWidenedBounds", [(FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(D2D1_RECT_F), "bounds")], const=True),
429     Method(HRESULT, "StrokeContainsPoint", [(D2D1_POINT_2F, "point"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(BOOL), "contains")], const=True),
430     Method(HRESULT, "FillContainsPoint", [(D2D1_POINT_2F, "point"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(BOOL), "contains")], const=True),
431     Method(HRESULT, "CompareWithGeometry", [(OpaquePointer(ID2D1Geometry), "inputGeometry"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "inputGeometryTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(D2D1_GEOMETRY_RELATION), "relation")], const=True),
432     Method(HRESULT, "Simplify", [(D2D1_GEOMETRY_SIMPLIFICATION_OPTION, "simplificationOption"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), (OpaquePointer(ID2D1SimplifiedGeometrySink), "geometrySink")], const=True),
433     Method(HRESULT, "Tessellate", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), (OpaquePointer(ID2D1TessellationSink), "tessellationSink")], const=True),
434     Method(HRESULT, "CombineWithGeometry", [(OpaquePointer(ID2D1Geometry), "inputGeometry"), (D2D1_COMBINE_MODE, "combineMode"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "inputGeometryTransform"), (FLOAT, "flatteningTolerance"), (OpaquePointer(ID2D1SimplifiedGeometrySink), "geometrySink")], const=True),
435     Method(HRESULT, "Outline", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), (OpaquePointer(ID2D1SimplifiedGeometrySink), "geometrySink")], const=True),
436     Method(HRESULT, "ComputeArea", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(FLOAT), "area")], const=True),
437     Method(HRESULT, "ComputeLength", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(FLOAT), "length")], const=True),
438     Method(HRESULT, "ComputePointAtLength", [(FLOAT, "length"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), Out(OpaquePointer(D2D1_POINT_2F), "point"), Out(OpaquePointer(D2D1_POINT_2F), "unitTangentVector")], const=True),
439     Method(HRESULT, "Widen", [(FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "worldTransform"), (FLOAT, "flatteningTolerance"), (OpaquePointer(ID2D1SimplifiedGeometrySink), "geometrySink")], const=True),
440 ]
441
442 ID2D1RectangleGeometry = Interface("ID2D1RectangleGeometry", ID2D1Geometry)
443 ID2D1RectangleGeometry.methods += [
444     Method(Void, "GetRect", [Out(OpaquePointer(D2D1_RECT_F), "rect")], const=True),
445 ]
446
447 ID2D1RoundedRectangleGeometry = Interface("ID2D1RoundedRectangleGeometry", ID2D1Geometry)
448 ID2D1RoundedRectangleGeometry.methods += [
449     Method(Void, "GetRoundedRect", [Out(OpaquePointer(D2D1_ROUNDED_RECT), "roundedRect")], const=True),
450 ]
451
452 ID2D1EllipseGeometry = Interface("ID2D1EllipseGeometry", ID2D1Geometry)
453 ID2D1EllipseGeometry.methods += [
454     Method(Void, "GetEllipse", [Out(OpaquePointer(D2D1_ELLIPSE), "ellipse")], const=True),
455 ]
456
457 ID2D1GeometryGroup = Interface("ID2D1GeometryGroup", ID2D1Geometry)
458 ID2D1GeometryGroup.methods += [
459     Method(D2D1_FILL_MODE, "GetFillMode", [], const=True),
460     Method(UINT32, "GetSourceGeometryCount", [], const=True),
461     Method(Void, "GetSourceGeometries", [Out(OpaquePointer(OpaquePointer(ID2D1Geometry)), "geometries"), (UINT, "geometriesCount")], const=True),
462 ]
463
464 ID2D1TransformedGeometry = Interface("ID2D1TransformedGeometry", ID2D1Geometry)
465 ID2D1TransformedGeometry.methods += [
466     Method(Void, "GetSourceGeometry", [Out(OpaquePointer(OpaquePointer(ID2D1Geometry)), "sourceGeometry")], const=True),
467     Method(Void, "GetTransform", [Out(OpaquePointer(D2D1_MATRIX_3X2_F), "transform")], const=True),
468 ]
469
470 ID2D1SimplifiedGeometrySink = Interface("ID2D1SimplifiedGeometrySink", IUnknown)
471 ID2D1SimplifiedGeometrySink.methods += [
472     Method(Void, "SetFillMode", [(D2D1_FILL_MODE, "fillMode")]),
473     Method(Void, "SetSegmentFlags", [(D2D1_PATH_SEGMENT, "vertexFlags")]),
474     Method(Void, "BeginFigure", [(D2D1_POINT_2F, "startPoint"), (D2D1_FIGURE_BEGIN, "figureBegin")]),
475     Method(Void, "AddLines", [(OpaquePointer(Const(D2D1_POINT_2F)), "points"), (UINT, "pointsCount")]),
476     Method(Void, "AddBeziers", [(OpaquePointer(Const(D2D1_BEZIER_SEGMENT)), "beziers"), (UINT, "beziersCount")]),
477     Method(Void, "EndFigure", [(D2D1_FIGURE_END, "figureEnd")]),
478     Method(HRESULT, "Close", []),
479 ]
480
481 ID2D1GeometrySink = Interface("ID2D1GeometrySink", ID2D1SimplifiedGeometrySink)
482 ID2D1GeometrySink.methods += [
483     Method(Void, "AddLine", [(D2D1_POINT_2F, "point")]),
484     Method(Void, "AddBezier", [(OpaquePointer(Const(D2D1_BEZIER_SEGMENT)), "bezier")]),
485     Method(Void, "AddQuadraticBezier", [(OpaquePointer(Const(D2D1_QUADRATIC_BEZIER_SEGMENT)), "bezier")]),
486     Method(Void, "AddQuadraticBeziers", [(OpaquePointer(Const(D2D1_QUADRATIC_BEZIER_SEGMENT)), "beziers"), (UINT, "beziersCount")]),
487     Method(Void, "AddArc", [(OpaquePointer(Const(D2D1_ARC_SEGMENT)), "arc")]),
488 ]
489
490 ID2D1TessellationSink = Interface("ID2D1TessellationSink", IUnknown)
491 ID2D1TessellationSink.methods += [
492     Method(Void, "AddTriangles", [(OpaquePointer(Const(D2D1_TRIANGLE)), "triangles"), (UINT, "trianglesCount")]),
493     Method(HRESULT, "Close", []),
494 ]
495
496 ID2D1PathGeometry = Interface("ID2D1PathGeometry", ID2D1Geometry)
497 ID2D1PathGeometry.methods += [
498     Method(HRESULT, "Open", [Out(OpaquePointer(OpaquePointer(ID2D1GeometrySink)), "geometrySink")]),
499     Method(HRESULT, "Stream", [(OpaquePointer(ID2D1GeometrySink), "geometrySink")], const=True),
500     Method(HRESULT, "GetSegmentCount", [Out(OpaquePointer(UINT32), "count")], const=True),
501     Method(HRESULT, "GetFigureCount", [Out(OpaquePointer(UINT32), "count")], const=True),
502 ]
503
504 ID2D1Mesh = Interface("ID2D1Mesh", ID2D1Resource)
505 ID2D1Mesh.methods += [
506     Method(HRESULT, "Open", [Out(OpaquePointer(OpaquePointer(ID2D1TessellationSink)), "tessellationSink")]),
507 ]
508
509 ID2D1Layer = Interface("ID2D1Layer", ID2D1Resource)
510 ID2D1Layer.methods += [
511     Method(D2D1_SIZE_F, "GetSize", [], const=True),
512 ]
513
514 ID2D1DrawingStateBlock = Interface("ID2D1DrawingStateBlock", ID2D1Resource)
515 ID2D1DrawingStateBlock.methods += [
516     Method(Void, "GetDescription", [Out(OpaquePointer(D2D1_DRAWING_STATE_DESCRIPTION), "stateDescription")], const=True),
517     Method(Void, "SetDescription", [(OpaquePointer(Const(D2D1_DRAWING_STATE_DESCRIPTION)), "stateDescription")]),
518     Method(Void, "SetTextRenderingParams", [(OpaquePointer(IDWriteRenderingParams), "textRenderingParams")]),
519     Method(Void, "GetTextRenderingParams", [Out(OpaquePointer(OpaquePointer(IDWriteRenderingParams)), "textRenderingParams")], const=True),
520 ]
521
522 ID2D1RenderTarget = Interface("ID2D1RenderTarget", ID2D1Resource)
523 ID2D1RenderTarget.methods += [
524     Method(HRESULT, "CreateBitmap", [(D2D1_SIZE_U, "size"), (OpaquePointer(Const(Void)), "srcData"), (UINT32, "pitch"), (OpaquePointer(Const(D2D1_BITMAP_PROPERTIES)), "bitmapProperties"), Out(OpaquePointer(OpaquePointer(ID2D1Bitmap)), "bitmap")]),
525     Method(HRESULT, "CreateBitmapFromWicBitmap", [(OpaquePointer(IWICBitmapSource), "wicBitmapSource"), (OpaquePointer(Const(D2D1_BITMAP_PROPERTIES)), "bitmapProperties"), Out(OpaquePointer(OpaquePointer(ID2D1Bitmap)), "bitmap")]),
526     Method(HRESULT, "CreateSharedBitmap", [(REFIID, "riid"), Out(OpaquePointer(Void), "data"), (OpaquePointer(Const(D2D1_BITMAP_PROPERTIES)), "bitmapProperties"), Out(OpaquePointer(OpaquePointer(ID2D1Bitmap)), "bitmap")]),
527     Method(HRESULT, "CreateBitmapBrush", [(OpaquePointer(ID2D1Bitmap), "bitmap"), (OpaquePointer(Const(D2D1_BITMAP_BRUSH_PROPERTIES)), "bitmapBrushProperties"), (OpaquePointer(Const(D2D1_BRUSH_PROPERTIES)), "brushProperties"), Out(OpaquePointer(OpaquePointer(ID2D1BitmapBrush)), "bitmapBrush")]),
528     Method(HRESULT, "CreateSolidColorBrush", [(OpaquePointer(Const(D2D1_COLOR_F)), "color"), (OpaquePointer(Const(D2D1_BRUSH_PROPERTIES)), "brushProperties"), Out(OpaquePointer(OpaquePointer(ID2D1SolidColorBrush)), "solidColorBrush")]),
529     Method(HRESULT, "CreateGradientStopCollection", [(OpaquePointer(Const(D2D1_GRADIENT_STOP)), "gradientStops"), (UINT, "gradientStopsCount"), (D2D1_GAMMA, "colorInterpolationGamma"), (D2D1_EXTEND_MODE, "extendMode"), Out(OpaquePointer(OpaquePointer(ID2D1GradientStopCollection)), "gradientStopCollection")]),
530     Method(HRESULT, "CreateLinearGradientBrush", [(OpaquePointer(Const(D2D1_LINEAR_GRADIENT_BRUSH_PROPERTIES)), "linearGradientBrushProperties"), (OpaquePointer(Const(D2D1_BRUSH_PROPERTIES)), "brushProperties"), (OpaquePointer(ID2D1GradientStopCollection), "gradientStopCollection"), Out(OpaquePointer(OpaquePointer(ID2D1LinearGradientBrush)), "linearGradientBrush")]),
531     Method(HRESULT, "CreateRadialGradientBrush", [(OpaquePointer(Const(D2D1_RADIAL_GRADIENT_BRUSH_PROPERTIES)), "radialGradientBrushProperties"), (OpaquePointer(Const(D2D1_BRUSH_PROPERTIES)), "brushProperties"), (OpaquePointer(ID2D1GradientStopCollection), "gradientStopCollection"), Out(OpaquePointer(OpaquePointer(ID2D1RadialGradientBrush)), "radialGradientBrush")]),
532     Method(HRESULT, "CreateCompatibleRenderTarget", [(OpaquePointer(Const(D2D1_SIZE_F)), "desiredSize"), (OpaquePointer(Const(D2D1_SIZE_U)), "desiredPixelSize"), (OpaquePointer(Const(D2D1_PIXEL_FORMAT)), "desiredFormat"), (D2D1_COMPATIBLE_RENDER_TARGET_OPTIONS, "options"), Out(OpaquePointer(OpaquePointer(ID2D1BitmapRenderTarget)), "bitmapRenderTarget")]),
533     Method(HRESULT, "CreateLayer", [(OpaquePointer(Const(D2D1_SIZE_F)), "size"), Out(OpaquePointer(OpaquePointer(ID2D1Layer)), "layer")]),
534     Method(HRESULT, "CreateMesh", [Out(OpaquePointer(OpaquePointer(ID2D1Mesh)), "mesh")]),
535     Method(Void, "DrawLine", [(D2D1_POINT_2F, "point0"), (D2D1_POINT_2F, "point1"), (OpaquePointer(ID2D1Brush), "brush"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle")]),
536     Method(Void, "DrawRectangle", [(OpaquePointer(Const(D2D1_RECT_F)), "rect"), (OpaquePointer(ID2D1Brush), "brush"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle")]),
537     Method(Void, "FillRectangle", [(OpaquePointer(Const(D2D1_RECT_F)), "rect"), (OpaquePointer(ID2D1Brush), "brush")]),
538     Method(Void, "DrawRoundedRectangle", [(OpaquePointer(Const(D2D1_ROUNDED_RECT)), "roundedRect"), (OpaquePointer(ID2D1Brush), "brush"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle")]),
539     Method(Void, "FillRoundedRectangle", [(OpaquePointer(Const(D2D1_ROUNDED_RECT)), "roundedRect"), (OpaquePointer(ID2D1Brush), "brush")]),
540     Method(Void, "DrawEllipse", [(OpaquePointer(Const(D2D1_ELLIPSE)), "ellipse"), (OpaquePointer(ID2D1Brush), "brush"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle")]),
541     Method(Void, "FillEllipse", [(OpaquePointer(Const(D2D1_ELLIPSE)), "ellipse"), (OpaquePointer(ID2D1Brush), "brush")]),
542     Method(Void, "DrawGeometry", [(OpaquePointer(ID2D1Geometry), "geometry"), (OpaquePointer(ID2D1Brush), "brush"), (FLOAT, "strokeWidth"), (OpaquePointer(ID2D1StrokeStyle), "strokeStyle")]),
543     Method(Void, "FillGeometry", [(OpaquePointer(ID2D1Geometry), "geometry"), (OpaquePointer(ID2D1Brush), "brush"), (OpaquePointer(ID2D1Brush), "opacityBrush")]),
544     Method(Void, "FillMesh", [(OpaquePointer(ID2D1Mesh), "mesh"), (OpaquePointer(ID2D1Brush), "brush")]),
545     Method(Void, "FillOpacityMask", [(OpaquePointer(ID2D1Bitmap), "opacityMask"), (OpaquePointer(ID2D1Brush), "brush"), (D2D1_OPACITY_MASK_CONTENT, "content"), (OpaquePointer(Const(D2D1_RECT_F)), "destinationRectangle"), (OpaquePointer(Const(D2D1_RECT_F)), "sourceRectangle")]),
546     Method(Void, "DrawBitmap", [(OpaquePointer(ID2D1Bitmap), "bitmap"), (OpaquePointer(Const(D2D1_RECT_F)), "destinationRectangle"), (FLOAT, "opacity"), (D2D1_BITMAP_INTERPOLATION_MODE, "interpolationMode"), (OpaquePointer(Const(D2D1_RECT_F)), "sourceRectangle")]),
547     Method(Void, "DrawText", [(OpaquePointer(Const(WCHAR)), "string"), (UINT, "stringLength"), (OpaquePointer(IDWriteTextFormat), "textFormat"), (OpaquePointer(Const(D2D1_RECT_F)), "layoutRect"), (OpaquePointer(ID2D1Brush), "defaultForegroundBrush"), (D2D1_DRAW_TEXT_OPTIONS, "options"), (DWRITE_MEASURING_MODE, "measuringMode")]),
548     Method(Void, "DrawTextLayout", [(D2D1_POINT_2F, "origin"), (OpaquePointer(IDWriteTextLayout), "textLayout"), (OpaquePointer(ID2D1Brush), "defaultForegroundBrush"), (D2D1_DRAW_TEXT_OPTIONS, "options")]),
549     Method(Void, "DrawGlyphRun", [(D2D1_POINT_2F, "baselineOrigin"), (OpaquePointer(Const(DWRITE_GLYPH_RUN)), "glyphRun"), (OpaquePointer(ID2D1Brush), "foregroundBrush"), (DWRITE_MEASURING_MODE, "measuringMode")]),
550     Method(Void, "SetTransform", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "transform")]),
551     Method(Void, "GetTransform", [Out(OpaquePointer(D2D1_MATRIX_3X2_F), "transform")], const=True),
552     Method(Void, "SetAntialiasMode", [(D2D1_ANTIALIAS_MODE, "antialiasMode")]),
553     Method(D2D1_ANTIALIAS_MODE, "GetAntialiasMode", [], const=True),
554     Method(Void, "SetTextAntialiasMode", [(D2D1_TEXT_ANTIALIAS_MODE, "textAntialiasMode")]),
555     Method(D2D1_TEXT_ANTIALIAS_MODE, "GetTextAntialiasMode", [], const=True),
556     Method(Void, "SetTextRenderingParams", [(OpaquePointer(IDWriteRenderingParams), "textRenderingParams")]),
557     Method(Void, "GetTextRenderingParams", [Out(OpaquePointer(OpaquePointer(IDWriteRenderingParams)), "textRenderingParams")], const=True),
558     Method(Void, "SetTags", [(D2D1_TAG, "tag1"), (D2D1_TAG, "tag2")]),
559     Method(Void, "GetTags", [Out(OpaquePointer(D2D1_TAG), "tag1"), Out(OpaquePointer(D2D1_TAG), "tag2")], const=True),
560     Method(Void, "PushLayer", [(OpaquePointer(Const(D2D1_LAYER_PARAMETERS)), "layerParameters"), (OpaquePointer(ID2D1Layer), "layer")]),
561     Method(Void, "PopLayer", []),
562     Method(HRESULT, "Flush", [Out(OpaquePointer(D2D1_TAG), "tag1"), Out(OpaquePointer(D2D1_TAG), "tag2")]),
563     Method(Void, "SaveDrawingState", [Out(OpaquePointer(ID2D1DrawingStateBlock), "drawingStateBlock")], const=True),
564     Method(Void, "RestoreDrawingState", [(OpaquePointer(ID2D1DrawingStateBlock), "drawingStateBlock")]),
565     Method(Void, "PushAxisAlignedClip", [(OpaquePointer(Const(D2D1_RECT_F)), "clipRect"), (D2D1_ANTIALIAS_MODE, "antialiasMode")]),
566     Method(Void, "PopAxisAlignedClip", []),
567     Method(Void, "Clear", [(OpaquePointer(Const(D2D1_COLOR_F)), "clearColor")]),
568     Method(Void, "BeginDraw", []),
569     Method(HRESULT, "EndDraw", [Out(OpaquePointer(D2D1_TAG), "tag1"), Out(OpaquePointer(D2D1_TAG), "tag2")]),
570     Method(D2D1_PIXEL_FORMAT, "GetPixelFormat", [], const=True),
571     Method(Void, "SetDpi", [(FLOAT, "dpiX"), (FLOAT, "dpiY")]),
572     Method(Void, "GetDpi", [Out(OpaquePointer(FLOAT), "dpiX"), Out(OpaquePointer(FLOAT), "dpiY")], const=True),
573     Method(D2D1_SIZE_F, "GetSize", [], const=True),
574     Method(D2D1_SIZE_U, "GetPixelSize", [], const=True),
575     Method(UINT32, "GetMaximumBitmapSize", [], const=True),
576     Method(BOOL, "IsSupported", [(OpaquePointer(Const(D2D1_RENDER_TARGET_PROPERTIES)), "renderTargetProperties")], const=True),
577 ]
578
579 ID2D1BitmapRenderTarget = Interface("ID2D1BitmapRenderTarget", ID2D1RenderTarget)
580 ID2D1BitmapRenderTarget.methods += [
581     Method(HRESULT, "GetBitmap", [Out(OpaquePointer(OpaquePointer(ID2D1Bitmap)), "bitmap")]),
582 ]
583
584 ID2D1HwndRenderTarget = Interface("ID2D1HwndRenderTarget", ID2D1RenderTarget)
585 ID2D1HwndRenderTarget.methods += [
586     Method(D2D1_WINDOW_STATE, "CheckWindowState", []),
587     Method(HRESULT, "Resize", [(OpaquePointer(Const(D2D1_SIZE_U)), "pixelSize")]),
588     Method(HWND, "GetHwnd", [], const=True),
589 ]
590
591 ID2D1GdiInteropRenderTarget = Interface("ID2D1GdiInteropRenderTarget", IUnknown)
592 ID2D1GdiInteropRenderTarget.methods += [
593     Method(HRESULT, "GetDC", [(D2D1_DC_INITIALIZE_MODE, "mode"), Out(OpaquePointer(HDC), "hdc")]),
594     Method(HRESULT, "ReleaseDC", [(OpaquePointer(Const(RECT)), "update")]),
595 ]
596
597 ID2D1DCRenderTarget = Interface("ID2D1DCRenderTarget", ID2D1RenderTarget)
598 ID2D1DCRenderTarget.methods += [
599     Method(HRESULT, "BindDC", [(Const(HDC), "hDC"), (OpaquePointer(Const(RECT)), "pSubRect")]),
600 ]
601
602 ID2D1Factory = Interface("ID2D1Factory", IUnknown)
603 ID2D1Factory.methods += [
604     Method(HRESULT, "ReloadSystemMetrics", []),
605     Method(Void, "GetDesktopDpi", [Out(OpaquePointer(FLOAT), "dpiX"), Out(OpaquePointer(FLOAT), "dpiY")]),
606     Method(HRESULT, "CreateRectangleGeometry", [(OpaquePointer(Const(D2D1_RECT_F)), "rectangle"), Out(OpaquePointer(OpaquePointer(ID2D1RectangleGeometry)), "rectangleGeometry")]),
607     Method(HRESULT, "CreateRoundedRectangleGeometry", [(OpaquePointer(Const(D2D1_ROUNDED_RECT)), "roundedRectangle"), Out(OpaquePointer(OpaquePointer(ID2D1RoundedRectangleGeometry)), "roundedRectangleGeometry")]),
608     Method(HRESULT, "CreateEllipseGeometry", [(OpaquePointer(Const(D2D1_ELLIPSE)), "ellipse"), Out(OpaquePointer(OpaquePointer(ID2D1EllipseGeometry)), "ellipseGeometry")]),
609     Method(HRESULT, "CreateGeometryGroup", [(D2D1_FILL_MODE, "fillMode"), (OpaquePointer(OpaquePointer(ID2D1Geometry)), "geometries"), (UINT, "geometriesCount"), Out(OpaquePointer(OpaquePointer(ID2D1GeometryGroup)), "geometryGroup")]),
610     Method(HRESULT, "CreateTransformedGeometry", [(OpaquePointer(ID2D1Geometry), "sourceGeometry"), (OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "transform"), Out(OpaquePointer(OpaquePointer(ID2D1TransformedGeometry)), "transformedGeometry")]),
611     Method(HRESULT, "CreatePathGeometry", [Out(OpaquePointer(OpaquePointer(ID2D1PathGeometry)), "pathGeometry")]),
612     Method(HRESULT, "CreateStrokeStyle", [(OpaquePointer(Const(D2D1_STROKE_STYLE_PROPERTIES)), "strokeStyleProperties"), (OpaquePointer(Const(FLOAT)), "dashes"), (UINT, "dashesCount"), Out(OpaquePointer(OpaquePointer(ID2D1StrokeStyle)), "strokeStyle")]),
613     Method(HRESULT, "CreateDrawingStateBlock", [(OpaquePointer(Const(D2D1_DRAWING_STATE_DESCRIPTION)), "drawingStateDescription"), (OpaquePointer(IDWriteRenderingParams), "textRenderingParams"), Out(OpaquePointer(OpaquePointer(ID2D1DrawingStateBlock)), "drawingStateBlock")]),
614     Method(HRESULT, "CreateWicBitmapRenderTarget", [(OpaquePointer(IWICBitmap), "target"), (OpaquePointer(Const(D2D1_RENDER_TARGET_PROPERTIES)), "renderTargetProperties"), Out(OpaquePointer(OpaquePointer(ID2D1RenderTarget)), "renderTarget")]),
615     Method(HRESULT, "CreateHwndRenderTarget", [(OpaquePointer(Const(D2D1_RENDER_TARGET_PROPERTIES)), "renderTargetProperties"), (OpaquePointer(Const(D2D1_HWND_RENDER_TARGET_PROPERTIES)), "hwndRenderTargetProperties"), Out(OpaquePointer(OpaquePointer(ID2D1HwndRenderTarget)), "hwndRenderTarget")]),
616     Method(HRESULT, "CreateDxgiSurfaceRenderTarget", [(OpaquePointer(IDXGISurface), "dxgiSurface"), (OpaquePointer(Const(D2D1_RENDER_TARGET_PROPERTIES)), "renderTargetProperties"), Out(OpaquePointer(OpaquePointer(ID2D1RenderTarget)), "renderTarget")]),
617     Method(HRESULT, "CreateDCRenderTarget", [(OpaquePointer(Const(D2D1_RENDER_TARGET_PROPERTIES)), "renderTargetProperties"), Out(OpaquePointer(OpaquePointer(ID2D1DCRenderTarget)), "dcRenderTarget")]),
618 ]
619
620     StdFunction(HRESULT, "D2D1CreateFactory", [(D2D1_FACTORY_TYPE, "factoryType"), (REFIID, "riid"), (OpaquePointer(Const(D2D1_FACTORY_OPTIONS)), "pFactoryOptions"), Out(OpaquePointer(OpaquePointer(Void)), "ppIFactory")]),
621     StdFunction(Void, "D2D1MakeRotateMatrix", [(FLOAT, "angle"), (D2D1_POINT_2F, "center"), Out(OpaquePointer(D2D1_MATRIX_3X2_F), "matrix")]),
622     StdFunction(Void, "D2D1MakeSkewMatrix", [(FLOAT, "angleX"), (FLOAT, "angleY"), (D2D1_POINT_2F, "center"), Out(OpaquePointer(D2D1_MATRIX_3X2_F), "matrix")]),
623     StdFunction(BOOL, "D2D1IsMatrixInvertible", [(OpaquePointer(Const(D2D1_MATRIX_3X2_F)), "matrix")]),
624     StdFunction(BOOL, "D2D1InvertMatrix", [Out(OpaquePointer(D2D1_MATRIX_3X2_F), "matrix")]),