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
21 interface ID2D1DeviceContext
;
22 interface ID2D1StrokeStyle1
;
23 interface ID2D1PathGeometry1
;
24 interface ID2D1GdiMetafile
;
25 interface ID2D1Properties
;
26 interface IPrintDocumentPackageTarget
;
27 interface ID2D1PrintControl
;
28 interface IWICImagingFactory
;
29 interface IWICColorContext
;
30 interface ID2D1ColorContext
;
31 interface ID2D1Effect
;
32 interface ID2D1GradientStopCollection1
;
33 interface ID2D1ImageBrush
;
34 interface ID2D1BitmapBrush1
;
36 cpp_quote
("#ifndef __dwrite_h__")
37 /* already defined in dwrite.h but needed for WIDL */
38 typedef struct DWRITE_GLYPH_RUN_DESCRIPTION DWRITE_GLYPH_RUN_DESCRIPTION
;
39 cpp_quote
("#endif /* __dwrite_h__ */")
41 typedef enum D2D1_DEVICE_CONTEXT_OPTIONS
43 D2D1_DEVICE_CONTEXT_OPTIONS_NONE
= 0x0,
44 D2D1_DEVICE_CONTEXT_OPTIONS_ENABLE_MULTITHREADED_OPTIMIZATIONS
= 0x1,
45 D2D1_DEVICE_CONTEXT_OPTIONS_FORCE_DWORD
= 0xffffffff,
46 } D2D1_DEVICE_CONTEXT_OPTIONS
;
48 typedef enum D2D1_STROKE_TRANSFORM_TYPE
50 D2D1_STROKE_TRANSFORM_TYPE_NORMAL
= 0x0,
51 D2D1_STROKE_TRANSFORM_TYPE_FIXED
= 0x1,
52 D2D1_STROKE_TRANSFORM_TYPE_HAIRLINE
= 0x2,
53 D2D1_STROKE_TRANSFORM_TYPE_FORCE_DWORD
= 0xffffffff,
54 } D2D1_STROKE_TRANSFORM_TYPE
;
56 typedef enum D2D1_PRIMITIVE_BLEND
58 D2D1_PRIMITIVE_BLEND_SOURCE_OVER
= 0x0,
59 D2D1_PRIMITIVE_BLEND_COPY
= 0x1,
60 D2D1_PRIMITIVE_BLEND_MIN
= 0x2,
61 D2D1_PRIMITIVE_BLEND_ADD
= 0x3,
62 D2D1_PRIMITIVE_BLEND_MAX
= 0x4,
63 D2D1_PRIMITIVE_BLEND_FORCE_DWORD
= 0xffffffff,
64 } D2D1_PRIMITIVE_BLEND
;
66 typedef enum D2D1_UNIT_MODE
68 D2D1_UNIT_MODE_DIPS
= 0x0,
69 D2D1_UNIT_MODE_PIXELS
= 0x1,
70 D2D1_UNIT_MODE_FORCE_DWORD
= 0xffffffff,
73 typedef enum D2D1_PRINT_FONT_SUBSET_MODE
75 D2D1_PRINT_FONT_SUBSET_MODE_DEFAULT
= 0x0,
76 D2D1_PRINT_FONT_SUBSET_MODE_EACHPAGE
= 0x1,
77 D2D1_PRINT_FONT_SUBSET_MODE_NONE
= 0x2,
78 D2D1_PRINT_FONT_SUBSET_MODE_FORCE_DWORD
= 0xffffffff,
79 } D2D1_PRINT_FONT_SUBSET_MODE
;
81 typedef enum D2D1_COLOR_SPACE
83 D2D1_COLOR_SPACE_CUSTOM
= 0x0,
84 D2D1_COLOR_SPACE_SRGB
= 0x1,
85 D2D1_COLOR_SPACE_SCRGB
= 0x2,
86 D2D1_COLOR_SPACE_FORCE_DWORD
= 0xffffffff,
89 typedef enum D2D1_BITMAP_OPTIONS
91 D2D1_BITMAP_OPTIONS_NONE
= 0x0,
92 D2D1_BITMAP_OPTIONS_TARGET
= 0x1,
93 D2D1_BITMAP_OPTIONS_CANNOT_DRAW
= 0x2,
94 D2D1_BITMAP_OPTIONS_CPU_READ
= 0x4,
95 D2D1_BITMAP_OPTIONS_GDI_COMPATIBLE
= 0x8,
96 D2D1_BITMAP_OPTIONS_FORCE_DWORD
= 0xffffffff,
97 } D2D1_BITMAP_OPTIONS
;
99 typedef enum D2D1_MAP_OPTIONS
101 D2D1_MAP_OPTIONS_NONE
= 0x0,
102 D2D1_MAP_OPTIONS_READ
= 0x1,
103 D2D1_MAP_OPTIONS_WRITE
= 0x2,
104 D2D1_MAP_OPTIONS_DISCARD
= 0x4,
105 D2D1_MAP_OPTIONS_FORCE_DWORD
= 0xffffffff,
108 typedef enum D2D1_BUFFER_PRECISION
110 D2D1_BUFFER_PRECISION_UNKNOWN
= 0x0,
111 D2D1_BUFFER_PRECISION_8BPC_UNORM
= 0x1,
112 D2D1_BUFFER_PRECISION_8BPC_UNORM_SRGB
= 0x2,
113 D2D1_BUFFER_PRECISION_16BPC_UNORM
= 0x3,
114 D2D1_BUFFER_PRECISION_16BPC_FLOAT
= 0x4,
115 D2D1_BUFFER_PRECISION_32BPC_FLOAT
= 0x5,
116 D2D1_BUFFER_PRECISION_FORCE_DWORD
= 0xffffffff,
117 } D2D1_BUFFER_PRECISION
;
119 typedef enum D2D1_COLOR_INTERPOLATION_MODE
121 D2D1_COLOR_INTERPOLATION_MODE_STRAIGHT
= 0x0,
122 D2D1_COLOR_INTERPOLATION_MODE_PREMULTIPLIED
= 0x1,
123 D2D1_COLOR_INTERPOLATION_MODE_FORCE_DWORD
= 0xffffffff,
124 } D2D1_COLOR_INTERPOLATION_MODE
;
126 typedef enum D2D1_INTERPOLATION_MODE
128 D2D1_INTERPOLATION_MODE_NEAREST_NEIGHBOR
= D2D1_INTERPOLATION_MODE_DEFINITION_NEAREST_NEIGHBOR
,
129 D2D1_INTERPOLATION_MODE_LINEAR
= D2D1_INTERPOLATION_MODE_DEFINITION_LINEAR
,
130 D2D1_INTERPOLATION_MODE_CUBIC
= D2D1_INTERPOLATION_MODE_DEFINITION_CUBIC
,
131 D2D1_INTERPOLATION_MODE_MULTI_SAMPLE_LINEAR
= D2D1_INTERPOLATION_MODE_DEFINITION_MULTI_SAMPLE_LINEAR
,
132 D2D1_INTERPOLATION_MODE_ANISOTROPIC
= D2D1_INTERPOLATION_MODE_DEFINITION_ANISOTROPIC
,
133 D2D1_INTERPOLATION_MODE_HIGH_QUALITY_CUBIC
= D2D1_INTERPOLATION_MODE_DEFINITION_HIGH_QUALITY_CUBIC
,
134 D2D1_INTERPOLATION_MODE_FORCE_DWORD
= 0xffffffff,
135 } D2D1_INTERPOLATION_MODE
;
137 typedef enum D2D1_COMPOSITE_MODE
139 D2D1_COMPOSITE_MODE_SOURCE_OVER
= 0x0,
140 D2D1_COMPOSITE_MODE_DESTINATION_OVER
= 0x1,
141 D2D1_COMPOSITE_MODE_SOURCE_IN
= 0x2,
142 D2D1_COMPOSITE_MODE_DESTINATION_IN
= 0x3,
143 D2D1_COMPOSITE_MODE_SOURCE_OUT
= 0x4,
144 D2D1_COMPOSITE_MODE_DESTINATION_OUT
= 0x5,
145 D2D1_COMPOSITE_MODE_SOURCE_ATOP
= 0x6,
146 D2D1_COMPOSITE_MODE_DESTINATION_ATOP
= 0x7,
147 D2D1_COMPOSITE_MODE_XOR
= 0x8,
148 D2D1_COMPOSITE_MODE_PLUS
= 0x9,
149 D2D1_COMPOSITE_MODE_SOURCE_COPY
= 0xa,
150 D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY
= 0xb,
151 D2D1_COMPOSITE_MODE_MASK_INVERT
= 0xc,
152 D2D1_COMPOSITE_MODE_FORCE_DWORD
= 0xffffffff,
153 } D2D1_COMPOSITE_MODE
;
155 typedef enum D2D1_LAYER_OPTIONS1
157 D2D1_LAYER_OPTIONS1_NONE
= 0x0,
158 D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND
= 0x1,
159 D2D1_LAYER_OPTIONS1_IGNORE_ALPHA
= 0x2,
160 D2D1_LAYER_OPTIONS1_FORCE_DWORD
= 0xffffffff,
161 } D2D1_LAYER_OPTIONS1
;
163 typedef struct D2D1_PROPERTY_BINDING D2D1_PROPERTY_BINDING
;
164 typedef D2D_MATRIX_4X4_F D2D1_MATRIX_4X4_F
;
166 typedef enum D2D1_PROPERTY_TYPE
168 D2D1_PROPERTY_TYPE_UNKNOWN
= 0x0,
169 D2D1_PROPERTY_TYPE_STRING
= 0x1,
170 D2D1_PROPERTY_TYPE_BOOL
= 0x2,
171 D2D1_PROPERTY_TYPE_UINT32
= 0x3,
172 D2D1_PROPERTY_TYPE_INT32
= 0x4,
173 D2D1_PROPERTY_TYPE_FLOAT
= 0x5,
174 D2D1_PROPERTY_TYPE_VECTOR2
= 0x6,
175 D2D1_PROPERTY_TYPE_VECTOR3
= 0x7,
176 D2D1_PROPERTY_TYPE_VECTOR4
= 0x8,
177 D2D1_PROPERTY_TYPE_BLOB
= 0x9,
178 D2D1_PROPERTY_TYPE_IUNKNOWN
= 0xa,
179 D2D1_PROPERTY_TYPE_ENUM
= 0xb,
180 D2D1_PROPERTY_TYPE_ARRAY
= 0xc,
181 D2D1_PROPERTY_TYPE_CLSID
= 0xd,
182 D2D1_PROPERTY_TYPE_MATRIX_3X2
= 0xe,
183 D2D1_PROPERTY_TYPE_MATRIX_4X3
= 0xf,
184 D2D1_PROPERTY_TYPE_MATRIX_4X4
= 0x10,
185 D2D1_PROPERTY_TYPE_MATRIX_5X4
= 0x11,
186 D2D1_PROPERTY_TYPE_COLOR_CONTEXT
= 0x12,
187 D2D1_PROPERTY_TYPE_FORCE_DWORD
= 0xffffffff,
188 } D2D1_PROPERTY_TYPE
;
190 typedef enum D2D1_THREADING_MODE
192 D2D1_THREADING_MODE_SINGLE_THREADED
= D2D1_FACTORY_TYPE_SINGLE_THREADED
,
193 D2D1_THREADING_MODE_MULTI_THREADED
= D2D1_FACTORY_TYPE_MULTI_THREADED
,
194 D2D1_THREADING_MODE_FORCE_DWORD
= 0xffffffff,
195 } D2D1_THREADING_MODE
;
197 typedef struct D2D1_CREATION_PROPERTIES
199 D2D1_THREADING_MODE threadingMode
;
200 D2D1_DEBUG_LEVEL debugLevel
;
201 D2D1_DEVICE_CONTEXT_OPTIONS options
;
202 } D2D1_CREATION_PROPERTIES
;
204 typedef struct D2D1_STROKE_STYLE_PROPERTIES1
206 D2D1_CAP_STYLE startCap
;
207 D2D1_CAP_STYLE endCap
;
208 D2D1_CAP_STYLE dashCap
;
209 D2D1_LINE_JOIN lineJoin
;
211 D2D1_DASH_STYLE dashStyle
;
213 D2D1_STROKE_TRANSFORM_TYPE transformType
;
214 } D2D1_STROKE_STYLE_PROPERTIES1
;
216 typedef struct D2D1_DRAWING_STATE_DESCRIPTION1
218 D2D1_ANTIALIAS_MODE antialiasMode
;
219 D2D1_TEXT_ANTIALIAS_MODE textAntialiasMode
;
222 D2D1_MATRIX_3X2_F transform
;
223 D2D1_PRIMITIVE_BLEND primitiveBlend
;
224 D2D1_UNIT_MODE unitMode
;
225 } D2D1_DRAWING_STATE_DESCRIPTION1
;
227 typedef struct D2D1_PRINT_CONTROL_PROPERTIES
229 D2D1_PRINT_FONT_SUBSET_MODE fontSubset
;
231 D2D1_COLOR_SPACE colorSpace
;
232 } D2D1_PRINT_CONTROL_PROPERTIES
;
234 typedef struct D2D1_MAPPED_RECT
240 typedef struct D2D1_BITMAP_PROPERTIES1
242 D2D1_PIXEL_FORMAT pixelFormat
;
245 D2D1_BITMAP_OPTIONS bitmapOptions
;
246 ID2D1ColorContext
*colorContext
;
247 } D2D1_BITMAP_PROPERTIES1
;
249 typedef struct D2D1_IMAGE_BRUSH_PROPERTIES
251 D2D1_RECT_F sourceRectangle
;
252 D2D1_EXTEND_MODE extendModeX
;
253 D2D1_EXTEND_MODE extendModeY
;
254 D2D1_INTERPOLATION_MODE interpolationMode
;
255 } D2D1_IMAGE_BRUSH_PROPERTIES
;
257 typedef struct D2D1_BITMAP_BRUSH_PROPERTIES1
259 D2D1_EXTEND_MODE extendModeX
;
260 D2D1_EXTEND_MODE extendModeY
;
261 D2D1_INTERPOLATION_MODE interpolationMode
;
262 } D2D1_BITMAP_BRUSH_PROPERTIES1
;
264 typedef struct D2D1_RENDERING_CONTROLS
266 D2D1_BUFFER_PRECISION bufferPrecision
;
267 D2D1_SIZE_U tileSize
;
268 } D2D1_RENDERING_CONTROLS
;
270 typedef struct D2D1_LAYER_PARAMETERS1
272 D2D1_RECT_F contentBounds
;
273 ID2D1Geometry
*geometricMask
;
274 D2D1_ANTIALIAS_MODE maskAntialiasMode
;
275 D2D1_MATRIX_3X2_F maskTransform
;
277 ID2D1Brush
*opacityBrush
;
278 D2D1_LAYER_OPTIONS1 layerOptions
;
279 } D2D1_LAYER_PARAMETERS1
;
281 typedef struct D2D1_EFFECT_INPUT_DESCRIPTION
285 D2D1_RECT_F inputRectangle
;
286 } D2D1_EFFECT_INPUT_DESCRIPTION
;
288 typedef HRESULT (__stdcall
*PD2D1_EFFECT_FACTORY
)(IUnknown
**effect
);
292 uuid(483473d7
-cd46
-4f9d
-9d3a
-3112aa80159d
),
295 interface ID2D1Properties
: IUnknown
297 UINT32 GetPropertyCount
();
298 HRESULT GetPropertyName
(
301 [in] UINT32 name_count
303 UINT32 GetPropertyNameLength
(
306 D2D1_PROPERTY_TYPE GetType
(
309 UINT32 GetPropertyIndex
(
310 [in] const WCHAR
*name
312 HRESULT SetValueByName
(
313 [in] const WCHAR
*name
,
314 [in] D2D1_PROPERTY_TYPE type
,
315 [in] const BYTE *value
,
316 [in] UINT32 value_size
320 [in] D2D1_PROPERTY_TYPE type
,
321 [in] const BYTE *value
,
322 [in] UINT32 value_size
324 HRESULT GetValueByName
(
325 [in] const WCHAR
*name
,
326 [in] D2D1_PROPERTY_TYPE type
,
328 [in] UINT32 value_size
332 [in] D2D1_PROPERTY_TYPE type
,
334 [in] UINT32 value_size
339 HRESULT GetSubProperties
(
341 [out] ID2D1Properties
**props
347 uuid(28211a43
-7d89
-476f
-8181-2d6159b220ad
),
350 interface ID2D1Effect
: ID2D1Properties
354 [in] ID2D1Image
*input
,
357 HRESULT SetInputCount
(
362 [out] ID2D1Image
**input
364 UINT32 GetInputCount
();
366 [out] ID2D1Image
**output
372 uuid(689f1f85
-c72e
-4e33
-8f19
-85754efd5ace
),
375 interface ID2D1DrawingStateBlock1
: ID2D1DrawingStateBlock
378 [out] D2D1_DRAWING_STATE_DESCRIPTION1
*desc
381 [in] const D2D1_DRAWING_STATE_DESCRIPTION1
*desc
387 uuid(a898a84c
-3873-4588-b08b
-ebbf978df041
),
390 interface ID2D1Bitmap1
: ID2D1Bitmap
392 void GetColorContext
(
393 [out] ID2D1ColorContext
**context
395 D2D1_BITMAP_OPTIONS GetOptions
();
397 [out] IDXGISurface
**surface
400 [in] D2D1_MAP_OPTIONS options
,
401 [out] D2D1_MAPPED_RECT
*mapped_rect
408 uuid(41343a53
-e41a
-49a2
-91cd
-21793bbb62e5
),
411 interface ID2D1BitmapBrush1
: ID2D1BitmapBrush
413 void SetInterpolationMode1
(
414 [in] D2D1_INTERPOLATION_MODE mode
416 D2D1_INTERPOLATION_MODE GetInterpolationMode1
();
421 uuid(47dd575d
-ac05
-4cdd
-8049-9b02cd16f44c
),
424 interface ID2D1Device
: ID2D1Resource
426 HRESULT CreateDeviceContext
(
427 [in] D2D1_DEVICE_CONTEXT_OPTIONS options
,
428 [out] ID2D1DeviceContext
**context
430 HRESULT CreatePrintControl
(
431 [in] IWICImagingFactory
*wic_factory
,
432 [in] IPrintDocumentPackageTarget
*document_target
,
433 [in] const D2D1_PRINT_CONTROL_PROPERTIES
*desc
,
434 [out] ID2D1PrintControl
**print_control
436 void SetMaximumTextureMemory
(
437 [in] UINT64 max_texture_memory
439 UINT64 GetMaximumTextureMemory
();
440 HRESULT ClearResources
(
441 [in, defaultvalue(0)] UINT msec_since_use
447 uuid(54d7898a
-a061
-40a7
-bec7
-e465bcba2c4f
),
450 interface ID2D1CommandSink
: IUnknown
454 HRESULT SetAntialiasMode
(
455 [in] D2D1_ANTIALIAS_MODE antialias_mode
461 HRESULT SetTextAntialiasMode
(
462 [in] D2D1_TEXT_ANTIALIAS_MODE antialias_mode
464 HRESULT SetTextRenderingParams
(
465 [in] IDWriteRenderingParams
*text_rendering_params
467 HRESULT SetTransform
(
468 [in] D2D1_MATRIX_3X2_F
*transform
470 HRESULT SetPrimitiveBlend
(
471 [in] D2D1_PRIMITIVE_BLEND primitive_blend
474 [in] D2D1_UNIT_MODE unit_mode
477 [in] const D2D1_COLOR_F
*color
479 HRESULT DrawGlyphRun
(
480 [in] D2D1_POINT_2F baseline_origin
,
481 [in] const DWRITE_GLYPH_RUN
*glyph_run
,
482 [in] const DWRITE_GLYPH_RUN_DESCRIPTION
*glyph_run_desc
,
483 [in] ID2D1Brush
*brush
,
484 [in] DWRITE_MEASURING_MODE measuring_mode
487 [in] D2D1_POINT_2F p0
,
488 [in] D2D1_POINT_2F p1
,
489 [in] ID2D1Brush
*brush
,
490 [in] float stroke_width
,
491 [in] ID2D1StrokeStyle
*stroke_style
493 HRESULT DrawGeometry
(
494 [in] ID2D1Geometry
*geometry
,
495 [in] ID2D1Brush
*brush
,
496 [in] float stroke_width
,
497 [in] ID2D1StrokeStyle
*stroke_style
499 HRESULT DrawRectangle
(
500 [in] const D2D1_RECT_F
*rect
,
501 [in] ID2D1Brush
*brush
,
502 [in] float stroke_width
,
503 [in] ID2D1StrokeStyle
*stroke_style
506 [in] ID2D1Bitmap
*bitmap
,
507 [in] const D2D1_RECT_F
*dst_rect
,
509 [in] D2D1_INTERPOLATION_MODE interpolation_mode
,
510 [in] const D2D1_RECT_F
*src_rect
,
511 [in] const D2D1_MATRIX_4X4_F
*perspective_transform
514 [in] ID2D1Image
*image
,
515 [in] const D2D1_POINT_2F
*target_offset
,
516 [in] const D2D1_POINT_2F
*image_rect
,
517 [in] D2D1_INTERPOLATION_MODE interpolation_mode
,
518 [in] D2D1_COMPOSITE_MODE composite_mode
520 HRESULT DrawGdiMetafile
(
521 [in] ID2D1GdiMetafile
*metafile
,
522 [in] const D2D1_POINT_2F
*target_offset
525 [in] ID2D1Mesh
*mesh
,
526 [in] ID2D1Brush
*brush
528 HRESULT FillOpacityMask
(
529 [in] ID2D1Bitmap
*bitmap
,
530 [in] ID2D1Brush
*brush
,
531 [in] const D2D1_RECT_F
*dst_rect
,
532 [in] const D2D1_RECT_F
*src_rect
534 HRESULT FillGeometry
(
535 [in] ID2D1Geometry
*geometry
,
536 [in] ID2D1Brush
*brush
,
537 [in] ID2D1Brush
*opacity_brush
539 HRESULT FillRectangle
(
540 [in] const D2D1_RECT_F
*rect
,
541 [in] ID2D1Brush
*brush
543 HRESULT PushAxisAlignedClip
(
544 [in] const D2D1_RECT_F
*clip_rect
,
545 [in] D2D1_ANTIALIAS_MODE antialias_mode
548 [in] const D2D1_LAYER_PARAMETERS1
*layer_parameters
,
549 [in] ID2D1Layer
*layer
551 HRESULT PopAxisAlignedClip
();
557 uuid(b4f34a19
-2383-4d76
-94f6
-ec343657c3dc
),
560 interface ID2D1CommandList
: ID2D1Image
563 [in] ID2D1CommandSink
*sink
570 uuid(e8f7fe7a
-191c
-466d
-ad95
-975678bda998
),
573 interface ID2D1DeviceContext
: ID2D1RenderTarget
575 HRESULT CreateBitmap
(
576 [in] D2D1_SIZE_U size
,
577 [in] const void *src_data
,
579 [in] const D2D1_BITMAP_PROPERTIES1
*desc
,
580 [out] ID2D1Bitmap1
**bitmap
582 HRESULT CreateBitmapFromWicBitmap
(
583 [in] IWICBitmapSource
*bitmap_source
,
584 [in] const D2D1_BITMAP_PROPERTIES1
*desc
,
585 [out] ID2D1Bitmap1
**bitmap
587 HRESULT CreateColorContext
(
588 [in] D2D1_COLOR_SPACE space
,
589 [in] const BYTE *profile
,
590 [in] UINT32 profile_size
,
591 [out] ID2D1ColorContext
**color_context
593 HRESULT CreateColorContextFromFilename
(
594 [in] const WCHAR
*filename
,
595 [out] ID2D1ColorContext
**color_context
597 HRESULT CreateColorContextFromWicColorContext
(
598 [in] IWICColorContext
*wic_color_context
,
599 [out] ID2D1ColorContext
**color_context
601 HRESULT CreateBitmapFromDxgiSurface
(
602 [in] IDXGISurface
*surface
,
603 [in] const D2D1_BITMAP_PROPERTIES1
*desc
,
604 [out] ID2D1Bitmap1
**bitmap
606 HRESULT CreateEffect
(
607 [in] REFCLSID effect_id
,
608 [out] ID2D1Effect
**effect
610 HRESULT CreateGradientStopCollection
(
611 [in] const D2D1_GRADIENT_STOP
*stops
,
612 [in] UINT32 stop_count
,
613 [in] D2D1_COLOR_SPACE preinterpolation_space
,
614 [in] D2D1_COLOR_SPACE postinterpolation_space
,
615 [in] D2D1_BUFFER_PRECISION buffer_precision
,
616 [in] D2D1_EXTEND_MODE extend_mode
,
617 [in] D2D1_COLOR_INTERPOLATION_MODE color_interpolation_mode
,
618 [out] ID2D1GradientStopCollection1
**gradient
620 HRESULT CreateImageBrush
(
621 [in] ID2D1Image
*image
,
622 [in] const D2D1_IMAGE_BRUSH_PROPERTIES
*image_brush_desc
,
623 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
624 [out] ID2D1ImageBrush
**brush
626 HRESULT CreateBitmapBrush
(
627 [in] ID2D1Bitmap
*bitmap
,
628 [in] const D2D1_BITMAP_BRUSH_PROPERTIES1
*bitmap_brush_desc
,
629 [in] const D2D1_BRUSH_PROPERTIES
*brush_desc
,
630 [out] ID2D1BitmapBrush1
**bitmap_brush
632 HRESULT CreateCommandList
(
633 [out] ID2D1CommandList
**command_list
635 BOOL IsDxgiFormatSupported
(
636 [in] DXGI_FORMAT format
638 BOOL IsBufferPrecisionSupported
(
639 [in] D2D1_BUFFER_PRECISION buffer_precision
641 void GetImageLocalBounds
(
642 [in] ID2D1Image
*image
,
643 [out] D2D1_RECT_F
*local_bounds
645 HRESULT GetImageWorldBounds
(
646 [in] ID2D1Image
*image
,
647 [out] D2D1_RECT_F
*world_bounds
649 HRESULT GetGlyphRunWorldBounds
(
650 [in] D2D1_POINT_2F baseline_origin
,
651 [in] const DWRITE_GLYPH_RUN
*glyph_run
,
652 [in] DWRITE_MEASURING_MODE measuring_mode
,
653 [out] D2D1_RECT_F
*bounds
656 [out] ID2D1Device
**device
659 [in] ID2D1Image
*target
662 [out] ID2D1Image
**target
664 void SetRenderingControls
(
665 [in] const D2D1_RENDERING_CONTROLS
*rendering_controls
667 void GetRenderingControls
(
668 [out] D2D1_RENDERING_CONTROLS
*rendering_controls
670 void SetPrimitiveBlend
(
671 [in] D2D1_PRIMITIVE_BLEND primitive_blend
673 D2D1_PRIMITIVE_BLEND GetPrimitiveBlend
();
675 [in] D2D1_UNIT_MODE unit_mode
677 D2D1_UNIT_MODE GetUnitMode
();
679 [in] D2D1_POINT_2F baseline_origin
,
680 [in] const DWRITE_GLYPH_RUN
*glyph_run
,
681 [in] const DWRITE_GLYPH_RUN_DESCRIPTION
*glyph_run_desc
,
682 [in] ID2D1Brush
*brush
,
683 [in] DWRITE_MEASURING_MODE measuring_mode
686 [in] ID2D1Image
*image
,
687 [in] const D2D1_POINT_2F
*target_offset
,
688 [in] const D2D1_RECT_F
*image_rect
,
689 [in] D2D1_INTERPOLATION_MODE interpolation_mode
,
690 [in] D2D1_COMPOSITE_MODE composite_mode
692 void DrawGdiMetafile
(
693 [in] ID2D1GdiMetafile
*metafile
,
694 [in] const D2D1_POINT_2F
*target_offset
697 [in] ID2D1Bitmap
*bitmap
,
698 [in] const D2D1_RECT_F
*dst_rect
,
700 [in] D2D1_INTERPOLATION_MODE interpolation_mode
,
701 [in] const D2D1_RECT_F
*src_rect
,
702 [in] const D2D1_MATRIX_4X4_F
*perspective_transform
705 [in] const D2D1_LAYER_PARAMETERS1
*layer_parameters
,
706 [in] ID2D1Layer
*layer
708 HRESULT InvalidateEffectInputRectangle
(
709 [in] ID2D1Effect
*effect
,
711 [in] const D2D1_RECT_F
*input_rect
713 HRESULT GetEffectInvalidRectangleCount
(
714 [in] ID2D1Effect
*effect
,
715 [out] UINT32
*rect_count
717 HRESULT GetEffectInvalidRectangles
(
718 [in] ID2D1Effect
*effect
,
719 [out] D2D1_RECT_F
*rectangles
,
720 [in] UINT32 rect_count
722 HRESULT GetEffectRequiredInputRectangles
(
723 [in] ID2D1Effect
*effect
,
724 [in] const D2D1_RECT_F
*image_rect
,
725 [in] const D2D1_EFFECT_INPUT_DESCRIPTION
*desc
,
726 [out] D2D1_RECT_F
*input_rect
,
727 [in] UINT32 input_count
729 void FillOpacityMask
(
730 [in] ID2D1Bitmap
*mask
,
731 [in] ID2D1Brush
*brush
,
732 [in] const D2D1_RECT_F
*dst_rect
,
733 [in] const D2D1_RECT_F
*src_rect
739 uuid(bb12d362
-daee
-4b9a
-aa1d
-14ba401cfa1f
),
742 interface ID2D1Factory1
: ID2D1Factory
744 HRESULT CreateDevice
(
745 [in] IDXGIDevice
*dxgi_device
,
746 [out] ID2D1Device
**device
748 HRESULT CreateStrokeStyle
(
749 [in] const D2D1_STROKE_STYLE_PROPERTIES1
*desc
,
750 [in, size_is(dash_count
)] const float *dashes
,
751 [in] UINT32 dash_count
,
752 [out] ID2D1StrokeStyle1
**stroke_style
754 HRESULT CreatePathGeometry
(
755 [out] ID2D1PathGeometry1
**geometry
757 HRESULT CreateDrawingStateBlock
(
758 [in] const D2D1_DRAWING_STATE_DESCRIPTION1
*desc
,
759 [in] IDWriteRenderingParams
*text_rendering_params
,
760 [out] ID2D1DrawingStateBlock1
**state_block
762 HRESULT CreateGdiMetafile
(
763 [in] IStream
*stream
,
764 [out] ID2D1GdiMetafile
**metafile
766 HRESULT RegisterEffectFromStream
(
767 [in] REFCLSID effect_id
,
768 [in] IStream
*property_xml
,
769 [in, size_is(binding_count
)] const D2D1_PROPERTY_BINDING
*bindings
,
770 [in] UINT32 binding_count
,
771 [in] PD2D1_EFFECT_FACTORY effect_factory
773 HRESULT RegisterEffectFromString
(
774 [in] REFCLSID effect_id
,
775 [in] const WCHAR
*property_xml
,
776 [in, size_is(binding_count
)] const D2D1_PROPERTY_BINDING
*bindings
,
777 [in] UINT32 binding_count
,
778 [in] PD2D1_EFFECT_FACTORY effect_factory
780 HRESULT UnregisterEffect
(
781 [in] REFCLSID effect_id
783 HRESULT GetRegisteredEffects
(
784 [out, size_is(effect_count
)] CLSID
*effects
,
785 [in] UINT32 effect_count
,
786 [out] UINT32
*returned
,
787 [out] UINT32
*registered
789 HRESULT GetEffectProperties
(
790 [in] REFCLSID effect_id
,
791 [out] ID2D1Properties
**props
795 [local] HRESULT __stdcall D2D1CreateDevice
(IDXGIDevice
*dxgi_device
,
796 const D2D1_CREATION_PROPERTIES
*creation_properties
, ID2D1Device
**device
);