|
1 //--------------------------------------------------------------------------- |
|
2 // Copyright (c) Microsoft Corporation. All rights reserved. |
|
3 // |
|
4 // This file is automatically generated. Please do not edit it directly. |
|
5 // |
|
6 // File name: D2D1_1.h |
|
7 //--------------------------------------------------------------------------- |
|
8 #pragma once |
|
9 |
|
10 #ifndef _D2D1_1_H_ |
|
11 #ifndef _D2D1_H_ |
|
12 #include <d2d1.h> |
|
13 #endif // #ifndef _D2D1_H_ |
|
14 |
|
15 //+----------------------------------------------------------------------------- |
|
16 // |
|
17 // Flag: |
|
18 // D2D1_LAYER_OPTIONS1 |
|
19 // |
|
20 // Synopsis: |
|
21 // Specifies how the layer contents should be prepared. |
|
22 // |
|
23 //------------------------------------------------------------------------------ |
|
24 typedef enum D2D1_LAYER_OPTIONS1 |
|
25 { |
|
26 D2D1_LAYER_OPTIONS1_NONE = 0, |
|
27 D2D1_LAYER_OPTIONS1_INITIALIZE_FROM_BACKGROUND = 1, |
|
28 D2D1_LAYER_OPTIONS1_IGNORE_ALPHA = 2, |
|
29 D2D1_LAYER_OPTIONS1_FORCE_DWORD = 0xffffffff |
|
30 |
|
31 } D2D1_LAYER_OPTIONS1; |
|
32 |
|
33 //+----------------------------------------------------------------------------- |
|
34 // |
|
35 // Struct: |
|
36 // D2D1_LAYER_PARAMETERS1 |
|
37 // |
|
38 // Synopsis: |
|
39 // All parameters related to pushing a layer. |
|
40 // |
|
41 //------------------------------------------------------------------------------ |
|
42 typedef struct D2D1_LAYER_PARAMETERS1 |
|
43 { |
|
44 D2D1_RECT_F contentBounds; |
|
45 ID2D1Geometry *geometricMask; |
|
46 D2D1_ANTIALIAS_MODE maskAntialiasMode; |
|
47 D2D1_MATRIX_3X2_F maskTransform; |
|
48 FLOAT opacity; |
|
49 ID2D1Brush *opacityBrush; |
|
50 D2D1_LAYER_OPTIONS1 layerOptions; |
|
51 |
|
52 } D2D1_LAYER_PARAMETERS1; |
|
53 |
|
54 DEFINE_ENUM_FLAG_OPERATORS(D2D1_LAYER_OPTIONS1); |
|
55 |
|
56 #ifndef DX_DECLARE_INTERFACE |
|
57 #define DX_DECLARE_INTERFACE(x) DECLSPEC_UUID(x) DECLSPEC_NOVTABLE |
|
58 #endif |
|
59 |
|
60 namespace D2D1 |
|
61 { |
|
62 D2D1FORCEINLINE |
|
63 D2D1_LAYER_PARAMETERS1 |
|
64 LayerParameters1( |
|
65 CONST D2D1_RECT_F &contentBounds = D2D1::InfiniteRect(), |
|
66 ID2D1Geometry *geometricMask = NULL, |
|
67 D2D1_ANTIALIAS_MODE maskAntialiasMode = D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, |
|
68 D2D1_MATRIX_3X2_F maskTransform = D2D1::IdentityMatrix(), |
|
69 FLOAT opacity = 1.0, |
|
70 ID2D1Brush *opacityBrush = NULL, |
|
71 D2D1_LAYER_OPTIONS1 layerOptions = D2D1_LAYER_OPTIONS1_NONE |
|
72 ) |
|
73 { |
|
74 D2D1_LAYER_PARAMETERS1 layerParameters = { 0 }; |
|
75 |
|
76 layerParameters.contentBounds = contentBounds; |
|
77 layerParameters.geometricMask = geometricMask; |
|
78 layerParameters.maskAntialiasMode = maskAntialiasMode; |
|
79 layerParameters.maskTransform = maskTransform; |
|
80 layerParameters.opacity = opacity; |
|
81 layerParameters.opacityBrush = opacityBrush; |
|
82 layerParameters.layerOptions = layerOptions; |
|
83 |
|
84 return layerParameters; |
|
85 } |
|
86 } |
|
87 |
|
88 DEFINE_GUID(IID_ID2D1DeviceContext, 0xe8f7fe7a, 0x191c, 0x466d, 0xad, 0x95, 0x97, 0x56, 0x78, 0xbd, 0xa9, 0x98); |
|
89 |
|
90 //+----------------------------------------------------------------------------- |
|
91 // |
|
92 // Interface: |
|
93 // ID2D1DeviceContext |
|
94 // |
|
95 // Synopsis: |
|
96 // The device context represents a set of state and a command buffer that is used |
|
97 // to render to a target bitmap. |
|
98 // |
|
99 //------------------------------------------------------------------------------ |
|
100 interface DX_DECLARE_INTERFACE("e8f7fe7a-191c-466d-ad95-975678bda998") ID2D1DeviceContext : public ID2D1RenderTarget |
|
101 { |
|
102 |
|
103 |
|
104 // |
|
105 // Creates a bitmap with extended bitmap properties, potentially from a block of |
|
106 // memory. |
|
107 // |
|
108 STDMETHOD(CreateBitmap)() PURE; |
|
109 |
|
110 // |
|
111 // Create a D2D bitmap by copying a WIC bitmap. |
|
112 // |
|
113 STDMETHOD(CreateBitmapFromWicBitmap)() PURE; |
|
114 |
|
115 // |
|
116 // Creates a color context from a color space. If the space is Custom, the context |
|
117 // is initialized from the profile/profileSize arguments. Otherwise the context is |
|
118 // initialized with the profile bytes associated with the space and |
|
119 // profile/profileSize are ignored. |
|
120 // |
|
121 STDMETHOD(CreateColorContext)() PURE; |
|
122 |
|
123 STDMETHOD(CreateColorContextFromFilename)() PURE; |
|
124 |
|
125 STDMETHOD(CreateColorContextFromWicColorContext)() PURE; |
|
126 |
|
127 |
|
128 // |
|
129 // Creates a bitmap from a DXGI surface with a set of extended properties. |
|
130 // |
|
131 STDMETHOD(CreateBitmapFromDxgiSurface)() PURE; |
|
132 |
|
133 |
|
134 // |
|
135 // Create a new effect, the effect must either be built in or previously registered |
|
136 // through ID2D1Factory1::RegisterEffectFromStream or |
|
137 // ID2D1Factory1::RegisterEffectFromString. |
|
138 // |
|
139 STDMETHOD(CreateEffect)() PURE; |
|
140 |
|
141 |
|
142 // |
|
143 // A gradient stop collection represents a set of stops in an ideal unit length. |
|
144 // This is the source resource for a linear gradient and radial gradient brush. |
|
145 // |
|
146 STDMETHOD(CreateGradientStopCollection)() PURE; |
|
147 |
|
148 // |
|
149 // Creates an image brush, the input image can be any type of image, including a |
|
150 // bitmap, effect and a command list. |
|
151 // |
|
152 STDMETHOD(CreateImageBrush)() PURE; |
|
153 |
|
154 STDMETHOD(CreateBitmapBrush)() PURE; |
|
155 |
|
156 // |
|
157 // Creates a new command list. |
|
158 // |
|
159 STDMETHOD(CreateCommandList)() PURE; |
|
160 |
|
161 |
|
162 // |
|
163 // Indicates whether the format is supported by D2D. |
|
164 // |
|
165 STDMETHOD_(BOOL, IsDxgiFormatSupported)() CONST PURE; |
|
166 |
|
167 |
|
168 // |
|
169 // Indicates whether the buffer precision is supported by D2D. |
|
170 // |
|
171 STDMETHOD_(BOOL, IsBufferPrecisionSupported)() CONST PURE; |
|
172 |
|
173 |
|
174 // |
|
175 // This retrieves the local-space bounds in DIPs of the current image using the |
|
176 // device context DPI. |
|
177 // |
|
178 STDMETHOD(GetImageLocalBounds)() CONST PURE; |
|
179 |
|
180 |
|
181 // |
|
182 // This retrieves the world-space bounds in DIPs of the current image using the |
|
183 // device context DPI. |
|
184 // |
|
185 STDMETHOD(GetImageWorldBounds)() CONST PURE; |
|
186 |
|
187 |
|
188 // |
|
189 // Retrieves the world-space bounds in DIPs of the glyph run using the device |
|
190 // context DPI. |
|
191 // |
|
192 STDMETHOD(GetGlyphRunWorldBounds)() CONST PURE; |
|
193 |
|
194 |
|
195 // |
|
196 // Retrieves the device associated with this device context. |
|
197 // |
|
198 STDMETHOD_(void, GetDevice)() CONST PURE; |
|
199 |
|
200 |
|
201 // |
|
202 // Sets the target for this device context to point to the given image. The image |
|
203 // can be a command list or a bitmap created with the D2D1_BITMAP_OPTIONS_TARGET |
|
204 // flag. |
|
205 // |
|
206 STDMETHOD_(void, SetTarget)() PURE; |
|
207 |
|
208 |
|
209 // |
|
210 // Gets the target that this device context is currently pointing to. |
|
211 // |
|
212 STDMETHOD_(void, GetTarget)() CONST PURE; |
|
213 |
|
214 |
|
215 // |
|
216 // Sets tuning parameters for internal rendering inside the device context. |
|
217 // |
|
218 STDMETHOD_(void, SetRenderingControls)() PURE; |
|
219 |
|
220 |
|
221 // |
|
222 // This retrieves the rendering controls currently selected into the device |
|
223 // context. |
|
224 // |
|
225 STDMETHOD_(void, GetRenderingControls)() CONST PURE; |
|
226 |
|
227 |
|
228 // |
|
229 // Changes the primitive blending mode for all of the rendering operations. |
|
230 // |
|
231 STDMETHOD_(void, SetPrimitiveBlend)() PURE; |
|
232 |
|
233 |
|
234 // |
|
235 // Returns the primitive blend currently selected into the device context. |
|
236 // |
|
237 STDMETHOD_(void, GetPrimitiveBlend)( |
|
238 ) CONST PURE; |
|
239 |
|
240 |
|
241 // |
|
242 // Changes the units used for all of the rendering operations. |
|
243 // |
|
244 STDMETHOD_(void, SetUnitMode)() PURE; |
|
245 |
|
246 |
|
247 // |
|
248 // Returns the unit mode currently set on the device context. |
|
249 // |
|
250 STDMETHOD_(void, GetUnitMode)( |
|
251 ) CONST PURE; |
|
252 |
|
253 |
|
254 // |
|
255 // Draws the glyph run with an extended description to describe the glyphs. |
|
256 // |
|
257 STDMETHOD_(void, DrawGlyphRun)() PURE; |
|
258 |
|
259 // |
|
260 // Draw an image to the device context. The image represents either a concrete |
|
261 // bitmap or the output of an effect graph. |
|
262 // |
|
263 STDMETHOD_(void, DrawImage)() PURE; |
|
264 |
|
265 |
|
266 // |
|
267 // Draw a metafile to the device context. |
|
268 // |
|
269 STDMETHOD_(void, DrawGdiMetafile)() PURE; |
|
270 |
|
271 STDMETHOD_(void, DrawBitmap)() PURE; |
|
272 |
|
273 |
|
274 // |
|
275 // Push a layer on the device context. |
|
276 // |
|
277 STDMETHOD_(void, PushLayer)( |
|
278 _In_ CONST D2D1_LAYER_PARAMETERS1 *layerParameters, |
|
279 _In_opt_ ID2D1Layer *layer |
|
280 ) PURE; |
|
281 |
|
282 using ID2D1RenderTarget::PushLayer; |
|
283 |
|
284 |
|
285 // |
|
286 // This indicates that a portion of an effect's input is invalid. This method can |
|
287 // be called many times. |
|
288 // |
|
289 STDMETHOD(InvalidateEffectInputRectangle)() PURE; |
|
290 |
|
291 |
|
292 // |
|
293 // Gets the number of invalid ouptut rectangles that have accumulated at the |
|
294 // effect. |
|
295 // |
|
296 STDMETHOD(GetEffectInvalidRectangleCount)() PURE; |
|
297 |
|
298 |
|
299 // |
|
300 // Gets the invalid rectangles that are at the output of the effect. |
|
301 // |
|
302 STDMETHOD(GetEffectInvalidRectangles)() PURE; |
|
303 |
|
304 |
|
305 // |
|
306 // Gets the maximum region of each specified input which would be used during a |
|
307 // subsequent rendering operation |
|
308 // |
|
309 STDMETHOD(GetEffectRequiredInputRectangles)() PURE; |
|
310 |
|
311 |
|
312 // |
|
313 // Fill using the alpha channel of the supplied opacity mask bitmap. The brush |
|
314 // opacity will be modulated by the mask. The render target antialiasing mode must |
|
315 // be set to aliased. |
|
316 // |
|
317 STDMETHOD_(void, FillOpacityMask)() PURE; |
|
318 |
|
319 |
|
320 HRESULT CreateBitmap1() { return S_OK; } |
|
321 HRESULT CreateBitmap2() { return S_OK; } |
|
322 HRESULT CreateBitmap3() { return S_OK; } |
|
323 HRESULT CreateBitmap4() { return S_OK; } |
|
324 |
|
325 HRESULT CreateImageBrush1() { return S_OK; } |
|
326 HRESULT CreateImageBrush2() { return S_OK; } |
|
327 |
|
328 HRESULT CreateBitmapBrush1() { return S_OK; } |
|
329 HRESULT CreateBitmapBrush2() { return S_OK; } |
|
330 HRESULT CreateBitmapBrush3() { return S_OK; } |
|
331 |
|
332 // |
|
333 // Draws the output of the effect as an image. |
|
334 // |
|
335 void DrawImage1() {} |
|
336 void DrawImage2() {} |
|
337 void DrawImage3() {} |
|
338 void DrawImage4() {} |
|
339 void DrawImage5() {} |
|
340 void DrawImage6() {} |
|
341 void DrawImage7() {} |
|
342 |
|
343 void |
|
344 PushLayer( |
|
345 CONST D2D1_LAYER_PARAMETERS1 &layerParameters, |
|
346 _In_opt_ ID2D1Layer *layer |
|
347 ) |
|
348 { |
|
349 PushLayer(&layerParameters, layer); |
|
350 } |
|
351 |
|
352 void DrawGdiMetafile1() {} |
|
353 |
|
354 void DrawBitmap1() {} |
|
355 void DrawBitmap2() {} |
|
356 void DrawBitmap3() {} |
|
357 |
|
358 void FillOpacityMask1() {} |
|
359 void FillOpacityMask2() {} |
|
360 |
|
361 // |
|
362 // Sets tuning parameters for internal rendering inside the device context. |
|
363 // |
|
364 void SetRenderingControls1() {} |
|
365 }; // interface ID2D1DeviceContext |
|
366 |
|
367 #endif // #ifndef _D2D1_1_H_ |