d2d1/effect: Implement offset transform object.
[wine.git] / include / d2d1_3.idl
bloba48688890124919aaf39ae78ed66b602178f82dc
1 /*
2 * Copyright 2022 Ziqing Hui for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "d2d1_2.idl";
20 import "d2d1effects_2.idl";
22 interface IDWriteFontFace;
24 typedef enum D2D1_INK_NIB_SHAPE
26 D2D1_INK_NIB_SHAPE_ROUND = 0x0,
27 D2D1_INK_NIB_SHAPE_SQUARE = 0x1,
28 D2D1_INK_NIB_SHAPE_FORCE_DWORD = 0xffffffff
29 } D2D1_INK_NIB_SHAPE;
31 typedef enum D2D1_PATCH_EDGE_MODE
33 D2D1_PATCH_EDGE_MODE_ALIASED = 0x0,
34 D2D1_PATCH_EDGE_MODE_ANTIALIASED = 0x1,
35 D2D1_PATCH_EDGE_MODE_ALIASED_INFLATED = 0x2,
36 D2D1_PATCH_EDGE_MODE_FORCE_DWORD = 0xffffffff
37 } D2D1_PATCH_EDGE_MODE;
39 typedef enum D2D1_ORIENTATION
41 D2D1_ORIENTATION_DEFAULT = 0x1,
42 D2D1_ORIENTATION_FLIP_HORIZONTAL = 0x2,
43 D2D1_ORIENTATION_ROTATE_CLOCKWISE180 = 0x3,
44 D2D1_ORIENTATION_ROTATE_CLOCKWISE180_FLIP_HORIZONTAL = 0x4,
45 D2D1_ORIENTATION_ROTATE_CLOCKWISE90_FLIP_HORIZONTAL = 0x5,
46 D2D1_ORIENTATION_ROTATE_CLOCKWISE270 = 0x6,
47 D2D1_ORIENTATION_ROTATE_CLOCKWISE270_FLIP_HORIZONTAL = 0x7,
48 D2D1_ORIENTATION_ROTATE_CLOCKWISE90 = 0x8,
49 D2D1_ORIENTATION_FORCE_DWORD = 0xffffffff
50 } D2D1_ORIENTATION;
52 typedef enum D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS
54 D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_NONE = 0x0,
55 D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_DISABLE_DPI_SCALE = 0x1,
56 D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS_FORCE_DWORD = 0xffffffff
57 } D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS;
59 typedef enum D2D1_IMAGE_SOURCE_LOADING_OPTIONS
61 D2D1_IMAGE_SOURCE_LOADING_OPTIONS_NONE = 0x0,
62 D2D1_IMAGE_SOURCE_LOADING_OPTIONS_RELEASE_SOURCE = 0x1,
63 D2D1_IMAGE_SOURCE_LOADING_OPTIONS_CACHE_ON_DEMAND = 0x2,
64 D2D1_IMAGE_SOURCE_LOADING_OPTIONS_FORCE_DWORD = 0xffffffff
65 } D2D1_IMAGE_SOURCE_LOADING_OPTIONS;
67 typedef enum D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
69 D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_NONE = 0x0,
70 D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_LOW_QUALITY_PRIMARY_CONVERSION = 0x1,
71 D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS_FORCE_DWORD = 0xffffffff
72 } D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS;
74 typedef enum D2D1_SPRITE_OPTIONS
76 D2D1_SPRITE_OPTIONS_NONE = 0x0,
77 D2D1_SPRITE_OPTIONS_CLAMP_TO_SOURCE_RECTANGLE = 0x1,
78 D2D1_SPRITE_OPTIONS_FORCE_DWORD = 0xffffffff
79 } D2D1_SPRITE_OPTIONS;
81 typedef enum D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION
83 D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DEFAULT = 0x0,
84 D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_DISABLE = 0x1,
85 D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION_FORCE_DWORD = 0xffffffff
86 } D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION;
88 typedef enum D2D1_GAMMA1
90 D2D1_GAMMA1_G22 = D2D1_GAMMA_2_2,
91 D2D1_GAMMA1_G10 = D2D1_GAMMA_1_0,
92 D2D1_GAMMA1_G2084 = 2,
93 D2D1_GAMMA1_FORCE_DWORD = 0xffffffff
94 } D2D1_GAMMA1;
96 typedef enum D2D1_COLOR_CONTEXT_TYPE
98 D2D1_COLOR_CONTEXT_TYPE_ICC = 0x0,
99 D2D1_COLOR_CONTEXT_TYPE_SIMPLE = 0x1,
100 D2D1_COLOR_CONTEXT_TYPE_DXGI = 0x2,
101 D2D1_COLOR_CONTEXT_TYPE_FORCE_DWORD = 0xffffffff
102 } D2D1_COLOR_CONTEXT_TYPE;
104 typedef struct D2D1_INK_POINT
106 float x;
107 float y;
108 float radius;
109 } D2D1_INK_POINT;
111 typedef struct D2D1_INK_BEZIER_SEGMENT
113 D2D1_INK_POINT point1;
114 D2D1_INK_POINT point2;
115 D2D1_INK_POINT point3;
116 } D2D1_INK_BEZIER_SEGMENT;
118 typedef struct D2D1_INK_STYLE_PROPERTIES
120 D2D1_INK_NIB_SHAPE nibShape;
121 D2D1_MATRIX_3X2_F nibTransform;
122 } D2D1_INK_STYLE_PROPERTIES;
124 typedef struct D2D1_GRADIENT_MESH_PATCH
126 D2D1_POINT_2F point00;
127 D2D1_POINT_2F point01;
128 D2D1_POINT_2F point02;
129 D2D1_POINT_2F point03;
130 D2D1_POINT_2F point10;
131 D2D1_POINT_2F point11;
132 D2D1_POINT_2F point12;
133 D2D1_POINT_2F point13;
134 D2D1_POINT_2F point20;
135 D2D1_POINT_2F point21;
136 D2D1_POINT_2F point22;
137 D2D1_POINT_2F point23;
138 D2D1_POINT_2F point30;
139 D2D1_POINT_2F point31;
140 D2D1_POINT_2F point32;
141 D2D1_POINT_2F point33;
142 D2D1_COLOR_F color00;
143 D2D1_COLOR_F color03;
144 D2D1_COLOR_F color30;
145 D2D1_COLOR_F color33;
146 D2D1_PATCH_EDGE_MODE topEdgeMode;
147 D2D1_PATCH_EDGE_MODE leftEdgeMode;
148 D2D1_PATCH_EDGE_MODE bottomEdgeMode;
149 D2D1_PATCH_EDGE_MODE rightEdgeMode;
150 } D2D1_GRADIENT_MESH_PATCH;
152 typedef struct D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
154 D2D1_ORIENTATION orientation;
155 float scaleX;
156 float scaleY;
157 D2D1_INTERPOLATION_MODE interpolationMode;
158 D2D1_TRANSFORMED_IMAGE_SOURCE_OPTIONS options;
159 } D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES;
161 typedef struct D2D1_SIMPLE_COLOR_PROFILE
163 D2D1_POINT_2F redPrimary;
164 D2D1_POINT_2F greenPrimary;
165 D2D1_POINT_2F bluePrimary;
166 D2D1_POINT_2F whitePointXZ;
167 D2D1_GAMMA1 gamma;
168 } D2D1_SIMPLE_COLOR_PROFILE;
171 object,
172 uuid(bae8b344-23fc-4071-8cb5-d05d6f073848),
173 local,
175 interface ID2D1InkStyle : ID2D1Resource
177 void SetNibTransform(
178 [in] const D2D1_MATRIX_3X2_F *transform
180 void GetNibTransform(
181 [out] D2D1_MATRIX_3X2_F *transform
183 void SetNibShape(
184 [in] D2D1_INK_NIB_SHAPE shape
186 D2D1_INK_NIB_SHAPE GetNibShape();
190 object,
191 uuid(b499923b-7029-478f-a8b3-432c7c5f5312),
192 local,
194 interface ID2D1Ink : ID2D1Resource
196 void SetStartPoint(
197 [in] const D2D1_INK_POINT *start_point
199 D2D1_INK_POINT GetStartPoint();
200 HRESULT AddSegments(
201 [in] const D2D1_INK_BEZIER_SEGMENT *segments,
202 [in] UINT32 segment_count
204 HRESULT RemoveSegmentsAtEnd(
205 [in] UINT32 segment_count
207 HRESULT SetSegments(
208 [in] UINT32 start_segment,
209 [in] const D2D1_INK_BEZIER_SEGMENT *segments,
210 [in] UINT32 segment_count
212 HRESULT SetSegmentAtEnd(
213 [in] const D2D1_INK_BEZIER_SEGMENT *segment
215 UINT32 GetSegmentCount();
216 HRESULT GetSegments(
217 [in] UINT32 start_segment,
218 [out] D2D1_INK_BEZIER_SEGMENT *segments,
219 [in] UINT32 segment_count
221 HRESULT StreamAsGeometry(
222 [in, optional] ID2D1InkStyle *ink_style,
223 [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
224 [in] float flattening_tolerance,
225 [in] ID2D1SimplifiedGeometrySink *geometry_sink
227 HRESULT GetBounds(
228 [in, optional] ID2D1InkStyle *ink_style,
229 [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
230 [out] D2D1_RECT_F *bounds
235 object,
236 uuid(f292e401-c050-4cde-83d7-04962d3b23c2),
237 local,
239 interface ID2D1GradientMesh : ID2D1Resource
241 UINT32 GetPatchCount();
242 HRESULT GetPatches(
243 [in] UINT32 start_index,
244 [out] D2D1_GRADIENT_MESH_PATCH *patches,
245 [in] UINT32 patch_count
250 object,
251 uuid(c9b664e5-74a1-4378-9ac2-eefc37a3f4d8),
252 local,
254 interface ID2D1ImageSource : ID2D1Image
256 HRESULT OfferResources();
257 HRESULT TryReclaimResources(
258 [out] BOOL *resources_discarded
263 object,
264 uuid(77395441-1c8f-4555-8683-f50dab0fe792),
265 local,
267 interface ID2D1ImageSourceFromWic : ID2D1ImageSource
269 HRESULT EnsureCached(
270 [in, optional] const D2D1_RECT_U *rect_to_fill
272 HRESULT TrimCache(
273 [in, optional] const D2D1_RECT_U *rect_to_preserve
275 void GetSource(
276 [out] IWICBitmapSource **source
281 object,
282 uuid(7f1f79e5-2796-416c-8f55-700f911445e5),
283 local,
285 interface ID2D1TransformedImageSource : ID2D1Image
287 void GetSource(
288 [out] ID2D1ImageSource **source
290 void GetProperties(
291 [out] D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *out
296 object,
297 uuid(53dd9855-a3b0-4d5b-82e1-26e25c5e5797),
298 local,
300 interface ID2D1LookupTable3D : ID2D1Resource
305 object,
306 uuid(4dc583bf-3a10-438a-8722-e9765224f1f1),
307 local,
309 interface ID2D1SpriteBatch : ID2D1Resource
311 HRESULT AddSprites(
312 [in] UINT32 sprite_count,
313 [in] const D2D1_RECT_F *destination_rectangles,
314 [in] const D2D1_RECT_U *source_rectangles,
315 [in] const D2D1_COLOR_F *colors,
316 [in] const D2D1_MATRIX_3X2_F *transforms,
317 [in] UINT32 destination_rectangles_stride,
318 [in] UINT32 source_rectangles_stride,
319 [in] UINT32 colors_stride,
320 [in] UINT32 transforms_stride
322 HRESULT SetSprites(
323 [in] UINT32 start_index,
324 [in] UINT32 sprite_count,
325 [in] const D2D1_RECT_F *destination_rectangles,
326 [in] const D2D1_RECT_U *source_rectangles,
327 [in] const D2D1_COLOR_F *colors,
328 [in] const D2D1_MATRIX_3X2_F *transforms,
329 [in] UINT32 destination_rectangles_stride,
330 [in] UINT32 source_rectangles_stride,
331 [in] UINT32 colors_stride,
332 [in] UINT32 transforms_stride
334 HRESULT GetSprites(
335 [in] UINT32 start_index,
336 [in] UINT32 sprite_count,
337 [out, optional] D2D1_RECT_F *destination_rectangles,
338 [out, optional] D2D1_RECT_U *source_rectangles,
339 [out, optional] D2D1_COLOR_F *colors,
340 [out, optional] D2D1_MATRIX_3X2_F *transforms
342 UINT32 GetSpriteCount(void);
343 void Clear(void);
347 object,
348 uuid(af671749-d241-4db8-8e41-dcc2e5c1a438),
349 local,
351 interface ID2D1SvgGlyphStyle : ID2D1Resource
353 HRESULT SetFill(
354 [in, optional] ID2D1Brush *brush
356 void GetFill(
357 [out] ID2D1Brush **brush
359 HRESULT SetStroke(
360 [in, optional] ID2D1Brush *brush,
361 [in] FLOAT stroke_width,
362 [in, optional] const FLOAT *dashes,
363 [in, optional] UINT32 dashes_count,
364 [in] FLOAT dash_offset
366 UINT32 GetStrokeDashesCount(void);
367 void GetStroke(
368 [out, optional] ID2D1Brush **brush,
369 [out, optional] FLOAT *stroke_width,
370 [out, optional] FLOAT *dashes,
371 [in, optional] UINT32 dashes_count,
372 [out, optional] FLOAT *dash_offset
377 object,
378 uuid(394ea6a3-0c34-4321-950b-6ca20f0be6c7),
379 local,
381 interface ID2D1DeviceContext2 : ID2D1DeviceContext1
383 HRESULT CreateInk(
384 [in] const D2D1_INK_POINT *start_point,
385 [out] ID2D1Ink **ink
387 HRESULT CreateInkStyle(
388 [in, optional] const D2D1_INK_STYLE_PROPERTIES *ink_style_properties,
389 [out] ID2D1InkStyle **ink_style
391 HRESULT CreateGradientMesh(
392 [in] const D2D1_GRADIENT_MESH_PATCH *patches,
393 [in] UINT32 patches_count,
394 [out] ID2D1GradientMesh **gradient_mesh
396 HRESULT CreateImageSourceFromWic(
397 [in] IWICBitmapSource *wic_bitmap_source,
398 [in] D2D1_IMAGE_SOURCE_LOADING_OPTIONS loading_options,
399 [in] D2D1_ALPHA_MODE alpha_mode,
400 [out] ID2D1ImageSourceFromWic **image_source
402 HRESULT CreateLookupTable3D(
403 [in] D2D1_BUFFER_PRECISION precision,
404 [in] const UINT32 *extents,
405 [in] const BYTE *data,
406 [in] UINT32 data_count,
407 [in] const UINT32 *strides,
408 [out] ID2D1LookupTable3D **lookup_table
410 HRESULT CreateImageSourceFromDxgi(
411 [in] IDXGISurface **surfaces,
412 [in] UINT32 surface_count,
413 [in] DXGI_COLOR_SPACE_TYPE color_space,
414 [in] D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
415 [out] ID2D1ImageSource **image_source
417 HRESULT GetGradientMeshWorldBounds(
418 [in] ID2D1GradientMesh *gradient_mesh,
419 [out] D2D1_RECT_F *bounds
421 void DrawInk(
422 [in] ID2D1Ink *ink,
423 [in] ID2D1Brush *brush,
424 [in, optional] ID2D1InkStyle *ink_style
426 void DrawGradientMesh(
427 [in] ID2D1GradientMesh *gradient_mesh
429 void DrawGdiMetafile(
430 [in] ID2D1GdiMetafile *gdi_metafile,
431 [in, optional] const D2D1_RECT_F *dst_rect,
432 [in, optional] const D2D1_RECT_F *src_rect
434 HRESULT CreateTransformedImageSource(
435 [in] ID2D1ImageSource *source,
436 [in] const D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES *props,
437 [out] ID2D1TransformedImageSource **transformed
442 object,
443 uuid(235a7496-8351-414c-bcd4-6672ab2d8e00),
444 local,
446 interface ID2D1DeviceContext3 : ID2D1DeviceContext2
448 HRESULT CreateSpriteBatch(
449 [out] ID2D1SpriteBatch **sprite_batch
451 void DrawSpriteBatch(
452 [in] ID2D1SpriteBatch *sprite_batch,
453 [in] UINT32 start_index,
454 [in] UINT32 sprite_count,
455 [in] ID2D1Bitmap *bitmap,
456 [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode,
457 [in] D2D1_SPRITE_OPTIONS sprite_options
462 object,
463 uuid(8c427831-3d90-4476-b647-c4fae349e4db),
464 local,
466 interface ID2D1DeviceContext4 : ID2D1DeviceContext3
468 HRESULT CreateSvgGlyphStyle(
469 [out] ID2D1SvgGlyphStyle **svg_glyph_style
471 void DrawText(
472 [in] const WCHAR *string,
473 [in] UINT32 string_length,
474 [in] IDWriteTextFormat *text_format,
475 [in] const D2D1_RECT_F *layout_rect,
476 [in, optional] ID2D1Brush *default_fill_brush,
477 [in, optional] ID2D1SvgGlyphStyle *svg_glyph_style,
478 [in, optional] UINT32 color_palette_index,
479 [in] D2D1_DRAW_TEXT_OPTIONS options,
480 [in] DWRITE_MEASURING_MODE measuring_mode
482 void DrawTextLayout(
483 [in] D2D1_POINT_2F origin,
484 [in] IDWriteTextLayout *text_layout,
485 [in, optional] ID2D1Brush *default_fill_brush,
486 [in, optional] ID2D1SvgGlyphStyle *svg_glyph_style,
487 [in, optional] UINT32 color_palette_index,
488 [in] D2D1_DRAW_TEXT_OPTIONS options
490 void DrawColorBitmapGlyphRun(
491 [in] DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
492 [in] D2D1_POINT_2F baseline_origin,
493 [in] const DWRITE_GLYPH_RUN *glyph_run,
494 [in] DWRITE_MEASURING_MODE measuring_mode,
495 [in] D2D1_COLOR_BITMAP_GLYPH_SNAP_OPTION bitmap_snap_option
497 void DrawSvgGlyphRun(
498 [in] D2D1_POINT_2F baseline_origin,
499 [in] const DWRITE_GLYPH_RUN *glyph_run,
500 [in, optional] ID2D1Brush *default_fill_brush,
501 [in, optional] ID2D1SvgGlyphStyle *svg_glyph_style,
502 [in, optional]UINT32 color_palette_index,
503 [in] DWRITE_MEASURING_MODE measuring_mode
505 HRESULT GetColorBitmapGlyphImage(
506 [in] DWRITE_GLYPH_IMAGE_FORMATS glyph_image_format,
507 [in] D2D1_POINT_2F glyph_origin,
508 [in] IDWriteFontFace *font_face,
509 [in] FLOAT font_em_size,
510 [in] UINT16 glyph_index,
511 [in] BOOL is_sideways,
512 [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
513 [in] FLOAT dpi_x,
514 [in] FLOAT dpi_y,
515 [out] D2D1_MATRIX_3X2_F *glyph_transform,
516 [out] ID2D1Image **glyph_image
518 HRESULT GetSvgGlyphImage(
519 [in] D2D1_POINT_2F glyph_origin,
520 [in] IDWriteFontFace *font_face,
521 [in] FLOAT font_em_size,
522 [in] UINT16 glyph_index,
523 [in] BOOL is_sideways,
524 [in, optional] const D2D1_MATRIX_3X2_F *world_transform,
525 [in, optional] ID2D1Brush *default_fill_brush,
526 [in, optional] ID2D1SvgGlyphStyle *svg_glyph_style,
527 [in] UINT32 color_palette_index,
528 [out] D2D1_MATRIX_3X2_F *glyph_transform,
529 [out] ID2D1CommandList **glyph_image
533 interface ID2D1SvgDocument;
536 object,
537 uuid(1ab42875-c57f-4be9-bd85-9cd78d6f55ee),
538 local,
540 interface ID2D1ColorContext1 : ID2D1ColorContext
542 D2D1_COLOR_CONTEXT_TYPE GetColorContextType(void);
543 DXGI_COLOR_SPACE_TYPE GetDXGIColorSpace(void);
544 HRESULT GetSimpleColorProfile(
545 [out] D2D1_SIMPLE_COLOR_PROFILE *simple_profile
550 object,
551 uuid(7836d248-68cc-4df6-b9e8-de991bf62eb7),
552 local,
554 interface ID2D1DeviceContext5 : ID2D1DeviceContext4
556 HRESULT CreateSvgDocument(
557 [in] IStream *input_xml_stream,
558 [in] D2D1_SIZE_F viewport_size,
559 [out] ID2D1SvgDocument **svg_document
561 void DrawSvgDocument(
562 [in] ID2D1SvgDocument *svg_document
564 HRESULT CreateColorContextFromDxgiColorSpace(
565 [in] DXGI_COLOR_SPACE_TYPE color_space,
566 [out] ID2D1ColorContext1 **color_context
568 HRESULT CreateColorContextFromSimpleColorProfile(
569 [in] const D2D1_SIMPLE_COLOR_PROFILE *simple_profile,
570 [out] ID2D1ColorContext1 **color_context
575 object,
576 uuid(985f7e37-4ed0-4a19-98a3-15b0edfde306),
577 local,
579 interface ID2D1DeviceContext6 : ID2D1DeviceContext5
581 void BlendImage(
582 [in] ID2D1Image *image,
583 [in] D2D1_BLEND_MODE blend_mode,
584 [in] const D2D1_POINT_2F *target_offset,
585 [in] const D2D1_RECT_F *image_rect,
586 [in] D2D1_INTERPOLATION_MODE interpolation_mode
591 object,
592 uuid(a44472e1-8dfb-4e60-8492-6e2861c9ca8b),
593 local,
595 interface ID2D1Device2 : ID2D1Device1
597 HRESULT CreateDeviceContext(
598 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
599 [out] ID2D1DeviceContext2 **context
601 void FlushDeviceContexts(
602 [in] ID2D1Bitmap *bitmap
604 HRESULT GetDxgiDevice(
605 [out] IDXGIDevice **dxgi_device
610 object,
611 uuid(852f2087-802c-4037-ab60-ff2e7ee6fc01),
612 local,
614 interface ID2D1Device3 : ID2D1Device2
616 HRESULT CreateDeviceContext(
617 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
618 [out] ID2D1DeviceContext3 **context
623 object,
624 uuid(d7bdb159-5683-4a46-bc9c-72dc720b858b),
625 local,
627 interface ID2D1Device4 : ID2D1Device3
629 HRESULT CreateDeviceContext(
630 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
631 [out] ID2D1DeviceContext4 **context
633 void SetMaximumColorGlyphCacheMemory(
634 UINT64 size
636 UINT64 GetMaximumColorGlyphCacheMemory(void);
640 object,
641 uuid(d55ba0a4-6405-4694-aef5-08ee1a4358b4),
642 local,
644 interface ID2D1Device5 : ID2D1Device4
646 HRESULT CreateDeviceContext(
647 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
648 [out] ID2D1DeviceContext5 **context
653 object,
654 uuid(7bfef914-2d75-4bad-be87-e18ddb077b6d),
655 local,
657 interface ID2D1Device6 : ID2D1Device5
659 HRESULT CreateDeviceContext(
660 [in] D2D1_DEVICE_CONTEXT_OPTIONS options,
661 [out] ID2D1DeviceContext6 **context
666 object,
667 uuid(0869759f-4f00-413f-b03e-2bda45404d0f),
668 local,
670 interface ID2D1Factory3 : ID2D1Factory2
672 HRESULT CreateDevice(
673 [in] IDXGIDevice *dxgi_device,
674 [out] ID2D1Device2 **d2d_device
679 object,
680 uuid(bd4ec2d2-0662-4bee-ba8e-6f29f032e096),
681 local,
683 interface ID2D1Factory4 : ID2D1Factory3
685 HRESULT CreateDevice(
686 [in] IDXGIDevice *dxgi_device,
687 [out] ID2D1Device3 **d2d_device
692 object,
693 uuid(c4349994-838e-4b0f-8cab-44997d9eeacc),
694 local,
696 interface ID2D1Factory5 : ID2D1Factory4
698 HRESULT CreateDevice(
699 [in] IDXGIDevice *dxgi_device,
700 [out] ID2D1Device4 **d2d_device
705 object,
706 uuid(f9976f46-f642-44c1-97ca-da32ea2a2635),
707 local,
709 interface ID2D1Factory6 : ID2D1Factory5
711 HRESULT CreateDevice(
712 [in] IDXGIDevice *dxgi_device,
713 [out] ID2D1Device5 **d2d_device
718 object,
719 uuid(bdc2bdd3-b96c-4de6-bdf7-99d4745454de),
720 local,
722 interface ID2D1Factory7 : ID2D1Factory6
724 HRESULT CreateDevice(
725 [in] IDXGIDevice *dxgi_device,
726 [out] ID2D1Device6 **d2d_device
731 object,
732 uuid(3bab440e-417e-47df-a2e2-bc0be6a00916),
733 local,
735 interface ID2D1CommandSink2 : ID2D1CommandSink1
737 HRESULT DrawInk(
738 [in] ID2D1Ink *ink,
739 [in] ID2D1Brush *brush,
740 [in] ID2D1InkStyle *ink_style
743 HRESULT DrawGradientMesh(
744 [in] ID2D1GradientMesh *gradient_mesh
747 HRESULT DrawGdiMetafile(
748 [in] ID2D1GdiMetafile *gdi_metafile,
749 [in] const D2D1_RECT_F *dest_rect,
750 [in] const D2D1_RECT_F *src_rect
755 object,
756 uuid(18079135-4cf3-4868-bc8e-06067e6d242d),
757 local,
759 interface ID2D1CommandSink3 : ID2D1CommandSink2
761 HRESULT DrawSpriteBatch(
762 [in] ID2D1SpriteBatch *sprite_batch,
763 [in] UINT32 start_index,
764 [in] UINT32 sprite_count,
765 [in] ID2D1Bitmap *bitmap,
766 [in] D2D1_BITMAP_INTERPOLATION_MODE interpolation_mode,
767 [in] D2D1_SPRITE_OPTIONS sprite_options
772 object,
773 uuid(c78a6519-40d6-4218-b2de-beeeb744bb3e),
774 local,
776 interface ID2D1CommandSink4 : ID2D1CommandSink3
778 HRESULT SetPrimitiveBlend2(
779 [in] D2D1_PRIMITIVE_BLEND primitive_blend