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