uxtheme: Place DrawThemeBackgroundEx() at ordinal 47.
[wine.git] / include / d2d1_1.idl
blobb8af40cc9a85f7cd22704591ac102e4d173e9907
1 /*
2 * Copyright 2017 Lucian Poston
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "d2d1.idl";
20 import "d2d1effects.idl";
22 interface ID2D1DeviceContext;
23 interface ID2D1Properties;
24 interface IPrintDocumentPackageTarget;
25 interface ID2D1PrintControl;
26 interface IWICImagingFactory;
27 interface IWICColorContext;
28 interface ID2D1ColorContext;
29 interface ID2D1Effect;
30 interface ID2D1BitmapBrush1;
32 cpp_quote("#ifndef __dwrite_h__")
33 /* already defined in dwrite.h but needed for WIDL */
34 typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION;
35 cpp_quote("#endif /* __dwrite_h__ */")
37 typedef enum D2D1_DEVICE_CONTEXT_OPTIONS
39 D2D1_DEVICE_CONTEXT_OPTIONS_NONE = 0x0,
40 D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS = 0x1,
41 D2D1_DEVICE_CONTEXT_OPTIONS_FORCE_DWORD = 0xffffffff,
42 } D2D1_DEVICE_CONTEXT_OPTIONS;
44 typedef enum D2D1_STROKE_TRANSFORM_TYPE
46 D2D1_STROKE_TRANSFORM_TYPE_NORMAL = 0x0,
47 D2D1_STROKE_TRANSFORM_TYPE_FIXED = 0x1,
48 D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE = 0x2,
49 D2D1_STROKE_TRANSFORM_TYPE_FORCE_DWORD = 0xffffffff,
50 } D2D1_STROKE_TRANSFORM_TYPE;
52 typedef enum D2D1_PRIMITIVE_BLEND
54 D2D1_PRIMITIVE_BLEND_SOURCE_OVER = 0x0,
55 D2D1_PRIMITIVE_BLEND_COPY = 0x1,
56 D2D1_PRIMITIVE_BLEND_MIN = 0x2,
57 D2D1_PRIMITIVE_BLEND_ADD = 0x3,
58 D2D1_PRIMITIVE_BLEND_MAX = 0x4,
59 D2D1_PRIMITIVE_BLEND_FORCE_DWORD = 0xffffffff,
60 } D2D1_PRIMITIVE_BLEND;
62 typedef enum D2D1_UNIT_MODE
64 D2D1_UNIT_MODE_DIPS = 0x0,
65 D2D1_UNIT_MODE_PIXELS = 0x1,
66 D2D1_UNIT_MODE_FORCE_DWORD = 0xffffffff,
67 } D2D1_UNIT_MODE;
69 typedef enum D2D1_PRINT_FONT_SUBSET_MODE
71 D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT = 0x0,
72 D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE = 0x1,
73 D2D1_PRINT_FONT_SUBSET_MODE_NONE = 0x2,
74 D2D1_PRINT_FONT_SUBSET_MODE_FORCE_DWORD = 0xffffffff,
75 } D2D1_PRINT_FONT_SUBSET_MODE;
77 typedef enum D2D1_COLOR_SPACE
79 D2D1_COLOR_SPACE_CUSTOM = 0x0,
80 D2D1_COLOR_SPACE_SRGB = 0x1,
81 D2D1_COLOR_SPACE_SCRGB = 0x2,
82 D2D1_COLOR_SPACE_FORCE_DWORD = 0xffffffff,
83 } D2D1_COLOR_SPACE;
85 typedef enum D2D1_BITMAP_OPTIONS
87 D2D1_BITMAP_OPTIONS_NONE = 0x0,
88 D2D1_BITMAP_OPTIONS_TARGET = 0x1,
89 D2D1_BITMAP_OPTIONS_CANNOT_DRAW = 0x2,
90 D2D1_BITMAP_OPTIONS_CPU_READ = 0x4,
91 D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE = 0x8,
92 D2D1_BITMAP_OPTIONS_FORCE_DWORD = 0xffffffff,
93 } D2D1_BITMAP_OPTIONS;
95 typedef enum D2D1_MAP_OPTIONS
97 D2D1_MAP_OPTIONS_NONE = 0x0,
98 D2D1_MAP_OPTIONS_READ = 0x1,
99 D2D1_MAP_OPTIONS_WRITE = 0x2,
100 D2D1_MAP_OPTIONS_DISCARD = 0x4,
101 D2D1_MAP_OPTIONS_FORCE_DWORD = 0xffffffff,
102 } D2D1_MAP_OPTIONS;
104 typedef enum D2D1_BUFFER_PRECISION
106 D2D1_BUFFER_PRECISION_UNKNOWN = 0x0,
107 D2D1_BUFFER_PRECISION_8BPC_UNORM = 0x1,
108 D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB = 0x2,
109 D2D1_BUFFER_PRECISION_16BPC_UNORM = 0x3,
110 D2D1_BUFFER_PRECISION_16BPC_FLOAT = 0x4,
111 D2D1_BUFFER_PRECISION_32BPC_FLOAT = 0x5,
112 D2D1_BUFFER_PRECISION_FORCE_DWORD = 0xffffffff,
113 } D2D1_BUFFER_PRECISION;
115 typedef enum D2D1_COLOR_INTERPOLATION_MODE
117 D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT = 0x0,
118 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED = 0x1,
119 D2D1_COLOR_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff,
120 } D2D1_COLOR_INTERPOLATION_MODE;
122 typedef enum D2D1_INTERPOLATION_MODE
124 D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR = D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR,
125 D2D1_INTERPOLATION_MODE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR,
126 D2D1_INTERPOLATION_MODE_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC,
127 D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR = D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR,
128 D2D1_INTERPOLATION_MODE_ANISOTROPIC = D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC,
129 D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC = D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC,
130 D2D1_INTERPOLATION_MODE_FORCE_DWORD = 0xffffffff,
131 } D2D1_INTERPOLATION_MODE;
133 typedef enum D2D1_COMPOSITE_MODE
135 D2D1_COMPOSITE_MODE_SOURCE_OVER = 0x0,
136 D2D1_COMPOSITE_MODE_DESTINATION_OVER = 0x1,
137 D2D1_COMPOSITE_MODE_SOURCE_IN = 0x2,
138 D2D1_COMPOSITE_MODE_DESTINATION_IN = 0x3,
139 D2D1_COMPOSITE_MODE_SOURCE_OUT = 0x4,
140 D2D1_COMPOSITE_MODE_DESTINATION_OUT = 0x5,
141 D2D1_COMPOSITE_MODE_SOURCE_ATOP = 0x6,
142 D2D1_COMPOSITE_MODE_DESTINATION_ATOP = 0x7,
143 D2D1_COMPOSITE_MODE_XOR = 0x8,
144 D2D1_COMPOSITE_MODE_PLUS = 0x9,
145 D2D1_COMPOSITE_MODE_SOURCE_COPY = 0xa,
146 D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY = 0xb,
147 D2D1_COMPOSITE_MODE_MASK_INVERT = 0xc,
148 D2D1_COMPOSITE_MODE_FORCE_DWORD = 0xffffffff,
149 } D2D1_COMPOSITE_MODE;
151 typedef enum D2D1_LAYER_OPTIONS1
153 D2D1_LAYER_OPTIONS1_NONE = 0x0,
154 D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 0x1,
155 D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 0x2,
156 D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff,
157 } D2D1_LAYER_OPTIONS1;
159 typedef struct D2D1_PROPERTY_BINDING D2D1_PROPERTY_BINDING;
160 typedef D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F;
162 typedef enum D2D1_PROPERTY_TYPE
164 D2D1_PROPERTY_TYPE_UNKNOWN = 0x0,
165 D2D1_PROPERTY_TYPE_STRING = 0x1,
166 D2D1_PROPERTY_TYPE_BOOL = 0x2,
167 D2D1_PROPERTY_TYPE_UINT32 = 0x3,
168 D2D1_PROPERTY_TYPE_INT32 = 0x4,
169 D2D1_PROPERTY_TYPE_FLOAT = 0x5,
170 D2D1_PROPERTY_TYPE_VECTOR2 = 0x6,
171 D2D1_PROPERTY_TYPE_VECTOR3 = 0x7,
172 D2D1_PROPERTY_TYPE_VECTOR4 = 0x8,
173 D2D1_PROPERTY_TYPE_BLOB = 0x9,
174 D2D1_PROPERTY_TYPE_IUNKNOWN = 0xa,
175 D2D1_PROPERTY_TYPE_ENUM = 0xb,
176 D2D1_PROPERTY_TYPE_ARRAY = 0xc,
177 D2D1_PROPERTY_TYPE_CLSID = 0xd,
178 D2D1_PROPERTY_TYPE_MATRIX_3X2 = 0xe,
179 D2D1_PROPERTY_TYPE_MATRIX_4X3 = 0xf,
180 D2D1_PROPERTY_TYPE_MATRIX_4X4 = 0x10,
181 D2D1_PROPERTY_TYPE_MATRIX_5X4 = 0x11,
182 D2D1_PROPERTY_TYPE_COLOR_CONTEXT = 0x12,
183 D2D1_PROPERTY_TYPE_FORCE_DWORD = 0xffffffff,
184 } D2D1_PROPERTY_TYPE;
186 typedef enum D2D1_PROPERTY
188 D2D1_PROPERTY_CLSID = 0x80000000,
189 D2D1_PROPERTY_DISPLAYNAME = 0x80000001,
190 D2D1_PROPERTY_AUTHOR = 0x80000002,
191 D2D1_PROPERTY_CATEGORY = 0x80000003,
192 D2D1_PROPERTY_DESCRIPTION = 0x80000004,
193 D2D1_PROPERTY_INPUTS = 0x80000005,
194 D2D1_PROPERTY_CACHED = 0x80000006,
195 D2D1_PROPERTY_PRECISION = 0x80000007,
196 D2D1_PROPERTY_MIN_INPUTS = 0x80000008,
197 D2D1_PROPERTY_MAX_INPUTS = 0x80000009,
198 D2D1_PROPERTY_FORCE_DWORD = 0xffffffff
199 } D2D1_PROPERTY;
201 typedef enum D2D1_SUBPROPERTY
203 D2D1_SUBPROPERTY_DISPLAYNAME = 0x80000000,
204 D2D1_SUBPROPERTY_ISREADONLY = 0x80000001,
205 D2D1_SUBPROPERTY_MIN = 0x80000002,
206 D2D1_SUBPROPERTY_MAX = 0x80000003,
207 D2D1_SUBPROPERTY_DEFAULT = 0x80000004,
208 D2D1_SUBPROPERTY_FIELDS = 0x80000005,
209 D2D1_SUBPROPERTY_INDEX = 0x80000006,
210 D2D1_SUBPROPERTY_FORCE_DWORD = 0xffffffff
211 } D2D1_SUBPROPERTY;
213 typedef enum D2D1_THREADING_MODE
215 D2D1_THREADING_MODE_SINGLE_THREADED = D2D1_FACTORY_TYPE_SINGLE_THREADED,
216 D2D1_THREADING_MODE_MULTI_THREADED = D2D1_FACTORY_TYPE_MULTI_THREADED,
217 D2D1_THREADING_MODE_FORCE_DWORD = 0xffffffff,
218 } D2D1_THREADING_MODE;
220 typedef struct D2D1_CREATION_PROPERTIES
222 D2D1_THREADING_MODE threadingMode;
223 D2D1_DEBUG_LEVEL debugLevel;
224 D2D1_DEVICE_CONTEXT_OPTIONS options;
225 } D2D1_CREATION_PROPERTIES;
227 typedef struct D2D1_STROKE_STYLE_PROPERTIES1
229 D2D1_CAP_STYLE startCap;
230 D2D1_CAP_STYLE endCap;
231 D2D1_CAP_STYLE dashCap;
232 D2D1_LINE_JOIN lineJoin;
233 float miterLimit;
234 D2D1_DASH_STYLE dashStyle;
235 float dashOffset;
236 D2D1_STROKE_TRANSFORM_TYPE transformType;
237 } D2D1_STROKE_STYLE_PROPERTIES1;
239 typedef struct D2D1_DRAWING_STATE_DESCRIPTION1
241 D2D1_ANTIALIAS_MODE antialiasMode;
242 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode;
243 D2D1_TAG tag1;
244 D2D1_TAG tag2;
245 D2D1_MATRIX_3X2_F transform;
246 D2D1_PRIMITIVE_BLEND primitiveBlend;
247 D2D1_UNIT_MODE unitMode;
248 } D2D1_DRAWING_STATE_DESCRIPTION1;
250 typedef struct D2D1_PRINT_CONTROL_PROPERTIES
252 D2D1_PRINT_FONT_SUBSET_MODE fontSubset;
253 float rasterDPI;
254 D2D1_COLOR_SPACE colorSpace;
255 } D2D1_PRINT_CONTROL_PROPERTIES;
257 typedef struct D2D1_MAPPED_RECT
259 UINT32 pitch;
260 BYTE *bits;
261 } D2D1_MAPPED_RECT;
263 typedef struct D2D1_BITMAP_PROPERTIES1
265 D2D1_PIXEL_FORMAT pixelFormat;
266 float dpiX;
267 float dpiY;
268 D2D1_BITMAP_OPTIONS bitmapOptions;
269 ID2D1ColorContext *colorContext;
270 } D2D1_BITMAP_PROPERTIES1;
272 typedef struct D2D1_IMAGE_BRUSH_PROPERTIES
274 D2D1_RECT_F sourceRectangle;
275 D2D1_EXTEND_MODE extendModeX;
276 D2D1_EXTEND_MODE extendModeY;
277 D2D1_INTERPOLATION_MODE interpolationMode;
278 } D2D1_IMAGE_BRUSH_PROPERTIES;
280 typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1
282 D2D1_EXTEND_MODE extendModeX;
283 D2D1_EXTEND_MODE extendModeY;
284 D2D1_INTERPOLATION_MODE interpolationMode;
285 } D2D1_BITMAP_BRUSH_PROPERTIES1;
287 typedef struct D2D1_RENDERING_CONTROLS
289 D2D1_BUFFER_PRECISION bufferPrecision;
290 D2D1_SIZE_U tileSize;
291 } D2D1_RENDERING_CONTROLS;
293 typedef struct D2D1_LAYER_PARAMETERS1
295 D2D1_RECT_F contentBounds;
296 ID2D1Geometry *geometricMask;
297 D2D1_ANTIALIAS_MODE maskAntialiasMode;
298 D2D1_MATRIX_3X2_F maskTransform;
299 float opacity;
300 ID2D1Brush *opacityBrush;
301 D2D1_LAYER_OPTIONS1 layerOptions;
302 } D2D1_LAYER_PARAMETERS1;
304 typedef struct D2D1_EFFECT_INPUT_DESCRIPTION
306 ID2D1Effect *effect;
307 UINT32 inputIndex;
308 D2D1_RECT_F inputRectangle;
309 } D2D1_EFFECT_INPUT_DESCRIPTION;
311 typedef struct D2D1_POINT_DESCRIPTION
313 D2D1_POINT_2F point;
314 D2D1_POINT_2F unitTangentVector;
315 UINT32 endSegment;
316 UINT32 endFigure;
317 float lengthToEndSegment;
318 } D2D1_POINT_DESCRIPTION;
320 typedef HRESULT (__stdcall *PD2D1_EFFECT_FACTORY)(IUnknown **effect);
323 object,
324 uuid(82237326-8111-4f7c-bcf4-b5c1175564fe),
325 local,
327 interface ID2D1GdiMetafileSink : IUnknown
329 HRESULT ProcessRecord(
330 [in] DWORD type,
331 [in, optional] const void *data,
332 [in] DWORD size
337 object,
338 uuid(2f543dc3-cfc1-4211-864f-cfd91c6f3395),
339 local,
341 interface ID2D1GdiMetafile : ID2D1Resource
343 HRESULT Stream(
344 [in] ID2D1GdiMetafileSink *sink
346 HRESULT GetBounds(
347 [out] D2D1_RECT_F *bounds
352 object,
353 uuid(62baa2d2-ab54-41b7-b872-787e0106a421),
354 local,
356 interface ID2D1PathGeometry1 : ID2D1PathGeometry
358 HRESULT ComputePointAndSegmentAtLength(
359 [in] float length,
360 [in] UINT32 start_segment,
361 [in, optional] const D2D1_MATRIX_3X2_F *transform,
362 [in] float tolerance,
363 [out] D2D1_POINT_DESCRIPTION *point_desc
368 object,
369 uuid(483473d7-cd46-4f9d-9d3a-3112aa80159d),
370 local,
372 interface ID2D1Properties : IUnknown
374 UINT32 GetPropertyCount();
375 HRESULT GetPropertyName(
376 [in] UINT32 index,
377 [out] WCHAR *name,
378 [in] UINT32 name_count
380 UINT32 GetPropertyNameLength(
381 [in] UINT32 index
383 D2D1_PROPERTY_TYPE GetType(
384 [in] UINT32 index
386 UINT32 GetPropertyIndex(
387 [in] const WCHAR *name
389 HRESULT SetValueByName(
390 [in] const WCHAR *name,
391 [in] D2D1_PROPERTY_TYPE type,
392 [in] const BYTE *value,
393 [in] UINT32 value_size
395 HRESULT SetValue(
396 [in] UINT32 index,
397 [in] D2D1_PROPERTY_TYPE type,
398 [in] const BYTE *value,
399 [in] UINT32 value_size
401 HRESULT GetValueByName(
402 [in] const WCHAR *name,
403 [in] D2D1_PROPERTY_TYPE type,
404 [out] BYTE *value,
405 [in] UINT32 value_size
407 HRESULT GetValue(
408 [in] UINT32 index,
409 [in] D2D1_PROPERTY_TYPE type,
410 [out] BYTE *value,
411 [in] UINT32 value_size
413 UINT32 GetValueSize(
414 [in] UINT32 index
416 HRESULT GetSubProperties(
417 [in] UINT32 index,
418 [out] ID2D1Properties **props
423 object,
424 uuid(28211a43-7d89-476f-8181-2d6159b220ad),
425 local,
427 interface ID2D1Effect : ID2D1Properties
429 void SetInput(
430 [in] UINT32 index,
431 [in] ID2D1Image *input,
432 [in] BOOL invalidate
434 HRESULT SetInputCount(
435 [in] UINT32 count
437 void GetInput(
438 [in] UINT32 index,
439 [out] ID2D1Image **input
441 UINT32 GetInputCount();
442 void GetOutput(
443 [out] ID2D1Image **output
448 object,
449 uuid(689f1f85-c72e-4e33-8f19-85754efd5ace),
450 local,
452 interface ID2D1DrawingStateBlock1 : ID2D1DrawingStateBlock
454 void GetDescription(
455 [out] D2D1_DRAWING_STATE_DESCRIPTION1 *desc
457 void SetDescription(
458 [in] const D2D1_DRAWING_STATE_DESCRIPTION1 *desc
463 object,
464 uuid(1c4820bb-5771-4518-a581-2fe4dd0ec657),
465 local,
467 interface ID2D1ColorContext : ID2D1Resource
469 D2D1_COLOR_SPACE GetColorSpace();
470 UINT32 GetProfileSize();
471 HRESULT GetProfile(
472 [out] BYTE *profile,
473 [in] UINT32 size
478 object,
479 uuid(a898a84c-3873-4588-b08b-ebbf978df041),
480 local,
482 interface ID2D1Bitmap1 : ID2D1Bitmap
484 void GetColorContext(
485 [out] ID2D1ColorContext **context
487 D2D1_BITMAP_OPTIONS GetOptions();
488 HRESULT GetSurface(
489 [out] IDXGISurface **surface
491 HRESULT Map(
492 [in] D2D1_MAP_OPTIONS options,
493 [out] D2D1_MAPPED_RECT *mapped_rect
495 HRESULT Unmap();
499 object,
500 uuid(41343a53-e41a-49a2-91cd-21793bbb62e5),
501 local,
503 interface ID2D1BitmapBrush1 : ID2D1BitmapBrush
505 void SetInterpolationMode1(
506 [in] D2D1_INTERPOLATION_MODE mode
508 D2D1_INTERPOLATION_MODE GetInterpolationMode1();
512 object,
513 uuid(ae1572f4-5dd0-4777-998b-9279472ae63b),
514 local,
516 interface ID2D1GradientStopCollection1 : ID2D1GradientStopCollection
518 void GetGradientStops1(
519 [out] D2D1_GRADIENT_STOP *gradient,
520 [in] UINT32 count
522 D2D1_COLOR_SPACE GetPreInterpolationSpace();
523 D2D1_COLOR_SPACE GetPostInterpolationSpace();
524 D2D1_BUFFER_PRECISION GetBufferPrecision();
525 D2D1_COLOR_INTERPOLATION_MODE GetColorInterpolationMode();
529 object,
530 uuid(47dd575d-ac05-4cdd-8049-9b02cd16f44c),
531 local,
533 interface ID2D1Device : ID2D1Resource
535 HRESULT CreateDeviceContext(
536 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
537 [out] ID2D1DeviceContext **context
539 HRESULT CreatePrintControl(
540 [in] IWICImagingFactory *wic_factory,
541 [in] IPrintDocumentPackageTarget *document_target,
542 [in] const D2D1_PRINT_CONTROL_PROPERTIES *desc,
543 [out] ID2D1PrintControl **print_control
545 void SetMaximumTextureMemory(
546 [in] UINT64 max_texture_memory
548 UINT64 GetMaximumTextureMemory();
549 HRESULT ClearResources(
550 [in, defaultvalue(0)] UINT msec_since_use
555 object,
556 uuid(54d7898a-a061-40a7-bec7-e465bcba2c4f),
557 local,
559 interface ID2D1CommandSink : IUnknown
561 HRESULT BeginDraw();
562 HRESULT EndDraw();
563 HRESULT SetAntialiasMode(
564 [in] D2D1_ANTIALIAS_MODE antialias_mode
566 HRESULT SetTags(
567 [in] D2D1_TAG tag1,
568 [in] D2D1_TAG tag2
570 HRESULT SetTextAntialiasMode(
571 [in] D2D1_TEXT_ANTIALIAS_MODE antialias_mode
573 HRESULT SetTextRenderingParams(
574 [in] IDWriteRenderingParams *text_rendering_params
576 HRESULT SetTransform(
577 [in] D2D1_MATRIX_3X2_F *transform
579 HRESULT SetPrimitiveBlend(
580 [in] D2D1_PRIMITIVE_BLEND primitive_blend
582 HRESULT SetUnitMode(
583 [in] D2D1_UNIT_MODE unit_mode
585 HRESULT Clear(
586 [in] const D2D1_COLOR_F *color
588 HRESULT DrawGlyphRun(
589 [in] D2D1_POINT_2F baseline_origin,
590 [in] const DWRITE_GLYPH_RUN *glyph_run,
591 [in] const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
592 [in] ID2D1Brush *brush,
593 [in] DWRITE_MEASURING_MODE measuring_mode
595 HRESULT DrawLine(
596 [in] D2D1_POINT_2F p0,
597 [in] D2D1_POINT_2F p1,
598 [in] ID2D1Brush *brush,
599 [in] float stroke_width,
600 [in] ID2D1StrokeStyle *stroke_style
602 HRESULT DrawGeometry(
603 [in] ID2D1Geometry *geometry,
604 [in] ID2D1Brush *brush,
605 [in] float stroke_width,
606 [in] ID2D1StrokeStyle *stroke_style
608 HRESULT DrawRectangle(
609 [in] const D2D1_RECT_F *rect,
610 [in] ID2D1Brush *brush,
611 [in] float stroke_width,
612 [in] ID2D1StrokeStyle *stroke_style
614 HRESULT DrawBitmap(
615 [in] ID2D1Bitmap *bitmap,
616 [in] const D2D1_RECT_F *dst_rect,
617 [in] float opacity,
618 [in] D2D1_INTERPOLATION_MODE interpolation_mode,
619 [in] const D2D1_RECT_F *src_rect,
620 [in] const D2D1_MATRIX_4X4_F *perspective_transform
622 HRESULT DrawImage(
623 [in] ID2D1Image *image,
624 [in] const D2D1_POINT_2F *target_offset,
625 [in] const D2D1_POINT_2F *image_rect,
626 [in] D2D1_INTERPOLATION_MODE interpolation_mode,
627 [in] D2D1_COMPOSITE_MODE composite_mode
629 HRESULT DrawGdiMetafile(
630 [in] ID2D1GdiMetafile *metafile,
631 [in] const D2D1_POINT_2F *target_offset
633 HRESULT FillMesh(
634 [in] ID2D1Mesh *mesh,
635 [in] ID2D1Brush *brush
637 HRESULT FillOpacityMask(
638 [in] ID2D1Bitmap *bitmap,
639 [in] ID2D1Brush *brush,
640 [in] const D2D1_RECT_F *dst_rect,
641 [in] const D2D1_RECT_F *src_rect
643 HRESULT FillGeometry(
644 [in] ID2D1Geometry *geometry,
645 [in] ID2D1Brush *brush,
646 [in] ID2D1Brush *opacity_brush
648 HRESULT FillRectangle(
649 [in] const D2D1_RECT_F *rect,
650 [in] ID2D1Brush *brush
652 HRESULT PushAxisAlignedClip(
653 [in] const D2D1_RECT_F *clip_rect,
654 [in] D2D1_ANTIALIAS_MODE antialias_mode
656 HRESULT PushLayer(
657 [in] const D2D1_LAYER_PARAMETERS1 *layer_parameters,
658 [in] ID2D1Layer *layer
660 HRESULT PopAxisAlignedClip();
661 HRESULT PopLayer();
665 object,
666 uuid(b4f34a19-2383-4d76-94f6-ec343657c3dc),
667 local,
669 interface ID2D1CommandList : ID2D1Image
671 HRESULT Stream(
672 [in] ID2D1CommandSink *sink
674 HRESULT Close();
678 object,
679 uuid(2c1d867d-c290-41c8-ae7e-34a98702e9a5),
680 local,
682 interface ID2D1PrintControl : IUnknown
684 HRESULT AddPage(
685 [in] ID2D1CommandList *list,
686 [in] D2D_SIZE_F size,
687 [in, optional] IStream *stream,
688 [out, optional] D2D1_TAG *tag1,
689 [out, optional] D2D1_TAG *tag2
691 HRESULT Close();
695 object,
696 uuid(fe9e984d-3f95-407c-b5db-cb94d4e8f87c),
697 local,
699 interface ID2D1ImageBrush : ID2D1Brush
701 void SetImage(
702 [in] ID2D1Image *image
704 void SetExtendModeX(
705 [in] D2D1_EXTEND_MODE extend_mode
707 void SetExtendModeY(
708 [in] D2D1_EXTEND_MODE extend_mode
710 void SetInterpolationMode(
711 [in] D2D1_INTERPOLATION_MODE interpolation_mode
713 void SetSourceRectangle(
714 [in] const D2D1_RECT_F *rect
716 void GetImage(
717 [out] ID2D1Image **image
719 D2D1_EXTEND_MODE GetExtendModeX();
720 D2D1_EXTEND_MODE GetExtendModeY();
721 D2D1_INTERPOLATION_MODE GetInterpolationMode();
722 void GetSourceRectangle(
723 [out] D2D1_RECT_F *rect
728 object,
729 uuid(e8f7fe7a-191c-466d-ad95-975678bda998),
730 local,
732 interface ID2D1DeviceContext : ID2D1RenderTarget
734 HRESULT CreateBitmap(
735 [in] D2D1_SIZE_U size,
736 [in] const void *src_data,
737 [in] UINT32 pitch,
738 [in] const D2D1_BITMAP_PROPERTIES1 *desc,
739 [out] ID2D1Bitmap1 **bitmap
741 HRESULT CreateBitmapFromWicBitmap(
742 [in] IWICBitmapSource *bitmap_source,
743 [in] const D2D1_BITMAP_PROPERTIES1 *desc,
744 [out] ID2D1Bitmap1 **bitmap
746 HRESULT CreateColorContext(
747 [in] D2D1_COLOR_SPACE space,
748 [in] const BYTE *profile,
749 [in] UINT32 profile_size,
750 [out] ID2D1ColorContext **color_context
752 HRESULT CreateColorContextFromFilename(
753 [in] const WCHAR *filename,
754 [out] ID2D1ColorContext **color_context
756 HRESULT CreateColorContextFromWicColorContext(
757 [in] IWICColorContext *wic_color_context,
758 [out] ID2D1ColorContext **color_context
760 HRESULT CreateBitmapFromDxgiSurface(
761 [in] IDXGISurface *surface,
762 [in] const D2D1_BITMAP_PROPERTIES1 *desc,
763 [out] ID2D1Bitmap1 **bitmap
765 HRESULT CreateEffect(
766 [in] REFCLSID effect_id,
767 [out] ID2D1Effect **effect
769 HRESULT CreateGradientStopCollection(
770 [in] const D2D1_GRADIENT_STOP *stops,
771 [in] UINT32 stop_count,
772 [in] D2D1_COLOR_SPACE preinterpolation_space,
773 [in] D2D1_COLOR_SPACE postinterpolation_space,
774 [in] D2D1_BUFFER_PRECISION buffer_precision,
775 [in] D2D1_EXTEND_MODE extend_mode,
776 [in] D2D1_COLOR_INTERPOLATION_MODE color_interpolation_mode,
777 [out] ID2D1GradientStopCollection1 **gradient
779 HRESULT CreateImageBrush(
780 [in] ID2D1Image *image,
781 [in] const D2D1_IMAGE_BRUSH_PROPERTIES *image_brush_desc,
782 [in] const D2D1_BRUSH_PROPERTIES *brush_desc,
783 [out] ID2D1ImageBrush **brush
785 HRESULT CreateBitmapBrush(
786 [in] ID2D1Bitmap *bitmap,
787 [in] const D2D1_BITMAP_BRUSH_PROPERTIES1 *bitmap_brush_desc,
788 [in] const D2D1_BRUSH_PROPERTIES *brush_desc,
789 [out] ID2D1BitmapBrush1 **bitmap_brush
791 HRESULT CreateCommandList(
792 [out] ID2D1CommandList **command_list
794 BOOL IsDxgiFormatSupported(
795 [in] DXGI_FORMAT format
797 BOOL IsBufferPrecisionSupported(
798 [in] D2D1_BUFFER_PRECISION buffer_precision
800 void GetImageLocalBounds(
801 [in] ID2D1Image *image,
802 [out] D2D1_RECT_F *local_bounds
804 HRESULT GetImageWorldBounds(
805 [in] ID2D1Image *image,
806 [out] D2D1_RECT_F *world_bounds
808 HRESULT GetGlyphRunWorldBounds(
809 [in] D2D1_POINT_2F baseline_origin,
810 [in] const DWRITE_GLYPH_RUN *glyph_run,
811 [in] DWRITE_MEASURING_MODE measuring_mode,
812 [out] D2D1_RECT_F *bounds
814 void GetDevice(
815 [out] ID2D1Device **device
817 void SetTarget(
818 [in] ID2D1Image *target
820 void GetTarget(
821 [out] ID2D1Image **target
823 void SetRenderingControls(
824 [in] const D2D1_RENDERING_CONTROLS *rendering_controls
826 void GetRenderingControls(
827 [out] D2D1_RENDERING_CONTROLS *rendering_controls
829 void SetPrimitiveBlend(
830 [in] D2D1_PRIMITIVE_BLEND primitive_blend
832 D2D1_PRIMITIVE_BLEND GetPrimitiveBlend();
833 void SetUnitMode(
834 [in] D2D1_UNIT_MODE unit_mode
836 D2D1_UNIT_MODE GetUnitMode();
837 void DrawGlyphRun(
838 [in] D2D1_POINT_2F baseline_origin,
839 [in] const DWRITE_GLYPH_RUN *glyph_run,
840 [in] const DWRITE_GLYPH_RUN_DESCRIPTION *glyph_run_desc,
841 [in] ID2D1Brush *brush,
842 [in] DWRITE_MEASURING_MODE measuring_mode
844 void DrawImage(
845 [in] ID2D1Image *image,
846 [in] const D2D1_POINT_2F *target_offset,
847 [in] const D2D1_RECT_F *image_rect,
848 [in] D2D1_INTERPOLATION_MODE interpolation_mode,
849 [in] D2D1_COMPOSITE_MODE composite_mode
851 void DrawGdiMetafile(
852 [in] ID2D1GdiMetafile *metafile,
853 [in] const D2D1_POINT_2F *target_offset
855 void DrawBitmap(
856 [in] ID2D1Bitmap *bitmap,
857 [in] const D2D1_RECT_F *dst_rect,
858 [in] float opacity,
859 [in] D2D1_INTERPOLATION_MODE interpolation_mode,
860 [in] const D2D1_RECT_F *src_rect,
861 [in] const D2D1_MATRIX_4X4_F *perspective_transform
863 void PushLayer(
864 [in] const D2D1_LAYER_PARAMETERS1 *layer_parameters,
865 [in] ID2D1Layer *layer
867 HRESULT InvalidateEffectInputRectangle(
868 [in] ID2D1Effect *effect,
869 [in] UINT32 input,
870 [in] const D2D1_RECT_F *input_rect
872 HRESULT GetEffectInvalidRectangleCount(
873 [in] ID2D1Effect *effect,
874 [out] UINT32 *rect_count
876 HRESULT GetEffectInvalidRectangles(
877 [in] ID2D1Effect *effect,
878 [out] D2D1_RECT_F *rectangles,
879 [in] UINT32 rect_count
881 HRESULT GetEffectRequiredInputRectangles(
882 [in] ID2D1Effect *effect,
883 [in] const D2D1_RECT_F *image_rect,
884 [in] const D2D1_EFFECT_INPUT_DESCRIPTION *desc,
885 [out] D2D1_RECT_F *input_rect,
886 [in] UINT32 input_count
888 void FillOpacityMask(
889 [in] ID2D1Bitmap *mask,
890 [in] ID2D1Brush *brush,
891 [in] const D2D1_RECT_F *dst_rect,
892 [in] const D2D1_RECT_F *src_rect
897 object,
898 uuid(10a72a66-e91c-43f4-993f-ddf4b82b0b4a),
899 local,
901 interface ID2D1StrokeStyle1 : ID2D1StrokeStyle
903 D2D1_STROKE_TRANSFORM_TYPE GetStrokeTransformType();
907 object,
908 uuid(bb12d362-daee-4b9a-aa1d-14ba401cfa1f),
909 local,
911 interface ID2D1Factory1 : ID2D1Factory
913 HRESULT CreateDevice(
914 [in] IDXGIDevice *dxgi_device,
915 [out] ID2D1Device **device
917 HRESULT CreateStrokeStyle(
918 [in] const D2D1_STROKE_STYLE_PROPERTIES1 *desc,
919 [in, size_is(dash_count)] const float *dashes,
920 [in] UINT32 dash_count,
921 [out] ID2D1StrokeStyle1 **stroke_style
923 HRESULT CreatePathGeometry(
924 [out] ID2D1PathGeometry1 **geometry
926 HRESULT CreateDrawingStateBlock(
927 [in] const D2D1_DRAWING_STATE_DESCRIPTION1 *desc,
928 [in] IDWriteRenderingParams *text_rendering_params,
929 [out] ID2D1DrawingStateBlock1 **state_block
931 HRESULT CreateGdiMetafile(
932 [in] IStream *stream,
933 [out] ID2D1GdiMetafile **metafile
935 HRESULT RegisterEffectFromStream(
936 [in] REFCLSID effect_id,
937 [in] IStream *property_xml,
938 [in, size_is(binding_count)] const D2D1_PROPERTY_BINDING *bindings,
939 [in] UINT32 binding_count,
940 [in] PD2D1_EFFECT_FACTORY effect_factory
942 HRESULT RegisterEffectFromString(
943 [in] REFCLSID effect_id,
944 [in] const WCHAR *property_xml,
945 [in, size_is(binding_count)] const D2D1_PROPERTY_BINDING *bindings,
946 [in] UINT32 binding_count,
947 [in] PD2D1_EFFECT_FACTORY effect_factory
949 HRESULT UnregisterEffect(
950 [in] REFCLSID effect_id
952 HRESULT GetRegisteredEffects(
953 [out, size_is(effect_count)] CLSID *effects,
954 [in] UINT32 effect_count,
955 [out] UINT32 *returned,
956 [out] UINT32 *registered
958 HRESULT GetEffectProperties(
959 [in] REFCLSID effect_id,
960 [out] ID2D1Properties **props
965 object,
966 uuid(31e6e7bc-e0ff-4d46-8c64-a0a8c41c15d3),
967 local,
969 interface ID2D1Multithread : IUnknown
971 BOOL GetMultithreadProtected();
972 void Enter();
973 void Leave();
976 [local] HRESULT __stdcall D2D1CreateDevice(IDXGIDevice *dxgi_device,
977 const D2D1_CREATION_PROPERTIES *creation_properties, ID2D1Device **device);
978 [local] void __stdcall D2D1SinCos(float angle, float *s, float *c);
979 [local] float __stdcall D2D1Tan(float angle);
980 [local] float __stdcall D2D1Vec3Length(float x, float y, float z);
981 [local] D2D1_COLOR_F __stdcall D2D1ConvertColorSpace(D2D1_COLOR_SPACE src_colour_space,
982 D2D1_COLOR_SPACE dst_colour_space, const D2D1_COLOR_F *colour);