1 use std::fmt; 2 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 3 #[repr(transparent)] 4 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageLayout.html>"] 5 pub struct ImageLayout(pub(crate) i32); 6 impl ImageLayout { from_raw(x: i32) -> Self7 pub const fn from_raw(x: i32) -> Self { 8 ImageLayout(x) 9 } as_raw(self) -> i3210 pub const fn as_raw(self) -> i32 { 11 self.0 12 } 13 } 14 impl ImageLayout { 15 #[doc = "Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)"] 16 pub const UNDEFINED: Self = Self(0); 17 #[doc = "General layout when image can be used for any kind of access"] 18 pub const GENERAL: Self = Self(1); 19 #[doc = "Optimal layout when image is only used for color attachment read/write"] 20 pub const COLOR_ATTACHMENT_OPTIMAL: Self = Self(2); 21 #[doc = "Optimal layout when image is only used for depth/stencil attachment read/write"] 22 pub const DEPTH_STENCIL_ATTACHMENT_OPTIMAL: Self = Self(3); 23 #[doc = "Optimal layout when image is used for read only depth/stencil attachment and shader access"] 24 pub const DEPTH_STENCIL_READ_ONLY_OPTIMAL: Self = Self(4); 25 #[doc = "Optimal layout when image is used for read only shader access"] 26 pub const SHADER_READ_ONLY_OPTIMAL: Self = Self(5); 27 #[doc = "Optimal layout when image is used only as source of transfer operations"] 28 pub const TRANSFER_SRC_OPTIMAL: Self = Self(6); 29 #[doc = "Optimal layout when image is used only as destination of transfer operations"] 30 pub const TRANSFER_DST_OPTIMAL: Self = Self(7); 31 #[doc = "Initial layout used when the data is populated by the CPU"] 32 pub const PREINITIALIZED: Self = Self(8); 33 } 34 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 35 #[repr(transparent)] 36 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAttachmentLoadOp.html>"] 37 pub struct AttachmentLoadOp(pub(crate) i32); 38 impl AttachmentLoadOp { from_raw(x: i32) -> Self39 pub const fn from_raw(x: i32) -> Self { 40 AttachmentLoadOp(x) 41 } as_raw(self) -> i3242 pub const fn as_raw(self) -> i32 { 43 self.0 44 } 45 } 46 impl AttachmentLoadOp { 47 pub const LOAD: Self = Self(0); 48 pub const CLEAR: Self = Self(1); 49 pub const DONT_CARE: Self = Self(2); 50 } 51 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 52 #[repr(transparent)] 53 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAttachmentStoreOp.html>"] 54 pub struct AttachmentStoreOp(pub(crate) i32); 55 impl AttachmentStoreOp { from_raw(x: i32) -> Self56 pub const fn from_raw(x: i32) -> Self { 57 AttachmentStoreOp(x) 58 } as_raw(self) -> i3259 pub const fn as_raw(self) -> i32 { 60 self.0 61 } 62 } 63 impl AttachmentStoreOp { 64 pub const STORE: Self = Self(0); 65 pub const DONT_CARE: Self = Self(1); 66 } 67 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 68 #[repr(transparent)] 69 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageType.html>"] 70 pub struct ImageType(pub(crate) i32); 71 impl ImageType { from_raw(x: i32) -> Self72 pub const fn from_raw(x: i32) -> Self { 73 ImageType(x) 74 } as_raw(self) -> i3275 pub const fn as_raw(self) -> i32 { 76 self.0 77 } 78 } 79 impl ImageType { 80 pub const TYPE_1D: Self = Self(0); 81 pub const TYPE_2D: Self = Self(1); 82 pub const TYPE_3D: Self = Self(2); 83 } 84 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 85 #[repr(transparent)] 86 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageTiling.html>"] 87 pub struct ImageTiling(pub(crate) i32); 88 impl ImageTiling { from_raw(x: i32) -> Self89 pub const fn from_raw(x: i32) -> Self { 90 ImageTiling(x) 91 } as_raw(self) -> i3292 pub const fn as_raw(self) -> i32 { 93 self.0 94 } 95 } 96 impl ImageTiling { 97 pub const OPTIMAL: Self = Self(0); 98 pub const LINEAR: Self = Self(1); 99 } 100 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 101 #[repr(transparent)] 102 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkImageViewType.html>"] 103 pub struct ImageViewType(pub(crate) i32); 104 impl ImageViewType { from_raw(x: i32) -> Self105 pub const fn from_raw(x: i32) -> Self { 106 ImageViewType(x) 107 } as_raw(self) -> i32108 pub const fn as_raw(self) -> i32 { 109 self.0 110 } 111 } 112 impl ImageViewType { 113 pub const TYPE_1D: Self = Self(0); 114 pub const TYPE_2D: Self = Self(1); 115 pub const TYPE_3D: Self = Self(2); 116 pub const CUBE: Self = Self(3); 117 pub const TYPE_1D_ARRAY: Self = Self(4); 118 pub const TYPE_2D_ARRAY: Self = Self(5); 119 pub const CUBE_ARRAY: Self = Self(6); 120 } 121 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 122 #[repr(transparent)] 123 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCommandBufferLevel.html>"] 124 pub struct CommandBufferLevel(pub(crate) i32); 125 impl CommandBufferLevel { from_raw(x: i32) -> Self126 pub const fn from_raw(x: i32) -> Self { 127 CommandBufferLevel(x) 128 } as_raw(self) -> i32129 pub const fn as_raw(self) -> i32 { 130 self.0 131 } 132 } 133 impl CommandBufferLevel { 134 pub const PRIMARY: Self = Self(0); 135 pub const SECONDARY: Self = Self(1); 136 } 137 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 138 #[repr(transparent)] 139 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkComponentSwizzle.html>"] 140 pub struct ComponentSwizzle(pub(crate) i32); 141 impl ComponentSwizzle { from_raw(x: i32) -> Self142 pub const fn from_raw(x: i32) -> Self { 143 ComponentSwizzle(x) 144 } as_raw(self) -> i32145 pub const fn as_raw(self) -> i32 { 146 self.0 147 } 148 } 149 impl ComponentSwizzle { 150 pub const IDENTITY: Self = Self(0); 151 pub const ZERO: Self = Self(1); 152 pub const ONE: Self = Self(2); 153 pub const R: Self = Self(3); 154 pub const G: Self = Self(4); 155 pub const B: Self = Self(5); 156 pub const A: Self = Self(6); 157 } 158 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 159 #[repr(transparent)] 160 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorType.html>"] 161 pub struct DescriptorType(pub(crate) i32); 162 impl DescriptorType { from_raw(x: i32) -> Self163 pub const fn from_raw(x: i32) -> Self { 164 DescriptorType(x) 165 } as_raw(self) -> i32166 pub const fn as_raw(self) -> i32 { 167 self.0 168 } 169 } 170 impl DescriptorType { 171 pub const SAMPLER: Self = Self(0); 172 pub const COMBINED_IMAGE_SAMPLER: Self = Self(1); 173 pub const SAMPLED_IMAGE: Self = Self(2); 174 pub const STORAGE_IMAGE: Self = Self(3); 175 pub const UNIFORM_TEXEL_BUFFER: Self = Self(4); 176 pub const STORAGE_TEXEL_BUFFER: Self = Self(5); 177 pub const UNIFORM_BUFFER: Self = Self(6); 178 pub const STORAGE_BUFFER: Self = Self(7); 179 pub const UNIFORM_BUFFER_DYNAMIC: Self = Self(8); 180 pub const STORAGE_BUFFER_DYNAMIC: Self = Self(9); 181 pub const INPUT_ATTACHMENT: Self = Self(10); 182 } 183 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 184 #[repr(transparent)] 185 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryType.html>"] 186 pub struct QueryType(pub(crate) i32); 187 impl QueryType { from_raw(x: i32) -> Self188 pub const fn from_raw(x: i32) -> Self { 189 QueryType(x) 190 } as_raw(self) -> i32191 pub const fn as_raw(self) -> i32 { 192 self.0 193 } 194 } 195 impl QueryType { 196 pub const OCCLUSION: Self = Self(0); 197 #[doc = "Optional"] 198 pub const PIPELINE_STATISTICS: Self = Self(1); 199 pub const TIMESTAMP: Self = Self(2); 200 } 201 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 202 #[repr(transparent)] 203 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBorderColor.html>"] 204 pub struct BorderColor(pub(crate) i32); 205 impl BorderColor { from_raw(x: i32) -> Self206 pub const fn from_raw(x: i32) -> Self { 207 BorderColor(x) 208 } as_raw(self) -> i32209 pub const fn as_raw(self) -> i32 { 210 self.0 211 } 212 } 213 impl BorderColor { 214 pub const FLOAT_TRANSPARENT_BLACK: Self = Self(0); 215 pub const INT_TRANSPARENT_BLACK: Self = Self(1); 216 pub const FLOAT_OPAQUE_BLACK: Self = Self(2); 217 pub const INT_OPAQUE_BLACK: Self = Self(3); 218 pub const FLOAT_OPAQUE_WHITE: Self = Self(4); 219 pub const INT_OPAQUE_WHITE: Self = Self(5); 220 } 221 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 222 #[repr(transparent)] 223 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineBindPoint.html>"] 224 pub struct PipelineBindPoint(pub(crate) i32); 225 impl PipelineBindPoint { from_raw(x: i32) -> Self226 pub const fn from_raw(x: i32) -> Self { 227 PipelineBindPoint(x) 228 } as_raw(self) -> i32229 pub const fn as_raw(self) -> i32 { 230 self.0 231 } 232 } 233 impl PipelineBindPoint { 234 pub const GRAPHICS: Self = Self(0); 235 pub const COMPUTE: Self = Self(1); 236 } 237 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 238 #[repr(transparent)] 239 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineCacheHeaderVersion.html>"] 240 pub struct PipelineCacheHeaderVersion(pub(crate) i32); 241 impl PipelineCacheHeaderVersion { from_raw(x: i32) -> Self242 pub const fn from_raw(x: i32) -> Self { 243 PipelineCacheHeaderVersion(x) 244 } as_raw(self) -> i32245 pub const fn as_raw(self) -> i32 { 246 self.0 247 } 248 } 249 impl PipelineCacheHeaderVersion { 250 pub const ONE: Self = Self(1); 251 } 252 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 253 #[repr(transparent)] 254 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPrimitiveTopology.html>"] 255 pub struct PrimitiveTopology(pub(crate) i32); 256 impl PrimitiveTopology { from_raw(x: i32) -> Self257 pub const fn from_raw(x: i32) -> Self { 258 PrimitiveTopology(x) 259 } as_raw(self) -> i32260 pub const fn as_raw(self) -> i32 { 261 self.0 262 } 263 } 264 impl PrimitiveTopology { 265 pub const POINT_LIST: Self = Self(0); 266 pub const LINE_LIST: Self = Self(1); 267 pub const LINE_STRIP: Self = Self(2); 268 pub const TRIANGLE_LIST: Self = Self(3); 269 pub const TRIANGLE_STRIP: Self = Self(4); 270 pub const TRIANGLE_FAN: Self = Self(5); 271 pub const LINE_LIST_WITH_ADJACENCY: Self = Self(6); 272 pub const LINE_STRIP_WITH_ADJACENCY: Self = Self(7); 273 pub const TRIANGLE_LIST_WITH_ADJACENCY: Self = Self(8); 274 pub const TRIANGLE_STRIP_WITH_ADJACENCY: Self = Self(9); 275 pub const PATCH_LIST: Self = Self(10); 276 } 277 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 278 #[repr(transparent)] 279 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSharingMode.html>"] 280 pub struct SharingMode(pub(crate) i32); 281 impl SharingMode { from_raw(x: i32) -> Self282 pub const fn from_raw(x: i32) -> Self { 283 SharingMode(x) 284 } as_raw(self) -> i32285 pub const fn as_raw(self) -> i32 { 286 self.0 287 } 288 } 289 impl SharingMode { 290 pub const EXCLUSIVE: Self = Self(0); 291 pub const CONCURRENT: Self = Self(1); 292 } 293 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 294 #[repr(transparent)] 295 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkIndexType.html>"] 296 pub struct IndexType(pub(crate) i32); 297 impl IndexType { from_raw(x: i32) -> Self298 pub const fn from_raw(x: i32) -> Self { 299 IndexType(x) 300 } as_raw(self) -> i32301 pub const fn as_raw(self) -> i32 { 302 self.0 303 } 304 } 305 impl IndexType { 306 pub const UINT16: Self = Self(0); 307 pub const UINT32: Self = Self(1); 308 } 309 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 310 #[repr(transparent)] 311 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFilter.html>"] 312 pub struct Filter(pub(crate) i32); 313 impl Filter { from_raw(x: i32) -> Self314 pub const fn from_raw(x: i32) -> Self { 315 Filter(x) 316 } as_raw(self) -> i32317 pub const fn as_raw(self) -> i32 { 318 self.0 319 } 320 } 321 impl Filter { 322 pub const NEAREST: Self = Self(0); 323 pub const LINEAR: Self = Self(1); 324 } 325 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 326 #[repr(transparent)] 327 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerMipmapMode.html>"] 328 pub struct SamplerMipmapMode(pub(crate) i32); 329 impl SamplerMipmapMode { from_raw(x: i32) -> Self330 pub const fn from_raw(x: i32) -> Self { 331 SamplerMipmapMode(x) 332 } as_raw(self) -> i32333 pub const fn as_raw(self) -> i32 { 334 self.0 335 } 336 } 337 impl SamplerMipmapMode { 338 #[doc = "Choose nearest mip level"] 339 pub const NEAREST: Self = Self(0); 340 #[doc = "Linear filter between mip levels"] 341 pub const LINEAR: Self = Self(1); 342 } 343 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 344 #[repr(transparent)] 345 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerAddressMode.html>"] 346 pub struct SamplerAddressMode(pub(crate) i32); 347 impl SamplerAddressMode { from_raw(x: i32) -> Self348 pub const fn from_raw(x: i32) -> Self { 349 SamplerAddressMode(x) 350 } as_raw(self) -> i32351 pub const fn as_raw(self) -> i32 { 352 self.0 353 } 354 } 355 impl SamplerAddressMode { 356 pub const REPEAT: Self = Self(0); 357 pub const MIRRORED_REPEAT: Self = Self(1); 358 pub const CLAMP_TO_EDGE: Self = Self(2); 359 pub const CLAMP_TO_BORDER: Self = Self(3); 360 } 361 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 362 #[repr(transparent)] 363 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCompareOp.html>"] 364 pub struct CompareOp(pub(crate) i32); 365 impl CompareOp { from_raw(x: i32) -> Self366 pub const fn from_raw(x: i32) -> Self { 367 CompareOp(x) 368 } as_raw(self) -> i32369 pub const fn as_raw(self) -> i32 { 370 self.0 371 } 372 } 373 impl CompareOp { 374 pub const NEVER: Self = Self(0); 375 pub const LESS: Self = Self(1); 376 pub const EQUAL: Self = Self(2); 377 pub const LESS_OR_EQUAL: Self = Self(3); 378 pub const GREATER: Self = Self(4); 379 pub const NOT_EQUAL: Self = Self(5); 380 pub const GREATER_OR_EQUAL: Self = Self(6); 381 pub const ALWAYS: Self = Self(7); 382 } 383 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 384 #[repr(transparent)] 385 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPolygonMode.html>"] 386 pub struct PolygonMode(pub(crate) i32); 387 impl PolygonMode { from_raw(x: i32) -> Self388 pub const fn from_raw(x: i32) -> Self { 389 PolygonMode(x) 390 } as_raw(self) -> i32391 pub const fn as_raw(self) -> i32 { 392 self.0 393 } 394 } 395 impl PolygonMode { 396 pub const FILL: Self = Self(0); 397 pub const LINE: Self = Self(1); 398 pub const POINT: Self = Self(2); 399 } 400 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 401 #[repr(transparent)] 402 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFrontFace.html>"] 403 pub struct FrontFace(pub(crate) i32); 404 impl FrontFace { from_raw(x: i32) -> Self405 pub const fn from_raw(x: i32) -> Self { 406 FrontFace(x) 407 } as_raw(self) -> i32408 pub const fn as_raw(self) -> i32 { 409 self.0 410 } 411 } 412 impl FrontFace { 413 pub const COUNTER_CLOCKWISE: Self = Self(0); 414 pub const CLOCKWISE: Self = Self(1); 415 } 416 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 417 #[repr(transparent)] 418 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBlendFactor.html>"] 419 pub struct BlendFactor(pub(crate) i32); 420 impl BlendFactor { from_raw(x: i32) -> Self421 pub const fn from_raw(x: i32) -> Self { 422 BlendFactor(x) 423 } as_raw(self) -> i32424 pub const fn as_raw(self) -> i32 { 425 self.0 426 } 427 } 428 impl BlendFactor { 429 pub const ZERO: Self = Self(0); 430 pub const ONE: Self = Self(1); 431 pub const SRC_COLOR: Self = Self(2); 432 pub const ONE_MINUS_SRC_COLOR: Self = Self(3); 433 pub const DST_COLOR: Self = Self(4); 434 pub const ONE_MINUS_DST_COLOR: Self = Self(5); 435 pub const SRC_ALPHA: Self = Self(6); 436 pub const ONE_MINUS_SRC_ALPHA: Self = Self(7); 437 pub const DST_ALPHA: Self = Self(8); 438 pub const ONE_MINUS_DST_ALPHA: Self = Self(9); 439 pub const CONSTANT_COLOR: Self = Self(10); 440 pub const ONE_MINUS_CONSTANT_COLOR: Self = Self(11); 441 pub const CONSTANT_ALPHA: Self = Self(12); 442 pub const ONE_MINUS_CONSTANT_ALPHA: Self = Self(13); 443 pub const SRC_ALPHA_SATURATE: Self = Self(14); 444 pub const SRC1_COLOR: Self = Self(15); 445 pub const ONE_MINUS_SRC1_COLOR: Self = Self(16); 446 pub const SRC1_ALPHA: Self = Self(17); 447 pub const ONE_MINUS_SRC1_ALPHA: Self = Self(18); 448 } 449 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 450 #[repr(transparent)] 451 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBlendOp.html>"] 452 pub struct BlendOp(pub(crate) i32); 453 impl BlendOp { from_raw(x: i32) -> Self454 pub const fn from_raw(x: i32) -> Self { 455 BlendOp(x) 456 } as_raw(self) -> i32457 pub const fn as_raw(self) -> i32 { 458 self.0 459 } 460 } 461 impl BlendOp { 462 pub const ADD: Self = Self(0); 463 pub const SUBTRACT: Self = Self(1); 464 pub const REVERSE_SUBTRACT: Self = Self(2); 465 pub const MIN: Self = Self(3); 466 pub const MAX: Self = Self(4); 467 } 468 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 469 #[repr(transparent)] 470 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkStencilOp.html>"] 471 pub struct StencilOp(pub(crate) i32); 472 impl StencilOp { from_raw(x: i32) -> Self473 pub const fn from_raw(x: i32) -> Self { 474 StencilOp(x) 475 } as_raw(self) -> i32476 pub const fn as_raw(self) -> i32 { 477 self.0 478 } 479 } 480 impl StencilOp { 481 pub const KEEP: Self = Self(0); 482 pub const ZERO: Self = Self(1); 483 pub const REPLACE: Self = Self(2); 484 pub const INCREMENT_AND_CLAMP: Self = Self(3); 485 pub const DECREMENT_AND_CLAMP: Self = Self(4); 486 pub const INVERT: Self = Self(5); 487 pub const INCREMENT_AND_WRAP: Self = Self(6); 488 pub const DECREMENT_AND_WRAP: Self = Self(7); 489 } 490 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 491 #[repr(transparent)] 492 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkLogicOp.html>"] 493 pub struct LogicOp(pub(crate) i32); 494 impl LogicOp { from_raw(x: i32) -> Self495 pub const fn from_raw(x: i32) -> Self { 496 LogicOp(x) 497 } as_raw(self) -> i32498 pub const fn as_raw(self) -> i32 { 499 self.0 500 } 501 } 502 impl LogicOp { 503 pub const CLEAR: Self = Self(0); 504 pub const AND: Self = Self(1); 505 pub const AND_REVERSE: Self = Self(2); 506 pub const COPY: Self = Self(3); 507 pub const AND_INVERTED: Self = Self(4); 508 pub const NO_OP: Self = Self(5); 509 pub const XOR: Self = Self(6); 510 pub const OR: Self = Self(7); 511 pub const NOR: Self = Self(8); 512 pub const EQUIVALENT: Self = Self(9); 513 pub const INVERT: Self = Self(10); 514 pub const OR_REVERSE: Self = Self(11); 515 pub const COPY_INVERTED: Self = Self(12); 516 pub const OR_INVERTED: Self = Self(13); 517 pub const NAND: Self = Self(14); 518 pub const SET: Self = Self(15); 519 } 520 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 521 #[repr(transparent)] 522 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkInternalAllocationType.html>"] 523 pub struct InternalAllocationType(pub(crate) i32); 524 impl InternalAllocationType { from_raw(x: i32) -> Self525 pub const fn from_raw(x: i32) -> Self { 526 InternalAllocationType(x) 527 } as_raw(self) -> i32528 pub const fn as_raw(self) -> i32 { 529 self.0 530 } 531 } 532 impl InternalAllocationType { 533 pub const EXECUTABLE: Self = Self(0); 534 } 535 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 536 #[repr(transparent)] 537 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSystemAllocationScope.html>"] 538 pub struct SystemAllocationScope(pub(crate) i32); 539 impl SystemAllocationScope { from_raw(x: i32) -> Self540 pub const fn from_raw(x: i32) -> Self { 541 SystemAllocationScope(x) 542 } as_raw(self) -> i32543 pub const fn as_raw(self) -> i32 { 544 self.0 545 } 546 } 547 impl SystemAllocationScope { 548 pub const COMMAND: Self = Self(0); 549 pub const OBJECT: Self = Self(1); 550 pub const CACHE: Self = Self(2); 551 pub const DEVICE: Self = Self(3); 552 pub const INSTANCE: Self = Self(4); 553 } 554 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 555 #[repr(transparent)] 556 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPhysicalDeviceType.html>"] 557 pub struct PhysicalDeviceType(pub(crate) i32); 558 impl PhysicalDeviceType { from_raw(x: i32) -> Self559 pub const fn from_raw(x: i32) -> Self { 560 PhysicalDeviceType(x) 561 } as_raw(self) -> i32562 pub const fn as_raw(self) -> i32 { 563 self.0 564 } 565 } 566 impl PhysicalDeviceType { 567 pub const OTHER: Self = Self(0); 568 pub const INTEGRATED_GPU: Self = Self(1); 569 pub const DISCRETE_GPU: Self = Self(2); 570 pub const VIRTUAL_GPU: Self = Self(3); 571 pub const CPU: Self = Self(4); 572 } 573 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 574 #[repr(transparent)] 575 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkVertexInputRate.html>"] 576 pub struct VertexInputRate(pub(crate) i32); 577 impl VertexInputRate { from_raw(x: i32) -> Self578 pub const fn from_raw(x: i32) -> Self { 579 VertexInputRate(x) 580 } as_raw(self) -> i32581 pub const fn as_raw(self) -> i32 { 582 self.0 583 } 584 } 585 impl VertexInputRate { 586 pub const VERTEX: Self = Self(0); 587 pub const INSTANCE: Self = Self(1); 588 } 589 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 590 #[repr(transparent)] 591 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFormat.html>"] 592 pub struct Format(pub(crate) i32); 593 impl Format { from_raw(x: i32) -> Self594 pub const fn from_raw(x: i32) -> Self { 595 Format(x) 596 } as_raw(self) -> i32597 pub const fn as_raw(self) -> i32 { 598 self.0 599 } 600 } 601 impl Format { 602 pub const UNDEFINED: Self = Self(0); 603 pub const R4G4_UNORM_PACK8: Self = Self(1); 604 pub const R4G4B4A4_UNORM_PACK16: Self = Self(2); 605 pub const B4G4R4A4_UNORM_PACK16: Self = Self(3); 606 pub const R5G6B5_UNORM_PACK16: Self = Self(4); 607 pub const B5G6R5_UNORM_PACK16: Self = Self(5); 608 pub const R5G5B5A1_UNORM_PACK16: Self = Self(6); 609 pub const B5G5R5A1_UNORM_PACK16: Self = Self(7); 610 pub const A1R5G5B5_UNORM_PACK16: Self = Self(8); 611 pub const R8_UNORM: Self = Self(9); 612 pub const R8_SNORM: Self = Self(10); 613 pub const R8_USCALED: Self = Self(11); 614 pub const R8_SSCALED: Self = Self(12); 615 pub const R8_UINT: Self = Self(13); 616 pub const R8_SINT: Self = Self(14); 617 pub const R8_SRGB: Self = Self(15); 618 pub const R8G8_UNORM: Self = Self(16); 619 pub const R8G8_SNORM: Self = Self(17); 620 pub const R8G8_USCALED: Self = Self(18); 621 pub const R8G8_SSCALED: Self = Self(19); 622 pub const R8G8_UINT: Self = Self(20); 623 pub const R8G8_SINT: Self = Self(21); 624 pub const R8G8_SRGB: Self = Self(22); 625 pub const R8G8B8_UNORM: Self = Self(23); 626 pub const R8G8B8_SNORM: Self = Self(24); 627 pub const R8G8B8_USCALED: Self = Self(25); 628 pub const R8G8B8_SSCALED: Self = Self(26); 629 pub const R8G8B8_UINT: Self = Self(27); 630 pub const R8G8B8_SINT: Self = Self(28); 631 pub const R8G8B8_SRGB: Self = Self(29); 632 pub const B8G8R8_UNORM: Self = Self(30); 633 pub const B8G8R8_SNORM: Self = Self(31); 634 pub const B8G8R8_USCALED: Self = Self(32); 635 pub const B8G8R8_SSCALED: Self = Self(33); 636 pub const B8G8R8_UINT: Self = Self(34); 637 pub const B8G8R8_SINT: Self = Self(35); 638 pub const B8G8R8_SRGB: Self = Self(36); 639 pub const R8G8B8A8_UNORM: Self = Self(37); 640 pub const R8G8B8A8_SNORM: Self = Self(38); 641 pub const R8G8B8A8_USCALED: Self = Self(39); 642 pub const R8G8B8A8_SSCALED: Self = Self(40); 643 pub const R8G8B8A8_UINT: Self = Self(41); 644 pub const R8G8B8A8_SINT: Self = Self(42); 645 pub const R8G8B8A8_SRGB: Self = Self(43); 646 pub const B8G8R8A8_UNORM: Self = Self(44); 647 pub const B8G8R8A8_SNORM: Self = Self(45); 648 pub const B8G8R8A8_USCALED: Self = Self(46); 649 pub const B8G8R8A8_SSCALED: Self = Self(47); 650 pub const B8G8R8A8_UINT: Self = Self(48); 651 pub const B8G8R8A8_SINT: Self = Self(49); 652 pub const B8G8R8A8_SRGB: Self = Self(50); 653 pub const A8B8G8R8_UNORM_PACK32: Self = Self(51); 654 pub const A8B8G8R8_SNORM_PACK32: Self = Self(52); 655 pub const A8B8G8R8_USCALED_PACK32: Self = Self(53); 656 pub const A8B8G8R8_SSCALED_PACK32: Self = Self(54); 657 pub const A8B8G8R8_UINT_PACK32: Self = Self(55); 658 pub const A8B8G8R8_SINT_PACK32: Self = Self(56); 659 pub const A8B8G8R8_SRGB_PACK32: Self = Self(57); 660 pub const A2R10G10B10_UNORM_PACK32: Self = Self(58); 661 pub const A2R10G10B10_SNORM_PACK32: Self = Self(59); 662 pub const A2R10G10B10_USCALED_PACK32: Self = Self(60); 663 pub const A2R10G10B10_SSCALED_PACK32: Self = Self(61); 664 pub const A2R10G10B10_UINT_PACK32: Self = Self(62); 665 pub const A2R10G10B10_SINT_PACK32: Self = Self(63); 666 pub const A2B10G10R10_UNORM_PACK32: Self = Self(64); 667 pub const A2B10G10R10_SNORM_PACK32: Self = Self(65); 668 pub const A2B10G10R10_USCALED_PACK32: Self = Self(66); 669 pub const A2B10G10R10_SSCALED_PACK32: Self = Self(67); 670 pub const A2B10G10R10_UINT_PACK32: Self = Self(68); 671 pub const A2B10G10R10_SINT_PACK32: Self = Self(69); 672 pub const R16_UNORM: Self = Self(70); 673 pub const R16_SNORM: Self = Self(71); 674 pub const R16_USCALED: Self = Self(72); 675 pub const R16_SSCALED: Self = Self(73); 676 pub const R16_UINT: Self = Self(74); 677 pub const R16_SINT: Self = Self(75); 678 pub const R16_SFLOAT: Self = Self(76); 679 pub const R16G16_UNORM: Self = Self(77); 680 pub const R16G16_SNORM: Self = Self(78); 681 pub const R16G16_USCALED: Self = Self(79); 682 pub const R16G16_SSCALED: Self = Self(80); 683 pub const R16G16_UINT: Self = Self(81); 684 pub const R16G16_SINT: Self = Self(82); 685 pub const R16G16_SFLOAT: Self = Self(83); 686 pub const R16G16B16_UNORM: Self = Self(84); 687 pub const R16G16B16_SNORM: Self = Self(85); 688 pub const R16G16B16_USCALED: Self = Self(86); 689 pub const R16G16B16_SSCALED: Self = Self(87); 690 pub const R16G16B16_UINT: Self = Self(88); 691 pub const R16G16B16_SINT: Self = Self(89); 692 pub const R16G16B16_SFLOAT: Self = Self(90); 693 pub const R16G16B16A16_UNORM: Self = Self(91); 694 pub const R16G16B16A16_SNORM: Self = Self(92); 695 pub const R16G16B16A16_USCALED: Self = Self(93); 696 pub const R16G16B16A16_SSCALED: Self = Self(94); 697 pub const R16G16B16A16_UINT: Self = Self(95); 698 pub const R16G16B16A16_SINT: Self = Self(96); 699 pub const R16G16B16A16_SFLOAT: Self = Self(97); 700 pub const R32_UINT: Self = Self(98); 701 pub const R32_SINT: Self = Self(99); 702 pub const R32_SFLOAT: Self = Self(100); 703 pub const R32G32_UINT: Self = Self(101); 704 pub const R32G32_SINT: Self = Self(102); 705 pub const R32G32_SFLOAT: Self = Self(103); 706 pub const R32G32B32_UINT: Self = Self(104); 707 pub const R32G32B32_SINT: Self = Self(105); 708 pub const R32G32B32_SFLOAT: Self = Self(106); 709 pub const R32G32B32A32_UINT: Self = Self(107); 710 pub const R32G32B32A32_SINT: Self = Self(108); 711 pub const R32G32B32A32_SFLOAT: Self = Self(109); 712 pub const R64_UINT: Self = Self(110); 713 pub const R64_SINT: Self = Self(111); 714 pub const R64_SFLOAT: Self = Self(112); 715 pub const R64G64_UINT: Self = Self(113); 716 pub const R64G64_SINT: Self = Self(114); 717 pub const R64G64_SFLOAT: Self = Self(115); 718 pub const R64G64B64_UINT: Self = Self(116); 719 pub const R64G64B64_SINT: Self = Self(117); 720 pub const R64G64B64_SFLOAT: Self = Self(118); 721 pub const R64G64B64A64_UINT: Self = Self(119); 722 pub const R64G64B64A64_SINT: Self = Self(120); 723 pub const R64G64B64A64_SFLOAT: Self = Self(121); 724 pub const B10G11R11_UFLOAT_PACK32: Self = Self(122); 725 pub const E5B9G9R9_UFLOAT_PACK32: Self = Self(123); 726 pub const D16_UNORM: Self = Self(124); 727 pub const X8_D24_UNORM_PACK32: Self = Self(125); 728 pub const D32_SFLOAT: Self = Self(126); 729 pub const S8_UINT: Self = Self(127); 730 pub const D16_UNORM_S8_UINT: Self = Self(128); 731 pub const D24_UNORM_S8_UINT: Self = Self(129); 732 pub const D32_SFLOAT_S8_UINT: Self = Self(130); 733 pub const BC1_RGB_UNORM_BLOCK: Self = Self(131); 734 pub const BC1_RGB_SRGB_BLOCK: Self = Self(132); 735 pub const BC1_RGBA_UNORM_BLOCK: Self = Self(133); 736 pub const BC1_RGBA_SRGB_BLOCK: Self = Self(134); 737 pub const BC2_UNORM_BLOCK: Self = Self(135); 738 pub const BC2_SRGB_BLOCK: Self = Self(136); 739 pub const BC3_UNORM_BLOCK: Self = Self(137); 740 pub const BC3_SRGB_BLOCK: Self = Self(138); 741 pub const BC4_UNORM_BLOCK: Self = Self(139); 742 pub const BC4_SNORM_BLOCK: Self = Self(140); 743 pub const BC5_UNORM_BLOCK: Self = Self(141); 744 pub const BC5_SNORM_BLOCK: Self = Self(142); 745 pub const BC6H_UFLOAT_BLOCK: Self = Self(143); 746 pub const BC6H_SFLOAT_BLOCK: Self = Self(144); 747 pub const BC7_UNORM_BLOCK: Self = Self(145); 748 pub const BC7_SRGB_BLOCK: Self = Self(146); 749 pub const ETC2_R8G8B8_UNORM_BLOCK: Self = Self(147); 750 pub const ETC2_R8G8B8_SRGB_BLOCK: Self = Self(148); 751 pub const ETC2_R8G8B8A1_UNORM_BLOCK: Self = Self(149); 752 pub const ETC2_R8G8B8A1_SRGB_BLOCK: Self = Self(150); 753 pub const ETC2_R8G8B8A8_UNORM_BLOCK: Self = Self(151); 754 pub const ETC2_R8G8B8A8_SRGB_BLOCK: Self = Self(152); 755 pub const EAC_R11_UNORM_BLOCK: Self = Self(153); 756 pub const EAC_R11_SNORM_BLOCK: Self = Self(154); 757 pub const EAC_R11G11_UNORM_BLOCK: Self = Self(155); 758 pub const EAC_R11G11_SNORM_BLOCK: Self = Self(156); 759 pub const ASTC_4X4_UNORM_BLOCK: Self = Self(157); 760 pub const ASTC_4X4_SRGB_BLOCK: Self = Self(158); 761 pub const ASTC_5X4_UNORM_BLOCK: Self = Self(159); 762 pub const ASTC_5X4_SRGB_BLOCK: Self = Self(160); 763 pub const ASTC_5X5_UNORM_BLOCK: Self = Self(161); 764 pub const ASTC_5X5_SRGB_BLOCK: Self = Self(162); 765 pub const ASTC_6X5_UNORM_BLOCK: Self = Self(163); 766 pub const ASTC_6X5_SRGB_BLOCK: Self = Self(164); 767 pub const ASTC_6X6_UNORM_BLOCK: Self = Self(165); 768 pub const ASTC_6X6_SRGB_BLOCK: Self = Self(166); 769 pub const ASTC_8X5_UNORM_BLOCK: Self = Self(167); 770 pub const ASTC_8X5_SRGB_BLOCK: Self = Self(168); 771 pub const ASTC_8X6_UNORM_BLOCK: Self = Self(169); 772 pub const ASTC_8X6_SRGB_BLOCK: Self = Self(170); 773 pub const ASTC_8X8_UNORM_BLOCK: Self = Self(171); 774 pub const ASTC_8X8_SRGB_BLOCK: Self = Self(172); 775 pub const ASTC_10X5_UNORM_BLOCK: Self = Self(173); 776 pub const ASTC_10X5_SRGB_BLOCK: Self = Self(174); 777 pub const ASTC_10X6_UNORM_BLOCK: Self = Self(175); 778 pub const ASTC_10X6_SRGB_BLOCK: Self = Self(176); 779 pub const ASTC_10X8_UNORM_BLOCK: Self = Self(177); 780 pub const ASTC_10X8_SRGB_BLOCK: Self = Self(178); 781 pub const ASTC_10X10_UNORM_BLOCK: Self = Self(179); 782 pub const ASTC_10X10_SRGB_BLOCK: Self = Self(180); 783 pub const ASTC_12X10_UNORM_BLOCK: Self = Self(181); 784 pub const ASTC_12X10_SRGB_BLOCK: Self = Self(182); 785 pub const ASTC_12X12_UNORM_BLOCK: Self = Self(183); 786 pub const ASTC_12X12_SRGB_BLOCK: Self = Self(184); 787 } 788 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 789 #[repr(transparent)] 790 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkStructureType.html>"] 791 pub struct StructureType(pub(crate) i32); 792 impl StructureType { from_raw(x: i32) -> Self793 pub const fn from_raw(x: i32) -> Self { 794 StructureType(x) 795 } as_raw(self) -> i32796 pub const fn as_raw(self) -> i32 { 797 self.0 798 } 799 } 800 impl StructureType { 801 pub const APPLICATION_INFO: Self = Self(0); 802 pub const INSTANCE_CREATE_INFO: Self = Self(1); 803 pub const DEVICE_QUEUE_CREATE_INFO: Self = Self(2); 804 pub const DEVICE_CREATE_INFO: Self = Self(3); 805 pub const SUBMIT_INFO: Self = Self(4); 806 pub const MEMORY_ALLOCATE_INFO: Self = Self(5); 807 pub const MAPPED_MEMORY_RANGE: Self = Self(6); 808 pub const BIND_SPARSE_INFO: Self = Self(7); 809 pub const FENCE_CREATE_INFO: Self = Self(8); 810 pub const SEMAPHORE_CREATE_INFO: Self = Self(9); 811 pub const EVENT_CREATE_INFO: Self = Self(10); 812 pub const QUERY_POOL_CREATE_INFO: Self = Self(11); 813 pub const BUFFER_CREATE_INFO: Self = Self(12); 814 pub const BUFFER_VIEW_CREATE_INFO: Self = Self(13); 815 pub const IMAGE_CREATE_INFO: Self = Self(14); 816 pub const IMAGE_VIEW_CREATE_INFO: Self = Self(15); 817 pub const SHADER_MODULE_CREATE_INFO: Self = Self(16); 818 pub const PIPELINE_CACHE_CREATE_INFO: Self = Self(17); 819 pub const PIPELINE_SHADER_STAGE_CREATE_INFO: Self = Self(18); 820 pub const PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO: Self = Self(19); 821 pub const PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO: Self = Self(20); 822 pub const PIPELINE_TESSELLATION_STATE_CREATE_INFO: Self = Self(21); 823 pub const PIPELINE_VIEWPORT_STATE_CREATE_INFO: Self = Self(22); 824 pub const PIPELINE_RASTERIZATION_STATE_CREATE_INFO: Self = Self(23); 825 pub const PIPELINE_MULTISAMPLE_STATE_CREATE_INFO: Self = Self(24); 826 pub const PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO: Self = Self(25); 827 pub const PIPELINE_COLOR_BLEND_STATE_CREATE_INFO: Self = Self(26); 828 pub const PIPELINE_DYNAMIC_STATE_CREATE_INFO: Self = Self(27); 829 pub const GRAPHICS_PIPELINE_CREATE_INFO: Self = Self(28); 830 pub const COMPUTE_PIPELINE_CREATE_INFO: Self = Self(29); 831 pub const PIPELINE_LAYOUT_CREATE_INFO: Self = Self(30); 832 pub const SAMPLER_CREATE_INFO: Self = Self(31); 833 pub const DESCRIPTOR_SET_LAYOUT_CREATE_INFO: Self = Self(32); 834 pub const DESCRIPTOR_POOL_CREATE_INFO: Self = Self(33); 835 pub const DESCRIPTOR_SET_ALLOCATE_INFO: Self = Self(34); 836 pub const WRITE_DESCRIPTOR_SET: Self = Self(35); 837 pub const COPY_DESCRIPTOR_SET: Self = Self(36); 838 pub const FRAMEBUFFER_CREATE_INFO: Self = Self(37); 839 pub const RENDER_PASS_CREATE_INFO: Self = Self(38); 840 pub const COMMAND_POOL_CREATE_INFO: Self = Self(39); 841 pub const COMMAND_BUFFER_ALLOCATE_INFO: Self = Self(40); 842 pub const COMMAND_BUFFER_INHERITANCE_INFO: Self = Self(41); 843 pub const COMMAND_BUFFER_BEGIN_INFO: Self = Self(42); 844 pub const RENDER_PASS_BEGIN_INFO: Self = Self(43); 845 pub const BUFFER_MEMORY_BARRIER: Self = Self(44); 846 pub const IMAGE_MEMORY_BARRIER: Self = Self(45); 847 pub const MEMORY_BARRIER: Self = Self(46); 848 #[doc = "Reserved for internal use by the loader, layers, and ICDs"] 849 pub const LOADER_INSTANCE_CREATE_INFO: Self = Self(47); 850 #[doc = "Reserved for internal use by the loader, layers, and ICDs"] 851 pub const LOADER_DEVICE_CREATE_INFO: Self = Self(48); 852 } 853 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 854 #[repr(transparent)] 855 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSubpassContents.html>"] 856 pub struct SubpassContents(pub(crate) i32); 857 impl SubpassContents { from_raw(x: i32) -> Self858 pub const fn from_raw(x: i32) -> Self { 859 SubpassContents(x) 860 } as_raw(self) -> i32861 pub const fn as_raw(self) -> i32 { 862 self.0 863 } 864 } 865 impl SubpassContents { 866 pub const INLINE: Self = Self(0); 867 pub const SECONDARY_COMMAND_BUFFERS: Self = Self(1); 868 } 869 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 870 #[repr(transparent)] 871 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkResult.html>"] 872 #[must_use] 873 pub struct Result(pub(crate) i32); 874 impl Result { from_raw(x: i32) -> Self875 pub const fn from_raw(x: i32) -> Self { 876 Result(x) 877 } as_raw(self) -> i32878 pub const fn as_raw(self) -> i32 { 879 self.0 880 } 881 } 882 impl Result { 883 #[doc = "Command completed successfully"] 884 pub const SUCCESS: Self = Self(0); 885 #[doc = "A fence or query has not yet completed"] 886 pub const NOT_READY: Self = Self(1); 887 #[doc = "A wait operation has not completed in the specified time"] 888 pub const TIMEOUT: Self = Self(2); 889 #[doc = "An event is signaled"] 890 pub const EVENT_SET: Self = Self(3); 891 #[doc = "An event is unsignaled"] 892 pub const EVENT_RESET: Self = Self(4); 893 #[doc = "A return array was too small for the result"] 894 pub const INCOMPLETE: Self = Self(5); 895 #[doc = "A host memory allocation has failed"] 896 pub const ERROR_OUT_OF_HOST_MEMORY: Self = Self(-1); 897 #[doc = "A device memory allocation has failed"] 898 pub const ERROR_OUT_OF_DEVICE_MEMORY: Self = Self(-2); 899 #[doc = "Initialization of a object has failed"] 900 pub const ERROR_INITIALIZATION_FAILED: Self = Self(-3); 901 #[doc = "The logical device has been lost. See <<devsandqueues-lost-device>>"] 902 pub const ERROR_DEVICE_LOST: Self = Self(-4); 903 #[doc = "Mapping of a memory object has failed"] 904 pub const ERROR_MEMORY_MAP_FAILED: Self = Self(-5); 905 #[doc = "Layer specified does not exist"] 906 pub const ERROR_LAYER_NOT_PRESENT: Self = Self(-6); 907 #[doc = "Extension specified does not exist"] 908 pub const ERROR_EXTENSION_NOT_PRESENT: Self = Self(-7); 909 #[doc = "Requested feature is not available on this device"] 910 pub const ERROR_FEATURE_NOT_PRESENT: Self = Self(-8); 911 #[doc = "Unable to find a Vulkan driver"] 912 pub const ERROR_INCOMPATIBLE_DRIVER: Self = Self(-9); 913 #[doc = "Too many objects of the type have already been created"] 914 pub const ERROR_TOO_MANY_OBJECTS: Self = Self(-10); 915 #[doc = "Requested format is not supported on this device"] 916 pub const ERROR_FORMAT_NOT_SUPPORTED: Self = Self(-11); 917 #[doc = "A requested pool allocation has failed due to fragmentation of the pool's memory"] 918 pub const ERROR_FRAGMENTED_POOL: Self = Self(-12); 919 #[doc = "An unknown error has occurred, due to an implementation or application bug"] 920 pub const ERROR_UNKNOWN: Self = Self(-13); 921 } 922 impl ::std::error::Error for Result {} 923 impl fmt::Display for Result { fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result924 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { 925 let name = match *self { 926 Result::SUCCESS => Some("Command completed successfully"), 927 Result::NOT_READY => Some("A fence or query has not yet completed"), 928 Result::TIMEOUT => Some("A wait operation has not completed in the specified time"), 929 Result::EVENT_SET => Some("An event is signaled"), 930 Result::EVENT_RESET => Some("An event is unsignaled"), 931 Result::INCOMPLETE => Some("A return array was too small for the result"), 932 Result::ERROR_OUT_OF_HOST_MEMORY => Some("A host memory allocation has failed"), 933 Result::ERROR_OUT_OF_DEVICE_MEMORY => Some("A device memory allocation has failed"), 934 Result::ERROR_INITIALIZATION_FAILED => Some("Initialization of a object has failed"), 935 Result::ERROR_DEVICE_LOST => { 936 Some("The logical device has been lost. See <<devsandqueues-lost-device>>") 937 } 938 Result::ERROR_MEMORY_MAP_FAILED => Some("Mapping of a memory object has failed"), 939 Result::ERROR_LAYER_NOT_PRESENT => Some("Layer specified does not exist"), 940 Result::ERROR_EXTENSION_NOT_PRESENT => Some("Extension specified does not exist"), 941 Result::ERROR_FEATURE_NOT_PRESENT => { 942 Some("Requested feature is not available on this device") 943 } 944 Result::ERROR_INCOMPATIBLE_DRIVER => Some("Unable to find a Vulkan driver"), 945 Result::ERROR_TOO_MANY_OBJECTS => { 946 Some("Too many objects of the type have already been created") 947 } 948 Result::ERROR_FORMAT_NOT_SUPPORTED => { 949 Some("Requested format is not supported on this device") 950 } 951 Result::ERROR_FRAGMENTED_POOL => Some( 952 "A requested pool allocation has failed due to fragmentation of the pool's memory", 953 ), 954 Result::ERROR_UNKNOWN => { 955 Some("An unknown error has occurred, due to an implementation or application bug") 956 } 957 _ => None, 958 }; 959 if let Some(x) = name { 960 fmt.write_str(x) 961 } else { 962 <Self as fmt::Debug>::fmt(self, fmt) 963 } 964 } 965 } 966 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 967 #[repr(transparent)] 968 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDynamicState.html>"] 969 pub struct DynamicState(pub(crate) i32); 970 impl DynamicState { from_raw(x: i32) -> Self971 pub const fn from_raw(x: i32) -> Self { 972 DynamicState(x) 973 } as_raw(self) -> i32974 pub const fn as_raw(self) -> i32 { 975 self.0 976 } 977 } 978 impl DynamicState { 979 pub const VIEWPORT: Self = Self(0); 980 pub const SCISSOR: Self = Self(1); 981 pub const LINE_WIDTH: Self = Self(2); 982 pub const DEPTH_BIAS: Self = Self(3); 983 pub const BLEND_CONSTANTS: Self = Self(4); 984 pub const DEPTH_BOUNDS: Self = Self(5); 985 pub const STENCIL_COMPARE_MASK: Self = Self(6); 986 pub const STENCIL_WRITE_MASK: Self = Self(7); 987 pub const STENCIL_REFERENCE: Self = Self(8); 988 } 989 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 990 #[repr(transparent)] 991 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorUpdateTemplateType.html>"] 992 pub struct DescriptorUpdateTemplateType(pub(crate) i32); 993 impl DescriptorUpdateTemplateType { from_raw(x: i32) -> Self994 pub const fn from_raw(x: i32) -> Self { 995 DescriptorUpdateTemplateType(x) 996 } as_raw(self) -> i32997 pub const fn as_raw(self) -> i32 { 998 self.0 999 } 1000 } 1001 impl DescriptorUpdateTemplateType { 1002 #[doc = "Create descriptor update template for descriptor set updates"] 1003 pub const DESCRIPTOR_SET: Self = Self(0); 1004 } 1005 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1006 #[repr(transparent)] 1007 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkObjectType.html>"] 1008 pub struct ObjectType(pub(crate) i32); 1009 impl ObjectType { from_raw(x: i32) -> Self1010 pub const fn from_raw(x: i32) -> Self { 1011 ObjectType(x) 1012 } as_raw(self) -> i321013 pub const fn as_raw(self) -> i32 { 1014 self.0 1015 } 1016 } 1017 impl ObjectType { 1018 pub const UNKNOWN: Self = Self(0); 1019 pub const INSTANCE: Self = Self(1); 1020 pub const PHYSICAL_DEVICE: Self = Self(2); 1021 pub const DEVICE: Self = Self(3); 1022 pub const QUEUE: Self = Self(4); 1023 pub const SEMAPHORE: Self = Self(5); 1024 pub const COMMAND_BUFFER: Self = Self(6); 1025 pub const FENCE: Self = Self(7); 1026 pub const DEVICE_MEMORY: Self = Self(8); 1027 pub const BUFFER: Self = Self(9); 1028 pub const IMAGE: Self = Self(10); 1029 pub const EVENT: Self = Self(11); 1030 pub const QUERY_POOL: Self = Self(12); 1031 pub const BUFFER_VIEW: Self = Self(13); 1032 pub const IMAGE_VIEW: Self = Self(14); 1033 pub const SHADER_MODULE: Self = Self(15); 1034 pub const PIPELINE_CACHE: Self = Self(16); 1035 pub const PIPELINE_LAYOUT: Self = Self(17); 1036 pub const RENDER_PASS: Self = Self(18); 1037 pub const PIPELINE: Self = Self(19); 1038 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1039 pub const SAMPLER: Self = Self(21); 1040 pub const DESCRIPTOR_POOL: Self = Self(22); 1041 pub const DESCRIPTOR_SET: Self = Self(23); 1042 pub const FRAMEBUFFER: Self = Self(24); 1043 pub const COMMAND_POOL: Self = Self(25); 1044 } 1045 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1046 #[repr(transparent)] 1047 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSemaphoreType.html>"] 1048 pub struct SemaphoreType(pub(crate) i32); 1049 impl SemaphoreType { from_raw(x: i32) -> Self1050 pub const fn from_raw(x: i32) -> Self { 1051 SemaphoreType(x) 1052 } as_raw(self) -> i321053 pub const fn as_raw(self) -> i32 { 1054 self.0 1055 } 1056 } 1057 impl SemaphoreType { 1058 pub const BINARY: Self = Self(0); 1059 pub const TIMELINE: Self = Self(1); 1060 } 1061 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1062 #[repr(transparent)] 1063 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPresentModeKHR.html>"] 1064 pub struct PresentModeKHR(pub(crate) i32); 1065 impl PresentModeKHR { from_raw(x: i32) -> Self1066 pub const fn from_raw(x: i32) -> Self { 1067 PresentModeKHR(x) 1068 } as_raw(self) -> i321069 pub const fn as_raw(self) -> i32 { 1070 self.0 1071 } 1072 } 1073 impl PresentModeKHR { 1074 pub const IMMEDIATE: Self = Self(0); 1075 pub const MAILBOX: Self = Self(1); 1076 pub const FIFO: Self = Self(2); 1077 pub const FIFO_RELAXED: Self = Self(3); 1078 } 1079 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1080 #[repr(transparent)] 1081 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkColorSpaceKHR.html>"] 1082 pub struct ColorSpaceKHR(pub(crate) i32); 1083 impl ColorSpaceKHR { from_raw(x: i32) -> Self1084 pub const fn from_raw(x: i32) -> Self { 1085 ColorSpaceKHR(x) 1086 } as_raw(self) -> i321087 pub const fn as_raw(self) -> i32 { 1088 self.0 1089 } 1090 } 1091 impl ColorSpaceKHR { 1092 pub const SRGB_NONLINEAR: Self = Self(0); 1093 #[deprecated = "Backwards-compatible alias containing a typo"] 1094 pub const COLORSPACE_SRGB_NONLINEAR: Self = Self::SRGB_NONLINEAR; 1095 } 1096 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1097 #[repr(transparent)] 1098 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkTimeDomainEXT.html>"] 1099 pub struct TimeDomainEXT(pub(crate) i32); 1100 impl TimeDomainEXT { from_raw(x: i32) -> Self1101 pub const fn from_raw(x: i32) -> Self { 1102 TimeDomainEXT(x) 1103 } as_raw(self) -> i321104 pub const fn as_raw(self) -> i32 { 1105 self.0 1106 } 1107 } 1108 impl TimeDomainEXT { 1109 pub const DEVICE: Self = Self(0); 1110 pub const CLOCK_MONOTONIC: Self = Self(1); 1111 pub const CLOCK_MONOTONIC_RAW: Self = Self(2); 1112 pub const QUERY_PERFORMANCE_COUNTER: Self = Self(3); 1113 } 1114 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1115 #[repr(transparent)] 1116 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDebugReportObjectTypeEXT.html>"] 1117 pub struct DebugReportObjectTypeEXT(pub(crate) i32); 1118 impl DebugReportObjectTypeEXT { from_raw(x: i32) -> Self1119 pub const fn from_raw(x: i32) -> Self { 1120 DebugReportObjectTypeEXT(x) 1121 } as_raw(self) -> i321122 pub const fn as_raw(self) -> i32 { 1123 self.0 1124 } 1125 } 1126 impl DebugReportObjectTypeEXT { 1127 pub const UNKNOWN: Self = Self(0); 1128 pub const INSTANCE: Self = Self(1); 1129 pub const PHYSICAL_DEVICE: Self = Self(2); 1130 pub const DEVICE: Self = Self(3); 1131 pub const QUEUE: Self = Self(4); 1132 pub const SEMAPHORE: Self = Self(5); 1133 pub const COMMAND_BUFFER: Self = Self(6); 1134 pub const FENCE: Self = Self(7); 1135 pub const DEVICE_MEMORY: Self = Self(8); 1136 pub const BUFFER: Self = Self(9); 1137 pub const IMAGE: Self = Self(10); 1138 pub const EVENT: Self = Self(11); 1139 pub const QUERY_POOL: Self = Self(12); 1140 pub const BUFFER_VIEW: Self = Self(13); 1141 pub const IMAGE_VIEW: Self = Self(14); 1142 pub const SHADER_MODULE: Self = Self(15); 1143 pub const PIPELINE_CACHE: Self = Self(16); 1144 pub const PIPELINE_LAYOUT: Self = Self(17); 1145 pub const RENDER_PASS: Self = Self(18); 1146 pub const PIPELINE: Self = Self(19); 1147 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1148 pub const SAMPLER: Self = Self(21); 1149 pub const DESCRIPTOR_POOL: Self = Self(22); 1150 pub const DESCRIPTOR_SET: Self = Self(23); 1151 pub const FRAMEBUFFER: Self = Self(24); 1152 pub const COMMAND_POOL: Self = Self(25); 1153 pub const SURFACE_KHR: Self = Self(26); 1154 pub const SWAPCHAIN_KHR: Self = Self(27); 1155 pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(28); 1156 #[deprecated = "Backwards-compatible alias containing a typo"] 1157 pub const DEBUG_REPORT: Self = Self::DEBUG_REPORT_CALLBACK_EXT; 1158 pub const DISPLAY_KHR: Self = Self(29); 1159 pub const DISPLAY_MODE_KHR: Self = Self(30); 1160 pub const VALIDATION_CACHE_EXT: Self = Self(33); 1161 #[deprecated = "Backwards-compatible alias containing a typo"] 1162 pub const VALIDATION_CACHE: Self = Self::VALIDATION_CACHE_EXT; 1163 } 1164 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1165 #[repr(transparent)] 1166 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceMemoryReportEventTypeEXT.html>"] 1167 pub struct DeviceMemoryReportEventTypeEXT(pub(crate) i32); 1168 impl DeviceMemoryReportEventTypeEXT { from_raw(x: i32) -> Self1169 pub const fn from_raw(x: i32) -> Self { 1170 DeviceMemoryReportEventTypeEXT(x) 1171 } as_raw(self) -> i321172 pub const fn as_raw(self) -> i32 { 1173 self.0 1174 } 1175 } 1176 impl DeviceMemoryReportEventTypeEXT { 1177 pub const ALLOCATE: Self = Self(0); 1178 pub const FREE: Self = Self(1); 1179 pub const IMPORT: Self = Self(2); 1180 pub const UNIMPORT: Self = Self(3); 1181 pub const ALLOCATION_FAILED: Self = Self(4); 1182 } 1183 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1184 #[repr(transparent)] 1185 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkRasterizationOrderAMD.html>"] 1186 pub struct RasterizationOrderAMD(pub(crate) i32); 1187 impl RasterizationOrderAMD { from_raw(x: i32) -> Self1188 pub const fn from_raw(x: i32) -> Self { 1189 RasterizationOrderAMD(x) 1190 } as_raw(self) -> i321191 pub const fn as_raw(self) -> i32 { 1192 self.0 1193 } 1194 } 1195 impl RasterizationOrderAMD { 1196 pub const STRICT: Self = Self(0); 1197 pub const RELAXED: Self = Self(1); 1198 } 1199 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1200 #[repr(transparent)] 1201 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationCheckEXT.html>"] 1202 pub struct ValidationCheckEXT(pub(crate) i32); 1203 impl ValidationCheckEXT { from_raw(x: i32) -> Self1204 pub const fn from_raw(x: i32) -> Self { 1205 ValidationCheckEXT(x) 1206 } as_raw(self) -> i321207 pub const fn as_raw(self) -> i32 { 1208 self.0 1209 } 1210 } 1211 impl ValidationCheckEXT { 1212 pub const ALL: Self = Self(0); 1213 pub const SHADERS: Self = Self(1); 1214 } 1215 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1216 #[repr(transparent)] 1217 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationFeatureEnableEXT.html>"] 1218 pub struct ValidationFeatureEnableEXT(pub(crate) i32); 1219 impl ValidationFeatureEnableEXT { from_raw(x: i32) -> Self1220 pub const fn from_raw(x: i32) -> Self { 1221 ValidationFeatureEnableEXT(x) 1222 } as_raw(self) -> i321223 pub const fn as_raw(self) -> i32 { 1224 self.0 1225 } 1226 } 1227 impl ValidationFeatureEnableEXT { 1228 pub const GPU_ASSISTED: Self = Self(0); 1229 pub const GPU_ASSISTED_RESERVE_BINDING_SLOT: Self = Self(1); 1230 pub const BEST_PRACTICES: Self = Self(2); 1231 pub const DEBUG_PRINTF: Self = Self(3); 1232 pub const SYNCHRONIZATION_VALIDATION: Self = Self(4); 1233 } 1234 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1235 #[repr(transparent)] 1236 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationFeatureDisableEXT.html>"] 1237 pub struct ValidationFeatureDisableEXT(pub(crate) i32); 1238 impl ValidationFeatureDisableEXT { from_raw(x: i32) -> Self1239 pub const fn from_raw(x: i32) -> Self { 1240 ValidationFeatureDisableEXT(x) 1241 } as_raw(self) -> i321242 pub const fn as_raw(self) -> i32 { 1243 self.0 1244 } 1245 } 1246 impl ValidationFeatureDisableEXT { 1247 pub const ALL: Self = Self(0); 1248 pub const SHADERS: Self = Self(1); 1249 pub const THREAD_SAFETY: Self = Self(2); 1250 pub const API_PARAMETERS: Self = Self(3); 1251 pub const OBJECT_LIFETIMES: Self = Self(4); 1252 pub const CORE_CHECKS: Self = Self(5); 1253 pub const UNIQUE_HANDLES: Self = Self(6); 1254 pub const SHADER_VALIDATION_CACHE: Self = Self(7); 1255 } 1256 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1257 #[repr(transparent)] 1258 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkIndirectCommandsTokenTypeNV.html>"] 1259 pub struct IndirectCommandsTokenTypeNV(pub(crate) i32); 1260 impl IndirectCommandsTokenTypeNV { from_raw(x: i32) -> Self1261 pub const fn from_raw(x: i32) -> Self { 1262 IndirectCommandsTokenTypeNV(x) 1263 } as_raw(self) -> i321264 pub const fn as_raw(self) -> i32 { 1265 self.0 1266 } 1267 } 1268 impl IndirectCommandsTokenTypeNV { 1269 pub const SHADER_GROUP: Self = Self(0); 1270 pub const STATE_FLAGS: Self = Self(1); 1271 pub const INDEX_BUFFER: Self = Self(2); 1272 pub const VERTEX_BUFFER: Self = Self(3); 1273 pub const PUSH_CONSTANT: Self = Self(4); 1274 pub const DRAW_INDEXED: Self = Self(5); 1275 pub const DRAW: Self = Self(6); 1276 pub const DRAW_TASKS: Self = Self(7); 1277 } 1278 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1279 #[repr(transparent)] 1280 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDisplayPowerStateEXT.html>"] 1281 pub struct DisplayPowerStateEXT(pub(crate) i32); 1282 impl DisplayPowerStateEXT { from_raw(x: i32) -> Self1283 pub const fn from_raw(x: i32) -> Self { 1284 DisplayPowerStateEXT(x) 1285 } as_raw(self) -> i321286 pub const fn as_raw(self) -> i32 { 1287 self.0 1288 } 1289 } 1290 impl DisplayPowerStateEXT { 1291 pub const OFF: Self = Self(0); 1292 pub const SUSPEND: Self = Self(1); 1293 pub const ON: Self = Self(2); 1294 } 1295 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1296 #[repr(transparent)] 1297 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceEventTypeEXT.html>"] 1298 pub struct DeviceEventTypeEXT(pub(crate) i32); 1299 impl DeviceEventTypeEXT { from_raw(x: i32) -> Self1300 pub const fn from_raw(x: i32) -> Self { 1301 DeviceEventTypeEXT(x) 1302 } as_raw(self) -> i321303 pub const fn as_raw(self) -> i32 { 1304 self.0 1305 } 1306 } 1307 impl DeviceEventTypeEXT { 1308 pub const DISPLAY_HOTPLUG: Self = Self(0); 1309 } 1310 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1311 #[repr(transparent)] 1312 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDisplayEventTypeEXT.html>"] 1313 pub struct DisplayEventTypeEXT(pub(crate) i32); 1314 impl DisplayEventTypeEXT { from_raw(x: i32) -> Self1315 pub const fn from_raw(x: i32) -> Self { 1316 DisplayEventTypeEXT(x) 1317 } as_raw(self) -> i321318 pub const fn as_raw(self) -> i32 { 1319 self.0 1320 } 1321 } 1322 impl DisplayEventTypeEXT { 1323 pub const FIRST_PIXEL_OUT: Self = Self(0); 1324 } 1325 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1326 #[repr(transparent)] 1327 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkViewportCoordinateSwizzleNV.html>"] 1328 pub struct ViewportCoordinateSwizzleNV(pub(crate) i32); 1329 impl ViewportCoordinateSwizzleNV { from_raw(x: i32) -> Self1330 pub const fn from_raw(x: i32) -> Self { 1331 ViewportCoordinateSwizzleNV(x) 1332 } as_raw(self) -> i321333 pub const fn as_raw(self) -> i32 { 1334 self.0 1335 } 1336 } 1337 impl ViewportCoordinateSwizzleNV { 1338 pub const POSITIVE_X: Self = Self(0); 1339 pub const NEGATIVE_X: Self = Self(1); 1340 pub const POSITIVE_Y: Self = Self(2); 1341 pub const NEGATIVE_Y: Self = Self(3); 1342 pub const POSITIVE_Z: Self = Self(4); 1343 pub const NEGATIVE_Z: Self = Self(5); 1344 pub const POSITIVE_W: Self = Self(6); 1345 pub const NEGATIVE_W: Self = Self(7); 1346 } 1347 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1348 #[repr(transparent)] 1349 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDiscardRectangleModeEXT.html>"] 1350 pub struct DiscardRectangleModeEXT(pub(crate) i32); 1351 impl DiscardRectangleModeEXT { from_raw(x: i32) -> Self1352 pub const fn from_raw(x: i32) -> Self { 1353 DiscardRectangleModeEXT(x) 1354 } as_raw(self) -> i321355 pub const fn as_raw(self) -> i32 { 1356 self.0 1357 } 1358 } 1359 impl DiscardRectangleModeEXT { 1360 pub const INCLUSIVE: Self = Self(0); 1361 pub const EXCLUSIVE: Self = Self(1); 1362 } 1363 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1364 #[repr(transparent)] 1365 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPointClippingBehavior.html>"] 1366 pub struct PointClippingBehavior(pub(crate) i32); 1367 impl PointClippingBehavior { from_raw(x: i32) -> Self1368 pub const fn from_raw(x: i32) -> Self { 1369 PointClippingBehavior(x) 1370 } as_raw(self) -> i321371 pub const fn as_raw(self) -> i32 { 1372 self.0 1373 } 1374 } 1375 impl PointClippingBehavior { 1376 pub const ALL_CLIP_PLANES: Self = Self(0); 1377 pub const USER_CLIP_PLANES_ONLY: Self = Self(1); 1378 } 1379 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1380 #[repr(transparent)] 1381 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerReductionMode.html>"] 1382 pub struct SamplerReductionMode(pub(crate) i32); 1383 impl SamplerReductionMode { from_raw(x: i32) -> Self1384 pub const fn from_raw(x: i32) -> Self { 1385 SamplerReductionMode(x) 1386 } as_raw(self) -> i321387 pub const fn as_raw(self) -> i32 { 1388 self.0 1389 } 1390 } 1391 impl SamplerReductionMode { 1392 pub const WEIGHTED_AVERAGE: Self = Self(0); 1393 pub const MIN: Self = Self(1); 1394 pub const MAX: Self = Self(2); 1395 } 1396 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1397 #[repr(transparent)] 1398 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkTessellationDomainOrigin.html>"] 1399 pub struct TessellationDomainOrigin(pub(crate) i32); 1400 impl TessellationDomainOrigin { from_raw(x: i32) -> Self1401 pub const fn from_raw(x: i32) -> Self { 1402 TessellationDomainOrigin(x) 1403 } as_raw(self) -> i321404 pub const fn as_raw(self) -> i32 { 1405 self.0 1406 } 1407 } 1408 impl TessellationDomainOrigin { 1409 pub const UPPER_LEFT: Self = Self(0); 1410 pub const LOWER_LEFT: Self = Self(1); 1411 } 1412 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1413 #[repr(transparent)] 1414 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerYcbcrModelConversion.html>"] 1415 pub struct SamplerYcbcrModelConversion(pub(crate) i32); 1416 impl SamplerYcbcrModelConversion { from_raw(x: i32) -> Self1417 pub const fn from_raw(x: i32) -> Self { 1418 SamplerYcbcrModelConversion(x) 1419 } as_raw(self) -> i321420 pub const fn as_raw(self) -> i32 { 1421 self.0 1422 } 1423 } 1424 impl SamplerYcbcrModelConversion { 1425 pub const RGB_IDENTITY: Self = Self(0); 1426 #[doc = "just range expansion"] 1427 pub const YCBCR_IDENTITY: Self = Self(1); 1428 #[doc = "aka HD YUV"] 1429 pub const YCBCR_709: Self = Self(2); 1430 #[doc = "aka SD YUV"] 1431 pub const YCBCR_601: Self = Self(3); 1432 #[doc = "aka UHD YUV"] 1433 pub const YCBCR_2020: Self = Self(4); 1434 } 1435 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1436 #[repr(transparent)] 1437 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerYcbcrRange.html>"] 1438 pub struct SamplerYcbcrRange(pub(crate) i32); 1439 impl SamplerYcbcrRange { from_raw(x: i32) -> Self1440 pub const fn from_raw(x: i32) -> Self { 1441 SamplerYcbcrRange(x) 1442 } as_raw(self) -> i321443 pub const fn as_raw(self) -> i32 { 1444 self.0 1445 } 1446 } 1447 impl SamplerYcbcrRange { 1448 #[doc = "Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)"] 1449 pub const ITU_FULL: Self = Self(0); 1450 #[doc = "Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240"] 1451 pub const ITU_NARROW: Self = Self(1); 1452 } 1453 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1454 #[repr(transparent)] 1455 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkChromaLocation.html>"] 1456 pub struct ChromaLocation(pub(crate) i32); 1457 impl ChromaLocation { from_raw(x: i32) -> Self1458 pub const fn from_raw(x: i32) -> Self { 1459 ChromaLocation(x) 1460 } as_raw(self) -> i321461 pub const fn as_raw(self) -> i32 { 1462 self.0 1463 } 1464 } 1465 impl ChromaLocation { 1466 pub const COSITED_EVEN: Self = Self(0); 1467 pub const MIDPOINT: Self = Self(1); 1468 } 1469 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1470 #[repr(transparent)] 1471 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBlendOverlapEXT.html>"] 1472 pub struct BlendOverlapEXT(pub(crate) i32); 1473 impl BlendOverlapEXT { from_raw(x: i32) -> Self1474 pub const fn from_raw(x: i32) -> Self { 1475 BlendOverlapEXT(x) 1476 } as_raw(self) -> i321477 pub const fn as_raw(self) -> i32 { 1478 self.0 1479 } 1480 } 1481 impl BlendOverlapEXT { 1482 pub const UNCORRELATED: Self = Self(0); 1483 pub const DISJOINT: Self = Self(1); 1484 pub const CONJOINT: Self = Self(2); 1485 } 1486 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1487 #[repr(transparent)] 1488 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCoverageModulationModeNV.html>"] 1489 pub struct CoverageModulationModeNV(pub(crate) i32); 1490 impl CoverageModulationModeNV { from_raw(x: i32) -> Self1491 pub const fn from_raw(x: i32) -> Self { 1492 CoverageModulationModeNV(x) 1493 } as_raw(self) -> i321494 pub const fn as_raw(self) -> i32 { 1495 self.0 1496 } 1497 } 1498 impl CoverageModulationModeNV { 1499 pub const NONE: Self = Self(0); 1500 pub const RGB: Self = Self(1); 1501 pub const ALPHA: Self = Self(2); 1502 pub const RGBA: Self = Self(3); 1503 } 1504 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1505 #[repr(transparent)] 1506 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCoverageReductionModeNV.html>"] 1507 pub struct CoverageReductionModeNV(pub(crate) i32); 1508 impl CoverageReductionModeNV { from_raw(x: i32) -> Self1509 pub const fn from_raw(x: i32) -> Self { 1510 CoverageReductionModeNV(x) 1511 } as_raw(self) -> i321512 pub const fn as_raw(self) -> i32 { 1513 self.0 1514 } 1515 } 1516 impl CoverageReductionModeNV { 1517 pub const MERGE: Self = Self(0); 1518 pub const TRUNCATE: Self = Self(1); 1519 } 1520 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1521 #[repr(transparent)] 1522 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationCacheHeaderVersionEXT.html>"] 1523 pub struct ValidationCacheHeaderVersionEXT(pub(crate) i32); 1524 impl ValidationCacheHeaderVersionEXT { from_raw(x: i32) -> Self1525 pub const fn from_raw(x: i32) -> Self { 1526 ValidationCacheHeaderVersionEXT(x) 1527 } as_raw(self) -> i321528 pub const fn as_raw(self) -> i32 { 1529 self.0 1530 } 1531 } 1532 impl ValidationCacheHeaderVersionEXT { 1533 pub const ONE: Self = Self(1); 1534 } 1535 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1536 #[repr(transparent)] 1537 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderInfoTypeAMD.html>"] 1538 pub struct ShaderInfoTypeAMD(pub(crate) i32); 1539 impl ShaderInfoTypeAMD { from_raw(x: i32) -> Self1540 pub const fn from_raw(x: i32) -> Self { 1541 ShaderInfoTypeAMD(x) 1542 } as_raw(self) -> i321543 pub const fn as_raw(self) -> i32 { 1544 self.0 1545 } 1546 } 1547 impl ShaderInfoTypeAMD { 1548 pub const STATISTICS: Self = Self(0); 1549 pub const BINARY: Self = Self(1); 1550 pub const DISASSEMBLY: Self = Self(2); 1551 } 1552 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1553 #[repr(transparent)] 1554 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueueGlobalPriorityEXT.html>"] 1555 pub struct QueueGlobalPriorityEXT(pub(crate) i32); 1556 impl QueueGlobalPriorityEXT { from_raw(x: i32) -> Self1557 pub const fn from_raw(x: i32) -> Self { 1558 QueueGlobalPriorityEXT(x) 1559 } as_raw(self) -> i321560 pub const fn as_raw(self) -> i32 { 1561 self.0 1562 } 1563 } 1564 impl QueueGlobalPriorityEXT { 1565 pub const LOW: Self = Self(128); 1566 pub const MEDIUM: Self = Self(256); 1567 pub const HIGH: Self = Self(512); 1568 pub const REALTIME: Self = Self(1_024); 1569 } 1570 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1571 #[repr(transparent)] 1572 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkConservativeRasterizationModeEXT.html>"] 1573 pub struct ConservativeRasterizationModeEXT(pub(crate) i32); 1574 impl ConservativeRasterizationModeEXT { from_raw(x: i32) -> Self1575 pub const fn from_raw(x: i32) -> Self { 1576 ConservativeRasterizationModeEXT(x) 1577 } as_raw(self) -> i321578 pub const fn as_raw(self) -> i32 { 1579 self.0 1580 } 1581 } 1582 impl ConservativeRasterizationModeEXT { 1583 pub const DISABLED: Self = Self(0); 1584 pub const OVERESTIMATE: Self = Self(1); 1585 pub const UNDERESTIMATE: Self = Self(2); 1586 } 1587 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1588 #[repr(transparent)] 1589 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkVendorId.html>"] 1590 pub struct VendorId(pub(crate) i32); 1591 impl VendorId { from_raw(x: i32) -> Self1592 pub const fn from_raw(x: i32) -> Self { 1593 VendorId(x) 1594 } as_raw(self) -> i321595 pub const fn as_raw(self) -> i32 { 1596 self.0 1597 } 1598 } 1599 impl VendorId { 1600 #[doc = "Vivante vendor ID"] 1601 pub const VIV: Self = Self(0x1_0001); 1602 #[doc = "VeriSilicon vendor ID"] 1603 pub const VSI: Self = Self(0x1_0002); 1604 #[doc = "Kazan Software Renderer"] 1605 pub const KAZAN: Self = Self(0x1_0003); 1606 #[doc = "Codeplay Software Ltd. vendor ID"] 1607 pub const CODEPLAY: Self = Self(0x1_0004); 1608 #[doc = "Mesa vendor ID"] 1609 pub const MESA: Self = Self(0x1_0005); 1610 #[doc = "PoCL vendor ID"] 1611 pub const POCL: Self = Self(0x1_0006); 1612 } 1613 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1614 #[repr(transparent)] 1615 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDriverId.html>"] 1616 pub struct DriverId(pub(crate) i32); 1617 impl DriverId { from_raw(x: i32) -> Self1618 pub const fn from_raw(x: i32) -> Self { 1619 DriverId(x) 1620 } as_raw(self) -> i321621 pub const fn as_raw(self) -> i32 { 1622 self.0 1623 } 1624 } 1625 impl DriverId { 1626 #[doc = "Advanced Micro Devices, Inc."] 1627 pub const AMD_PROPRIETARY: Self = Self(1); 1628 #[doc = "Advanced Micro Devices, Inc."] 1629 pub const AMD_OPEN_SOURCE: Self = Self(2); 1630 #[doc = "Mesa open source project"] 1631 pub const MESA_RADV: Self = Self(3); 1632 #[doc = "NVIDIA Corporation"] 1633 pub const NVIDIA_PROPRIETARY: Self = Self(4); 1634 #[doc = "Intel Corporation"] 1635 pub const INTEL_PROPRIETARY_WINDOWS: Self = Self(5); 1636 #[doc = "Intel Corporation"] 1637 pub const INTEL_OPEN_SOURCE_MESA: Self = Self(6); 1638 #[doc = "Imagination Technologies"] 1639 pub const IMAGINATION_PROPRIETARY: Self = Self(7); 1640 #[doc = "Qualcomm Technologies, Inc."] 1641 pub const QUALCOMM_PROPRIETARY: Self = Self(8); 1642 #[doc = "Arm Limited"] 1643 pub const ARM_PROPRIETARY: Self = Self(9); 1644 #[doc = "Google LLC"] 1645 pub const GOOGLE_SWIFTSHADER: Self = Self(10); 1646 #[doc = "Google LLC"] 1647 pub const GGP_PROPRIETARY: Self = Self(11); 1648 #[doc = "Broadcom Inc."] 1649 pub const BROADCOM_PROPRIETARY: Self = Self(12); 1650 #[doc = "Mesa"] 1651 pub const MESA_LLVMPIPE: Self = Self(13); 1652 #[doc = "MoltenVK"] 1653 pub const MOLTENVK: Self = Self(14); 1654 #[doc = "Core Avionics & Industrial Inc."] 1655 pub const COREAVI_PROPRIETARY: Self = Self(15); 1656 #[doc = "Juice Technologies, Inc."] 1657 pub const JUICE_PROPRIETARY: Self = Self(16); 1658 #[doc = "Verisilicon, Inc."] 1659 pub const VERISILICON_PROPRIETARY: Self = Self(17); 1660 } 1661 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1662 #[repr(transparent)] 1663 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShadingRatePaletteEntryNV.html>"] 1664 pub struct ShadingRatePaletteEntryNV(pub(crate) i32); 1665 impl ShadingRatePaletteEntryNV { from_raw(x: i32) -> Self1666 pub const fn from_raw(x: i32) -> Self { 1667 ShadingRatePaletteEntryNV(x) 1668 } as_raw(self) -> i321669 pub const fn as_raw(self) -> i32 { 1670 self.0 1671 } 1672 } 1673 impl ShadingRatePaletteEntryNV { 1674 pub const NO_INVOCATIONS: Self = Self(0); 1675 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(1); 1676 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(2); 1677 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(3); 1678 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(4); 1679 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(5); 1680 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(6); 1681 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(7); 1682 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(8); 1683 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 1684 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(10); 1685 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(11); 1686 } 1687 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1688 #[repr(transparent)] 1689 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCoarseSampleOrderTypeNV.html>"] 1690 pub struct CoarseSampleOrderTypeNV(pub(crate) i32); 1691 impl CoarseSampleOrderTypeNV { from_raw(x: i32) -> Self1692 pub const fn from_raw(x: i32) -> Self { 1693 CoarseSampleOrderTypeNV(x) 1694 } as_raw(self) -> i321695 pub const fn as_raw(self) -> i32 { 1696 self.0 1697 } 1698 } 1699 impl CoarseSampleOrderTypeNV { 1700 pub const DEFAULT: Self = Self(0); 1701 pub const CUSTOM: Self = Self(1); 1702 pub const PIXEL_MAJOR: Self = Self(2); 1703 pub const SAMPLE_MAJOR: Self = Self(3); 1704 } 1705 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1706 #[repr(transparent)] 1707 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCopyAccelerationStructureModeKHR.html>"] 1708 pub struct CopyAccelerationStructureModeKHR(pub(crate) i32); 1709 impl CopyAccelerationStructureModeKHR { from_raw(x: i32) -> Self1710 pub const fn from_raw(x: i32) -> Self { 1711 CopyAccelerationStructureModeKHR(x) 1712 } as_raw(self) -> i321713 pub const fn as_raw(self) -> i32 { 1714 self.0 1715 } 1716 } 1717 impl CopyAccelerationStructureModeKHR { 1718 pub const CLONE: Self = Self(0); 1719 pub const COMPACT: Self = Self(1); 1720 pub const SERIALIZE: Self = Self(2); 1721 pub const DESERIALIZE: Self = Self(3); 1722 } 1723 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1724 #[repr(transparent)] 1725 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBuildAccelerationStructureModeKHR.html>"] 1726 pub struct BuildAccelerationStructureModeKHR(pub(crate) i32); 1727 impl BuildAccelerationStructureModeKHR { from_raw(x: i32) -> Self1728 pub const fn from_raw(x: i32) -> Self { 1729 BuildAccelerationStructureModeKHR(x) 1730 } as_raw(self) -> i321731 pub const fn as_raw(self) -> i32 { 1732 self.0 1733 } 1734 } 1735 impl BuildAccelerationStructureModeKHR { 1736 pub const BUILD: Self = Self(0); 1737 pub const UPDATE: Self = Self(1); 1738 } 1739 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1740 #[repr(transparent)] 1741 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureTypeKHR.html>"] 1742 pub struct AccelerationStructureTypeKHR(pub(crate) i32); 1743 impl AccelerationStructureTypeKHR { from_raw(x: i32) -> Self1744 pub const fn from_raw(x: i32) -> Self { 1745 AccelerationStructureTypeKHR(x) 1746 } as_raw(self) -> i321747 pub const fn as_raw(self) -> i32 { 1748 self.0 1749 } 1750 } 1751 impl AccelerationStructureTypeKHR { 1752 pub const TOP_LEVEL: Self = Self(0); 1753 pub const BOTTOM_LEVEL: Self = Self(1); 1754 pub const GENERIC: Self = Self(2); 1755 } 1756 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1757 #[repr(transparent)] 1758 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkGeometryTypeKHR.html>"] 1759 pub struct GeometryTypeKHR(pub(crate) i32); 1760 impl GeometryTypeKHR { from_raw(x: i32) -> Self1761 pub const fn from_raw(x: i32) -> Self { 1762 GeometryTypeKHR(x) 1763 } as_raw(self) -> i321764 pub const fn as_raw(self) -> i32 { 1765 self.0 1766 } 1767 } 1768 impl GeometryTypeKHR { 1769 pub const TRIANGLES: Self = Self(0); 1770 pub const AABBS: Self = Self(1); 1771 pub const INSTANCES: Self = Self(2); 1772 } 1773 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1774 #[repr(transparent)] 1775 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureMemoryRequirementsTypeNV.html>"] 1776 pub struct AccelerationStructureMemoryRequirementsTypeNV(pub(crate) i32); 1777 impl AccelerationStructureMemoryRequirementsTypeNV { from_raw(x: i32) -> Self1778 pub const fn from_raw(x: i32) -> Self { 1779 AccelerationStructureMemoryRequirementsTypeNV(x) 1780 } as_raw(self) -> i321781 pub const fn as_raw(self) -> i32 { 1782 self.0 1783 } 1784 } 1785 impl AccelerationStructureMemoryRequirementsTypeNV { 1786 pub const OBJECT: Self = Self(0); 1787 pub const BUILD_SCRATCH: Self = Self(1); 1788 pub const UPDATE_SCRATCH: Self = Self(2); 1789 } 1790 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1791 #[repr(transparent)] 1792 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureBuildTypeKHR.html>"] 1793 pub struct AccelerationStructureBuildTypeKHR(pub(crate) i32); 1794 impl AccelerationStructureBuildTypeKHR { from_raw(x: i32) -> Self1795 pub const fn from_raw(x: i32) -> Self { 1796 AccelerationStructureBuildTypeKHR(x) 1797 } as_raw(self) -> i321798 pub const fn as_raw(self) -> i32 { 1799 self.0 1800 } 1801 } 1802 impl AccelerationStructureBuildTypeKHR { 1803 pub const HOST: Self = Self(0); 1804 pub const DEVICE: Self = Self(1); 1805 pub const HOST_OR_DEVICE: Self = Self(2); 1806 } 1807 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1808 #[repr(transparent)] 1809 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkRayTracingShaderGroupTypeKHR.html>"] 1810 pub struct RayTracingShaderGroupTypeKHR(pub(crate) i32); 1811 impl RayTracingShaderGroupTypeKHR { from_raw(x: i32) -> Self1812 pub const fn from_raw(x: i32) -> Self { 1813 RayTracingShaderGroupTypeKHR(x) 1814 } as_raw(self) -> i321815 pub const fn as_raw(self) -> i32 { 1816 self.0 1817 } 1818 } 1819 impl RayTracingShaderGroupTypeKHR { 1820 pub const GENERAL: Self = Self(0); 1821 pub const TRIANGLES_HIT_GROUP: Self = Self(1); 1822 pub const PROCEDURAL_HIT_GROUP: Self = Self(2); 1823 } 1824 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1825 #[repr(transparent)] 1826 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureCompatibilityKHR.html>"] 1827 pub struct AccelerationStructureCompatibilityKHR(pub(crate) i32); 1828 impl AccelerationStructureCompatibilityKHR { from_raw(x: i32) -> Self1829 pub const fn from_raw(x: i32) -> Self { 1830 AccelerationStructureCompatibilityKHR(x) 1831 } as_raw(self) -> i321832 pub const fn as_raw(self) -> i32 { 1833 self.0 1834 } 1835 } 1836 impl AccelerationStructureCompatibilityKHR { 1837 pub const COMPATIBLE: Self = Self(0); 1838 pub const INCOMPATIBLE: Self = Self(1); 1839 } 1840 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1841 #[repr(transparent)] 1842 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderGroupShaderKHR.html>"] 1843 pub struct ShaderGroupShaderKHR(pub(crate) i32); 1844 impl ShaderGroupShaderKHR { from_raw(x: i32) -> Self1845 pub const fn from_raw(x: i32) -> Self { 1846 ShaderGroupShaderKHR(x) 1847 } as_raw(self) -> i321848 pub const fn as_raw(self) -> i32 { 1849 self.0 1850 } 1851 } 1852 impl ShaderGroupShaderKHR { 1853 pub const GENERAL: Self = Self(0); 1854 pub const CLOSEST_HIT: Self = Self(1); 1855 pub const ANY_HIT: Self = Self(2); 1856 pub const INTERSECTION: Self = Self(3); 1857 } 1858 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1859 #[repr(transparent)] 1860 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkMemoryOverallocationBehaviorAMD.html>"] 1861 pub struct MemoryOverallocationBehaviorAMD(pub(crate) i32); 1862 impl MemoryOverallocationBehaviorAMD { from_raw(x: i32) -> Self1863 pub const fn from_raw(x: i32) -> Self { 1864 MemoryOverallocationBehaviorAMD(x) 1865 } as_raw(self) -> i321866 pub const fn as_raw(self) -> i32 { 1867 self.0 1868 } 1869 } 1870 impl MemoryOverallocationBehaviorAMD { 1871 pub const DEFAULT: Self = Self(0); 1872 pub const ALLOWED: Self = Self(1); 1873 pub const DISALLOWED: Self = Self(2); 1874 } 1875 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1876 #[repr(transparent)] 1877 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkScopeNV.html>"] 1878 pub struct ScopeNV(pub(crate) i32); 1879 impl ScopeNV { from_raw(x: i32) -> Self1880 pub const fn from_raw(x: i32) -> Self { 1881 ScopeNV(x) 1882 } as_raw(self) -> i321883 pub const fn as_raw(self) -> i32 { 1884 self.0 1885 } 1886 } 1887 impl ScopeNV { 1888 pub const DEVICE: Self = Self(1); 1889 pub const WORKGROUP: Self = Self(2); 1890 pub const SUBGROUP: Self = Self(3); 1891 pub const QUEUE_FAMILY: Self = Self(5); 1892 } 1893 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1894 #[repr(transparent)] 1895 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkComponentTypeNV.html>"] 1896 pub struct ComponentTypeNV(pub(crate) i32); 1897 impl ComponentTypeNV { from_raw(x: i32) -> Self1898 pub const fn from_raw(x: i32) -> Self { 1899 ComponentTypeNV(x) 1900 } as_raw(self) -> i321901 pub const fn as_raw(self) -> i32 { 1902 self.0 1903 } 1904 } 1905 impl ComponentTypeNV { 1906 pub const FLOAT16: Self = Self(0); 1907 pub const FLOAT32: Self = Self(1); 1908 pub const FLOAT64: Self = Self(2); 1909 pub const SINT8: Self = Self(3); 1910 pub const SINT16: Self = Self(4); 1911 pub const SINT32: Self = Self(5); 1912 pub const SINT64: Self = Self(6); 1913 pub const UINT8: Self = Self(7); 1914 pub const UINT16: Self = Self(8); 1915 pub const UINT32: Self = Self(9); 1916 pub const UINT64: Self = Self(10); 1917 } 1918 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1919 #[repr(transparent)] 1920 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFullScreenExclusiveEXT.html>"] 1921 pub struct FullScreenExclusiveEXT(pub(crate) i32); 1922 impl FullScreenExclusiveEXT { from_raw(x: i32) -> Self1923 pub const fn from_raw(x: i32) -> Self { 1924 FullScreenExclusiveEXT(x) 1925 } as_raw(self) -> i321926 pub const fn as_raw(self) -> i32 { 1927 self.0 1928 } 1929 } 1930 impl FullScreenExclusiveEXT { 1931 pub const DEFAULT: Self = Self(0); 1932 pub const ALLOWED: Self = Self(1); 1933 pub const DISALLOWED: Self = Self(2); 1934 pub const APPLICATION_CONTROLLED: Self = Self(3); 1935 } 1936 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1937 #[repr(transparent)] 1938 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterScopeKHR.html>"] 1939 pub struct PerformanceCounterScopeKHR(pub(crate) i32); 1940 impl PerformanceCounterScopeKHR { from_raw(x: i32) -> Self1941 pub const fn from_raw(x: i32) -> Self { 1942 PerformanceCounterScopeKHR(x) 1943 } as_raw(self) -> i321944 pub const fn as_raw(self) -> i32 { 1945 self.0 1946 } 1947 } 1948 impl PerformanceCounterScopeKHR { 1949 pub const COMMAND_BUFFER: Self = Self(0); 1950 pub const RENDER_PASS: Self = Self(1); 1951 pub const COMMAND: Self = Self(2); 1952 pub const QUERY_SCOPE_COMMAND_BUFFER: Self = Self::COMMAND_BUFFER; 1953 pub const QUERY_SCOPE_RENDER_PASS: Self = Self::RENDER_PASS; 1954 pub const QUERY_SCOPE_COMMAND: Self = Self::COMMAND; 1955 } 1956 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1957 #[repr(transparent)] 1958 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterUnitKHR.html>"] 1959 pub struct PerformanceCounterUnitKHR(pub(crate) i32); 1960 impl PerformanceCounterUnitKHR { from_raw(x: i32) -> Self1961 pub const fn from_raw(x: i32) -> Self { 1962 PerformanceCounterUnitKHR(x) 1963 } as_raw(self) -> i321964 pub const fn as_raw(self) -> i32 { 1965 self.0 1966 } 1967 } 1968 impl PerformanceCounterUnitKHR { 1969 pub const GENERIC: Self = Self(0); 1970 pub const PERCENTAGE: Self = Self(1); 1971 pub const NANOSECONDS: Self = Self(2); 1972 pub const BYTES: Self = Self(3); 1973 pub const BYTES_PER_SECOND: Self = Self(4); 1974 pub const KELVIN: Self = Self(5); 1975 pub const WATTS: Self = Self(6); 1976 pub const VOLTS: Self = Self(7); 1977 pub const AMPS: Self = Self(8); 1978 pub const HERTZ: Self = Self(9); 1979 pub const CYCLES: Self = Self(10); 1980 } 1981 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1982 #[repr(transparent)] 1983 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterStorageKHR.html>"] 1984 pub struct PerformanceCounterStorageKHR(pub(crate) i32); 1985 impl PerformanceCounterStorageKHR { from_raw(x: i32) -> Self1986 pub const fn from_raw(x: i32) -> Self { 1987 PerformanceCounterStorageKHR(x) 1988 } as_raw(self) -> i321989 pub const fn as_raw(self) -> i32 { 1990 self.0 1991 } 1992 } 1993 impl PerformanceCounterStorageKHR { 1994 pub const INT32: Self = Self(0); 1995 pub const INT64: Self = Self(1); 1996 pub const UINT32: Self = Self(2); 1997 pub const UINT64: Self = Self(3); 1998 pub const FLOAT32: Self = Self(4); 1999 pub const FLOAT64: Self = Self(5); 2000 } 2001 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2002 #[repr(transparent)] 2003 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceConfigurationTypeINTEL.html>"] 2004 pub struct PerformanceConfigurationTypeINTEL(pub(crate) i32); 2005 impl PerformanceConfigurationTypeINTEL { from_raw(x: i32) -> Self2006 pub const fn from_raw(x: i32) -> Self { 2007 PerformanceConfigurationTypeINTEL(x) 2008 } as_raw(self) -> i322009 pub const fn as_raw(self) -> i32 { 2010 self.0 2011 } 2012 } 2013 impl PerformanceConfigurationTypeINTEL { 2014 pub const COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED: Self = Self(0); 2015 } 2016 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2017 #[repr(transparent)] 2018 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryPoolSamplingModeINTEL.html>"] 2019 pub struct QueryPoolSamplingModeINTEL(pub(crate) i32); 2020 impl QueryPoolSamplingModeINTEL { from_raw(x: i32) -> Self2021 pub const fn from_raw(x: i32) -> Self { 2022 QueryPoolSamplingModeINTEL(x) 2023 } as_raw(self) -> i322024 pub const fn as_raw(self) -> i32 { 2025 self.0 2026 } 2027 } 2028 impl QueryPoolSamplingModeINTEL { 2029 pub const MANUAL: Self = Self(0); 2030 } 2031 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2032 #[repr(transparent)] 2033 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceOverrideTypeINTEL.html>"] 2034 pub struct PerformanceOverrideTypeINTEL(pub(crate) i32); 2035 impl PerformanceOverrideTypeINTEL { from_raw(x: i32) -> Self2036 pub const fn from_raw(x: i32) -> Self { 2037 PerformanceOverrideTypeINTEL(x) 2038 } as_raw(self) -> i322039 pub const fn as_raw(self) -> i32 { 2040 self.0 2041 } 2042 } 2043 impl PerformanceOverrideTypeINTEL { 2044 pub const NULL_HARDWARE: Self = Self(0); 2045 pub const FLUSH_GPU_CACHES: Self = Self(1); 2046 } 2047 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2048 #[repr(transparent)] 2049 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceParameterTypeINTEL.html>"] 2050 pub struct PerformanceParameterTypeINTEL(pub(crate) i32); 2051 impl PerformanceParameterTypeINTEL { from_raw(x: i32) -> Self2052 pub const fn from_raw(x: i32) -> Self { 2053 PerformanceParameterTypeINTEL(x) 2054 } as_raw(self) -> i322055 pub const fn as_raw(self) -> i32 { 2056 self.0 2057 } 2058 } 2059 impl PerformanceParameterTypeINTEL { 2060 pub const HW_COUNTERS_SUPPORTED: Self = Self(0); 2061 pub const STREAM_MARKER_VALIDS: Self = Self(1); 2062 } 2063 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2064 #[repr(transparent)] 2065 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceValueTypeINTEL.html>"] 2066 pub struct PerformanceValueTypeINTEL(pub(crate) i32); 2067 impl PerformanceValueTypeINTEL { from_raw(x: i32) -> Self2068 pub const fn from_raw(x: i32) -> Self { 2069 PerformanceValueTypeINTEL(x) 2070 } as_raw(self) -> i322071 pub const fn as_raw(self) -> i32 { 2072 self.0 2073 } 2074 } 2075 impl PerformanceValueTypeINTEL { 2076 pub const UINT32: Self = Self(0); 2077 pub const UINT64: Self = Self(1); 2078 pub const FLOAT: Self = Self(2); 2079 pub const BOOL: Self = Self(3); 2080 pub const STRING: Self = Self(4); 2081 } 2082 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2083 #[repr(transparent)] 2084 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderFloatControlsIndependence.html>"] 2085 pub struct ShaderFloatControlsIndependence(pub(crate) i32); 2086 impl ShaderFloatControlsIndependence { from_raw(x: i32) -> Self2087 pub const fn from_raw(x: i32) -> Self { 2088 ShaderFloatControlsIndependence(x) 2089 } as_raw(self) -> i322090 pub const fn as_raw(self) -> i32 { 2091 self.0 2092 } 2093 } 2094 impl ShaderFloatControlsIndependence { 2095 pub const TYPE_32_ONLY: Self = Self(0); 2096 pub const ALL: Self = Self(1); 2097 pub const NONE: Self = Self(2); 2098 } 2099 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2100 #[repr(transparent)] 2101 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineExecutableStatisticFormatKHR.html>"] 2102 pub struct PipelineExecutableStatisticFormatKHR(pub(crate) i32); 2103 impl PipelineExecutableStatisticFormatKHR { from_raw(x: i32) -> Self2104 pub const fn from_raw(x: i32) -> Self { 2105 PipelineExecutableStatisticFormatKHR(x) 2106 } as_raw(self) -> i322107 pub const fn as_raw(self) -> i32 { 2108 self.0 2109 } 2110 } 2111 impl PipelineExecutableStatisticFormatKHR { 2112 pub const BOOL32: Self = Self(0); 2113 pub const INT64: Self = Self(1); 2114 pub const UINT64: Self = Self(2); 2115 pub const FLOAT64: Self = Self(3); 2116 } 2117 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2118 #[repr(transparent)] 2119 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkLineRasterizationModeEXT.html>"] 2120 pub struct LineRasterizationModeEXT(pub(crate) i32); 2121 impl LineRasterizationModeEXT { from_raw(x: i32) -> Self2122 pub const fn from_raw(x: i32) -> Self { 2123 LineRasterizationModeEXT(x) 2124 } as_raw(self) -> i322125 pub const fn as_raw(self) -> i32 { 2126 self.0 2127 } 2128 } 2129 impl LineRasterizationModeEXT { 2130 pub const DEFAULT: Self = Self(0); 2131 pub const RECTANGULAR: Self = Self(1); 2132 pub const BRESENHAM: Self = Self(2); 2133 pub const RECTANGULAR_SMOOTH: Self = Self(3); 2134 } 2135 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2136 #[repr(transparent)] 2137 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateCombinerOpKHR.html>"] 2138 pub struct FragmentShadingRateCombinerOpKHR(pub(crate) i32); 2139 impl FragmentShadingRateCombinerOpKHR { from_raw(x: i32) -> Self2140 pub const fn from_raw(x: i32) -> Self { 2141 FragmentShadingRateCombinerOpKHR(x) 2142 } as_raw(self) -> i322143 pub const fn as_raw(self) -> i32 { 2144 self.0 2145 } 2146 } 2147 impl FragmentShadingRateCombinerOpKHR { 2148 pub const KEEP: Self = Self(0); 2149 pub const REPLACE: Self = Self(1); 2150 pub const MIN: Self = Self(2); 2151 pub const MAX: Self = Self(3); 2152 pub const MUL: Self = Self(4); 2153 } 2154 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2155 #[repr(transparent)] 2156 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateNV.html>"] 2157 pub struct FragmentShadingRateNV(pub(crate) i32); 2158 impl FragmentShadingRateNV { from_raw(x: i32) -> Self2159 pub const fn from_raw(x: i32) -> Self { 2160 FragmentShadingRateNV(x) 2161 } as_raw(self) -> i322162 pub const fn as_raw(self) -> i32 { 2163 self.0 2164 } 2165 } 2166 impl FragmentShadingRateNV { 2167 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(0); 2168 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(1); 2169 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(4); 2170 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(5); 2171 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(6); 2172 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 2173 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(10); 2174 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(11); 2175 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(12); 2176 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(13); 2177 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(14); 2178 pub const NO_INVOCATIONS: Self = Self(15); 2179 } 2180 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2181 #[repr(transparent)] 2182 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateTypeNV.html>"] 2183 pub struct FragmentShadingRateTypeNV(pub(crate) i32); 2184 impl FragmentShadingRateTypeNV { from_raw(x: i32) -> Self2185 pub const fn from_raw(x: i32) -> Self { 2186 FragmentShadingRateTypeNV(x) 2187 } as_raw(self) -> i322188 pub const fn as_raw(self) -> i32 { 2189 self.0 2190 } 2191 } 2192 impl FragmentShadingRateTypeNV { 2193 pub const FRAGMENT_SIZE: Self = Self(0); 2194 pub const ENUMS: Self = Self(1); 2195 } 2196 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2197 #[repr(transparent)] 2198 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkProvokingVertexModeEXT.html>"] 2199 pub struct ProvokingVertexModeEXT(pub(crate) i32); 2200 impl ProvokingVertexModeEXT { from_raw(x: i32) -> Self2201 pub const fn from_raw(x: i32) -> Self { 2202 ProvokingVertexModeEXT(x) 2203 } as_raw(self) -> i322204 pub const fn as_raw(self) -> i32 { 2205 self.0 2206 } 2207 } 2208 impl ProvokingVertexModeEXT { 2209 pub const FIRST_VERTEX: Self = Self(0); 2210 pub const LAST_VERTEX: Self = Self(1); 2211 } 2212 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2213 #[repr(transparent)] 2214 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureMotionInstanceTypeNV.html>"] 2215 pub struct AccelerationStructureMotionInstanceTypeNV(pub(crate) i32); 2216 impl AccelerationStructureMotionInstanceTypeNV { from_raw(x: i32) -> Self2217 pub const fn from_raw(x: i32) -> Self { 2218 AccelerationStructureMotionInstanceTypeNV(x) 2219 } as_raw(self) -> i322220 pub const fn as_raw(self) -> i32 { 2221 self.0 2222 } 2223 } 2224 impl AccelerationStructureMotionInstanceTypeNV { 2225 pub const STATIC: Self = Self(0); 2226 pub const MATRIX_MOTION: Self = Self(1); 2227 pub const SRT_MOTION: Self = Self(2); 2228 } 2229 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2230 #[repr(transparent)] 2231 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryResultStatusKHR.html>"] 2232 pub struct QueryResultStatusKHR(pub(crate) i32); 2233 impl QueryResultStatusKHR { from_raw(x: i32) -> Self2234 pub const fn from_raw(x: i32) -> Self { 2235 QueryResultStatusKHR(x) 2236 } as_raw(self) -> i322237 pub const fn as_raw(self) -> i32 { 2238 self.0 2239 } 2240 } 2241 impl QueryResultStatusKHR { 2242 pub const ERROR: Self = Self(-1); 2243 pub const NOT_READY: Self = Self(0); 2244 pub const COMPLETE: Self = Self(1); 2245 } 2246