1 #![allow(non_snake_case, non_camel_case_types, non_upper_case_globals, clashing_extern_declarations, clippy::all)]
2 #[link(name = "windows")]
3 extern "system" {}
4 pub type D2D1_ALPHA_MODE = u32;
5 pub const D2D1_ALPHA_MODE_UNKNOWN: D2D1_ALPHA_MODE = 0u32;
6 pub const D2D1_ALPHA_MODE_PREMULTIPLIED: D2D1_ALPHA_MODE = 1u32;
7 pub const D2D1_ALPHA_MODE_STRAIGHT: D2D1_ALPHA_MODE = 2u32;
8 pub const D2D1_ALPHA_MODE_IGNORE: D2D1_ALPHA_MODE = 3u32;
9 pub const D2D1_ALPHA_MODE_FORCE_DWORD: D2D1_ALPHA_MODE = 4294967295u32;
10 #[repr(C)]
11 pub struct D2D1_BEZIER_SEGMENT {
12     pub point1: D2D_POINT_2F,
13     pub point2: D2D_POINT_2F,
14     pub point3: D2D_POINT_2F,
15 }
16 impl ::core::marker::Copy for D2D1_BEZIER_SEGMENT {}
17 impl ::core::clone::Clone for D2D1_BEZIER_SEGMENT {
clone(&self) -> Self18     fn clone(&self) -> Self {
19         *self
20     }
21 }
22 pub type D2D1_BLEND_MODE = u32;
23 pub const D2D1_BLEND_MODE_MULTIPLY: D2D1_BLEND_MODE = 0u32;
24 pub const D2D1_BLEND_MODE_SCREEN: D2D1_BLEND_MODE = 1u32;
25 pub const D2D1_BLEND_MODE_DARKEN: D2D1_BLEND_MODE = 2u32;
26 pub const D2D1_BLEND_MODE_LIGHTEN: D2D1_BLEND_MODE = 3u32;
27 pub const D2D1_BLEND_MODE_DISSOLVE: D2D1_BLEND_MODE = 4u32;
28 pub const D2D1_BLEND_MODE_COLOR_BURN: D2D1_BLEND_MODE = 5u32;
29 pub const D2D1_BLEND_MODE_LINEAR_BURN: D2D1_BLEND_MODE = 6u32;
30 pub const D2D1_BLEND_MODE_DARKER_COLOR: D2D1_BLEND_MODE = 7u32;
31 pub const D2D1_BLEND_MODE_LIGHTER_COLOR: D2D1_BLEND_MODE = 8u32;
32 pub const D2D1_BLEND_MODE_COLOR_DODGE: D2D1_BLEND_MODE = 9u32;
33 pub const D2D1_BLEND_MODE_LINEAR_DODGE: D2D1_BLEND_MODE = 10u32;
34 pub const D2D1_BLEND_MODE_OVERLAY: D2D1_BLEND_MODE = 11u32;
35 pub const D2D1_BLEND_MODE_SOFT_LIGHT: D2D1_BLEND_MODE = 12u32;
36 pub const D2D1_BLEND_MODE_HARD_LIGHT: D2D1_BLEND_MODE = 13u32;
37 pub const D2D1_BLEND_MODE_VIVID_LIGHT: D2D1_BLEND_MODE = 14u32;
38 pub const D2D1_BLEND_MODE_LINEAR_LIGHT: D2D1_BLEND_MODE = 15u32;
39 pub const D2D1_BLEND_MODE_PIN_LIGHT: D2D1_BLEND_MODE = 16u32;
40 pub const D2D1_BLEND_MODE_HARD_MIX: D2D1_BLEND_MODE = 17u32;
41 pub const D2D1_BLEND_MODE_DIFFERENCE: D2D1_BLEND_MODE = 18u32;
42 pub const D2D1_BLEND_MODE_EXCLUSION: D2D1_BLEND_MODE = 19u32;
43 pub const D2D1_BLEND_MODE_HUE: D2D1_BLEND_MODE = 20u32;
44 pub const D2D1_BLEND_MODE_SATURATION: D2D1_BLEND_MODE = 21u32;
45 pub const D2D1_BLEND_MODE_COLOR: D2D1_BLEND_MODE = 22u32;
46 pub const D2D1_BLEND_MODE_LUMINOSITY: D2D1_BLEND_MODE = 23u32;
47 pub const D2D1_BLEND_MODE_SUBTRACT: D2D1_BLEND_MODE = 24u32;
48 pub const D2D1_BLEND_MODE_DIVISION: D2D1_BLEND_MODE = 25u32;
49 pub const D2D1_BLEND_MODE_FORCE_DWORD: D2D1_BLEND_MODE = 4294967295u32;
50 pub type D2D1_BORDER_MODE = u32;
51 pub const D2D1_BORDER_MODE_SOFT: D2D1_BORDER_MODE = 0u32;
52 pub const D2D1_BORDER_MODE_HARD: D2D1_BORDER_MODE = 1u32;
53 pub const D2D1_BORDER_MODE_FORCE_DWORD: D2D1_BORDER_MODE = 4294967295u32;
54 pub type D2D1_COLORMATRIX_ALPHA_MODE = u32;
55 pub const D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED: D2D1_COLORMATRIX_ALPHA_MODE = 1u32;
56 pub const D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT: D2D1_COLORMATRIX_ALPHA_MODE = 2u32;
57 pub const D2D1_COLORMATRIX_ALPHA_MODE_FORCE_DWORD: D2D1_COLORMATRIX_ALPHA_MODE = 4294967295u32;
58 #[repr(C)]
59 pub struct D2D1_COLOR_F {
60     pub r: f32,
61     pub g: f32,
62     pub b: f32,
63     pub a: f32,
64 }
65 impl ::core::marker::Copy for D2D1_COLOR_F {}
66 impl ::core::clone::Clone for D2D1_COLOR_F {
clone(&self) -> Self67     fn clone(&self) -> Self {
68         *self
69     }
70 }
71 pub type D2D1_COMPOSITE_MODE = u32;
72 pub const D2D1_COMPOSITE_MODE_SOURCE_OVER: D2D1_COMPOSITE_MODE = 0u32;
73 pub const D2D1_COMPOSITE_MODE_DESTINATION_OVER: D2D1_COMPOSITE_MODE = 1u32;
74 pub const D2D1_COMPOSITE_MODE_SOURCE_IN: D2D1_COMPOSITE_MODE = 2u32;
75 pub const D2D1_COMPOSITE_MODE_DESTINATION_IN: D2D1_COMPOSITE_MODE = 3u32;
76 pub const D2D1_COMPOSITE_MODE_SOURCE_OUT: D2D1_COMPOSITE_MODE = 4u32;
77 pub const D2D1_COMPOSITE_MODE_DESTINATION_OUT: D2D1_COMPOSITE_MODE = 5u32;
78 pub const D2D1_COMPOSITE_MODE_SOURCE_ATOP: D2D1_COMPOSITE_MODE = 6u32;
79 pub const D2D1_COMPOSITE_MODE_DESTINATION_ATOP: D2D1_COMPOSITE_MODE = 7u32;
80 pub const D2D1_COMPOSITE_MODE_XOR: D2D1_COMPOSITE_MODE = 8u32;
81 pub const D2D1_COMPOSITE_MODE_PLUS: D2D1_COMPOSITE_MODE = 9u32;
82 pub const D2D1_COMPOSITE_MODE_SOURCE_COPY: D2D1_COMPOSITE_MODE = 10u32;
83 pub const D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY: D2D1_COMPOSITE_MODE = 11u32;
84 pub const D2D1_COMPOSITE_MODE_MASK_INVERT: D2D1_COMPOSITE_MODE = 12u32;
85 pub const D2D1_COMPOSITE_MODE_FORCE_DWORD: D2D1_COMPOSITE_MODE = 4294967295u32;
86 pub type D2D1_FIGURE_BEGIN = u32;
87 pub const D2D1_FIGURE_BEGIN_FILLED: D2D1_FIGURE_BEGIN = 0u32;
88 pub const D2D1_FIGURE_BEGIN_HOLLOW: D2D1_FIGURE_BEGIN = 1u32;
89 pub const D2D1_FIGURE_BEGIN_FORCE_DWORD: D2D1_FIGURE_BEGIN = 4294967295u32;
90 pub type D2D1_FIGURE_END = u32;
91 pub const D2D1_FIGURE_END_OPEN: D2D1_FIGURE_END = 0u32;
92 pub const D2D1_FIGURE_END_CLOSED: D2D1_FIGURE_END = 1u32;
93 pub const D2D1_FIGURE_END_FORCE_DWORD: D2D1_FIGURE_END = 4294967295u32;
94 pub type D2D1_FILL_MODE = u32;
95 pub const D2D1_FILL_MODE_ALTERNATE: D2D1_FILL_MODE = 0u32;
96 pub const D2D1_FILL_MODE_WINDING: D2D1_FILL_MODE = 1u32;
97 pub const D2D1_FILL_MODE_FORCE_DWORD: D2D1_FILL_MODE = 4294967295u32;
98 pub type D2D1_PATH_SEGMENT = u32;
99 pub const D2D1_PATH_SEGMENT_NONE: D2D1_PATH_SEGMENT = 0u32;
100 pub const D2D1_PATH_SEGMENT_FORCE_UNSTROKED: D2D1_PATH_SEGMENT = 1u32;
101 pub const D2D1_PATH_SEGMENT_FORCE_ROUND_LINE_JOIN: D2D1_PATH_SEGMENT = 2u32;
102 pub const D2D1_PATH_SEGMENT_FORCE_DWORD: D2D1_PATH_SEGMENT = 4294967295u32;
103 #[repr(C)]
104 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
105 pub struct D2D1_PIXEL_FORMAT {
106     pub format: super::super::Dxgi::Common::DXGI_FORMAT,
107     pub alphaMode: D2D1_ALPHA_MODE,
108 }
109 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
110 impl ::core::marker::Copy for D2D1_PIXEL_FORMAT {}
111 #[cfg(feature = "Win32_Graphics_Dxgi_Common")]
112 impl ::core::clone::Clone for D2D1_PIXEL_FORMAT {
clone(&self) -> Self113     fn clone(&self) -> Self {
114         *self
115     }
116 }
117 pub type D2D1_TURBULENCE_NOISE = u32;
118 pub const D2D1_TURBULENCE_NOISE_FRACTAL_SUM: D2D1_TURBULENCE_NOISE = 0u32;
119 pub const D2D1_TURBULENCE_NOISE_TURBULENCE: D2D1_TURBULENCE_NOISE = 1u32;
120 pub const D2D1_TURBULENCE_NOISE_FORCE_DWORD: D2D1_TURBULENCE_NOISE = 4294967295u32;
121 #[repr(C)]
122 pub struct D2D_COLOR_F {
123     pub r: f32,
124     pub g: f32,
125     pub b: f32,
126     pub a: f32,
127 }
128 impl ::core::marker::Copy for D2D_COLOR_F {}
129 impl ::core::clone::Clone for D2D_COLOR_F {
clone(&self) -> Self130     fn clone(&self) -> Self {
131         *self
132     }
133 }
134 #[repr(C)]
135 pub struct D2D_MATRIX_3X2_F {
136     pub Anonymous: D2D_MATRIX_3X2_F_0,
137 }
138 impl ::core::marker::Copy for D2D_MATRIX_3X2_F {}
139 impl ::core::clone::Clone for D2D_MATRIX_3X2_F {
clone(&self) -> Self140     fn clone(&self) -> Self {
141         *self
142     }
143 }
144 #[repr(C)]
145 pub union D2D_MATRIX_3X2_F_0 {
146     pub Anonymous1: D2D_MATRIX_3X2_F_0_0,
147     pub Anonymous2: D2D_MATRIX_3X2_F_0_1,
148     pub m: [f32; 6],
149 }
150 impl ::core::marker::Copy for D2D_MATRIX_3X2_F_0 {}
151 impl ::core::clone::Clone for D2D_MATRIX_3X2_F_0 {
clone(&self) -> Self152     fn clone(&self) -> Self {
153         *self
154     }
155 }
156 #[repr(C)]
157 pub struct D2D_MATRIX_3X2_F_0_0 {
158     pub m11: f32,
159     pub m12: f32,
160     pub m21: f32,
161     pub m22: f32,
162     pub dx: f32,
163     pub dy: f32,
164 }
165 impl ::core::marker::Copy for D2D_MATRIX_3X2_F_0_0 {}
166 impl ::core::clone::Clone for D2D_MATRIX_3X2_F_0_0 {
clone(&self) -> Self167     fn clone(&self) -> Self {
168         *self
169     }
170 }
171 #[repr(C)]
172 pub struct D2D_MATRIX_3X2_F_0_1 {
173     pub _11: f32,
174     pub _12: f32,
175     pub _21: f32,
176     pub _22: f32,
177     pub _31: f32,
178     pub _32: f32,
179 }
180 impl ::core::marker::Copy for D2D_MATRIX_3X2_F_0_1 {}
181 impl ::core::clone::Clone for D2D_MATRIX_3X2_F_0_1 {
clone(&self) -> Self182     fn clone(&self) -> Self {
183         *self
184     }
185 }
186 #[repr(C)]
187 pub struct D2D_MATRIX_4X3_F {
188     pub Anonymous: D2D_MATRIX_4X3_F_0,
189 }
190 impl ::core::marker::Copy for D2D_MATRIX_4X3_F {}
191 impl ::core::clone::Clone for D2D_MATRIX_4X3_F {
clone(&self) -> Self192     fn clone(&self) -> Self {
193         *self
194     }
195 }
196 #[repr(C)]
197 pub union D2D_MATRIX_4X3_F_0 {
198     pub Anonymous: D2D_MATRIX_4X3_F_0_0,
199     pub m: [f32; 12],
200 }
201 impl ::core::marker::Copy for D2D_MATRIX_4X3_F_0 {}
202 impl ::core::clone::Clone for D2D_MATRIX_4X3_F_0 {
clone(&self) -> Self203     fn clone(&self) -> Self {
204         *self
205     }
206 }
207 #[repr(C)]
208 pub struct D2D_MATRIX_4X3_F_0_0 {
209     pub _11: f32,
210     pub _12: f32,
211     pub _13: f32,
212     pub _21: f32,
213     pub _22: f32,
214     pub _23: f32,
215     pub _31: f32,
216     pub _32: f32,
217     pub _33: f32,
218     pub _41: f32,
219     pub _42: f32,
220     pub _43: f32,
221 }
222 impl ::core::marker::Copy for D2D_MATRIX_4X3_F_0_0 {}
223 impl ::core::clone::Clone for D2D_MATRIX_4X3_F_0_0 {
clone(&self) -> Self224     fn clone(&self) -> Self {
225         *self
226     }
227 }
228 #[repr(C)]
229 pub struct D2D_MATRIX_4X4_F {
230     pub Anonymous: D2D_MATRIX_4X4_F_0,
231 }
232 impl ::core::marker::Copy for D2D_MATRIX_4X4_F {}
233 impl ::core::clone::Clone for D2D_MATRIX_4X4_F {
clone(&self) -> Self234     fn clone(&self) -> Self {
235         *self
236     }
237 }
238 #[repr(C)]
239 pub union D2D_MATRIX_4X4_F_0 {
240     pub Anonymous: D2D_MATRIX_4X4_F_0_0,
241     pub m: [f32; 16],
242 }
243 impl ::core::marker::Copy for D2D_MATRIX_4X4_F_0 {}
244 impl ::core::clone::Clone for D2D_MATRIX_4X4_F_0 {
clone(&self) -> Self245     fn clone(&self) -> Self {
246         *self
247     }
248 }
249 #[repr(C)]
250 pub struct D2D_MATRIX_4X4_F_0_0 {
251     pub _11: f32,
252     pub _12: f32,
253     pub _13: f32,
254     pub _14: f32,
255     pub _21: f32,
256     pub _22: f32,
257     pub _23: f32,
258     pub _24: f32,
259     pub _31: f32,
260     pub _32: f32,
261     pub _33: f32,
262     pub _34: f32,
263     pub _41: f32,
264     pub _42: f32,
265     pub _43: f32,
266     pub _44: f32,
267 }
268 impl ::core::marker::Copy for D2D_MATRIX_4X4_F_0_0 {}
269 impl ::core::clone::Clone for D2D_MATRIX_4X4_F_0_0 {
clone(&self) -> Self270     fn clone(&self) -> Self {
271         *self
272     }
273 }
274 #[repr(C)]
275 pub struct D2D_MATRIX_5X4_F {
276     pub Anonymous: D2D_MATRIX_5X4_F_0,
277 }
278 impl ::core::marker::Copy for D2D_MATRIX_5X4_F {}
279 impl ::core::clone::Clone for D2D_MATRIX_5X4_F {
clone(&self) -> Self280     fn clone(&self) -> Self {
281         *self
282     }
283 }
284 #[repr(C)]
285 pub union D2D_MATRIX_5X4_F_0 {
286     pub Anonymous: D2D_MATRIX_5X4_F_0_0,
287     pub m: [f32; 20],
288 }
289 impl ::core::marker::Copy for D2D_MATRIX_5X4_F_0 {}
290 impl ::core::clone::Clone for D2D_MATRIX_5X4_F_0 {
clone(&self) -> Self291     fn clone(&self) -> Self {
292         *self
293     }
294 }
295 #[repr(C)]
296 pub struct D2D_MATRIX_5X4_F_0_0 {
297     pub _11: f32,
298     pub _12: f32,
299     pub _13: f32,
300     pub _14: f32,
301     pub _21: f32,
302     pub _22: f32,
303     pub _23: f32,
304     pub _24: f32,
305     pub _31: f32,
306     pub _32: f32,
307     pub _33: f32,
308     pub _34: f32,
309     pub _41: f32,
310     pub _42: f32,
311     pub _43: f32,
312     pub _44: f32,
313     pub _51: f32,
314     pub _52: f32,
315     pub _53: f32,
316     pub _54: f32,
317 }
318 impl ::core::marker::Copy for D2D_MATRIX_5X4_F_0_0 {}
319 impl ::core::clone::Clone for D2D_MATRIX_5X4_F_0_0 {
clone(&self) -> Self320     fn clone(&self) -> Self {
321         *self
322     }
323 }
324 #[repr(C)]
325 pub struct D2D_POINT_2F {
326     pub x: f32,
327     pub y: f32,
328 }
329 impl ::core::marker::Copy for D2D_POINT_2F {}
330 impl ::core::clone::Clone for D2D_POINT_2F {
clone(&self) -> Self331     fn clone(&self) -> Self {
332         *self
333     }
334 }
335 #[repr(C)]
336 pub struct D2D_POINT_2U {
337     pub x: u32,
338     pub y: u32,
339 }
340 impl ::core::marker::Copy for D2D_POINT_2U {}
341 impl ::core::clone::Clone for D2D_POINT_2U {
clone(&self) -> Self342     fn clone(&self) -> Self {
343         *self
344     }
345 }
346 #[repr(C)]
347 pub struct D2D_RECT_F {
348     pub left: f32,
349     pub top: f32,
350     pub right: f32,
351     pub bottom: f32,
352 }
353 impl ::core::marker::Copy for D2D_RECT_F {}
354 impl ::core::clone::Clone for D2D_RECT_F {
clone(&self) -> Self355     fn clone(&self) -> Self {
356         *self
357     }
358 }
359 #[repr(C)]
360 pub struct D2D_RECT_U {
361     pub left: u32,
362     pub top: u32,
363     pub right: u32,
364     pub bottom: u32,
365 }
366 impl ::core::marker::Copy for D2D_RECT_U {}
367 impl ::core::clone::Clone for D2D_RECT_U {
clone(&self) -> Self368     fn clone(&self) -> Self {
369         *self
370     }
371 }
372 #[repr(C)]
373 pub struct D2D_SIZE_F {
374     pub width: f32,
375     pub height: f32,
376 }
377 impl ::core::marker::Copy for D2D_SIZE_F {}
378 impl ::core::clone::Clone for D2D_SIZE_F {
clone(&self) -> Self379     fn clone(&self) -> Self {
380         *self
381     }
382 }
383 #[repr(C)]
384 pub struct D2D_SIZE_U {
385     pub width: u32,
386     pub height: u32,
387 }
388 impl ::core::marker::Copy for D2D_SIZE_U {}
389 impl ::core::clone::Clone for D2D_SIZE_U {
clone(&self) -> Self390     fn clone(&self) -> Self {
391         *self
392     }
393 }
394 #[repr(C)]
395 pub struct D2D_VECTOR_2F {
396     pub x: f32,
397     pub y: f32,
398 }
399 impl ::core::marker::Copy for D2D_VECTOR_2F {}
400 impl ::core::clone::Clone for D2D_VECTOR_2F {
clone(&self) -> Self401     fn clone(&self) -> Self {
402         *self
403     }
404 }
405 #[repr(C)]
406 pub struct D2D_VECTOR_3F {
407     pub x: f32,
408     pub y: f32,
409     pub z: f32,
410 }
411 impl ::core::marker::Copy for D2D_VECTOR_3F {}
412 impl ::core::clone::Clone for D2D_VECTOR_3F {
clone(&self) -> Self413     fn clone(&self) -> Self {
414         *self
415     }
416 }
417 #[repr(C)]
418 pub struct D2D_VECTOR_4F {
419     pub x: f32,
420     pub y: f32,
421     pub z: f32,
422     pub w: f32,
423 }
424 impl ::core::marker::Copy for D2D_VECTOR_4F {}
425 impl ::core::clone::Clone for D2D_VECTOR_4F {
clone(&self) -> Self426     fn clone(&self) -> Self {
427         *self
428     }
429 }
430 pub type ID2D1SimplifiedGeometrySink = *mut ::core::ffi::c_void;
431