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 { description(&self) -> &str923 fn description(&self) -> &str { 924 let name = match *self { 925 Result::SUCCESS => Some("Command completed successfully"), 926 Result::NOT_READY => Some("A fence or query has not yet completed"), 927 Result::TIMEOUT => Some("A wait operation has not completed in the specified time"), 928 Result::EVENT_SET => Some("An event is signaled"), 929 Result::EVENT_RESET => Some("An event is unsignaled"), 930 Result::INCOMPLETE => Some("A return array was too small for the result"), 931 Result::ERROR_OUT_OF_HOST_MEMORY => Some("A host memory allocation has failed"), 932 Result::ERROR_OUT_OF_DEVICE_MEMORY => Some("A device memory allocation has failed"), 933 Result::ERROR_INITIALIZATION_FAILED => Some("Initialization of a object has failed"), 934 Result::ERROR_DEVICE_LOST => { 935 Some("The logical device has been lost. See <<devsandqueues-lost-device>>") 936 } 937 Result::ERROR_MEMORY_MAP_FAILED => Some("Mapping of a memory object has failed"), 938 Result::ERROR_LAYER_NOT_PRESENT => Some("Layer specified does not exist"), 939 Result::ERROR_EXTENSION_NOT_PRESENT => Some("Extension specified does not exist"), 940 Result::ERROR_FEATURE_NOT_PRESENT => { 941 Some("Requested feature is not available on this device") 942 } 943 Result::ERROR_INCOMPATIBLE_DRIVER => Some("Unable to find a Vulkan driver"), 944 Result::ERROR_TOO_MANY_OBJECTS => { 945 Some("Too many objects of the type have already been created") 946 } 947 Result::ERROR_FORMAT_NOT_SUPPORTED => { 948 Some("Requested format is not supported on this device") 949 } 950 Result::ERROR_FRAGMENTED_POOL => Some( 951 "A requested pool allocation has failed due to fragmentation of the pool's memory", 952 ), 953 Result::ERROR_UNKNOWN => { 954 Some("An unknown error has occurred, due to an implementation or application bug") 955 } 956 _ => None, 957 }; 958 name.unwrap_or("unknown error") 959 } 960 } 961 impl fmt::Display for Result { fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result962 fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result { 963 let name = match *self { 964 Result::SUCCESS => Some("Command completed successfully"), 965 Result::NOT_READY => Some("A fence or query has not yet completed"), 966 Result::TIMEOUT => Some("A wait operation has not completed in the specified time"), 967 Result::EVENT_SET => Some("An event is signaled"), 968 Result::EVENT_RESET => Some("An event is unsignaled"), 969 Result::INCOMPLETE => Some("A return array was too small for the result"), 970 Result::ERROR_OUT_OF_HOST_MEMORY => Some("A host memory allocation has failed"), 971 Result::ERROR_OUT_OF_DEVICE_MEMORY => Some("A device memory allocation has failed"), 972 Result::ERROR_INITIALIZATION_FAILED => Some("Initialization of a object has failed"), 973 Result::ERROR_DEVICE_LOST => { 974 Some("The logical device has been lost. See <<devsandqueues-lost-device>>") 975 } 976 Result::ERROR_MEMORY_MAP_FAILED => Some("Mapping of a memory object has failed"), 977 Result::ERROR_LAYER_NOT_PRESENT => Some("Layer specified does not exist"), 978 Result::ERROR_EXTENSION_NOT_PRESENT => Some("Extension specified does not exist"), 979 Result::ERROR_FEATURE_NOT_PRESENT => { 980 Some("Requested feature is not available on this device") 981 } 982 Result::ERROR_INCOMPATIBLE_DRIVER => Some("Unable to find a Vulkan driver"), 983 Result::ERROR_TOO_MANY_OBJECTS => { 984 Some("Too many objects of the type have already been created") 985 } 986 Result::ERROR_FORMAT_NOT_SUPPORTED => { 987 Some("Requested format is not supported on this device") 988 } 989 Result::ERROR_FRAGMENTED_POOL => Some( 990 "A requested pool allocation has failed due to fragmentation of the pool's memory", 991 ), 992 Result::ERROR_UNKNOWN => { 993 Some("An unknown error has occurred, due to an implementation or application bug") 994 } 995 _ => None, 996 }; 997 if let Some(x) = name { 998 fmt.write_str(x) 999 } else { 1000 self.0.fmt(fmt) 1001 } 1002 } 1003 } 1004 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1005 #[repr(transparent)] 1006 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDynamicState.html>"] 1007 pub struct DynamicState(pub(crate) i32); 1008 impl DynamicState { from_raw(x: i32) -> Self1009 pub const fn from_raw(x: i32) -> Self { 1010 DynamicState(x) 1011 } as_raw(self) -> i321012 pub const fn as_raw(self) -> i32 { 1013 self.0 1014 } 1015 } 1016 impl DynamicState { 1017 pub const VIEWPORT: Self = Self(0); 1018 pub const SCISSOR: Self = Self(1); 1019 pub const LINE_WIDTH: Self = Self(2); 1020 pub const DEPTH_BIAS: Self = Self(3); 1021 pub const BLEND_CONSTANTS: Self = Self(4); 1022 pub const DEPTH_BOUNDS: Self = Self(5); 1023 pub const STENCIL_COMPARE_MASK: Self = Self(6); 1024 pub const STENCIL_WRITE_MASK: Self = Self(7); 1025 pub const STENCIL_REFERENCE: Self = Self(8); 1026 } 1027 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1028 #[repr(transparent)] 1029 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDescriptorUpdateTemplateType.html>"] 1030 pub struct DescriptorUpdateTemplateType(pub(crate) i32); 1031 impl DescriptorUpdateTemplateType { from_raw(x: i32) -> Self1032 pub const fn from_raw(x: i32) -> Self { 1033 DescriptorUpdateTemplateType(x) 1034 } as_raw(self) -> i321035 pub const fn as_raw(self) -> i32 { 1036 self.0 1037 } 1038 } 1039 impl DescriptorUpdateTemplateType { 1040 #[doc = "Create descriptor update template for descriptor set updates"] 1041 pub const DESCRIPTOR_SET: Self = Self(0); 1042 } 1043 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1044 #[repr(transparent)] 1045 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkObjectType.html>"] 1046 pub struct ObjectType(pub(crate) i32); 1047 impl ObjectType { from_raw(x: i32) -> Self1048 pub const fn from_raw(x: i32) -> Self { 1049 ObjectType(x) 1050 } as_raw(self) -> i321051 pub const fn as_raw(self) -> i32 { 1052 self.0 1053 } 1054 } 1055 impl ObjectType { 1056 pub const UNKNOWN: Self = Self(0); 1057 pub const INSTANCE: Self = Self(1); 1058 pub const PHYSICAL_DEVICE: Self = Self(2); 1059 pub const DEVICE: Self = Self(3); 1060 pub const QUEUE: Self = Self(4); 1061 pub const SEMAPHORE: Self = Self(5); 1062 pub const COMMAND_BUFFER: Self = Self(6); 1063 pub const FENCE: Self = Self(7); 1064 pub const DEVICE_MEMORY: Self = Self(8); 1065 pub const BUFFER: Self = Self(9); 1066 pub const IMAGE: Self = Self(10); 1067 pub const EVENT: Self = Self(11); 1068 pub const QUERY_POOL: Self = Self(12); 1069 pub const BUFFER_VIEW: Self = Self(13); 1070 pub const IMAGE_VIEW: Self = Self(14); 1071 pub const SHADER_MODULE: Self = Self(15); 1072 pub const PIPELINE_CACHE: Self = Self(16); 1073 pub const PIPELINE_LAYOUT: Self = Self(17); 1074 pub const RENDER_PASS: Self = Self(18); 1075 pub const PIPELINE: Self = Self(19); 1076 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1077 pub const SAMPLER: Self = Self(21); 1078 pub const DESCRIPTOR_POOL: Self = Self(22); 1079 pub const DESCRIPTOR_SET: Self = Self(23); 1080 pub const FRAMEBUFFER: Self = Self(24); 1081 pub const COMMAND_POOL: Self = Self(25); 1082 } 1083 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1084 #[repr(transparent)] 1085 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSemaphoreType.html>"] 1086 pub struct SemaphoreType(pub(crate) i32); 1087 impl SemaphoreType { from_raw(x: i32) -> Self1088 pub const fn from_raw(x: i32) -> Self { 1089 SemaphoreType(x) 1090 } as_raw(self) -> i321091 pub const fn as_raw(self) -> i32 { 1092 self.0 1093 } 1094 } 1095 impl SemaphoreType { 1096 pub const BINARY: Self = Self(0); 1097 pub const TIMELINE: Self = Self(1); 1098 } 1099 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1100 #[repr(transparent)] 1101 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPresentModeKHR.html>"] 1102 pub struct PresentModeKHR(pub(crate) i32); 1103 impl PresentModeKHR { from_raw(x: i32) -> Self1104 pub const fn from_raw(x: i32) -> Self { 1105 PresentModeKHR(x) 1106 } as_raw(self) -> i321107 pub const fn as_raw(self) -> i32 { 1108 self.0 1109 } 1110 } 1111 impl PresentModeKHR { 1112 pub const IMMEDIATE: Self = Self(0); 1113 pub const MAILBOX: Self = Self(1); 1114 pub const FIFO: Self = Self(2); 1115 pub const FIFO_RELAXED: Self = Self(3); 1116 } 1117 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1118 #[repr(transparent)] 1119 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkColorSpaceKHR.html>"] 1120 pub struct ColorSpaceKHR(pub(crate) i32); 1121 impl ColorSpaceKHR { from_raw(x: i32) -> Self1122 pub const fn from_raw(x: i32) -> Self { 1123 ColorSpaceKHR(x) 1124 } as_raw(self) -> i321125 pub const fn as_raw(self) -> i32 { 1126 self.0 1127 } 1128 } 1129 impl ColorSpaceKHR { 1130 pub const SRGB_NONLINEAR: Self = Self(0); 1131 } 1132 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1133 #[repr(transparent)] 1134 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkTimeDomainEXT.html>"] 1135 pub struct TimeDomainEXT(pub(crate) i32); 1136 impl TimeDomainEXT { from_raw(x: i32) -> Self1137 pub const fn from_raw(x: i32) -> Self { 1138 TimeDomainEXT(x) 1139 } as_raw(self) -> i321140 pub const fn as_raw(self) -> i32 { 1141 self.0 1142 } 1143 } 1144 impl TimeDomainEXT { 1145 pub const DEVICE: Self = Self(0); 1146 pub const CLOCK_MONOTONIC: Self = Self(1); 1147 pub const CLOCK_MONOTONIC_RAW: Self = Self(2); 1148 pub const QUERY_PERFORMANCE_COUNTER: Self = Self(3); 1149 } 1150 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1151 #[repr(transparent)] 1152 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDebugReportObjectTypeEXT.html>"] 1153 pub struct DebugReportObjectTypeEXT(pub(crate) i32); 1154 impl DebugReportObjectTypeEXT { from_raw(x: i32) -> Self1155 pub const fn from_raw(x: i32) -> Self { 1156 DebugReportObjectTypeEXT(x) 1157 } as_raw(self) -> i321158 pub const fn as_raw(self) -> i32 { 1159 self.0 1160 } 1161 } 1162 impl DebugReportObjectTypeEXT { 1163 pub const UNKNOWN: Self = Self(0); 1164 pub const INSTANCE: Self = Self(1); 1165 pub const PHYSICAL_DEVICE: Self = Self(2); 1166 pub const DEVICE: Self = Self(3); 1167 pub const QUEUE: Self = Self(4); 1168 pub const SEMAPHORE: Self = Self(5); 1169 pub const COMMAND_BUFFER: Self = Self(6); 1170 pub const FENCE: Self = Self(7); 1171 pub const DEVICE_MEMORY: Self = Self(8); 1172 pub const BUFFER: Self = Self(9); 1173 pub const IMAGE: Self = Self(10); 1174 pub const EVENT: Self = Self(11); 1175 pub const QUERY_POOL: Self = Self(12); 1176 pub const BUFFER_VIEW: Self = Self(13); 1177 pub const IMAGE_VIEW: Self = Self(14); 1178 pub const SHADER_MODULE: Self = Self(15); 1179 pub const PIPELINE_CACHE: Self = Self(16); 1180 pub const PIPELINE_LAYOUT: Self = Self(17); 1181 pub const RENDER_PASS: Self = Self(18); 1182 pub const PIPELINE: Self = Self(19); 1183 pub const DESCRIPTOR_SET_LAYOUT: Self = Self(20); 1184 pub const SAMPLER: Self = Self(21); 1185 pub const DESCRIPTOR_POOL: Self = Self(22); 1186 pub const DESCRIPTOR_SET: Self = Self(23); 1187 pub const FRAMEBUFFER: Self = Self(24); 1188 pub const COMMAND_POOL: Self = Self(25); 1189 pub const SURFACE_KHR: Self = Self(26); 1190 pub const SWAPCHAIN_KHR: Self = Self(27); 1191 pub const DEBUG_REPORT_CALLBACK_EXT: Self = Self(28); 1192 pub const DISPLAY_KHR: Self = Self(29); 1193 pub const DISPLAY_MODE_KHR: Self = Self(30); 1194 pub const VALIDATION_CACHE_EXT: Self = Self(33); 1195 } 1196 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1197 #[repr(transparent)] 1198 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceMemoryReportEventTypeEXT.html>"] 1199 pub struct DeviceMemoryReportEventTypeEXT(pub(crate) i32); 1200 impl DeviceMemoryReportEventTypeEXT { from_raw(x: i32) -> Self1201 pub const fn from_raw(x: i32) -> Self { 1202 DeviceMemoryReportEventTypeEXT(x) 1203 } as_raw(self) -> i321204 pub const fn as_raw(self) -> i32 { 1205 self.0 1206 } 1207 } 1208 impl DeviceMemoryReportEventTypeEXT { 1209 pub const ALLOCATE: Self = Self(0); 1210 pub const FREE: Self = Self(1); 1211 pub const IMPORT: Self = Self(2); 1212 pub const UNIMPORT: Self = Self(3); 1213 pub const ALLOCATION_FAILED: Self = Self(4); 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/VkRasterizationOrderAMD.html>"] 1218 pub struct RasterizationOrderAMD(pub(crate) i32); 1219 impl RasterizationOrderAMD { from_raw(x: i32) -> Self1220 pub const fn from_raw(x: i32) -> Self { 1221 RasterizationOrderAMD(x) 1222 } as_raw(self) -> i321223 pub const fn as_raw(self) -> i32 { 1224 self.0 1225 } 1226 } 1227 impl RasterizationOrderAMD { 1228 pub const STRICT: Self = Self(0); 1229 pub const RELAXED: Self = Self(1); 1230 } 1231 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1232 #[repr(transparent)] 1233 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationCheckEXT.html>"] 1234 pub struct ValidationCheckEXT(pub(crate) i32); 1235 impl ValidationCheckEXT { from_raw(x: i32) -> Self1236 pub const fn from_raw(x: i32) -> Self { 1237 ValidationCheckEXT(x) 1238 } as_raw(self) -> i321239 pub const fn as_raw(self) -> i32 { 1240 self.0 1241 } 1242 } 1243 impl ValidationCheckEXT { 1244 pub const ALL: Self = Self(0); 1245 pub const SHADERS: Self = Self(1); 1246 } 1247 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1248 #[repr(transparent)] 1249 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationFeatureEnableEXT.html>"] 1250 pub struct ValidationFeatureEnableEXT(pub(crate) i32); 1251 impl ValidationFeatureEnableEXT { from_raw(x: i32) -> Self1252 pub const fn from_raw(x: i32) -> Self { 1253 ValidationFeatureEnableEXT(x) 1254 } as_raw(self) -> i321255 pub const fn as_raw(self) -> i32 { 1256 self.0 1257 } 1258 } 1259 impl ValidationFeatureEnableEXT { 1260 pub const GPU_ASSISTED: Self = Self(0); 1261 pub const GPU_ASSISTED_RESERVE_BINDING_SLOT: Self = Self(1); 1262 pub const BEST_PRACTICES: Self = Self(2); 1263 pub const DEBUG_PRINTF: Self = Self(3); 1264 pub const SYNCHRONIZATION_VALIDATION: Self = Self(4); 1265 } 1266 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1267 #[repr(transparent)] 1268 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationFeatureDisableEXT.html>"] 1269 pub struct ValidationFeatureDisableEXT(pub(crate) i32); 1270 impl ValidationFeatureDisableEXT { from_raw(x: i32) -> Self1271 pub const fn from_raw(x: i32) -> Self { 1272 ValidationFeatureDisableEXT(x) 1273 } as_raw(self) -> i321274 pub const fn as_raw(self) -> i32 { 1275 self.0 1276 } 1277 } 1278 impl ValidationFeatureDisableEXT { 1279 pub const ALL: Self = Self(0); 1280 pub const SHADERS: Self = Self(1); 1281 pub const THREAD_SAFETY: Self = Self(2); 1282 pub const API_PARAMETERS: Self = Self(3); 1283 pub const OBJECT_LIFETIMES: Self = Self(4); 1284 pub const CORE_CHECKS: Self = Self(5); 1285 pub const UNIQUE_HANDLES: Self = Self(6); 1286 } 1287 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1288 #[repr(transparent)] 1289 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkIndirectCommandsTokenTypeNV.html>"] 1290 pub struct IndirectCommandsTokenTypeNV(pub(crate) i32); 1291 impl IndirectCommandsTokenTypeNV { from_raw(x: i32) -> Self1292 pub const fn from_raw(x: i32) -> Self { 1293 IndirectCommandsTokenTypeNV(x) 1294 } as_raw(self) -> i321295 pub const fn as_raw(self) -> i32 { 1296 self.0 1297 } 1298 } 1299 impl IndirectCommandsTokenTypeNV { 1300 pub const SHADER_GROUP: Self = Self(0); 1301 pub const STATE_FLAGS: Self = Self(1); 1302 pub const INDEX_BUFFER: Self = Self(2); 1303 pub const VERTEX_BUFFER: Self = Self(3); 1304 pub const PUSH_CONSTANT: Self = Self(4); 1305 pub const DRAW_INDEXED: Self = Self(5); 1306 pub const DRAW: Self = Self(6); 1307 pub const DRAW_TASKS: Self = Self(7); 1308 } 1309 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1310 #[repr(transparent)] 1311 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDisplayPowerStateEXT.html>"] 1312 pub struct DisplayPowerStateEXT(pub(crate) i32); 1313 impl DisplayPowerStateEXT { from_raw(x: i32) -> Self1314 pub const fn from_raw(x: i32) -> Self { 1315 DisplayPowerStateEXT(x) 1316 } as_raw(self) -> i321317 pub const fn as_raw(self) -> i32 { 1318 self.0 1319 } 1320 } 1321 impl DisplayPowerStateEXT { 1322 pub const OFF: Self = Self(0); 1323 pub const SUSPEND: Self = Self(1); 1324 pub const ON: Self = Self(2); 1325 } 1326 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1327 #[repr(transparent)] 1328 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDeviceEventTypeEXT.html>"] 1329 pub struct DeviceEventTypeEXT(pub(crate) i32); 1330 impl DeviceEventTypeEXT { from_raw(x: i32) -> Self1331 pub const fn from_raw(x: i32) -> Self { 1332 DeviceEventTypeEXT(x) 1333 } as_raw(self) -> i321334 pub const fn as_raw(self) -> i32 { 1335 self.0 1336 } 1337 } 1338 impl DeviceEventTypeEXT { 1339 pub const DISPLAY_HOTPLUG: Self = Self(0); 1340 } 1341 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1342 #[repr(transparent)] 1343 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDisplayEventTypeEXT.html>"] 1344 pub struct DisplayEventTypeEXT(pub(crate) i32); 1345 impl DisplayEventTypeEXT { from_raw(x: i32) -> Self1346 pub const fn from_raw(x: i32) -> Self { 1347 DisplayEventTypeEXT(x) 1348 } as_raw(self) -> i321349 pub const fn as_raw(self) -> i32 { 1350 self.0 1351 } 1352 } 1353 impl DisplayEventTypeEXT { 1354 pub const FIRST_PIXEL_OUT: Self = Self(0); 1355 } 1356 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1357 #[repr(transparent)] 1358 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkViewportCoordinateSwizzleNV.html>"] 1359 pub struct ViewportCoordinateSwizzleNV(pub(crate) i32); 1360 impl ViewportCoordinateSwizzleNV { from_raw(x: i32) -> Self1361 pub const fn from_raw(x: i32) -> Self { 1362 ViewportCoordinateSwizzleNV(x) 1363 } as_raw(self) -> i321364 pub const fn as_raw(self) -> i32 { 1365 self.0 1366 } 1367 } 1368 impl ViewportCoordinateSwizzleNV { 1369 pub const POSITIVE_X: Self = Self(0); 1370 pub const NEGATIVE_X: Self = Self(1); 1371 pub const POSITIVE_Y: Self = Self(2); 1372 pub const NEGATIVE_Y: Self = Self(3); 1373 pub const POSITIVE_Z: Self = Self(4); 1374 pub const NEGATIVE_Z: Self = Self(5); 1375 pub const POSITIVE_W: Self = Self(6); 1376 pub const NEGATIVE_W: Self = Self(7); 1377 } 1378 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1379 #[repr(transparent)] 1380 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDiscardRectangleModeEXT.html>"] 1381 pub struct DiscardRectangleModeEXT(pub(crate) i32); 1382 impl DiscardRectangleModeEXT { from_raw(x: i32) -> Self1383 pub const fn from_raw(x: i32) -> Self { 1384 DiscardRectangleModeEXT(x) 1385 } as_raw(self) -> i321386 pub const fn as_raw(self) -> i32 { 1387 self.0 1388 } 1389 } 1390 impl DiscardRectangleModeEXT { 1391 pub const INCLUSIVE: Self = Self(0); 1392 pub const EXCLUSIVE: Self = Self(1); 1393 } 1394 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1395 #[repr(transparent)] 1396 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPointClippingBehavior.html>"] 1397 pub struct PointClippingBehavior(pub(crate) i32); 1398 impl PointClippingBehavior { from_raw(x: i32) -> Self1399 pub const fn from_raw(x: i32) -> Self { 1400 PointClippingBehavior(x) 1401 } as_raw(self) -> i321402 pub const fn as_raw(self) -> i32 { 1403 self.0 1404 } 1405 } 1406 impl PointClippingBehavior { 1407 pub const ALL_CLIP_PLANES: Self = Self(0); 1408 pub const USER_CLIP_PLANES_ONLY: Self = Self(1); 1409 } 1410 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1411 #[repr(transparent)] 1412 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerReductionMode.html>"] 1413 pub struct SamplerReductionMode(pub(crate) i32); 1414 impl SamplerReductionMode { from_raw(x: i32) -> Self1415 pub const fn from_raw(x: i32) -> Self { 1416 SamplerReductionMode(x) 1417 } as_raw(self) -> i321418 pub const fn as_raw(self) -> i32 { 1419 self.0 1420 } 1421 } 1422 impl SamplerReductionMode { 1423 pub const WEIGHTED_AVERAGE: Self = Self(0); 1424 pub const MIN: Self = Self(1); 1425 pub const MAX: Self = Self(2); 1426 } 1427 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1428 #[repr(transparent)] 1429 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkTessellationDomainOrigin.html>"] 1430 pub struct TessellationDomainOrigin(pub(crate) i32); 1431 impl TessellationDomainOrigin { from_raw(x: i32) -> Self1432 pub const fn from_raw(x: i32) -> Self { 1433 TessellationDomainOrigin(x) 1434 } as_raw(self) -> i321435 pub const fn as_raw(self) -> i32 { 1436 self.0 1437 } 1438 } 1439 impl TessellationDomainOrigin { 1440 pub const UPPER_LEFT: Self = Self(0); 1441 pub const LOWER_LEFT: Self = Self(1); 1442 } 1443 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1444 #[repr(transparent)] 1445 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerYcbcrModelConversion.html>"] 1446 pub struct SamplerYcbcrModelConversion(pub(crate) i32); 1447 impl SamplerYcbcrModelConversion { from_raw(x: i32) -> Self1448 pub const fn from_raw(x: i32) -> Self { 1449 SamplerYcbcrModelConversion(x) 1450 } as_raw(self) -> i321451 pub const fn as_raw(self) -> i32 { 1452 self.0 1453 } 1454 } 1455 impl SamplerYcbcrModelConversion { 1456 pub const RGB_IDENTITY: Self = Self(0); 1457 #[doc = "just range expansion"] 1458 pub const YCBCR_IDENTITY: Self = Self(1); 1459 #[doc = "aka HD YUV"] 1460 pub const YCBCR_709: Self = Self(2); 1461 #[doc = "aka SD YUV"] 1462 pub const YCBCR_601: Self = Self(3); 1463 #[doc = "aka UHD YUV"] 1464 pub const YCBCR_2020: Self = Self(4); 1465 } 1466 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1467 #[repr(transparent)] 1468 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkSamplerYcbcrRange.html>"] 1469 pub struct SamplerYcbcrRange(pub(crate) i32); 1470 impl SamplerYcbcrRange { from_raw(x: i32) -> Self1471 pub const fn from_raw(x: i32) -> Self { 1472 SamplerYcbcrRange(x) 1473 } as_raw(self) -> i321474 pub const fn as_raw(self) -> i32 { 1475 self.0 1476 } 1477 } 1478 impl SamplerYcbcrRange { 1479 #[doc = "Luma 0..1 maps to 0..255, chroma -0.5..0.5 to 1..255 (clamped)"] 1480 pub const ITU_FULL: Self = Self(0); 1481 #[doc = "Luma 0..1 maps to 16..235, chroma -0.5..0.5 to 16..240"] 1482 pub const ITU_NARROW: Self = Self(1); 1483 } 1484 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1485 #[repr(transparent)] 1486 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkChromaLocation.html>"] 1487 pub struct ChromaLocation(pub(crate) i32); 1488 impl ChromaLocation { from_raw(x: i32) -> Self1489 pub const fn from_raw(x: i32) -> Self { 1490 ChromaLocation(x) 1491 } as_raw(self) -> i321492 pub const fn as_raw(self) -> i32 { 1493 self.0 1494 } 1495 } 1496 impl ChromaLocation { 1497 pub const COSITED_EVEN: Self = Self(0); 1498 pub const MIDPOINT: Self = Self(1); 1499 } 1500 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1501 #[repr(transparent)] 1502 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBlendOverlapEXT.html>"] 1503 pub struct BlendOverlapEXT(pub(crate) i32); 1504 impl BlendOverlapEXT { from_raw(x: i32) -> Self1505 pub const fn from_raw(x: i32) -> Self { 1506 BlendOverlapEXT(x) 1507 } as_raw(self) -> i321508 pub const fn as_raw(self) -> i32 { 1509 self.0 1510 } 1511 } 1512 impl BlendOverlapEXT { 1513 pub const UNCORRELATED: Self = Self(0); 1514 pub const DISJOINT: Self = Self(1); 1515 pub const CONJOINT: Self = Self(2); 1516 } 1517 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1518 #[repr(transparent)] 1519 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCoverageModulationModeNV.html>"] 1520 pub struct CoverageModulationModeNV(pub(crate) i32); 1521 impl CoverageModulationModeNV { from_raw(x: i32) -> Self1522 pub const fn from_raw(x: i32) -> Self { 1523 CoverageModulationModeNV(x) 1524 } as_raw(self) -> i321525 pub const fn as_raw(self) -> i32 { 1526 self.0 1527 } 1528 } 1529 impl CoverageModulationModeNV { 1530 pub const NONE: Self = Self(0); 1531 pub const RGB: Self = Self(1); 1532 pub const ALPHA: Self = Self(2); 1533 pub const RGBA: Self = Self(3); 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/VkCoverageReductionModeNV.html>"] 1538 pub struct CoverageReductionModeNV(pub(crate) i32); 1539 impl CoverageReductionModeNV { from_raw(x: i32) -> Self1540 pub const fn from_raw(x: i32) -> Self { 1541 CoverageReductionModeNV(x) 1542 } as_raw(self) -> i321543 pub const fn as_raw(self) -> i32 { 1544 self.0 1545 } 1546 } 1547 impl CoverageReductionModeNV { 1548 pub const MERGE: Self = Self(0); 1549 pub const TRUNCATE: Self = Self(1); 1550 } 1551 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1552 #[repr(transparent)] 1553 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkValidationCacheHeaderVersionEXT.html>"] 1554 pub struct ValidationCacheHeaderVersionEXT(pub(crate) i32); 1555 impl ValidationCacheHeaderVersionEXT { from_raw(x: i32) -> Self1556 pub const fn from_raw(x: i32) -> Self { 1557 ValidationCacheHeaderVersionEXT(x) 1558 } as_raw(self) -> i321559 pub const fn as_raw(self) -> i32 { 1560 self.0 1561 } 1562 } 1563 impl ValidationCacheHeaderVersionEXT { 1564 pub const ONE: Self = Self(1); 1565 } 1566 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1567 #[repr(transparent)] 1568 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderInfoTypeAMD.html>"] 1569 pub struct ShaderInfoTypeAMD(pub(crate) i32); 1570 impl ShaderInfoTypeAMD { from_raw(x: i32) -> Self1571 pub const fn from_raw(x: i32) -> Self { 1572 ShaderInfoTypeAMD(x) 1573 } as_raw(self) -> i321574 pub const fn as_raw(self) -> i32 { 1575 self.0 1576 } 1577 } 1578 impl ShaderInfoTypeAMD { 1579 pub const STATISTICS: Self = Self(0); 1580 pub const BINARY: Self = Self(1); 1581 pub const DISASSEMBLY: Self = Self(2); 1582 } 1583 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1584 #[repr(transparent)] 1585 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueueGlobalPriorityEXT.html>"] 1586 pub struct QueueGlobalPriorityEXT(pub(crate) i32); 1587 impl QueueGlobalPriorityEXT { from_raw(x: i32) -> Self1588 pub const fn from_raw(x: i32) -> Self { 1589 QueueGlobalPriorityEXT(x) 1590 } as_raw(self) -> i321591 pub const fn as_raw(self) -> i32 { 1592 self.0 1593 } 1594 } 1595 impl QueueGlobalPriorityEXT { 1596 pub const LOW: Self = Self(128); 1597 pub const MEDIUM: Self = Self(256); 1598 pub const HIGH: Self = Self(512); 1599 pub const REALTIME: Self = Self(1_024); 1600 } 1601 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1602 #[repr(transparent)] 1603 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkConservativeRasterizationModeEXT.html>"] 1604 pub struct ConservativeRasterizationModeEXT(pub(crate) i32); 1605 impl ConservativeRasterizationModeEXT { from_raw(x: i32) -> Self1606 pub const fn from_raw(x: i32) -> Self { 1607 ConservativeRasterizationModeEXT(x) 1608 } as_raw(self) -> i321609 pub const fn as_raw(self) -> i32 { 1610 self.0 1611 } 1612 } 1613 impl ConservativeRasterizationModeEXT { 1614 pub const DISABLED: Self = Self(0); 1615 pub const OVERESTIMATE: Self = Self(1); 1616 pub const UNDERESTIMATE: Self = Self(2); 1617 } 1618 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1619 #[repr(transparent)] 1620 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkVendorId.html>"] 1621 pub struct VendorId(pub(crate) i32); 1622 impl VendorId { from_raw(x: i32) -> Self1623 pub const fn from_raw(x: i32) -> Self { 1624 VendorId(x) 1625 } as_raw(self) -> i321626 pub const fn as_raw(self) -> i32 { 1627 self.0 1628 } 1629 } 1630 impl VendorId { 1631 #[doc = "Vivante vendor ID"] 1632 pub const VIV: Self = Self(0x1_0001); 1633 #[doc = "VeriSilicon vendor ID"] 1634 pub const VSI: Self = Self(0x1_0002); 1635 #[doc = "Kazan Software Renderer"] 1636 pub const KAZAN: Self = Self(0x1_0003); 1637 #[doc = "Codeplay Software Ltd. vendor ID"] 1638 pub const CODEPLAY: Self = Self(0x1_0004); 1639 #[doc = "Mesa vendor ID"] 1640 pub const MESA: Self = Self(0x1_0005); 1641 #[doc = "PoCL vendor ID"] 1642 pub const POCL: Self = Self(0x1_0006); 1643 } 1644 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1645 #[repr(transparent)] 1646 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkDriverId.html>"] 1647 pub struct DriverId(pub(crate) i32); 1648 impl DriverId { from_raw(x: i32) -> Self1649 pub const fn from_raw(x: i32) -> Self { 1650 DriverId(x) 1651 } as_raw(self) -> i321652 pub const fn as_raw(self) -> i32 { 1653 self.0 1654 } 1655 } 1656 impl DriverId { 1657 #[doc = "Advanced Micro Devices, Inc."] 1658 pub const AMD_PROPRIETARY: Self = Self(1); 1659 #[doc = "Advanced Micro Devices, Inc."] 1660 pub const AMD_OPEN_SOURCE: Self = Self(2); 1661 #[doc = "Mesa open source project"] 1662 pub const MESA_RADV: Self = Self(3); 1663 #[doc = "NVIDIA Corporation"] 1664 pub const NVIDIA_PROPRIETARY: Self = Self(4); 1665 #[doc = "Intel Corporation"] 1666 pub const INTEL_PROPRIETARY_WINDOWS: Self = Self(5); 1667 #[doc = "Intel Corporation"] 1668 pub const INTEL_OPEN_SOURCE_MESA: Self = Self(6); 1669 #[doc = "Imagination Technologies"] 1670 pub const IMAGINATION_PROPRIETARY: Self = Self(7); 1671 #[doc = "Qualcomm Technologies, Inc."] 1672 pub const QUALCOMM_PROPRIETARY: Self = Self(8); 1673 #[doc = "Arm Limited"] 1674 pub const ARM_PROPRIETARY: Self = Self(9); 1675 #[doc = "Google LLC"] 1676 pub const GOOGLE_SWIFTSHADER: Self = Self(10); 1677 #[doc = "Google LLC"] 1678 pub const GGP_PROPRIETARY: Self = Self(11); 1679 #[doc = "Broadcom Inc."] 1680 pub const BROADCOM_PROPRIETARY: Self = Self(12); 1681 #[doc = "Mesa"] 1682 pub const MESA_LLVMPIPE: Self = Self(13); 1683 #[doc = "MoltenVK"] 1684 pub const MOLTENVK: Self = Self(14); 1685 } 1686 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1687 #[repr(transparent)] 1688 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShadingRatePaletteEntryNV.html>"] 1689 pub struct ShadingRatePaletteEntryNV(pub(crate) i32); 1690 impl ShadingRatePaletteEntryNV { from_raw(x: i32) -> Self1691 pub const fn from_raw(x: i32) -> Self { 1692 ShadingRatePaletteEntryNV(x) 1693 } as_raw(self) -> i321694 pub const fn as_raw(self) -> i32 { 1695 self.0 1696 } 1697 } 1698 impl ShadingRatePaletteEntryNV { 1699 pub const NO_INVOCATIONS: Self = Self(0); 1700 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(1); 1701 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(2); 1702 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(3); 1703 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(4); 1704 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(5); 1705 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(6); 1706 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(7); 1707 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(8); 1708 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 1709 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(10); 1710 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(11); 1711 } 1712 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1713 #[repr(transparent)] 1714 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCoarseSampleOrderTypeNV.html>"] 1715 pub struct CoarseSampleOrderTypeNV(pub(crate) i32); 1716 impl CoarseSampleOrderTypeNV { from_raw(x: i32) -> Self1717 pub const fn from_raw(x: i32) -> Self { 1718 CoarseSampleOrderTypeNV(x) 1719 } as_raw(self) -> i321720 pub const fn as_raw(self) -> i32 { 1721 self.0 1722 } 1723 } 1724 impl CoarseSampleOrderTypeNV { 1725 pub const DEFAULT: Self = Self(0); 1726 pub const CUSTOM: Self = Self(1); 1727 pub const PIXEL_MAJOR: Self = Self(2); 1728 pub const SAMPLE_MAJOR: Self = Self(3); 1729 } 1730 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1731 #[repr(transparent)] 1732 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkCopyAccelerationStructureModeKHR.html>"] 1733 pub struct CopyAccelerationStructureModeKHR(pub(crate) i32); 1734 impl CopyAccelerationStructureModeKHR { from_raw(x: i32) -> Self1735 pub const fn from_raw(x: i32) -> Self { 1736 CopyAccelerationStructureModeKHR(x) 1737 } as_raw(self) -> i321738 pub const fn as_raw(self) -> i32 { 1739 self.0 1740 } 1741 } 1742 impl CopyAccelerationStructureModeKHR { 1743 pub const CLONE: Self = Self(0); 1744 pub const COMPACT: Self = Self(1); 1745 pub const SERIALIZE: Self = Self(2); 1746 pub const DESERIALIZE: Self = Self(3); 1747 } 1748 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1749 #[repr(transparent)] 1750 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkBuildAccelerationStructureModeKHR.html>"] 1751 pub struct BuildAccelerationStructureModeKHR(pub(crate) i32); 1752 impl BuildAccelerationStructureModeKHR { from_raw(x: i32) -> Self1753 pub const fn from_raw(x: i32) -> Self { 1754 BuildAccelerationStructureModeKHR(x) 1755 } as_raw(self) -> i321756 pub const fn as_raw(self) -> i32 { 1757 self.0 1758 } 1759 } 1760 impl BuildAccelerationStructureModeKHR { 1761 pub const BUILD: Self = Self(0); 1762 pub const UPDATE: Self = Self(1); 1763 } 1764 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1765 #[repr(transparent)] 1766 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureTypeKHR.html>"] 1767 pub struct AccelerationStructureTypeKHR(pub(crate) i32); 1768 impl AccelerationStructureTypeKHR { from_raw(x: i32) -> Self1769 pub const fn from_raw(x: i32) -> Self { 1770 AccelerationStructureTypeKHR(x) 1771 } as_raw(self) -> i321772 pub const fn as_raw(self) -> i32 { 1773 self.0 1774 } 1775 } 1776 impl AccelerationStructureTypeKHR { 1777 pub const TOP_LEVEL: Self = Self(0); 1778 pub const BOTTOM_LEVEL: Self = Self(1); 1779 pub const GENERIC: Self = Self(2); 1780 } 1781 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1782 #[repr(transparent)] 1783 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkGeometryTypeKHR.html>"] 1784 pub struct GeometryTypeKHR(pub(crate) i32); 1785 impl GeometryTypeKHR { from_raw(x: i32) -> Self1786 pub const fn from_raw(x: i32) -> Self { 1787 GeometryTypeKHR(x) 1788 } as_raw(self) -> i321789 pub const fn as_raw(self) -> i32 { 1790 self.0 1791 } 1792 } 1793 impl GeometryTypeKHR { 1794 pub const TRIANGLES: Self = Self(0); 1795 pub const AABBS: Self = Self(1); 1796 pub const INSTANCES: Self = Self(2); 1797 } 1798 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1799 #[repr(transparent)] 1800 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureMemoryRequirementsTypeNV.html>"] 1801 pub struct AccelerationStructureMemoryRequirementsTypeNV(pub(crate) i32); 1802 impl AccelerationStructureMemoryRequirementsTypeNV { from_raw(x: i32) -> Self1803 pub const fn from_raw(x: i32) -> Self { 1804 AccelerationStructureMemoryRequirementsTypeNV(x) 1805 } as_raw(self) -> i321806 pub const fn as_raw(self) -> i32 { 1807 self.0 1808 } 1809 } 1810 impl AccelerationStructureMemoryRequirementsTypeNV { 1811 pub const OBJECT: Self = Self(0); 1812 pub const BUILD_SCRATCH: Self = Self(1); 1813 pub const UPDATE_SCRATCH: Self = Self(2); 1814 } 1815 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1816 #[repr(transparent)] 1817 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureBuildTypeKHR.html>"] 1818 pub struct AccelerationStructureBuildTypeKHR(pub(crate) i32); 1819 impl AccelerationStructureBuildTypeKHR { from_raw(x: i32) -> Self1820 pub const fn from_raw(x: i32) -> Self { 1821 AccelerationStructureBuildTypeKHR(x) 1822 } as_raw(self) -> i321823 pub const fn as_raw(self) -> i32 { 1824 self.0 1825 } 1826 } 1827 impl AccelerationStructureBuildTypeKHR { 1828 pub const HOST: Self = Self(0); 1829 pub const DEVICE: Self = Self(1); 1830 pub const HOST_OR_DEVICE: Self = Self(2); 1831 } 1832 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1833 #[repr(transparent)] 1834 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkRayTracingShaderGroupTypeKHR.html>"] 1835 pub struct RayTracingShaderGroupTypeKHR(pub(crate) i32); 1836 impl RayTracingShaderGroupTypeKHR { from_raw(x: i32) -> Self1837 pub const fn from_raw(x: i32) -> Self { 1838 RayTracingShaderGroupTypeKHR(x) 1839 } as_raw(self) -> i321840 pub const fn as_raw(self) -> i32 { 1841 self.0 1842 } 1843 } 1844 impl RayTracingShaderGroupTypeKHR { 1845 pub const GENERAL: Self = Self(0); 1846 pub const TRIANGLES_HIT_GROUP: Self = Self(1); 1847 pub const PROCEDURAL_HIT_GROUP: Self = Self(2); 1848 } 1849 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1850 #[repr(transparent)] 1851 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkAccelerationStructureCompatibilityKHR.html>"] 1852 pub struct AccelerationStructureCompatibilityKHR(pub(crate) i32); 1853 impl AccelerationStructureCompatibilityKHR { from_raw(x: i32) -> Self1854 pub const fn from_raw(x: i32) -> Self { 1855 AccelerationStructureCompatibilityKHR(x) 1856 } as_raw(self) -> i321857 pub const fn as_raw(self) -> i32 { 1858 self.0 1859 } 1860 } 1861 impl AccelerationStructureCompatibilityKHR { 1862 pub const COMPATIBLE: Self = Self(0); 1863 pub const INCOMPATIBLE: Self = Self(1); 1864 } 1865 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1866 #[repr(transparent)] 1867 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderGroupShaderKHR.html>"] 1868 pub struct ShaderGroupShaderKHR(pub(crate) i32); 1869 impl ShaderGroupShaderKHR { from_raw(x: i32) -> Self1870 pub const fn from_raw(x: i32) -> Self { 1871 ShaderGroupShaderKHR(x) 1872 } as_raw(self) -> i321873 pub const fn as_raw(self) -> i32 { 1874 self.0 1875 } 1876 } 1877 impl ShaderGroupShaderKHR { 1878 pub const GENERAL: Self = Self(0); 1879 pub const CLOSEST_HIT: Self = Self(1); 1880 pub const ANY_HIT: Self = Self(2); 1881 pub const INTERSECTION: Self = Self(3); 1882 } 1883 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1884 #[repr(transparent)] 1885 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkMemoryOverallocationBehaviorAMD.html>"] 1886 pub struct MemoryOverallocationBehaviorAMD(pub(crate) i32); 1887 impl MemoryOverallocationBehaviorAMD { from_raw(x: i32) -> Self1888 pub const fn from_raw(x: i32) -> Self { 1889 MemoryOverallocationBehaviorAMD(x) 1890 } as_raw(self) -> i321891 pub const fn as_raw(self) -> i32 { 1892 self.0 1893 } 1894 } 1895 impl MemoryOverallocationBehaviorAMD { 1896 pub const DEFAULT: Self = Self(0); 1897 pub const ALLOWED: Self = Self(1); 1898 pub const DISALLOWED: Self = Self(2); 1899 } 1900 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1901 #[repr(transparent)] 1902 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkScopeNV.html>"] 1903 pub struct ScopeNV(pub(crate) i32); 1904 impl ScopeNV { from_raw(x: i32) -> Self1905 pub const fn from_raw(x: i32) -> Self { 1906 ScopeNV(x) 1907 } as_raw(self) -> i321908 pub const fn as_raw(self) -> i32 { 1909 self.0 1910 } 1911 } 1912 impl ScopeNV { 1913 pub const DEVICE: Self = Self(1); 1914 pub const WORKGROUP: Self = Self(2); 1915 pub const SUBGROUP: Self = Self(3); 1916 pub const QUEUE_FAMILY: Self = Self(5); 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/VkComponentTypeNV.html>"] 1921 pub struct ComponentTypeNV(pub(crate) i32); 1922 impl ComponentTypeNV { from_raw(x: i32) -> Self1923 pub const fn from_raw(x: i32) -> Self { 1924 ComponentTypeNV(x) 1925 } as_raw(self) -> i321926 pub const fn as_raw(self) -> i32 { 1927 self.0 1928 } 1929 } 1930 impl ComponentTypeNV { 1931 pub const FLOAT16: Self = Self(0); 1932 pub const FLOAT32: Self = Self(1); 1933 pub const FLOAT64: Self = Self(2); 1934 pub const SINT8: Self = Self(3); 1935 pub const SINT16: Self = Self(4); 1936 pub const SINT32: Self = Self(5); 1937 pub const SINT64: Self = Self(6); 1938 pub const UINT8: Self = Self(7); 1939 pub const UINT16: Self = Self(8); 1940 pub const UINT32: Self = Self(9); 1941 pub const UINT64: Self = Self(10); 1942 } 1943 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1944 #[repr(transparent)] 1945 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFullScreenExclusiveEXT.html>"] 1946 pub struct FullScreenExclusiveEXT(pub(crate) i32); 1947 impl FullScreenExclusiveEXT { from_raw(x: i32) -> Self1948 pub const fn from_raw(x: i32) -> Self { 1949 FullScreenExclusiveEXT(x) 1950 } as_raw(self) -> i321951 pub const fn as_raw(self) -> i32 { 1952 self.0 1953 } 1954 } 1955 impl FullScreenExclusiveEXT { 1956 pub const DEFAULT: Self = Self(0); 1957 pub const ALLOWED: Self = Self(1); 1958 pub const DISALLOWED: Self = Self(2); 1959 pub const APPLICATION_CONTROLLED: Self = Self(3); 1960 } 1961 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1962 #[repr(transparent)] 1963 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterScopeKHR.html>"] 1964 pub struct PerformanceCounterScopeKHR(pub(crate) i32); 1965 impl PerformanceCounterScopeKHR { from_raw(x: i32) -> Self1966 pub const fn from_raw(x: i32) -> Self { 1967 PerformanceCounterScopeKHR(x) 1968 } as_raw(self) -> i321969 pub const fn as_raw(self) -> i32 { 1970 self.0 1971 } 1972 } 1973 impl PerformanceCounterScopeKHR { 1974 pub const COMMAND_BUFFER: Self = Self(0); 1975 pub const RENDER_PASS: Self = Self(1); 1976 pub const COMMAND: Self = Self(2); 1977 } 1978 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 1979 #[repr(transparent)] 1980 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterUnitKHR.html>"] 1981 pub struct PerformanceCounterUnitKHR(pub(crate) i32); 1982 impl PerformanceCounterUnitKHR { from_raw(x: i32) -> Self1983 pub const fn from_raw(x: i32) -> Self { 1984 PerformanceCounterUnitKHR(x) 1985 } as_raw(self) -> i321986 pub const fn as_raw(self) -> i32 { 1987 self.0 1988 } 1989 } 1990 impl PerformanceCounterUnitKHR { 1991 pub const GENERIC: Self = Self(0); 1992 pub const PERCENTAGE: Self = Self(1); 1993 pub const NANOSECONDS: Self = Self(2); 1994 pub const BYTES: Self = Self(3); 1995 pub const BYTES_PER_SECOND: Self = Self(4); 1996 pub const KELVIN: Self = Self(5); 1997 pub const WATTS: Self = Self(6); 1998 pub const VOLTS: Self = Self(7); 1999 pub const AMPS: Self = Self(8); 2000 pub const HERTZ: Self = Self(9); 2001 pub const CYCLES: Self = Self(10); 2002 } 2003 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2004 #[repr(transparent)] 2005 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceCounterStorageKHR.html>"] 2006 pub struct PerformanceCounterStorageKHR(pub(crate) i32); 2007 impl PerformanceCounterStorageKHR { from_raw(x: i32) -> Self2008 pub const fn from_raw(x: i32) -> Self { 2009 PerformanceCounterStorageKHR(x) 2010 } as_raw(self) -> i322011 pub const fn as_raw(self) -> i32 { 2012 self.0 2013 } 2014 } 2015 impl PerformanceCounterStorageKHR { 2016 pub const INT32: Self = Self(0); 2017 pub const INT64: Self = Self(1); 2018 pub const UINT32: Self = Self(2); 2019 pub const UINT64: Self = Self(3); 2020 pub const FLOAT32: Self = Self(4); 2021 pub const FLOAT64: Self = Self(5); 2022 } 2023 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2024 #[repr(transparent)] 2025 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceConfigurationTypeINTEL.html>"] 2026 pub struct PerformanceConfigurationTypeINTEL(pub(crate) i32); 2027 impl PerformanceConfigurationTypeINTEL { from_raw(x: i32) -> Self2028 pub const fn from_raw(x: i32) -> Self { 2029 PerformanceConfigurationTypeINTEL(x) 2030 } as_raw(self) -> i322031 pub const fn as_raw(self) -> i32 { 2032 self.0 2033 } 2034 } 2035 impl PerformanceConfigurationTypeINTEL { 2036 pub const PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL: Self = 2037 Self(0); 2038 } 2039 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2040 #[repr(transparent)] 2041 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkQueryPoolSamplingModeINTEL.html>"] 2042 pub struct QueryPoolSamplingModeINTEL(pub(crate) i32); 2043 impl QueryPoolSamplingModeINTEL { from_raw(x: i32) -> Self2044 pub const fn from_raw(x: i32) -> Self { 2045 QueryPoolSamplingModeINTEL(x) 2046 } as_raw(self) -> i322047 pub const fn as_raw(self) -> i32 { 2048 self.0 2049 } 2050 } 2051 impl QueryPoolSamplingModeINTEL { 2052 pub const QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL: Self = Self(0); 2053 } 2054 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2055 #[repr(transparent)] 2056 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceOverrideTypeINTEL.html>"] 2057 pub struct PerformanceOverrideTypeINTEL(pub(crate) i32); 2058 impl PerformanceOverrideTypeINTEL { from_raw(x: i32) -> Self2059 pub const fn from_raw(x: i32) -> Self { 2060 PerformanceOverrideTypeINTEL(x) 2061 } as_raw(self) -> i322062 pub const fn as_raw(self) -> i32 { 2063 self.0 2064 } 2065 } 2066 impl PerformanceOverrideTypeINTEL { 2067 pub const PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL: Self = Self(0); 2068 pub const PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL: Self = Self(1); 2069 } 2070 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2071 #[repr(transparent)] 2072 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceParameterTypeINTEL.html>"] 2073 pub struct PerformanceParameterTypeINTEL(pub(crate) i32); 2074 impl PerformanceParameterTypeINTEL { from_raw(x: i32) -> Self2075 pub const fn from_raw(x: i32) -> Self { 2076 PerformanceParameterTypeINTEL(x) 2077 } as_raw(self) -> i322078 pub const fn as_raw(self) -> i32 { 2079 self.0 2080 } 2081 } 2082 impl PerformanceParameterTypeINTEL { 2083 pub const PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL: Self = Self(0); 2084 pub const PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALIDS_INTEL: Self = Self(1); 2085 } 2086 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2087 #[repr(transparent)] 2088 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPerformanceValueTypeINTEL.html>"] 2089 pub struct PerformanceValueTypeINTEL(pub(crate) i32); 2090 impl PerformanceValueTypeINTEL { from_raw(x: i32) -> Self2091 pub const fn from_raw(x: i32) -> Self { 2092 PerformanceValueTypeINTEL(x) 2093 } as_raw(self) -> i322094 pub const fn as_raw(self) -> i32 { 2095 self.0 2096 } 2097 } 2098 impl PerformanceValueTypeINTEL { 2099 pub const PERFORMANCE_VALUE_TYPE_UINT32_INTEL: Self = Self(0); 2100 pub const PERFORMANCE_VALUE_TYPE_UINT64_INTEL: Self = Self(1); 2101 pub const PERFORMANCE_VALUE_TYPE_FLOAT_INTEL: Self = Self(2); 2102 pub const PERFORMANCE_VALUE_TYPE_BOOL_INTEL: Self = Self(3); 2103 pub const PERFORMANCE_VALUE_TYPE_STRING_INTEL: Self = Self(4); 2104 } 2105 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2106 #[repr(transparent)] 2107 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkShaderFloatControlsIndependence.html>"] 2108 pub struct ShaderFloatControlsIndependence(pub(crate) i32); 2109 impl ShaderFloatControlsIndependence { from_raw(x: i32) -> Self2110 pub const fn from_raw(x: i32) -> Self { 2111 ShaderFloatControlsIndependence(x) 2112 } as_raw(self) -> i322113 pub const fn as_raw(self) -> i32 { 2114 self.0 2115 } 2116 } 2117 impl ShaderFloatControlsIndependence { 2118 pub const TYPE_32_ONLY: Self = Self(0); 2119 pub const ALL: Self = Self(1); 2120 pub const NONE: Self = Self(2); 2121 } 2122 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2123 #[repr(transparent)] 2124 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkPipelineExecutableStatisticFormatKHR.html>"] 2125 pub struct PipelineExecutableStatisticFormatKHR(pub(crate) i32); 2126 impl PipelineExecutableStatisticFormatKHR { from_raw(x: i32) -> Self2127 pub const fn from_raw(x: i32) -> Self { 2128 PipelineExecutableStatisticFormatKHR(x) 2129 } as_raw(self) -> i322130 pub const fn as_raw(self) -> i32 { 2131 self.0 2132 } 2133 } 2134 impl PipelineExecutableStatisticFormatKHR { 2135 pub const BOOL32: Self = Self(0); 2136 pub const INT64: Self = Self(1); 2137 pub const UINT64: Self = Self(2); 2138 pub const FLOAT64: Self = Self(3); 2139 } 2140 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2141 #[repr(transparent)] 2142 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkLineRasterizationModeEXT.html>"] 2143 pub struct LineRasterizationModeEXT(pub(crate) i32); 2144 impl LineRasterizationModeEXT { from_raw(x: i32) -> Self2145 pub const fn from_raw(x: i32) -> Self { 2146 LineRasterizationModeEXT(x) 2147 } as_raw(self) -> i322148 pub const fn as_raw(self) -> i32 { 2149 self.0 2150 } 2151 } 2152 impl LineRasterizationModeEXT { 2153 pub const DEFAULT: Self = Self(0); 2154 pub const RECTANGULAR: Self = Self(1); 2155 pub const BRESENHAM: Self = Self(2); 2156 pub const RECTANGULAR_SMOOTH: Self = Self(3); 2157 } 2158 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2159 #[repr(transparent)] 2160 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateCombinerOpKHR.html>"] 2161 pub struct FragmentShadingRateCombinerOpKHR(pub(crate) i32); 2162 impl FragmentShadingRateCombinerOpKHR { from_raw(x: i32) -> Self2163 pub const fn from_raw(x: i32) -> Self { 2164 FragmentShadingRateCombinerOpKHR(x) 2165 } as_raw(self) -> i322166 pub const fn as_raw(self) -> i32 { 2167 self.0 2168 } 2169 } 2170 impl FragmentShadingRateCombinerOpKHR { 2171 pub const KEEP: Self = Self(0); 2172 pub const REPLACE: Self = Self(1); 2173 pub const MIN: Self = Self(2); 2174 pub const MAX: Self = Self(3); 2175 pub const MUL: Self = Self(4); 2176 } 2177 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2178 #[repr(transparent)] 2179 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateNV.html>"] 2180 pub struct FragmentShadingRateNV(pub(crate) i32); 2181 impl FragmentShadingRateNV { from_raw(x: i32) -> Self2182 pub const fn from_raw(x: i32) -> Self { 2183 FragmentShadingRateNV(x) 2184 } as_raw(self) -> i322185 pub const fn as_raw(self) -> i32 { 2186 self.0 2187 } 2188 } 2189 impl FragmentShadingRateNV { 2190 pub const TYPE_1_INVOCATION_PER_PIXEL: Self = Self(0); 2191 pub const TYPE_1_INVOCATION_PER_1X2_PIXELS: Self = Self(1); 2192 pub const TYPE_1_INVOCATION_PER_2X1_PIXELS: Self = Self(4); 2193 pub const TYPE_1_INVOCATION_PER_2X2_PIXELS: Self = Self(5); 2194 pub const TYPE_1_INVOCATION_PER_2X4_PIXELS: Self = Self(6); 2195 pub const TYPE_1_INVOCATION_PER_4X2_PIXELS: Self = Self(9); 2196 pub const TYPE_1_INVOCATION_PER_4X4_PIXELS: Self = Self(10); 2197 pub const TYPE_2_INVOCATIONS_PER_PIXEL: Self = Self(11); 2198 pub const TYPE_4_INVOCATIONS_PER_PIXEL: Self = Self(12); 2199 pub const TYPE_8_INVOCATIONS_PER_PIXEL: Self = Self(13); 2200 pub const TYPE_16_INVOCATIONS_PER_PIXEL: Self = Self(14); 2201 pub const NO_INVOCATIONS: Self = Self(15); 2202 } 2203 #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Default)] 2204 #[repr(transparent)] 2205 #[doc = "<https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VkFragmentShadingRateTypeNV.html>"] 2206 pub struct FragmentShadingRateTypeNV(pub(crate) i32); 2207 impl FragmentShadingRateTypeNV { from_raw(x: i32) -> Self2208 pub const fn from_raw(x: i32) -> Self { 2209 FragmentShadingRateTypeNV(x) 2210 } as_raw(self) -> i322211 pub const fn as_raw(self) -> i32 { 2212 self.0 2213 } 2214 } 2215 impl FragmentShadingRateTypeNV { 2216 pub const FRAGMENT_SIZE: Self = Self(0); 2217 pub const ENUMS: Self = Self(1); 2218 } 2219