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
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
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
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
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
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
;
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
;
168 } D2D1_SIMPLE_COLOR_PROFILE
;
172 uuid(bae8b344
-23fc
-4071-8cb5
-d05d6f073848
),
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
184 [in] D2D1_INK_NIB_SHAPE shape
186 D2D1_INK_NIB_SHAPE GetNibShape
();
191 uuid(b499923b
-7029-478f
-a8b3
-432c7c5f5312
),
194 interface ID2D1Ink
: ID2D1Resource
197 [in] const D2D1_INK_POINT
*start_point
199 D2D1_INK_POINT GetStartPoint
();
201 [in] const D2D1_INK_BEZIER_SEGMENT
*segments
,
202 [in] UINT32 segment_count
204 HRESULT RemoveSegmentsAtEnd
(
205 [in] UINT32 segment_count
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
();
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
228 [in, optional] ID2D1InkStyle
*ink_style
,
229 [in, optional] const D2D1_MATRIX_3X2_F
*world_transform
,
230 [out] D2D1_RECT_F
*bounds
236 uuid(f292e401
-c050
-4cde
-83d7
-04962d3b23c2
),
239 interface ID2D1GradientMesh
: ID2D1Resource
241 UINT32 GetPatchCount
();
243 [in] UINT32 start_index
,
244 [out] D2D1_GRADIENT_MESH_PATCH
*patches
,
245 [in] UINT32 patch_count
251 uuid(c9b664e5
-74a1
-4378-9ac2
-eefc37a3f4d8
),
254 interface ID2D1ImageSource
: ID2D1Image
256 HRESULT OfferResources
();
257 HRESULT TryReclaimResources
(
258 [out] BOOL
*resources_discarded
264 uuid(77395441-1c8f
-4555-8683-f50dab0fe792
),
267 interface ID2D1ImageSourceFromWic
: ID2D1ImageSource
269 HRESULT EnsureCached
(
270 [in, optional] const D2D1_RECT_U
*rect_to_fill
273 [in, optional] const D2D1_RECT_U
*rect_to_preserve
276 [out] IWICBitmapSource
**source
282 uuid(7f1f79e5
-2796-416c
-8f55
-700f911445e5
),
285 interface ID2D1TransformedImageSource
: ID2D1Image
288 [out] ID2D1ImageSource
**source
291 [out] D2D1_TRANSFORMED_IMAGE_SOURCE_PROPERTIES
*out
297 uuid(53dd9855
-a3b0
-4d5b
-82e1
-26e25c5e5797
),
300 interface ID2D1LookupTable3D
: ID2D1Resource
306 uuid(4dc583bf
-3a10
-438a
-8722-e9765224f1f1
),
309 interface ID2D1SpriteBatch
: ID2D1Resource
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
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
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);
348 uuid(af671749
-d241
-4db8
-8e41
-dcc2e5c1a438
),
351 interface ID2D1SvgGlyphStyle
: ID2D1Resource
354 [in, optional] ID2D1Brush
*brush
357 [out] ID2D1Brush
**brush
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);
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
378 uuid(394ea6a3
-0c34
-4321-950b
-6ca20f0be6c7
),
381 interface ID2D1DeviceContext2
: ID2D1DeviceContext1
384 [in] const D2D1_INK_POINT
*start_point
,
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
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
443 uuid(235a7496
-8351-414c
-bcd4
-6672ab2d8e00
),
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
463 uuid(8c427831
-3d90
-4476-b647
-c4fae349e4db
),
466 interface ID2D1DeviceContext4
: ID2D1DeviceContext3
468 HRESULT CreateSvgGlyphStyle
(
469 [out] ID2D1SvgGlyphStyle
**svg_glyph_style
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
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
,
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
;
537 uuid(1ab42875
-c57f
-4be9
-bd85
-9cd78d6f55ee
),
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
551 uuid(7836d248
-68cc
-4df6
-b9e8
-de991bf62eb7
),
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
576 uuid(985f7e37
-4ed0
-4a19
-98a3
-15b0edfde306
),
579 interface ID2D1DeviceContext6
: ID2D1DeviceContext5
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
592 uuid(a44472e1
-8dfb
-4e60
-8492-6e2861c9ca8b
),
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
611 uuid(852f2087
-802c
-4037-ab60
-ff2e7ee6fc01
),
614 interface ID2D1Device3
: ID2D1Device2
616 HRESULT CreateDeviceContext
(
617 [in] D2D1_DEVICE_CONTEXT_OPTIONS options
,
618 [out] ID2D1DeviceContext3
**context
624 uuid(d7bdb159
-5683-4a46
-bc9c
-72dc720b858b
),
627 interface ID2D1Device4
: ID2D1Device3
629 HRESULT CreateDeviceContext
(
630 [in] D2D1_DEVICE_CONTEXT_OPTIONS options
,
631 [out] ID2D1DeviceContext4
**context
633 void SetMaximumColorGlyphCacheMemory
(
636 UINT64 GetMaximumColorGlyphCacheMemory
(void);
641 uuid(d55ba0a4
-6405-4694-aef5
-08ee1a4358b4
),
644 interface ID2D1Device5
: ID2D1Device4
646 HRESULT CreateDeviceContext
(
647 [in] D2D1_DEVICE_CONTEXT_OPTIONS options
,
648 [out] ID2D1DeviceContext5
**context
654 uuid(7bfef914
-2d75
-4bad
-be87
-e18ddb077b6d
),
657 interface ID2D1Device6
: ID2D1Device5
659 HRESULT CreateDeviceContext
(
660 [in] D2D1_DEVICE_CONTEXT_OPTIONS options
,
661 [out] ID2D1DeviceContext6
**context
667 uuid(0869759f
-4f00
-413f
-b03e
-2bda45404d0f
),
670 interface ID2D1Factory3
: ID2D1Factory2
672 HRESULT CreateDevice
(
673 [in] IDXGIDevice
*dxgi_device
,
674 [out] ID2D1Device2
**d2d_device
680 uuid(bd4ec2d2
-0662-4bee
-ba8e
-6f29f032e096
),
683 interface ID2D1Factory4
: ID2D1Factory3
685 HRESULT CreateDevice
(
686 [in] IDXGIDevice
*dxgi_device
,
687 [out] ID2D1Device3
**d2d_device
693 uuid(c4349994
-838e-4b0f
-8cab
-44997d9eeacc
),
696 interface ID2D1Factory5
: ID2D1Factory4
698 HRESULT CreateDevice
(
699 [in] IDXGIDevice
*dxgi_device
,
700 [out] ID2D1Device4
**d2d_device
706 uuid(f9976f46
-f642
-44c1
-97ca
-da32ea2a2635
),
709 interface ID2D1Factory6
: ID2D1Factory5
711 HRESULT CreateDevice
(
712 [in] IDXGIDevice
*dxgi_device
,
713 [out] ID2D1Device5
**d2d_device
719 uuid(bdc2bdd3
-b96c
-4de6
-bdf7
-99d4745454de
),
722 interface ID2D1Factory7
: ID2D1Factory6
724 HRESULT CreateDevice
(
725 [in] IDXGIDevice
*dxgi_device
,
726 [out] ID2D1Device6
**d2d_device
732 uuid(3bab440e
-417e
-47df
-a2e2
-bc0be6a00916
),
735 interface ID2D1CommandSink2
: ID2D1CommandSink1
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
756 uuid(18079135-4cf3
-4868-bc8e
-06067e6d242d
),
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
773 uuid(c78a6519
-40d6
-4218-b2de
-beeeb744bb3e
),
776 interface ID2D1CommandSink4
: ID2D1CommandSink3
778 HRESULT SetPrimitiveBlend2
(
779 [in] D2D1_PRIMITIVE_BLEND primitive_blend