1#[repr(transparent)]
3#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4#[doc(alias = "VkAccelerationStructureCreateFlagBitsKHR")]
5pub struct AccelerationStructureCreateFlagBitsKHR(u32);
6impl AccelerationStructureCreateFlagBitsKHR {
7 #[inline]
8 pub const fn empty() -> Self {
9 Self(0u32)
10 }
11 #[inline]
12 pub const fn from_raw(value: u32) -> Self {
13 Self(value)
14 }
15 #[inline]
16 pub const fn as_raw(self) -> u32 {
17 self.0
18 }
19 #[inline]
20 pub const fn is_empty(self) -> bool {
21 self.0 == 0u32
22 }
23 #[inline]
24 pub const fn contains(self, other: Self) -> bool {
25 (self.0 & other.0) == other.0
26 }
27 #[inline]
28 pub const fn all() -> Self {
29 Self(13u32)
30 }
31 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(1u32);
33 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(8u32);
35 pub const MOTION: Self = Self(4u32);
37}
38impl core::ops::BitOr for AccelerationStructureCreateFlagBitsKHR {
39 type Output = Self;
40 #[inline]
41 fn bitor(self, rhs: Self) -> Self {
42 Self(self.0 | rhs.0)
43 }
44}
45impl core::ops::BitOrAssign for AccelerationStructureCreateFlagBitsKHR {
46 #[inline]
47 fn bitor_assign(&mut self, rhs: Self) {
48 self.0 |= rhs.0;
49 }
50}
51impl core::ops::BitAnd for AccelerationStructureCreateFlagBitsKHR {
52 type Output = Self;
53 #[inline]
54 fn bitand(self, rhs: Self) -> Self {
55 Self(self.0 & rhs.0)
56 }
57}
58impl core::ops::BitAndAssign for AccelerationStructureCreateFlagBitsKHR {
59 #[inline]
60 fn bitand_assign(&mut self, rhs: Self) {
61 self.0 &= rhs.0;
62 }
63}
64impl core::ops::BitXor for AccelerationStructureCreateFlagBitsKHR {
65 type Output = Self;
66 #[inline]
67 fn bitxor(self, rhs: Self) -> Self {
68 Self(self.0 ^ rhs.0)
69 }
70}
71impl core::ops::BitXorAssign for AccelerationStructureCreateFlagBitsKHR {
72 #[inline]
73 fn bitxor_assign(&mut self, rhs: Self) {
74 self.0 ^= rhs.0;
75 }
76}
77impl core::ops::Not for AccelerationStructureCreateFlagBitsKHR {
78 type Output = Self;
79 #[inline]
80 fn not(self) -> Self {
81 Self(!self.0)
82 }
83}
84impl core::fmt::Debug for AccelerationStructureCreateFlagBitsKHR {
85 #[allow(unused_mut, unused_variables)]
86 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
87 let mut first = true;
88 let mut remaining = self.0;
89 if remaining & Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0 != 0 {
90 if !first {
91 f.write_str(" | ")?;
92 }
93 f.write_str("DEVICE_ADDRESS_CAPTURE_REPLAY")?;
94 remaining &= !Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0;
95 first = false;
96 }
97 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0 != 0 {
98 if !first {
99 f.write_str(" | ")?;
100 }
101 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY")?;
102 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0;
103 first = false;
104 }
105 if remaining & Self::MOTION.0 != 0 {
106 if !first {
107 f.write_str(" | ")?;
108 }
109 f.write_str("MOTION")?;
110 remaining &= !Self::MOTION.0;
111 first = false;
112 }
113 if remaining != 0u32 {
114 if !first {
115 f.write_str(" | ")?;
116 }
117 write!(f, "{:#x}", remaining)?;
118 } else if first {
119 f.write_str("(empty)")?;
120 }
121 Ok(())
122 }
123}
124#[repr(transparent)]
126#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
127#[doc(alias = "VkAccessFlagBits")]
128pub struct AccessFlagBits(u32);
129impl AccessFlagBits {
130 #[inline]
131 pub const fn empty() -> Self {
132 Self(0u32)
133 }
134 #[inline]
135 pub const fn from_raw(value: u32) -> Self {
136 Self(value)
137 }
138 #[inline]
139 pub const fn as_raw(self) -> u32 {
140 self.0
141 }
142 #[inline]
143 pub const fn is_empty(self) -> bool {
144 self.0 == 0u32
145 }
146 #[inline]
147 pub const fn contains(self, other: Self) -> bool {
148 (self.0 & other.0) == other.0
149 }
150 #[inline]
151 pub const fn all() -> Self {
152 Self(268435455u32)
153 }
154 pub const INDIRECT_COMMAND_READ: Self = Self(1u32);
156 pub const INDEX_READ: Self = Self(2u32);
158 pub const VERTEX_ATTRIBUTE_READ: Self = Self(4u32);
160 pub const UNIFORM_READ: Self = Self(8u32);
162 pub const INPUT_ATTACHMENT_READ: Self = Self(16u32);
164 pub const SHADER_READ: Self = Self(32u32);
166 pub const SHADER_WRITE: Self = Self(64u32);
168 pub const COLOR_ATTACHMENT_READ: Self = Self(128u32);
170 pub const COLOR_ATTACHMENT_WRITE: Self = Self(256u32);
172 pub const DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(512u32);
174 pub const DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(1024u32);
176 pub const TRANSFER_READ: Self = Self(2048u32);
178 pub const TRANSFER_WRITE: Self = Self(4096u32);
180 pub const HOST_READ: Self = Self(8192u32);
182 pub const HOST_WRITE: Self = Self(16384u32);
184 pub const MEMORY_READ: Self = Self(32768u32);
186 pub const MEMORY_WRITE: Self = Self(65536u32);
188 pub const NONE: Self = Self(0u32);
189 pub const TRANSFORM_FEEDBACK_WRITE: Self = Self(33554432u32);
191 pub const TRANSFORM_FEEDBACK_COUNTER_READ: Self = Self(67108864u32);
193 pub const TRANSFORM_FEEDBACK_COUNTER_WRITE: Self = Self(134217728u32);
195 pub const CONDITIONAL_RENDERING_READ: Self = Self(1048576u32);
197 pub const COLOR_ATTACHMENT_READ_NONCOHERENT: Self = Self(524288u32);
199 pub const ACCELERATION_STRUCTURE_READ: Self = Self(2097152u32);
201 pub const ACCELERATION_STRUCTURE_WRITE: Self = Self(4194304u32);
203 pub const SHADING_RATE_IMAGE_READ: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ;
204 pub const FRAGMENT_DENSITY_MAP_READ: Self = Self(16777216u32);
206 pub const FRAGMENT_SHADING_RATE_ATTACHMENT_READ: Self = Self(8388608u32);
208 pub const COMMAND_PREPROCESS_READ: Self = Self(131072u32);
210 pub const COMMAND_PREPROCESS_WRITE: Self = Self(262144u32);
212}
213impl core::ops::BitOr for AccessFlagBits {
214 type Output = Self;
215 #[inline]
216 fn bitor(self, rhs: Self) -> Self {
217 Self(self.0 | rhs.0)
218 }
219}
220impl core::ops::BitOrAssign for AccessFlagBits {
221 #[inline]
222 fn bitor_assign(&mut self, rhs: Self) {
223 self.0 |= rhs.0;
224 }
225}
226impl core::ops::BitAnd for AccessFlagBits {
227 type Output = Self;
228 #[inline]
229 fn bitand(self, rhs: Self) -> Self {
230 Self(self.0 & rhs.0)
231 }
232}
233impl core::ops::BitAndAssign for AccessFlagBits {
234 #[inline]
235 fn bitand_assign(&mut self, rhs: Self) {
236 self.0 &= rhs.0;
237 }
238}
239impl core::ops::BitXor for AccessFlagBits {
240 type Output = Self;
241 #[inline]
242 fn bitxor(self, rhs: Self) -> Self {
243 Self(self.0 ^ rhs.0)
244 }
245}
246impl core::ops::BitXorAssign for AccessFlagBits {
247 #[inline]
248 fn bitxor_assign(&mut self, rhs: Self) {
249 self.0 ^= rhs.0;
250 }
251}
252impl core::ops::Not for AccessFlagBits {
253 type Output = Self;
254 #[inline]
255 fn not(self) -> Self {
256 Self(!self.0)
257 }
258}
259impl core::fmt::Debug for AccessFlagBits {
260 #[allow(unused_mut, unused_variables)]
261 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
262 let mut first = true;
263 let mut remaining = self.0;
264 if remaining & Self::INDIRECT_COMMAND_READ.0 != 0 {
265 if !first {
266 f.write_str(" | ")?;
267 }
268 f.write_str("INDIRECT_COMMAND_READ")?;
269 remaining &= !Self::INDIRECT_COMMAND_READ.0;
270 first = false;
271 }
272 if remaining & Self::INDEX_READ.0 != 0 {
273 if !first {
274 f.write_str(" | ")?;
275 }
276 f.write_str("INDEX_READ")?;
277 remaining &= !Self::INDEX_READ.0;
278 first = false;
279 }
280 if remaining & Self::VERTEX_ATTRIBUTE_READ.0 != 0 {
281 if !first {
282 f.write_str(" | ")?;
283 }
284 f.write_str("VERTEX_ATTRIBUTE_READ")?;
285 remaining &= !Self::VERTEX_ATTRIBUTE_READ.0;
286 first = false;
287 }
288 if remaining & Self::UNIFORM_READ.0 != 0 {
289 if !first {
290 f.write_str(" | ")?;
291 }
292 f.write_str("UNIFORM_READ")?;
293 remaining &= !Self::UNIFORM_READ.0;
294 first = false;
295 }
296 if remaining & Self::INPUT_ATTACHMENT_READ.0 != 0 {
297 if !first {
298 f.write_str(" | ")?;
299 }
300 f.write_str("INPUT_ATTACHMENT_READ")?;
301 remaining &= !Self::INPUT_ATTACHMENT_READ.0;
302 first = false;
303 }
304 if remaining & Self::SHADER_READ.0 != 0 {
305 if !first {
306 f.write_str(" | ")?;
307 }
308 f.write_str("SHADER_READ")?;
309 remaining &= !Self::SHADER_READ.0;
310 first = false;
311 }
312 if remaining & Self::SHADER_WRITE.0 != 0 {
313 if !first {
314 f.write_str(" | ")?;
315 }
316 f.write_str("SHADER_WRITE")?;
317 remaining &= !Self::SHADER_WRITE.0;
318 first = false;
319 }
320 if remaining & Self::COLOR_ATTACHMENT_READ.0 != 0 {
321 if !first {
322 f.write_str(" | ")?;
323 }
324 f.write_str("COLOR_ATTACHMENT_READ")?;
325 remaining &= !Self::COLOR_ATTACHMENT_READ.0;
326 first = false;
327 }
328 if remaining & Self::COLOR_ATTACHMENT_WRITE.0 != 0 {
329 if !first {
330 f.write_str(" | ")?;
331 }
332 f.write_str("COLOR_ATTACHMENT_WRITE")?;
333 remaining &= !Self::COLOR_ATTACHMENT_WRITE.0;
334 first = false;
335 }
336 if remaining & Self::DEPTH_STENCIL_ATTACHMENT_READ.0 != 0 {
337 if !first {
338 f.write_str(" | ")?;
339 }
340 f.write_str("DEPTH_STENCIL_ATTACHMENT_READ")?;
341 remaining &= !Self::DEPTH_STENCIL_ATTACHMENT_READ.0;
342 first = false;
343 }
344 if remaining & Self::DEPTH_STENCIL_ATTACHMENT_WRITE.0 != 0 {
345 if !first {
346 f.write_str(" | ")?;
347 }
348 f.write_str("DEPTH_STENCIL_ATTACHMENT_WRITE")?;
349 remaining &= !Self::DEPTH_STENCIL_ATTACHMENT_WRITE.0;
350 first = false;
351 }
352 if remaining & Self::TRANSFER_READ.0 != 0 {
353 if !first {
354 f.write_str(" | ")?;
355 }
356 f.write_str("TRANSFER_READ")?;
357 remaining &= !Self::TRANSFER_READ.0;
358 first = false;
359 }
360 if remaining & Self::TRANSFER_WRITE.0 != 0 {
361 if !first {
362 f.write_str(" | ")?;
363 }
364 f.write_str("TRANSFER_WRITE")?;
365 remaining &= !Self::TRANSFER_WRITE.0;
366 first = false;
367 }
368 if remaining & Self::HOST_READ.0 != 0 {
369 if !first {
370 f.write_str(" | ")?;
371 }
372 f.write_str("HOST_READ")?;
373 remaining &= !Self::HOST_READ.0;
374 first = false;
375 }
376 if remaining & Self::HOST_WRITE.0 != 0 {
377 if !first {
378 f.write_str(" | ")?;
379 }
380 f.write_str("HOST_WRITE")?;
381 remaining &= !Self::HOST_WRITE.0;
382 first = false;
383 }
384 if remaining & Self::MEMORY_READ.0 != 0 {
385 if !first {
386 f.write_str(" | ")?;
387 }
388 f.write_str("MEMORY_READ")?;
389 remaining &= !Self::MEMORY_READ.0;
390 first = false;
391 }
392 if remaining & Self::MEMORY_WRITE.0 != 0 {
393 if !first {
394 f.write_str(" | ")?;
395 }
396 f.write_str("MEMORY_WRITE")?;
397 remaining &= !Self::MEMORY_WRITE.0;
398 first = false;
399 }
400 if remaining & Self::TRANSFORM_FEEDBACK_WRITE.0 != 0 {
401 if !first {
402 f.write_str(" | ")?;
403 }
404 f.write_str("TRANSFORM_FEEDBACK_WRITE")?;
405 remaining &= !Self::TRANSFORM_FEEDBACK_WRITE.0;
406 first = false;
407 }
408 if remaining & Self::TRANSFORM_FEEDBACK_COUNTER_READ.0 != 0 {
409 if !first {
410 f.write_str(" | ")?;
411 }
412 f.write_str("TRANSFORM_FEEDBACK_COUNTER_READ")?;
413 remaining &= !Self::TRANSFORM_FEEDBACK_COUNTER_READ.0;
414 first = false;
415 }
416 if remaining & Self::TRANSFORM_FEEDBACK_COUNTER_WRITE.0 != 0 {
417 if !first {
418 f.write_str(" | ")?;
419 }
420 f.write_str("TRANSFORM_FEEDBACK_COUNTER_WRITE")?;
421 remaining &= !Self::TRANSFORM_FEEDBACK_COUNTER_WRITE.0;
422 first = false;
423 }
424 if remaining & Self::CONDITIONAL_RENDERING_READ.0 != 0 {
425 if !first {
426 f.write_str(" | ")?;
427 }
428 f.write_str("CONDITIONAL_RENDERING_READ")?;
429 remaining &= !Self::CONDITIONAL_RENDERING_READ.0;
430 first = false;
431 }
432 if remaining & Self::COLOR_ATTACHMENT_READ_NONCOHERENT.0 != 0 {
433 if !first {
434 f.write_str(" | ")?;
435 }
436 f.write_str("COLOR_ATTACHMENT_READ_NONCOHERENT")?;
437 remaining &= !Self::COLOR_ATTACHMENT_READ_NONCOHERENT.0;
438 first = false;
439 }
440 if remaining & Self::ACCELERATION_STRUCTURE_READ.0 != 0 {
441 if !first {
442 f.write_str(" | ")?;
443 }
444 f.write_str("ACCELERATION_STRUCTURE_READ")?;
445 remaining &= !Self::ACCELERATION_STRUCTURE_READ.0;
446 first = false;
447 }
448 if remaining & Self::ACCELERATION_STRUCTURE_WRITE.0 != 0 {
449 if !first {
450 f.write_str(" | ")?;
451 }
452 f.write_str("ACCELERATION_STRUCTURE_WRITE")?;
453 remaining &= !Self::ACCELERATION_STRUCTURE_WRITE.0;
454 first = false;
455 }
456 if remaining & Self::FRAGMENT_DENSITY_MAP_READ.0 != 0 {
457 if !first {
458 f.write_str(" | ")?;
459 }
460 f.write_str("FRAGMENT_DENSITY_MAP_READ")?;
461 remaining &= !Self::FRAGMENT_DENSITY_MAP_READ.0;
462 first = false;
463 }
464 if remaining & Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ.0 != 0 {
465 if !first {
466 f.write_str(" | ")?;
467 }
468 f.write_str("FRAGMENT_SHADING_RATE_ATTACHMENT_READ")?;
469 remaining &= !Self::FRAGMENT_SHADING_RATE_ATTACHMENT_READ.0;
470 first = false;
471 }
472 if remaining & Self::COMMAND_PREPROCESS_READ.0 != 0 {
473 if !first {
474 f.write_str(" | ")?;
475 }
476 f.write_str("COMMAND_PREPROCESS_READ")?;
477 remaining &= !Self::COMMAND_PREPROCESS_READ.0;
478 first = false;
479 }
480 if remaining & Self::COMMAND_PREPROCESS_WRITE.0 != 0 {
481 if !first {
482 f.write_str(" | ")?;
483 }
484 f.write_str("COMMAND_PREPROCESS_WRITE")?;
485 remaining &= !Self::COMMAND_PREPROCESS_WRITE.0;
486 first = false;
487 }
488 if remaining != 0u32 {
489 if !first {
490 f.write_str(" | ")?;
491 }
492 write!(f, "{:#x}", remaining)?;
493 } else if first {
494 f.write_str("(empty)")?;
495 }
496 Ok(())
497 }
498}
499#[repr(transparent)]
501#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
502#[doc(alias = "VkAccessFlagBits2")]
503pub struct AccessFlagBits2(u64);
504impl AccessFlagBits2 {
505 #[inline]
506 pub const fn empty() -> Self {
507 Self(0u64)
508 }
509 #[inline]
510 pub const fn from_raw(value: u64) -> Self {
511 Self(value)
512 }
513 #[inline]
514 pub const fn as_raw(self) -> u64 {
515 self.0
516 }
517 #[inline]
518 pub const fn is_empty(self) -> bool {
519 self.0 == 0u64
520 }
521 #[inline]
522 pub const fn contains(self, other: Self) -> bool {
523 (self.0 & other.0) == other.0
524 }
525 #[inline]
526 pub const fn all() -> Self {
527 Self(547679931908227071u64)
528 }
529 pub const _2_NONE: Self = Self(0u64);
530 pub const _2_INDIRECT_COMMAND_READ: Self = Self(1u64);
532 pub const _2_INDEX_READ: Self = Self(2u64);
534 pub const _2_VERTEX_ATTRIBUTE_READ: Self = Self(4u64);
536 pub const _2_UNIFORM_READ: Self = Self(8u64);
538 pub const _2_INPUT_ATTACHMENT_READ: Self = Self(16u64);
540 pub const _2_SHADER_READ: Self = Self(32u64);
542 pub const _2_SHADER_WRITE: Self = Self(64u64);
544 pub const _2_COLOR_ATTACHMENT_READ: Self = Self(128u64);
546 pub const _2_COLOR_ATTACHMENT_WRITE: Self = Self(256u64);
548 pub const _2_DEPTH_STENCIL_ATTACHMENT_READ: Self = Self(512u64);
550 pub const _2_DEPTH_STENCIL_ATTACHMENT_WRITE: Self = Self(1024u64);
552 pub const _2_TRANSFER_READ: Self = Self(2048u64);
554 pub const _2_TRANSFER_WRITE: Self = Self(4096u64);
556 pub const _2_HOST_READ: Self = Self(8192u64);
558 pub const _2_HOST_WRITE: Self = Self(16384u64);
560 pub const _2_MEMORY_READ: Self = Self(32768u64);
562 pub const _2_MEMORY_WRITE: Self = Self(65536u64);
564 pub const _2_SHADER_SAMPLED_READ: Self = Self(4294967296u64);
566 pub const _2_SHADER_STORAGE_READ: Self = Self(8589934592u64);
568 pub const _2_SHADER_STORAGE_WRITE: Self = Self(17179869184u64);
570 pub const _2_VIDEO_DECODE_READ: Self = Self(34359738368u64);
572 pub const _2_VIDEO_DECODE_WRITE: Self = Self(68719476736u64);
574 pub const _2_SAMPLER_HEAP_READ: Self = Self(144115188075855872u64);
576 pub const _2_RESOURCE_HEAP_READ: Self = Self(288230376151711744u64);
578 pub const _2_VIDEO_ENCODE_READ: Self = Self(137438953472u64);
580 pub const _2_VIDEO_ENCODE_WRITE: Self = Self(274877906944u64);
582 pub const _2_SHADER_TILE_ATTACHMENT_READ_BIT: Self = Self(2251799813685248u64);
584 pub const _2_SHADER_TILE_ATTACHMENT_WRITE_BIT: Self = Self(4503599627370496u64);
586 pub const _2_TRANSFORM_FEEDBACK_WRITE: Self = Self(33554432u64);
588 pub const _2_TRANSFORM_FEEDBACK_COUNTER_READ: Self = Self(67108864u64);
590 pub const _2_TRANSFORM_FEEDBACK_COUNTER_WRITE: Self = Self(134217728u64);
592 pub const _2_CONDITIONAL_RENDERING_READ: Self = Self(1048576u64);
594 pub const _2_COMMAND_PREPROCESS_READ: Self = Self(131072u64);
596 pub const _2_COMMAND_PREPROCESS_WRITE: Self = Self(262144u64);
598 pub const _2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ: Self = Self(8388608u64);
600 pub const _2_SHADING_RATE_IMAGE_READ: Self = Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ;
601 pub const _2_ACCELERATION_STRUCTURE_READ: Self = Self(2097152u64);
603 pub const _2_ACCELERATION_STRUCTURE_WRITE: Self = Self(4194304u64);
605 pub const _2_FRAGMENT_DENSITY_MAP_READ: Self = Self(16777216u64);
607 pub const _2_COLOR_ATTACHMENT_READ_NONCOHERENT: Self = Self(524288u64);
609 pub const _2_DESCRIPTOR_BUFFER_READ: Self = Self(2199023255552u64);
611 pub const _2_INVOCATION_MASK_READ_BIT: Self = Self(549755813888u64);
613 pub const _2_SHADER_BINDING_TABLE_READ: Self = Self(1099511627776u64);
615 pub const _2_MICROMAP_READ: Self = Self(17592186044416u64);
617 pub const _2_MICROMAP_WRITE: Self = Self(35184372088832u64);
619 pub const _2_OPTICAL_FLOW_READ: Self = Self(4398046511104u64);
621 pub const _2_OPTICAL_FLOW_WRITE: Self = Self(8796093022208u64);
623 pub const _2_DATA_GRAPH_READ_BIT: Self = Self(140737488355328u64);
625 pub const _2_DATA_GRAPH_WRITE_BIT: Self = Self(281474976710656u64);
627 pub const _2_MEMORY_DECOMPRESSION_READ: Self = Self(36028797018963968u64);
629 pub const _2_MEMORY_DECOMPRESSION_WRITE: Self = Self(72057594037927936u64);
631}
632impl core::ops::BitOr for AccessFlagBits2 {
633 type Output = Self;
634 #[inline]
635 fn bitor(self, rhs: Self) -> Self {
636 Self(self.0 | rhs.0)
637 }
638}
639impl core::ops::BitOrAssign for AccessFlagBits2 {
640 #[inline]
641 fn bitor_assign(&mut self, rhs: Self) {
642 self.0 |= rhs.0;
643 }
644}
645impl core::ops::BitAnd for AccessFlagBits2 {
646 type Output = Self;
647 #[inline]
648 fn bitand(self, rhs: Self) -> Self {
649 Self(self.0 & rhs.0)
650 }
651}
652impl core::ops::BitAndAssign for AccessFlagBits2 {
653 #[inline]
654 fn bitand_assign(&mut self, rhs: Self) {
655 self.0 &= rhs.0;
656 }
657}
658impl core::ops::BitXor for AccessFlagBits2 {
659 type Output = Self;
660 #[inline]
661 fn bitxor(self, rhs: Self) -> Self {
662 Self(self.0 ^ rhs.0)
663 }
664}
665impl core::ops::BitXorAssign for AccessFlagBits2 {
666 #[inline]
667 fn bitxor_assign(&mut self, rhs: Self) {
668 self.0 ^= rhs.0;
669 }
670}
671impl core::ops::Not for AccessFlagBits2 {
672 type Output = Self;
673 #[inline]
674 fn not(self) -> Self {
675 Self(!self.0)
676 }
677}
678impl core::fmt::Debug for AccessFlagBits2 {
679 #[allow(unused_mut, unused_variables)]
680 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
681 let mut first = true;
682 let mut remaining = self.0;
683 if remaining & Self::_2_INDIRECT_COMMAND_READ.0 != 0 {
684 if !first {
685 f.write_str(" | ")?;
686 }
687 f.write_str("_2_INDIRECT_COMMAND_READ")?;
688 remaining &= !Self::_2_INDIRECT_COMMAND_READ.0;
689 first = false;
690 }
691 if remaining & Self::_2_INDEX_READ.0 != 0 {
692 if !first {
693 f.write_str(" | ")?;
694 }
695 f.write_str("_2_INDEX_READ")?;
696 remaining &= !Self::_2_INDEX_READ.0;
697 first = false;
698 }
699 if remaining & Self::_2_VERTEX_ATTRIBUTE_READ.0 != 0 {
700 if !first {
701 f.write_str(" | ")?;
702 }
703 f.write_str("_2_VERTEX_ATTRIBUTE_READ")?;
704 remaining &= !Self::_2_VERTEX_ATTRIBUTE_READ.0;
705 first = false;
706 }
707 if remaining & Self::_2_UNIFORM_READ.0 != 0 {
708 if !first {
709 f.write_str(" | ")?;
710 }
711 f.write_str("_2_UNIFORM_READ")?;
712 remaining &= !Self::_2_UNIFORM_READ.0;
713 first = false;
714 }
715 if remaining & Self::_2_INPUT_ATTACHMENT_READ.0 != 0 {
716 if !first {
717 f.write_str(" | ")?;
718 }
719 f.write_str("_2_INPUT_ATTACHMENT_READ")?;
720 remaining &= !Self::_2_INPUT_ATTACHMENT_READ.0;
721 first = false;
722 }
723 if remaining & Self::_2_SHADER_READ.0 != 0 {
724 if !first {
725 f.write_str(" | ")?;
726 }
727 f.write_str("_2_SHADER_READ")?;
728 remaining &= !Self::_2_SHADER_READ.0;
729 first = false;
730 }
731 if remaining & Self::_2_SHADER_WRITE.0 != 0 {
732 if !first {
733 f.write_str(" | ")?;
734 }
735 f.write_str("_2_SHADER_WRITE")?;
736 remaining &= !Self::_2_SHADER_WRITE.0;
737 first = false;
738 }
739 if remaining & Self::_2_COLOR_ATTACHMENT_READ.0 != 0 {
740 if !first {
741 f.write_str(" | ")?;
742 }
743 f.write_str("_2_COLOR_ATTACHMENT_READ")?;
744 remaining &= !Self::_2_COLOR_ATTACHMENT_READ.0;
745 first = false;
746 }
747 if remaining & Self::_2_COLOR_ATTACHMENT_WRITE.0 != 0 {
748 if !first {
749 f.write_str(" | ")?;
750 }
751 f.write_str("_2_COLOR_ATTACHMENT_WRITE")?;
752 remaining &= !Self::_2_COLOR_ATTACHMENT_WRITE.0;
753 first = false;
754 }
755 if remaining & Self::_2_DEPTH_STENCIL_ATTACHMENT_READ.0 != 0 {
756 if !first {
757 f.write_str(" | ")?;
758 }
759 f.write_str("_2_DEPTH_STENCIL_ATTACHMENT_READ")?;
760 remaining &= !Self::_2_DEPTH_STENCIL_ATTACHMENT_READ.0;
761 first = false;
762 }
763 if remaining & Self::_2_DEPTH_STENCIL_ATTACHMENT_WRITE.0 != 0 {
764 if !first {
765 f.write_str(" | ")?;
766 }
767 f.write_str("_2_DEPTH_STENCIL_ATTACHMENT_WRITE")?;
768 remaining &= !Self::_2_DEPTH_STENCIL_ATTACHMENT_WRITE.0;
769 first = false;
770 }
771 if remaining & Self::_2_TRANSFER_READ.0 != 0 {
772 if !first {
773 f.write_str(" | ")?;
774 }
775 f.write_str("_2_TRANSFER_READ")?;
776 remaining &= !Self::_2_TRANSFER_READ.0;
777 first = false;
778 }
779 if remaining & Self::_2_TRANSFER_WRITE.0 != 0 {
780 if !first {
781 f.write_str(" | ")?;
782 }
783 f.write_str("_2_TRANSFER_WRITE")?;
784 remaining &= !Self::_2_TRANSFER_WRITE.0;
785 first = false;
786 }
787 if remaining & Self::_2_HOST_READ.0 != 0 {
788 if !first {
789 f.write_str(" | ")?;
790 }
791 f.write_str("_2_HOST_READ")?;
792 remaining &= !Self::_2_HOST_READ.0;
793 first = false;
794 }
795 if remaining & Self::_2_HOST_WRITE.0 != 0 {
796 if !first {
797 f.write_str(" | ")?;
798 }
799 f.write_str("_2_HOST_WRITE")?;
800 remaining &= !Self::_2_HOST_WRITE.0;
801 first = false;
802 }
803 if remaining & Self::_2_MEMORY_READ.0 != 0 {
804 if !first {
805 f.write_str(" | ")?;
806 }
807 f.write_str("_2_MEMORY_READ")?;
808 remaining &= !Self::_2_MEMORY_READ.0;
809 first = false;
810 }
811 if remaining & Self::_2_MEMORY_WRITE.0 != 0 {
812 if !first {
813 f.write_str(" | ")?;
814 }
815 f.write_str("_2_MEMORY_WRITE")?;
816 remaining &= !Self::_2_MEMORY_WRITE.0;
817 first = false;
818 }
819 if remaining & Self::_2_SHADER_SAMPLED_READ.0 != 0 {
820 if !first {
821 f.write_str(" | ")?;
822 }
823 f.write_str("_2_SHADER_SAMPLED_READ")?;
824 remaining &= !Self::_2_SHADER_SAMPLED_READ.0;
825 first = false;
826 }
827 if remaining & Self::_2_SHADER_STORAGE_READ.0 != 0 {
828 if !first {
829 f.write_str(" | ")?;
830 }
831 f.write_str("_2_SHADER_STORAGE_READ")?;
832 remaining &= !Self::_2_SHADER_STORAGE_READ.0;
833 first = false;
834 }
835 if remaining & Self::_2_SHADER_STORAGE_WRITE.0 != 0 {
836 if !first {
837 f.write_str(" | ")?;
838 }
839 f.write_str("_2_SHADER_STORAGE_WRITE")?;
840 remaining &= !Self::_2_SHADER_STORAGE_WRITE.0;
841 first = false;
842 }
843 if remaining & Self::_2_VIDEO_DECODE_READ.0 != 0 {
844 if !first {
845 f.write_str(" | ")?;
846 }
847 f.write_str("_2_VIDEO_DECODE_READ")?;
848 remaining &= !Self::_2_VIDEO_DECODE_READ.0;
849 first = false;
850 }
851 if remaining & Self::_2_VIDEO_DECODE_WRITE.0 != 0 {
852 if !first {
853 f.write_str(" | ")?;
854 }
855 f.write_str("_2_VIDEO_DECODE_WRITE")?;
856 remaining &= !Self::_2_VIDEO_DECODE_WRITE.0;
857 first = false;
858 }
859 if remaining & Self::_2_SAMPLER_HEAP_READ.0 != 0 {
860 if !first {
861 f.write_str(" | ")?;
862 }
863 f.write_str("_2_SAMPLER_HEAP_READ")?;
864 remaining &= !Self::_2_SAMPLER_HEAP_READ.0;
865 first = false;
866 }
867 if remaining & Self::_2_RESOURCE_HEAP_READ.0 != 0 {
868 if !first {
869 f.write_str(" | ")?;
870 }
871 f.write_str("_2_RESOURCE_HEAP_READ")?;
872 remaining &= !Self::_2_RESOURCE_HEAP_READ.0;
873 first = false;
874 }
875 if remaining & Self::_2_VIDEO_ENCODE_READ.0 != 0 {
876 if !first {
877 f.write_str(" | ")?;
878 }
879 f.write_str("_2_VIDEO_ENCODE_READ")?;
880 remaining &= !Self::_2_VIDEO_ENCODE_READ.0;
881 first = false;
882 }
883 if remaining & Self::_2_VIDEO_ENCODE_WRITE.0 != 0 {
884 if !first {
885 f.write_str(" | ")?;
886 }
887 f.write_str("_2_VIDEO_ENCODE_WRITE")?;
888 remaining &= !Self::_2_VIDEO_ENCODE_WRITE.0;
889 first = false;
890 }
891 if remaining & Self::_2_SHADER_TILE_ATTACHMENT_READ_BIT.0 != 0 {
892 if !first {
893 f.write_str(" | ")?;
894 }
895 f.write_str("_2_SHADER_TILE_ATTACHMENT_READ_BIT")?;
896 remaining &= !Self::_2_SHADER_TILE_ATTACHMENT_READ_BIT.0;
897 first = false;
898 }
899 if remaining & Self::_2_SHADER_TILE_ATTACHMENT_WRITE_BIT.0 != 0 {
900 if !first {
901 f.write_str(" | ")?;
902 }
903 f.write_str("_2_SHADER_TILE_ATTACHMENT_WRITE_BIT")?;
904 remaining &= !Self::_2_SHADER_TILE_ATTACHMENT_WRITE_BIT.0;
905 first = false;
906 }
907 if remaining & Self::_2_TRANSFORM_FEEDBACK_WRITE.0 != 0 {
908 if !first {
909 f.write_str(" | ")?;
910 }
911 f.write_str("_2_TRANSFORM_FEEDBACK_WRITE")?;
912 remaining &= !Self::_2_TRANSFORM_FEEDBACK_WRITE.0;
913 first = false;
914 }
915 if remaining & Self::_2_TRANSFORM_FEEDBACK_COUNTER_READ.0 != 0 {
916 if !first {
917 f.write_str(" | ")?;
918 }
919 f.write_str("_2_TRANSFORM_FEEDBACK_COUNTER_READ")?;
920 remaining &= !Self::_2_TRANSFORM_FEEDBACK_COUNTER_READ.0;
921 first = false;
922 }
923 if remaining & Self::_2_TRANSFORM_FEEDBACK_COUNTER_WRITE.0 != 0 {
924 if !first {
925 f.write_str(" | ")?;
926 }
927 f.write_str("_2_TRANSFORM_FEEDBACK_COUNTER_WRITE")?;
928 remaining &= !Self::_2_TRANSFORM_FEEDBACK_COUNTER_WRITE.0;
929 first = false;
930 }
931 if remaining & Self::_2_CONDITIONAL_RENDERING_READ.0 != 0 {
932 if !first {
933 f.write_str(" | ")?;
934 }
935 f.write_str("_2_CONDITIONAL_RENDERING_READ")?;
936 remaining &= !Self::_2_CONDITIONAL_RENDERING_READ.0;
937 first = false;
938 }
939 if remaining & Self::_2_COMMAND_PREPROCESS_READ.0 != 0 {
940 if !first {
941 f.write_str(" | ")?;
942 }
943 f.write_str("_2_COMMAND_PREPROCESS_READ")?;
944 remaining &= !Self::_2_COMMAND_PREPROCESS_READ.0;
945 first = false;
946 }
947 if remaining & Self::_2_COMMAND_PREPROCESS_WRITE.0 != 0 {
948 if !first {
949 f.write_str(" | ")?;
950 }
951 f.write_str("_2_COMMAND_PREPROCESS_WRITE")?;
952 remaining &= !Self::_2_COMMAND_PREPROCESS_WRITE.0;
953 first = false;
954 }
955 if remaining & Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ.0 != 0 {
956 if !first {
957 f.write_str(" | ")?;
958 }
959 f.write_str("_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ")?;
960 remaining &= !Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ.0;
961 first = false;
962 }
963 if remaining & Self::_2_ACCELERATION_STRUCTURE_READ.0 != 0 {
964 if !first {
965 f.write_str(" | ")?;
966 }
967 f.write_str("_2_ACCELERATION_STRUCTURE_READ")?;
968 remaining &= !Self::_2_ACCELERATION_STRUCTURE_READ.0;
969 first = false;
970 }
971 if remaining & Self::_2_ACCELERATION_STRUCTURE_WRITE.0 != 0 {
972 if !first {
973 f.write_str(" | ")?;
974 }
975 f.write_str("_2_ACCELERATION_STRUCTURE_WRITE")?;
976 remaining &= !Self::_2_ACCELERATION_STRUCTURE_WRITE.0;
977 first = false;
978 }
979 if remaining & Self::_2_FRAGMENT_DENSITY_MAP_READ.0 != 0 {
980 if !first {
981 f.write_str(" | ")?;
982 }
983 f.write_str("_2_FRAGMENT_DENSITY_MAP_READ")?;
984 remaining &= !Self::_2_FRAGMENT_DENSITY_MAP_READ.0;
985 first = false;
986 }
987 if remaining & Self::_2_COLOR_ATTACHMENT_READ_NONCOHERENT.0 != 0 {
988 if !first {
989 f.write_str(" | ")?;
990 }
991 f.write_str("_2_COLOR_ATTACHMENT_READ_NONCOHERENT")?;
992 remaining &= !Self::_2_COLOR_ATTACHMENT_READ_NONCOHERENT.0;
993 first = false;
994 }
995 if remaining & Self::_2_DESCRIPTOR_BUFFER_READ.0 != 0 {
996 if !first {
997 f.write_str(" | ")?;
998 }
999 f.write_str("_2_DESCRIPTOR_BUFFER_READ")?;
1000 remaining &= !Self::_2_DESCRIPTOR_BUFFER_READ.0;
1001 first = false;
1002 }
1003 if remaining & Self::_2_INVOCATION_MASK_READ_BIT.0 != 0 {
1004 if !first {
1005 f.write_str(" | ")?;
1006 }
1007 f.write_str("_2_INVOCATION_MASK_READ_BIT")?;
1008 remaining &= !Self::_2_INVOCATION_MASK_READ_BIT.0;
1009 first = false;
1010 }
1011 if remaining & Self::_2_SHADER_BINDING_TABLE_READ.0 != 0 {
1012 if !first {
1013 f.write_str(" | ")?;
1014 }
1015 f.write_str("_2_SHADER_BINDING_TABLE_READ")?;
1016 remaining &= !Self::_2_SHADER_BINDING_TABLE_READ.0;
1017 first = false;
1018 }
1019 if remaining & Self::_2_MICROMAP_READ.0 != 0 {
1020 if !first {
1021 f.write_str(" | ")?;
1022 }
1023 f.write_str("_2_MICROMAP_READ")?;
1024 remaining &= !Self::_2_MICROMAP_READ.0;
1025 first = false;
1026 }
1027 if remaining & Self::_2_MICROMAP_WRITE.0 != 0 {
1028 if !first {
1029 f.write_str(" | ")?;
1030 }
1031 f.write_str("_2_MICROMAP_WRITE")?;
1032 remaining &= !Self::_2_MICROMAP_WRITE.0;
1033 first = false;
1034 }
1035 if remaining & Self::_2_OPTICAL_FLOW_READ.0 != 0 {
1036 if !first {
1037 f.write_str(" | ")?;
1038 }
1039 f.write_str("_2_OPTICAL_FLOW_READ")?;
1040 remaining &= !Self::_2_OPTICAL_FLOW_READ.0;
1041 first = false;
1042 }
1043 if remaining & Self::_2_OPTICAL_FLOW_WRITE.0 != 0 {
1044 if !first {
1045 f.write_str(" | ")?;
1046 }
1047 f.write_str("_2_OPTICAL_FLOW_WRITE")?;
1048 remaining &= !Self::_2_OPTICAL_FLOW_WRITE.0;
1049 first = false;
1050 }
1051 if remaining & Self::_2_DATA_GRAPH_READ_BIT.0 != 0 {
1052 if !first {
1053 f.write_str(" | ")?;
1054 }
1055 f.write_str("_2_DATA_GRAPH_READ_BIT")?;
1056 remaining &= !Self::_2_DATA_GRAPH_READ_BIT.0;
1057 first = false;
1058 }
1059 if remaining & Self::_2_DATA_GRAPH_WRITE_BIT.0 != 0 {
1060 if !first {
1061 f.write_str(" | ")?;
1062 }
1063 f.write_str("_2_DATA_GRAPH_WRITE_BIT")?;
1064 remaining &= !Self::_2_DATA_GRAPH_WRITE_BIT.0;
1065 first = false;
1066 }
1067 if remaining & Self::_2_MEMORY_DECOMPRESSION_READ.0 != 0 {
1068 if !first {
1069 f.write_str(" | ")?;
1070 }
1071 f.write_str("_2_MEMORY_DECOMPRESSION_READ")?;
1072 remaining &= !Self::_2_MEMORY_DECOMPRESSION_READ.0;
1073 first = false;
1074 }
1075 if remaining & Self::_2_MEMORY_DECOMPRESSION_WRITE.0 != 0 {
1076 if !first {
1077 f.write_str(" | ")?;
1078 }
1079 f.write_str("_2_MEMORY_DECOMPRESSION_WRITE")?;
1080 remaining &= !Self::_2_MEMORY_DECOMPRESSION_WRITE.0;
1081 first = false;
1082 }
1083 if remaining != 0u64 {
1084 if !first {
1085 f.write_str(" | ")?;
1086 }
1087 write!(f, "{:#x}", remaining)?;
1088 } else if first {
1089 f.write_str("(empty)")?;
1090 }
1091 Ok(())
1092 }
1093}
1094#[repr(transparent)]
1096#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1097#[doc(alias = "VkAccessFlagBits3KHR")]
1098pub struct AccessFlagBits3KHR(u64);
1099impl AccessFlagBits3KHR {
1100 #[inline]
1101 pub const fn empty() -> Self {
1102 Self(0u64)
1103 }
1104 #[inline]
1105 pub const fn from_raw(value: u64) -> Self {
1106 Self(value)
1107 }
1108 #[inline]
1109 pub const fn as_raw(self) -> u64 {
1110 self.0
1111 }
1112 #[inline]
1113 pub const fn is_empty(self) -> bool {
1114 self.0 == 0u64
1115 }
1116 #[inline]
1117 pub const fn contains(self, other: Self) -> bool {
1118 (self.0 & other.0) == other.0
1119 }
1120 #[inline]
1121 pub const fn all() -> Self {
1122 Self(0u64)
1123 }
1124 pub const ACCESS_3_NONE: Self = Self(0u64);
1125}
1126impl core::ops::BitOr for AccessFlagBits3KHR {
1127 type Output = Self;
1128 #[inline]
1129 fn bitor(self, rhs: Self) -> Self {
1130 Self(self.0 | rhs.0)
1131 }
1132}
1133impl core::ops::BitOrAssign for AccessFlagBits3KHR {
1134 #[inline]
1135 fn bitor_assign(&mut self, rhs: Self) {
1136 self.0 |= rhs.0;
1137 }
1138}
1139impl core::ops::BitAnd for AccessFlagBits3KHR {
1140 type Output = Self;
1141 #[inline]
1142 fn bitand(self, rhs: Self) -> Self {
1143 Self(self.0 & rhs.0)
1144 }
1145}
1146impl core::ops::BitAndAssign for AccessFlagBits3KHR {
1147 #[inline]
1148 fn bitand_assign(&mut self, rhs: Self) {
1149 self.0 &= rhs.0;
1150 }
1151}
1152impl core::ops::BitXor for AccessFlagBits3KHR {
1153 type Output = Self;
1154 #[inline]
1155 fn bitxor(self, rhs: Self) -> Self {
1156 Self(self.0 ^ rhs.0)
1157 }
1158}
1159impl core::ops::BitXorAssign for AccessFlagBits3KHR {
1160 #[inline]
1161 fn bitxor_assign(&mut self, rhs: Self) {
1162 self.0 ^= rhs.0;
1163 }
1164}
1165impl core::ops::Not for AccessFlagBits3KHR {
1166 type Output = Self;
1167 #[inline]
1168 fn not(self) -> Self {
1169 Self(!self.0)
1170 }
1171}
1172impl core::fmt::Debug for AccessFlagBits3KHR {
1173 #[allow(unused_mut, unused_variables)]
1174 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1175 let mut first = true;
1176 let mut remaining = self.0;
1177 if remaining != 0u64 {
1178 if !first {
1179 f.write_str(" | ")?;
1180 }
1181 write!(f, "{:#x}", remaining)?;
1182 } else if first {
1183 f.write_str("(empty)")?;
1184 }
1185 Ok(())
1186 }
1187}
1188#[repr(transparent)]
1190#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1191#[doc(alias = "VkAcquireProfilingLockFlagBitsKHR")]
1192pub struct AcquireProfilingLockFlagBitsKHR(u32);
1193impl AcquireProfilingLockFlagBitsKHR {
1194 #[inline]
1195 pub const fn empty() -> Self {
1196 Self(0u32)
1197 }
1198 #[inline]
1199 pub const fn from_raw(value: u32) -> Self {
1200 Self(value)
1201 }
1202 #[inline]
1203 pub const fn as_raw(self) -> u32 {
1204 self.0
1205 }
1206 #[inline]
1207 pub const fn is_empty(self) -> bool {
1208 self.0 == 0u32
1209 }
1210 #[inline]
1211 pub const fn contains(self, other: Self) -> bool {
1212 (self.0 & other.0) == other.0
1213 }
1214 #[inline]
1215 pub const fn all() -> Self {
1216 Self(0u32)
1217 }
1218}
1219impl core::ops::BitOr for AcquireProfilingLockFlagBitsKHR {
1220 type Output = Self;
1221 #[inline]
1222 fn bitor(self, rhs: Self) -> Self {
1223 Self(self.0 | rhs.0)
1224 }
1225}
1226impl core::ops::BitOrAssign for AcquireProfilingLockFlagBitsKHR {
1227 #[inline]
1228 fn bitor_assign(&mut self, rhs: Self) {
1229 self.0 |= rhs.0;
1230 }
1231}
1232impl core::ops::BitAnd for AcquireProfilingLockFlagBitsKHR {
1233 type Output = Self;
1234 #[inline]
1235 fn bitand(self, rhs: Self) -> Self {
1236 Self(self.0 & rhs.0)
1237 }
1238}
1239impl core::ops::BitAndAssign for AcquireProfilingLockFlagBitsKHR {
1240 #[inline]
1241 fn bitand_assign(&mut self, rhs: Self) {
1242 self.0 &= rhs.0;
1243 }
1244}
1245impl core::ops::BitXor for AcquireProfilingLockFlagBitsKHR {
1246 type Output = Self;
1247 #[inline]
1248 fn bitxor(self, rhs: Self) -> Self {
1249 Self(self.0 ^ rhs.0)
1250 }
1251}
1252impl core::ops::BitXorAssign for AcquireProfilingLockFlagBitsKHR {
1253 #[inline]
1254 fn bitxor_assign(&mut self, rhs: Self) {
1255 self.0 ^= rhs.0;
1256 }
1257}
1258impl core::ops::Not for AcquireProfilingLockFlagBitsKHR {
1259 type Output = Self;
1260 #[inline]
1261 fn not(self) -> Self {
1262 Self(!self.0)
1263 }
1264}
1265impl core::fmt::Debug for AcquireProfilingLockFlagBitsKHR {
1266 #[allow(unused_mut, unused_variables)]
1267 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1268 let mut first = true;
1269 let mut remaining = self.0;
1270 if remaining != 0u32 {
1271 if !first {
1272 f.write_str(" | ")?;
1273 }
1274 write!(f, "{:#x}", remaining)?;
1275 } else if first {
1276 f.write_str("(empty)")?;
1277 }
1278 Ok(())
1279 }
1280}
1281#[repr(transparent)]
1283#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1284#[doc(alias = "VkAddressCommandFlagBitsKHR")]
1285pub struct AddressCommandFlagBitsKHR(u32);
1286impl AddressCommandFlagBitsKHR {
1287 #[inline]
1288 pub const fn empty() -> Self {
1289 Self(0u32)
1290 }
1291 #[inline]
1292 pub const fn from_raw(value: u32) -> Self {
1293 Self(value)
1294 }
1295 #[inline]
1296 pub const fn as_raw(self) -> u32 {
1297 self.0
1298 }
1299 #[inline]
1300 pub const fn is_empty(self) -> bool {
1301 self.0 == 0u32
1302 }
1303 #[inline]
1304 pub const fn contains(self, other: Self) -> bool {
1305 (self.0 & other.0) == other.0
1306 }
1307 #[inline]
1308 pub const fn all() -> Self {
1309 Self(63u32)
1310 }
1311 pub const PROTECTED: Self = Self(1u32);
1313 pub const FULLY_BOUND: Self = Self(2u32);
1315 pub const STORAGE_BUFFER_USAGE: Self = Self(4u32);
1317 pub const UNKNOWN_STORAGE_BUFFER_USAGE: Self = Self(8u32);
1319 pub const TRANSFORM_FEEDBACK_BUFFER_USAGE: Self = Self(16u32);
1321 pub const UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE: Self = Self(32u32);
1323}
1324impl core::ops::BitOr for AddressCommandFlagBitsKHR {
1325 type Output = Self;
1326 #[inline]
1327 fn bitor(self, rhs: Self) -> Self {
1328 Self(self.0 | rhs.0)
1329 }
1330}
1331impl core::ops::BitOrAssign for AddressCommandFlagBitsKHR {
1332 #[inline]
1333 fn bitor_assign(&mut self, rhs: Self) {
1334 self.0 |= rhs.0;
1335 }
1336}
1337impl core::ops::BitAnd for AddressCommandFlagBitsKHR {
1338 type Output = Self;
1339 #[inline]
1340 fn bitand(self, rhs: Self) -> Self {
1341 Self(self.0 & rhs.0)
1342 }
1343}
1344impl core::ops::BitAndAssign for AddressCommandFlagBitsKHR {
1345 #[inline]
1346 fn bitand_assign(&mut self, rhs: Self) {
1347 self.0 &= rhs.0;
1348 }
1349}
1350impl core::ops::BitXor for AddressCommandFlagBitsKHR {
1351 type Output = Self;
1352 #[inline]
1353 fn bitxor(self, rhs: Self) -> Self {
1354 Self(self.0 ^ rhs.0)
1355 }
1356}
1357impl core::ops::BitXorAssign for AddressCommandFlagBitsKHR {
1358 #[inline]
1359 fn bitxor_assign(&mut self, rhs: Self) {
1360 self.0 ^= rhs.0;
1361 }
1362}
1363impl core::ops::Not for AddressCommandFlagBitsKHR {
1364 type Output = Self;
1365 #[inline]
1366 fn not(self) -> Self {
1367 Self(!self.0)
1368 }
1369}
1370impl core::fmt::Debug for AddressCommandFlagBitsKHR {
1371 #[allow(unused_mut, unused_variables)]
1372 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1373 let mut first = true;
1374 let mut remaining = self.0;
1375 if remaining & Self::PROTECTED.0 != 0 {
1376 if !first {
1377 f.write_str(" | ")?;
1378 }
1379 f.write_str("PROTECTED")?;
1380 remaining &= !Self::PROTECTED.0;
1381 first = false;
1382 }
1383 if remaining & Self::FULLY_BOUND.0 != 0 {
1384 if !first {
1385 f.write_str(" | ")?;
1386 }
1387 f.write_str("FULLY_BOUND")?;
1388 remaining &= !Self::FULLY_BOUND.0;
1389 first = false;
1390 }
1391 if remaining & Self::STORAGE_BUFFER_USAGE.0 != 0 {
1392 if !first {
1393 f.write_str(" | ")?;
1394 }
1395 f.write_str("STORAGE_BUFFER_USAGE")?;
1396 remaining &= !Self::STORAGE_BUFFER_USAGE.0;
1397 first = false;
1398 }
1399 if remaining & Self::UNKNOWN_STORAGE_BUFFER_USAGE.0 != 0 {
1400 if !first {
1401 f.write_str(" | ")?;
1402 }
1403 f.write_str("UNKNOWN_STORAGE_BUFFER_USAGE")?;
1404 remaining &= !Self::UNKNOWN_STORAGE_BUFFER_USAGE.0;
1405 first = false;
1406 }
1407 if remaining & Self::TRANSFORM_FEEDBACK_BUFFER_USAGE.0 != 0 {
1408 if !first {
1409 f.write_str(" | ")?;
1410 }
1411 f.write_str("TRANSFORM_FEEDBACK_BUFFER_USAGE")?;
1412 remaining &= !Self::TRANSFORM_FEEDBACK_BUFFER_USAGE.0;
1413 first = false;
1414 }
1415 if remaining & Self::UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE.0 != 0 {
1416 if !first {
1417 f.write_str(" | ")?;
1418 }
1419 f.write_str("UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE")?;
1420 remaining &= !Self::UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE.0;
1421 first = false;
1422 }
1423 if remaining != 0u32 {
1424 if !first {
1425 f.write_str(" | ")?;
1426 }
1427 write!(f, "{:#x}", remaining)?;
1428 } else if first {
1429 f.write_str("(empty)")?;
1430 }
1431 Ok(())
1432 }
1433}
1434#[repr(transparent)]
1436#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1437#[doc(alias = "VkAddressCopyFlagBitsKHR")]
1438pub struct AddressCopyFlagBitsKHR(u32);
1439impl AddressCopyFlagBitsKHR {
1440 #[inline]
1441 pub const fn empty() -> Self {
1442 Self(0u32)
1443 }
1444 #[inline]
1445 pub const fn from_raw(value: u32) -> Self {
1446 Self(value)
1447 }
1448 #[inline]
1449 pub const fn as_raw(self) -> u32 {
1450 self.0
1451 }
1452 #[inline]
1453 pub const fn is_empty(self) -> bool {
1454 self.0 == 0u32
1455 }
1456 #[inline]
1457 pub const fn contains(self, other: Self) -> bool {
1458 (self.0 & other.0) == other.0
1459 }
1460 #[inline]
1461 pub const fn all() -> Self {
1462 Self(7u32)
1463 }
1464 pub const DEVICE_LOCAL: Self = Self(1u32);
1466 pub const SPARSE: Self = Self(2u32);
1468 pub const PROTECTED: Self = Self(4u32);
1470}
1471impl core::ops::BitOr for AddressCopyFlagBitsKHR {
1472 type Output = Self;
1473 #[inline]
1474 fn bitor(self, rhs: Self) -> Self {
1475 Self(self.0 | rhs.0)
1476 }
1477}
1478impl core::ops::BitOrAssign for AddressCopyFlagBitsKHR {
1479 #[inline]
1480 fn bitor_assign(&mut self, rhs: Self) {
1481 self.0 |= rhs.0;
1482 }
1483}
1484impl core::ops::BitAnd for AddressCopyFlagBitsKHR {
1485 type Output = Self;
1486 #[inline]
1487 fn bitand(self, rhs: Self) -> Self {
1488 Self(self.0 & rhs.0)
1489 }
1490}
1491impl core::ops::BitAndAssign for AddressCopyFlagBitsKHR {
1492 #[inline]
1493 fn bitand_assign(&mut self, rhs: Self) {
1494 self.0 &= rhs.0;
1495 }
1496}
1497impl core::ops::BitXor for AddressCopyFlagBitsKHR {
1498 type Output = Self;
1499 #[inline]
1500 fn bitxor(self, rhs: Self) -> Self {
1501 Self(self.0 ^ rhs.0)
1502 }
1503}
1504impl core::ops::BitXorAssign for AddressCopyFlagBitsKHR {
1505 #[inline]
1506 fn bitxor_assign(&mut self, rhs: Self) {
1507 self.0 ^= rhs.0;
1508 }
1509}
1510impl core::ops::Not for AddressCopyFlagBitsKHR {
1511 type Output = Self;
1512 #[inline]
1513 fn not(self) -> Self {
1514 Self(!self.0)
1515 }
1516}
1517impl core::fmt::Debug for AddressCopyFlagBitsKHR {
1518 #[allow(unused_mut, unused_variables)]
1519 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1520 let mut first = true;
1521 let mut remaining = self.0;
1522 if remaining & Self::DEVICE_LOCAL.0 != 0 {
1523 if !first {
1524 f.write_str(" | ")?;
1525 }
1526 f.write_str("DEVICE_LOCAL")?;
1527 remaining &= !Self::DEVICE_LOCAL.0;
1528 first = false;
1529 }
1530 if remaining & Self::SPARSE.0 != 0 {
1531 if !first {
1532 f.write_str(" | ")?;
1533 }
1534 f.write_str("SPARSE")?;
1535 remaining &= !Self::SPARSE.0;
1536 first = false;
1537 }
1538 if remaining & Self::PROTECTED.0 != 0 {
1539 if !first {
1540 f.write_str(" | ")?;
1541 }
1542 f.write_str("PROTECTED")?;
1543 remaining &= !Self::PROTECTED.0;
1544 first = false;
1545 }
1546 if remaining != 0u32 {
1547 if !first {
1548 f.write_str(" | ")?;
1549 }
1550 write!(f, "{:#x}", remaining)?;
1551 } else if first {
1552 f.write_str("(empty)")?;
1553 }
1554 Ok(())
1555 }
1556}
1557#[repr(transparent)]
1559#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1560#[doc(alias = "VkAttachmentDescriptionFlagBits")]
1561pub struct AttachmentDescriptionFlagBits(u32);
1562impl AttachmentDescriptionFlagBits {
1563 #[inline]
1564 pub const fn empty() -> Self {
1565 Self(0u32)
1566 }
1567 #[inline]
1568 pub const fn from_raw(value: u32) -> Self {
1569 Self(value)
1570 }
1571 #[inline]
1572 pub const fn as_raw(self) -> u32 {
1573 self.0
1574 }
1575 #[inline]
1576 pub const fn is_empty(self) -> bool {
1577 self.0 == 0u32
1578 }
1579 #[inline]
1580 pub const fn contains(self, other: Self) -> bool {
1581 (self.0 & other.0) == other.0
1582 }
1583 #[inline]
1584 pub const fn all() -> Self {
1585 Self(7u32)
1586 }
1587 pub const MAY_ALIAS: Self = Self(1u32);
1589 pub const RESOLVE_SKIP_TRANSFER_FUNCTION: Self = Self(2u32);
1591 pub const RESOLVE_ENABLE_TRANSFER_FUNCTION: Self = Self(4u32);
1593}
1594impl core::ops::BitOr for AttachmentDescriptionFlagBits {
1595 type Output = Self;
1596 #[inline]
1597 fn bitor(self, rhs: Self) -> Self {
1598 Self(self.0 | rhs.0)
1599 }
1600}
1601impl core::ops::BitOrAssign for AttachmentDescriptionFlagBits {
1602 #[inline]
1603 fn bitor_assign(&mut self, rhs: Self) {
1604 self.0 |= rhs.0;
1605 }
1606}
1607impl core::ops::BitAnd for AttachmentDescriptionFlagBits {
1608 type Output = Self;
1609 #[inline]
1610 fn bitand(self, rhs: Self) -> Self {
1611 Self(self.0 & rhs.0)
1612 }
1613}
1614impl core::ops::BitAndAssign for AttachmentDescriptionFlagBits {
1615 #[inline]
1616 fn bitand_assign(&mut self, rhs: Self) {
1617 self.0 &= rhs.0;
1618 }
1619}
1620impl core::ops::BitXor for AttachmentDescriptionFlagBits {
1621 type Output = Self;
1622 #[inline]
1623 fn bitxor(self, rhs: Self) -> Self {
1624 Self(self.0 ^ rhs.0)
1625 }
1626}
1627impl core::ops::BitXorAssign for AttachmentDescriptionFlagBits {
1628 #[inline]
1629 fn bitxor_assign(&mut self, rhs: Self) {
1630 self.0 ^= rhs.0;
1631 }
1632}
1633impl core::ops::Not for AttachmentDescriptionFlagBits {
1634 type Output = Self;
1635 #[inline]
1636 fn not(self) -> Self {
1637 Self(!self.0)
1638 }
1639}
1640impl core::fmt::Debug for AttachmentDescriptionFlagBits {
1641 #[allow(unused_mut, unused_variables)]
1642 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1643 let mut first = true;
1644 let mut remaining = self.0;
1645 if remaining & Self::MAY_ALIAS.0 != 0 {
1646 if !first {
1647 f.write_str(" | ")?;
1648 }
1649 f.write_str("MAY_ALIAS")?;
1650 remaining &= !Self::MAY_ALIAS.0;
1651 first = false;
1652 }
1653 if remaining & Self::RESOLVE_SKIP_TRANSFER_FUNCTION.0 != 0 {
1654 if !first {
1655 f.write_str(" | ")?;
1656 }
1657 f.write_str("RESOLVE_SKIP_TRANSFER_FUNCTION")?;
1658 remaining &= !Self::RESOLVE_SKIP_TRANSFER_FUNCTION.0;
1659 first = false;
1660 }
1661 if remaining & Self::RESOLVE_ENABLE_TRANSFER_FUNCTION.0 != 0 {
1662 if !first {
1663 f.write_str(" | ")?;
1664 }
1665 f.write_str("RESOLVE_ENABLE_TRANSFER_FUNCTION")?;
1666 remaining &= !Self::RESOLVE_ENABLE_TRANSFER_FUNCTION.0;
1667 first = false;
1668 }
1669 if remaining != 0u32 {
1670 if !first {
1671 f.write_str(" | ")?;
1672 }
1673 write!(f, "{:#x}", remaining)?;
1674 } else if first {
1675 f.write_str("(empty)")?;
1676 }
1677 Ok(())
1678 }
1679}
1680#[repr(transparent)]
1682#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1683#[doc(alias = "VkBufferCreateFlagBits")]
1684pub struct BufferCreateFlagBits(u32);
1685impl BufferCreateFlagBits {
1686 #[inline]
1687 pub const fn empty() -> Self {
1688 Self(0u32)
1689 }
1690 #[inline]
1691 pub const fn from_raw(value: u32) -> Self {
1692 Self(value)
1693 }
1694 #[inline]
1695 pub const fn as_raw(self) -> u32 {
1696 self.0
1697 }
1698 #[inline]
1699 pub const fn is_empty(self) -> bool {
1700 self.0 == 0u32
1701 }
1702 #[inline]
1703 pub const fn contains(self, other: Self) -> bool {
1704 (self.0 & other.0) == other.0
1705 }
1706 #[inline]
1707 pub const fn all() -> Self {
1708 Self(127u32)
1709 }
1710 pub const SPARSE_BINDING: Self = Self(1u32);
1712 pub const SPARSE_RESIDENCY: Self = Self(2u32);
1714 pub const SPARSE_ALIASED: Self = Self(4u32);
1716 pub const PROTECTED: Self = Self(8u32);
1718 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(16u32);
1720 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(32u32);
1722 pub const VIDEO_PROFILE_INDEPENDENT: Self = Self(64u32);
1724}
1725impl core::ops::BitOr for BufferCreateFlagBits {
1726 type Output = Self;
1727 #[inline]
1728 fn bitor(self, rhs: Self) -> Self {
1729 Self(self.0 | rhs.0)
1730 }
1731}
1732impl core::ops::BitOrAssign for BufferCreateFlagBits {
1733 #[inline]
1734 fn bitor_assign(&mut self, rhs: Self) {
1735 self.0 |= rhs.0;
1736 }
1737}
1738impl core::ops::BitAnd for BufferCreateFlagBits {
1739 type Output = Self;
1740 #[inline]
1741 fn bitand(self, rhs: Self) -> Self {
1742 Self(self.0 & rhs.0)
1743 }
1744}
1745impl core::ops::BitAndAssign for BufferCreateFlagBits {
1746 #[inline]
1747 fn bitand_assign(&mut self, rhs: Self) {
1748 self.0 &= rhs.0;
1749 }
1750}
1751impl core::ops::BitXor for BufferCreateFlagBits {
1752 type Output = Self;
1753 #[inline]
1754 fn bitxor(self, rhs: Self) -> Self {
1755 Self(self.0 ^ rhs.0)
1756 }
1757}
1758impl core::ops::BitXorAssign for BufferCreateFlagBits {
1759 #[inline]
1760 fn bitxor_assign(&mut self, rhs: Self) {
1761 self.0 ^= rhs.0;
1762 }
1763}
1764impl core::ops::Not for BufferCreateFlagBits {
1765 type Output = Self;
1766 #[inline]
1767 fn not(self) -> Self {
1768 Self(!self.0)
1769 }
1770}
1771impl core::fmt::Debug for BufferCreateFlagBits {
1772 #[allow(unused_mut, unused_variables)]
1773 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1774 let mut first = true;
1775 let mut remaining = self.0;
1776 if remaining & Self::SPARSE_BINDING.0 != 0 {
1777 if !first {
1778 f.write_str(" | ")?;
1779 }
1780 f.write_str("SPARSE_BINDING")?;
1781 remaining &= !Self::SPARSE_BINDING.0;
1782 first = false;
1783 }
1784 if remaining & Self::SPARSE_RESIDENCY.0 != 0 {
1785 if !first {
1786 f.write_str(" | ")?;
1787 }
1788 f.write_str("SPARSE_RESIDENCY")?;
1789 remaining &= !Self::SPARSE_RESIDENCY.0;
1790 first = false;
1791 }
1792 if remaining & Self::SPARSE_ALIASED.0 != 0 {
1793 if !first {
1794 f.write_str(" | ")?;
1795 }
1796 f.write_str("SPARSE_ALIASED")?;
1797 remaining &= !Self::SPARSE_ALIASED.0;
1798 first = false;
1799 }
1800 if remaining & Self::PROTECTED.0 != 0 {
1801 if !first {
1802 f.write_str(" | ")?;
1803 }
1804 f.write_str("PROTECTED")?;
1805 remaining &= !Self::PROTECTED.0;
1806 first = false;
1807 }
1808 if remaining & Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0 != 0 {
1809 if !first {
1810 f.write_str(" | ")?;
1811 }
1812 f.write_str("DEVICE_ADDRESS_CAPTURE_REPLAY")?;
1813 remaining &= !Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0;
1814 first = false;
1815 }
1816 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0 != 0 {
1817 if !first {
1818 f.write_str(" | ")?;
1819 }
1820 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY")?;
1821 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0;
1822 first = false;
1823 }
1824 if remaining & Self::VIDEO_PROFILE_INDEPENDENT.0 != 0 {
1825 if !first {
1826 f.write_str(" | ")?;
1827 }
1828 f.write_str("VIDEO_PROFILE_INDEPENDENT")?;
1829 remaining &= !Self::VIDEO_PROFILE_INDEPENDENT.0;
1830 first = false;
1831 }
1832 if remaining != 0u32 {
1833 if !first {
1834 f.write_str(" | ")?;
1835 }
1836 write!(f, "{:#x}", remaining)?;
1837 } else if first {
1838 f.write_str("(empty)")?;
1839 }
1840 Ok(())
1841 }
1842}
1843#[repr(transparent)]
1845#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
1846#[doc(alias = "VkBufferUsageFlagBits")]
1847pub struct BufferUsageFlagBits(u32);
1848impl BufferUsageFlagBits {
1849 #[inline]
1850 pub const fn empty() -> Self {
1851 Self(0u32)
1852 }
1853 #[inline]
1854 pub const fn from_raw(value: u32) -> Self {
1855 Self(value)
1856 }
1857 #[inline]
1858 pub const fn as_raw(self) -> u32 {
1859 self.0
1860 }
1861 #[inline]
1862 pub const fn is_empty(self) -> bool {
1863 self.0 == 0u32
1864 }
1865 #[inline]
1866 pub const fn contains(self, other: Self) -> bool {
1867 (self.0 & other.0) == other.0
1868 }
1869 #[inline]
1870 pub const fn all() -> Self {
1871 Self(536608767u32)
1872 }
1873 pub const TRANSFER_SRC: Self = Self(1u32);
1875 pub const TRANSFER_DST: Self = Self(2u32);
1877 pub const UNIFORM_TEXEL_BUFFER: Self = Self(4u32);
1879 pub const STORAGE_TEXEL_BUFFER: Self = Self(8u32);
1881 pub const UNIFORM_BUFFER: Self = Self(16u32);
1883 pub const STORAGE_BUFFER: Self = Self(32u32);
1885 pub const INDEX_BUFFER: Self = Self(64u32);
1887 pub const VERTEX_BUFFER: Self = Self(128u32);
1889 pub const INDIRECT_BUFFER: Self = Self(256u32);
1891 pub const SHADER_DEVICE_ADDRESS: Self = Self(131072u32);
1893 pub const VIDEO_DECODE_SRC: Self = Self(8192u32);
1895 pub const VIDEO_DECODE_DST: Self = Self(16384u32);
1897 pub const TRANSFORM_FEEDBACK_BUFFER: Self = Self(2048u32);
1899 pub const TRANSFORM_FEEDBACK_COUNTER_BUFFER: Self = Self(4096u32);
1901 pub const CONDITIONAL_RENDERING: Self = Self(512u32);
1903 pub const EXECUTION_GRAPH_SCRATCH_BIT: Self = Self(33554432u32);
1905 pub const DESCRIPTOR_HEAP: Self = Self(268435456u32);
1907 pub const ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY: Self = Self(524288u32);
1909 pub const ACCELERATION_STRUCTURE_STORAGE: Self = Self(1048576u32);
1911 pub const SHADER_BINDING_TABLE: Self = Self(1024u32);
1913 pub const RAY_TRACING: Self = Self::SHADER_BINDING_TABLE;
1914 pub const VIDEO_ENCODE_DST: Self = Self(32768u32);
1916 pub const VIDEO_ENCODE_SRC: Self = Self(65536u32);
1918 pub const SAMPLER_DESCRIPTOR_BUFFER: Self = Self(2097152u32);
1920 pub const RESOURCE_DESCRIPTOR_BUFFER: Self = Self(4194304u32);
1922 pub const PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER: Self = Self(67108864u32);
1924 pub const MICROMAP_BUILD_INPUT_READ_ONLY: Self = Self(8388608u32);
1926 pub const MICROMAP_STORAGE: Self = Self(16777216u32);
1928 pub const TILE_MEMORY_BIT: Self = Self(134217728u32);
1930}
1931impl core::ops::BitOr for BufferUsageFlagBits {
1932 type Output = Self;
1933 #[inline]
1934 fn bitor(self, rhs: Self) -> Self {
1935 Self(self.0 | rhs.0)
1936 }
1937}
1938impl core::ops::BitOrAssign for BufferUsageFlagBits {
1939 #[inline]
1940 fn bitor_assign(&mut self, rhs: Self) {
1941 self.0 |= rhs.0;
1942 }
1943}
1944impl core::ops::BitAnd for BufferUsageFlagBits {
1945 type Output = Self;
1946 #[inline]
1947 fn bitand(self, rhs: Self) -> Self {
1948 Self(self.0 & rhs.0)
1949 }
1950}
1951impl core::ops::BitAndAssign for BufferUsageFlagBits {
1952 #[inline]
1953 fn bitand_assign(&mut self, rhs: Self) {
1954 self.0 &= rhs.0;
1955 }
1956}
1957impl core::ops::BitXor for BufferUsageFlagBits {
1958 type Output = Self;
1959 #[inline]
1960 fn bitxor(self, rhs: Self) -> Self {
1961 Self(self.0 ^ rhs.0)
1962 }
1963}
1964impl core::ops::BitXorAssign for BufferUsageFlagBits {
1965 #[inline]
1966 fn bitxor_assign(&mut self, rhs: Self) {
1967 self.0 ^= rhs.0;
1968 }
1969}
1970impl core::ops::Not for BufferUsageFlagBits {
1971 type Output = Self;
1972 #[inline]
1973 fn not(self) -> Self {
1974 Self(!self.0)
1975 }
1976}
1977impl core::fmt::Debug for BufferUsageFlagBits {
1978 #[allow(unused_mut, unused_variables)]
1979 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
1980 let mut first = true;
1981 let mut remaining = self.0;
1982 if remaining & Self::TRANSFER_SRC.0 != 0 {
1983 if !first {
1984 f.write_str(" | ")?;
1985 }
1986 f.write_str("TRANSFER_SRC")?;
1987 remaining &= !Self::TRANSFER_SRC.0;
1988 first = false;
1989 }
1990 if remaining & Self::TRANSFER_DST.0 != 0 {
1991 if !first {
1992 f.write_str(" | ")?;
1993 }
1994 f.write_str("TRANSFER_DST")?;
1995 remaining &= !Self::TRANSFER_DST.0;
1996 first = false;
1997 }
1998 if remaining & Self::UNIFORM_TEXEL_BUFFER.0 != 0 {
1999 if !first {
2000 f.write_str(" | ")?;
2001 }
2002 f.write_str("UNIFORM_TEXEL_BUFFER")?;
2003 remaining &= !Self::UNIFORM_TEXEL_BUFFER.0;
2004 first = false;
2005 }
2006 if remaining & Self::STORAGE_TEXEL_BUFFER.0 != 0 {
2007 if !first {
2008 f.write_str(" | ")?;
2009 }
2010 f.write_str("STORAGE_TEXEL_BUFFER")?;
2011 remaining &= !Self::STORAGE_TEXEL_BUFFER.0;
2012 first = false;
2013 }
2014 if remaining & Self::UNIFORM_BUFFER.0 != 0 {
2015 if !first {
2016 f.write_str(" | ")?;
2017 }
2018 f.write_str("UNIFORM_BUFFER")?;
2019 remaining &= !Self::UNIFORM_BUFFER.0;
2020 first = false;
2021 }
2022 if remaining & Self::STORAGE_BUFFER.0 != 0 {
2023 if !first {
2024 f.write_str(" | ")?;
2025 }
2026 f.write_str("STORAGE_BUFFER")?;
2027 remaining &= !Self::STORAGE_BUFFER.0;
2028 first = false;
2029 }
2030 if remaining & Self::INDEX_BUFFER.0 != 0 {
2031 if !first {
2032 f.write_str(" | ")?;
2033 }
2034 f.write_str("INDEX_BUFFER")?;
2035 remaining &= !Self::INDEX_BUFFER.0;
2036 first = false;
2037 }
2038 if remaining & Self::VERTEX_BUFFER.0 != 0 {
2039 if !first {
2040 f.write_str(" | ")?;
2041 }
2042 f.write_str("VERTEX_BUFFER")?;
2043 remaining &= !Self::VERTEX_BUFFER.0;
2044 first = false;
2045 }
2046 if remaining & Self::INDIRECT_BUFFER.0 != 0 {
2047 if !first {
2048 f.write_str(" | ")?;
2049 }
2050 f.write_str("INDIRECT_BUFFER")?;
2051 remaining &= !Self::INDIRECT_BUFFER.0;
2052 first = false;
2053 }
2054 if remaining & Self::SHADER_DEVICE_ADDRESS.0 != 0 {
2055 if !first {
2056 f.write_str(" | ")?;
2057 }
2058 f.write_str("SHADER_DEVICE_ADDRESS")?;
2059 remaining &= !Self::SHADER_DEVICE_ADDRESS.0;
2060 first = false;
2061 }
2062 if remaining & Self::VIDEO_DECODE_SRC.0 != 0 {
2063 if !first {
2064 f.write_str(" | ")?;
2065 }
2066 f.write_str("VIDEO_DECODE_SRC")?;
2067 remaining &= !Self::VIDEO_DECODE_SRC.0;
2068 first = false;
2069 }
2070 if remaining & Self::VIDEO_DECODE_DST.0 != 0 {
2071 if !first {
2072 f.write_str(" | ")?;
2073 }
2074 f.write_str("VIDEO_DECODE_DST")?;
2075 remaining &= !Self::VIDEO_DECODE_DST.0;
2076 first = false;
2077 }
2078 if remaining & Self::TRANSFORM_FEEDBACK_BUFFER.0 != 0 {
2079 if !first {
2080 f.write_str(" | ")?;
2081 }
2082 f.write_str("TRANSFORM_FEEDBACK_BUFFER")?;
2083 remaining &= !Self::TRANSFORM_FEEDBACK_BUFFER.0;
2084 first = false;
2085 }
2086 if remaining & Self::TRANSFORM_FEEDBACK_COUNTER_BUFFER.0 != 0 {
2087 if !first {
2088 f.write_str(" | ")?;
2089 }
2090 f.write_str("TRANSFORM_FEEDBACK_COUNTER_BUFFER")?;
2091 remaining &= !Self::TRANSFORM_FEEDBACK_COUNTER_BUFFER.0;
2092 first = false;
2093 }
2094 if remaining & Self::CONDITIONAL_RENDERING.0 != 0 {
2095 if !first {
2096 f.write_str(" | ")?;
2097 }
2098 f.write_str("CONDITIONAL_RENDERING")?;
2099 remaining &= !Self::CONDITIONAL_RENDERING.0;
2100 first = false;
2101 }
2102 if remaining & Self::EXECUTION_GRAPH_SCRATCH_BIT.0 != 0 {
2103 if !first {
2104 f.write_str(" | ")?;
2105 }
2106 f.write_str("EXECUTION_GRAPH_SCRATCH_BIT")?;
2107 remaining &= !Self::EXECUTION_GRAPH_SCRATCH_BIT.0;
2108 first = false;
2109 }
2110 if remaining & Self::DESCRIPTOR_HEAP.0 != 0 {
2111 if !first {
2112 f.write_str(" | ")?;
2113 }
2114 f.write_str("DESCRIPTOR_HEAP")?;
2115 remaining &= !Self::DESCRIPTOR_HEAP.0;
2116 first = false;
2117 }
2118 if remaining & Self::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0 != 0 {
2119 if !first {
2120 f.write_str(" | ")?;
2121 }
2122 f.write_str("ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY")?;
2123 remaining &= !Self::ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0;
2124 first = false;
2125 }
2126 if remaining & Self::ACCELERATION_STRUCTURE_STORAGE.0 != 0 {
2127 if !first {
2128 f.write_str(" | ")?;
2129 }
2130 f.write_str("ACCELERATION_STRUCTURE_STORAGE")?;
2131 remaining &= !Self::ACCELERATION_STRUCTURE_STORAGE.0;
2132 first = false;
2133 }
2134 if remaining & Self::SHADER_BINDING_TABLE.0 != 0 {
2135 if !first {
2136 f.write_str(" | ")?;
2137 }
2138 f.write_str("SHADER_BINDING_TABLE")?;
2139 remaining &= !Self::SHADER_BINDING_TABLE.0;
2140 first = false;
2141 }
2142 if remaining & Self::VIDEO_ENCODE_DST.0 != 0 {
2143 if !first {
2144 f.write_str(" | ")?;
2145 }
2146 f.write_str("VIDEO_ENCODE_DST")?;
2147 remaining &= !Self::VIDEO_ENCODE_DST.0;
2148 first = false;
2149 }
2150 if remaining & Self::VIDEO_ENCODE_SRC.0 != 0 {
2151 if !first {
2152 f.write_str(" | ")?;
2153 }
2154 f.write_str("VIDEO_ENCODE_SRC")?;
2155 remaining &= !Self::VIDEO_ENCODE_SRC.0;
2156 first = false;
2157 }
2158 if remaining & Self::SAMPLER_DESCRIPTOR_BUFFER.0 != 0 {
2159 if !first {
2160 f.write_str(" | ")?;
2161 }
2162 f.write_str("SAMPLER_DESCRIPTOR_BUFFER")?;
2163 remaining &= !Self::SAMPLER_DESCRIPTOR_BUFFER.0;
2164 first = false;
2165 }
2166 if remaining & Self::RESOURCE_DESCRIPTOR_BUFFER.0 != 0 {
2167 if !first {
2168 f.write_str(" | ")?;
2169 }
2170 f.write_str("RESOURCE_DESCRIPTOR_BUFFER")?;
2171 remaining &= !Self::RESOURCE_DESCRIPTOR_BUFFER.0;
2172 first = false;
2173 }
2174 if remaining & Self::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER.0 != 0 {
2175 if !first {
2176 f.write_str(" | ")?;
2177 }
2178 f.write_str("PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER")?;
2179 remaining &= !Self::PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER.0;
2180 first = false;
2181 }
2182 if remaining & Self::MICROMAP_BUILD_INPUT_READ_ONLY.0 != 0 {
2183 if !first {
2184 f.write_str(" | ")?;
2185 }
2186 f.write_str("MICROMAP_BUILD_INPUT_READ_ONLY")?;
2187 remaining &= !Self::MICROMAP_BUILD_INPUT_READ_ONLY.0;
2188 first = false;
2189 }
2190 if remaining & Self::MICROMAP_STORAGE.0 != 0 {
2191 if !first {
2192 f.write_str(" | ")?;
2193 }
2194 f.write_str("MICROMAP_STORAGE")?;
2195 remaining &= !Self::MICROMAP_STORAGE.0;
2196 first = false;
2197 }
2198 if remaining & Self::TILE_MEMORY_BIT.0 != 0 {
2199 if !first {
2200 f.write_str(" | ")?;
2201 }
2202 f.write_str("TILE_MEMORY_BIT")?;
2203 remaining &= !Self::TILE_MEMORY_BIT.0;
2204 first = false;
2205 }
2206 if remaining != 0u32 {
2207 if !first {
2208 f.write_str(" | ")?;
2209 }
2210 write!(f, "{:#x}", remaining)?;
2211 } else if first {
2212 f.write_str("(empty)")?;
2213 }
2214 Ok(())
2215 }
2216}
2217#[repr(transparent)]
2219#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
2220#[doc(alias = "VkBufferUsageFlagBits2")]
2221pub struct BufferUsageFlagBits2(u64);
2222impl BufferUsageFlagBits2 {
2223 #[inline]
2224 pub const fn empty() -> Self {
2225 Self(0u64)
2226 }
2227 #[inline]
2228 pub const fn from_raw(value: u64) -> Self {
2229 Self(value)
2230 }
2231 #[inline]
2232 pub const fn as_raw(self) -> u64 {
2233 self.0
2234 }
2235 #[inline]
2236 pub const fn is_empty(self) -> bool {
2237 self.0 == 0u64
2238 }
2239 #[inline]
2240 pub const fn contains(self, other: Self) -> bool {
2241 (self.0 & other.0) == other.0
2242 }
2243 #[inline]
2244 pub const fn all() -> Self {
2245 Self(16105865215u64)
2246 }
2247 pub const _2_TRANSFER_SRC: Self = Self(1u64);
2249 pub const _2_TRANSFER_DST: Self = Self(2u64);
2251 pub const _2_UNIFORM_TEXEL_BUFFER: Self = Self(4u64);
2253 pub const _2_STORAGE_TEXEL_BUFFER: Self = Self(8u64);
2255 pub const _2_UNIFORM_BUFFER: Self = Self(16u64);
2257 pub const _2_STORAGE_BUFFER: Self = Self(32u64);
2259 pub const _2_INDEX_BUFFER: Self = Self(64u64);
2261 pub const _2_VERTEX_BUFFER: Self = Self(128u64);
2263 pub const _2_INDIRECT_BUFFER: Self = Self(256u64);
2265 pub const _2_SHADER_DEVICE_ADDRESS: Self = Self(131072u64);
2267 pub const _2_EXECUTION_GRAPH_SCRATCH_BIT: Self = Self(33554432u64);
2269 pub const _2_DESCRIPTOR_HEAP: Self = Self(268435456u64);
2271 pub const _2_CONDITIONAL_RENDERING: Self = Self(512u64);
2273 pub const _2_SHADER_BINDING_TABLE: Self = Self(1024u64);
2275 pub const _2_RAY_TRACING: Self = Self::_2_SHADER_BINDING_TABLE;
2276 pub const _2_TRANSFORM_FEEDBACK_BUFFER: Self = Self(2048u64);
2278 pub const _2_TRANSFORM_FEEDBACK_COUNTER_BUFFER: Self = Self(4096u64);
2280 pub const _2_VIDEO_DECODE_SRC: Self = Self(8192u64);
2282 pub const _2_VIDEO_DECODE_DST: Self = Self(16384u64);
2284 pub const _2_VIDEO_ENCODE_DST: Self = Self(32768u64);
2286 pub const _2_VIDEO_ENCODE_SRC: Self = Self(65536u64);
2288 pub const _2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY: Self = Self(524288u64);
2290 pub const _2_ACCELERATION_STRUCTURE_STORAGE: Self = Self(1048576u64);
2292 pub const _2_SAMPLER_DESCRIPTOR_BUFFER: Self = Self(2097152u64);
2294 pub const _2_RESOURCE_DESCRIPTOR_BUFFER: Self = Self(4194304u64);
2296 pub const _2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER: Self = Self(67108864u64);
2298 pub const _2_MICROMAP_BUILD_INPUT_READ_ONLY: Self = Self(8388608u64);
2300 pub const _2_MICROMAP_STORAGE: Self = Self(16777216u64);
2302 pub const _2_COMPRESSED_DATA_DGF1_BIT: Self = Self(8589934592u64);
2304 pub const _2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT: Self = Self(536870912u64);
2306 pub const _2_TILE_MEMORY_BIT: Self = Self(134217728u64);
2308 pub const _2_MEMORY_DECOMPRESSION: Self = Self(4294967296u64);
2310 pub const _2_PREPROCESS_BUFFER: Self = Self(2147483648u64);
2312}
2313impl core::ops::BitOr for BufferUsageFlagBits2 {
2314 type Output = Self;
2315 #[inline]
2316 fn bitor(self, rhs: Self) -> Self {
2317 Self(self.0 | rhs.0)
2318 }
2319}
2320impl core::ops::BitOrAssign for BufferUsageFlagBits2 {
2321 #[inline]
2322 fn bitor_assign(&mut self, rhs: Self) {
2323 self.0 |= rhs.0;
2324 }
2325}
2326impl core::ops::BitAnd for BufferUsageFlagBits2 {
2327 type Output = Self;
2328 #[inline]
2329 fn bitand(self, rhs: Self) -> Self {
2330 Self(self.0 & rhs.0)
2331 }
2332}
2333impl core::ops::BitAndAssign for BufferUsageFlagBits2 {
2334 #[inline]
2335 fn bitand_assign(&mut self, rhs: Self) {
2336 self.0 &= rhs.0;
2337 }
2338}
2339impl core::ops::BitXor for BufferUsageFlagBits2 {
2340 type Output = Self;
2341 #[inline]
2342 fn bitxor(self, rhs: Self) -> Self {
2343 Self(self.0 ^ rhs.0)
2344 }
2345}
2346impl core::ops::BitXorAssign for BufferUsageFlagBits2 {
2347 #[inline]
2348 fn bitxor_assign(&mut self, rhs: Self) {
2349 self.0 ^= rhs.0;
2350 }
2351}
2352impl core::ops::Not for BufferUsageFlagBits2 {
2353 type Output = Self;
2354 #[inline]
2355 fn not(self) -> Self {
2356 Self(!self.0)
2357 }
2358}
2359impl core::fmt::Debug for BufferUsageFlagBits2 {
2360 #[allow(unused_mut, unused_variables)]
2361 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2362 let mut first = true;
2363 let mut remaining = self.0;
2364 if remaining & Self::_2_TRANSFER_SRC.0 != 0 {
2365 if !first {
2366 f.write_str(" | ")?;
2367 }
2368 f.write_str("_2_TRANSFER_SRC")?;
2369 remaining &= !Self::_2_TRANSFER_SRC.0;
2370 first = false;
2371 }
2372 if remaining & Self::_2_TRANSFER_DST.0 != 0 {
2373 if !first {
2374 f.write_str(" | ")?;
2375 }
2376 f.write_str("_2_TRANSFER_DST")?;
2377 remaining &= !Self::_2_TRANSFER_DST.0;
2378 first = false;
2379 }
2380 if remaining & Self::_2_UNIFORM_TEXEL_BUFFER.0 != 0 {
2381 if !first {
2382 f.write_str(" | ")?;
2383 }
2384 f.write_str("_2_UNIFORM_TEXEL_BUFFER")?;
2385 remaining &= !Self::_2_UNIFORM_TEXEL_BUFFER.0;
2386 first = false;
2387 }
2388 if remaining & Self::_2_STORAGE_TEXEL_BUFFER.0 != 0 {
2389 if !first {
2390 f.write_str(" | ")?;
2391 }
2392 f.write_str("_2_STORAGE_TEXEL_BUFFER")?;
2393 remaining &= !Self::_2_STORAGE_TEXEL_BUFFER.0;
2394 first = false;
2395 }
2396 if remaining & Self::_2_UNIFORM_BUFFER.0 != 0 {
2397 if !first {
2398 f.write_str(" | ")?;
2399 }
2400 f.write_str("_2_UNIFORM_BUFFER")?;
2401 remaining &= !Self::_2_UNIFORM_BUFFER.0;
2402 first = false;
2403 }
2404 if remaining & Self::_2_STORAGE_BUFFER.0 != 0 {
2405 if !first {
2406 f.write_str(" | ")?;
2407 }
2408 f.write_str("_2_STORAGE_BUFFER")?;
2409 remaining &= !Self::_2_STORAGE_BUFFER.0;
2410 first = false;
2411 }
2412 if remaining & Self::_2_INDEX_BUFFER.0 != 0 {
2413 if !first {
2414 f.write_str(" | ")?;
2415 }
2416 f.write_str("_2_INDEX_BUFFER")?;
2417 remaining &= !Self::_2_INDEX_BUFFER.0;
2418 first = false;
2419 }
2420 if remaining & Self::_2_VERTEX_BUFFER.0 != 0 {
2421 if !first {
2422 f.write_str(" | ")?;
2423 }
2424 f.write_str("_2_VERTEX_BUFFER")?;
2425 remaining &= !Self::_2_VERTEX_BUFFER.0;
2426 first = false;
2427 }
2428 if remaining & Self::_2_INDIRECT_BUFFER.0 != 0 {
2429 if !first {
2430 f.write_str(" | ")?;
2431 }
2432 f.write_str("_2_INDIRECT_BUFFER")?;
2433 remaining &= !Self::_2_INDIRECT_BUFFER.0;
2434 first = false;
2435 }
2436 if remaining & Self::_2_SHADER_DEVICE_ADDRESS.0 != 0 {
2437 if !first {
2438 f.write_str(" | ")?;
2439 }
2440 f.write_str("_2_SHADER_DEVICE_ADDRESS")?;
2441 remaining &= !Self::_2_SHADER_DEVICE_ADDRESS.0;
2442 first = false;
2443 }
2444 if remaining & Self::_2_EXECUTION_GRAPH_SCRATCH_BIT.0 != 0 {
2445 if !first {
2446 f.write_str(" | ")?;
2447 }
2448 f.write_str("_2_EXECUTION_GRAPH_SCRATCH_BIT")?;
2449 remaining &= !Self::_2_EXECUTION_GRAPH_SCRATCH_BIT.0;
2450 first = false;
2451 }
2452 if remaining & Self::_2_DESCRIPTOR_HEAP.0 != 0 {
2453 if !first {
2454 f.write_str(" | ")?;
2455 }
2456 f.write_str("_2_DESCRIPTOR_HEAP")?;
2457 remaining &= !Self::_2_DESCRIPTOR_HEAP.0;
2458 first = false;
2459 }
2460 if remaining & Self::_2_CONDITIONAL_RENDERING.0 != 0 {
2461 if !first {
2462 f.write_str(" | ")?;
2463 }
2464 f.write_str("_2_CONDITIONAL_RENDERING")?;
2465 remaining &= !Self::_2_CONDITIONAL_RENDERING.0;
2466 first = false;
2467 }
2468 if remaining & Self::_2_SHADER_BINDING_TABLE.0 != 0 {
2469 if !first {
2470 f.write_str(" | ")?;
2471 }
2472 f.write_str("_2_SHADER_BINDING_TABLE")?;
2473 remaining &= !Self::_2_SHADER_BINDING_TABLE.0;
2474 first = false;
2475 }
2476 if remaining & Self::_2_TRANSFORM_FEEDBACK_BUFFER.0 != 0 {
2477 if !first {
2478 f.write_str(" | ")?;
2479 }
2480 f.write_str("_2_TRANSFORM_FEEDBACK_BUFFER")?;
2481 remaining &= !Self::_2_TRANSFORM_FEEDBACK_BUFFER.0;
2482 first = false;
2483 }
2484 if remaining & Self::_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER.0 != 0 {
2485 if !first {
2486 f.write_str(" | ")?;
2487 }
2488 f.write_str("_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER")?;
2489 remaining &= !Self::_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER.0;
2490 first = false;
2491 }
2492 if remaining & Self::_2_VIDEO_DECODE_SRC.0 != 0 {
2493 if !first {
2494 f.write_str(" | ")?;
2495 }
2496 f.write_str("_2_VIDEO_DECODE_SRC")?;
2497 remaining &= !Self::_2_VIDEO_DECODE_SRC.0;
2498 first = false;
2499 }
2500 if remaining & Self::_2_VIDEO_DECODE_DST.0 != 0 {
2501 if !first {
2502 f.write_str(" | ")?;
2503 }
2504 f.write_str("_2_VIDEO_DECODE_DST")?;
2505 remaining &= !Self::_2_VIDEO_DECODE_DST.0;
2506 first = false;
2507 }
2508 if remaining & Self::_2_VIDEO_ENCODE_DST.0 != 0 {
2509 if !first {
2510 f.write_str(" | ")?;
2511 }
2512 f.write_str("_2_VIDEO_ENCODE_DST")?;
2513 remaining &= !Self::_2_VIDEO_ENCODE_DST.0;
2514 first = false;
2515 }
2516 if remaining & Self::_2_VIDEO_ENCODE_SRC.0 != 0 {
2517 if !first {
2518 f.write_str(" | ")?;
2519 }
2520 f.write_str("_2_VIDEO_ENCODE_SRC")?;
2521 remaining &= !Self::_2_VIDEO_ENCODE_SRC.0;
2522 first = false;
2523 }
2524 if remaining & Self::_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0 != 0 {
2525 if !first {
2526 f.write_str(" | ")?;
2527 }
2528 f.write_str("_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY")?;
2529 remaining &= !Self::_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY.0;
2530 first = false;
2531 }
2532 if remaining & Self::_2_ACCELERATION_STRUCTURE_STORAGE.0 != 0 {
2533 if !first {
2534 f.write_str(" | ")?;
2535 }
2536 f.write_str("_2_ACCELERATION_STRUCTURE_STORAGE")?;
2537 remaining &= !Self::_2_ACCELERATION_STRUCTURE_STORAGE.0;
2538 first = false;
2539 }
2540 if remaining & Self::_2_SAMPLER_DESCRIPTOR_BUFFER.0 != 0 {
2541 if !first {
2542 f.write_str(" | ")?;
2543 }
2544 f.write_str("_2_SAMPLER_DESCRIPTOR_BUFFER")?;
2545 remaining &= !Self::_2_SAMPLER_DESCRIPTOR_BUFFER.0;
2546 first = false;
2547 }
2548 if remaining & Self::_2_RESOURCE_DESCRIPTOR_BUFFER.0 != 0 {
2549 if !first {
2550 f.write_str(" | ")?;
2551 }
2552 f.write_str("_2_RESOURCE_DESCRIPTOR_BUFFER")?;
2553 remaining &= !Self::_2_RESOURCE_DESCRIPTOR_BUFFER.0;
2554 first = false;
2555 }
2556 if remaining & Self::_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER.0 != 0 {
2557 if !first {
2558 f.write_str(" | ")?;
2559 }
2560 f.write_str("_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER")?;
2561 remaining &= !Self::_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER.0;
2562 first = false;
2563 }
2564 if remaining & Self::_2_MICROMAP_BUILD_INPUT_READ_ONLY.0 != 0 {
2565 if !first {
2566 f.write_str(" | ")?;
2567 }
2568 f.write_str("_2_MICROMAP_BUILD_INPUT_READ_ONLY")?;
2569 remaining &= !Self::_2_MICROMAP_BUILD_INPUT_READ_ONLY.0;
2570 first = false;
2571 }
2572 if remaining & Self::_2_MICROMAP_STORAGE.0 != 0 {
2573 if !first {
2574 f.write_str(" | ")?;
2575 }
2576 f.write_str("_2_MICROMAP_STORAGE")?;
2577 remaining &= !Self::_2_MICROMAP_STORAGE.0;
2578 first = false;
2579 }
2580 if remaining & Self::_2_COMPRESSED_DATA_DGF1_BIT.0 != 0 {
2581 if !first {
2582 f.write_str(" | ")?;
2583 }
2584 f.write_str("_2_COMPRESSED_DATA_DGF1_BIT")?;
2585 remaining &= !Self::_2_COMPRESSED_DATA_DGF1_BIT.0;
2586 first = false;
2587 }
2588 if remaining & Self::_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT.0 != 0 {
2589 if !first {
2590 f.write_str(" | ")?;
2591 }
2592 f.write_str("_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT")?;
2593 remaining &= !Self::_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT.0;
2594 first = false;
2595 }
2596 if remaining & Self::_2_TILE_MEMORY_BIT.0 != 0 {
2597 if !first {
2598 f.write_str(" | ")?;
2599 }
2600 f.write_str("_2_TILE_MEMORY_BIT")?;
2601 remaining &= !Self::_2_TILE_MEMORY_BIT.0;
2602 first = false;
2603 }
2604 if remaining & Self::_2_MEMORY_DECOMPRESSION.0 != 0 {
2605 if !first {
2606 f.write_str(" | ")?;
2607 }
2608 f.write_str("_2_MEMORY_DECOMPRESSION")?;
2609 remaining &= !Self::_2_MEMORY_DECOMPRESSION.0;
2610 first = false;
2611 }
2612 if remaining & Self::_2_PREPROCESS_BUFFER.0 != 0 {
2613 if !first {
2614 f.write_str(" | ")?;
2615 }
2616 f.write_str("_2_PREPROCESS_BUFFER")?;
2617 remaining &= !Self::_2_PREPROCESS_BUFFER.0;
2618 first = false;
2619 }
2620 if remaining != 0u64 {
2621 if !first {
2622 f.write_str(" | ")?;
2623 }
2624 write!(f, "{:#x}", remaining)?;
2625 } else if first {
2626 f.write_str("(empty)")?;
2627 }
2628 Ok(())
2629 }
2630}
2631#[repr(transparent)]
2633#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
2634#[doc(alias = "VkBuildAccelerationStructureFlagBitsKHR")]
2635pub struct BuildAccelerationStructureFlagBitsKHR(u32);
2636impl BuildAccelerationStructureFlagBitsKHR {
2637 #[inline]
2638 pub const fn empty() -> Self {
2639 Self(0u32)
2640 }
2641 #[inline]
2642 pub const fn from_raw(value: u32) -> Self {
2643 Self(value)
2644 }
2645 #[inline]
2646 pub const fn as_raw(self) -> u32 {
2647 self.0
2648 }
2649 #[inline]
2650 pub const fn is_empty(self) -> bool {
2651 self.0 == 0u32
2652 }
2653 #[inline]
2654 pub const fn contains(self, other: Self) -> bool {
2655 (self.0 & other.0) == other.0
2656 }
2657 #[inline]
2658 pub const fn all() -> Self {
2659 Self(7167u32)
2660 }
2661 pub const ALLOW_UPDATE: Self = Self(1u32);
2663 pub const ALLOW_COMPACTION: Self = Self(2u32);
2665 pub const PREFER_FAST_TRACE: Self = Self(4u32);
2667 pub const PREFER_FAST_BUILD: Self = Self(8u32);
2669 pub const LOW_MEMORY: Self = Self(16u32);
2671 pub const MOTION: Self = Self(32u32);
2673 pub const ALLOW_OPACITY_MICROMAP_UPDATE: Self = Self(64u32);
2675 pub const ALLOW_DISABLE_OPACITY_MICROMAPS: Self = Self(128u32);
2677 pub const ALLOW_OPACITY_MICROMAP_DATA_UPDATE: Self = Self(256u32);
2679 pub const ALLOW_DISPLACEMENT_MICROMAP_UPDATE: Self = Self(512u32);
2681 pub const ALLOW_DATA_ACCESS: Self = Self(2048u32);
2683 pub const ALLOW_CLUSTER_OPACITY_MICROMAPS: Self = Self(4096u32);
2685}
2686impl core::ops::BitOr for BuildAccelerationStructureFlagBitsKHR {
2687 type Output = Self;
2688 #[inline]
2689 fn bitor(self, rhs: Self) -> Self {
2690 Self(self.0 | rhs.0)
2691 }
2692}
2693impl core::ops::BitOrAssign for BuildAccelerationStructureFlagBitsKHR {
2694 #[inline]
2695 fn bitor_assign(&mut self, rhs: Self) {
2696 self.0 |= rhs.0;
2697 }
2698}
2699impl core::ops::BitAnd for BuildAccelerationStructureFlagBitsKHR {
2700 type Output = Self;
2701 #[inline]
2702 fn bitand(self, rhs: Self) -> Self {
2703 Self(self.0 & rhs.0)
2704 }
2705}
2706impl core::ops::BitAndAssign for BuildAccelerationStructureFlagBitsKHR {
2707 #[inline]
2708 fn bitand_assign(&mut self, rhs: Self) {
2709 self.0 &= rhs.0;
2710 }
2711}
2712impl core::ops::BitXor for BuildAccelerationStructureFlagBitsKHR {
2713 type Output = Self;
2714 #[inline]
2715 fn bitxor(self, rhs: Self) -> Self {
2716 Self(self.0 ^ rhs.0)
2717 }
2718}
2719impl core::ops::BitXorAssign for BuildAccelerationStructureFlagBitsKHR {
2720 #[inline]
2721 fn bitxor_assign(&mut self, rhs: Self) {
2722 self.0 ^= rhs.0;
2723 }
2724}
2725impl core::ops::Not for BuildAccelerationStructureFlagBitsKHR {
2726 type Output = Self;
2727 #[inline]
2728 fn not(self) -> Self {
2729 Self(!self.0)
2730 }
2731}
2732impl core::fmt::Debug for BuildAccelerationStructureFlagBitsKHR {
2733 #[allow(unused_mut, unused_variables)]
2734 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2735 let mut first = true;
2736 let mut remaining = self.0;
2737 if remaining & Self::ALLOW_UPDATE.0 != 0 {
2738 if !first {
2739 f.write_str(" | ")?;
2740 }
2741 f.write_str("ALLOW_UPDATE")?;
2742 remaining &= !Self::ALLOW_UPDATE.0;
2743 first = false;
2744 }
2745 if remaining & Self::ALLOW_COMPACTION.0 != 0 {
2746 if !first {
2747 f.write_str(" | ")?;
2748 }
2749 f.write_str("ALLOW_COMPACTION")?;
2750 remaining &= !Self::ALLOW_COMPACTION.0;
2751 first = false;
2752 }
2753 if remaining & Self::PREFER_FAST_TRACE.0 != 0 {
2754 if !first {
2755 f.write_str(" | ")?;
2756 }
2757 f.write_str("PREFER_FAST_TRACE")?;
2758 remaining &= !Self::PREFER_FAST_TRACE.0;
2759 first = false;
2760 }
2761 if remaining & Self::PREFER_FAST_BUILD.0 != 0 {
2762 if !first {
2763 f.write_str(" | ")?;
2764 }
2765 f.write_str("PREFER_FAST_BUILD")?;
2766 remaining &= !Self::PREFER_FAST_BUILD.0;
2767 first = false;
2768 }
2769 if remaining & Self::LOW_MEMORY.0 != 0 {
2770 if !first {
2771 f.write_str(" | ")?;
2772 }
2773 f.write_str("LOW_MEMORY")?;
2774 remaining &= !Self::LOW_MEMORY.0;
2775 first = false;
2776 }
2777 if remaining & Self::MOTION.0 != 0 {
2778 if !first {
2779 f.write_str(" | ")?;
2780 }
2781 f.write_str("MOTION")?;
2782 remaining &= !Self::MOTION.0;
2783 first = false;
2784 }
2785 if remaining & Self::ALLOW_OPACITY_MICROMAP_UPDATE.0 != 0 {
2786 if !first {
2787 f.write_str(" | ")?;
2788 }
2789 f.write_str("ALLOW_OPACITY_MICROMAP_UPDATE")?;
2790 remaining &= !Self::ALLOW_OPACITY_MICROMAP_UPDATE.0;
2791 first = false;
2792 }
2793 if remaining & Self::ALLOW_DISABLE_OPACITY_MICROMAPS.0 != 0 {
2794 if !first {
2795 f.write_str(" | ")?;
2796 }
2797 f.write_str("ALLOW_DISABLE_OPACITY_MICROMAPS")?;
2798 remaining &= !Self::ALLOW_DISABLE_OPACITY_MICROMAPS.0;
2799 first = false;
2800 }
2801 if remaining & Self::ALLOW_OPACITY_MICROMAP_DATA_UPDATE.0 != 0 {
2802 if !first {
2803 f.write_str(" | ")?;
2804 }
2805 f.write_str("ALLOW_OPACITY_MICROMAP_DATA_UPDATE")?;
2806 remaining &= !Self::ALLOW_OPACITY_MICROMAP_DATA_UPDATE.0;
2807 first = false;
2808 }
2809 if remaining & Self::ALLOW_DISPLACEMENT_MICROMAP_UPDATE.0 != 0 {
2810 if !first {
2811 f.write_str(" | ")?;
2812 }
2813 f.write_str("ALLOW_DISPLACEMENT_MICROMAP_UPDATE")?;
2814 remaining &= !Self::ALLOW_DISPLACEMENT_MICROMAP_UPDATE.0;
2815 first = false;
2816 }
2817 if remaining & Self::ALLOW_DATA_ACCESS.0 != 0 {
2818 if !first {
2819 f.write_str(" | ")?;
2820 }
2821 f.write_str("ALLOW_DATA_ACCESS")?;
2822 remaining &= !Self::ALLOW_DATA_ACCESS.0;
2823 first = false;
2824 }
2825 if remaining & Self::ALLOW_CLUSTER_OPACITY_MICROMAPS.0 != 0 {
2826 if !first {
2827 f.write_str(" | ")?;
2828 }
2829 f.write_str("ALLOW_CLUSTER_OPACITY_MICROMAPS")?;
2830 remaining &= !Self::ALLOW_CLUSTER_OPACITY_MICROMAPS.0;
2831 first = false;
2832 }
2833 if remaining != 0u32 {
2834 if !first {
2835 f.write_str(" | ")?;
2836 }
2837 write!(f, "{:#x}", remaining)?;
2838 } else if first {
2839 f.write_str("(empty)")?;
2840 }
2841 Ok(())
2842 }
2843}
2844#[repr(transparent)]
2846#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
2847#[doc(alias = "VkBuildMicromapFlagBitsEXT")]
2848pub struct BuildMicromapFlagBitsEXT(u32);
2849impl BuildMicromapFlagBitsEXT {
2850 #[inline]
2851 pub const fn empty() -> Self {
2852 Self(0u32)
2853 }
2854 #[inline]
2855 pub const fn from_raw(value: u32) -> Self {
2856 Self(value)
2857 }
2858 #[inline]
2859 pub const fn as_raw(self) -> u32 {
2860 self.0
2861 }
2862 #[inline]
2863 pub const fn is_empty(self) -> bool {
2864 self.0 == 0u32
2865 }
2866 #[inline]
2867 pub const fn contains(self, other: Self) -> bool {
2868 (self.0 & other.0) == other.0
2869 }
2870 #[inline]
2871 pub const fn all() -> Self {
2872 Self(7u32)
2873 }
2874 pub const PREFER_FAST_TRACE: Self = Self(1u32);
2876 pub const PREFER_FAST_BUILD: Self = Self(2u32);
2878 pub const ALLOW_COMPACTION: Self = Self(4u32);
2880}
2881impl core::ops::BitOr for BuildMicromapFlagBitsEXT {
2882 type Output = Self;
2883 #[inline]
2884 fn bitor(self, rhs: Self) -> Self {
2885 Self(self.0 | rhs.0)
2886 }
2887}
2888impl core::ops::BitOrAssign for BuildMicromapFlagBitsEXT {
2889 #[inline]
2890 fn bitor_assign(&mut self, rhs: Self) {
2891 self.0 |= rhs.0;
2892 }
2893}
2894impl core::ops::BitAnd for BuildMicromapFlagBitsEXT {
2895 type Output = Self;
2896 #[inline]
2897 fn bitand(self, rhs: Self) -> Self {
2898 Self(self.0 & rhs.0)
2899 }
2900}
2901impl core::ops::BitAndAssign for BuildMicromapFlagBitsEXT {
2902 #[inline]
2903 fn bitand_assign(&mut self, rhs: Self) {
2904 self.0 &= rhs.0;
2905 }
2906}
2907impl core::ops::BitXor for BuildMicromapFlagBitsEXT {
2908 type Output = Self;
2909 #[inline]
2910 fn bitxor(self, rhs: Self) -> Self {
2911 Self(self.0 ^ rhs.0)
2912 }
2913}
2914impl core::ops::BitXorAssign for BuildMicromapFlagBitsEXT {
2915 #[inline]
2916 fn bitxor_assign(&mut self, rhs: Self) {
2917 self.0 ^= rhs.0;
2918 }
2919}
2920impl core::ops::Not for BuildMicromapFlagBitsEXT {
2921 type Output = Self;
2922 #[inline]
2923 fn not(self) -> Self {
2924 Self(!self.0)
2925 }
2926}
2927impl core::fmt::Debug for BuildMicromapFlagBitsEXT {
2928 #[allow(unused_mut, unused_variables)]
2929 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
2930 let mut first = true;
2931 let mut remaining = self.0;
2932 if remaining & Self::PREFER_FAST_TRACE.0 != 0 {
2933 if !first {
2934 f.write_str(" | ")?;
2935 }
2936 f.write_str("PREFER_FAST_TRACE")?;
2937 remaining &= !Self::PREFER_FAST_TRACE.0;
2938 first = false;
2939 }
2940 if remaining & Self::PREFER_FAST_BUILD.0 != 0 {
2941 if !first {
2942 f.write_str(" | ")?;
2943 }
2944 f.write_str("PREFER_FAST_BUILD")?;
2945 remaining &= !Self::PREFER_FAST_BUILD.0;
2946 first = false;
2947 }
2948 if remaining & Self::ALLOW_COMPACTION.0 != 0 {
2949 if !first {
2950 f.write_str(" | ")?;
2951 }
2952 f.write_str("ALLOW_COMPACTION")?;
2953 remaining &= !Self::ALLOW_COMPACTION.0;
2954 first = false;
2955 }
2956 if remaining != 0u32 {
2957 if !first {
2958 f.write_str(" | ")?;
2959 }
2960 write!(f, "{:#x}", remaining)?;
2961 } else if first {
2962 f.write_str("(empty)")?;
2963 }
2964 Ok(())
2965 }
2966}
2967#[repr(transparent)]
2969#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
2970#[doc(alias = "VkClusterAccelerationStructureAddressResolutionFlagBitsNV")]
2971pub struct ClusterAccelerationStructureAddressResolutionFlagBitsNV(u32);
2972impl ClusterAccelerationStructureAddressResolutionFlagBitsNV {
2973 #[inline]
2974 pub const fn empty() -> Self {
2975 Self(0u32)
2976 }
2977 #[inline]
2978 pub const fn from_raw(value: u32) -> Self {
2979 Self(value)
2980 }
2981 #[inline]
2982 pub const fn as_raw(self) -> u32 {
2983 self.0
2984 }
2985 #[inline]
2986 pub const fn is_empty(self) -> bool {
2987 self.0 == 0u32
2988 }
2989 #[inline]
2990 pub const fn contains(self, other: Self) -> bool {
2991 (self.0 & other.0) == other.0
2992 }
2993 #[inline]
2994 pub const fn all() -> Self {
2995 Self(63u32)
2996 }
2997 pub const NONE: Self = Self(0u32);
2998 pub const INDIRECTED_DST_IMPLICIT_DATA: Self = Self(1u32);
3000 pub const INDIRECTED_SCRATCH_DATA: Self = Self(2u32);
3002 pub const INDIRECTED_DST_ADDRESS_ARRAY: Self = Self(4u32);
3004 pub const INDIRECTED_DST_SIZES_ARRAY: Self = Self(8u32);
3006 pub const INDIRECTED_SRC_INFOS_ARRAY: Self = Self(16u32);
3008 pub const INDIRECTED_SRC_INFOS_COUNT: Self = Self(32u32);
3010}
3011impl core::ops::BitOr for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3012 type Output = Self;
3013 #[inline]
3014 fn bitor(self, rhs: Self) -> Self {
3015 Self(self.0 | rhs.0)
3016 }
3017}
3018impl core::ops::BitOrAssign for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3019 #[inline]
3020 fn bitor_assign(&mut self, rhs: Self) {
3021 self.0 |= rhs.0;
3022 }
3023}
3024impl core::ops::BitAnd for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3025 type Output = Self;
3026 #[inline]
3027 fn bitand(self, rhs: Self) -> Self {
3028 Self(self.0 & rhs.0)
3029 }
3030}
3031impl core::ops::BitAndAssign
3032for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3033 #[inline]
3034 fn bitand_assign(&mut self, rhs: Self) {
3035 self.0 &= rhs.0;
3036 }
3037}
3038impl core::ops::BitXor for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3039 type Output = Self;
3040 #[inline]
3041 fn bitxor(self, rhs: Self) -> Self {
3042 Self(self.0 ^ rhs.0)
3043 }
3044}
3045impl core::ops::BitXorAssign
3046for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3047 #[inline]
3048 fn bitxor_assign(&mut self, rhs: Self) {
3049 self.0 ^= rhs.0;
3050 }
3051}
3052impl core::ops::Not for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3053 type Output = Self;
3054 #[inline]
3055 fn not(self) -> Self {
3056 Self(!self.0)
3057 }
3058}
3059impl core::fmt::Debug for ClusterAccelerationStructureAddressResolutionFlagBitsNV {
3060 #[allow(unused_mut, unused_variables)]
3061 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3062 let mut first = true;
3063 let mut remaining = self.0;
3064 if remaining & Self::INDIRECTED_DST_IMPLICIT_DATA.0 != 0 {
3065 if !first {
3066 f.write_str(" | ")?;
3067 }
3068 f.write_str("INDIRECTED_DST_IMPLICIT_DATA")?;
3069 remaining &= !Self::INDIRECTED_DST_IMPLICIT_DATA.0;
3070 first = false;
3071 }
3072 if remaining & Self::INDIRECTED_SCRATCH_DATA.0 != 0 {
3073 if !first {
3074 f.write_str(" | ")?;
3075 }
3076 f.write_str("INDIRECTED_SCRATCH_DATA")?;
3077 remaining &= !Self::INDIRECTED_SCRATCH_DATA.0;
3078 first = false;
3079 }
3080 if remaining & Self::INDIRECTED_DST_ADDRESS_ARRAY.0 != 0 {
3081 if !first {
3082 f.write_str(" | ")?;
3083 }
3084 f.write_str("INDIRECTED_DST_ADDRESS_ARRAY")?;
3085 remaining &= !Self::INDIRECTED_DST_ADDRESS_ARRAY.0;
3086 first = false;
3087 }
3088 if remaining & Self::INDIRECTED_DST_SIZES_ARRAY.0 != 0 {
3089 if !first {
3090 f.write_str(" | ")?;
3091 }
3092 f.write_str("INDIRECTED_DST_SIZES_ARRAY")?;
3093 remaining &= !Self::INDIRECTED_DST_SIZES_ARRAY.0;
3094 first = false;
3095 }
3096 if remaining & Self::INDIRECTED_SRC_INFOS_ARRAY.0 != 0 {
3097 if !first {
3098 f.write_str(" | ")?;
3099 }
3100 f.write_str("INDIRECTED_SRC_INFOS_ARRAY")?;
3101 remaining &= !Self::INDIRECTED_SRC_INFOS_ARRAY.0;
3102 first = false;
3103 }
3104 if remaining & Self::INDIRECTED_SRC_INFOS_COUNT.0 != 0 {
3105 if !first {
3106 f.write_str(" | ")?;
3107 }
3108 f.write_str("INDIRECTED_SRC_INFOS_COUNT")?;
3109 remaining &= !Self::INDIRECTED_SRC_INFOS_COUNT.0;
3110 first = false;
3111 }
3112 if remaining != 0u32 {
3113 if !first {
3114 f.write_str(" | ")?;
3115 }
3116 write!(f, "{:#x}", remaining)?;
3117 } else if first {
3118 f.write_str("(empty)")?;
3119 }
3120 Ok(())
3121 }
3122}
3123#[repr(transparent)]
3125#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3126#[doc(alias = "VkClusterAccelerationStructureClusterFlagBitsNV")]
3127pub struct ClusterAccelerationStructureClusterFlagBitsNV(u32);
3128impl ClusterAccelerationStructureClusterFlagBitsNV {
3129 #[inline]
3130 pub const fn empty() -> Self {
3131 Self(0u32)
3132 }
3133 #[inline]
3134 pub const fn from_raw(value: u32) -> Self {
3135 Self(value)
3136 }
3137 #[inline]
3138 pub const fn as_raw(self) -> u32 {
3139 self.0
3140 }
3141 #[inline]
3142 pub const fn is_empty(self) -> bool {
3143 self.0 == 0u32
3144 }
3145 #[inline]
3146 pub const fn contains(self, other: Self) -> bool {
3147 (self.0 & other.0) == other.0
3148 }
3149 #[inline]
3150 pub const fn all() -> Self {
3151 Self(1u32)
3152 }
3153 pub const ALLOW_DISABLE_OPACITY_MICROMAPS: Self = Self(1u32);
3155}
3156impl core::ops::BitOr for ClusterAccelerationStructureClusterFlagBitsNV {
3157 type Output = Self;
3158 #[inline]
3159 fn bitor(self, rhs: Self) -> Self {
3160 Self(self.0 | rhs.0)
3161 }
3162}
3163impl core::ops::BitOrAssign for ClusterAccelerationStructureClusterFlagBitsNV {
3164 #[inline]
3165 fn bitor_assign(&mut self, rhs: Self) {
3166 self.0 |= rhs.0;
3167 }
3168}
3169impl core::ops::BitAnd for ClusterAccelerationStructureClusterFlagBitsNV {
3170 type Output = Self;
3171 #[inline]
3172 fn bitand(self, rhs: Self) -> Self {
3173 Self(self.0 & rhs.0)
3174 }
3175}
3176impl core::ops::BitAndAssign for ClusterAccelerationStructureClusterFlagBitsNV {
3177 #[inline]
3178 fn bitand_assign(&mut self, rhs: Self) {
3179 self.0 &= rhs.0;
3180 }
3181}
3182impl core::ops::BitXor for ClusterAccelerationStructureClusterFlagBitsNV {
3183 type Output = Self;
3184 #[inline]
3185 fn bitxor(self, rhs: Self) -> Self {
3186 Self(self.0 ^ rhs.0)
3187 }
3188}
3189impl core::ops::BitXorAssign for ClusterAccelerationStructureClusterFlagBitsNV {
3190 #[inline]
3191 fn bitxor_assign(&mut self, rhs: Self) {
3192 self.0 ^= rhs.0;
3193 }
3194}
3195impl core::ops::Not for ClusterAccelerationStructureClusterFlagBitsNV {
3196 type Output = Self;
3197 #[inline]
3198 fn not(self) -> Self {
3199 Self(!self.0)
3200 }
3201}
3202impl core::fmt::Debug for ClusterAccelerationStructureClusterFlagBitsNV {
3203 #[allow(unused_mut, unused_variables)]
3204 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3205 let mut first = true;
3206 let mut remaining = self.0;
3207 if remaining & Self::ALLOW_DISABLE_OPACITY_MICROMAPS.0 != 0 {
3208 if !first {
3209 f.write_str(" | ")?;
3210 }
3211 f.write_str("ALLOW_DISABLE_OPACITY_MICROMAPS")?;
3212 remaining &= !Self::ALLOW_DISABLE_OPACITY_MICROMAPS.0;
3213 first = false;
3214 }
3215 if remaining != 0u32 {
3216 if !first {
3217 f.write_str(" | ")?;
3218 }
3219 write!(f, "{:#x}", remaining)?;
3220 } else if first {
3221 f.write_str("(empty)")?;
3222 }
3223 Ok(())
3224 }
3225}
3226#[repr(transparent)]
3228#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3229#[doc(alias = "VkClusterAccelerationStructureGeometryFlagBitsNV")]
3230pub struct ClusterAccelerationStructureGeometryFlagBitsNV(u32);
3231impl ClusterAccelerationStructureGeometryFlagBitsNV {
3232 #[inline]
3233 pub const fn empty() -> Self {
3234 Self(0u32)
3235 }
3236 #[inline]
3237 pub const fn from_raw(value: u32) -> Self {
3238 Self(value)
3239 }
3240 #[inline]
3241 pub const fn as_raw(self) -> u32 {
3242 self.0
3243 }
3244 #[inline]
3245 pub const fn is_empty(self) -> bool {
3246 self.0 == 0u32
3247 }
3248 #[inline]
3249 pub const fn contains(self, other: Self) -> bool {
3250 (self.0 & other.0) == other.0
3251 }
3252 #[inline]
3253 pub const fn all() -> Self {
3254 Self(7u32)
3255 }
3256 pub const CULL_DISABLE: Self = Self(1u32);
3258 pub const NO_DUPLICATE_ANYHIT_INVOCATION: Self = Self(2u32);
3260 pub const OPAQUE: Self = Self(4u32);
3262}
3263impl core::ops::BitOr for ClusterAccelerationStructureGeometryFlagBitsNV {
3264 type Output = Self;
3265 #[inline]
3266 fn bitor(self, rhs: Self) -> Self {
3267 Self(self.0 | rhs.0)
3268 }
3269}
3270impl core::ops::BitOrAssign for ClusterAccelerationStructureGeometryFlagBitsNV {
3271 #[inline]
3272 fn bitor_assign(&mut self, rhs: Self) {
3273 self.0 |= rhs.0;
3274 }
3275}
3276impl core::ops::BitAnd for ClusterAccelerationStructureGeometryFlagBitsNV {
3277 type Output = Self;
3278 #[inline]
3279 fn bitand(self, rhs: Self) -> Self {
3280 Self(self.0 & rhs.0)
3281 }
3282}
3283impl core::ops::BitAndAssign for ClusterAccelerationStructureGeometryFlagBitsNV {
3284 #[inline]
3285 fn bitand_assign(&mut self, rhs: Self) {
3286 self.0 &= rhs.0;
3287 }
3288}
3289impl core::ops::BitXor for ClusterAccelerationStructureGeometryFlagBitsNV {
3290 type Output = Self;
3291 #[inline]
3292 fn bitxor(self, rhs: Self) -> Self {
3293 Self(self.0 ^ rhs.0)
3294 }
3295}
3296impl core::ops::BitXorAssign for ClusterAccelerationStructureGeometryFlagBitsNV {
3297 #[inline]
3298 fn bitxor_assign(&mut self, rhs: Self) {
3299 self.0 ^= rhs.0;
3300 }
3301}
3302impl core::ops::Not for ClusterAccelerationStructureGeometryFlagBitsNV {
3303 type Output = Self;
3304 #[inline]
3305 fn not(self) -> Self {
3306 Self(!self.0)
3307 }
3308}
3309impl core::fmt::Debug for ClusterAccelerationStructureGeometryFlagBitsNV {
3310 #[allow(unused_mut, unused_variables)]
3311 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3312 let mut first = true;
3313 let mut remaining = self.0;
3314 if remaining & Self::CULL_DISABLE.0 != 0 {
3315 if !first {
3316 f.write_str(" | ")?;
3317 }
3318 f.write_str("CULL_DISABLE")?;
3319 remaining &= !Self::CULL_DISABLE.0;
3320 first = false;
3321 }
3322 if remaining & Self::NO_DUPLICATE_ANYHIT_INVOCATION.0 != 0 {
3323 if !first {
3324 f.write_str(" | ")?;
3325 }
3326 f.write_str("NO_DUPLICATE_ANYHIT_INVOCATION")?;
3327 remaining &= !Self::NO_DUPLICATE_ANYHIT_INVOCATION.0;
3328 first = false;
3329 }
3330 if remaining & Self::OPAQUE.0 != 0 {
3331 if !first {
3332 f.write_str(" | ")?;
3333 }
3334 f.write_str("OPAQUE")?;
3335 remaining &= !Self::OPAQUE.0;
3336 first = false;
3337 }
3338 if remaining != 0u32 {
3339 if !first {
3340 f.write_str(" | ")?;
3341 }
3342 write!(f, "{:#x}", remaining)?;
3343 } else if first {
3344 f.write_str("(empty)")?;
3345 }
3346 Ok(())
3347 }
3348}
3349#[repr(transparent)]
3351#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3352#[doc(alias = "VkClusterAccelerationStructureIndexFormatFlagBitsNV")]
3353pub struct ClusterAccelerationStructureIndexFormatFlagBitsNV(u32);
3354impl ClusterAccelerationStructureIndexFormatFlagBitsNV {
3355 #[inline]
3356 pub const fn empty() -> Self {
3357 Self(0u32)
3358 }
3359 #[inline]
3360 pub const fn from_raw(value: u32) -> Self {
3361 Self(value)
3362 }
3363 #[inline]
3364 pub const fn as_raw(self) -> u32 {
3365 self.0
3366 }
3367 #[inline]
3368 pub const fn is_empty(self) -> bool {
3369 self.0 == 0u32
3370 }
3371 #[inline]
3372 pub const fn contains(self, other: Self) -> bool {
3373 (self.0 & other.0) == other.0
3374 }
3375 #[inline]
3376 pub const fn all() -> Self {
3377 Self(7u32)
3378 }
3379 pub const _8BIT: Self = Self(1u32);
3381 pub const _16BIT: Self = Self(2u32);
3383 pub const _32BIT: Self = Self(4u32);
3385}
3386impl core::ops::BitOr for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3387 type Output = Self;
3388 #[inline]
3389 fn bitor(self, rhs: Self) -> Self {
3390 Self(self.0 | rhs.0)
3391 }
3392}
3393impl core::ops::BitOrAssign for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3394 #[inline]
3395 fn bitor_assign(&mut self, rhs: Self) {
3396 self.0 |= rhs.0;
3397 }
3398}
3399impl core::ops::BitAnd for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3400 type Output = Self;
3401 #[inline]
3402 fn bitand(self, rhs: Self) -> Self {
3403 Self(self.0 & rhs.0)
3404 }
3405}
3406impl core::ops::BitAndAssign for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3407 #[inline]
3408 fn bitand_assign(&mut self, rhs: Self) {
3409 self.0 &= rhs.0;
3410 }
3411}
3412impl core::ops::BitXor for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3413 type Output = Self;
3414 #[inline]
3415 fn bitxor(self, rhs: Self) -> Self {
3416 Self(self.0 ^ rhs.0)
3417 }
3418}
3419impl core::ops::BitXorAssign for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3420 #[inline]
3421 fn bitxor_assign(&mut self, rhs: Self) {
3422 self.0 ^= rhs.0;
3423 }
3424}
3425impl core::ops::Not for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3426 type Output = Self;
3427 #[inline]
3428 fn not(self) -> Self {
3429 Self(!self.0)
3430 }
3431}
3432impl core::fmt::Debug for ClusterAccelerationStructureIndexFormatFlagBitsNV {
3433 #[allow(unused_mut, unused_variables)]
3434 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3435 let mut first = true;
3436 let mut remaining = self.0;
3437 if remaining & Self::_8BIT.0 != 0 {
3438 if !first {
3439 f.write_str(" | ")?;
3440 }
3441 f.write_str("_8BIT")?;
3442 remaining &= !Self::_8BIT.0;
3443 first = false;
3444 }
3445 if remaining & Self::_16BIT.0 != 0 {
3446 if !first {
3447 f.write_str(" | ")?;
3448 }
3449 f.write_str("_16BIT")?;
3450 remaining &= !Self::_16BIT.0;
3451 first = false;
3452 }
3453 if remaining & Self::_32BIT.0 != 0 {
3454 if !first {
3455 f.write_str(" | ")?;
3456 }
3457 f.write_str("_32BIT")?;
3458 remaining &= !Self::_32BIT.0;
3459 first = false;
3460 }
3461 if remaining != 0u32 {
3462 if !first {
3463 f.write_str(" | ")?;
3464 }
3465 write!(f, "{:#x}", remaining)?;
3466 } else if first {
3467 f.write_str("(empty)")?;
3468 }
3469 Ok(())
3470 }
3471}
3472#[repr(transparent)]
3474#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3475#[doc(alias = "VkColorComponentFlagBits")]
3476pub struct ColorComponentFlagBits(u32);
3477impl ColorComponentFlagBits {
3478 #[inline]
3479 pub const fn empty() -> Self {
3480 Self(0u32)
3481 }
3482 #[inline]
3483 pub const fn from_raw(value: u32) -> Self {
3484 Self(value)
3485 }
3486 #[inline]
3487 pub const fn as_raw(self) -> u32 {
3488 self.0
3489 }
3490 #[inline]
3491 pub const fn is_empty(self) -> bool {
3492 self.0 == 0u32
3493 }
3494 #[inline]
3495 pub const fn contains(self, other: Self) -> bool {
3496 (self.0 & other.0) == other.0
3497 }
3498 #[inline]
3499 pub const fn all() -> Self {
3500 Self(15u32)
3501 }
3502 pub const R: Self = Self(1u32);
3504 pub const G: Self = Self(2u32);
3506 pub const B: Self = Self(4u32);
3508 pub const A: Self = Self(8u32);
3510}
3511impl core::ops::BitOr for ColorComponentFlagBits {
3512 type Output = Self;
3513 #[inline]
3514 fn bitor(self, rhs: Self) -> Self {
3515 Self(self.0 | rhs.0)
3516 }
3517}
3518impl core::ops::BitOrAssign for ColorComponentFlagBits {
3519 #[inline]
3520 fn bitor_assign(&mut self, rhs: Self) {
3521 self.0 |= rhs.0;
3522 }
3523}
3524impl core::ops::BitAnd for ColorComponentFlagBits {
3525 type Output = Self;
3526 #[inline]
3527 fn bitand(self, rhs: Self) -> Self {
3528 Self(self.0 & rhs.0)
3529 }
3530}
3531impl core::ops::BitAndAssign for ColorComponentFlagBits {
3532 #[inline]
3533 fn bitand_assign(&mut self, rhs: Self) {
3534 self.0 &= rhs.0;
3535 }
3536}
3537impl core::ops::BitXor for ColorComponentFlagBits {
3538 type Output = Self;
3539 #[inline]
3540 fn bitxor(self, rhs: Self) -> Self {
3541 Self(self.0 ^ rhs.0)
3542 }
3543}
3544impl core::ops::BitXorAssign for ColorComponentFlagBits {
3545 #[inline]
3546 fn bitxor_assign(&mut self, rhs: Self) {
3547 self.0 ^= rhs.0;
3548 }
3549}
3550impl core::ops::Not for ColorComponentFlagBits {
3551 type Output = Self;
3552 #[inline]
3553 fn not(self) -> Self {
3554 Self(!self.0)
3555 }
3556}
3557impl core::fmt::Debug for ColorComponentFlagBits {
3558 #[allow(unused_mut, unused_variables)]
3559 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3560 let mut first = true;
3561 let mut remaining = self.0;
3562 if remaining & Self::R.0 != 0 {
3563 if !first {
3564 f.write_str(" | ")?;
3565 }
3566 f.write_str("R")?;
3567 remaining &= !Self::R.0;
3568 first = false;
3569 }
3570 if remaining & Self::G.0 != 0 {
3571 if !first {
3572 f.write_str(" | ")?;
3573 }
3574 f.write_str("G")?;
3575 remaining &= !Self::G.0;
3576 first = false;
3577 }
3578 if remaining & Self::B.0 != 0 {
3579 if !first {
3580 f.write_str(" | ")?;
3581 }
3582 f.write_str("B")?;
3583 remaining &= !Self::B.0;
3584 first = false;
3585 }
3586 if remaining & Self::A.0 != 0 {
3587 if !first {
3588 f.write_str(" | ")?;
3589 }
3590 f.write_str("A")?;
3591 remaining &= !Self::A.0;
3592 first = false;
3593 }
3594 if remaining != 0u32 {
3595 if !first {
3596 f.write_str(" | ")?;
3597 }
3598 write!(f, "{:#x}", remaining)?;
3599 } else if first {
3600 f.write_str("(empty)")?;
3601 }
3602 Ok(())
3603 }
3604}
3605#[repr(transparent)]
3607#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3608#[doc(alias = "VkCommandBufferResetFlagBits")]
3609pub struct CommandBufferResetFlagBits(u32);
3610impl CommandBufferResetFlagBits {
3611 #[inline]
3612 pub const fn empty() -> Self {
3613 Self(0u32)
3614 }
3615 #[inline]
3616 pub const fn from_raw(value: u32) -> Self {
3617 Self(value)
3618 }
3619 #[inline]
3620 pub const fn as_raw(self) -> u32 {
3621 self.0
3622 }
3623 #[inline]
3624 pub const fn is_empty(self) -> bool {
3625 self.0 == 0u32
3626 }
3627 #[inline]
3628 pub const fn contains(self, other: Self) -> bool {
3629 (self.0 & other.0) == other.0
3630 }
3631 #[inline]
3632 pub const fn all() -> Self {
3633 Self(1u32)
3634 }
3635 pub const RELEASE_RESOURCES: Self = Self(1u32);
3637}
3638impl core::ops::BitOr for CommandBufferResetFlagBits {
3639 type Output = Self;
3640 #[inline]
3641 fn bitor(self, rhs: Self) -> Self {
3642 Self(self.0 | rhs.0)
3643 }
3644}
3645impl core::ops::BitOrAssign for CommandBufferResetFlagBits {
3646 #[inline]
3647 fn bitor_assign(&mut self, rhs: Self) {
3648 self.0 |= rhs.0;
3649 }
3650}
3651impl core::ops::BitAnd for CommandBufferResetFlagBits {
3652 type Output = Self;
3653 #[inline]
3654 fn bitand(self, rhs: Self) -> Self {
3655 Self(self.0 & rhs.0)
3656 }
3657}
3658impl core::ops::BitAndAssign for CommandBufferResetFlagBits {
3659 #[inline]
3660 fn bitand_assign(&mut self, rhs: Self) {
3661 self.0 &= rhs.0;
3662 }
3663}
3664impl core::ops::BitXor for CommandBufferResetFlagBits {
3665 type Output = Self;
3666 #[inline]
3667 fn bitxor(self, rhs: Self) -> Self {
3668 Self(self.0 ^ rhs.0)
3669 }
3670}
3671impl core::ops::BitXorAssign for CommandBufferResetFlagBits {
3672 #[inline]
3673 fn bitxor_assign(&mut self, rhs: Self) {
3674 self.0 ^= rhs.0;
3675 }
3676}
3677impl core::ops::Not for CommandBufferResetFlagBits {
3678 type Output = Self;
3679 #[inline]
3680 fn not(self) -> Self {
3681 Self(!self.0)
3682 }
3683}
3684impl core::fmt::Debug for CommandBufferResetFlagBits {
3685 #[allow(unused_mut, unused_variables)]
3686 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3687 let mut first = true;
3688 let mut remaining = self.0;
3689 if remaining & Self::RELEASE_RESOURCES.0 != 0 {
3690 if !first {
3691 f.write_str(" | ")?;
3692 }
3693 f.write_str("RELEASE_RESOURCES")?;
3694 remaining &= !Self::RELEASE_RESOURCES.0;
3695 first = false;
3696 }
3697 if remaining != 0u32 {
3698 if !first {
3699 f.write_str(" | ")?;
3700 }
3701 write!(f, "{:#x}", remaining)?;
3702 } else if first {
3703 f.write_str("(empty)")?;
3704 }
3705 Ok(())
3706 }
3707}
3708#[repr(transparent)]
3710#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3711#[doc(alias = "VkCommandBufferUsageFlagBits")]
3712pub struct CommandBufferUsageFlagBits(u32);
3713impl CommandBufferUsageFlagBits {
3714 #[inline]
3715 pub const fn empty() -> Self {
3716 Self(0u32)
3717 }
3718 #[inline]
3719 pub const fn from_raw(value: u32) -> Self {
3720 Self(value)
3721 }
3722 #[inline]
3723 pub const fn as_raw(self) -> u32 {
3724 self.0
3725 }
3726 #[inline]
3727 pub const fn is_empty(self) -> bool {
3728 self.0 == 0u32
3729 }
3730 #[inline]
3731 pub const fn contains(self, other: Self) -> bool {
3732 (self.0 & other.0) == other.0
3733 }
3734 #[inline]
3735 pub const fn all() -> Self {
3736 Self(7u32)
3737 }
3738 pub const ONE_TIME_SUBMIT: Self = Self(1u32);
3740 pub const RENDER_PASS_CONTINUE: Self = Self(2u32);
3742 pub const SIMULTANEOUS_USE: Self = Self(4u32);
3744}
3745impl core::ops::BitOr for CommandBufferUsageFlagBits {
3746 type Output = Self;
3747 #[inline]
3748 fn bitor(self, rhs: Self) -> Self {
3749 Self(self.0 | rhs.0)
3750 }
3751}
3752impl core::ops::BitOrAssign for CommandBufferUsageFlagBits {
3753 #[inline]
3754 fn bitor_assign(&mut self, rhs: Self) {
3755 self.0 |= rhs.0;
3756 }
3757}
3758impl core::ops::BitAnd for CommandBufferUsageFlagBits {
3759 type Output = Self;
3760 #[inline]
3761 fn bitand(self, rhs: Self) -> Self {
3762 Self(self.0 & rhs.0)
3763 }
3764}
3765impl core::ops::BitAndAssign for CommandBufferUsageFlagBits {
3766 #[inline]
3767 fn bitand_assign(&mut self, rhs: Self) {
3768 self.0 &= rhs.0;
3769 }
3770}
3771impl core::ops::BitXor for CommandBufferUsageFlagBits {
3772 type Output = Self;
3773 #[inline]
3774 fn bitxor(self, rhs: Self) -> Self {
3775 Self(self.0 ^ rhs.0)
3776 }
3777}
3778impl core::ops::BitXorAssign for CommandBufferUsageFlagBits {
3779 #[inline]
3780 fn bitxor_assign(&mut self, rhs: Self) {
3781 self.0 ^= rhs.0;
3782 }
3783}
3784impl core::ops::Not for CommandBufferUsageFlagBits {
3785 type Output = Self;
3786 #[inline]
3787 fn not(self) -> Self {
3788 Self(!self.0)
3789 }
3790}
3791impl core::fmt::Debug for CommandBufferUsageFlagBits {
3792 #[allow(unused_mut, unused_variables)]
3793 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3794 let mut first = true;
3795 let mut remaining = self.0;
3796 if remaining & Self::ONE_TIME_SUBMIT.0 != 0 {
3797 if !first {
3798 f.write_str(" | ")?;
3799 }
3800 f.write_str("ONE_TIME_SUBMIT")?;
3801 remaining &= !Self::ONE_TIME_SUBMIT.0;
3802 first = false;
3803 }
3804 if remaining & Self::RENDER_PASS_CONTINUE.0 != 0 {
3805 if !first {
3806 f.write_str(" | ")?;
3807 }
3808 f.write_str("RENDER_PASS_CONTINUE")?;
3809 remaining &= !Self::RENDER_PASS_CONTINUE.0;
3810 first = false;
3811 }
3812 if remaining & Self::SIMULTANEOUS_USE.0 != 0 {
3813 if !first {
3814 f.write_str(" | ")?;
3815 }
3816 f.write_str("SIMULTANEOUS_USE")?;
3817 remaining &= !Self::SIMULTANEOUS_USE.0;
3818 first = false;
3819 }
3820 if remaining != 0u32 {
3821 if !first {
3822 f.write_str(" | ")?;
3823 }
3824 write!(f, "{:#x}", remaining)?;
3825 } else if first {
3826 f.write_str("(empty)")?;
3827 }
3828 Ok(())
3829 }
3830}
3831#[repr(transparent)]
3833#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3834#[doc(alias = "VkCommandPoolCreateFlagBits")]
3835pub struct CommandPoolCreateFlagBits(u32);
3836impl CommandPoolCreateFlagBits {
3837 #[inline]
3838 pub const fn empty() -> Self {
3839 Self(0u32)
3840 }
3841 #[inline]
3842 pub const fn from_raw(value: u32) -> Self {
3843 Self(value)
3844 }
3845 #[inline]
3846 pub const fn as_raw(self) -> u32 {
3847 self.0
3848 }
3849 #[inline]
3850 pub const fn is_empty(self) -> bool {
3851 self.0 == 0u32
3852 }
3853 #[inline]
3854 pub const fn contains(self, other: Self) -> bool {
3855 (self.0 & other.0) == other.0
3856 }
3857 #[inline]
3858 pub const fn all() -> Self {
3859 Self(7u32)
3860 }
3861 pub const TRANSIENT: Self = Self(1u32);
3863 pub const RESET_COMMAND_BUFFER: Self = Self(2u32);
3865 pub const PROTECTED: Self = Self(4u32);
3867}
3868impl core::ops::BitOr for CommandPoolCreateFlagBits {
3869 type Output = Self;
3870 #[inline]
3871 fn bitor(self, rhs: Self) -> Self {
3872 Self(self.0 | rhs.0)
3873 }
3874}
3875impl core::ops::BitOrAssign for CommandPoolCreateFlagBits {
3876 #[inline]
3877 fn bitor_assign(&mut self, rhs: Self) {
3878 self.0 |= rhs.0;
3879 }
3880}
3881impl core::ops::BitAnd for CommandPoolCreateFlagBits {
3882 type Output = Self;
3883 #[inline]
3884 fn bitand(self, rhs: Self) -> Self {
3885 Self(self.0 & rhs.0)
3886 }
3887}
3888impl core::ops::BitAndAssign for CommandPoolCreateFlagBits {
3889 #[inline]
3890 fn bitand_assign(&mut self, rhs: Self) {
3891 self.0 &= rhs.0;
3892 }
3893}
3894impl core::ops::BitXor for CommandPoolCreateFlagBits {
3895 type Output = Self;
3896 #[inline]
3897 fn bitxor(self, rhs: Self) -> Self {
3898 Self(self.0 ^ rhs.0)
3899 }
3900}
3901impl core::ops::BitXorAssign for CommandPoolCreateFlagBits {
3902 #[inline]
3903 fn bitxor_assign(&mut self, rhs: Self) {
3904 self.0 ^= rhs.0;
3905 }
3906}
3907impl core::ops::Not for CommandPoolCreateFlagBits {
3908 type Output = Self;
3909 #[inline]
3910 fn not(self) -> Self {
3911 Self(!self.0)
3912 }
3913}
3914impl core::fmt::Debug for CommandPoolCreateFlagBits {
3915 #[allow(unused_mut, unused_variables)]
3916 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
3917 let mut first = true;
3918 let mut remaining = self.0;
3919 if remaining & Self::TRANSIENT.0 != 0 {
3920 if !first {
3921 f.write_str(" | ")?;
3922 }
3923 f.write_str("TRANSIENT")?;
3924 remaining &= !Self::TRANSIENT.0;
3925 first = false;
3926 }
3927 if remaining & Self::RESET_COMMAND_BUFFER.0 != 0 {
3928 if !first {
3929 f.write_str(" | ")?;
3930 }
3931 f.write_str("RESET_COMMAND_BUFFER")?;
3932 remaining &= !Self::RESET_COMMAND_BUFFER.0;
3933 first = false;
3934 }
3935 if remaining & Self::PROTECTED.0 != 0 {
3936 if !first {
3937 f.write_str(" | ")?;
3938 }
3939 f.write_str("PROTECTED")?;
3940 remaining &= !Self::PROTECTED.0;
3941 first = false;
3942 }
3943 if remaining != 0u32 {
3944 if !first {
3945 f.write_str(" | ")?;
3946 }
3947 write!(f, "{:#x}", remaining)?;
3948 } else if first {
3949 f.write_str("(empty)")?;
3950 }
3951 Ok(())
3952 }
3953}
3954#[repr(transparent)]
3956#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
3957#[doc(alias = "VkCommandPoolResetFlagBits")]
3958pub struct CommandPoolResetFlagBits(u32);
3959impl CommandPoolResetFlagBits {
3960 #[inline]
3961 pub const fn empty() -> Self {
3962 Self(0u32)
3963 }
3964 #[inline]
3965 pub const fn from_raw(value: u32) -> Self {
3966 Self(value)
3967 }
3968 #[inline]
3969 pub const fn as_raw(self) -> u32 {
3970 self.0
3971 }
3972 #[inline]
3973 pub const fn is_empty(self) -> bool {
3974 self.0 == 0u32
3975 }
3976 #[inline]
3977 pub const fn contains(self, other: Self) -> bool {
3978 (self.0 & other.0) == other.0
3979 }
3980 #[inline]
3981 pub const fn all() -> Self {
3982 Self(1u32)
3983 }
3984 pub const RELEASE_RESOURCES: Self = Self(1u32);
3986}
3987impl core::ops::BitOr for CommandPoolResetFlagBits {
3988 type Output = Self;
3989 #[inline]
3990 fn bitor(self, rhs: Self) -> Self {
3991 Self(self.0 | rhs.0)
3992 }
3993}
3994impl core::ops::BitOrAssign for CommandPoolResetFlagBits {
3995 #[inline]
3996 fn bitor_assign(&mut self, rhs: Self) {
3997 self.0 |= rhs.0;
3998 }
3999}
4000impl core::ops::BitAnd for CommandPoolResetFlagBits {
4001 type Output = Self;
4002 #[inline]
4003 fn bitand(self, rhs: Self) -> Self {
4004 Self(self.0 & rhs.0)
4005 }
4006}
4007impl core::ops::BitAndAssign for CommandPoolResetFlagBits {
4008 #[inline]
4009 fn bitand_assign(&mut self, rhs: Self) {
4010 self.0 &= rhs.0;
4011 }
4012}
4013impl core::ops::BitXor for CommandPoolResetFlagBits {
4014 type Output = Self;
4015 #[inline]
4016 fn bitxor(self, rhs: Self) -> Self {
4017 Self(self.0 ^ rhs.0)
4018 }
4019}
4020impl core::ops::BitXorAssign for CommandPoolResetFlagBits {
4021 #[inline]
4022 fn bitxor_assign(&mut self, rhs: Self) {
4023 self.0 ^= rhs.0;
4024 }
4025}
4026impl core::ops::Not for CommandPoolResetFlagBits {
4027 type Output = Self;
4028 #[inline]
4029 fn not(self) -> Self {
4030 Self(!self.0)
4031 }
4032}
4033impl core::fmt::Debug for CommandPoolResetFlagBits {
4034 #[allow(unused_mut, unused_variables)]
4035 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4036 let mut first = true;
4037 let mut remaining = self.0;
4038 if remaining & Self::RELEASE_RESOURCES.0 != 0 {
4039 if !first {
4040 f.write_str(" | ")?;
4041 }
4042 f.write_str("RELEASE_RESOURCES")?;
4043 remaining &= !Self::RELEASE_RESOURCES.0;
4044 first = false;
4045 }
4046 if remaining != 0u32 {
4047 if !first {
4048 f.write_str(" | ")?;
4049 }
4050 write!(f, "{:#x}", remaining)?;
4051 } else if first {
4052 f.write_str("(empty)")?;
4053 }
4054 Ok(())
4055 }
4056}
4057#[repr(transparent)]
4059#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4060#[doc(alias = "VkCompositeAlphaFlagBitsKHR")]
4061pub struct CompositeAlphaFlagBitsKHR(u32);
4062impl CompositeAlphaFlagBitsKHR {
4063 #[inline]
4064 pub const fn empty() -> Self {
4065 Self(0u32)
4066 }
4067 #[inline]
4068 pub const fn from_raw(value: u32) -> Self {
4069 Self(value)
4070 }
4071 #[inline]
4072 pub const fn as_raw(self) -> u32 {
4073 self.0
4074 }
4075 #[inline]
4076 pub const fn is_empty(self) -> bool {
4077 self.0 == 0u32
4078 }
4079 #[inline]
4080 pub const fn contains(self, other: Self) -> bool {
4081 (self.0 & other.0) == other.0
4082 }
4083 #[inline]
4084 pub const fn all() -> Self {
4085 Self(15u32)
4086 }
4087 pub const OPAQUE: Self = Self(1u32);
4089 pub const PRE_MULTIPLIED: Self = Self(2u32);
4091 pub const POST_MULTIPLIED: Self = Self(4u32);
4093 pub const INHERIT: Self = Self(8u32);
4095}
4096impl core::ops::BitOr for CompositeAlphaFlagBitsKHR {
4097 type Output = Self;
4098 #[inline]
4099 fn bitor(self, rhs: Self) -> Self {
4100 Self(self.0 | rhs.0)
4101 }
4102}
4103impl core::ops::BitOrAssign for CompositeAlphaFlagBitsKHR {
4104 #[inline]
4105 fn bitor_assign(&mut self, rhs: Self) {
4106 self.0 |= rhs.0;
4107 }
4108}
4109impl core::ops::BitAnd for CompositeAlphaFlagBitsKHR {
4110 type Output = Self;
4111 #[inline]
4112 fn bitand(self, rhs: Self) -> Self {
4113 Self(self.0 & rhs.0)
4114 }
4115}
4116impl core::ops::BitAndAssign for CompositeAlphaFlagBitsKHR {
4117 #[inline]
4118 fn bitand_assign(&mut self, rhs: Self) {
4119 self.0 &= rhs.0;
4120 }
4121}
4122impl core::ops::BitXor for CompositeAlphaFlagBitsKHR {
4123 type Output = Self;
4124 #[inline]
4125 fn bitxor(self, rhs: Self) -> Self {
4126 Self(self.0 ^ rhs.0)
4127 }
4128}
4129impl core::ops::BitXorAssign for CompositeAlphaFlagBitsKHR {
4130 #[inline]
4131 fn bitxor_assign(&mut self, rhs: Self) {
4132 self.0 ^= rhs.0;
4133 }
4134}
4135impl core::ops::Not for CompositeAlphaFlagBitsKHR {
4136 type Output = Self;
4137 #[inline]
4138 fn not(self) -> Self {
4139 Self(!self.0)
4140 }
4141}
4142impl core::fmt::Debug for CompositeAlphaFlagBitsKHR {
4143 #[allow(unused_mut, unused_variables)]
4144 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4145 let mut first = true;
4146 let mut remaining = self.0;
4147 if remaining & Self::OPAQUE.0 != 0 {
4148 if !first {
4149 f.write_str(" | ")?;
4150 }
4151 f.write_str("OPAQUE")?;
4152 remaining &= !Self::OPAQUE.0;
4153 first = false;
4154 }
4155 if remaining & Self::PRE_MULTIPLIED.0 != 0 {
4156 if !first {
4157 f.write_str(" | ")?;
4158 }
4159 f.write_str("PRE_MULTIPLIED")?;
4160 remaining &= !Self::PRE_MULTIPLIED.0;
4161 first = false;
4162 }
4163 if remaining & Self::POST_MULTIPLIED.0 != 0 {
4164 if !first {
4165 f.write_str(" | ")?;
4166 }
4167 f.write_str("POST_MULTIPLIED")?;
4168 remaining &= !Self::POST_MULTIPLIED.0;
4169 first = false;
4170 }
4171 if remaining & Self::INHERIT.0 != 0 {
4172 if !first {
4173 f.write_str(" | ")?;
4174 }
4175 f.write_str("INHERIT")?;
4176 remaining &= !Self::INHERIT.0;
4177 first = false;
4178 }
4179 if remaining != 0u32 {
4180 if !first {
4181 f.write_str(" | ")?;
4182 }
4183 write!(f, "{:#x}", remaining)?;
4184 } else if first {
4185 f.write_str("(empty)")?;
4186 }
4187 Ok(())
4188 }
4189}
4190#[repr(transparent)]
4192#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4193#[doc(alias = "VkConditionalRenderingFlagBitsEXT")]
4194pub struct ConditionalRenderingFlagBitsEXT(u32);
4195impl ConditionalRenderingFlagBitsEXT {
4196 #[inline]
4197 pub const fn empty() -> Self {
4198 Self(0u32)
4199 }
4200 #[inline]
4201 pub const fn from_raw(value: u32) -> Self {
4202 Self(value)
4203 }
4204 #[inline]
4205 pub const fn as_raw(self) -> u32 {
4206 self.0
4207 }
4208 #[inline]
4209 pub const fn is_empty(self) -> bool {
4210 self.0 == 0u32
4211 }
4212 #[inline]
4213 pub const fn contains(self, other: Self) -> bool {
4214 (self.0 & other.0) == other.0
4215 }
4216 #[inline]
4217 pub const fn all() -> Self {
4218 Self(1u32)
4219 }
4220 pub const INVERTED: Self = Self(1u32);
4222}
4223impl core::ops::BitOr for ConditionalRenderingFlagBitsEXT {
4224 type Output = Self;
4225 #[inline]
4226 fn bitor(self, rhs: Self) -> Self {
4227 Self(self.0 | rhs.0)
4228 }
4229}
4230impl core::ops::BitOrAssign for ConditionalRenderingFlagBitsEXT {
4231 #[inline]
4232 fn bitor_assign(&mut self, rhs: Self) {
4233 self.0 |= rhs.0;
4234 }
4235}
4236impl core::ops::BitAnd for ConditionalRenderingFlagBitsEXT {
4237 type Output = Self;
4238 #[inline]
4239 fn bitand(self, rhs: Self) -> Self {
4240 Self(self.0 & rhs.0)
4241 }
4242}
4243impl core::ops::BitAndAssign for ConditionalRenderingFlagBitsEXT {
4244 #[inline]
4245 fn bitand_assign(&mut self, rhs: Self) {
4246 self.0 &= rhs.0;
4247 }
4248}
4249impl core::ops::BitXor for ConditionalRenderingFlagBitsEXT {
4250 type Output = Self;
4251 #[inline]
4252 fn bitxor(self, rhs: Self) -> Self {
4253 Self(self.0 ^ rhs.0)
4254 }
4255}
4256impl core::ops::BitXorAssign for ConditionalRenderingFlagBitsEXT {
4257 #[inline]
4258 fn bitxor_assign(&mut self, rhs: Self) {
4259 self.0 ^= rhs.0;
4260 }
4261}
4262impl core::ops::Not for ConditionalRenderingFlagBitsEXT {
4263 type Output = Self;
4264 #[inline]
4265 fn not(self) -> Self {
4266 Self(!self.0)
4267 }
4268}
4269impl core::fmt::Debug for ConditionalRenderingFlagBitsEXT {
4270 #[allow(unused_mut, unused_variables)]
4271 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4272 let mut first = true;
4273 let mut remaining = self.0;
4274 if remaining & Self::INVERTED.0 != 0 {
4275 if !first {
4276 f.write_str(" | ")?;
4277 }
4278 f.write_str("INVERTED")?;
4279 remaining &= !Self::INVERTED.0;
4280 first = false;
4281 }
4282 if remaining != 0u32 {
4283 if !first {
4284 f.write_str(" | ")?;
4285 }
4286 write!(f, "{:#x}", remaining)?;
4287 } else if first {
4288 f.write_str("(empty)")?;
4289 }
4290 Ok(())
4291 }
4292}
4293#[repr(transparent)]
4295#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4296#[doc(alias = "VkCullModeFlagBits")]
4297pub struct CullModeFlagBits(u32);
4298impl CullModeFlagBits {
4299 #[inline]
4300 pub const fn empty() -> Self {
4301 Self(0u32)
4302 }
4303 #[inline]
4304 pub const fn from_raw(value: u32) -> Self {
4305 Self(value)
4306 }
4307 #[inline]
4308 pub const fn as_raw(self) -> u32 {
4309 self.0
4310 }
4311 #[inline]
4312 pub const fn is_empty(self) -> bool {
4313 self.0 == 0u32
4314 }
4315 #[inline]
4316 pub const fn contains(self, other: Self) -> bool {
4317 (self.0 & other.0) == other.0
4318 }
4319 #[inline]
4320 pub const fn all() -> Self {
4321 Self(3u32)
4322 }
4323 pub const NONE: Self = Self(0u32);
4324 pub const FRONT: Self = Self(1u32);
4326 pub const BACK: Self = Self(2u32);
4328 pub const FRONT_AND_BACK: Self = Self(3u32);
4329}
4330impl core::ops::BitOr for CullModeFlagBits {
4331 type Output = Self;
4332 #[inline]
4333 fn bitor(self, rhs: Self) -> Self {
4334 Self(self.0 | rhs.0)
4335 }
4336}
4337impl core::ops::BitOrAssign for CullModeFlagBits {
4338 #[inline]
4339 fn bitor_assign(&mut self, rhs: Self) {
4340 self.0 |= rhs.0;
4341 }
4342}
4343impl core::ops::BitAnd for CullModeFlagBits {
4344 type Output = Self;
4345 #[inline]
4346 fn bitand(self, rhs: Self) -> Self {
4347 Self(self.0 & rhs.0)
4348 }
4349}
4350impl core::ops::BitAndAssign for CullModeFlagBits {
4351 #[inline]
4352 fn bitand_assign(&mut self, rhs: Self) {
4353 self.0 &= rhs.0;
4354 }
4355}
4356impl core::ops::BitXor for CullModeFlagBits {
4357 type Output = Self;
4358 #[inline]
4359 fn bitxor(self, rhs: Self) -> Self {
4360 Self(self.0 ^ rhs.0)
4361 }
4362}
4363impl core::ops::BitXorAssign for CullModeFlagBits {
4364 #[inline]
4365 fn bitxor_assign(&mut self, rhs: Self) {
4366 self.0 ^= rhs.0;
4367 }
4368}
4369impl core::ops::Not for CullModeFlagBits {
4370 type Output = Self;
4371 #[inline]
4372 fn not(self) -> Self {
4373 Self(!self.0)
4374 }
4375}
4376impl core::fmt::Debug for CullModeFlagBits {
4377 #[allow(unused_mut, unused_variables)]
4378 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4379 let mut first = true;
4380 let mut remaining = self.0;
4381 if remaining & Self::FRONT.0 != 0 {
4382 if !first {
4383 f.write_str(" | ")?;
4384 }
4385 f.write_str("FRONT")?;
4386 remaining &= !Self::FRONT.0;
4387 first = false;
4388 }
4389 if remaining & Self::BACK.0 != 0 {
4390 if !first {
4391 f.write_str(" | ")?;
4392 }
4393 f.write_str("BACK")?;
4394 remaining &= !Self::BACK.0;
4395 first = false;
4396 }
4397 if remaining != 0u32 {
4398 if !first {
4399 f.write_str(" | ")?;
4400 }
4401 write!(f, "{:#x}", remaining)?;
4402 } else if first {
4403 f.write_str("(empty)")?;
4404 }
4405 Ok(())
4406 }
4407}
4408#[repr(transparent)]
4410#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4411#[doc(alias = "VkDataGraphPipelineDispatchFlagBitsARM")]
4412pub struct DataGraphPipelineDispatchFlagBitsARM(u64);
4413impl DataGraphPipelineDispatchFlagBitsARM {
4414 #[inline]
4415 pub const fn empty() -> Self {
4416 Self(0u64)
4417 }
4418 #[inline]
4419 pub const fn from_raw(value: u64) -> Self {
4420 Self(value)
4421 }
4422 #[inline]
4423 pub const fn as_raw(self) -> u64 {
4424 self.0
4425 }
4426 #[inline]
4427 pub const fn is_empty(self) -> bool {
4428 self.0 == 0u64
4429 }
4430 #[inline]
4431 pub const fn contains(self, other: Self) -> bool {
4432 (self.0 & other.0) == other.0
4433 }
4434 #[inline]
4435 pub const fn all() -> Self {
4436 Self(0u64)
4437 }
4438}
4439impl core::ops::BitOr for DataGraphPipelineDispatchFlagBitsARM {
4440 type Output = Self;
4441 #[inline]
4442 fn bitor(self, rhs: Self) -> Self {
4443 Self(self.0 | rhs.0)
4444 }
4445}
4446impl core::ops::BitOrAssign for DataGraphPipelineDispatchFlagBitsARM {
4447 #[inline]
4448 fn bitor_assign(&mut self, rhs: Self) {
4449 self.0 |= rhs.0;
4450 }
4451}
4452impl core::ops::BitAnd for DataGraphPipelineDispatchFlagBitsARM {
4453 type Output = Self;
4454 #[inline]
4455 fn bitand(self, rhs: Self) -> Self {
4456 Self(self.0 & rhs.0)
4457 }
4458}
4459impl core::ops::BitAndAssign for DataGraphPipelineDispatchFlagBitsARM {
4460 #[inline]
4461 fn bitand_assign(&mut self, rhs: Self) {
4462 self.0 &= rhs.0;
4463 }
4464}
4465impl core::ops::BitXor for DataGraphPipelineDispatchFlagBitsARM {
4466 type Output = Self;
4467 #[inline]
4468 fn bitxor(self, rhs: Self) -> Self {
4469 Self(self.0 ^ rhs.0)
4470 }
4471}
4472impl core::ops::BitXorAssign for DataGraphPipelineDispatchFlagBitsARM {
4473 #[inline]
4474 fn bitxor_assign(&mut self, rhs: Self) {
4475 self.0 ^= rhs.0;
4476 }
4477}
4478impl core::ops::Not for DataGraphPipelineDispatchFlagBitsARM {
4479 type Output = Self;
4480 #[inline]
4481 fn not(self) -> Self {
4482 Self(!self.0)
4483 }
4484}
4485impl core::fmt::Debug for DataGraphPipelineDispatchFlagBitsARM {
4486 #[allow(unused_mut, unused_variables)]
4487 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4488 let mut first = true;
4489 let mut remaining = self.0;
4490 if remaining != 0u64 {
4491 if !first {
4492 f.write_str(" | ")?;
4493 }
4494 write!(f, "{:#x}", remaining)?;
4495 } else if first {
4496 f.write_str("(empty)")?;
4497 }
4498 Ok(())
4499 }
4500}
4501#[repr(transparent)]
4503#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4504#[doc(alias = "VkDataGraphPipelineSessionCreateFlagBitsARM")]
4505pub struct DataGraphPipelineSessionCreateFlagBitsARM(u64);
4506impl DataGraphPipelineSessionCreateFlagBitsARM {
4507 #[inline]
4508 pub const fn empty() -> Self {
4509 Self(0u64)
4510 }
4511 #[inline]
4512 pub const fn from_raw(value: u64) -> Self {
4513 Self(value)
4514 }
4515 #[inline]
4516 pub const fn as_raw(self) -> u64 {
4517 self.0
4518 }
4519 #[inline]
4520 pub const fn is_empty(self) -> bool {
4521 self.0 == 0u64
4522 }
4523 #[inline]
4524 pub const fn contains(self, other: Self) -> bool {
4525 (self.0 & other.0) == other.0
4526 }
4527 #[inline]
4528 pub const fn all() -> Self {
4529 Self(1u64)
4530 }
4531 pub const PROTECTED_BIT: Self = Self(1u64);
4533}
4534impl core::ops::BitOr for DataGraphPipelineSessionCreateFlagBitsARM {
4535 type Output = Self;
4536 #[inline]
4537 fn bitor(self, rhs: Self) -> Self {
4538 Self(self.0 | rhs.0)
4539 }
4540}
4541impl core::ops::BitOrAssign for DataGraphPipelineSessionCreateFlagBitsARM {
4542 #[inline]
4543 fn bitor_assign(&mut self, rhs: Self) {
4544 self.0 |= rhs.0;
4545 }
4546}
4547impl core::ops::BitAnd for DataGraphPipelineSessionCreateFlagBitsARM {
4548 type Output = Self;
4549 #[inline]
4550 fn bitand(self, rhs: Self) -> Self {
4551 Self(self.0 & rhs.0)
4552 }
4553}
4554impl core::ops::BitAndAssign for DataGraphPipelineSessionCreateFlagBitsARM {
4555 #[inline]
4556 fn bitand_assign(&mut self, rhs: Self) {
4557 self.0 &= rhs.0;
4558 }
4559}
4560impl core::ops::BitXor for DataGraphPipelineSessionCreateFlagBitsARM {
4561 type Output = Self;
4562 #[inline]
4563 fn bitxor(self, rhs: Self) -> Self {
4564 Self(self.0 ^ rhs.0)
4565 }
4566}
4567impl core::ops::BitXorAssign for DataGraphPipelineSessionCreateFlagBitsARM {
4568 #[inline]
4569 fn bitxor_assign(&mut self, rhs: Self) {
4570 self.0 ^= rhs.0;
4571 }
4572}
4573impl core::ops::Not for DataGraphPipelineSessionCreateFlagBitsARM {
4574 type Output = Self;
4575 #[inline]
4576 fn not(self) -> Self {
4577 Self(!self.0)
4578 }
4579}
4580impl core::fmt::Debug for DataGraphPipelineSessionCreateFlagBitsARM {
4581 #[allow(unused_mut, unused_variables)]
4582 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4583 let mut first = true;
4584 let mut remaining = self.0;
4585 if remaining & Self::PROTECTED_BIT.0 != 0 {
4586 if !first {
4587 f.write_str(" | ")?;
4588 }
4589 f.write_str("PROTECTED_BIT")?;
4590 remaining &= !Self::PROTECTED_BIT.0;
4591 first = false;
4592 }
4593 if remaining != 0u64 {
4594 if !first {
4595 f.write_str(" | ")?;
4596 }
4597 write!(f, "{:#x}", remaining)?;
4598 } else if first {
4599 f.write_str("(empty)")?;
4600 }
4601 Ok(())
4602 }
4603}
4604#[repr(transparent)]
4606#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4607#[doc(alias = "VkDebugReportFlagBitsEXT")]
4608pub struct DebugReportFlagBitsEXT(u32);
4609impl DebugReportFlagBitsEXT {
4610 #[inline]
4611 pub const fn empty() -> Self {
4612 Self(0u32)
4613 }
4614 #[inline]
4615 pub const fn from_raw(value: u32) -> Self {
4616 Self(value)
4617 }
4618 #[inline]
4619 pub const fn as_raw(self) -> u32 {
4620 self.0
4621 }
4622 #[inline]
4623 pub const fn is_empty(self) -> bool {
4624 self.0 == 0u32
4625 }
4626 #[inline]
4627 pub const fn contains(self, other: Self) -> bool {
4628 (self.0 & other.0) == other.0
4629 }
4630 #[inline]
4631 pub const fn all() -> Self {
4632 Self(31u32)
4633 }
4634 pub const INFORMATION: Self = Self(1u32);
4636 pub const WARNING: Self = Self(2u32);
4638 pub const PERFORMANCE_WARNING: Self = Self(4u32);
4640 pub const ERROR: Self = Self(8u32);
4642 pub const DEBUG: Self = Self(16u32);
4644}
4645impl core::ops::BitOr for DebugReportFlagBitsEXT {
4646 type Output = Self;
4647 #[inline]
4648 fn bitor(self, rhs: Self) -> Self {
4649 Self(self.0 | rhs.0)
4650 }
4651}
4652impl core::ops::BitOrAssign for DebugReportFlagBitsEXT {
4653 #[inline]
4654 fn bitor_assign(&mut self, rhs: Self) {
4655 self.0 |= rhs.0;
4656 }
4657}
4658impl core::ops::BitAnd for DebugReportFlagBitsEXT {
4659 type Output = Self;
4660 #[inline]
4661 fn bitand(self, rhs: Self) -> Self {
4662 Self(self.0 & rhs.0)
4663 }
4664}
4665impl core::ops::BitAndAssign for DebugReportFlagBitsEXT {
4666 #[inline]
4667 fn bitand_assign(&mut self, rhs: Self) {
4668 self.0 &= rhs.0;
4669 }
4670}
4671impl core::ops::BitXor for DebugReportFlagBitsEXT {
4672 type Output = Self;
4673 #[inline]
4674 fn bitxor(self, rhs: Self) -> Self {
4675 Self(self.0 ^ rhs.0)
4676 }
4677}
4678impl core::ops::BitXorAssign for DebugReportFlagBitsEXT {
4679 #[inline]
4680 fn bitxor_assign(&mut self, rhs: Self) {
4681 self.0 ^= rhs.0;
4682 }
4683}
4684impl core::ops::Not for DebugReportFlagBitsEXT {
4685 type Output = Self;
4686 #[inline]
4687 fn not(self) -> Self {
4688 Self(!self.0)
4689 }
4690}
4691impl core::fmt::Debug for DebugReportFlagBitsEXT {
4692 #[allow(unused_mut, unused_variables)]
4693 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4694 let mut first = true;
4695 let mut remaining = self.0;
4696 if remaining & Self::INFORMATION.0 != 0 {
4697 if !first {
4698 f.write_str(" | ")?;
4699 }
4700 f.write_str("INFORMATION")?;
4701 remaining &= !Self::INFORMATION.0;
4702 first = false;
4703 }
4704 if remaining & Self::WARNING.0 != 0 {
4705 if !first {
4706 f.write_str(" | ")?;
4707 }
4708 f.write_str("WARNING")?;
4709 remaining &= !Self::WARNING.0;
4710 first = false;
4711 }
4712 if remaining & Self::PERFORMANCE_WARNING.0 != 0 {
4713 if !first {
4714 f.write_str(" | ")?;
4715 }
4716 f.write_str("PERFORMANCE_WARNING")?;
4717 remaining &= !Self::PERFORMANCE_WARNING.0;
4718 first = false;
4719 }
4720 if remaining & Self::ERROR.0 != 0 {
4721 if !first {
4722 f.write_str(" | ")?;
4723 }
4724 f.write_str("ERROR")?;
4725 remaining &= !Self::ERROR.0;
4726 first = false;
4727 }
4728 if remaining & Self::DEBUG.0 != 0 {
4729 if !first {
4730 f.write_str(" | ")?;
4731 }
4732 f.write_str("DEBUG")?;
4733 remaining &= !Self::DEBUG.0;
4734 first = false;
4735 }
4736 if remaining != 0u32 {
4737 if !first {
4738 f.write_str(" | ")?;
4739 }
4740 write!(f, "{:#x}", remaining)?;
4741 } else if first {
4742 f.write_str("(empty)")?;
4743 }
4744 Ok(())
4745 }
4746}
4747#[repr(transparent)]
4749#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4750#[doc(alias = "VkDebugUtilsMessageSeverityFlagBitsEXT")]
4751pub struct DebugUtilsMessageSeverityFlagBitsEXT(u32);
4752impl DebugUtilsMessageSeverityFlagBitsEXT {
4753 #[inline]
4754 pub const fn empty() -> Self {
4755 Self(0u32)
4756 }
4757 #[inline]
4758 pub const fn from_raw(value: u32) -> Self {
4759 Self(value)
4760 }
4761 #[inline]
4762 pub const fn as_raw(self) -> u32 {
4763 self.0
4764 }
4765 #[inline]
4766 pub const fn is_empty(self) -> bool {
4767 self.0 == 0u32
4768 }
4769 #[inline]
4770 pub const fn contains(self, other: Self) -> bool {
4771 (self.0 & other.0) == other.0
4772 }
4773 #[inline]
4774 pub const fn all() -> Self {
4775 Self(4369u32)
4776 }
4777 pub const VERBOSE: Self = Self(1u32);
4779 pub const INFO: Self = Self(16u32);
4781 pub const WARNING: Self = Self(256u32);
4783 pub const ERROR: Self = Self(4096u32);
4785}
4786impl core::ops::BitOr for DebugUtilsMessageSeverityFlagBitsEXT {
4787 type Output = Self;
4788 #[inline]
4789 fn bitor(self, rhs: Self) -> Self {
4790 Self(self.0 | rhs.0)
4791 }
4792}
4793impl core::ops::BitOrAssign for DebugUtilsMessageSeverityFlagBitsEXT {
4794 #[inline]
4795 fn bitor_assign(&mut self, rhs: Self) {
4796 self.0 |= rhs.0;
4797 }
4798}
4799impl core::ops::BitAnd for DebugUtilsMessageSeverityFlagBitsEXT {
4800 type Output = Self;
4801 #[inline]
4802 fn bitand(self, rhs: Self) -> Self {
4803 Self(self.0 & rhs.0)
4804 }
4805}
4806impl core::ops::BitAndAssign for DebugUtilsMessageSeverityFlagBitsEXT {
4807 #[inline]
4808 fn bitand_assign(&mut self, rhs: Self) {
4809 self.0 &= rhs.0;
4810 }
4811}
4812impl core::ops::BitXor for DebugUtilsMessageSeverityFlagBitsEXT {
4813 type Output = Self;
4814 #[inline]
4815 fn bitxor(self, rhs: Self) -> Self {
4816 Self(self.0 ^ rhs.0)
4817 }
4818}
4819impl core::ops::BitXorAssign for DebugUtilsMessageSeverityFlagBitsEXT {
4820 #[inline]
4821 fn bitxor_assign(&mut self, rhs: Self) {
4822 self.0 ^= rhs.0;
4823 }
4824}
4825impl core::ops::Not for DebugUtilsMessageSeverityFlagBitsEXT {
4826 type Output = Self;
4827 #[inline]
4828 fn not(self) -> Self {
4829 Self(!self.0)
4830 }
4831}
4832impl core::fmt::Debug for DebugUtilsMessageSeverityFlagBitsEXT {
4833 #[allow(unused_mut, unused_variables)]
4834 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4835 let mut first = true;
4836 let mut remaining = self.0;
4837 if remaining & Self::VERBOSE.0 != 0 {
4838 if !first {
4839 f.write_str(" | ")?;
4840 }
4841 f.write_str("VERBOSE")?;
4842 remaining &= !Self::VERBOSE.0;
4843 first = false;
4844 }
4845 if remaining & Self::INFO.0 != 0 {
4846 if !first {
4847 f.write_str(" | ")?;
4848 }
4849 f.write_str("INFO")?;
4850 remaining &= !Self::INFO.0;
4851 first = false;
4852 }
4853 if remaining & Self::WARNING.0 != 0 {
4854 if !first {
4855 f.write_str(" | ")?;
4856 }
4857 f.write_str("WARNING")?;
4858 remaining &= !Self::WARNING.0;
4859 first = false;
4860 }
4861 if remaining & Self::ERROR.0 != 0 {
4862 if !first {
4863 f.write_str(" | ")?;
4864 }
4865 f.write_str("ERROR")?;
4866 remaining &= !Self::ERROR.0;
4867 first = false;
4868 }
4869 if remaining != 0u32 {
4870 if !first {
4871 f.write_str(" | ")?;
4872 }
4873 write!(f, "{:#x}", remaining)?;
4874 } else if first {
4875 f.write_str("(empty)")?;
4876 }
4877 Ok(())
4878 }
4879}
4880#[repr(transparent)]
4882#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
4883#[doc(alias = "VkDebugUtilsMessageTypeFlagBitsEXT")]
4884pub struct DebugUtilsMessageTypeFlagBitsEXT(u32);
4885impl DebugUtilsMessageTypeFlagBitsEXT {
4886 #[inline]
4887 pub const fn empty() -> Self {
4888 Self(0u32)
4889 }
4890 #[inline]
4891 pub const fn from_raw(value: u32) -> Self {
4892 Self(value)
4893 }
4894 #[inline]
4895 pub const fn as_raw(self) -> u32 {
4896 self.0
4897 }
4898 #[inline]
4899 pub const fn is_empty(self) -> bool {
4900 self.0 == 0u32
4901 }
4902 #[inline]
4903 pub const fn contains(self, other: Self) -> bool {
4904 (self.0 & other.0) == other.0
4905 }
4906 #[inline]
4907 pub const fn all() -> Self {
4908 Self(15u32)
4909 }
4910 pub const GENERAL: Self = Self(1u32);
4912 pub const VALIDATION: Self = Self(2u32);
4914 pub const PERFORMANCE: Self = Self(4u32);
4916 pub const DEVICE_ADDRESS_BINDING: Self = Self(8u32);
4918}
4919impl core::ops::BitOr for DebugUtilsMessageTypeFlagBitsEXT {
4920 type Output = Self;
4921 #[inline]
4922 fn bitor(self, rhs: Self) -> Self {
4923 Self(self.0 | rhs.0)
4924 }
4925}
4926impl core::ops::BitOrAssign for DebugUtilsMessageTypeFlagBitsEXT {
4927 #[inline]
4928 fn bitor_assign(&mut self, rhs: Self) {
4929 self.0 |= rhs.0;
4930 }
4931}
4932impl core::ops::BitAnd for DebugUtilsMessageTypeFlagBitsEXT {
4933 type Output = Self;
4934 #[inline]
4935 fn bitand(self, rhs: Self) -> Self {
4936 Self(self.0 & rhs.0)
4937 }
4938}
4939impl core::ops::BitAndAssign for DebugUtilsMessageTypeFlagBitsEXT {
4940 #[inline]
4941 fn bitand_assign(&mut self, rhs: Self) {
4942 self.0 &= rhs.0;
4943 }
4944}
4945impl core::ops::BitXor for DebugUtilsMessageTypeFlagBitsEXT {
4946 type Output = Self;
4947 #[inline]
4948 fn bitxor(self, rhs: Self) -> Self {
4949 Self(self.0 ^ rhs.0)
4950 }
4951}
4952impl core::ops::BitXorAssign for DebugUtilsMessageTypeFlagBitsEXT {
4953 #[inline]
4954 fn bitxor_assign(&mut self, rhs: Self) {
4955 self.0 ^= rhs.0;
4956 }
4957}
4958impl core::ops::Not for DebugUtilsMessageTypeFlagBitsEXT {
4959 type Output = Self;
4960 #[inline]
4961 fn not(self) -> Self {
4962 Self(!self.0)
4963 }
4964}
4965impl core::fmt::Debug for DebugUtilsMessageTypeFlagBitsEXT {
4966 #[allow(unused_mut, unused_variables)]
4967 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
4968 let mut first = true;
4969 let mut remaining = self.0;
4970 if remaining & Self::GENERAL.0 != 0 {
4971 if !first {
4972 f.write_str(" | ")?;
4973 }
4974 f.write_str("GENERAL")?;
4975 remaining &= !Self::GENERAL.0;
4976 first = false;
4977 }
4978 if remaining & Self::VALIDATION.0 != 0 {
4979 if !first {
4980 f.write_str(" | ")?;
4981 }
4982 f.write_str("VALIDATION")?;
4983 remaining &= !Self::VALIDATION.0;
4984 first = false;
4985 }
4986 if remaining & Self::PERFORMANCE.0 != 0 {
4987 if !first {
4988 f.write_str(" | ")?;
4989 }
4990 f.write_str("PERFORMANCE")?;
4991 remaining &= !Self::PERFORMANCE.0;
4992 first = false;
4993 }
4994 if remaining & Self::DEVICE_ADDRESS_BINDING.0 != 0 {
4995 if !first {
4996 f.write_str(" | ")?;
4997 }
4998 f.write_str("DEVICE_ADDRESS_BINDING")?;
4999 remaining &= !Self::DEVICE_ADDRESS_BINDING.0;
5000 first = false;
5001 }
5002 if remaining != 0u32 {
5003 if !first {
5004 f.write_str(" | ")?;
5005 }
5006 write!(f, "{:#x}", remaining)?;
5007 } else if first {
5008 f.write_str("(empty)")?;
5009 }
5010 Ok(())
5011 }
5012}
5013#[repr(transparent)]
5015#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5016#[doc(alias = "VkDependencyFlagBits")]
5017pub struct DependencyFlagBits(u32);
5018impl DependencyFlagBits {
5019 #[inline]
5020 pub const fn empty() -> Self {
5021 Self(0u32)
5022 }
5023 #[inline]
5024 pub const fn from_raw(value: u32) -> Self {
5025 Self(value)
5026 }
5027 #[inline]
5028 pub const fn as_raw(self) -> u32 {
5029 self.0
5030 }
5031 #[inline]
5032 pub const fn is_empty(self) -> bool {
5033 self.0 == 0u32
5034 }
5035 #[inline]
5036 pub const fn contains(self, other: Self) -> bool {
5037 (self.0 & other.0) == other.0
5038 }
5039 #[inline]
5040 pub const fn all() -> Self {
5041 Self(111u32)
5042 }
5043 pub const BY_REGION: Self = Self(1u32);
5045 pub const DEVICE_GROUP: Self = Self(4u32);
5047 pub const VIEW_LOCAL: Self = Self(2u32);
5049 pub const FEEDBACK_LOOP: Self = Self(8u32);
5051 pub const QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES: Self = Self(32u32);
5053 pub const ASYMMETRIC_EVENT: Self = Self(64u32);
5055}
5056impl core::ops::BitOr for DependencyFlagBits {
5057 type Output = Self;
5058 #[inline]
5059 fn bitor(self, rhs: Self) -> Self {
5060 Self(self.0 | rhs.0)
5061 }
5062}
5063impl core::ops::BitOrAssign for DependencyFlagBits {
5064 #[inline]
5065 fn bitor_assign(&mut self, rhs: Self) {
5066 self.0 |= rhs.0;
5067 }
5068}
5069impl core::ops::BitAnd for DependencyFlagBits {
5070 type Output = Self;
5071 #[inline]
5072 fn bitand(self, rhs: Self) -> Self {
5073 Self(self.0 & rhs.0)
5074 }
5075}
5076impl core::ops::BitAndAssign for DependencyFlagBits {
5077 #[inline]
5078 fn bitand_assign(&mut self, rhs: Self) {
5079 self.0 &= rhs.0;
5080 }
5081}
5082impl core::ops::BitXor for DependencyFlagBits {
5083 type Output = Self;
5084 #[inline]
5085 fn bitxor(self, rhs: Self) -> Self {
5086 Self(self.0 ^ rhs.0)
5087 }
5088}
5089impl core::ops::BitXorAssign for DependencyFlagBits {
5090 #[inline]
5091 fn bitxor_assign(&mut self, rhs: Self) {
5092 self.0 ^= rhs.0;
5093 }
5094}
5095impl core::ops::Not for DependencyFlagBits {
5096 type Output = Self;
5097 #[inline]
5098 fn not(self) -> Self {
5099 Self(!self.0)
5100 }
5101}
5102impl core::fmt::Debug for DependencyFlagBits {
5103 #[allow(unused_mut, unused_variables)]
5104 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5105 let mut first = true;
5106 let mut remaining = self.0;
5107 if remaining & Self::BY_REGION.0 != 0 {
5108 if !first {
5109 f.write_str(" | ")?;
5110 }
5111 f.write_str("BY_REGION")?;
5112 remaining &= !Self::BY_REGION.0;
5113 first = false;
5114 }
5115 if remaining & Self::DEVICE_GROUP.0 != 0 {
5116 if !first {
5117 f.write_str(" | ")?;
5118 }
5119 f.write_str("DEVICE_GROUP")?;
5120 remaining &= !Self::DEVICE_GROUP.0;
5121 first = false;
5122 }
5123 if remaining & Self::VIEW_LOCAL.0 != 0 {
5124 if !first {
5125 f.write_str(" | ")?;
5126 }
5127 f.write_str("VIEW_LOCAL")?;
5128 remaining &= !Self::VIEW_LOCAL.0;
5129 first = false;
5130 }
5131 if remaining & Self::FEEDBACK_LOOP.0 != 0 {
5132 if !first {
5133 f.write_str(" | ")?;
5134 }
5135 f.write_str("FEEDBACK_LOOP")?;
5136 remaining &= !Self::FEEDBACK_LOOP.0;
5137 first = false;
5138 }
5139 if remaining & Self::QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES.0 != 0 {
5140 if !first {
5141 f.write_str(" | ")?;
5142 }
5143 f.write_str("QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES")?;
5144 remaining &= !Self::QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES.0;
5145 first = false;
5146 }
5147 if remaining & Self::ASYMMETRIC_EVENT.0 != 0 {
5148 if !first {
5149 f.write_str(" | ")?;
5150 }
5151 f.write_str("ASYMMETRIC_EVENT")?;
5152 remaining &= !Self::ASYMMETRIC_EVENT.0;
5153 first = false;
5154 }
5155 if remaining != 0u32 {
5156 if !first {
5157 f.write_str(" | ")?;
5158 }
5159 write!(f, "{:#x}", remaining)?;
5160 } else if first {
5161 f.write_str("(empty)")?;
5162 }
5163 Ok(())
5164 }
5165}
5166#[repr(transparent)]
5168#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5169#[doc(alias = "VkDescriptorBindingFlagBits")]
5170pub struct DescriptorBindingFlagBits(u32);
5171impl DescriptorBindingFlagBits {
5172 #[inline]
5173 pub const fn empty() -> Self {
5174 Self(0u32)
5175 }
5176 #[inline]
5177 pub const fn from_raw(value: u32) -> Self {
5178 Self(value)
5179 }
5180 #[inline]
5181 pub const fn as_raw(self) -> u32 {
5182 self.0
5183 }
5184 #[inline]
5185 pub const fn is_empty(self) -> bool {
5186 self.0 == 0u32
5187 }
5188 #[inline]
5189 pub const fn contains(self, other: Self) -> bool {
5190 (self.0 & other.0) == other.0
5191 }
5192 #[inline]
5193 pub const fn all() -> Self {
5194 Self(15u32)
5195 }
5196 pub const UPDATE_AFTER_BIND: Self = Self(1u32);
5198 pub const UPDATE_UNUSED_WHILE_PENDING: Self = Self(2u32);
5200 pub const PARTIALLY_BOUND: Self = Self(4u32);
5202 pub const VARIABLE_DESCRIPTOR_COUNT: Self = Self(8u32);
5204}
5205impl core::ops::BitOr for DescriptorBindingFlagBits {
5206 type Output = Self;
5207 #[inline]
5208 fn bitor(self, rhs: Self) -> Self {
5209 Self(self.0 | rhs.0)
5210 }
5211}
5212impl core::ops::BitOrAssign for DescriptorBindingFlagBits {
5213 #[inline]
5214 fn bitor_assign(&mut self, rhs: Self) {
5215 self.0 |= rhs.0;
5216 }
5217}
5218impl core::ops::BitAnd for DescriptorBindingFlagBits {
5219 type Output = Self;
5220 #[inline]
5221 fn bitand(self, rhs: Self) -> Self {
5222 Self(self.0 & rhs.0)
5223 }
5224}
5225impl core::ops::BitAndAssign for DescriptorBindingFlagBits {
5226 #[inline]
5227 fn bitand_assign(&mut self, rhs: Self) {
5228 self.0 &= rhs.0;
5229 }
5230}
5231impl core::ops::BitXor for DescriptorBindingFlagBits {
5232 type Output = Self;
5233 #[inline]
5234 fn bitxor(self, rhs: Self) -> Self {
5235 Self(self.0 ^ rhs.0)
5236 }
5237}
5238impl core::ops::BitXorAssign for DescriptorBindingFlagBits {
5239 #[inline]
5240 fn bitxor_assign(&mut self, rhs: Self) {
5241 self.0 ^= rhs.0;
5242 }
5243}
5244impl core::ops::Not for DescriptorBindingFlagBits {
5245 type Output = Self;
5246 #[inline]
5247 fn not(self) -> Self {
5248 Self(!self.0)
5249 }
5250}
5251impl core::fmt::Debug for DescriptorBindingFlagBits {
5252 #[allow(unused_mut, unused_variables)]
5253 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5254 let mut first = true;
5255 let mut remaining = self.0;
5256 if remaining & Self::UPDATE_AFTER_BIND.0 != 0 {
5257 if !first {
5258 f.write_str(" | ")?;
5259 }
5260 f.write_str("UPDATE_AFTER_BIND")?;
5261 remaining &= !Self::UPDATE_AFTER_BIND.0;
5262 first = false;
5263 }
5264 if remaining & Self::UPDATE_UNUSED_WHILE_PENDING.0 != 0 {
5265 if !first {
5266 f.write_str(" | ")?;
5267 }
5268 f.write_str("UPDATE_UNUSED_WHILE_PENDING")?;
5269 remaining &= !Self::UPDATE_UNUSED_WHILE_PENDING.0;
5270 first = false;
5271 }
5272 if remaining & Self::PARTIALLY_BOUND.0 != 0 {
5273 if !first {
5274 f.write_str(" | ")?;
5275 }
5276 f.write_str("PARTIALLY_BOUND")?;
5277 remaining &= !Self::PARTIALLY_BOUND.0;
5278 first = false;
5279 }
5280 if remaining & Self::VARIABLE_DESCRIPTOR_COUNT.0 != 0 {
5281 if !first {
5282 f.write_str(" | ")?;
5283 }
5284 f.write_str("VARIABLE_DESCRIPTOR_COUNT")?;
5285 remaining &= !Self::VARIABLE_DESCRIPTOR_COUNT.0;
5286 first = false;
5287 }
5288 if remaining != 0u32 {
5289 if !first {
5290 f.write_str(" | ")?;
5291 }
5292 write!(f, "{:#x}", remaining)?;
5293 } else if first {
5294 f.write_str("(empty)")?;
5295 }
5296 Ok(())
5297 }
5298}
5299#[repr(transparent)]
5301#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5302#[doc(alias = "VkDescriptorPoolCreateFlagBits")]
5303pub struct DescriptorPoolCreateFlagBits(u32);
5304impl DescriptorPoolCreateFlagBits {
5305 #[inline]
5306 pub const fn empty() -> Self {
5307 Self(0u32)
5308 }
5309 #[inline]
5310 pub const fn from_raw(value: u32) -> Self {
5311 Self(value)
5312 }
5313 #[inline]
5314 pub const fn as_raw(self) -> u32 {
5315 self.0
5316 }
5317 #[inline]
5318 pub const fn is_empty(self) -> bool {
5319 self.0 == 0u32
5320 }
5321 #[inline]
5322 pub const fn contains(self, other: Self) -> bool {
5323 (self.0 & other.0) == other.0
5324 }
5325 #[inline]
5326 pub const fn all() -> Self {
5327 Self(31u32)
5328 }
5329 pub const FREE_DESCRIPTOR_SET: Self = Self(1u32);
5331 pub const UPDATE_AFTER_BIND: Self = Self(2u32);
5333 pub const HOST_ONLY_BIT: Self = Self::HOST_ONLY;
5334 pub const HOST_ONLY: Self = Self(4u32);
5336 pub const ALLOW_OVERALLOCATION_SETS: Self = Self(8u32);
5338 pub const ALLOW_OVERALLOCATION_POOLS: Self = Self(16u32);
5340}
5341impl core::ops::BitOr for DescriptorPoolCreateFlagBits {
5342 type Output = Self;
5343 #[inline]
5344 fn bitor(self, rhs: Self) -> Self {
5345 Self(self.0 | rhs.0)
5346 }
5347}
5348impl core::ops::BitOrAssign for DescriptorPoolCreateFlagBits {
5349 #[inline]
5350 fn bitor_assign(&mut self, rhs: Self) {
5351 self.0 |= rhs.0;
5352 }
5353}
5354impl core::ops::BitAnd for DescriptorPoolCreateFlagBits {
5355 type Output = Self;
5356 #[inline]
5357 fn bitand(self, rhs: Self) -> Self {
5358 Self(self.0 & rhs.0)
5359 }
5360}
5361impl core::ops::BitAndAssign for DescriptorPoolCreateFlagBits {
5362 #[inline]
5363 fn bitand_assign(&mut self, rhs: Self) {
5364 self.0 &= rhs.0;
5365 }
5366}
5367impl core::ops::BitXor for DescriptorPoolCreateFlagBits {
5368 type Output = Self;
5369 #[inline]
5370 fn bitxor(self, rhs: Self) -> Self {
5371 Self(self.0 ^ rhs.0)
5372 }
5373}
5374impl core::ops::BitXorAssign for DescriptorPoolCreateFlagBits {
5375 #[inline]
5376 fn bitxor_assign(&mut self, rhs: Self) {
5377 self.0 ^= rhs.0;
5378 }
5379}
5380impl core::ops::Not for DescriptorPoolCreateFlagBits {
5381 type Output = Self;
5382 #[inline]
5383 fn not(self) -> Self {
5384 Self(!self.0)
5385 }
5386}
5387impl core::fmt::Debug for DescriptorPoolCreateFlagBits {
5388 #[allow(unused_mut, unused_variables)]
5389 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5390 let mut first = true;
5391 let mut remaining = self.0;
5392 if remaining & Self::FREE_DESCRIPTOR_SET.0 != 0 {
5393 if !first {
5394 f.write_str(" | ")?;
5395 }
5396 f.write_str("FREE_DESCRIPTOR_SET")?;
5397 remaining &= !Self::FREE_DESCRIPTOR_SET.0;
5398 first = false;
5399 }
5400 if remaining & Self::UPDATE_AFTER_BIND.0 != 0 {
5401 if !first {
5402 f.write_str(" | ")?;
5403 }
5404 f.write_str("UPDATE_AFTER_BIND")?;
5405 remaining &= !Self::UPDATE_AFTER_BIND.0;
5406 first = false;
5407 }
5408 if remaining & Self::HOST_ONLY.0 != 0 {
5409 if !first {
5410 f.write_str(" | ")?;
5411 }
5412 f.write_str("HOST_ONLY")?;
5413 remaining &= !Self::HOST_ONLY.0;
5414 first = false;
5415 }
5416 if remaining & Self::ALLOW_OVERALLOCATION_SETS.0 != 0 {
5417 if !first {
5418 f.write_str(" | ")?;
5419 }
5420 f.write_str("ALLOW_OVERALLOCATION_SETS")?;
5421 remaining &= !Self::ALLOW_OVERALLOCATION_SETS.0;
5422 first = false;
5423 }
5424 if remaining & Self::ALLOW_OVERALLOCATION_POOLS.0 != 0 {
5425 if !first {
5426 f.write_str(" | ")?;
5427 }
5428 f.write_str("ALLOW_OVERALLOCATION_POOLS")?;
5429 remaining &= !Self::ALLOW_OVERALLOCATION_POOLS.0;
5430 first = false;
5431 }
5432 if remaining != 0u32 {
5433 if !first {
5434 f.write_str(" | ")?;
5435 }
5436 write!(f, "{:#x}", remaining)?;
5437 } else if first {
5438 f.write_str("(empty)")?;
5439 }
5440 Ok(())
5441 }
5442}
5443#[repr(transparent)]
5445#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5446#[doc(alias = "VkDescriptorSetLayoutCreateFlagBits")]
5447pub struct DescriptorSetLayoutCreateFlagBits(u32);
5448impl DescriptorSetLayoutCreateFlagBits {
5449 #[inline]
5450 pub const fn empty() -> Self {
5451 Self(0u32)
5452 }
5453 #[inline]
5454 pub const fn from_raw(value: u32) -> Self {
5455 Self(value)
5456 }
5457 #[inline]
5458 pub const fn as_raw(self) -> u32 {
5459 self.0
5460 }
5461 #[inline]
5462 pub const fn is_empty(self) -> bool {
5463 self.0 == 0u32
5464 }
5465 #[inline]
5466 pub const fn contains(self, other: Self) -> bool {
5467 (self.0 & other.0) == other.0
5468 }
5469 #[inline]
5470 pub const fn all() -> Self {
5471 Self(247u32)
5472 }
5473 pub const UPDATE_AFTER_BIND_POOL: Self = Self(2u32);
5475 pub const PUSH_DESCRIPTOR: Self = Self(1u32);
5477 pub const DESCRIPTOR_BUFFER: Self = Self(16u32);
5479 pub const EMBEDDED_IMMUTABLE_SAMPLERS: Self = Self(32u32);
5481 pub const HOST_ONLY_POOL_BIT: Self = Self::HOST_ONLY_POOL;
5482 pub const INDIRECT_BINDABLE: Self = Self(128u32);
5484 pub const HOST_ONLY_POOL: Self = Self(4u32);
5486 pub const PER_STAGE: Self = Self(64u32);
5488}
5489impl core::ops::BitOr for DescriptorSetLayoutCreateFlagBits {
5490 type Output = Self;
5491 #[inline]
5492 fn bitor(self, rhs: Self) -> Self {
5493 Self(self.0 | rhs.0)
5494 }
5495}
5496impl core::ops::BitOrAssign for DescriptorSetLayoutCreateFlagBits {
5497 #[inline]
5498 fn bitor_assign(&mut self, rhs: Self) {
5499 self.0 |= rhs.0;
5500 }
5501}
5502impl core::ops::BitAnd for DescriptorSetLayoutCreateFlagBits {
5503 type Output = Self;
5504 #[inline]
5505 fn bitand(self, rhs: Self) -> Self {
5506 Self(self.0 & rhs.0)
5507 }
5508}
5509impl core::ops::BitAndAssign for DescriptorSetLayoutCreateFlagBits {
5510 #[inline]
5511 fn bitand_assign(&mut self, rhs: Self) {
5512 self.0 &= rhs.0;
5513 }
5514}
5515impl core::ops::BitXor for DescriptorSetLayoutCreateFlagBits {
5516 type Output = Self;
5517 #[inline]
5518 fn bitxor(self, rhs: Self) -> Self {
5519 Self(self.0 ^ rhs.0)
5520 }
5521}
5522impl core::ops::BitXorAssign for DescriptorSetLayoutCreateFlagBits {
5523 #[inline]
5524 fn bitxor_assign(&mut self, rhs: Self) {
5525 self.0 ^= rhs.0;
5526 }
5527}
5528impl core::ops::Not for DescriptorSetLayoutCreateFlagBits {
5529 type Output = Self;
5530 #[inline]
5531 fn not(self) -> Self {
5532 Self(!self.0)
5533 }
5534}
5535impl core::fmt::Debug for DescriptorSetLayoutCreateFlagBits {
5536 #[allow(unused_mut, unused_variables)]
5537 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5538 let mut first = true;
5539 let mut remaining = self.0;
5540 if remaining & Self::UPDATE_AFTER_BIND_POOL.0 != 0 {
5541 if !first {
5542 f.write_str(" | ")?;
5543 }
5544 f.write_str("UPDATE_AFTER_BIND_POOL")?;
5545 remaining &= !Self::UPDATE_AFTER_BIND_POOL.0;
5546 first = false;
5547 }
5548 if remaining & Self::PUSH_DESCRIPTOR.0 != 0 {
5549 if !first {
5550 f.write_str(" | ")?;
5551 }
5552 f.write_str("PUSH_DESCRIPTOR")?;
5553 remaining &= !Self::PUSH_DESCRIPTOR.0;
5554 first = false;
5555 }
5556 if remaining & Self::DESCRIPTOR_BUFFER.0 != 0 {
5557 if !first {
5558 f.write_str(" | ")?;
5559 }
5560 f.write_str("DESCRIPTOR_BUFFER")?;
5561 remaining &= !Self::DESCRIPTOR_BUFFER.0;
5562 first = false;
5563 }
5564 if remaining & Self::EMBEDDED_IMMUTABLE_SAMPLERS.0 != 0 {
5565 if !first {
5566 f.write_str(" | ")?;
5567 }
5568 f.write_str("EMBEDDED_IMMUTABLE_SAMPLERS")?;
5569 remaining &= !Self::EMBEDDED_IMMUTABLE_SAMPLERS.0;
5570 first = false;
5571 }
5572 if remaining & Self::INDIRECT_BINDABLE.0 != 0 {
5573 if !first {
5574 f.write_str(" | ")?;
5575 }
5576 f.write_str("INDIRECT_BINDABLE")?;
5577 remaining &= !Self::INDIRECT_BINDABLE.0;
5578 first = false;
5579 }
5580 if remaining & Self::HOST_ONLY_POOL.0 != 0 {
5581 if !first {
5582 f.write_str(" | ")?;
5583 }
5584 f.write_str("HOST_ONLY_POOL")?;
5585 remaining &= !Self::HOST_ONLY_POOL.0;
5586 first = false;
5587 }
5588 if remaining & Self::PER_STAGE.0 != 0 {
5589 if !first {
5590 f.write_str(" | ")?;
5591 }
5592 f.write_str("PER_STAGE")?;
5593 remaining &= !Self::PER_STAGE.0;
5594 first = false;
5595 }
5596 if remaining != 0u32 {
5597 if !first {
5598 f.write_str(" | ")?;
5599 }
5600 write!(f, "{:#x}", remaining)?;
5601 } else if first {
5602 f.write_str("(empty)")?;
5603 }
5604 Ok(())
5605 }
5606}
5607#[repr(transparent)]
5609#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5610#[doc(alias = "VkDeviceAddressBindingFlagBitsEXT")]
5611pub struct DeviceAddressBindingFlagBitsEXT(u32);
5612impl DeviceAddressBindingFlagBitsEXT {
5613 #[inline]
5614 pub const fn empty() -> Self {
5615 Self(0u32)
5616 }
5617 #[inline]
5618 pub const fn from_raw(value: u32) -> Self {
5619 Self(value)
5620 }
5621 #[inline]
5622 pub const fn as_raw(self) -> u32 {
5623 self.0
5624 }
5625 #[inline]
5626 pub const fn is_empty(self) -> bool {
5627 self.0 == 0u32
5628 }
5629 #[inline]
5630 pub const fn contains(self, other: Self) -> bool {
5631 (self.0 & other.0) == other.0
5632 }
5633 #[inline]
5634 pub const fn all() -> Self {
5635 Self(1u32)
5636 }
5637 pub const INTERNAL_OBJECT: Self = Self(1u32);
5639}
5640impl core::ops::BitOr for DeviceAddressBindingFlagBitsEXT {
5641 type Output = Self;
5642 #[inline]
5643 fn bitor(self, rhs: Self) -> Self {
5644 Self(self.0 | rhs.0)
5645 }
5646}
5647impl core::ops::BitOrAssign for DeviceAddressBindingFlagBitsEXT {
5648 #[inline]
5649 fn bitor_assign(&mut self, rhs: Self) {
5650 self.0 |= rhs.0;
5651 }
5652}
5653impl core::ops::BitAnd for DeviceAddressBindingFlagBitsEXT {
5654 type Output = Self;
5655 #[inline]
5656 fn bitand(self, rhs: Self) -> Self {
5657 Self(self.0 & rhs.0)
5658 }
5659}
5660impl core::ops::BitAndAssign for DeviceAddressBindingFlagBitsEXT {
5661 #[inline]
5662 fn bitand_assign(&mut self, rhs: Self) {
5663 self.0 &= rhs.0;
5664 }
5665}
5666impl core::ops::BitXor for DeviceAddressBindingFlagBitsEXT {
5667 type Output = Self;
5668 #[inline]
5669 fn bitxor(self, rhs: Self) -> Self {
5670 Self(self.0 ^ rhs.0)
5671 }
5672}
5673impl core::ops::BitXorAssign for DeviceAddressBindingFlagBitsEXT {
5674 #[inline]
5675 fn bitxor_assign(&mut self, rhs: Self) {
5676 self.0 ^= rhs.0;
5677 }
5678}
5679impl core::ops::Not for DeviceAddressBindingFlagBitsEXT {
5680 type Output = Self;
5681 #[inline]
5682 fn not(self) -> Self {
5683 Self(!self.0)
5684 }
5685}
5686impl core::fmt::Debug for DeviceAddressBindingFlagBitsEXT {
5687 #[allow(unused_mut, unused_variables)]
5688 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5689 let mut first = true;
5690 let mut remaining = self.0;
5691 if remaining & Self::INTERNAL_OBJECT.0 != 0 {
5692 if !first {
5693 f.write_str(" | ")?;
5694 }
5695 f.write_str("INTERNAL_OBJECT")?;
5696 remaining &= !Self::INTERNAL_OBJECT.0;
5697 first = false;
5698 }
5699 if remaining != 0u32 {
5700 if !first {
5701 f.write_str(" | ")?;
5702 }
5703 write!(f, "{:#x}", remaining)?;
5704 } else if first {
5705 f.write_str("(empty)")?;
5706 }
5707 Ok(())
5708 }
5709}
5710#[repr(transparent)]
5712#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5713#[doc(alias = "VkDeviceDiagnosticsConfigFlagBitsNV")]
5714pub struct DeviceDiagnosticsConfigFlagBitsNV(u32);
5715impl DeviceDiagnosticsConfigFlagBitsNV {
5716 #[inline]
5717 pub const fn empty() -> Self {
5718 Self(0u32)
5719 }
5720 #[inline]
5721 pub const fn from_raw(value: u32) -> Self {
5722 Self(value)
5723 }
5724 #[inline]
5725 pub const fn as_raw(self) -> u32 {
5726 self.0
5727 }
5728 #[inline]
5729 pub const fn is_empty(self) -> bool {
5730 self.0 == 0u32
5731 }
5732 #[inline]
5733 pub const fn contains(self, other: Self) -> bool {
5734 (self.0 & other.0) == other.0
5735 }
5736 #[inline]
5737 pub const fn all() -> Self {
5738 Self(15u32)
5739 }
5740 pub const ENABLE_SHADER_DEBUG_INFO: Self = Self(1u32);
5742 pub const ENABLE_RESOURCE_TRACKING: Self = Self(2u32);
5744 pub const ENABLE_AUTOMATIC_CHECKPOINTS: Self = Self(4u32);
5746 pub const ENABLE_SHADER_ERROR_REPORTING: Self = Self(8u32);
5748}
5749impl core::ops::BitOr for DeviceDiagnosticsConfigFlagBitsNV {
5750 type Output = Self;
5751 #[inline]
5752 fn bitor(self, rhs: Self) -> Self {
5753 Self(self.0 | rhs.0)
5754 }
5755}
5756impl core::ops::BitOrAssign for DeviceDiagnosticsConfigFlagBitsNV {
5757 #[inline]
5758 fn bitor_assign(&mut self, rhs: Self) {
5759 self.0 |= rhs.0;
5760 }
5761}
5762impl core::ops::BitAnd for DeviceDiagnosticsConfigFlagBitsNV {
5763 type Output = Self;
5764 #[inline]
5765 fn bitand(self, rhs: Self) -> Self {
5766 Self(self.0 & rhs.0)
5767 }
5768}
5769impl core::ops::BitAndAssign for DeviceDiagnosticsConfigFlagBitsNV {
5770 #[inline]
5771 fn bitand_assign(&mut self, rhs: Self) {
5772 self.0 &= rhs.0;
5773 }
5774}
5775impl core::ops::BitXor for DeviceDiagnosticsConfigFlagBitsNV {
5776 type Output = Self;
5777 #[inline]
5778 fn bitxor(self, rhs: Self) -> Self {
5779 Self(self.0 ^ rhs.0)
5780 }
5781}
5782impl core::ops::BitXorAssign for DeviceDiagnosticsConfigFlagBitsNV {
5783 #[inline]
5784 fn bitxor_assign(&mut self, rhs: Self) {
5785 self.0 ^= rhs.0;
5786 }
5787}
5788impl core::ops::Not for DeviceDiagnosticsConfigFlagBitsNV {
5789 type Output = Self;
5790 #[inline]
5791 fn not(self) -> Self {
5792 Self(!self.0)
5793 }
5794}
5795impl core::fmt::Debug for DeviceDiagnosticsConfigFlagBitsNV {
5796 #[allow(unused_mut, unused_variables)]
5797 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5798 let mut first = true;
5799 let mut remaining = self.0;
5800 if remaining & Self::ENABLE_SHADER_DEBUG_INFO.0 != 0 {
5801 if !first {
5802 f.write_str(" | ")?;
5803 }
5804 f.write_str("ENABLE_SHADER_DEBUG_INFO")?;
5805 remaining &= !Self::ENABLE_SHADER_DEBUG_INFO.0;
5806 first = false;
5807 }
5808 if remaining & Self::ENABLE_RESOURCE_TRACKING.0 != 0 {
5809 if !first {
5810 f.write_str(" | ")?;
5811 }
5812 f.write_str("ENABLE_RESOURCE_TRACKING")?;
5813 remaining &= !Self::ENABLE_RESOURCE_TRACKING.0;
5814 first = false;
5815 }
5816 if remaining & Self::ENABLE_AUTOMATIC_CHECKPOINTS.0 != 0 {
5817 if !first {
5818 f.write_str(" | ")?;
5819 }
5820 f.write_str("ENABLE_AUTOMATIC_CHECKPOINTS")?;
5821 remaining &= !Self::ENABLE_AUTOMATIC_CHECKPOINTS.0;
5822 first = false;
5823 }
5824 if remaining & Self::ENABLE_SHADER_ERROR_REPORTING.0 != 0 {
5825 if !first {
5826 f.write_str(" | ")?;
5827 }
5828 f.write_str("ENABLE_SHADER_ERROR_REPORTING")?;
5829 remaining &= !Self::ENABLE_SHADER_ERROR_REPORTING.0;
5830 first = false;
5831 }
5832 if remaining != 0u32 {
5833 if !first {
5834 f.write_str(" | ")?;
5835 }
5836 write!(f, "{:#x}", remaining)?;
5837 } else if first {
5838 f.write_str("(empty)")?;
5839 }
5840 Ok(())
5841 }
5842}
5843#[repr(transparent)]
5845#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5846#[doc(alias = "VkDeviceFaultFlagBitsKHR")]
5847pub struct DeviceFaultFlagBitsKHR(u32);
5848impl DeviceFaultFlagBitsKHR {
5849 #[inline]
5850 pub const fn empty() -> Self {
5851 Self(0u32)
5852 }
5853 #[inline]
5854 pub const fn from_raw(value: u32) -> Self {
5855 Self(value)
5856 }
5857 #[inline]
5858 pub const fn as_raw(self) -> u32 {
5859 self.0
5860 }
5861 #[inline]
5862 pub const fn is_empty(self) -> bool {
5863 self.0 == 0u32
5864 }
5865 #[inline]
5866 pub const fn contains(self, other: Self) -> bool {
5867 (self.0 & other.0) == other.0
5868 }
5869 #[inline]
5870 pub const fn all() -> Self {
5871 Self(63u32)
5872 }
5873 pub const FLAG_DEVICE_LOST: Self = Self(1u32);
5875 pub const FLAG_MEMORY_ADDRESS: Self = Self(2u32);
5877 pub const FLAG_INSTRUCTION_ADDRESS: Self = Self(4u32);
5879 pub const FLAG_VENDOR: Self = Self(8u32);
5881 pub const FLAG_WATCHDOG_TIMEOUT: Self = Self(16u32);
5883 pub const FLAG_OVERFLOW: Self = Self(32u32);
5885}
5886impl core::ops::BitOr for DeviceFaultFlagBitsKHR {
5887 type Output = Self;
5888 #[inline]
5889 fn bitor(self, rhs: Self) -> Self {
5890 Self(self.0 | rhs.0)
5891 }
5892}
5893impl core::ops::BitOrAssign for DeviceFaultFlagBitsKHR {
5894 #[inline]
5895 fn bitor_assign(&mut self, rhs: Self) {
5896 self.0 |= rhs.0;
5897 }
5898}
5899impl core::ops::BitAnd for DeviceFaultFlagBitsKHR {
5900 type Output = Self;
5901 #[inline]
5902 fn bitand(self, rhs: Self) -> Self {
5903 Self(self.0 & rhs.0)
5904 }
5905}
5906impl core::ops::BitAndAssign for DeviceFaultFlagBitsKHR {
5907 #[inline]
5908 fn bitand_assign(&mut self, rhs: Self) {
5909 self.0 &= rhs.0;
5910 }
5911}
5912impl core::ops::BitXor for DeviceFaultFlagBitsKHR {
5913 type Output = Self;
5914 #[inline]
5915 fn bitxor(self, rhs: Self) -> Self {
5916 Self(self.0 ^ rhs.0)
5917 }
5918}
5919impl core::ops::BitXorAssign for DeviceFaultFlagBitsKHR {
5920 #[inline]
5921 fn bitxor_assign(&mut self, rhs: Self) {
5922 self.0 ^= rhs.0;
5923 }
5924}
5925impl core::ops::Not for DeviceFaultFlagBitsKHR {
5926 type Output = Self;
5927 #[inline]
5928 fn not(self) -> Self {
5929 Self(!self.0)
5930 }
5931}
5932impl core::fmt::Debug for DeviceFaultFlagBitsKHR {
5933 #[allow(unused_mut, unused_variables)]
5934 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
5935 let mut first = true;
5936 let mut remaining = self.0;
5937 if remaining & Self::FLAG_DEVICE_LOST.0 != 0 {
5938 if !first {
5939 f.write_str(" | ")?;
5940 }
5941 f.write_str("FLAG_DEVICE_LOST")?;
5942 remaining &= !Self::FLAG_DEVICE_LOST.0;
5943 first = false;
5944 }
5945 if remaining & Self::FLAG_MEMORY_ADDRESS.0 != 0 {
5946 if !first {
5947 f.write_str(" | ")?;
5948 }
5949 f.write_str("FLAG_MEMORY_ADDRESS")?;
5950 remaining &= !Self::FLAG_MEMORY_ADDRESS.0;
5951 first = false;
5952 }
5953 if remaining & Self::FLAG_INSTRUCTION_ADDRESS.0 != 0 {
5954 if !first {
5955 f.write_str(" | ")?;
5956 }
5957 f.write_str("FLAG_INSTRUCTION_ADDRESS")?;
5958 remaining &= !Self::FLAG_INSTRUCTION_ADDRESS.0;
5959 first = false;
5960 }
5961 if remaining & Self::FLAG_VENDOR.0 != 0 {
5962 if !first {
5963 f.write_str(" | ")?;
5964 }
5965 f.write_str("FLAG_VENDOR")?;
5966 remaining &= !Self::FLAG_VENDOR.0;
5967 first = false;
5968 }
5969 if remaining & Self::FLAG_WATCHDOG_TIMEOUT.0 != 0 {
5970 if !first {
5971 f.write_str(" | ")?;
5972 }
5973 f.write_str("FLAG_WATCHDOG_TIMEOUT")?;
5974 remaining &= !Self::FLAG_WATCHDOG_TIMEOUT.0;
5975 first = false;
5976 }
5977 if remaining & Self::FLAG_OVERFLOW.0 != 0 {
5978 if !first {
5979 f.write_str(" | ")?;
5980 }
5981 f.write_str("FLAG_OVERFLOW")?;
5982 remaining &= !Self::FLAG_OVERFLOW.0;
5983 first = false;
5984 }
5985 if remaining != 0u32 {
5986 if !first {
5987 f.write_str(" | ")?;
5988 }
5989 write!(f, "{:#x}", remaining)?;
5990 } else if first {
5991 f.write_str("(empty)")?;
5992 }
5993 Ok(())
5994 }
5995}
5996#[repr(transparent)]
5998#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
5999#[doc(alias = "VkDeviceGroupPresentModeFlagBitsKHR")]
6000pub struct DeviceGroupPresentModeFlagBitsKHR(u32);
6001impl DeviceGroupPresentModeFlagBitsKHR {
6002 #[inline]
6003 pub const fn empty() -> Self {
6004 Self(0u32)
6005 }
6006 #[inline]
6007 pub const fn from_raw(value: u32) -> Self {
6008 Self(value)
6009 }
6010 #[inline]
6011 pub const fn as_raw(self) -> u32 {
6012 self.0
6013 }
6014 #[inline]
6015 pub const fn is_empty(self) -> bool {
6016 self.0 == 0u32
6017 }
6018 #[inline]
6019 pub const fn contains(self, other: Self) -> bool {
6020 (self.0 & other.0) == other.0
6021 }
6022 #[inline]
6023 pub const fn all() -> Self {
6024 Self(15u32)
6025 }
6026 pub const LOCAL: Self = Self(1u32);
6028 pub const REMOTE: Self = Self(2u32);
6030 pub const SUM: Self = Self(4u32);
6032 pub const LOCAL_MULTI_DEVICE: Self = Self(8u32);
6034}
6035impl core::ops::BitOr for DeviceGroupPresentModeFlagBitsKHR {
6036 type Output = Self;
6037 #[inline]
6038 fn bitor(self, rhs: Self) -> Self {
6039 Self(self.0 | rhs.0)
6040 }
6041}
6042impl core::ops::BitOrAssign for DeviceGroupPresentModeFlagBitsKHR {
6043 #[inline]
6044 fn bitor_assign(&mut self, rhs: Self) {
6045 self.0 |= rhs.0;
6046 }
6047}
6048impl core::ops::BitAnd for DeviceGroupPresentModeFlagBitsKHR {
6049 type Output = Self;
6050 #[inline]
6051 fn bitand(self, rhs: Self) -> Self {
6052 Self(self.0 & rhs.0)
6053 }
6054}
6055impl core::ops::BitAndAssign for DeviceGroupPresentModeFlagBitsKHR {
6056 #[inline]
6057 fn bitand_assign(&mut self, rhs: Self) {
6058 self.0 &= rhs.0;
6059 }
6060}
6061impl core::ops::BitXor for DeviceGroupPresentModeFlagBitsKHR {
6062 type Output = Self;
6063 #[inline]
6064 fn bitxor(self, rhs: Self) -> Self {
6065 Self(self.0 ^ rhs.0)
6066 }
6067}
6068impl core::ops::BitXorAssign for DeviceGroupPresentModeFlagBitsKHR {
6069 #[inline]
6070 fn bitxor_assign(&mut self, rhs: Self) {
6071 self.0 ^= rhs.0;
6072 }
6073}
6074impl core::ops::Not for DeviceGroupPresentModeFlagBitsKHR {
6075 type Output = Self;
6076 #[inline]
6077 fn not(self) -> Self {
6078 Self(!self.0)
6079 }
6080}
6081impl core::fmt::Debug for DeviceGroupPresentModeFlagBitsKHR {
6082 #[allow(unused_mut, unused_variables)]
6083 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6084 let mut first = true;
6085 let mut remaining = self.0;
6086 if remaining & Self::LOCAL.0 != 0 {
6087 if !first {
6088 f.write_str(" | ")?;
6089 }
6090 f.write_str("LOCAL")?;
6091 remaining &= !Self::LOCAL.0;
6092 first = false;
6093 }
6094 if remaining & Self::REMOTE.0 != 0 {
6095 if !first {
6096 f.write_str(" | ")?;
6097 }
6098 f.write_str("REMOTE")?;
6099 remaining &= !Self::REMOTE.0;
6100 first = false;
6101 }
6102 if remaining & Self::SUM.0 != 0 {
6103 if !first {
6104 f.write_str(" | ")?;
6105 }
6106 f.write_str("SUM")?;
6107 remaining &= !Self::SUM.0;
6108 first = false;
6109 }
6110 if remaining & Self::LOCAL_MULTI_DEVICE.0 != 0 {
6111 if !first {
6112 f.write_str(" | ")?;
6113 }
6114 f.write_str("LOCAL_MULTI_DEVICE")?;
6115 remaining &= !Self::LOCAL_MULTI_DEVICE.0;
6116 first = false;
6117 }
6118 if remaining != 0u32 {
6119 if !first {
6120 f.write_str(" | ")?;
6121 }
6122 write!(f, "{:#x}", remaining)?;
6123 } else if first {
6124 f.write_str("(empty)")?;
6125 }
6126 Ok(())
6127 }
6128}
6129#[repr(transparent)]
6131#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6132#[doc(alias = "VkDeviceQueueCreateFlagBits")]
6133pub struct DeviceQueueCreateFlagBits(u32);
6134impl DeviceQueueCreateFlagBits {
6135 #[inline]
6136 pub const fn empty() -> Self {
6137 Self(0u32)
6138 }
6139 #[inline]
6140 pub const fn from_raw(value: u32) -> Self {
6141 Self(value)
6142 }
6143 #[inline]
6144 pub const fn as_raw(self) -> u32 {
6145 self.0
6146 }
6147 #[inline]
6148 pub const fn is_empty(self) -> bool {
6149 self.0 == 0u32
6150 }
6151 #[inline]
6152 pub const fn contains(self, other: Self) -> bool {
6153 (self.0 & other.0) == other.0
6154 }
6155 #[inline]
6156 pub const fn all() -> Self {
6157 Self(5u32)
6158 }
6159 pub const PROTECTED: Self = Self(1u32);
6161 pub const INTERNALLY_SYNCHRONIZED: Self = Self(4u32);
6163}
6164impl core::ops::BitOr for DeviceQueueCreateFlagBits {
6165 type Output = Self;
6166 #[inline]
6167 fn bitor(self, rhs: Self) -> Self {
6168 Self(self.0 | rhs.0)
6169 }
6170}
6171impl core::ops::BitOrAssign for DeviceQueueCreateFlagBits {
6172 #[inline]
6173 fn bitor_assign(&mut self, rhs: Self) {
6174 self.0 |= rhs.0;
6175 }
6176}
6177impl core::ops::BitAnd for DeviceQueueCreateFlagBits {
6178 type Output = Self;
6179 #[inline]
6180 fn bitand(self, rhs: Self) -> Self {
6181 Self(self.0 & rhs.0)
6182 }
6183}
6184impl core::ops::BitAndAssign for DeviceQueueCreateFlagBits {
6185 #[inline]
6186 fn bitand_assign(&mut self, rhs: Self) {
6187 self.0 &= rhs.0;
6188 }
6189}
6190impl core::ops::BitXor for DeviceQueueCreateFlagBits {
6191 type Output = Self;
6192 #[inline]
6193 fn bitxor(self, rhs: Self) -> Self {
6194 Self(self.0 ^ rhs.0)
6195 }
6196}
6197impl core::ops::BitXorAssign for DeviceQueueCreateFlagBits {
6198 #[inline]
6199 fn bitxor_assign(&mut self, rhs: Self) {
6200 self.0 ^= rhs.0;
6201 }
6202}
6203impl core::ops::Not for DeviceQueueCreateFlagBits {
6204 type Output = Self;
6205 #[inline]
6206 fn not(self) -> Self {
6207 Self(!self.0)
6208 }
6209}
6210impl core::fmt::Debug for DeviceQueueCreateFlagBits {
6211 #[allow(unused_mut, unused_variables)]
6212 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6213 let mut first = true;
6214 let mut remaining = self.0;
6215 if remaining & Self::PROTECTED.0 != 0 {
6216 if !first {
6217 f.write_str(" | ")?;
6218 }
6219 f.write_str("PROTECTED")?;
6220 remaining &= !Self::PROTECTED.0;
6221 first = false;
6222 }
6223 if remaining & Self::INTERNALLY_SYNCHRONIZED.0 != 0 {
6224 if !first {
6225 f.write_str(" | ")?;
6226 }
6227 f.write_str("INTERNALLY_SYNCHRONIZED")?;
6228 remaining &= !Self::INTERNALLY_SYNCHRONIZED.0;
6229 first = false;
6230 }
6231 if remaining != 0u32 {
6232 if !first {
6233 f.write_str(" | ")?;
6234 }
6235 write!(f, "{:#x}", remaining)?;
6236 } else if first {
6237 f.write_str("(empty)")?;
6238 }
6239 Ok(())
6240 }
6241}
6242#[repr(transparent)]
6244#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6245#[doc(alias = "VkDisplayPlaneAlphaFlagBitsKHR")]
6246pub struct DisplayPlaneAlphaFlagBitsKHR(u32);
6247impl DisplayPlaneAlphaFlagBitsKHR {
6248 #[inline]
6249 pub const fn empty() -> Self {
6250 Self(0u32)
6251 }
6252 #[inline]
6253 pub const fn from_raw(value: u32) -> Self {
6254 Self(value)
6255 }
6256 #[inline]
6257 pub const fn as_raw(self) -> u32 {
6258 self.0
6259 }
6260 #[inline]
6261 pub const fn is_empty(self) -> bool {
6262 self.0 == 0u32
6263 }
6264 #[inline]
6265 pub const fn contains(self, other: Self) -> bool {
6266 (self.0 & other.0) == other.0
6267 }
6268 #[inline]
6269 pub const fn all() -> Self {
6270 Self(15u32)
6271 }
6272 pub const OPAQUE: Self = Self(1u32);
6274 pub const GLOBAL: Self = Self(2u32);
6276 pub const PER_PIXEL: Self = Self(4u32);
6278 pub const PER_PIXEL_PREMULTIPLIED: Self = Self(8u32);
6280}
6281impl core::ops::BitOr for DisplayPlaneAlphaFlagBitsKHR {
6282 type Output = Self;
6283 #[inline]
6284 fn bitor(self, rhs: Self) -> Self {
6285 Self(self.0 | rhs.0)
6286 }
6287}
6288impl core::ops::BitOrAssign for DisplayPlaneAlphaFlagBitsKHR {
6289 #[inline]
6290 fn bitor_assign(&mut self, rhs: Self) {
6291 self.0 |= rhs.0;
6292 }
6293}
6294impl core::ops::BitAnd for DisplayPlaneAlphaFlagBitsKHR {
6295 type Output = Self;
6296 #[inline]
6297 fn bitand(self, rhs: Self) -> Self {
6298 Self(self.0 & rhs.0)
6299 }
6300}
6301impl core::ops::BitAndAssign for DisplayPlaneAlphaFlagBitsKHR {
6302 #[inline]
6303 fn bitand_assign(&mut self, rhs: Self) {
6304 self.0 &= rhs.0;
6305 }
6306}
6307impl core::ops::BitXor for DisplayPlaneAlphaFlagBitsKHR {
6308 type Output = Self;
6309 #[inline]
6310 fn bitxor(self, rhs: Self) -> Self {
6311 Self(self.0 ^ rhs.0)
6312 }
6313}
6314impl core::ops::BitXorAssign for DisplayPlaneAlphaFlagBitsKHR {
6315 #[inline]
6316 fn bitxor_assign(&mut self, rhs: Self) {
6317 self.0 ^= rhs.0;
6318 }
6319}
6320impl core::ops::Not for DisplayPlaneAlphaFlagBitsKHR {
6321 type Output = Self;
6322 #[inline]
6323 fn not(self) -> Self {
6324 Self(!self.0)
6325 }
6326}
6327impl core::fmt::Debug for DisplayPlaneAlphaFlagBitsKHR {
6328 #[allow(unused_mut, unused_variables)]
6329 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6330 let mut first = true;
6331 let mut remaining = self.0;
6332 if remaining & Self::OPAQUE.0 != 0 {
6333 if !first {
6334 f.write_str(" | ")?;
6335 }
6336 f.write_str("OPAQUE")?;
6337 remaining &= !Self::OPAQUE.0;
6338 first = false;
6339 }
6340 if remaining & Self::GLOBAL.0 != 0 {
6341 if !first {
6342 f.write_str(" | ")?;
6343 }
6344 f.write_str("GLOBAL")?;
6345 remaining &= !Self::GLOBAL.0;
6346 first = false;
6347 }
6348 if remaining & Self::PER_PIXEL.0 != 0 {
6349 if !first {
6350 f.write_str(" | ")?;
6351 }
6352 f.write_str("PER_PIXEL")?;
6353 remaining &= !Self::PER_PIXEL.0;
6354 first = false;
6355 }
6356 if remaining & Self::PER_PIXEL_PREMULTIPLIED.0 != 0 {
6357 if !first {
6358 f.write_str(" | ")?;
6359 }
6360 f.write_str("PER_PIXEL_PREMULTIPLIED")?;
6361 remaining &= !Self::PER_PIXEL_PREMULTIPLIED.0;
6362 first = false;
6363 }
6364 if remaining != 0u32 {
6365 if !first {
6366 f.write_str(" | ")?;
6367 }
6368 write!(f, "{:#x}", remaining)?;
6369 } else if first {
6370 f.write_str("(empty)")?;
6371 }
6372 Ok(())
6373 }
6374}
6375#[repr(transparent)]
6377#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6378#[doc(alias = "VkEventCreateFlagBits")]
6379pub struct EventCreateFlagBits(u32);
6380impl EventCreateFlagBits {
6381 #[inline]
6382 pub const fn empty() -> Self {
6383 Self(0u32)
6384 }
6385 #[inline]
6386 pub const fn from_raw(value: u32) -> Self {
6387 Self(value)
6388 }
6389 #[inline]
6390 pub const fn as_raw(self) -> u32 {
6391 self.0
6392 }
6393 #[inline]
6394 pub const fn is_empty(self) -> bool {
6395 self.0 == 0u32
6396 }
6397 #[inline]
6398 pub const fn contains(self, other: Self) -> bool {
6399 (self.0 & other.0) == other.0
6400 }
6401 #[inline]
6402 pub const fn all() -> Self {
6403 Self(1u32)
6404 }
6405 pub const DEVICE_ONLY: Self = Self(1u32);
6407}
6408impl core::ops::BitOr for EventCreateFlagBits {
6409 type Output = Self;
6410 #[inline]
6411 fn bitor(self, rhs: Self) -> Self {
6412 Self(self.0 | rhs.0)
6413 }
6414}
6415impl core::ops::BitOrAssign for EventCreateFlagBits {
6416 #[inline]
6417 fn bitor_assign(&mut self, rhs: Self) {
6418 self.0 |= rhs.0;
6419 }
6420}
6421impl core::ops::BitAnd for EventCreateFlagBits {
6422 type Output = Self;
6423 #[inline]
6424 fn bitand(self, rhs: Self) -> Self {
6425 Self(self.0 & rhs.0)
6426 }
6427}
6428impl core::ops::BitAndAssign for EventCreateFlagBits {
6429 #[inline]
6430 fn bitand_assign(&mut self, rhs: Self) {
6431 self.0 &= rhs.0;
6432 }
6433}
6434impl core::ops::BitXor for EventCreateFlagBits {
6435 type Output = Self;
6436 #[inline]
6437 fn bitxor(self, rhs: Self) -> Self {
6438 Self(self.0 ^ rhs.0)
6439 }
6440}
6441impl core::ops::BitXorAssign for EventCreateFlagBits {
6442 #[inline]
6443 fn bitxor_assign(&mut self, rhs: Self) {
6444 self.0 ^= rhs.0;
6445 }
6446}
6447impl core::ops::Not for EventCreateFlagBits {
6448 type Output = Self;
6449 #[inline]
6450 fn not(self) -> Self {
6451 Self(!self.0)
6452 }
6453}
6454impl core::fmt::Debug for EventCreateFlagBits {
6455 #[allow(unused_mut, unused_variables)]
6456 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6457 let mut first = true;
6458 let mut remaining = self.0;
6459 if remaining & Self::DEVICE_ONLY.0 != 0 {
6460 if !first {
6461 f.write_str(" | ")?;
6462 }
6463 f.write_str("DEVICE_ONLY")?;
6464 remaining &= !Self::DEVICE_ONLY.0;
6465 first = false;
6466 }
6467 if remaining != 0u32 {
6468 if !first {
6469 f.write_str(" | ")?;
6470 }
6471 write!(f, "{:#x}", remaining)?;
6472 } else if first {
6473 f.write_str("(empty)")?;
6474 }
6475 Ok(())
6476 }
6477}
6478#[repr(transparent)]
6480#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6481#[doc(alias = "VkExportMetalObjectTypeFlagBitsEXT")]
6482pub struct ExportMetalObjectTypeFlagBitsEXT(u32);
6483impl ExportMetalObjectTypeFlagBitsEXT {
6484 #[inline]
6485 pub const fn empty() -> Self {
6486 Self(0u32)
6487 }
6488 #[inline]
6489 pub const fn from_raw(value: u32) -> Self {
6490 Self(value)
6491 }
6492 #[inline]
6493 pub const fn as_raw(self) -> u32 {
6494 self.0
6495 }
6496 #[inline]
6497 pub const fn is_empty(self) -> bool {
6498 self.0 == 0u32
6499 }
6500 #[inline]
6501 pub const fn contains(self, other: Self) -> bool {
6502 (self.0 & other.0) == other.0
6503 }
6504 #[inline]
6505 pub const fn all() -> Self {
6506 Self(63u32)
6507 }
6508 pub const METAL_DEVICE: Self = Self(1u32);
6510 pub const METAL_COMMAND_QUEUE: Self = Self(2u32);
6512 pub const METAL_BUFFER: Self = Self(4u32);
6514 pub const METAL_TEXTURE: Self = Self(8u32);
6516 pub const METAL_IOSURFACE: Self = Self(16u32);
6518 pub const METAL_SHARED_EVENT: Self = Self(32u32);
6520}
6521impl core::ops::BitOr for ExportMetalObjectTypeFlagBitsEXT {
6522 type Output = Self;
6523 #[inline]
6524 fn bitor(self, rhs: Self) -> Self {
6525 Self(self.0 | rhs.0)
6526 }
6527}
6528impl core::ops::BitOrAssign for ExportMetalObjectTypeFlagBitsEXT {
6529 #[inline]
6530 fn bitor_assign(&mut self, rhs: Self) {
6531 self.0 |= rhs.0;
6532 }
6533}
6534impl core::ops::BitAnd for ExportMetalObjectTypeFlagBitsEXT {
6535 type Output = Self;
6536 #[inline]
6537 fn bitand(self, rhs: Self) -> Self {
6538 Self(self.0 & rhs.0)
6539 }
6540}
6541impl core::ops::BitAndAssign for ExportMetalObjectTypeFlagBitsEXT {
6542 #[inline]
6543 fn bitand_assign(&mut self, rhs: Self) {
6544 self.0 &= rhs.0;
6545 }
6546}
6547impl core::ops::BitXor for ExportMetalObjectTypeFlagBitsEXT {
6548 type Output = Self;
6549 #[inline]
6550 fn bitxor(self, rhs: Self) -> Self {
6551 Self(self.0 ^ rhs.0)
6552 }
6553}
6554impl core::ops::BitXorAssign for ExportMetalObjectTypeFlagBitsEXT {
6555 #[inline]
6556 fn bitxor_assign(&mut self, rhs: Self) {
6557 self.0 ^= rhs.0;
6558 }
6559}
6560impl core::ops::Not for ExportMetalObjectTypeFlagBitsEXT {
6561 type Output = Self;
6562 #[inline]
6563 fn not(self) -> Self {
6564 Self(!self.0)
6565 }
6566}
6567impl core::fmt::Debug for ExportMetalObjectTypeFlagBitsEXT {
6568 #[allow(unused_mut, unused_variables)]
6569 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6570 let mut first = true;
6571 let mut remaining = self.0;
6572 if remaining & Self::METAL_DEVICE.0 != 0 {
6573 if !first {
6574 f.write_str(" | ")?;
6575 }
6576 f.write_str("METAL_DEVICE")?;
6577 remaining &= !Self::METAL_DEVICE.0;
6578 first = false;
6579 }
6580 if remaining & Self::METAL_COMMAND_QUEUE.0 != 0 {
6581 if !first {
6582 f.write_str(" | ")?;
6583 }
6584 f.write_str("METAL_COMMAND_QUEUE")?;
6585 remaining &= !Self::METAL_COMMAND_QUEUE.0;
6586 first = false;
6587 }
6588 if remaining & Self::METAL_BUFFER.0 != 0 {
6589 if !first {
6590 f.write_str(" | ")?;
6591 }
6592 f.write_str("METAL_BUFFER")?;
6593 remaining &= !Self::METAL_BUFFER.0;
6594 first = false;
6595 }
6596 if remaining & Self::METAL_TEXTURE.0 != 0 {
6597 if !first {
6598 f.write_str(" | ")?;
6599 }
6600 f.write_str("METAL_TEXTURE")?;
6601 remaining &= !Self::METAL_TEXTURE.0;
6602 first = false;
6603 }
6604 if remaining & Self::METAL_IOSURFACE.0 != 0 {
6605 if !first {
6606 f.write_str(" | ")?;
6607 }
6608 f.write_str("METAL_IOSURFACE")?;
6609 remaining &= !Self::METAL_IOSURFACE.0;
6610 first = false;
6611 }
6612 if remaining & Self::METAL_SHARED_EVENT.0 != 0 {
6613 if !first {
6614 f.write_str(" | ")?;
6615 }
6616 f.write_str("METAL_SHARED_EVENT")?;
6617 remaining &= !Self::METAL_SHARED_EVENT.0;
6618 first = false;
6619 }
6620 if remaining != 0u32 {
6621 if !first {
6622 f.write_str(" | ")?;
6623 }
6624 write!(f, "{:#x}", remaining)?;
6625 } else if first {
6626 f.write_str("(empty)")?;
6627 }
6628 Ok(())
6629 }
6630}
6631#[repr(transparent)]
6633#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6634#[doc(alias = "VkExternalFenceFeatureFlagBits")]
6635pub struct ExternalFenceFeatureFlagBits(u32);
6636impl ExternalFenceFeatureFlagBits {
6637 #[inline]
6638 pub const fn empty() -> Self {
6639 Self(0u32)
6640 }
6641 #[inline]
6642 pub const fn from_raw(value: u32) -> Self {
6643 Self(value)
6644 }
6645 #[inline]
6646 pub const fn as_raw(self) -> u32 {
6647 self.0
6648 }
6649 #[inline]
6650 pub const fn is_empty(self) -> bool {
6651 self.0 == 0u32
6652 }
6653 #[inline]
6654 pub const fn contains(self, other: Self) -> bool {
6655 (self.0 & other.0) == other.0
6656 }
6657 #[inline]
6658 pub const fn all() -> Self {
6659 Self(3u32)
6660 }
6661 pub const EXPORTABLE: Self = Self(1u32);
6663 pub const IMPORTABLE: Self = Self(2u32);
6665}
6666impl core::ops::BitOr for ExternalFenceFeatureFlagBits {
6667 type Output = Self;
6668 #[inline]
6669 fn bitor(self, rhs: Self) -> Self {
6670 Self(self.0 | rhs.0)
6671 }
6672}
6673impl core::ops::BitOrAssign for ExternalFenceFeatureFlagBits {
6674 #[inline]
6675 fn bitor_assign(&mut self, rhs: Self) {
6676 self.0 |= rhs.0;
6677 }
6678}
6679impl core::ops::BitAnd for ExternalFenceFeatureFlagBits {
6680 type Output = Self;
6681 #[inline]
6682 fn bitand(self, rhs: Self) -> Self {
6683 Self(self.0 & rhs.0)
6684 }
6685}
6686impl core::ops::BitAndAssign for ExternalFenceFeatureFlagBits {
6687 #[inline]
6688 fn bitand_assign(&mut self, rhs: Self) {
6689 self.0 &= rhs.0;
6690 }
6691}
6692impl core::ops::BitXor for ExternalFenceFeatureFlagBits {
6693 type Output = Self;
6694 #[inline]
6695 fn bitxor(self, rhs: Self) -> Self {
6696 Self(self.0 ^ rhs.0)
6697 }
6698}
6699impl core::ops::BitXorAssign for ExternalFenceFeatureFlagBits {
6700 #[inline]
6701 fn bitxor_assign(&mut self, rhs: Self) {
6702 self.0 ^= rhs.0;
6703 }
6704}
6705impl core::ops::Not for ExternalFenceFeatureFlagBits {
6706 type Output = Self;
6707 #[inline]
6708 fn not(self) -> Self {
6709 Self(!self.0)
6710 }
6711}
6712impl core::fmt::Debug for ExternalFenceFeatureFlagBits {
6713 #[allow(unused_mut, unused_variables)]
6714 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6715 let mut first = true;
6716 let mut remaining = self.0;
6717 if remaining & Self::EXPORTABLE.0 != 0 {
6718 if !first {
6719 f.write_str(" | ")?;
6720 }
6721 f.write_str("EXPORTABLE")?;
6722 remaining &= !Self::EXPORTABLE.0;
6723 first = false;
6724 }
6725 if remaining & Self::IMPORTABLE.0 != 0 {
6726 if !first {
6727 f.write_str(" | ")?;
6728 }
6729 f.write_str("IMPORTABLE")?;
6730 remaining &= !Self::IMPORTABLE.0;
6731 first = false;
6732 }
6733 if remaining != 0u32 {
6734 if !first {
6735 f.write_str(" | ")?;
6736 }
6737 write!(f, "{:#x}", remaining)?;
6738 } else if first {
6739 f.write_str("(empty)")?;
6740 }
6741 Ok(())
6742 }
6743}
6744#[repr(transparent)]
6746#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6747#[doc(alias = "VkExternalFenceHandleTypeFlagBits")]
6748pub struct ExternalFenceHandleTypeFlagBits(u32);
6749impl ExternalFenceHandleTypeFlagBits {
6750 #[inline]
6751 pub const fn empty() -> Self {
6752 Self(0u32)
6753 }
6754 #[inline]
6755 pub const fn from_raw(value: u32) -> Self {
6756 Self(value)
6757 }
6758 #[inline]
6759 pub const fn as_raw(self) -> u32 {
6760 self.0
6761 }
6762 #[inline]
6763 pub const fn is_empty(self) -> bool {
6764 self.0 == 0u32
6765 }
6766 #[inline]
6767 pub const fn contains(self, other: Self) -> bool {
6768 (self.0 & other.0) == other.0
6769 }
6770 #[inline]
6771 pub const fn all() -> Self {
6772 Self(15u32)
6773 }
6774 pub const OPAQUE_FD: Self = Self(1u32);
6776 pub const OPAQUE_WIN32: Self = Self(2u32);
6778 pub const OPAQUE_WIN32_KMT: Self = Self(4u32);
6780 pub const SYNC_FD: Self = Self(8u32);
6782}
6783impl core::ops::BitOr for ExternalFenceHandleTypeFlagBits {
6784 type Output = Self;
6785 #[inline]
6786 fn bitor(self, rhs: Self) -> Self {
6787 Self(self.0 | rhs.0)
6788 }
6789}
6790impl core::ops::BitOrAssign for ExternalFenceHandleTypeFlagBits {
6791 #[inline]
6792 fn bitor_assign(&mut self, rhs: Self) {
6793 self.0 |= rhs.0;
6794 }
6795}
6796impl core::ops::BitAnd for ExternalFenceHandleTypeFlagBits {
6797 type Output = Self;
6798 #[inline]
6799 fn bitand(self, rhs: Self) -> Self {
6800 Self(self.0 & rhs.0)
6801 }
6802}
6803impl core::ops::BitAndAssign for ExternalFenceHandleTypeFlagBits {
6804 #[inline]
6805 fn bitand_assign(&mut self, rhs: Self) {
6806 self.0 &= rhs.0;
6807 }
6808}
6809impl core::ops::BitXor for ExternalFenceHandleTypeFlagBits {
6810 type Output = Self;
6811 #[inline]
6812 fn bitxor(self, rhs: Self) -> Self {
6813 Self(self.0 ^ rhs.0)
6814 }
6815}
6816impl core::ops::BitXorAssign for ExternalFenceHandleTypeFlagBits {
6817 #[inline]
6818 fn bitxor_assign(&mut self, rhs: Self) {
6819 self.0 ^= rhs.0;
6820 }
6821}
6822impl core::ops::Not for ExternalFenceHandleTypeFlagBits {
6823 type Output = Self;
6824 #[inline]
6825 fn not(self) -> Self {
6826 Self(!self.0)
6827 }
6828}
6829impl core::fmt::Debug for ExternalFenceHandleTypeFlagBits {
6830 #[allow(unused_mut, unused_variables)]
6831 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6832 let mut first = true;
6833 let mut remaining = self.0;
6834 if remaining & Self::OPAQUE_FD.0 != 0 {
6835 if !first {
6836 f.write_str(" | ")?;
6837 }
6838 f.write_str("OPAQUE_FD")?;
6839 remaining &= !Self::OPAQUE_FD.0;
6840 first = false;
6841 }
6842 if remaining & Self::OPAQUE_WIN32.0 != 0 {
6843 if !first {
6844 f.write_str(" | ")?;
6845 }
6846 f.write_str("OPAQUE_WIN32")?;
6847 remaining &= !Self::OPAQUE_WIN32.0;
6848 first = false;
6849 }
6850 if remaining & Self::OPAQUE_WIN32_KMT.0 != 0 {
6851 if !first {
6852 f.write_str(" | ")?;
6853 }
6854 f.write_str("OPAQUE_WIN32_KMT")?;
6855 remaining &= !Self::OPAQUE_WIN32_KMT.0;
6856 first = false;
6857 }
6858 if remaining & Self::SYNC_FD.0 != 0 {
6859 if !first {
6860 f.write_str(" | ")?;
6861 }
6862 f.write_str("SYNC_FD")?;
6863 remaining &= !Self::SYNC_FD.0;
6864 first = false;
6865 }
6866 if remaining != 0u32 {
6867 if !first {
6868 f.write_str(" | ")?;
6869 }
6870 write!(f, "{:#x}", remaining)?;
6871 } else if first {
6872 f.write_str("(empty)")?;
6873 }
6874 Ok(())
6875 }
6876}
6877#[repr(transparent)]
6879#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
6880#[doc(alias = "VkExternalMemoryFeatureFlagBits")]
6881pub struct ExternalMemoryFeatureFlagBits(u32);
6882impl ExternalMemoryFeatureFlagBits {
6883 #[inline]
6884 pub const fn empty() -> Self {
6885 Self(0u32)
6886 }
6887 #[inline]
6888 pub const fn from_raw(value: u32) -> Self {
6889 Self(value)
6890 }
6891 #[inline]
6892 pub const fn as_raw(self) -> u32 {
6893 self.0
6894 }
6895 #[inline]
6896 pub const fn is_empty(self) -> bool {
6897 self.0 == 0u32
6898 }
6899 #[inline]
6900 pub const fn contains(self, other: Self) -> bool {
6901 (self.0 & other.0) == other.0
6902 }
6903 #[inline]
6904 pub const fn all() -> Self {
6905 Self(7u32)
6906 }
6907 pub const DEDICATED_ONLY: Self = Self(1u32);
6909 pub const EXPORTABLE: Self = Self(2u32);
6911 pub const IMPORTABLE: Self = Self(4u32);
6913}
6914impl core::ops::BitOr for ExternalMemoryFeatureFlagBits {
6915 type Output = Self;
6916 #[inline]
6917 fn bitor(self, rhs: Self) -> Self {
6918 Self(self.0 | rhs.0)
6919 }
6920}
6921impl core::ops::BitOrAssign for ExternalMemoryFeatureFlagBits {
6922 #[inline]
6923 fn bitor_assign(&mut self, rhs: Self) {
6924 self.0 |= rhs.0;
6925 }
6926}
6927impl core::ops::BitAnd for ExternalMemoryFeatureFlagBits {
6928 type Output = Self;
6929 #[inline]
6930 fn bitand(self, rhs: Self) -> Self {
6931 Self(self.0 & rhs.0)
6932 }
6933}
6934impl core::ops::BitAndAssign for ExternalMemoryFeatureFlagBits {
6935 #[inline]
6936 fn bitand_assign(&mut self, rhs: Self) {
6937 self.0 &= rhs.0;
6938 }
6939}
6940impl core::ops::BitXor for ExternalMemoryFeatureFlagBits {
6941 type Output = Self;
6942 #[inline]
6943 fn bitxor(self, rhs: Self) -> Self {
6944 Self(self.0 ^ rhs.0)
6945 }
6946}
6947impl core::ops::BitXorAssign for ExternalMemoryFeatureFlagBits {
6948 #[inline]
6949 fn bitxor_assign(&mut self, rhs: Self) {
6950 self.0 ^= rhs.0;
6951 }
6952}
6953impl core::ops::Not for ExternalMemoryFeatureFlagBits {
6954 type Output = Self;
6955 #[inline]
6956 fn not(self) -> Self {
6957 Self(!self.0)
6958 }
6959}
6960impl core::fmt::Debug for ExternalMemoryFeatureFlagBits {
6961 #[allow(unused_mut, unused_variables)]
6962 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
6963 let mut first = true;
6964 let mut remaining = self.0;
6965 if remaining & Self::DEDICATED_ONLY.0 != 0 {
6966 if !first {
6967 f.write_str(" | ")?;
6968 }
6969 f.write_str("DEDICATED_ONLY")?;
6970 remaining &= !Self::DEDICATED_ONLY.0;
6971 first = false;
6972 }
6973 if remaining & Self::EXPORTABLE.0 != 0 {
6974 if !first {
6975 f.write_str(" | ")?;
6976 }
6977 f.write_str("EXPORTABLE")?;
6978 remaining &= !Self::EXPORTABLE.0;
6979 first = false;
6980 }
6981 if remaining & Self::IMPORTABLE.0 != 0 {
6982 if !first {
6983 f.write_str(" | ")?;
6984 }
6985 f.write_str("IMPORTABLE")?;
6986 remaining &= !Self::IMPORTABLE.0;
6987 first = false;
6988 }
6989 if remaining != 0u32 {
6990 if !first {
6991 f.write_str(" | ")?;
6992 }
6993 write!(f, "{:#x}", remaining)?;
6994 } else if first {
6995 f.write_str("(empty)")?;
6996 }
6997 Ok(())
6998 }
6999}
7000#[repr(transparent)]
7002#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7003#[doc(alias = "VkExternalMemoryFeatureFlagBitsNV")]
7004pub struct ExternalMemoryFeatureFlagBitsNV(u32);
7005impl ExternalMemoryFeatureFlagBitsNV {
7006 #[inline]
7007 pub const fn empty() -> Self {
7008 Self(0u32)
7009 }
7010 #[inline]
7011 pub const fn from_raw(value: u32) -> Self {
7012 Self(value)
7013 }
7014 #[inline]
7015 pub const fn as_raw(self) -> u32 {
7016 self.0
7017 }
7018 #[inline]
7019 pub const fn is_empty(self) -> bool {
7020 self.0 == 0u32
7021 }
7022 #[inline]
7023 pub const fn contains(self, other: Self) -> bool {
7024 (self.0 & other.0) == other.0
7025 }
7026 #[inline]
7027 pub const fn all() -> Self {
7028 Self(7u32)
7029 }
7030 pub const DEDICATED_ONLY: Self = Self(1u32);
7032 pub const EXPORTABLE: Self = Self(2u32);
7034 pub const IMPORTABLE: Self = Self(4u32);
7036}
7037impl core::ops::BitOr for ExternalMemoryFeatureFlagBitsNV {
7038 type Output = Self;
7039 #[inline]
7040 fn bitor(self, rhs: Self) -> Self {
7041 Self(self.0 | rhs.0)
7042 }
7043}
7044impl core::ops::BitOrAssign for ExternalMemoryFeatureFlagBitsNV {
7045 #[inline]
7046 fn bitor_assign(&mut self, rhs: Self) {
7047 self.0 |= rhs.0;
7048 }
7049}
7050impl core::ops::BitAnd for ExternalMemoryFeatureFlagBitsNV {
7051 type Output = Self;
7052 #[inline]
7053 fn bitand(self, rhs: Self) -> Self {
7054 Self(self.0 & rhs.0)
7055 }
7056}
7057impl core::ops::BitAndAssign for ExternalMemoryFeatureFlagBitsNV {
7058 #[inline]
7059 fn bitand_assign(&mut self, rhs: Self) {
7060 self.0 &= rhs.0;
7061 }
7062}
7063impl core::ops::BitXor for ExternalMemoryFeatureFlagBitsNV {
7064 type Output = Self;
7065 #[inline]
7066 fn bitxor(self, rhs: Self) -> Self {
7067 Self(self.0 ^ rhs.0)
7068 }
7069}
7070impl core::ops::BitXorAssign for ExternalMemoryFeatureFlagBitsNV {
7071 #[inline]
7072 fn bitxor_assign(&mut self, rhs: Self) {
7073 self.0 ^= rhs.0;
7074 }
7075}
7076impl core::ops::Not for ExternalMemoryFeatureFlagBitsNV {
7077 type Output = Self;
7078 #[inline]
7079 fn not(self) -> Self {
7080 Self(!self.0)
7081 }
7082}
7083impl core::fmt::Debug for ExternalMemoryFeatureFlagBitsNV {
7084 #[allow(unused_mut, unused_variables)]
7085 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7086 let mut first = true;
7087 let mut remaining = self.0;
7088 if remaining & Self::DEDICATED_ONLY.0 != 0 {
7089 if !first {
7090 f.write_str(" | ")?;
7091 }
7092 f.write_str("DEDICATED_ONLY")?;
7093 remaining &= !Self::DEDICATED_ONLY.0;
7094 first = false;
7095 }
7096 if remaining & Self::EXPORTABLE.0 != 0 {
7097 if !first {
7098 f.write_str(" | ")?;
7099 }
7100 f.write_str("EXPORTABLE")?;
7101 remaining &= !Self::EXPORTABLE.0;
7102 first = false;
7103 }
7104 if remaining & Self::IMPORTABLE.0 != 0 {
7105 if !first {
7106 f.write_str(" | ")?;
7107 }
7108 f.write_str("IMPORTABLE")?;
7109 remaining &= !Self::IMPORTABLE.0;
7110 first = false;
7111 }
7112 if remaining != 0u32 {
7113 if !first {
7114 f.write_str(" | ")?;
7115 }
7116 write!(f, "{:#x}", remaining)?;
7117 } else if first {
7118 f.write_str("(empty)")?;
7119 }
7120 Ok(())
7121 }
7122}
7123#[repr(transparent)]
7125#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7126#[doc(alias = "VkExternalMemoryHandleTypeFlagBits")]
7127pub struct ExternalMemoryHandleTypeFlagBits(u32);
7128impl ExternalMemoryHandleTypeFlagBits {
7129 #[inline]
7130 pub const fn empty() -> Self {
7131 Self(0u32)
7132 }
7133 #[inline]
7134 pub const fn from_raw(value: u32) -> Self {
7135 Self(value)
7136 }
7137 #[inline]
7138 pub const fn as_raw(self) -> u32 {
7139 self.0
7140 }
7141 #[inline]
7142 pub const fn is_empty(self) -> bool {
7143 self.0 == 0u32
7144 }
7145 #[inline]
7146 pub const fn contains(self, other: Self) -> bool {
7147 (self.0 & other.0) == other.0
7148 }
7149 #[inline]
7150 pub const fn all() -> Self {
7151 Self(516095u32)
7152 }
7153 pub const OPAQUE_FD: Self = Self(1u32);
7155 pub const OPAQUE_WIN32: Self = Self(2u32);
7157 pub const OPAQUE_WIN32_KMT: Self = Self(4u32);
7159 pub const D3D11_TEXTURE: Self = Self(8u32);
7161 pub const D3D11_TEXTURE_KMT: Self = Self(16u32);
7163 pub const D3D12_HEAP: Self = Self(32u32);
7165 pub const D3D12_RESOURCE: Self = Self(64u32);
7167 pub const DMA_BUF: Self = Self(512u32);
7169 pub const ANDROID_HARDWARE_BUFFER_BIT: Self = Self(1024u32);
7171 pub const HOST_ALLOCATION: Self = Self(128u32);
7173 pub const HOST_MAPPED_FOREIGN_MEMORY: Self = Self(256u32);
7175 pub const ZIRCON_VMO_BIT: Self = Self(2048u32);
7177 pub const RDMA_ADDRESS: Self = Self(4096u32);
7179 pub const OH_NATIVE_BUFFER_BIT: Self = Self(32768u32);
7181 pub const SCREEN_BUFFER_BIT: Self = Self(16384u32);
7183 pub const MTLBUFFER: Self = Self(65536u32);
7185 pub const MTLTEXTURE: Self = Self(131072u32);
7187 pub const MTLHEAP: Self = Self(262144u32);
7189}
7190impl core::ops::BitOr for ExternalMemoryHandleTypeFlagBits {
7191 type Output = Self;
7192 #[inline]
7193 fn bitor(self, rhs: Self) -> Self {
7194 Self(self.0 | rhs.0)
7195 }
7196}
7197impl core::ops::BitOrAssign for ExternalMemoryHandleTypeFlagBits {
7198 #[inline]
7199 fn bitor_assign(&mut self, rhs: Self) {
7200 self.0 |= rhs.0;
7201 }
7202}
7203impl core::ops::BitAnd for ExternalMemoryHandleTypeFlagBits {
7204 type Output = Self;
7205 #[inline]
7206 fn bitand(self, rhs: Self) -> Self {
7207 Self(self.0 & rhs.0)
7208 }
7209}
7210impl core::ops::BitAndAssign for ExternalMemoryHandleTypeFlagBits {
7211 #[inline]
7212 fn bitand_assign(&mut self, rhs: Self) {
7213 self.0 &= rhs.0;
7214 }
7215}
7216impl core::ops::BitXor for ExternalMemoryHandleTypeFlagBits {
7217 type Output = Self;
7218 #[inline]
7219 fn bitxor(self, rhs: Self) -> Self {
7220 Self(self.0 ^ rhs.0)
7221 }
7222}
7223impl core::ops::BitXorAssign for ExternalMemoryHandleTypeFlagBits {
7224 #[inline]
7225 fn bitxor_assign(&mut self, rhs: Self) {
7226 self.0 ^= rhs.0;
7227 }
7228}
7229impl core::ops::Not for ExternalMemoryHandleTypeFlagBits {
7230 type Output = Self;
7231 #[inline]
7232 fn not(self) -> Self {
7233 Self(!self.0)
7234 }
7235}
7236impl core::fmt::Debug for ExternalMemoryHandleTypeFlagBits {
7237 #[allow(unused_mut, unused_variables)]
7238 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7239 let mut first = true;
7240 let mut remaining = self.0;
7241 if remaining & Self::OPAQUE_FD.0 != 0 {
7242 if !first {
7243 f.write_str(" | ")?;
7244 }
7245 f.write_str("OPAQUE_FD")?;
7246 remaining &= !Self::OPAQUE_FD.0;
7247 first = false;
7248 }
7249 if remaining & Self::OPAQUE_WIN32.0 != 0 {
7250 if !first {
7251 f.write_str(" | ")?;
7252 }
7253 f.write_str("OPAQUE_WIN32")?;
7254 remaining &= !Self::OPAQUE_WIN32.0;
7255 first = false;
7256 }
7257 if remaining & Self::OPAQUE_WIN32_KMT.0 != 0 {
7258 if !first {
7259 f.write_str(" | ")?;
7260 }
7261 f.write_str("OPAQUE_WIN32_KMT")?;
7262 remaining &= !Self::OPAQUE_WIN32_KMT.0;
7263 first = false;
7264 }
7265 if remaining & Self::D3D11_TEXTURE.0 != 0 {
7266 if !first {
7267 f.write_str(" | ")?;
7268 }
7269 f.write_str("D3D11_TEXTURE")?;
7270 remaining &= !Self::D3D11_TEXTURE.0;
7271 first = false;
7272 }
7273 if remaining & Self::D3D11_TEXTURE_KMT.0 != 0 {
7274 if !first {
7275 f.write_str(" | ")?;
7276 }
7277 f.write_str("D3D11_TEXTURE_KMT")?;
7278 remaining &= !Self::D3D11_TEXTURE_KMT.0;
7279 first = false;
7280 }
7281 if remaining & Self::D3D12_HEAP.0 != 0 {
7282 if !first {
7283 f.write_str(" | ")?;
7284 }
7285 f.write_str("D3D12_HEAP")?;
7286 remaining &= !Self::D3D12_HEAP.0;
7287 first = false;
7288 }
7289 if remaining & Self::D3D12_RESOURCE.0 != 0 {
7290 if !first {
7291 f.write_str(" | ")?;
7292 }
7293 f.write_str("D3D12_RESOURCE")?;
7294 remaining &= !Self::D3D12_RESOURCE.0;
7295 first = false;
7296 }
7297 if remaining & Self::DMA_BUF.0 != 0 {
7298 if !first {
7299 f.write_str(" | ")?;
7300 }
7301 f.write_str("DMA_BUF")?;
7302 remaining &= !Self::DMA_BUF.0;
7303 first = false;
7304 }
7305 if remaining & Self::ANDROID_HARDWARE_BUFFER_BIT.0 != 0 {
7306 if !first {
7307 f.write_str(" | ")?;
7308 }
7309 f.write_str("ANDROID_HARDWARE_BUFFER_BIT")?;
7310 remaining &= !Self::ANDROID_HARDWARE_BUFFER_BIT.0;
7311 first = false;
7312 }
7313 if remaining & Self::HOST_ALLOCATION.0 != 0 {
7314 if !first {
7315 f.write_str(" | ")?;
7316 }
7317 f.write_str("HOST_ALLOCATION")?;
7318 remaining &= !Self::HOST_ALLOCATION.0;
7319 first = false;
7320 }
7321 if remaining & Self::HOST_MAPPED_FOREIGN_MEMORY.0 != 0 {
7322 if !first {
7323 f.write_str(" | ")?;
7324 }
7325 f.write_str("HOST_MAPPED_FOREIGN_MEMORY")?;
7326 remaining &= !Self::HOST_MAPPED_FOREIGN_MEMORY.0;
7327 first = false;
7328 }
7329 if remaining & Self::ZIRCON_VMO_BIT.0 != 0 {
7330 if !first {
7331 f.write_str(" | ")?;
7332 }
7333 f.write_str("ZIRCON_VMO_BIT")?;
7334 remaining &= !Self::ZIRCON_VMO_BIT.0;
7335 first = false;
7336 }
7337 if remaining & Self::RDMA_ADDRESS.0 != 0 {
7338 if !first {
7339 f.write_str(" | ")?;
7340 }
7341 f.write_str("RDMA_ADDRESS")?;
7342 remaining &= !Self::RDMA_ADDRESS.0;
7343 first = false;
7344 }
7345 if remaining & Self::OH_NATIVE_BUFFER_BIT.0 != 0 {
7346 if !first {
7347 f.write_str(" | ")?;
7348 }
7349 f.write_str("OH_NATIVE_BUFFER_BIT")?;
7350 remaining &= !Self::OH_NATIVE_BUFFER_BIT.0;
7351 first = false;
7352 }
7353 if remaining & Self::SCREEN_BUFFER_BIT.0 != 0 {
7354 if !first {
7355 f.write_str(" | ")?;
7356 }
7357 f.write_str("SCREEN_BUFFER_BIT")?;
7358 remaining &= !Self::SCREEN_BUFFER_BIT.0;
7359 first = false;
7360 }
7361 if remaining & Self::MTLBUFFER.0 != 0 {
7362 if !first {
7363 f.write_str(" | ")?;
7364 }
7365 f.write_str("MTLBUFFER")?;
7366 remaining &= !Self::MTLBUFFER.0;
7367 first = false;
7368 }
7369 if remaining & Self::MTLTEXTURE.0 != 0 {
7370 if !first {
7371 f.write_str(" | ")?;
7372 }
7373 f.write_str("MTLTEXTURE")?;
7374 remaining &= !Self::MTLTEXTURE.0;
7375 first = false;
7376 }
7377 if remaining & Self::MTLHEAP.0 != 0 {
7378 if !first {
7379 f.write_str(" | ")?;
7380 }
7381 f.write_str("MTLHEAP")?;
7382 remaining &= !Self::MTLHEAP.0;
7383 first = false;
7384 }
7385 if remaining != 0u32 {
7386 if !first {
7387 f.write_str(" | ")?;
7388 }
7389 write!(f, "{:#x}", remaining)?;
7390 } else if first {
7391 f.write_str("(empty)")?;
7392 }
7393 Ok(())
7394 }
7395}
7396#[repr(transparent)]
7398#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7399#[doc(alias = "VkExternalMemoryHandleTypeFlagBitsNV")]
7400pub struct ExternalMemoryHandleTypeFlagBitsNV(u32);
7401impl ExternalMemoryHandleTypeFlagBitsNV {
7402 #[inline]
7403 pub const fn empty() -> Self {
7404 Self(0u32)
7405 }
7406 #[inline]
7407 pub const fn from_raw(value: u32) -> Self {
7408 Self(value)
7409 }
7410 #[inline]
7411 pub const fn as_raw(self) -> u32 {
7412 self.0
7413 }
7414 #[inline]
7415 pub const fn is_empty(self) -> bool {
7416 self.0 == 0u32
7417 }
7418 #[inline]
7419 pub const fn contains(self, other: Self) -> bool {
7420 (self.0 & other.0) == other.0
7421 }
7422 #[inline]
7423 pub const fn all() -> Self {
7424 Self(15u32)
7425 }
7426 pub const OPAQUE_WIN32: Self = Self(1u32);
7428 pub const OPAQUE_WIN32_KMT: Self = Self(2u32);
7430 pub const D3D11_IMAGE: Self = Self(4u32);
7432 pub const D3D11_IMAGE_KMT: Self = Self(8u32);
7434}
7435impl core::ops::BitOr for ExternalMemoryHandleTypeFlagBitsNV {
7436 type Output = Self;
7437 #[inline]
7438 fn bitor(self, rhs: Self) -> Self {
7439 Self(self.0 | rhs.0)
7440 }
7441}
7442impl core::ops::BitOrAssign for ExternalMemoryHandleTypeFlagBitsNV {
7443 #[inline]
7444 fn bitor_assign(&mut self, rhs: Self) {
7445 self.0 |= rhs.0;
7446 }
7447}
7448impl core::ops::BitAnd for ExternalMemoryHandleTypeFlagBitsNV {
7449 type Output = Self;
7450 #[inline]
7451 fn bitand(self, rhs: Self) -> Self {
7452 Self(self.0 & rhs.0)
7453 }
7454}
7455impl core::ops::BitAndAssign for ExternalMemoryHandleTypeFlagBitsNV {
7456 #[inline]
7457 fn bitand_assign(&mut self, rhs: Self) {
7458 self.0 &= rhs.0;
7459 }
7460}
7461impl core::ops::BitXor for ExternalMemoryHandleTypeFlagBitsNV {
7462 type Output = Self;
7463 #[inline]
7464 fn bitxor(self, rhs: Self) -> Self {
7465 Self(self.0 ^ rhs.0)
7466 }
7467}
7468impl core::ops::BitXorAssign for ExternalMemoryHandleTypeFlagBitsNV {
7469 #[inline]
7470 fn bitxor_assign(&mut self, rhs: Self) {
7471 self.0 ^= rhs.0;
7472 }
7473}
7474impl core::ops::Not for ExternalMemoryHandleTypeFlagBitsNV {
7475 type Output = Self;
7476 #[inline]
7477 fn not(self) -> Self {
7478 Self(!self.0)
7479 }
7480}
7481impl core::fmt::Debug for ExternalMemoryHandleTypeFlagBitsNV {
7482 #[allow(unused_mut, unused_variables)]
7483 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7484 let mut first = true;
7485 let mut remaining = self.0;
7486 if remaining & Self::OPAQUE_WIN32.0 != 0 {
7487 if !first {
7488 f.write_str(" | ")?;
7489 }
7490 f.write_str("OPAQUE_WIN32")?;
7491 remaining &= !Self::OPAQUE_WIN32.0;
7492 first = false;
7493 }
7494 if remaining & Self::OPAQUE_WIN32_KMT.0 != 0 {
7495 if !first {
7496 f.write_str(" | ")?;
7497 }
7498 f.write_str("OPAQUE_WIN32_KMT")?;
7499 remaining &= !Self::OPAQUE_WIN32_KMT.0;
7500 first = false;
7501 }
7502 if remaining & Self::D3D11_IMAGE.0 != 0 {
7503 if !first {
7504 f.write_str(" | ")?;
7505 }
7506 f.write_str("D3D11_IMAGE")?;
7507 remaining &= !Self::D3D11_IMAGE.0;
7508 first = false;
7509 }
7510 if remaining & Self::D3D11_IMAGE_KMT.0 != 0 {
7511 if !first {
7512 f.write_str(" | ")?;
7513 }
7514 f.write_str("D3D11_IMAGE_KMT")?;
7515 remaining &= !Self::D3D11_IMAGE_KMT.0;
7516 first = false;
7517 }
7518 if remaining != 0u32 {
7519 if !first {
7520 f.write_str(" | ")?;
7521 }
7522 write!(f, "{:#x}", remaining)?;
7523 } else if first {
7524 f.write_str("(empty)")?;
7525 }
7526 Ok(())
7527 }
7528}
7529#[repr(transparent)]
7531#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7532#[doc(alias = "VkExternalSemaphoreFeatureFlagBits")]
7533pub struct ExternalSemaphoreFeatureFlagBits(u32);
7534impl ExternalSemaphoreFeatureFlagBits {
7535 #[inline]
7536 pub const fn empty() -> Self {
7537 Self(0u32)
7538 }
7539 #[inline]
7540 pub const fn from_raw(value: u32) -> Self {
7541 Self(value)
7542 }
7543 #[inline]
7544 pub const fn as_raw(self) -> u32 {
7545 self.0
7546 }
7547 #[inline]
7548 pub const fn is_empty(self) -> bool {
7549 self.0 == 0u32
7550 }
7551 #[inline]
7552 pub const fn contains(self, other: Self) -> bool {
7553 (self.0 & other.0) == other.0
7554 }
7555 #[inline]
7556 pub const fn all() -> Self {
7557 Self(3u32)
7558 }
7559 pub const EXPORTABLE: Self = Self(1u32);
7561 pub const IMPORTABLE: Self = Self(2u32);
7563}
7564impl core::ops::BitOr for ExternalSemaphoreFeatureFlagBits {
7565 type Output = Self;
7566 #[inline]
7567 fn bitor(self, rhs: Self) -> Self {
7568 Self(self.0 | rhs.0)
7569 }
7570}
7571impl core::ops::BitOrAssign for ExternalSemaphoreFeatureFlagBits {
7572 #[inline]
7573 fn bitor_assign(&mut self, rhs: Self) {
7574 self.0 |= rhs.0;
7575 }
7576}
7577impl core::ops::BitAnd for ExternalSemaphoreFeatureFlagBits {
7578 type Output = Self;
7579 #[inline]
7580 fn bitand(self, rhs: Self) -> Self {
7581 Self(self.0 & rhs.0)
7582 }
7583}
7584impl core::ops::BitAndAssign for ExternalSemaphoreFeatureFlagBits {
7585 #[inline]
7586 fn bitand_assign(&mut self, rhs: Self) {
7587 self.0 &= rhs.0;
7588 }
7589}
7590impl core::ops::BitXor for ExternalSemaphoreFeatureFlagBits {
7591 type Output = Self;
7592 #[inline]
7593 fn bitxor(self, rhs: Self) -> Self {
7594 Self(self.0 ^ rhs.0)
7595 }
7596}
7597impl core::ops::BitXorAssign for ExternalSemaphoreFeatureFlagBits {
7598 #[inline]
7599 fn bitxor_assign(&mut self, rhs: Self) {
7600 self.0 ^= rhs.0;
7601 }
7602}
7603impl core::ops::Not for ExternalSemaphoreFeatureFlagBits {
7604 type Output = Self;
7605 #[inline]
7606 fn not(self) -> Self {
7607 Self(!self.0)
7608 }
7609}
7610impl core::fmt::Debug for ExternalSemaphoreFeatureFlagBits {
7611 #[allow(unused_mut, unused_variables)]
7612 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7613 let mut first = true;
7614 let mut remaining = self.0;
7615 if remaining & Self::EXPORTABLE.0 != 0 {
7616 if !first {
7617 f.write_str(" | ")?;
7618 }
7619 f.write_str("EXPORTABLE")?;
7620 remaining &= !Self::EXPORTABLE.0;
7621 first = false;
7622 }
7623 if remaining & Self::IMPORTABLE.0 != 0 {
7624 if !first {
7625 f.write_str(" | ")?;
7626 }
7627 f.write_str("IMPORTABLE")?;
7628 remaining &= !Self::IMPORTABLE.0;
7629 first = false;
7630 }
7631 if remaining != 0u32 {
7632 if !first {
7633 f.write_str(" | ")?;
7634 }
7635 write!(f, "{:#x}", remaining)?;
7636 } else if first {
7637 f.write_str("(empty)")?;
7638 }
7639 Ok(())
7640 }
7641}
7642#[repr(transparent)]
7644#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7645#[doc(alias = "VkExternalSemaphoreHandleTypeFlagBits")]
7646pub struct ExternalSemaphoreHandleTypeFlagBits(u32);
7647impl ExternalSemaphoreHandleTypeFlagBits {
7648 #[inline]
7649 pub const fn empty() -> Self {
7650 Self(0u32)
7651 }
7652 #[inline]
7653 pub const fn from_raw(value: u32) -> Self {
7654 Self(value)
7655 }
7656 #[inline]
7657 pub const fn as_raw(self) -> u32 {
7658 self.0
7659 }
7660 #[inline]
7661 pub const fn is_empty(self) -> bool {
7662 self.0 == 0u32
7663 }
7664 #[inline]
7665 pub const fn contains(self, other: Self) -> bool {
7666 (self.0 & other.0) == other.0
7667 }
7668 #[inline]
7669 pub const fn all() -> Self {
7670 Self(159u32)
7671 }
7672 pub const OPAQUE_FD: Self = Self(1u32);
7674 pub const OPAQUE_WIN32: Self = Self(2u32);
7676 pub const OPAQUE_WIN32_KMT: Self = Self(4u32);
7678 pub const D3D12_FENCE: Self = Self(8u32);
7680 pub const D3D11_FENCE: Self = Self::D3D12_FENCE;
7681 pub const SYNC_FD: Self = Self(16u32);
7683 pub const ZIRCON_EVENT_BIT: Self = Self(128u32);
7685}
7686impl core::ops::BitOr for ExternalSemaphoreHandleTypeFlagBits {
7687 type Output = Self;
7688 #[inline]
7689 fn bitor(self, rhs: Self) -> Self {
7690 Self(self.0 | rhs.0)
7691 }
7692}
7693impl core::ops::BitOrAssign for ExternalSemaphoreHandleTypeFlagBits {
7694 #[inline]
7695 fn bitor_assign(&mut self, rhs: Self) {
7696 self.0 |= rhs.0;
7697 }
7698}
7699impl core::ops::BitAnd for ExternalSemaphoreHandleTypeFlagBits {
7700 type Output = Self;
7701 #[inline]
7702 fn bitand(self, rhs: Self) -> Self {
7703 Self(self.0 & rhs.0)
7704 }
7705}
7706impl core::ops::BitAndAssign for ExternalSemaphoreHandleTypeFlagBits {
7707 #[inline]
7708 fn bitand_assign(&mut self, rhs: Self) {
7709 self.0 &= rhs.0;
7710 }
7711}
7712impl core::ops::BitXor for ExternalSemaphoreHandleTypeFlagBits {
7713 type Output = Self;
7714 #[inline]
7715 fn bitxor(self, rhs: Self) -> Self {
7716 Self(self.0 ^ rhs.0)
7717 }
7718}
7719impl core::ops::BitXorAssign for ExternalSemaphoreHandleTypeFlagBits {
7720 #[inline]
7721 fn bitxor_assign(&mut self, rhs: Self) {
7722 self.0 ^= rhs.0;
7723 }
7724}
7725impl core::ops::Not for ExternalSemaphoreHandleTypeFlagBits {
7726 type Output = Self;
7727 #[inline]
7728 fn not(self) -> Self {
7729 Self(!self.0)
7730 }
7731}
7732impl core::fmt::Debug for ExternalSemaphoreHandleTypeFlagBits {
7733 #[allow(unused_mut, unused_variables)]
7734 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7735 let mut first = true;
7736 let mut remaining = self.0;
7737 if remaining & Self::OPAQUE_FD.0 != 0 {
7738 if !first {
7739 f.write_str(" | ")?;
7740 }
7741 f.write_str("OPAQUE_FD")?;
7742 remaining &= !Self::OPAQUE_FD.0;
7743 first = false;
7744 }
7745 if remaining & Self::OPAQUE_WIN32.0 != 0 {
7746 if !first {
7747 f.write_str(" | ")?;
7748 }
7749 f.write_str("OPAQUE_WIN32")?;
7750 remaining &= !Self::OPAQUE_WIN32.0;
7751 first = false;
7752 }
7753 if remaining & Self::OPAQUE_WIN32_KMT.0 != 0 {
7754 if !first {
7755 f.write_str(" | ")?;
7756 }
7757 f.write_str("OPAQUE_WIN32_KMT")?;
7758 remaining &= !Self::OPAQUE_WIN32_KMT.0;
7759 first = false;
7760 }
7761 if remaining & Self::D3D12_FENCE.0 != 0 {
7762 if !first {
7763 f.write_str(" | ")?;
7764 }
7765 f.write_str("D3D12_FENCE")?;
7766 remaining &= !Self::D3D12_FENCE.0;
7767 first = false;
7768 }
7769 if remaining & Self::SYNC_FD.0 != 0 {
7770 if !first {
7771 f.write_str(" | ")?;
7772 }
7773 f.write_str("SYNC_FD")?;
7774 remaining &= !Self::SYNC_FD.0;
7775 first = false;
7776 }
7777 if remaining & Self::ZIRCON_EVENT_BIT.0 != 0 {
7778 if !first {
7779 f.write_str(" | ")?;
7780 }
7781 f.write_str("ZIRCON_EVENT_BIT")?;
7782 remaining &= !Self::ZIRCON_EVENT_BIT.0;
7783 first = false;
7784 }
7785 if remaining != 0u32 {
7786 if !first {
7787 f.write_str(" | ")?;
7788 }
7789 write!(f, "{:#x}", remaining)?;
7790 } else if first {
7791 f.write_str("(empty)")?;
7792 }
7793 Ok(())
7794 }
7795}
7796#[repr(transparent)]
7798#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7799#[doc(alias = "VkFenceCreateFlagBits")]
7800pub struct FenceCreateFlagBits(u32);
7801impl FenceCreateFlagBits {
7802 #[inline]
7803 pub const fn empty() -> Self {
7804 Self(0u32)
7805 }
7806 #[inline]
7807 pub const fn from_raw(value: u32) -> Self {
7808 Self(value)
7809 }
7810 #[inline]
7811 pub const fn as_raw(self) -> u32 {
7812 self.0
7813 }
7814 #[inline]
7815 pub const fn is_empty(self) -> bool {
7816 self.0 == 0u32
7817 }
7818 #[inline]
7819 pub const fn contains(self, other: Self) -> bool {
7820 (self.0 & other.0) == other.0
7821 }
7822 #[inline]
7823 pub const fn all() -> Self {
7824 Self(1u32)
7825 }
7826 pub const SIGNALED: Self = Self(1u32);
7828}
7829impl core::ops::BitOr for FenceCreateFlagBits {
7830 type Output = Self;
7831 #[inline]
7832 fn bitor(self, rhs: Self) -> Self {
7833 Self(self.0 | rhs.0)
7834 }
7835}
7836impl core::ops::BitOrAssign for FenceCreateFlagBits {
7837 #[inline]
7838 fn bitor_assign(&mut self, rhs: Self) {
7839 self.0 |= rhs.0;
7840 }
7841}
7842impl core::ops::BitAnd for FenceCreateFlagBits {
7843 type Output = Self;
7844 #[inline]
7845 fn bitand(self, rhs: Self) -> Self {
7846 Self(self.0 & rhs.0)
7847 }
7848}
7849impl core::ops::BitAndAssign for FenceCreateFlagBits {
7850 #[inline]
7851 fn bitand_assign(&mut self, rhs: Self) {
7852 self.0 &= rhs.0;
7853 }
7854}
7855impl core::ops::BitXor for FenceCreateFlagBits {
7856 type Output = Self;
7857 #[inline]
7858 fn bitxor(self, rhs: Self) -> Self {
7859 Self(self.0 ^ rhs.0)
7860 }
7861}
7862impl core::ops::BitXorAssign for FenceCreateFlagBits {
7863 #[inline]
7864 fn bitxor_assign(&mut self, rhs: Self) {
7865 self.0 ^= rhs.0;
7866 }
7867}
7868impl core::ops::Not for FenceCreateFlagBits {
7869 type Output = Self;
7870 #[inline]
7871 fn not(self) -> Self {
7872 Self(!self.0)
7873 }
7874}
7875impl core::fmt::Debug for FenceCreateFlagBits {
7876 #[allow(unused_mut, unused_variables)]
7877 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7878 let mut first = true;
7879 let mut remaining = self.0;
7880 if remaining & Self::SIGNALED.0 != 0 {
7881 if !first {
7882 f.write_str(" | ")?;
7883 }
7884 f.write_str("SIGNALED")?;
7885 remaining &= !Self::SIGNALED.0;
7886 first = false;
7887 }
7888 if remaining != 0u32 {
7889 if !first {
7890 f.write_str(" | ")?;
7891 }
7892 write!(f, "{:#x}", remaining)?;
7893 } else if first {
7894 f.write_str("(empty)")?;
7895 }
7896 Ok(())
7897 }
7898}
7899#[repr(transparent)]
7901#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
7902#[doc(alias = "VkFenceImportFlagBits")]
7903pub struct FenceImportFlagBits(u32);
7904impl FenceImportFlagBits {
7905 #[inline]
7906 pub const fn empty() -> Self {
7907 Self(0u32)
7908 }
7909 #[inline]
7910 pub const fn from_raw(value: u32) -> Self {
7911 Self(value)
7912 }
7913 #[inline]
7914 pub const fn as_raw(self) -> u32 {
7915 self.0
7916 }
7917 #[inline]
7918 pub const fn is_empty(self) -> bool {
7919 self.0 == 0u32
7920 }
7921 #[inline]
7922 pub const fn contains(self, other: Self) -> bool {
7923 (self.0 & other.0) == other.0
7924 }
7925 #[inline]
7926 pub const fn all() -> Self {
7927 Self(1u32)
7928 }
7929 pub const TEMPORARY: Self = Self(1u32);
7931}
7932impl core::ops::BitOr for FenceImportFlagBits {
7933 type Output = Self;
7934 #[inline]
7935 fn bitor(self, rhs: Self) -> Self {
7936 Self(self.0 | rhs.0)
7937 }
7938}
7939impl core::ops::BitOrAssign for FenceImportFlagBits {
7940 #[inline]
7941 fn bitor_assign(&mut self, rhs: Self) {
7942 self.0 |= rhs.0;
7943 }
7944}
7945impl core::ops::BitAnd for FenceImportFlagBits {
7946 type Output = Self;
7947 #[inline]
7948 fn bitand(self, rhs: Self) -> Self {
7949 Self(self.0 & rhs.0)
7950 }
7951}
7952impl core::ops::BitAndAssign for FenceImportFlagBits {
7953 #[inline]
7954 fn bitand_assign(&mut self, rhs: Self) {
7955 self.0 &= rhs.0;
7956 }
7957}
7958impl core::ops::BitXor for FenceImportFlagBits {
7959 type Output = Self;
7960 #[inline]
7961 fn bitxor(self, rhs: Self) -> Self {
7962 Self(self.0 ^ rhs.0)
7963 }
7964}
7965impl core::ops::BitXorAssign for FenceImportFlagBits {
7966 #[inline]
7967 fn bitxor_assign(&mut self, rhs: Self) {
7968 self.0 ^= rhs.0;
7969 }
7970}
7971impl core::ops::Not for FenceImportFlagBits {
7972 type Output = Self;
7973 #[inline]
7974 fn not(self) -> Self {
7975 Self(!self.0)
7976 }
7977}
7978impl core::fmt::Debug for FenceImportFlagBits {
7979 #[allow(unused_mut, unused_variables)]
7980 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
7981 let mut first = true;
7982 let mut remaining = self.0;
7983 if remaining & Self::TEMPORARY.0 != 0 {
7984 if !first {
7985 f.write_str(" | ")?;
7986 }
7987 f.write_str("TEMPORARY")?;
7988 remaining &= !Self::TEMPORARY.0;
7989 first = false;
7990 }
7991 if remaining != 0u32 {
7992 if !first {
7993 f.write_str(" | ")?;
7994 }
7995 write!(f, "{:#x}", remaining)?;
7996 } else if first {
7997 f.write_str("(empty)")?;
7998 }
7999 Ok(())
8000 }
8001}
8002#[repr(transparent)]
8004#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
8005#[doc(alias = "VkFormatFeatureFlagBits")]
8006pub struct FormatFeatureFlagBits(u32);
8007impl FormatFeatureFlagBits {
8008 #[inline]
8009 pub const fn empty() -> Self {
8010 Self(0u32)
8011 }
8012 #[inline]
8013 pub const fn from_raw(value: u32) -> Self {
8014 Self(value)
8015 }
8016 #[inline]
8017 pub const fn as_raw(self) -> u32 {
8018 self.0
8019 }
8020 #[inline]
8021 pub const fn is_empty(self) -> bool {
8022 self.0 == 0u32
8023 }
8024 #[inline]
8025 pub const fn contains(self, other: Self) -> bool {
8026 (self.0 & other.0) == other.0
8027 }
8028 #[inline]
8029 pub const fn all() -> Self {
8030 Self(2147483647u32)
8031 }
8032 pub const SAMPLED_IMAGE: Self = Self(1u32);
8034 pub const STORAGE_IMAGE: Self = Self(2u32);
8036 pub const STORAGE_IMAGE_ATOMIC: Self = Self(4u32);
8038 pub const UNIFORM_TEXEL_BUFFER: Self = Self(8u32);
8040 pub const STORAGE_TEXEL_BUFFER: Self = Self(16u32);
8042 pub const STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(32u32);
8044 pub const VERTEX_BUFFER: Self = Self(64u32);
8046 pub const COLOR_ATTACHMENT: Self = Self(128u32);
8048 pub const COLOR_ATTACHMENT_BLEND: Self = Self(256u32);
8050 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(512u32);
8052 pub const BLIT_SRC: Self = Self(1024u32);
8054 pub const BLIT_DST: Self = Self(2048u32);
8056 pub const SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(4096u32);
8058 pub const TRANSFER_SRC: Self = Self(16384u32);
8060 pub const TRANSFER_DST: Self = Self(32768u32);
8062 pub const MIDPOINT_CHROMA_SAMPLES: Self = Self(131072u32);
8064 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(262144u32);
8066 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self = Self(
8068 524288u32,
8069 );
8070 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self = Self(
8072 1048576u32,
8073 );
8074 pub const SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self = Self(
8076 2097152u32,
8077 );
8078 pub const DISJOINT: Self = Self(4194304u32);
8080 pub const COSITED_CHROMA_SAMPLES: Self = Self(8388608u32);
8082 pub const SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(65536u32);
8084 pub const SAMPLED_IMAGE_FILTER_CUBIC_BIT: Self = Self::SAMPLED_IMAGE_FILTER_CUBIC;
8085 pub const VIDEO_DECODE_OUTPUT: Self = Self(33554432u32);
8087 pub const VIDEO_DECODE_DPB: Self = Self(67108864u32);
8089 pub const ACCELERATION_STRUCTURE_VERTEX_BUFFER: Self = Self(536870912u32);
8091 pub const SAMPLED_IMAGE_FILTER_CUBIC: Self = Self(8192u32);
8093 pub const FRAGMENT_DENSITY_MAP: Self = Self(16777216u32);
8095 pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(1073741824u32);
8097 pub const VIDEO_ENCODE_INPUT: Self = Self(134217728u32);
8099 pub const VIDEO_ENCODE_DPB: Self = Self(268435456u32);
8101}
8102impl core::ops::BitOr for FormatFeatureFlagBits {
8103 type Output = Self;
8104 #[inline]
8105 fn bitor(self, rhs: Self) -> Self {
8106 Self(self.0 | rhs.0)
8107 }
8108}
8109impl core::ops::BitOrAssign for FormatFeatureFlagBits {
8110 #[inline]
8111 fn bitor_assign(&mut self, rhs: Self) {
8112 self.0 |= rhs.0;
8113 }
8114}
8115impl core::ops::BitAnd for FormatFeatureFlagBits {
8116 type Output = Self;
8117 #[inline]
8118 fn bitand(self, rhs: Self) -> Self {
8119 Self(self.0 & rhs.0)
8120 }
8121}
8122impl core::ops::BitAndAssign for FormatFeatureFlagBits {
8123 #[inline]
8124 fn bitand_assign(&mut self, rhs: Self) {
8125 self.0 &= rhs.0;
8126 }
8127}
8128impl core::ops::BitXor for FormatFeatureFlagBits {
8129 type Output = Self;
8130 #[inline]
8131 fn bitxor(self, rhs: Self) -> Self {
8132 Self(self.0 ^ rhs.0)
8133 }
8134}
8135impl core::ops::BitXorAssign for FormatFeatureFlagBits {
8136 #[inline]
8137 fn bitxor_assign(&mut self, rhs: Self) {
8138 self.0 ^= rhs.0;
8139 }
8140}
8141impl core::ops::Not for FormatFeatureFlagBits {
8142 type Output = Self;
8143 #[inline]
8144 fn not(self) -> Self {
8145 Self(!self.0)
8146 }
8147}
8148impl core::fmt::Debug for FormatFeatureFlagBits {
8149 #[allow(unused_mut, unused_variables)]
8150 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
8151 let mut first = true;
8152 let mut remaining = self.0;
8153 if remaining & Self::SAMPLED_IMAGE.0 != 0 {
8154 if !first {
8155 f.write_str(" | ")?;
8156 }
8157 f.write_str("SAMPLED_IMAGE")?;
8158 remaining &= !Self::SAMPLED_IMAGE.0;
8159 first = false;
8160 }
8161 if remaining & Self::STORAGE_IMAGE.0 != 0 {
8162 if !first {
8163 f.write_str(" | ")?;
8164 }
8165 f.write_str("STORAGE_IMAGE")?;
8166 remaining &= !Self::STORAGE_IMAGE.0;
8167 first = false;
8168 }
8169 if remaining & Self::STORAGE_IMAGE_ATOMIC.0 != 0 {
8170 if !first {
8171 f.write_str(" | ")?;
8172 }
8173 f.write_str("STORAGE_IMAGE_ATOMIC")?;
8174 remaining &= !Self::STORAGE_IMAGE_ATOMIC.0;
8175 first = false;
8176 }
8177 if remaining & Self::UNIFORM_TEXEL_BUFFER.0 != 0 {
8178 if !first {
8179 f.write_str(" | ")?;
8180 }
8181 f.write_str("UNIFORM_TEXEL_BUFFER")?;
8182 remaining &= !Self::UNIFORM_TEXEL_BUFFER.0;
8183 first = false;
8184 }
8185 if remaining & Self::STORAGE_TEXEL_BUFFER.0 != 0 {
8186 if !first {
8187 f.write_str(" | ")?;
8188 }
8189 f.write_str("STORAGE_TEXEL_BUFFER")?;
8190 remaining &= !Self::STORAGE_TEXEL_BUFFER.0;
8191 first = false;
8192 }
8193 if remaining & Self::STORAGE_TEXEL_BUFFER_ATOMIC.0 != 0 {
8194 if !first {
8195 f.write_str(" | ")?;
8196 }
8197 f.write_str("STORAGE_TEXEL_BUFFER_ATOMIC")?;
8198 remaining &= !Self::STORAGE_TEXEL_BUFFER_ATOMIC.0;
8199 first = false;
8200 }
8201 if remaining & Self::VERTEX_BUFFER.0 != 0 {
8202 if !first {
8203 f.write_str(" | ")?;
8204 }
8205 f.write_str("VERTEX_BUFFER")?;
8206 remaining &= !Self::VERTEX_BUFFER.0;
8207 first = false;
8208 }
8209 if remaining & Self::COLOR_ATTACHMENT.0 != 0 {
8210 if !first {
8211 f.write_str(" | ")?;
8212 }
8213 f.write_str("COLOR_ATTACHMENT")?;
8214 remaining &= !Self::COLOR_ATTACHMENT.0;
8215 first = false;
8216 }
8217 if remaining & Self::COLOR_ATTACHMENT_BLEND.0 != 0 {
8218 if !first {
8219 f.write_str(" | ")?;
8220 }
8221 f.write_str("COLOR_ATTACHMENT_BLEND")?;
8222 remaining &= !Self::COLOR_ATTACHMENT_BLEND.0;
8223 first = false;
8224 }
8225 if remaining & Self::DEPTH_STENCIL_ATTACHMENT.0 != 0 {
8226 if !first {
8227 f.write_str(" | ")?;
8228 }
8229 f.write_str("DEPTH_STENCIL_ATTACHMENT")?;
8230 remaining &= !Self::DEPTH_STENCIL_ATTACHMENT.0;
8231 first = false;
8232 }
8233 if remaining & Self::BLIT_SRC.0 != 0 {
8234 if !first {
8235 f.write_str(" | ")?;
8236 }
8237 f.write_str("BLIT_SRC")?;
8238 remaining &= !Self::BLIT_SRC.0;
8239 first = false;
8240 }
8241 if remaining & Self::BLIT_DST.0 != 0 {
8242 if !first {
8243 f.write_str(" | ")?;
8244 }
8245 f.write_str("BLIT_DST")?;
8246 remaining &= !Self::BLIT_DST.0;
8247 first = false;
8248 }
8249 if remaining & Self::SAMPLED_IMAGE_FILTER_LINEAR.0 != 0 {
8250 if !first {
8251 f.write_str(" | ")?;
8252 }
8253 f.write_str("SAMPLED_IMAGE_FILTER_LINEAR")?;
8254 remaining &= !Self::SAMPLED_IMAGE_FILTER_LINEAR.0;
8255 first = false;
8256 }
8257 if remaining & Self::TRANSFER_SRC.0 != 0 {
8258 if !first {
8259 f.write_str(" | ")?;
8260 }
8261 f.write_str("TRANSFER_SRC")?;
8262 remaining &= !Self::TRANSFER_SRC.0;
8263 first = false;
8264 }
8265 if remaining & Self::TRANSFER_DST.0 != 0 {
8266 if !first {
8267 f.write_str(" | ")?;
8268 }
8269 f.write_str("TRANSFER_DST")?;
8270 remaining &= !Self::TRANSFER_DST.0;
8271 first = false;
8272 }
8273 if remaining & Self::MIDPOINT_CHROMA_SAMPLES.0 != 0 {
8274 if !first {
8275 f.write_str(" | ")?;
8276 }
8277 f.write_str("MIDPOINT_CHROMA_SAMPLES")?;
8278 remaining &= !Self::MIDPOINT_CHROMA_SAMPLES.0;
8279 first = false;
8280 }
8281 if remaining & Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER.0 != 0 {
8282 if !first {
8283 f.write_str(" | ")?;
8284 }
8285 f.write_str("SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER")?;
8286 remaining &= !Self::SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER.0;
8287 first = false;
8288 }
8289 if remaining
8290 & Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER.0 != 0
8291 {
8292 if !first {
8293 f.write_str(" | ")?;
8294 }
8295 f.write_str(
8296 "SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER",
8297 )?;
8298 remaining
8299 &= !Self::SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER
8300 .0;
8301 first = false;
8302 }
8303 if remaining
8304 & Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT.0 != 0
8305 {
8306 if !first {
8307 f.write_str(" | ")?;
8308 }
8309 f.write_str(
8310 "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT",
8311 )?;
8312 remaining
8313 &= !Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT
8314 .0;
8315 first = false;
8316 }
8317 if remaining
8318 & Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE
8319 .0 != 0
8320 {
8321 if !first {
8322 f.write_str(" | ")?;
8323 }
8324 f.write_str(
8325 "SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE",
8326 )?;
8327 remaining
8328 &= !Self::SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE
8329 .0;
8330 first = false;
8331 }
8332 if remaining & Self::DISJOINT.0 != 0 {
8333 if !first {
8334 f.write_str(" | ")?;
8335 }
8336 f.write_str("DISJOINT")?;
8337 remaining &= !Self::DISJOINT.0;
8338 first = false;
8339 }
8340 if remaining & Self::COSITED_CHROMA_SAMPLES.0 != 0 {
8341 if !first {
8342 f.write_str(" | ")?;
8343 }
8344 f.write_str("COSITED_CHROMA_SAMPLES")?;
8345 remaining &= !Self::COSITED_CHROMA_SAMPLES.0;
8346 first = false;
8347 }
8348 if remaining & Self::SAMPLED_IMAGE_FILTER_MINMAX.0 != 0 {
8349 if !first {
8350 f.write_str(" | ")?;
8351 }
8352 f.write_str("SAMPLED_IMAGE_FILTER_MINMAX")?;
8353 remaining &= !Self::SAMPLED_IMAGE_FILTER_MINMAX.0;
8354 first = false;
8355 }
8356 if remaining & Self::VIDEO_DECODE_OUTPUT.0 != 0 {
8357 if !first {
8358 f.write_str(" | ")?;
8359 }
8360 f.write_str("VIDEO_DECODE_OUTPUT")?;
8361 remaining &= !Self::VIDEO_DECODE_OUTPUT.0;
8362 first = false;
8363 }
8364 if remaining & Self::VIDEO_DECODE_DPB.0 != 0 {
8365 if !first {
8366 f.write_str(" | ")?;
8367 }
8368 f.write_str("VIDEO_DECODE_DPB")?;
8369 remaining &= !Self::VIDEO_DECODE_DPB.0;
8370 first = false;
8371 }
8372 if remaining & Self::ACCELERATION_STRUCTURE_VERTEX_BUFFER.0 != 0 {
8373 if !first {
8374 f.write_str(" | ")?;
8375 }
8376 f.write_str("ACCELERATION_STRUCTURE_VERTEX_BUFFER")?;
8377 remaining &= !Self::ACCELERATION_STRUCTURE_VERTEX_BUFFER.0;
8378 first = false;
8379 }
8380 if remaining & Self::SAMPLED_IMAGE_FILTER_CUBIC.0 != 0 {
8381 if !first {
8382 f.write_str(" | ")?;
8383 }
8384 f.write_str("SAMPLED_IMAGE_FILTER_CUBIC")?;
8385 remaining &= !Self::SAMPLED_IMAGE_FILTER_CUBIC.0;
8386 first = false;
8387 }
8388 if remaining & Self::FRAGMENT_DENSITY_MAP.0 != 0 {
8389 if !first {
8390 f.write_str(" | ")?;
8391 }
8392 f.write_str("FRAGMENT_DENSITY_MAP")?;
8393 remaining &= !Self::FRAGMENT_DENSITY_MAP.0;
8394 first = false;
8395 }
8396 if remaining & Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
8397 if !first {
8398 f.write_str(" | ")?;
8399 }
8400 f.write_str("FRAGMENT_SHADING_RATE_ATTACHMENT")?;
8401 remaining &= !Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0;
8402 first = false;
8403 }
8404 if remaining & Self::VIDEO_ENCODE_INPUT.0 != 0 {
8405 if !first {
8406 f.write_str(" | ")?;
8407 }
8408 f.write_str("VIDEO_ENCODE_INPUT")?;
8409 remaining &= !Self::VIDEO_ENCODE_INPUT.0;
8410 first = false;
8411 }
8412 if remaining & Self::VIDEO_ENCODE_DPB.0 != 0 {
8413 if !first {
8414 f.write_str(" | ")?;
8415 }
8416 f.write_str("VIDEO_ENCODE_DPB")?;
8417 remaining &= !Self::VIDEO_ENCODE_DPB.0;
8418 first = false;
8419 }
8420 if remaining != 0u32 {
8421 if !first {
8422 f.write_str(" | ")?;
8423 }
8424 write!(f, "{:#x}", remaining)?;
8425 } else if first {
8426 f.write_str("(empty)")?;
8427 }
8428 Ok(())
8429 }
8430}
8431#[repr(transparent)]
8433#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
8434#[doc(alias = "VkFormatFeatureFlagBits2")]
8435pub struct FormatFeatureFlagBits2(u64);
8436impl FormatFeatureFlagBits2 {
8437 #[inline]
8438 pub const fn empty() -> Self {
8439 Self(0u64)
8440 }
8441 #[inline]
8442 pub const fn from_raw(value: u64) -> Self {
8443 Self(value)
8444 }
8445 #[inline]
8446 pub const fn as_raw(self) -> u64 {
8447 self.0
8448 }
8449 #[inline]
8450 pub const fn is_empty(self) -> bool {
8451 self.0 == 0u64
8452 }
8453 #[inline]
8454 pub const fn contains(self, other: Self) -> bool {
8455 (self.0 & other.0) == other.0
8456 }
8457 #[inline]
8458 pub const fn all() -> Self {
8459 Self(648324832294862847u64)
8460 }
8461 pub const _2_SAMPLED_IMAGE: Self = Self(1u64);
8463 pub const _2_STORAGE_IMAGE: Self = Self(2u64);
8465 pub const _2_STORAGE_IMAGE_ATOMIC: Self = Self(4u64);
8467 pub const _2_UNIFORM_TEXEL_BUFFER: Self = Self(8u64);
8469 pub const _2_STORAGE_TEXEL_BUFFER: Self = Self(16u64);
8471 pub const _2_STORAGE_TEXEL_BUFFER_ATOMIC: Self = Self(32u64);
8473 pub const _2_VERTEX_BUFFER: Self = Self(64u64);
8475 pub const _2_COLOR_ATTACHMENT: Self = Self(128u64);
8477 pub const _2_COLOR_ATTACHMENT_BLEND: Self = Self(256u64);
8479 pub const _2_DEPTH_STENCIL_ATTACHMENT: Self = Self(512u64);
8481 pub const _2_BLIT_SRC: Self = Self(1024u64);
8483 pub const _2_BLIT_DST: Self = Self(2048u64);
8485 pub const _2_SAMPLED_IMAGE_FILTER_LINEAR: Self = Self(4096u64);
8487 pub const _2_TRANSFER_SRC: Self = Self(16384u64);
8489 pub const _2_TRANSFER_DST: Self = Self(32768u64);
8491 pub const _2_SAMPLED_IMAGE_FILTER_MINMAX: Self = Self(65536u64);
8493 pub const _2_MIDPOINT_CHROMA_SAMPLES: Self = Self(131072u64);
8495 pub const _2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER: Self = Self(262144u64);
8497 pub const _2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER: Self = Self(
8499 524288u64,
8500 );
8501 pub const _2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT: Self = Self(
8503 1048576u64,
8504 );
8505 pub const _2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE: Self = Self(
8507 2097152u64,
8508 );
8509 pub const _2_DISJOINT: Self = Self(4194304u64);
8511 pub const _2_COSITED_CHROMA_SAMPLES: Self = Self(8388608u64);
8513 pub const _2_STORAGE_READ_WITHOUT_FORMAT: Self = Self(2147483648u64);
8515 pub const _2_STORAGE_WRITE_WITHOUT_FORMAT: Self = Self(4294967296u64);
8517 pub const _2_SAMPLED_IMAGE_DEPTH_COMPARISON: Self = Self(8589934592u64);
8519 pub const _2_SAMPLED_IMAGE_FILTER_CUBIC: Self = Self(8192u64);
8521 pub const _2_HOST_IMAGE_TRANSFER: Self = Self(70368744177664u64);
8523 pub const _2_VIDEO_DECODE_OUTPUT: Self = Self(33554432u64);
8525 pub const _2_VIDEO_DECODE_DPB: Self = Self(67108864u64);
8527 pub const _2_ACCELERATION_STRUCTURE_VERTEX_BUFFER: Self = Self(536870912u64);
8529 pub const _2_FRAGMENT_DENSITY_MAP: Self = Self(16777216u64);
8531 pub const _2_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(1073741824u64);
8533 pub const _2_VIDEO_ENCODE_INPUT: Self = Self(134217728u64);
8535 pub const _2_VIDEO_ENCODE_DPB: Self = Self(268435456u64);
8537 pub const _2_ACCELERATION_STRUCTURE_RADIUS_BUFFER: Self = Self(2251799813685248u64);
8539 pub const _2_LINEAR_COLOR_ATTACHMENT: Self = Self(274877906944u64);
8541 pub const _2_WEIGHT_IMAGE_BIT: Self = Self(17179869184u64);
8543 pub const _2_WEIGHT_SAMPLED_IMAGE_BIT: Self = Self(34359738368u64);
8545 pub const _2_BLOCK_MATCHING_BIT: Self = Self(68719476736u64);
8547 pub const _2_BOX_FILTER_SAMPLED_BIT: Self = Self(137438953472u64);
8549 pub const _2_TENSOR_SHADER_BIT: Self = Self(549755813888u64);
8551 pub const _2_TENSOR_IMAGE_ALIASING_BIT: Self = Self(8796093022208u64);
8553 pub const _2_OPTICAL_FLOW_IMAGE: Self = Self(1099511627776u64);
8555 pub const _2_OPTICAL_FLOW_VECTOR: Self = Self(2199023255552u64);
8557 pub const _2_OPTICAL_FLOW_COST: Self = Self(4398046511104u64);
8559 pub const _2_TENSOR_DATA_GRAPH_BIT: Self = Self(281474976710656u64);
8561 pub const _2_COPY_IMAGE_INDIRECT_DST: Self = Self(576460752303423488u64);
8563 pub const _2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP: Self = Self(562949953421312u64);
8565 pub const _2_VIDEO_ENCODE_EMPHASIS_MAP: Self = Self(1125899906842624u64);
8567 pub const _2_DEPTH_COPY_ON_COMPUTE_QUEUE: Self = Self(4503599627370496u64);
8569 pub const _2_DEPTH_COPY_ON_TRANSFER_QUEUE: Self = Self(9007199254740992u64);
8571 pub const _2_STENCIL_COPY_ON_COMPUTE_QUEUE: Self = Self(18014398509481984u64);
8573 pub const _2_STENCIL_COPY_ON_TRANSFER_QUEUE: Self = Self(36028797018963968u64);
8575}
8576impl core::ops::BitOr for FormatFeatureFlagBits2 {
8577 type Output = Self;
8578 #[inline]
8579 fn bitor(self, rhs: Self) -> Self {
8580 Self(self.0 | rhs.0)
8581 }
8582}
8583impl core::ops::BitOrAssign for FormatFeatureFlagBits2 {
8584 #[inline]
8585 fn bitor_assign(&mut self, rhs: Self) {
8586 self.0 |= rhs.0;
8587 }
8588}
8589impl core::ops::BitAnd for FormatFeatureFlagBits2 {
8590 type Output = Self;
8591 #[inline]
8592 fn bitand(self, rhs: Self) -> Self {
8593 Self(self.0 & rhs.0)
8594 }
8595}
8596impl core::ops::BitAndAssign for FormatFeatureFlagBits2 {
8597 #[inline]
8598 fn bitand_assign(&mut self, rhs: Self) {
8599 self.0 &= rhs.0;
8600 }
8601}
8602impl core::ops::BitXor for FormatFeatureFlagBits2 {
8603 type Output = Self;
8604 #[inline]
8605 fn bitxor(self, rhs: Self) -> Self {
8606 Self(self.0 ^ rhs.0)
8607 }
8608}
8609impl core::ops::BitXorAssign for FormatFeatureFlagBits2 {
8610 #[inline]
8611 fn bitxor_assign(&mut self, rhs: Self) {
8612 self.0 ^= rhs.0;
8613 }
8614}
8615impl core::ops::Not for FormatFeatureFlagBits2 {
8616 type Output = Self;
8617 #[inline]
8618 fn not(self) -> Self {
8619 Self(!self.0)
8620 }
8621}
8622impl core::fmt::Debug for FormatFeatureFlagBits2 {
8623 #[allow(unused_mut, unused_variables)]
8624 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
8625 let mut first = true;
8626 let mut remaining = self.0;
8627 if remaining & Self::_2_SAMPLED_IMAGE.0 != 0 {
8628 if !first {
8629 f.write_str(" | ")?;
8630 }
8631 f.write_str("_2_SAMPLED_IMAGE")?;
8632 remaining &= !Self::_2_SAMPLED_IMAGE.0;
8633 first = false;
8634 }
8635 if remaining & Self::_2_STORAGE_IMAGE.0 != 0 {
8636 if !first {
8637 f.write_str(" | ")?;
8638 }
8639 f.write_str("_2_STORAGE_IMAGE")?;
8640 remaining &= !Self::_2_STORAGE_IMAGE.0;
8641 first = false;
8642 }
8643 if remaining & Self::_2_STORAGE_IMAGE_ATOMIC.0 != 0 {
8644 if !first {
8645 f.write_str(" | ")?;
8646 }
8647 f.write_str("_2_STORAGE_IMAGE_ATOMIC")?;
8648 remaining &= !Self::_2_STORAGE_IMAGE_ATOMIC.0;
8649 first = false;
8650 }
8651 if remaining & Self::_2_UNIFORM_TEXEL_BUFFER.0 != 0 {
8652 if !first {
8653 f.write_str(" | ")?;
8654 }
8655 f.write_str("_2_UNIFORM_TEXEL_BUFFER")?;
8656 remaining &= !Self::_2_UNIFORM_TEXEL_BUFFER.0;
8657 first = false;
8658 }
8659 if remaining & Self::_2_STORAGE_TEXEL_BUFFER.0 != 0 {
8660 if !first {
8661 f.write_str(" | ")?;
8662 }
8663 f.write_str("_2_STORAGE_TEXEL_BUFFER")?;
8664 remaining &= !Self::_2_STORAGE_TEXEL_BUFFER.0;
8665 first = false;
8666 }
8667 if remaining & Self::_2_STORAGE_TEXEL_BUFFER_ATOMIC.0 != 0 {
8668 if !first {
8669 f.write_str(" | ")?;
8670 }
8671 f.write_str("_2_STORAGE_TEXEL_BUFFER_ATOMIC")?;
8672 remaining &= !Self::_2_STORAGE_TEXEL_BUFFER_ATOMIC.0;
8673 first = false;
8674 }
8675 if remaining & Self::_2_VERTEX_BUFFER.0 != 0 {
8676 if !first {
8677 f.write_str(" | ")?;
8678 }
8679 f.write_str("_2_VERTEX_BUFFER")?;
8680 remaining &= !Self::_2_VERTEX_BUFFER.0;
8681 first = false;
8682 }
8683 if remaining & Self::_2_COLOR_ATTACHMENT.0 != 0 {
8684 if !first {
8685 f.write_str(" | ")?;
8686 }
8687 f.write_str("_2_COLOR_ATTACHMENT")?;
8688 remaining &= !Self::_2_COLOR_ATTACHMENT.0;
8689 first = false;
8690 }
8691 if remaining & Self::_2_COLOR_ATTACHMENT_BLEND.0 != 0 {
8692 if !first {
8693 f.write_str(" | ")?;
8694 }
8695 f.write_str("_2_COLOR_ATTACHMENT_BLEND")?;
8696 remaining &= !Self::_2_COLOR_ATTACHMENT_BLEND.0;
8697 first = false;
8698 }
8699 if remaining & Self::_2_DEPTH_STENCIL_ATTACHMENT.0 != 0 {
8700 if !first {
8701 f.write_str(" | ")?;
8702 }
8703 f.write_str("_2_DEPTH_STENCIL_ATTACHMENT")?;
8704 remaining &= !Self::_2_DEPTH_STENCIL_ATTACHMENT.0;
8705 first = false;
8706 }
8707 if remaining & Self::_2_BLIT_SRC.0 != 0 {
8708 if !first {
8709 f.write_str(" | ")?;
8710 }
8711 f.write_str("_2_BLIT_SRC")?;
8712 remaining &= !Self::_2_BLIT_SRC.0;
8713 first = false;
8714 }
8715 if remaining & Self::_2_BLIT_DST.0 != 0 {
8716 if !first {
8717 f.write_str(" | ")?;
8718 }
8719 f.write_str("_2_BLIT_DST")?;
8720 remaining &= !Self::_2_BLIT_DST.0;
8721 first = false;
8722 }
8723 if remaining & Self::_2_SAMPLED_IMAGE_FILTER_LINEAR.0 != 0 {
8724 if !first {
8725 f.write_str(" | ")?;
8726 }
8727 f.write_str("_2_SAMPLED_IMAGE_FILTER_LINEAR")?;
8728 remaining &= !Self::_2_SAMPLED_IMAGE_FILTER_LINEAR.0;
8729 first = false;
8730 }
8731 if remaining & Self::_2_TRANSFER_SRC.0 != 0 {
8732 if !first {
8733 f.write_str(" | ")?;
8734 }
8735 f.write_str("_2_TRANSFER_SRC")?;
8736 remaining &= !Self::_2_TRANSFER_SRC.0;
8737 first = false;
8738 }
8739 if remaining & Self::_2_TRANSFER_DST.0 != 0 {
8740 if !first {
8741 f.write_str(" | ")?;
8742 }
8743 f.write_str("_2_TRANSFER_DST")?;
8744 remaining &= !Self::_2_TRANSFER_DST.0;
8745 first = false;
8746 }
8747 if remaining & Self::_2_SAMPLED_IMAGE_FILTER_MINMAX.0 != 0 {
8748 if !first {
8749 f.write_str(" | ")?;
8750 }
8751 f.write_str("_2_SAMPLED_IMAGE_FILTER_MINMAX")?;
8752 remaining &= !Self::_2_SAMPLED_IMAGE_FILTER_MINMAX.0;
8753 first = false;
8754 }
8755 if remaining & Self::_2_MIDPOINT_CHROMA_SAMPLES.0 != 0 {
8756 if !first {
8757 f.write_str(" | ")?;
8758 }
8759 f.write_str("_2_MIDPOINT_CHROMA_SAMPLES")?;
8760 remaining &= !Self::_2_MIDPOINT_CHROMA_SAMPLES.0;
8761 first = false;
8762 }
8763 if remaining & Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER.0 != 0 {
8764 if !first {
8765 f.write_str(" | ")?;
8766 }
8767 f.write_str("_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER")?;
8768 remaining &= !Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER.0;
8769 first = false;
8770 }
8771 if remaining
8772 & Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER.0
8773 != 0
8774 {
8775 if !first {
8776 f.write_str(" | ")?;
8777 }
8778 f.write_str(
8779 "_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER",
8780 )?;
8781 remaining
8782 &= !Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER
8783 .0;
8784 first = false;
8785 }
8786 if remaining
8787 & Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT.0
8788 != 0
8789 {
8790 if !first {
8791 f.write_str(" | ")?;
8792 }
8793 f.write_str(
8794 "_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT",
8795 )?;
8796 remaining
8797 &= !Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT
8798 .0;
8799 first = false;
8800 }
8801 if remaining
8802 & Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE
8803 .0 != 0
8804 {
8805 if !first {
8806 f.write_str(" | ")?;
8807 }
8808 f.write_str(
8809 "_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE",
8810 )?;
8811 remaining
8812 &= !Self::_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE
8813 .0;
8814 first = false;
8815 }
8816 if remaining & Self::_2_DISJOINT.0 != 0 {
8817 if !first {
8818 f.write_str(" | ")?;
8819 }
8820 f.write_str("_2_DISJOINT")?;
8821 remaining &= !Self::_2_DISJOINT.0;
8822 first = false;
8823 }
8824 if remaining & Self::_2_COSITED_CHROMA_SAMPLES.0 != 0 {
8825 if !first {
8826 f.write_str(" | ")?;
8827 }
8828 f.write_str("_2_COSITED_CHROMA_SAMPLES")?;
8829 remaining &= !Self::_2_COSITED_CHROMA_SAMPLES.0;
8830 first = false;
8831 }
8832 if remaining & Self::_2_STORAGE_READ_WITHOUT_FORMAT.0 != 0 {
8833 if !first {
8834 f.write_str(" | ")?;
8835 }
8836 f.write_str("_2_STORAGE_READ_WITHOUT_FORMAT")?;
8837 remaining &= !Self::_2_STORAGE_READ_WITHOUT_FORMAT.0;
8838 first = false;
8839 }
8840 if remaining & Self::_2_STORAGE_WRITE_WITHOUT_FORMAT.0 != 0 {
8841 if !first {
8842 f.write_str(" | ")?;
8843 }
8844 f.write_str("_2_STORAGE_WRITE_WITHOUT_FORMAT")?;
8845 remaining &= !Self::_2_STORAGE_WRITE_WITHOUT_FORMAT.0;
8846 first = false;
8847 }
8848 if remaining & Self::_2_SAMPLED_IMAGE_DEPTH_COMPARISON.0 != 0 {
8849 if !first {
8850 f.write_str(" | ")?;
8851 }
8852 f.write_str("_2_SAMPLED_IMAGE_DEPTH_COMPARISON")?;
8853 remaining &= !Self::_2_SAMPLED_IMAGE_DEPTH_COMPARISON.0;
8854 first = false;
8855 }
8856 if remaining & Self::_2_SAMPLED_IMAGE_FILTER_CUBIC.0 != 0 {
8857 if !first {
8858 f.write_str(" | ")?;
8859 }
8860 f.write_str("_2_SAMPLED_IMAGE_FILTER_CUBIC")?;
8861 remaining &= !Self::_2_SAMPLED_IMAGE_FILTER_CUBIC.0;
8862 first = false;
8863 }
8864 if remaining & Self::_2_HOST_IMAGE_TRANSFER.0 != 0 {
8865 if !first {
8866 f.write_str(" | ")?;
8867 }
8868 f.write_str("_2_HOST_IMAGE_TRANSFER")?;
8869 remaining &= !Self::_2_HOST_IMAGE_TRANSFER.0;
8870 first = false;
8871 }
8872 if remaining & Self::_2_VIDEO_DECODE_OUTPUT.0 != 0 {
8873 if !first {
8874 f.write_str(" | ")?;
8875 }
8876 f.write_str("_2_VIDEO_DECODE_OUTPUT")?;
8877 remaining &= !Self::_2_VIDEO_DECODE_OUTPUT.0;
8878 first = false;
8879 }
8880 if remaining & Self::_2_VIDEO_DECODE_DPB.0 != 0 {
8881 if !first {
8882 f.write_str(" | ")?;
8883 }
8884 f.write_str("_2_VIDEO_DECODE_DPB")?;
8885 remaining &= !Self::_2_VIDEO_DECODE_DPB.0;
8886 first = false;
8887 }
8888 if remaining & Self::_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER.0 != 0 {
8889 if !first {
8890 f.write_str(" | ")?;
8891 }
8892 f.write_str("_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER")?;
8893 remaining &= !Self::_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER.0;
8894 first = false;
8895 }
8896 if remaining & Self::_2_FRAGMENT_DENSITY_MAP.0 != 0 {
8897 if !first {
8898 f.write_str(" | ")?;
8899 }
8900 f.write_str("_2_FRAGMENT_DENSITY_MAP")?;
8901 remaining &= !Self::_2_FRAGMENT_DENSITY_MAP.0;
8902 first = false;
8903 }
8904 if remaining & Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
8905 if !first {
8906 f.write_str(" | ")?;
8907 }
8908 f.write_str("_2_FRAGMENT_SHADING_RATE_ATTACHMENT")?;
8909 remaining &= !Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT.0;
8910 first = false;
8911 }
8912 if remaining & Self::_2_VIDEO_ENCODE_INPUT.0 != 0 {
8913 if !first {
8914 f.write_str(" | ")?;
8915 }
8916 f.write_str("_2_VIDEO_ENCODE_INPUT")?;
8917 remaining &= !Self::_2_VIDEO_ENCODE_INPUT.0;
8918 first = false;
8919 }
8920 if remaining & Self::_2_VIDEO_ENCODE_DPB.0 != 0 {
8921 if !first {
8922 f.write_str(" | ")?;
8923 }
8924 f.write_str("_2_VIDEO_ENCODE_DPB")?;
8925 remaining &= !Self::_2_VIDEO_ENCODE_DPB.0;
8926 first = false;
8927 }
8928 if remaining & Self::_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER.0 != 0 {
8929 if !first {
8930 f.write_str(" | ")?;
8931 }
8932 f.write_str("_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER")?;
8933 remaining &= !Self::_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER.0;
8934 first = false;
8935 }
8936 if remaining & Self::_2_LINEAR_COLOR_ATTACHMENT.0 != 0 {
8937 if !first {
8938 f.write_str(" | ")?;
8939 }
8940 f.write_str("_2_LINEAR_COLOR_ATTACHMENT")?;
8941 remaining &= !Self::_2_LINEAR_COLOR_ATTACHMENT.0;
8942 first = false;
8943 }
8944 if remaining & Self::_2_WEIGHT_IMAGE_BIT.0 != 0 {
8945 if !first {
8946 f.write_str(" | ")?;
8947 }
8948 f.write_str("_2_WEIGHT_IMAGE_BIT")?;
8949 remaining &= !Self::_2_WEIGHT_IMAGE_BIT.0;
8950 first = false;
8951 }
8952 if remaining & Self::_2_WEIGHT_SAMPLED_IMAGE_BIT.0 != 0 {
8953 if !first {
8954 f.write_str(" | ")?;
8955 }
8956 f.write_str("_2_WEIGHT_SAMPLED_IMAGE_BIT")?;
8957 remaining &= !Self::_2_WEIGHT_SAMPLED_IMAGE_BIT.0;
8958 first = false;
8959 }
8960 if remaining & Self::_2_BLOCK_MATCHING_BIT.0 != 0 {
8961 if !first {
8962 f.write_str(" | ")?;
8963 }
8964 f.write_str("_2_BLOCK_MATCHING_BIT")?;
8965 remaining &= !Self::_2_BLOCK_MATCHING_BIT.0;
8966 first = false;
8967 }
8968 if remaining & Self::_2_BOX_FILTER_SAMPLED_BIT.0 != 0 {
8969 if !first {
8970 f.write_str(" | ")?;
8971 }
8972 f.write_str("_2_BOX_FILTER_SAMPLED_BIT")?;
8973 remaining &= !Self::_2_BOX_FILTER_SAMPLED_BIT.0;
8974 first = false;
8975 }
8976 if remaining & Self::_2_TENSOR_SHADER_BIT.0 != 0 {
8977 if !first {
8978 f.write_str(" | ")?;
8979 }
8980 f.write_str("_2_TENSOR_SHADER_BIT")?;
8981 remaining &= !Self::_2_TENSOR_SHADER_BIT.0;
8982 first = false;
8983 }
8984 if remaining & Self::_2_TENSOR_IMAGE_ALIASING_BIT.0 != 0 {
8985 if !first {
8986 f.write_str(" | ")?;
8987 }
8988 f.write_str("_2_TENSOR_IMAGE_ALIASING_BIT")?;
8989 remaining &= !Self::_2_TENSOR_IMAGE_ALIASING_BIT.0;
8990 first = false;
8991 }
8992 if remaining & Self::_2_OPTICAL_FLOW_IMAGE.0 != 0 {
8993 if !first {
8994 f.write_str(" | ")?;
8995 }
8996 f.write_str("_2_OPTICAL_FLOW_IMAGE")?;
8997 remaining &= !Self::_2_OPTICAL_FLOW_IMAGE.0;
8998 first = false;
8999 }
9000 if remaining & Self::_2_OPTICAL_FLOW_VECTOR.0 != 0 {
9001 if !first {
9002 f.write_str(" | ")?;
9003 }
9004 f.write_str("_2_OPTICAL_FLOW_VECTOR")?;
9005 remaining &= !Self::_2_OPTICAL_FLOW_VECTOR.0;
9006 first = false;
9007 }
9008 if remaining & Self::_2_OPTICAL_FLOW_COST.0 != 0 {
9009 if !first {
9010 f.write_str(" | ")?;
9011 }
9012 f.write_str("_2_OPTICAL_FLOW_COST")?;
9013 remaining &= !Self::_2_OPTICAL_FLOW_COST.0;
9014 first = false;
9015 }
9016 if remaining & Self::_2_TENSOR_DATA_GRAPH_BIT.0 != 0 {
9017 if !first {
9018 f.write_str(" | ")?;
9019 }
9020 f.write_str("_2_TENSOR_DATA_GRAPH_BIT")?;
9021 remaining &= !Self::_2_TENSOR_DATA_GRAPH_BIT.0;
9022 first = false;
9023 }
9024 if remaining & Self::_2_COPY_IMAGE_INDIRECT_DST.0 != 0 {
9025 if !first {
9026 f.write_str(" | ")?;
9027 }
9028 f.write_str("_2_COPY_IMAGE_INDIRECT_DST")?;
9029 remaining &= !Self::_2_COPY_IMAGE_INDIRECT_DST.0;
9030 first = false;
9031 }
9032 if remaining & Self::_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP.0 != 0 {
9033 if !first {
9034 f.write_str(" | ")?;
9035 }
9036 f.write_str("_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP")?;
9037 remaining &= !Self::_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP.0;
9038 first = false;
9039 }
9040 if remaining & Self::_2_VIDEO_ENCODE_EMPHASIS_MAP.0 != 0 {
9041 if !first {
9042 f.write_str(" | ")?;
9043 }
9044 f.write_str("_2_VIDEO_ENCODE_EMPHASIS_MAP")?;
9045 remaining &= !Self::_2_VIDEO_ENCODE_EMPHASIS_MAP.0;
9046 first = false;
9047 }
9048 if remaining & Self::_2_DEPTH_COPY_ON_COMPUTE_QUEUE.0 != 0 {
9049 if !first {
9050 f.write_str(" | ")?;
9051 }
9052 f.write_str("_2_DEPTH_COPY_ON_COMPUTE_QUEUE")?;
9053 remaining &= !Self::_2_DEPTH_COPY_ON_COMPUTE_QUEUE.0;
9054 first = false;
9055 }
9056 if remaining & Self::_2_DEPTH_COPY_ON_TRANSFER_QUEUE.0 != 0 {
9057 if !first {
9058 f.write_str(" | ")?;
9059 }
9060 f.write_str("_2_DEPTH_COPY_ON_TRANSFER_QUEUE")?;
9061 remaining &= !Self::_2_DEPTH_COPY_ON_TRANSFER_QUEUE.0;
9062 first = false;
9063 }
9064 if remaining & Self::_2_STENCIL_COPY_ON_COMPUTE_QUEUE.0 != 0 {
9065 if !first {
9066 f.write_str(" | ")?;
9067 }
9068 f.write_str("_2_STENCIL_COPY_ON_COMPUTE_QUEUE")?;
9069 remaining &= !Self::_2_STENCIL_COPY_ON_COMPUTE_QUEUE.0;
9070 first = false;
9071 }
9072 if remaining & Self::_2_STENCIL_COPY_ON_TRANSFER_QUEUE.0 != 0 {
9073 if !first {
9074 f.write_str(" | ")?;
9075 }
9076 f.write_str("_2_STENCIL_COPY_ON_TRANSFER_QUEUE")?;
9077 remaining &= !Self::_2_STENCIL_COPY_ON_TRANSFER_QUEUE.0;
9078 first = false;
9079 }
9080 if remaining != 0u64 {
9081 if !first {
9082 f.write_str(" | ")?;
9083 }
9084 write!(f, "{:#x}", remaining)?;
9085 } else if first {
9086 f.write_str("(empty)")?;
9087 }
9088 Ok(())
9089 }
9090}
9091#[repr(transparent)]
9093#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9094#[doc(alias = "VkFrameBoundaryFlagBitsEXT")]
9095pub struct FrameBoundaryFlagBitsEXT(u32);
9096impl FrameBoundaryFlagBitsEXT {
9097 #[inline]
9098 pub const fn empty() -> Self {
9099 Self(0u32)
9100 }
9101 #[inline]
9102 pub const fn from_raw(value: u32) -> Self {
9103 Self(value)
9104 }
9105 #[inline]
9106 pub const fn as_raw(self) -> u32 {
9107 self.0
9108 }
9109 #[inline]
9110 pub const fn is_empty(self) -> bool {
9111 self.0 == 0u32
9112 }
9113 #[inline]
9114 pub const fn contains(self, other: Self) -> bool {
9115 (self.0 & other.0) == other.0
9116 }
9117 #[inline]
9118 pub const fn all() -> Self {
9119 Self(1u32)
9120 }
9121 pub const FRAME_END: Self = Self(1u32);
9123}
9124impl core::ops::BitOr for FrameBoundaryFlagBitsEXT {
9125 type Output = Self;
9126 #[inline]
9127 fn bitor(self, rhs: Self) -> Self {
9128 Self(self.0 | rhs.0)
9129 }
9130}
9131impl core::ops::BitOrAssign for FrameBoundaryFlagBitsEXT {
9132 #[inline]
9133 fn bitor_assign(&mut self, rhs: Self) {
9134 self.0 |= rhs.0;
9135 }
9136}
9137impl core::ops::BitAnd for FrameBoundaryFlagBitsEXT {
9138 type Output = Self;
9139 #[inline]
9140 fn bitand(self, rhs: Self) -> Self {
9141 Self(self.0 & rhs.0)
9142 }
9143}
9144impl core::ops::BitAndAssign for FrameBoundaryFlagBitsEXT {
9145 #[inline]
9146 fn bitand_assign(&mut self, rhs: Self) {
9147 self.0 &= rhs.0;
9148 }
9149}
9150impl core::ops::BitXor for FrameBoundaryFlagBitsEXT {
9151 type Output = Self;
9152 #[inline]
9153 fn bitxor(self, rhs: Self) -> Self {
9154 Self(self.0 ^ rhs.0)
9155 }
9156}
9157impl core::ops::BitXorAssign for FrameBoundaryFlagBitsEXT {
9158 #[inline]
9159 fn bitxor_assign(&mut self, rhs: Self) {
9160 self.0 ^= rhs.0;
9161 }
9162}
9163impl core::ops::Not for FrameBoundaryFlagBitsEXT {
9164 type Output = Self;
9165 #[inline]
9166 fn not(self) -> Self {
9167 Self(!self.0)
9168 }
9169}
9170impl core::fmt::Debug for FrameBoundaryFlagBitsEXT {
9171 #[allow(unused_mut, unused_variables)]
9172 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9173 let mut first = true;
9174 let mut remaining = self.0;
9175 if remaining & Self::FRAME_END.0 != 0 {
9176 if !first {
9177 f.write_str(" | ")?;
9178 }
9179 f.write_str("FRAME_END")?;
9180 remaining &= !Self::FRAME_END.0;
9181 first = false;
9182 }
9183 if remaining != 0u32 {
9184 if !first {
9185 f.write_str(" | ")?;
9186 }
9187 write!(f, "{:#x}", remaining)?;
9188 } else if first {
9189 f.write_str("(empty)")?;
9190 }
9191 Ok(())
9192 }
9193}
9194#[repr(transparent)]
9196#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9197#[doc(alias = "VkFramebufferCreateFlagBits")]
9198pub struct FramebufferCreateFlagBits(u32);
9199impl FramebufferCreateFlagBits {
9200 #[inline]
9201 pub const fn empty() -> Self {
9202 Self(0u32)
9203 }
9204 #[inline]
9205 pub const fn from_raw(value: u32) -> Self {
9206 Self(value)
9207 }
9208 #[inline]
9209 pub const fn as_raw(self) -> u32 {
9210 self.0
9211 }
9212 #[inline]
9213 pub const fn is_empty(self) -> bool {
9214 self.0 == 0u32
9215 }
9216 #[inline]
9217 pub const fn contains(self, other: Self) -> bool {
9218 (self.0 & other.0) == other.0
9219 }
9220 #[inline]
9221 pub const fn all() -> Self {
9222 Self(1u32)
9223 }
9224 pub const IMAGELESS: Self = Self(1u32);
9226}
9227impl core::ops::BitOr for FramebufferCreateFlagBits {
9228 type Output = Self;
9229 #[inline]
9230 fn bitor(self, rhs: Self) -> Self {
9231 Self(self.0 | rhs.0)
9232 }
9233}
9234impl core::ops::BitOrAssign for FramebufferCreateFlagBits {
9235 #[inline]
9236 fn bitor_assign(&mut self, rhs: Self) {
9237 self.0 |= rhs.0;
9238 }
9239}
9240impl core::ops::BitAnd for FramebufferCreateFlagBits {
9241 type Output = Self;
9242 #[inline]
9243 fn bitand(self, rhs: Self) -> Self {
9244 Self(self.0 & rhs.0)
9245 }
9246}
9247impl core::ops::BitAndAssign for FramebufferCreateFlagBits {
9248 #[inline]
9249 fn bitand_assign(&mut self, rhs: Self) {
9250 self.0 &= rhs.0;
9251 }
9252}
9253impl core::ops::BitXor for FramebufferCreateFlagBits {
9254 type Output = Self;
9255 #[inline]
9256 fn bitxor(self, rhs: Self) -> Self {
9257 Self(self.0 ^ rhs.0)
9258 }
9259}
9260impl core::ops::BitXorAssign for FramebufferCreateFlagBits {
9261 #[inline]
9262 fn bitxor_assign(&mut self, rhs: Self) {
9263 self.0 ^= rhs.0;
9264 }
9265}
9266impl core::ops::Not for FramebufferCreateFlagBits {
9267 type Output = Self;
9268 #[inline]
9269 fn not(self) -> Self {
9270 Self(!self.0)
9271 }
9272}
9273impl core::fmt::Debug for FramebufferCreateFlagBits {
9274 #[allow(unused_mut, unused_variables)]
9275 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9276 let mut first = true;
9277 let mut remaining = self.0;
9278 if remaining & Self::IMAGELESS.0 != 0 {
9279 if !first {
9280 f.write_str(" | ")?;
9281 }
9282 f.write_str("IMAGELESS")?;
9283 remaining &= !Self::IMAGELESS.0;
9284 first = false;
9285 }
9286 if remaining != 0u32 {
9287 if !first {
9288 f.write_str(" | ")?;
9289 }
9290 write!(f, "{:#x}", remaining)?;
9291 } else if first {
9292 f.write_str("(empty)")?;
9293 }
9294 Ok(())
9295 }
9296}
9297#[repr(transparent)]
9299#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9300#[doc(alias = "VkGeometryFlagBitsKHR")]
9301pub struct GeometryFlagBitsKHR(u32);
9302impl GeometryFlagBitsKHR {
9303 #[inline]
9304 pub const fn empty() -> Self {
9305 Self(0u32)
9306 }
9307 #[inline]
9308 pub const fn from_raw(value: u32) -> Self {
9309 Self(value)
9310 }
9311 #[inline]
9312 pub const fn as_raw(self) -> u32 {
9313 self.0
9314 }
9315 #[inline]
9316 pub const fn is_empty(self) -> bool {
9317 self.0 == 0u32
9318 }
9319 #[inline]
9320 pub const fn contains(self, other: Self) -> bool {
9321 (self.0 & other.0) == other.0
9322 }
9323 #[inline]
9324 pub const fn all() -> Self {
9325 Self(3u32)
9326 }
9327 pub const OPAQUE: Self = Self(1u32);
9329 pub const NO_DUPLICATE_ANY_HIT_INVOCATION: Self = Self(2u32);
9331}
9332impl core::ops::BitOr for GeometryFlagBitsKHR {
9333 type Output = Self;
9334 #[inline]
9335 fn bitor(self, rhs: Self) -> Self {
9336 Self(self.0 | rhs.0)
9337 }
9338}
9339impl core::ops::BitOrAssign for GeometryFlagBitsKHR {
9340 #[inline]
9341 fn bitor_assign(&mut self, rhs: Self) {
9342 self.0 |= rhs.0;
9343 }
9344}
9345impl core::ops::BitAnd for GeometryFlagBitsKHR {
9346 type Output = Self;
9347 #[inline]
9348 fn bitand(self, rhs: Self) -> Self {
9349 Self(self.0 & rhs.0)
9350 }
9351}
9352impl core::ops::BitAndAssign for GeometryFlagBitsKHR {
9353 #[inline]
9354 fn bitand_assign(&mut self, rhs: Self) {
9355 self.0 &= rhs.0;
9356 }
9357}
9358impl core::ops::BitXor for GeometryFlagBitsKHR {
9359 type Output = Self;
9360 #[inline]
9361 fn bitxor(self, rhs: Self) -> Self {
9362 Self(self.0 ^ rhs.0)
9363 }
9364}
9365impl core::ops::BitXorAssign for GeometryFlagBitsKHR {
9366 #[inline]
9367 fn bitxor_assign(&mut self, rhs: Self) {
9368 self.0 ^= rhs.0;
9369 }
9370}
9371impl core::ops::Not for GeometryFlagBitsKHR {
9372 type Output = Self;
9373 #[inline]
9374 fn not(self) -> Self {
9375 Self(!self.0)
9376 }
9377}
9378impl core::fmt::Debug for GeometryFlagBitsKHR {
9379 #[allow(unused_mut, unused_variables)]
9380 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9381 let mut first = true;
9382 let mut remaining = self.0;
9383 if remaining & Self::OPAQUE.0 != 0 {
9384 if !first {
9385 f.write_str(" | ")?;
9386 }
9387 f.write_str("OPAQUE")?;
9388 remaining &= !Self::OPAQUE.0;
9389 first = false;
9390 }
9391 if remaining & Self::NO_DUPLICATE_ANY_HIT_INVOCATION.0 != 0 {
9392 if !first {
9393 f.write_str(" | ")?;
9394 }
9395 f.write_str("NO_DUPLICATE_ANY_HIT_INVOCATION")?;
9396 remaining &= !Self::NO_DUPLICATE_ANY_HIT_INVOCATION.0;
9397 first = false;
9398 }
9399 if remaining != 0u32 {
9400 if !first {
9401 f.write_str(" | ")?;
9402 }
9403 write!(f, "{:#x}", remaining)?;
9404 } else if first {
9405 f.write_str("(empty)")?;
9406 }
9407 Ok(())
9408 }
9409}
9410#[repr(transparent)]
9412#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9413#[doc(alias = "VkGeometryInstanceFlagBitsKHR")]
9414pub struct GeometryInstanceFlagBitsKHR(u32);
9415impl GeometryInstanceFlagBitsKHR {
9416 #[inline]
9417 pub const fn empty() -> Self {
9418 Self(0u32)
9419 }
9420 #[inline]
9421 pub const fn from_raw(value: u32) -> Self {
9422 Self(value)
9423 }
9424 #[inline]
9425 pub const fn as_raw(self) -> u32 {
9426 self.0
9427 }
9428 #[inline]
9429 pub const fn is_empty(self) -> bool {
9430 self.0 == 0u32
9431 }
9432 #[inline]
9433 pub const fn contains(self, other: Self) -> bool {
9434 (self.0 & other.0) == other.0
9435 }
9436 #[inline]
9437 pub const fn all() -> Self {
9438 Self(63u32)
9439 }
9440 pub const TRIANGLE_FACING_CULL_DISABLE: Self = Self(1u32);
9442 pub const TRIANGLE_FLIP_FACING: Self = Self(2u32);
9444 pub const FORCE_OPAQUE: Self = Self(4u32);
9446 pub const FORCE_NO_OPAQUE: Self = Self(8u32);
9448 pub const TRIANGLE_FRONT_COUNTERCLOCKWISE: Self = Self::TRIANGLE_FLIP_FACING;
9449 pub const TRIANGLE_CULL_DISABLE: Self = Self::TRIANGLE_FACING_CULL_DISABLE;
9450 pub const FORCE_OPACITY_MICROMAP_2_STATE: Self = Self(16u32);
9452 pub const DISABLE_OPACITY_MICROMAPS: Self = Self(32u32);
9454}
9455impl core::ops::BitOr for GeometryInstanceFlagBitsKHR {
9456 type Output = Self;
9457 #[inline]
9458 fn bitor(self, rhs: Self) -> Self {
9459 Self(self.0 | rhs.0)
9460 }
9461}
9462impl core::ops::BitOrAssign for GeometryInstanceFlagBitsKHR {
9463 #[inline]
9464 fn bitor_assign(&mut self, rhs: Self) {
9465 self.0 |= rhs.0;
9466 }
9467}
9468impl core::ops::BitAnd for GeometryInstanceFlagBitsKHR {
9469 type Output = Self;
9470 #[inline]
9471 fn bitand(self, rhs: Self) -> Self {
9472 Self(self.0 & rhs.0)
9473 }
9474}
9475impl core::ops::BitAndAssign for GeometryInstanceFlagBitsKHR {
9476 #[inline]
9477 fn bitand_assign(&mut self, rhs: Self) {
9478 self.0 &= rhs.0;
9479 }
9480}
9481impl core::ops::BitXor for GeometryInstanceFlagBitsKHR {
9482 type Output = Self;
9483 #[inline]
9484 fn bitxor(self, rhs: Self) -> Self {
9485 Self(self.0 ^ rhs.0)
9486 }
9487}
9488impl core::ops::BitXorAssign for GeometryInstanceFlagBitsKHR {
9489 #[inline]
9490 fn bitxor_assign(&mut self, rhs: Self) {
9491 self.0 ^= rhs.0;
9492 }
9493}
9494impl core::ops::Not for GeometryInstanceFlagBitsKHR {
9495 type Output = Self;
9496 #[inline]
9497 fn not(self) -> Self {
9498 Self(!self.0)
9499 }
9500}
9501impl core::fmt::Debug for GeometryInstanceFlagBitsKHR {
9502 #[allow(unused_mut, unused_variables)]
9503 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9504 let mut first = true;
9505 let mut remaining = self.0;
9506 if remaining & Self::TRIANGLE_FACING_CULL_DISABLE.0 != 0 {
9507 if !first {
9508 f.write_str(" | ")?;
9509 }
9510 f.write_str("TRIANGLE_FACING_CULL_DISABLE")?;
9511 remaining &= !Self::TRIANGLE_FACING_CULL_DISABLE.0;
9512 first = false;
9513 }
9514 if remaining & Self::TRIANGLE_FLIP_FACING.0 != 0 {
9515 if !first {
9516 f.write_str(" | ")?;
9517 }
9518 f.write_str("TRIANGLE_FLIP_FACING")?;
9519 remaining &= !Self::TRIANGLE_FLIP_FACING.0;
9520 first = false;
9521 }
9522 if remaining & Self::FORCE_OPAQUE.0 != 0 {
9523 if !first {
9524 f.write_str(" | ")?;
9525 }
9526 f.write_str("FORCE_OPAQUE")?;
9527 remaining &= !Self::FORCE_OPAQUE.0;
9528 first = false;
9529 }
9530 if remaining & Self::FORCE_NO_OPAQUE.0 != 0 {
9531 if !first {
9532 f.write_str(" | ")?;
9533 }
9534 f.write_str("FORCE_NO_OPAQUE")?;
9535 remaining &= !Self::FORCE_NO_OPAQUE.0;
9536 first = false;
9537 }
9538 if remaining & Self::FORCE_OPACITY_MICROMAP_2_STATE.0 != 0 {
9539 if !first {
9540 f.write_str(" | ")?;
9541 }
9542 f.write_str("FORCE_OPACITY_MICROMAP_2_STATE")?;
9543 remaining &= !Self::FORCE_OPACITY_MICROMAP_2_STATE.0;
9544 first = false;
9545 }
9546 if remaining & Self::DISABLE_OPACITY_MICROMAPS.0 != 0 {
9547 if !first {
9548 f.write_str(" | ")?;
9549 }
9550 f.write_str("DISABLE_OPACITY_MICROMAPS")?;
9551 remaining &= !Self::DISABLE_OPACITY_MICROMAPS.0;
9552 first = false;
9553 }
9554 if remaining != 0u32 {
9555 if !first {
9556 f.write_str(" | ")?;
9557 }
9558 write!(f, "{:#x}", remaining)?;
9559 } else if first {
9560 f.write_str("(empty)")?;
9561 }
9562 Ok(())
9563 }
9564}
9565#[repr(transparent)]
9567#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9568#[doc(alias = "VkGraphicsPipelineLibraryFlagBitsEXT")]
9569pub struct GraphicsPipelineLibraryFlagBitsEXT(u32);
9570impl GraphicsPipelineLibraryFlagBitsEXT {
9571 #[inline]
9572 pub const fn empty() -> Self {
9573 Self(0u32)
9574 }
9575 #[inline]
9576 pub const fn from_raw(value: u32) -> Self {
9577 Self(value)
9578 }
9579 #[inline]
9580 pub const fn as_raw(self) -> u32 {
9581 self.0
9582 }
9583 #[inline]
9584 pub const fn is_empty(self) -> bool {
9585 self.0 == 0u32
9586 }
9587 #[inline]
9588 pub const fn contains(self, other: Self) -> bool {
9589 (self.0 & other.0) == other.0
9590 }
9591 #[inline]
9592 pub const fn all() -> Self {
9593 Self(15u32)
9594 }
9595 pub const VERTEX_INPUT_INTERFACE: Self = Self(1u32);
9597 pub const PRE_RASTERIZATION_SHADERS: Self = Self(2u32);
9599 pub const FRAGMENT_SHADER: Self = Self(4u32);
9601 pub const FRAGMENT_OUTPUT_INTERFACE: Self = Self(8u32);
9603}
9604impl core::ops::BitOr for GraphicsPipelineLibraryFlagBitsEXT {
9605 type Output = Self;
9606 #[inline]
9607 fn bitor(self, rhs: Self) -> Self {
9608 Self(self.0 | rhs.0)
9609 }
9610}
9611impl core::ops::BitOrAssign for GraphicsPipelineLibraryFlagBitsEXT {
9612 #[inline]
9613 fn bitor_assign(&mut self, rhs: Self) {
9614 self.0 |= rhs.0;
9615 }
9616}
9617impl core::ops::BitAnd for GraphicsPipelineLibraryFlagBitsEXT {
9618 type Output = Self;
9619 #[inline]
9620 fn bitand(self, rhs: Self) -> Self {
9621 Self(self.0 & rhs.0)
9622 }
9623}
9624impl core::ops::BitAndAssign for GraphicsPipelineLibraryFlagBitsEXT {
9625 #[inline]
9626 fn bitand_assign(&mut self, rhs: Self) {
9627 self.0 &= rhs.0;
9628 }
9629}
9630impl core::ops::BitXor for GraphicsPipelineLibraryFlagBitsEXT {
9631 type Output = Self;
9632 #[inline]
9633 fn bitxor(self, rhs: Self) -> Self {
9634 Self(self.0 ^ rhs.0)
9635 }
9636}
9637impl core::ops::BitXorAssign for GraphicsPipelineLibraryFlagBitsEXT {
9638 #[inline]
9639 fn bitxor_assign(&mut self, rhs: Self) {
9640 self.0 ^= rhs.0;
9641 }
9642}
9643impl core::ops::Not for GraphicsPipelineLibraryFlagBitsEXT {
9644 type Output = Self;
9645 #[inline]
9646 fn not(self) -> Self {
9647 Self(!self.0)
9648 }
9649}
9650impl core::fmt::Debug for GraphicsPipelineLibraryFlagBitsEXT {
9651 #[allow(unused_mut, unused_variables)]
9652 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9653 let mut first = true;
9654 let mut remaining = self.0;
9655 if remaining & Self::VERTEX_INPUT_INTERFACE.0 != 0 {
9656 if !first {
9657 f.write_str(" | ")?;
9658 }
9659 f.write_str("VERTEX_INPUT_INTERFACE")?;
9660 remaining &= !Self::VERTEX_INPUT_INTERFACE.0;
9661 first = false;
9662 }
9663 if remaining & Self::PRE_RASTERIZATION_SHADERS.0 != 0 {
9664 if !first {
9665 f.write_str(" | ")?;
9666 }
9667 f.write_str("PRE_RASTERIZATION_SHADERS")?;
9668 remaining &= !Self::PRE_RASTERIZATION_SHADERS.0;
9669 first = false;
9670 }
9671 if remaining & Self::FRAGMENT_SHADER.0 != 0 {
9672 if !first {
9673 f.write_str(" | ")?;
9674 }
9675 f.write_str("FRAGMENT_SHADER")?;
9676 remaining &= !Self::FRAGMENT_SHADER.0;
9677 first = false;
9678 }
9679 if remaining & Self::FRAGMENT_OUTPUT_INTERFACE.0 != 0 {
9680 if !first {
9681 f.write_str(" | ")?;
9682 }
9683 f.write_str("FRAGMENT_OUTPUT_INTERFACE")?;
9684 remaining &= !Self::FRAGMENT_OUTPUT_INTERFACE.0;
9685 first = false;
9686 }
9687 if remaining != 0u32 {
9688 if !first {
9689 f.write_str(" | ")?;
9690 }
9691 write!(f, "{:#x}", remaining)?;
9692 } else if first {
9693 f.write_str("(empty)")?;
9694 }
9695 Ok(())
9696 }
9697}
9698#[repr(transparent)]
9700#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9701#[doc(alias = "VkHostImageCopyFlagBits")]
9702pub struct HostImageCopyFlagBits(u32);
9703impl HostImageCopyFlagBits {
9704 #[inline]
9705 pub const fn empty() -> Self {
9706 Self(0u32)
9707 }
9708 #[inline]
9709 pub const fn from_raw(value: u32) -> Self {
9710 Self(value)
9711 }
9712 #[inline]
9713 pub const fn as_raw(self) -> u32 {
9714 self.0
9715 }
9716 #[inline]
9717 pub const fn is_empty(self) -> bool {
9718 self.0 == 0u32
9719 }
9720 #[inline]
9721 pub const fn contains(self, other: Self) -> bool {
9722 (self.0 & other.0) == other.0
9723 }
9724 #[inline]
9725 pub const fn all() -> Self {
9726 Self(1u32)
9727 }
9728 pub const MEMCPY: Self = Self(1u32);
9730}
9731impl core::ops::BitOr for HostImageCopyFlagBits {
9732 type Output = Self;
9733 #[inline]
9734 fn bitor(self, rhs: Self) -> Self {
9735 Self(self.0 | rhs.0)
9736 }
9737}
9738impl core::ops::BitOrAssign for HostImageCopyFlagBits {
9739 #[inline]
9740 fn bitor_assign(&mut self, rhs: Self) {
9741 self.0 |= rhs.0;
9742 }
9743}
9744impl core::ops::BitAnd for HostImageCopyFlagBits {
9745 type Output = Self;
9746 #[inline]
9747 fn bitand(self, rhs: Self) -> Self {
9748 Self(self.0 & rhs.0)
9749 }
9750}
9751impl core::ops::BitAndAssign for HostImageCopyFlagBits {
9752 #[inline]
9753 fn bitand_assign(&mut self, rhs: Self) {
9754 self.0 &= rhs.0;
9755 }
9756}
9757impl core::ops::BitXor for HostImageCopyFlagBits {
9758 type Output = Self;
9759 #[inline]
9760 fn bitxor(self, rhs: Self) -> Self {
9761 Self(self.0 ^ rhs.0)
9762 }
9763}
9764impl core::ops::BitXorAssign for HostImageCopyFlagBits {
9765 #[inline]
9766 fn bitxor_assign(&mut self, rhs: Self) {
9767 self.0 ^= rhs.0;
9768 }
9769}
9770impl core::ops::Not for HostImageCopyFlagBits {
9771 type Output = Self;
9772 #[inline]
9773 fn not(self) -> Self {
9774 Self(!self.0)
9775 }
9776}
9777impl core::fmt::Debug for HostImageCopyFlagBits {
9778 #[allow(unused_mut, unused_variables)]
9779 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9780 let mut first = true;
9781 let mut remaining = self.0;
9782 if remaining & Self::MEMCPY.0 != 0 {
9783 if !first {
9784 f.write_str(" | ")?;
9785 }
9786 f.write_str("MEMCPY")?;
9787 remaining &= !Self::MEMCPY.0;
9788 first = false;
9789 }
9790 if remaining != 0u32 {
9791 if !first {
9792 f.write_str(" | ")?;
9793 }
9794 write!(f, "{:#x}", remaining)?;
9795 } else if first {
9796 f.write_str("(empty)")?;
9797 }
9798 Ok(())
9799 }
9800}
9801#[repr(transparent)]
9803#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
9804#[doc(alias = "VkImageAspectFlagBits")]
9805pub struct ImageAspectFlagBits(u32);
9806impl ImageAspectFlagBits {
9807 #[inline]
9808 pub const fn empty() -> Self {
9809 Self(0u32)
9810 }
9811 #[inline]
9812 pub const fn from_raw(value: u32) -> Self {
9813 Self(value)
9814 }
9815 #[inline]
9816 pub const fn as_raw(self) -> u32 {
9817 self.0
9818 }
9819 #[inline]
9820 pub const fn is_empty(self) -> bool {
9821 self.0 == 0u32
9822 }
9823 #[inline]
9824 pub const fn contains(self, other: Self) -> bool {
9825 (self.0 & other.0) == other.0
9826 }
9827 #[inline]
9828 pub const fn all() -> Self {
9829 Self(2047u32)
9830 }
9831 pub const COLOR: Self = Self(1u32);
9833 pub const DEPTH: Self = Self(2u32);
9835 pub const STENCIL: Self = Self(4u32);
9837 pub const METADATA: Self = Self(8u32);
9839 pub const PLANE_0: Self = Self(16u32);
9841 pub const PLANE_1: Self = Self(32u32);
9843 pub const PLANE_2: Self = Self(64u32);
9845 pub const NONE: Self = Self(0u32);
9846 pub const MEMORY_PLANE_0: Self = Self(128u32);
9848 pub const MEMORY_PLANE_1: Self = Self(256u32);
9850 pub const MEMORY_PLANE_2: Self = Self(512u32);
9852 pub const MEMORY_PLANE_3: Self = Self(1024u32);
9854}
9855impl core::ops::BitOr for ImageAspectFlagBits {
9856 type Output = Self;
9857 #[inline]
9858 fn bitor(self, rhs: Self) -> Self {
9859 Self(self.0 | rhs.0)
9860 }
9861}
9862impl core::ops::BitOrAssign for ImageAspectFlagBits {
9863 #[inline]
9864 fn bitor_assign(&mut self, rhs: Self) {
9865 self.0 |= rhs.0;
9866 }
9867}
9868impl core::ops::BitAnd for ImageAspectFlagBits {
9869 type Output = Self;
9870 #[inline]
9871 fn bitand(self, rhs: Self) -> Self {
9872 Self(self.0 & rhs.0)
9873 }
9874}
9875impl core::ops::BitAndAssign for ImageAspectFlagBits {
9876 #[inline]
9877 fn bitand_assign(&mut self, rhs: Self) {
9878 self.0 &= rhs.0;
9879 }
9880}
9881impl core::ops::BitXor for ImageAspectFlagBits {
9882 type Output = Self;
9883 #[inline]
9884 fn bitxor(self, rhs: Self) -> Self {
9885 Self(self.0 ^ rhs.0)
9886 }
9887}
9888impl core::ops::BitXorAssign for ImageAspectFlagBits {
9889 #[inline]
9890 fn bitxor_assign(&mut self, rhs: Self) {
9891 self.0 ^= rhs.0;
9892 }
9893}
9894impl core::ops::Not for ImageAspectFlagBits {
9895 type Output = Self;
9896 #[inline]
9897 fn not(self) -> Self {
9898 Self(!self.0)
9899 }
9900}
9901impl core::fmt::Debug for ImageAspectFlagBits {
9902 #[allow(unused_mut, unused_variables)]
9903 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
9904 let mut first = true;
9905 let mut remaining = self.0;
9906 if remaining & Self::COLOR.0 != 0 {
9907 if !first {
9908 f.write_str(" | ")?;
9909 }
9910 f.write_str("COLOR")?;
9911 remaining &= !Self::COLOR.0;
9912 first = false;
9913 }
9914 if remaining & Self::DEPTH.0 != 0 {
9915 if !first {
9916 f.write_str(" | ")?;
9917 }
9918 f.write_str("DEPTH")?;
9919 remaining &= !Self::DEPTH.0;
9920 first = false;
9921 }
9922 if remaining & Self::STENCIL.0 != 0 {
9923 if !first {
9924 f.write_str(" | ")?;
9925 }
9926 f.write_str("STENCIL")?;
9927 remaining &= !Self::STENCIL.0;
9928 first = false;
9929 }
9930 if remaining & Self::METADATA.0 != 0 {
9931 if !first {
9932 f.write_str(" | ")?;
9933 }
9934 f.write_str("METADATA")?;
9935 remaining &= !Self::METADATA.0;
9936 first = false;
9937 }
9938 if remaining & Self::PLANE_0.0 != 0 {
9939 if !first {
9940 f.write_str(" | ")?;
9941 }
9942 f.write_str("PLANE_0")?;
9943 remaining &= !Self::PLANE_0.0;
9944 first = false;
9945 }
9946 if remaining & Self::PLANE_1.0 != 0 {
9947 if !first {
9948 f.write_str(" | ")?;
9949 }
9950 f.write_str("PLANE_1")?;
9951 remaining &= !Self::PLANE_1.0;
9952 first = false;
9953 }
9954 if remaining & Self::PLANE_2.0 != 0 {
9955 if !first {
9956 f.write_str(" | ")?;
9957 }
9958 f.write_str("PLANE_2")?;
9959 remaining &= !Self::PLANE_2.0;
9960 first = false;
9961 }
9962 if remaining & Self::MEMORY_PLANE_0.0 != 0 {
9963 if !first {
9964 f.write_str(" | ")?;
9965 }
9966 f.write_str("MEMORY_PLANE_0")?;
9967 remaining &= !Self::MEMORY_PLANE_0.0;
9968 first = false;
9969 }
9970 if remaining & Self::MEMORY_PLANE_1.0 != 0 {
9971 if !first {
9972 f.write_str(" | ")?;
9973 }
9974 f.write_str("MEMORY_PLANE_1")?;
9975 remaining &= !Self::MEMORY_PLANE_1.0;
9976 first = false;
9977 }
9978 if remaining & Self::MEMORY_PLANE_2.0 != 0 {
9979 if !first {
9980 f.write_str(" | ")?;
9981 }
9982 f.write_str("MEMORY_PLANE_2")?;
9983 remaining &= !Self::MEMORY_PLANE_2.0;
9984 first = false;
9985 }
9986 if remaining & Self::MEMORY_PLANE_3.0 != 0 {
9987 if !first {
9988 f.write_str(" | ")?;
9989 }
9990 f.write_str("MEMORY_PLANE_3")?;
9991 remaining &= !Self::MEMORY_PLANE_3.0;
9992 first = false;
9993 }
9994 if remaining != 0u32 {
9995 if !first {
9996 f.write_str(" | ")?;
9997 }
9998 write!(f, "{:#x}", remaining)?;
9999 } else if first {
10000 f.write_str("(empty)")?;
10001 }
10002 Ok(())
10003 }
10004}
10005#[repr(transparent)]
10007#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10008#[doc(alias = "VkImageCompressionFixedRateFlagBitsEXT")]
10009pub struct ImageCompressionFixedRateFlagBitsEXT(u32);
10010impl ImageCompressionFixedRateFlagBitsEXT {
10011 #[inline]
10012 pub const fn empty() -> Self {
10013 Self(0u32)
10014 }
10015 #[inline]
10016 pub const fn from_raw(value: u32) -> Self {
10017 Self(value)
10018 }
10019 #[inline]
10020 pub const fn as_raw(self) -> u32 {
10021 self.0
10022 }
10023 #[inline]
10024 pub const fn is_empty(self) -> bool {
10025 self.0 == 0u32
10026 }
10027 #[inline]
10028 pub const fn contains(self, other: Self) -> bool {
10029 (self.0 & other.0) == other.0
10030 }
10031 #[inline]
10032 pub const fn all() -> Self {
10033 Self(16777215u32)
10034 }
10035 pub const NONE: Self = Self(0u32);
10036 pub const _1BPC: Self = Self(1u32);
10038 pub const _2BPC: Self = Self(2u32);
10040 pub const _3BPC: Self = Self(4u32);
10042 pub const _4BPC: Self = Self(8u32);
10044 pub const _5BPC: Self = Self(16u32);
10046 pub const _6BPC: Self = Self(32u32);
10048 pub const _7BPC: Self = Self(64u32);
10050 pub const _8BPC: Self = Self(128u32);
10052 pub const _9BPC: Self = Self(256u32);
10054 pub const _10BPC: Self = Self(512u32);
10056 pub const _11BPC: Self = Self(1024u32);
10058 pub const _12BPC: Self = Self(2048u32);
10060 pub const _13BPC: Self = Self(4096u32);
10062 pub const _14BPC: Self = Self(8192u32);
10064 pub const _15BPC: Self = Self(16384u32);
10066 pub const _16BPC: Self = Self(32768u32);
10068 pub const _17BPC: Self = Self(65536u32);
10070 pub const _18BPC: Self = Self(131072u32);
10072 pub const _19BPC: Self = Self(262144u32);
10074 pub const _20BPC: Self = Self(524288u32);
10076 pub const _21BPC: Self = Self(1048576u32);
10078 pub const _22BPC: Self = Self(2097152u32);
10080 pub const _23BPC: Self = Self(4194304u32);
10082 pub const _24BPC: Self = Self(8388608u32);
10084}
10085impl core::ops::BitOr for ImageCompressionFixedRateFlagBitsEXT {
10086 type Output = Self;
10087 #[inline]
10088 fn bitor(self, rhs: Self) -> Self {
10089 Self(self.0 | rhs.0)
10090 }
10091}
10092impl core::ops::BitOrAssign for ImageCompressionFixedRateFlagBitsEXT {
10093 #[inline]
10094 fn bitor_assign(&mut self, rhs: Self) {
10095 self.0 |= rhs.0;
10096 }
10097}
10098impl core::ops::BitAnd for ImageCompressionFixedRateFlagBitsEXT {
10099 type Output = Self;
10100 #[inline]
10101 fn bitand(self, rhs: Self) -> Self {
10102 Self(self.0 & rhs.0)
10103 }
10104}
10105impl core::ops::BitAndAssign for ImageCompressionFixedRateFlagBitsEXT {
10106 #[inline]
10107 fn bitand_assign(&mut self, rhs: Self) {
10108 self.0 &= rhs.0;
10109 }
10110}
10111impl core::ops::BitXor for ImageCompressionFixedRateFlagBitsEXT {
10112 type Output = Self;
10113 #[inline]
10114 fn bitxor(self, rhs: Self) -> Self {
10115 Self(self.0 ^ rhs.0)
10116 }
10117}
10118impl core::ops::BitXorAssign for ImageCompressionFixedRateFlagBitsEXT {
10119 #[inline]
10120 fn bitxor_assign(&mut self, rhs: Self) {
10121 self.0 ^= rhs.0;
10122 }
10123}
10124impl core::ops::Not for ImageCompressionFixedRateFlagBitsEXT {
10125 type Output = Self;
10126 #[inline]
10127 fn not(self) -> Self {
10128 Self(!self.0)
10129 }
10130}
10131impl core::fmt::Debug for ImageCompressionFixedRateFlagBitsEXT {
10132 #[allow(unused_mut, unused_variables)]
10133 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
10134 let mut first = true;
10135 let mut remaining = self.0;
10136 if remaining & Self::_1BPC.0 != 0 {
10137 if !first {
10138 f.write_str(" | ")?;
10139 }
10140 f.write_str("_1BPC")?;
10141 remaining &= !Self::_1BPC.0;
10142 first = false;
10143 }
10144 if remaining & Self::_2BPC.0 != 0 {
10145 if !first {
10146 f.write_str(" | ")?;
10147 }
10148 f.write_str("_2BPC")?;
10149 remaining &= !Self::_2BPC.0;
10150 first = false;
10151 }
10152 if remaining & Self::_3BPC.0 != 0 {
10153 if !first {
10154 f.write_str(" | ")?;
10155 }
10156 f.write_str("_3BPC")?;
10157 remaining &= !Self::_3BPC.0;
10158 first = false;
10159 }
10160 if remaining & Self::_4BPC.0 != 0 {
10161 if !first {
10162 f.write_str(" | ")?;
10163 }
10164 f.write_str("_4BPC")?;
10165 remaining &= !Self::_4BPC.0;
10166 first = false;
10167 }
10168 if remaining & Self::_5BPC.0 != 0 {
10169 if !first {
10170 f.write_str(" | ")?;
10171 }
10172 f.write_str("_5BPC")?;
10173 remaining &= !Self::_5BPC.0;
10174 first = false;
10175 }
10176 if remaining & Self::_6BPC.0 != 0 {
10177 if !first {
10178 f.write_str(" | ")?;
10179 }
10180 f.write_str("_6BPC")?;
10181 remaining &= !Self::_6BPC.0;
10182 first = false;
10183 }
10184 if remaining & Self::_7BPC.0 != 0 {
10185 if !first {
10186 f.write_str(" | ")?;
10187 }
10188 f.write_str("_7BPC")?;
10189 remaining &= !Self::_7BPC.0;
10190 first = false;
10191 }
10192 if remaining & Self::_8BPC.0 != 0 {
10193 if !first {
10194 f.write_str(" | ")?;
10195 }
10196 f.write_str("_8BPC")?;
10197 remaining &= !Self::_8BPC.0;
10198 first = false;
10199 }
10200 if remaining & Self::_9BPC.0 != 0 {
10201 if !first {
10202 f.write_str(" | ")?;
10203 }
10204 f.write_str("_9BPC")?;
10205 remaining &= !Self::_9BPC.0;
10206 first = false;
10207 }
10208 if remaining & Self::_10BPC.0 != 0 {
10209 if !first {
10210 f.write_str(" | ")?;
10211 }
10212 f.write_str("_10BPC")?;
10213 remaining &= !Self::_10BPC.0;
10214 first = false;
10215 }
10216 if remaining & Self::_11BPC.0 != 0 {
10217 if !first {
10218 f.write_str(" | ")?;
10219 }
10220 f.write_str("_11BPC")?;
10221 remaining &= !Self::_11BPC.0;
10222 first = false;
10223 }
10224 if remaining & Self::_12BPC.0 != 0 {
10225 if !first {
10226 f.write_str(" | ")?;
10227 }
10228 f.write_str("_12BPC")?;
10229 remaining &= !Self::_12BPC.0;
10230 first = false;
10231 }
10232 if remaining & Self::_13BPC.0 != 0 {
10233 if !first {
10234 f.write_str(" | ")?;
10235 }
10236 f.write_str("_13BPC")?;
10237 remaining &= !Self::_13BPC.0;
10238 first = false;
10239 }
10240 if remaining & Self::_14BPC.0 != 0 {
10241 if !first {
10242 f.write_str(" | ")?;
10243 }
10244 f.write_str("_14BPC")?;
10245 remaining &= !Self::_14BPC.0;
10246 first = false;
10247 }
10248 if remaining & Self::_15BPC.0 != 0 {
10249 if !first {
10250 f.write_str(" | ")?;
10251 }
10252 f.write_str("_15BPC")?;
10253 remaining &= !Self::_15BPC.0;
10254 first = false;
10255 }
10256 if remaining & Self::_16BPC.0 != 0 {
10257 if !first {
10258 f.write_str(" | ")?;
10259 }
10260 f.write_str("_16BPC")?;
10261 remaining &= !Self::_16BPC.0;
10262 first = false;
10263 }
10264 if remaining & Self::_17BPC.0 != 0 {
10265 if !first {
10266 f.write_str(" | ")?;
10267 }
10268 f.write_str("_17BPC")?;
10269 remaining &= !Self::_17BPC.0;
10270 first = false;
10271 }
10272 if remaining & Self::_18BPC.0 != 0 {
10273 if !first {
10274 f.write_str(" | ")?;
10275 }
10276 f.write_str("_18BPC")?;
10277 remaining &= !Self::_18BPC.0;
10278 first = false;
10279 }
10280 if remaining & Self::_19BPC.0 != 0 {
10281 if !first {
10282 f.write_str(" | ")?;
10283 }
10284 f.write_str("_19BPC")?;
10285 remaining &= !Self::_19BPC.0;
10286 first = false;
10287 }
10288 if remaining & Self::_20BPC.0 != 0 {
10289 if !first {
10290 f.write_str(" | ")?;
10291 }
10292 f.write_str("_20BPC")?;
10293 remaining &= !Self::_20BPC.0;
10294 first = false;
10295 }
10296 if remaining & Self::_21BPC.0 != 0 {
10297 if !first {
10298 f.write_str(" | ")?;
10299 }
10300 f.write_str("_21BPC")?;
10301 remaining &= !Self::_21BPC.0;
10302 first = false;
10303 }
10304 if remaining & Self::_22BPC.0 != 0 {
10305 if !first {
10306 f.write_str(" | ")?;
10307 }
10308 f.write_str("_22BPC")?;
10309 remaining &= !Self::_22BPC.0;
10310 first = false;
10311 }
10312 if remaining & Self::_23BPC.0 != 0 {
10313 if !first {
10314 f.write_str(" | ")?;
10315 }
10316 f.write_str("_23BPC")?;
10317 remaining &= !Self::_23BPC.0;
10318 first = false;
10319 }
10320 if remaining & Self::_24BPC.0 != 0 {
10321 if !first {
10322 f.write_str(" | ")?;
10323 }
10324 f.write_str("_24BPC")?;
10325 remaining &= !Self::_24BPC.0;
10326 first = false;
10327 }
10328 if remaining != 0u32 {
10329 if !first {
10330 f.write_str(" | ")?;
10331 }
10332 write!(f, "{:#x}", remaining)?;
10333 } else if first {
10334 f.write_str("(empty)")?;
10335 }
10336 Ok(())
10337 }
10338}
10339#[repr(transparent)]
10341#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10342#[doc(alias = "VkImageCompressionFlagBitsEXT")]
10343pub struct ImageCompressionFlagBitsEXT(u32);
10344impl ImageCompressionFlagBitsEXT {
10345 #[inline]
10346 pub const fn empty() -> Self {
10347 Self(0u32)
10348 }
10349 #[inline]
10350 pub const fn from_raw(value: u32) -> Self {
10351 Self(value)
10352 }
10353 #[inline]
10354 pub const fn as_raw(self) -> u32 {
10355 self.0
10356 }
10357 #[inline]
10358 pub const fn is_empty(self) -> bool {
10359 self.0 == 0u32
10360 }
10361 #[inline]
10362 pub const fn contains(self, other: Self) -> bool {
10363 (self.0 & other.0) == other.0
10364 }
10365 #[inline]
10366 pub const fn all() -> Self {
10367 Self(7u32)
10368 }
10369 pub const DEFAULT: Self = Self(0u32);
10370 pub const FIXED_RATE_DEFAULT: Self = Self(1u32);
10372 pub const FIXED_RATE_EXPLICIT: Self = Self(2u32);
10374 pub const DISABLED: Self = Self(4u32);
10376}
10377impl core::ops::BitOr for ImageCompressionFlagBitsEXT {
10378 type Output = Self;
10379 #[inline]
10380 fn bitor(self, rhs: Self) -> Self {
10381 Self(self.0 | rhs.0)
10382 }
10383}
10384impl core::ops::BitOrAssign for ImageCompressionFlagBitsEXT {
10385 #[inline]
10386 fn bitor_assign(&mut self, rhs: Self) {
10387 self.0 |= rhs.0;
10388 }
10389}
10390impl core::ops::BitAnd for ImageCompressionFlagBitsEXT {
10391 type Output = Self;
10392 #[inline]
10393 fn bitand(self, rhs: Self) -> Self {
10394 Self(self.0 & rhs.0)
10395 }
10396}
10397impl core::ops::BitAndAssign for ImageCompressionFlagBitsEXT {
10398 #[inline]
10399 fn bitand_assign(&mut self, rhs: Self) {
10400 self.0 &= rhs.0;
10401 }
10402}
10403impl core::ops::BitXor for ImageCompressionFlagBitsEXT {
10404 type Output = Self;
10405 #[inline]
10406 fn bitxor(self, rhs: Self) -> Self {
10407 Self(self.0 ^ rhs.0)
10408 }
10409}
10410impl core::ops::BitXorAssign for ImageCompressionFlagBitsEXT {
10411 #[inline]
10412 fn bitxor_assign(&mut self, rhs: Self) {
10413 self.0 ^= rhs.0;
10414 }
10415}
10416impl core::ops::Not for ImageCompressionFlagBitsEXT {
10417 type Output = Self;
10418 #[inline]
10419 fn not(self) -> Self {
10420 Self(!self.0)
10421 }
10422}
10423impl core::fmt::Debug for ImageCompressionFlagBitsEXT {
10424 #[allow(unused_mut, unused_variables)]
10425 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
10426 let mut first = true;
10427 let mut remaining = self.0;
10428 if remaining & Self::FIXED_RATE_DEFAULT.0 != 0 {
10429 if !first {
10430 f.write_str(" | ")?;
10431 }
10432 f.write_str("FIXED_RATE_DEFAULT")?;
10433 remaining &= !Self::FIXED_RATE_DEFAULT.0;
10434 first = false;
10435 }
10436 if remaining & Self::FIXED_RATE_EXPLICIT.0 != 0 {
10437 if !first {
10438 f.write_str(" | ")?;
10439 }
10440 f.write_str("FIXED_RATE_EXPLICIT")?;
10441 remaining &= !Self::FIXED_RATE_EXPLICIT.0;
10442 first = false;
10443 }
10444 if remaining & Self::DISABLED.0 != 0 {
10445 if !first {
10446 f.write_str(" | ")?;
10447 }
10448 f.write_str("DISABLED")?;
10449 remaining &= !Self::DISABLED.0;
10450 first = false;
10451 }
10452 if remaining != 0u32 {
10453 if !first {
10454 f.write_str(" | ")?;
10455 }
10456 write!(f, "{:#x}", remaining)?;
10457 } else if first {
10458 f.write_str("(empty)")?;
10459 }
10460 Ok(())
10461 }
10462}
10463#[repr(transparent)]
10465#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10466#[doc(alias = "VkImageConstraintsInfoFlagBitsFUCHSIA")]
10467pub struct ImageConstraintsInfoFlagBitsFUCHSIA(u32);
10468impl ImageConstraintsInfoFlagBitsFUCHSIA {
10469 #[inline]
10470 pub const fn empty() -> Self {
10471 Self(0u32)
10472 }
10473 #[inline]
10474 pub const fn from_raw(value: u32) -> Self {
10475 Self(value)
10476 }
10477 #[inline]
10478 pub const fn as_raw(self) -> u32 {
10479 self.0
10480 }
10481 #[inline]
10482 pub const fn is_empty(self) -> bool {
10483 self.0 == 0u32
10484 }
10485 #[inline]
10486 pub const fn contains(self, other: Self) -> bool {
10487 (self.0 & other.0) == other.0
10488 }
10489 #[inline]
10490 pub const fn all() -> Self {
10491 Self(31u32)
10492 }
10493 pub const CPU_READ_RARELY: Self = Self(1u32);
10495 pub const CPU_READ_OFTEN: Self = Self(2u32);
10497 pub const CPU_WRITE_RARELY: Self = Self(4u32);
10499 pub const CPU_WRITE_OFTEN: Self = Self(8u32);
10501 pub const PROTECTED_OPTIONAL: Self = Self(16u32);
10503}
10504impl core::ops::BitOr for ImageConstraintsInfoFlagBitsFUCHSIA {
10505 type Output = Self;
10506 #[inline]
10507 fn bitor(self, rhs: Self) -> Self {
10508 Self(self.0 | rhs.0)
10509 }
10510}
10511impl core::ops::BitOrAssign for ImageConstraintsInfoFlagBitsFUCHSIA {
10512 #[inline]
10513 fn bitor_assign(&mut self, rhs: Self) {
10514 self.0 |= rhs.0;
10515 }
10516}
10517impl core::ops::BitAnd for ImageConstraintsInfoFlagBitsFUCHSIA {
10518 type Output = Self;
10519 #[inline]
10520 fn bitand(self, rhs: Self) -> Self {
10521 Self(self.0 & rhs.0)
10522 }
10523}
10524impl core::ops::BitAndAssign for ImageConstraintsInfoFlagBitsFUCHSIA {
10525 #[inline]
10526 fn bitand_assign(&mut self, rhs: Self) {
10527 self.0 &= rhs.0;
10528 }
10529}
10530impl core::ops::BitXor for ImageConstraintsInfoFlagBitsFUCHSIA {
10531 type Output = Self;
10532 #[inline]
10533 fn bitxor(self, rhs: Self) -> Self {
10534 Self(self.0 ^ rhs.0)
10535 }
10536}
10537impl core::ops::BitXorAssign for ImageConstraintsInfoFlagBitsFUCHSIA {
10538 #[inline]
10539 fn bitxor_assign(&mut self, rhs: Self) {
10540 self.0 ^= rhs.0;
10541 }
10542}
10543impl core::ops::Not for ImageConstraintsInfoFlagBitsFUCHSIA {
10544 type Output = Self;
10545 #[inline]
10546 fn not(self) -> Self {
10547 Self(!self.0)
10548 }
10549}
10550impl core::fmt::Debug for ImageConstraintsInfoFlagBitsFUCHSIA {
10551 #[allow(unused_mut, unused_variables)]
10552 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
10553 let mut first = true;
10554 let mut remaining = self.0;
10555 if remaining & Self::CPU_READ_RARELY.0 != 0 {
10556 if !first {
10557 f.write_str(" | ")?;
10558 }
10559 f.write_str("CPU_READ_RARELY")?;
10560 remaining &= !Self::CPU_READ_RARELY.0;
10561 first = false;
10562 }
10563 if remaining & Self::CPU_READ_OFTEN.0 != 0 {
10564 if !first {
10565 f.write_str(" | ")?;
10566 }
10567 f.write_str("CPU_READ_OFTEN")?;
10568 remaining &= !Self::CPU_READ_OFTEN.0;
10569 first = false;
10570 }
10571 if remaining & Self::CPU_WRITE_RARELY.0 != 0 {
10572 if !first {
10573 f.write_str(" | ")?;
10574 }
10575 f.write_str("CPU_WRITE_RARELY")?;
10576 remaining &= !Self::CPU_WRITE_RARELY.0;
10577 first = false;
10578 }
10579 if remaining & Self::CPU_WRITE_OFTEN.0 != 0 {
10580 if !first {
10581 f.write_str(" | ")?;
10582 }
10583 f.write_str("CPU_WRITE_OFTEN")?;
10584 remaining &= !Self::CPU_WRITE_OFTEN.0;
10585 first = false;
10586 }
10587 if remaining & Self::PROTECTED_OPTIONAL.0 != 0 {
10588 if !first {
10589 f.write_str(" | ")?;
10590 }
10591 f.write_str("PROTECTED_OPTIONAL")?;
10592 remaining &= !Self::PROTECTED_OPTIONAL.0;
10593 first = false;
10594 }
10595 if remaining != 0u32 {
10596 if !first {
10597 f.write_str(" | ")?;
10598 }
10599 write!(f, "{:#x}", remaining)?;
10600 } else if first {
10601 f.write_str("(empty)")?;
10602 }
10603 Ok(())
10604 }
10605}
10606#[repr(transparent)]
10608#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10609#[doc(alias = "VkImageCreateFlagBits")]
10610pub struct ImageCreateFlagBits(u32);
10611impl ImageCreateFlagBits {
10612 #[inline]
10613 pub const fn empty() -> Self {
10614 Self(0u32)
10615 }
10616 #[inline]
10617 pub const fn from_raw(value: u32) -> Self {
10618 Self(value)
10619 }
10620 #[inline]
10621 pub const fn as_raw(self) -> u32 {
10622 self.0
10623 }
10624 #[inline]
10625 pub const fn is_empty(self) -> bool {
10626 self.0 == 0u32
10627 }
10628 #[inline]
10629 pub const fn contains(self, other: Self) -> bool {
10630 (self.0 & other.0) == other.0
10631 }
10632 #[inline]
10633 pub const fn all() -> Self {
10634 Self(1572863u32)
10635 }
10636 pub const SPARSE_BINDING: Self = Self(1u32);
10638 pub const SPARSE_RESIDENCY: Self = Self(2u32);
10640 pub const SPARSE_ALIASED: Self = Self(4u32);
10642 pub const MUTABLE_FORMAT: Self = Self(8u32);
10644 pub const CUBE_COMPATIBLE: Self = Self(16u32);
10646 pub const ALIAS: Self = Self(1024u32);
10648 pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(64u32);
10650 pub const _2D_ARRAY_COMPATIBLE: Self = Self(32u32);
10652 pub const BLOCK_TEXEL_VIEW_COMPATIBLE: Self = Self(128u32);
10654 pub const EXTENDED_USAGE: Self = Self(256u32);
10656 pub const PROTECTED: Self = Self(2048u32);
10658 pub const DISJOINT: Self = Self(512u32);
10660 pub const CORNER_SAMPLED: Self = Self(8192u32);
10662 pub const DESCRIPTOR_HEAP_CAPTURE_REPLAY: Self = Self(65536u32);
10664 pub const SAMPLE_LOCATIONS_COMPATIBLE_DEPTH: Self = Self(4096u32);
10666 pub const SUBSAMPLED: Self = Self(16384u32);
10668 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self::DESCRIPTOR_HEAP_CAPTURE_REPLAY;
10669 pub const MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED: Self = Self(262144u32);
10671 pub const _2D_VIEW_COMPATIBLE: Self = Self(131072u32);
10673 pub const FRAGMENT_DENSITY_MAP_OFFSET_BIT: Self = Self::FRAGMENT_DENSITY_MAP_OFFSET;
10674 pub const VIDEO_PROFILE_INDEPENDENT: Self = Self(1048576u32);
10676 pub const FRAGMENT_DENSITY_MAP_OFFSET: Self = Self(32768u32);
10678}
10679impl core::ops::BitOr for ImageCreateFlagBits {
10680 type Output = Self;
10681 #[inline]
10682 fn bitor(self, rhs: Self) -> Self {
10683 Self(self.0 | rhs.0)
10684 }
10685}
10686impl core::ops::BitOrAssign for ImageCreateFlagBits {
10687 #[inline]
10688 fn bitor_assign(&mut self, rhs: Self) {
10689 self.0 |= rhs.0;
10690 }
10691}
10692impl core::ops::BitAnd for ImageCreateFlagBits {
10693 type Output = Self;
10694 #[inline]
10695 fn bitand(self, rhs: Self) -> Self {
10696 Self(self.0 & rhs.0)
10697 }
10698}
10699impl core::ops::BitAndAssign for ImageCreateFlagBits {
10700 #[inline]
10701 fn bitand_assign(&mut self, rhs: Self) {
10702 self.0 &= rhs.0;
10703 }
10704}
10705impl core::ops::BitXor for ImageCreateFlagBits {
10706 type Output = Self;
10707 #[inline]
10708 fn bitxor(self, rhs: Self) -> Self {
10709 Self(self.0 ^ rhs.0)
10710 }
10711}
10712impl core::ops::BitXorAssign for ImageCreateFlagBits {
10713 #[inline]
10714 fn bitxor_assign(&mut self, rhs: Self) {
10715 self.0 ^= rhs.0;
10716 }
10717}
10718impl core::ops::Not for ImageCreateFlagBits {
10719 type Output = Self;
10720 #[inline]
10721 fn not(self) -> Self {
10722 Self(!self.0)
10723 }
10724}
10725impl core::fmt::Debug for ImageCreateFlagBits {
10726 #[allow(unused_mut, unused_variables)]
10727 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
10728 let mut first = true;
10729 let mut remaining = self.0;
10730 if remaining & Self::SPARSE_BINDING.0 != 0 {
10731 if !first {
10732 f.write_str(" | ")?;
10733 }
10734 f.write_str("SPARSE_BINDING")?;
10735 remaining &= !Self::SPARSE_BINDING.0;
10736 first = false;
10737 }
10738 if remaining & Self::SPARSE_RESIDENCY.0 != 0 {
10739 if !first {
10740 f.write_str(" | ")?;
10741 }
10742 f.write_str("SPARSE_RESIDENCY")?;
10743 remaining &= !Self::SPARSE_RESIDENCY.0;
10744 first = false;
10745 }
10746 if remaining & Self::SPARSE_ALIASED.0 != 0 {
10747 if !first {
10748 f.write_str(" | ")?;
10749 }
10750 f.write_str("SPARSE_ALIASED")?;
10751 remaining &= !Self::SPARSE_ALIASED.0;
10752 first = false;
10753 }
10754 if remaining & Self::MUTABLE_FORMAT.0 != 0 {
10755 if !first {
10756 f.write_str(" | ")?;
10757 }
10758 f.write_str("MUTABLE_FORMAT")?;
10759 remaining &= !Self::MUTABLE_FORMAT.0;
10760 first = false;
10761 }
10762 if remaining & Self::CUBE_COMPATIBLE.0 != 0 {
10763 if !first {
10764 f.write_str(" | ")?;
10765 }
10766 f.write_str("CUBE_COMPATIBLE")?;
10767 remaining &= !Self::CUBE_COMPATIBLE.0;
10768 first = false;
10769 }
10770 if remaining & Self::ALIAS.0 != 0 {
10771 if !first {
10772 f.write_str(" | ")?;
10773 }
10774 f.write_str("ALIAS")?;
10775 remaining &= !Self::ALIAS.0;
10776 first = false;
10777 }
10778 if remaining & Self::SPLIT_INSTANCE_BIND_REGIONS.0 != 0 {
10779 if !first {
10780 f.write_str(" | ")?;
10781 }
10782 f.write_str("SPLIT_INSTANCE_BIND_REGIONS")?;
10783 remaining &= !Self::SPLIT_INSTANCE_BIND_REGIONS.0;
10784 first = false;
10785 }
10786 if remaining & Self::_2D_ARRAY_COMPATIBLE.0 != 0 {
10787 if !first {
10788 f.write_str(" | ")?;
10789 }
10790 f.write_str("_2D_ARRAY_COMPATIBLE")?;
10791 remaining &= !Self::_2D_ARRAY_COMPATIBLE.0;
10792 first = false;
10793 }
10794 if remaining & Self::BLOCK_TEXEL_VIEW_COMPATIBLE.0 != 0 {
10795 if !first {
10796 f.write_str(" | ")?;
10797 }
10798 f.write_str("BLOCK_TEXEL_VIEW_COMPATIBLE")?;
10799 remaining &= !Self::BLOCK_TEXEL_VIEW_COMPATIBLE.0;
10800 first = false;
10801 }
10802 if remaining & Self::EXTENDED_USAGE.0 != 0 {
10803 if !first {
10804 f.write_str(" | ")?;
10805 }
10806 f.write_str("EXTENDED_USAGE")?;
10807 remaining &= !Self::EXTENDED_USAGE.0;
10808 first = false;
10809 }
10810 if remaining & Self::PROTECTED.0 != 0 {
10811 if !first {
10812 f.write_str(" | ")?;
10813 }
10814 f.write_str("PROTECTED")?;
10815 remaining &= !Self::PROTECTED.0;
10816 first = false;
10817 }
10818 if remaining & Self::DISJOINT.0 != 0 {
10819 if !first {
10820 f.write_str(" | ")?;
10821 }
10822 f.write_str("DISJOINT")?;
10823 remaining &= !Self::DISJOINT.0;
10824 first = false;
10825 }
10826 if remaining & Self::CORNER_SAMPLED.0 != 0 {
10827 if !first {
10828 f.write_str(" | ")?;
10829 }
10830 f.write_str("CORNER_SAMPLED")?;
10831 remaining &= !Self::CORNER_SAMPLED.0;
10832 first = false;
10833 }
10834 if remaining & Self::DESCRIPTOR_HEAP_CAPTURE_REPLAY.0 != 0 {
10835 if !first {
10836 f.write_str(" | ")?;
10837 }
10838 f.write_str("DESCRIPTOR_HEAP_CAPTURE_REPLAY")?;
10839 remaining &= !Self::DESCRIPTOR_HEAP_CAPTURE_REPLAY.0;
10840 first = false;
10841 }
10842 if remaining & Self::SAMPLE_LOCATIONS_COMPATIBLE_DEPTH.0 != 0 {
10843 if !first {
10844 f.write_str(" | ")?;
10845 }
10846 f.write_str("SAMPLE_LOCATIONS_COMPATIBLE_DEPTH")?;
10847 remaining &= !Self::SAMPLE_LOCATIONS_COMPATIBLE_DEPTH.0;
10848 first = false;
10849 }
10850 if remaining & Self::SUBSAMPLED.0 != 0 {
10851 if !first {
10852 f.write_str(" | ")?;
10853 }
10854 f.write_str("SUBSAMPLED")?;
10855 remaining &= !Self::SUBSAMPLED.0;
10856 first = false;
10857 }
10858 if remaining & Self::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED.0 != 0 {
10859 if !first {
10860 f.write_str(" | ")?;
10861 }
10862 f.write_str("MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED")?;
10863 remaining &= !Self::MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED.0;
10864 first = false;
10865 }
10866 if remaining & Self::_2D_VIEW_COMPATIBLE.0 != 0 {
10867 if !first {
10868 f.write_str(" | ")?;
10869 }
10870 f.write_str("_2D_VIEW_COMPATIBLE")?;
10871 remaining &= !Self::_2D_VIEW_COMPATIBLE.0;
10872 first = false;
10873 }
10874 if remaining & Self::VIDEO_PROFILE_INDEPENDENT.0 != 0 {
10875 if !first {
10876 f.write_str(" | ")?;
10877 }
10878 f.write_str("VIDEO_PROFILE_INDEPENDENT")?;
10879 remaining &= !Self::VIDEO_PROFILE_INDEPENDENT.0;
10880 first = false;
10881 }
10882 if remaining & Self::FRAGMENT_DENSITY_MAP_OFFSET.0 != 0 {
10883 if !first {
10884 f.write_str(" | ")?;
10885 }
10886 f.write_str("FRAGMENT_DENSITY_MAP_OFFSET")?;
10887 remaining &= !Self::FRAGMENT_DENSITY_MAP_OFFSET.0;
10888 first = false;
10889 }
10890 if remaining != 0u32 {
10891 if !first {
10892 f.write_str(" | ")?;
10893 }
10894 write!(f, "{:#x}", remaining)?;
10895 } else if first {
10896 f.write_str("(empty)")?;
10897 }
10898 Ok(())
10899 }
10900}
10901#[repr(transparent)]
10903#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10904#[doc(alias = "VkImageFormatConstraintsFlagBitsFUCHSIA")]
10905pub struct ImageFormatConstraintsFlagBitsFUCHSIA(u32);
10906impl ImageFormatConstraintsFlagBitsFUCHSIA {
10907 #[inline]
10908 pub const fn empty() -> Self {
10909 Self(0u32)
10910 }
10911 #[inline]
10912 pub const fn from_raw(value: u32) -> Self {
10913 Self(value)
10914 }
10915 #[inline]
10916 pub const fn as_raw(self) -> u32 {
10917 self.0
10918 }
10919 #[inline]
10920 pub const fn is_empty(self) -> bool {
10921 self.0 == 0u32
10922 }
10923 #[inline]
10924 pub const fn contains(self, other: Self) -> bool {
10925 (self.0 & other.0) == other.0
10926 }
10927 #[inline]
10928 pub const fn all() -> Self {
10929 Self(0u32)
10930 }
10931}
10932impl core::ops::BitOr for ImageFormatConstraintsFlagBitsFUCHSIA {
10933 type Output = Self;
10934 #[inline]
10935 fn bitor(self, rhs: Self) -> Self {
10936 Self(self.0 | rhs.0)
10937 }
10938}
10939impl core::ops::BitOrAssign for ImageFormatConstraintsFlagBitsFUCHSIA {
10940 #[inline]
10941 fn bitor_assign(&mut self, rhs: Self) {
10942 self.0 |= rhs.0;
10943 }
10944}
10945impl core::ops::BitAnd for ImageFormatConstraintsFlagBitsFUCHSIA {
10946 type Output = Self;
10947 #[inline]
10948 fn bitand(self, rhs: Self) -> Self {
10949 Self(self.0 & rhs.0)
10950 }
10951}
10952impl core::ops::BitAndAssign for ImageFormatConstraintsFlagBitsFUCHSIA {
10953 #[inline]
10954 fn bitand_assign(&mut self, rhs: Self) {
10955 self.0 &= rhs.0;
10956 }
10957}
10958impl core::ops::BitXor for ImageFormatConstraintsFlagBitsFUCHSIA {
10959 type Output = Self;
10960 #[inline]
10961 fn bitxor(self, rhs: Self) -> Self {
10962 Self(self.0 ^ rhs.0)
10963 }
10964}
10965impl core::ops::BitXorAssign for ImageFormatConstraintsFlagBitsFUCHSIA {
10966 #[inline]
10967 fn bitxor_assign(&mut self, rhs: Self) {
10968 self.0 ^= rhs.0;
10969 }
10970}
10971impl core::ops::Not for ImageFormatConstraintsFlagBitsFUCHSIA {
10972 type Output = Self;
10973 #[inline]
10974 fn not(self) -> Self {
10975 Self(!self.0)
10976 }
10977}
10978impl core::fmt::Debug for ImageFormatConstraintsFlagBitsFUCHSIA {
10979 #[allow(unused_mut, unused_variables)]
10980 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
10981 let mut first = true;
10982 let mut remaining = self.0;
10983 if remaining != 0u32 {
10984 if !first {
10985 f.write_str(" | ")?;
10986 }
10987 write!(f, "{:#x}", remaining)?;
10988 } else if first {
10989 f.write_str("(empty)")?;
10990 }
10991 Ok(())
10992 }
10993}
10994#[repr(transparent)]
10996#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
10997#[doc(alias = "VkImageUsageFlagBits")]
10998pub struct ImageUsageFlagBits(u32);
10999impl ImageUsageFlagBits {
11000 #[inline]
11001 pub const fn empty() -> Self {
11002 Self(0u32)
11003 }
11004 #[inline]
11005 pub const fn from_raw(value: u32) -> Self {
11006 Self(value)
11007 }
11008 #[inline]
11009 pub const fn as_raw(self) -> u32 {
11010 self.0
11011 }
11012 #[inline]
11013 pub const fn is_empty(self) -> bool {
11014 self.0 == 0u32
11015 }
11016 #[inline]
11017 pub const fn contains(self, other: Self) -> bool {
11018 (self.0 & other.0) == other.0
11019 }
11020 #[inline]
11021 pub const fn all() -> Self {
11022 Self(251461631u32)
11023 }
11024 pub const TRANSFER_SRC: Self = Self(1u32);
11026 pub const TRANSFER_DST: Self = Self(2u32);
11028 pub const SAMPLED: Self = Self(4u32);
11030 pub const STORAGE: Self = Self(8u32);
11032 pub const COLOR_ATTACHMENT: Self = Self(16u32);
11034 pub const DEPTH_STENCIL_ATTACHMENT: Self = Self(32u32);
11036 pub const TRANSIENT_ATTACHMENT: Self = Self(64u32);
11038 pub const INPUT_ATTACHMENT: Self = Self(128u32);
11040 pub const HOST_TRANSFER: Self = Self(4194304u32);
11042 pub const VIDEO_DECODE_DST: Self = Self(1024u32);
11044 pub const VIDEO_DECODE_SRC: Self = Self(2048u32);
11046 pub const VIDEO_DECODE_DPB: Self = Self(4096u32);
11048 pub const SHADING_RATE_IMAGE: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT;
11049 pub const FRAGMENT_DENSITY_MAP: Self = Self(512u32);
11051 pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(256u32);
11053 pub const VIDEO_ENCODE_DST: Self = Self(8192u32);
11055 pub const VIDEO_ENCODE_SRC: Self = Self(16384u32);
11057 pub const VIDEO_ENCODE_DPB: Self = Self(32768u32);
11059 pub const ATTACHMENT_FEEDBACK_LOOP: Self = Self(524288u32);
11061 pub const INVOCATION_MASK_BIT: Self = Self(262144u32);
11063 pub const SAMPLE_WEIGHT_BIT: Self = Self(1048576u32);
11065 pub const SAMPLE_BLOCK_MATCH_BIT: Self = Self(2097152u32);
11067 pub const TENSOR_ALIASING_BIT: Self = Self(8388608u32);
11069 pub const TILE_MEMORY_BIT: Self = Self(134217728u32);
11071 pub const VIDEO_ENCODE_QUANTIZATION_DELTA_MAP: Self = Self(33554432u32);
11073 pub const VIDEO_ENCODE_EMPHASIS_MAP: Self = Self(67108864u32);
11075}
11076impl core::ops::BitOr for ImageUsageFlagBits {
11077 type Output = Self;
11078 #[inline]
11079 fn bitor(self, rhs: Self) -> Self {
11080 Self(self.0 | rhs.0)
11081 }
11082}
11083impl core::ops::BitOrAssign for ImageUsageFlagBits {
11084 #[inline]
11085 fn bitor_assign(&mut self, rhs: Self) {
11086 self.0 |= rhs.0;
11087 }
11088}
11089impl core::ops::BitAnd for ImageUsageFlagBits {
11090 type Output = Self;
11091 #[inline]
11092 fn bitand(self, rhs: Self) -> Self {
11093 Self(self.0 & rhs.0)
11094 }
11095}
11096impl core::ops::BitAndAssign for ImageUsageFlagBits {
11097 #[inline]
11098 fn bitand_assign(&mut self, rhs: Self) {
11099 self.0 &= rhs.0;
11100 }
11101}
11102impl core::ops::BitXor for ImageUsageFlagBits {
11103 type Output = Self;
11104 #[inline]
11105 fn bitxor(self, rhs: Self) -> Self {
11106 Self(self.0 ^ rhs.0)
11107 }
11108}
11109impl core::ops::BitXorAssign for ImageUsageFlagBits {
11110 #[inline]
11111 fn bitxor_assign(&mut self, rhs: Self) {
11112 self.0 ^= rhs.0;
11113 }
11114}
11115impl core::ops::Not for ImageUsageFlagBits {
11116 type Output = Self;
11117 #[inline]
11118 fn not(self) -> Self {
11119 Self(!self.0)
11120 }
11121}
11122impl core::fmt::Debug for ImageUsageFlagBits {
11123 #[allow(unused_mut, unused_variables)]
11124 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11125 let mut first = true;
11126 let mut remaining = self.0;
11127 if remaining & Self::TRANSFER_SRC.0 != 0 {
11128 if !first {
11129 f.write_str(" | ")?;
11130 }
11131 f.write_str("TRANSFER_SRC")?;
11132 remaining &= !Self::TRANSFER_SRC.0;
11133 first = false;
11134 }
11135 if remaining & Self::TRANSFER_DST.0 != 0 {
11136 if !first {
11137 f.write_str(" | ")?;
11138 }
11139 f.write_str("TRANSFER_DST")?;
11140 remaining &= !Self::TRANSFER_DST.0;
11141 first = false;
11142 }
11143 if remaining & Self::SAMPLED.0 != 0 {
11144 if !first {
11145 f.write_str(" | ")?;
11146 }
11147 f.write_str("SAMPLED")?;
11148 remaining &= !Self::SAMPLED.0;
11149 first = false;
11150 }
11151 if remaining & Self::STORAGE.0 != 0 {
11152 if !first {
11153 f.write_str(" | ")?;
11154 }
11155 f.write_str("STORAGE")?;
11156 remaining &= !Self::STORAGE.0;
11157 first = false;
11158 }
11159 if remaining & Self::COLOR_ATTACHMENT.0 != 0 {
11160 if !first {
11161 f.write_str(" | ")?;
11162 }
11163 f.write_str("COLOR_ATTACHMENT")?;
11164 remaining &= !Self::COLOR_ATTACHMENT.0;
11165 first = false;
11166 }
11167 if remaining & Self::DEPTH_STENCIL_ATTACHMENT.0 != 0 {
11168 if !first {
11169 f.write_str(" | ")?;
11170 }
11171 f.write_str("DEPTH_STENCIL_ATTACHMENT")?;
11172 remaining &= !Self::DEPTH_STENCIL_ATTACHMENT.0;
11173 first = false;
11174 }
11175 if remaining & Self::TRANSIENT_ATTACHMENT.0 != 0 {
11176 if !first {
11177 f.write_str(" | ")?;
11178 }
11179 f.write_str("TRANSIENT_ATTACHMENT")?;
11180 remaining &= !Self::TRANSIENT_ATTACHMENT.0;
11181 first = false;
11182 }
11183 if remaining & Self::INPUT_ATTACHMENT.0 != 0 {
11184 if !first {
11185 f.write_str(" | ")?;
11186 }
11187 f.write_str("INPUT_ATTACHMENT")?;
11188 remaining &= !Self::INPUT_ATTACHMENT.0;
11189 first = false;
11190 }
11191 if remaining & Self::HOST_TRANSFER.0 != 0 {
11192 if !first {
11193 f.write_str(" | ")?;
11194 }
11195 f.write_str("HOST_TRANSFER")?;
11196 remaining &= !Self::HOST_TRANSFER.0;
11197 first = false;
11198 }
11199 if remaining & Self::VIDEO_DECODE_DST.0 != 0 {
11200 if !first {
11201 f.write_str(" | ")?;
11202 }
11203 f.write_str("VIDEO_DECODE_DST")?;
11204 remaining &= !Self::VIDEO_DECODE_DST.0;
11205 first = false;
11206 }
11207 if remaining & Self::VIDEO_DECODE_SRC.0 != 0 {
11208 if !first {
11209 f.write_str(" | ")?;
11210 }
11211 f.write_str("VIDEO_DECODE_SRC")?;
11212 remaining &= !Self::VIDEO_DECODE_SRC.0;
11213 first = false;
11214 }
11215 if remaining & Self::VIDEO_DECODE_DPB.0 != 0 {
11216 if !first {
11217 f.write_str(" | ")?;
11218 }
11219 f.write_str("VIDEO_DECODE_DPB")?;
11220 remaining &= !Self::VIDEO_DECODE_DPB.0;
11221 first = false;
11222 }
11223 if remaining & Self::FRAGMENT_DENSITY_MAP.0 != 0 {
11224 if !first {
11225 f.write_str(" | ")?;
11226 }
11227 f.write_str("FRAGMENT_DENSITY_MAP")?;
11228 remaining &= !Self::FRAGMENT_DENSITY_MAP.0;
11229 first = false;
11230 }
11231 if remaining & Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
11232 if !first {
11233 f.write_str(" | ")?;
11234 }
11235 f.write_str("FRAGMENT_SHADING_RATE_ATTACHMENT")?;
11236 remaining &= !Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0;
11237 first = false;
11238 }
11239 if remaining & Self::VIDEO_ENCODE_DST.0 != 0 {
11240 if !first {
11241 f.write_str(" | ")?;
11242 }
11243 f.write_str("VIDEO_ENCODE_DST")?;
11244 remaining &= !Self::VIDEO_ENCODE_DST.0;
11245 first = false;
11246 }
11247 if remaining & Self::VIDEO_ENCODE_SRC.0 != 0 {
11248 if !first {
11249 f.write_str(" | ")?;
11250 }
11251 f.write_str("VIDEO_ENCODE_SRC")?;
11252 remaining &= !Self::VIDEO_ENCODE_SRC.0;
11253 first = false;
11254 }
11255 if remaining & Self::VIDEO_ENCODE_DPB.0 != 0 {
11256 if !first {
11257 f.write_str(" | ")?;
11258 }
11259 f.write_str("VIDEO_ENCODE_DPB")?;
11260 remaining &= !Self::VIDEO_ENCODE_DPB.0;
11261 first = false;
11262 }
11263 if remaining & Self::ATTACHMENT_FEEDBACK_LOOP.0 != 0 {
11264 if !first {
11265 f.write_str(" | ")?;
11266 }
11267 f.write_str("ATTACHMENT_FEEDBACK_LOOP")?;
11268 remaining &= !Self::ATTACHMENT_FEEDBACK_LOOP.0;
11269 first = false;
11270 }
11271 if remaining & Self::INVOCATION_MASK_BIT.0 != 0 {
11272 if !first {
11273 f.write_str(" | ")?;
11274 }
11275 f.write_str("INVOCATION_MASK_BIT")?;
11276 remaining &= !Self::INVOCATION_MASK_BIT.0;
11277 first = false;
11278 }
11279 if remaining & Self::SAMPLE_WEIGHT_BIT.0 != 0 {
11280 if !first {
11281 f.write_str(" | ")?;
11282 }
11283 f.write_str("SAMPLE_WEIGHT_BIT")?;
11284 remaining &= !Self::SAMPLE_WEIGHT_BIT.0;
11285 first = false;
11286 }
11287 if remaining & Self::SAMPLE_BLOCK_MATCH_BIT.0 != 0 {
11288 if !first {
11289 f.write_str(" | ")?;
11290 }
11291 f.write_str("SAMPLE_BLOCK_MATCH_BIT")?;
11292 remaining &= !Self::SAMPLE_BLOCK_MATCH_BIT.0;
11293 first = false;
11294 }
11295 if remaining & Self::TENSOR_ALIASING_BIT.0 != 0 {
11296 if !first {
11297 f.write_str(" | ")?;
11298 }
11299 f.write_str("TENSOR_ALIASING_BIT")?;
11300 remaining &= !Self::TENSOR_ALIASING_BIT.0;
11301 first = false;
11302 }
11303 if remaining & Self::TILE_MEMORY_BIT.0 != 0 {
11304 if !first {
11305 f.write_str(" | ")?;
11306 }
11307 f.write_str("TILE_MEMORY_BIT")?;
11308 remaining &= !Self::TILE_MEMORY_BIT.0;
11309 first = false;
11310 }
11311 if remaining & Self::VIDEO_ENCODE_QUANTIZATION_DELTA_MAP.0 != 0 {
11312 if !first {
11313 f.write_str(" | ")?;
11314 }
11315 f.write_str("VIDEO_ENCODE_QUANTIZATION_DELTA_MAP")?;
11316 remaining &= !Self::VIDEO_ENCODE_QUANTIZATION_DELTA_MAP.0;
11317 first = false;
11318 }
11319 if remaining & Self::VIDEO_ENCODE_EMPHASIS_MAP.0 != 0 {
11320 if !first {
11321 f.write_str(" | ")?;
11322 }
11323 f.write_str("VIDEO_ENCODE_EMPHASIS_MAP")?;
11324 remaining &= !Self::VIDEO_ENCODE_EMPHASIS_MAP.0;
11325 first = false;
11326 }
11327 if remaining != 0u32 {
11328 if !first {
11329 f.write_str(" | ")?;
11330 }
11331 write!(f, "{:#x}", remaining)?;
11332 } else if first {
11333 f.write_str("(empty)")?;
11334 }
11335 Ok(())
11336 }
11337}
11338#[repr(transparent)]
11340#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11341#[doc(alias = "VkImageViewCreateFlagBits")]
11342pub struct ImageViewCreateFlagBits(u32);
11343impl ImageViewCreateFlagBits {
11344 #[inline]
11345 pub const fn empty() -> Self {
11346 Self(0u32)
11347 }
11348 #[inline]
11349 pub const fn from_raw(value: u32) -> Self {
11350 Self(value)
11351 }
11352 #[inline]
11353 pub const fn as_raw(self) -> u32 {
11354 self.0
11355 }
11356 #[inline]
11357 pub const fn is_empty(self) -> bool {
11358 self.0 == 0u32
11359 }
11360 #[inline]
11361 pub const fn contains(self, other: Self) -> bool {
11362 (self.0 & other.0) == other.0
11363 }
11364 #[inline]
11365 pub const fn all() -> Self {
11366 Self(7u32)
11367 }
11368 pub const FRAGMENT_DENSITY_MAP_DYNAMIC: Self = Self(1u32);
11370 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(4u32);
11372 pub const FRAGMENT_DENSITY_MAP_DEFERRED: Self = Self(2u32);
11374}
11375impl core::ops::BitOr for ImageViewCreateFlagBits {
11376 type Output = Self;
11377 #[inline]
11378 fn bitor(self, rhs: Self) -> Self {
11379 Self(self.0 | rhs.0)
11380 }
11381}
11382impl core::ops::BitOrAssign for ImageViewCreateFlagBits {
11383 #[inline]
11384 fn bitor_assign(&mut self, rhs: Self) {
11385 self.0 |= rhs.0;
11386 }
11387}
11388impl core::ops::BitAnd for ImageViewCreateFlagBits {
11389 type Output = Self;
11390 #[inline]
11391 fn bitand(self, rhs: Self) -> Self {
11392 Self(self.0 & rhs.0)
11393 }
11394}
11395impl core::ops::BitAndAssign for ImageViewCreateFlagBits {
11396 #[inline]
11397 fn bitand_assign(&mut self, rhs: Self) {
11398 self.0 &= rhs.0;
11399 }
11400}
11401impl core::ops::BitXor for ImageViewCreateFlagBits {
11402 type Output = Self;
11403 #[inline]
11404 fn bitxor(self, rhs: Self) -> Self {
11405 Self(self.0 ^ rhs.0)
11406 }
11407}
11408impl core::ops::BitXorAssign for ImageViewCreateFlagBits {
11409 #[inline]
11410 fn bitxor_assign(&mut self, rhs: Self) {
11411 self.0 ^= rhs.0;
11412 }
11413}
11414impl core::ops::Not for ImageViewCreateFlagBits {
11415 type Output = Self;
11416 #[inline]
11417 fn not(self) -> Self {
11418 Self(!self.0)
11419 }
11420}
11421impl core::fmt::Debug for ImageViewCreateFlagBits {
11422 #[allow(unused_mut, unused_variables)]
11423 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11424 let mut first = true;
11425 let mut remaining = self.0;
11426 if remaining & Self::FRAGMENT_DENSITY_MAP_DYNAMIC.0 != 0 {
11427 if !first {
11428 f.write_str(" | ")?;
11429 }
11430 f.write_str("FRAGMENT_DENSITY_MAP_DYNAMIC")?;
11431 remaining &= !Self::FRAGMENT_DENSITY_MAP_DYNAMIC.0;
11432 first = false;
11433 }
11434 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0 != 0 {
11435 if !first {
11436 f.write_str(" | ")?;
11437 }
11438 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY")?;
11439 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0;
11440 first = false;
11441 }
11442 if remaining & Self::FRAGMENT_DENSITY_MAP_DEFERRED.0 != 0 {
11443 if !first {
11444 f.write_str(" | ")?;
11445 }
11446 f.write_str("FRAGMENT_DENSITY_MAP_DEFERRED")?;
11447 remaining &= !Self::FRAGMENT_DENSITY_MAP_DEFERRED.0;
11448 first = false;
11449 }
11450 if remaining != 0u32 {
11451 if !first {
11452 f.write_str(" | ")?;
11453 }
11454 write!(f, "{:#x}", remaining)?;
11455 } else if first {
11456 f.write_str("(empty)")?;
11457 }
11458 Ok(())
11459 }
11460}
11461#[repr(transparent)]
11463#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11464#[doc(alias = "VkIndirectCommandsInputModeFlagBitsEXT")]
11465pub struct IndirectCommandsInputModeFlagBitsEXT(u32);
11466impl IndirectCommandsInputModeFlagBitsEXT {
11467 #[inline]
11468 pub const fn empty() -> Self {
11469 Self(0u32)
11470 }
11471 #[inline]
11472 pub const fn from_raw(value: u32) -> Self {
11473 Self(value)
11474 }
11475 #[inline]
11476 pub const fn as_raw(self) -> u32 {
11477 self.0
11478 }
11479 #[inline]
11480 pub const fn is_empty(self) -> bool {
11481 self.0 == 0u32
11482 }
11483 #[inline]
11484 pub const fn contains(self, other: Self) -> bool {
11485 (self.0 & other.0) == other.0
11486 }
11487 #[inline]
11488 pub const fn all() -> Self {
11489 Self(3u32)
11490 }
11491 pub const VULKAN_INDEX_BUFFER: Self = Self(1u32);
11493 pub const DXGI_INDEX_BUFFER: Self = Self(2u32);
11495}
11496impl core::ops::BitOr for IndirectCommandsInputModeFlagBitsEXT {
11497 type Output = Self;
11498 #[inline]
11499 fn bitor(self, rhs: Self) -> Self {
11500 Self(self.0 | rhs.0)
11501 }
11502}
11503impl core::ops::BitOrAssign for IndirectCommandsInputModeFlagBitsEXT {
11504 #[inline]
11505 fn bitor_assign(&mut self, rhs: Self) {
11506 self.0 |= rhs.0;
11507 }
11508}
11509impl core::ops::BitAnd for IndirectCommandsInputModeFlagBitsEXT {
11510 type Output = Self;
11511 #[inline]
11512 fn bitand(self, rhs: Self) -> Self {
11513 Self(self.0 & rhs.0)
11514 }
11515}
11516impl core::ops::BitAndAssign for IndirectCommandsInputModeFlagBitsEXT {
11517 #[inline]
11518 fn bitand_assign(&mut self, rhs: Self) {
11519 self.0 &= rhs.0;
11520 }
11521}
11522impl core::ops::BitXor for IndirectCommandsInputModeFlagBitsEXT {
11523 type Output = Self;
11524 #[inline]
11525 fn bitxor(self, rhs: Self) -> Self {
11526 Self(self.0 ^ rhs.0)
11527 }
11528}
11529impl core::ops::BitXorAssign for IndirectCommandsInputModeFlagBitsEXT {
11530 #[inline]
11531 fn bitxor_assign(&mut self, rhs: Self) {
11532 self.0 ^= rhs.0;
11533 }
11534}
11535impl core::ops::Not for IndirectCommandsInputModeFlagBitsEXT {
11536 type Output = Self;
11537 #[inline]
11538 fn not(self) -> Self {
11539 Self(!self.0)
11540 }
11541}
11542impl core::fmt::Debug for IndirectCommandsInputModeFlagBitsEXT {
11543 #[allow(unused_mut, unused_variables)]
11544 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11545 let mut first = true;
11546 let mut remaining = self.0;
11547 if remaining & Self::VULKAN_INDEX_BUFFER.0 != 0 {
11548 if !first {
11549 f.write_str(" | ")?;
11550 }
11551 f.write_str("VULKAN_INDEX_BUFFER")?;
11552 remaining &= !Self::VULKAN_INDEX_BUFFER.0;
11553 first = false;
11554 }
11555 if remaining & Self::DXGI_INDEX_BUFFER.0 != 0 {
11556 if !first {
11557 f.write_str(" | ")?;
11558 }
11559 f.write_str("DXGI_INDEX_BUFFER")?;
11560 remaining &= !Self::DXGI_INDEX_BUFFER.0;
11561 first = false;
11562 }
11563 if remaining != 0u32 {
11564 if !first {
11565 f.write_str(" | ")?;
11566 }
11567 write!(f, "{:#x}", remaining)?;
11568 } else if first {
11569 f.write_str("(empty)")?;
11570 }
11571 Ok(())
11572 }
11573}
11574#[repr(transparent)]
11576#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11577#[doc(alias = "VkIndirectCommandsLayoutUsageFlagBitsEXT")]
11578pub struct IndirectCommandsLayoutUsageFlagBitsEXT(u32);
11579impl IndirectCommandsLayoutUsageFlagBitsEXT {
11580 #[inline]
11581 pub const fn empty() -> Self {
11582 Self(0u32)
11583 }
11584 #[inline]
11585 pub const fn from_raw(value: u32) -> Self {
11586 Self(value)
11587 }
11588 #[inline]
11589 pub const fn as_raw(self) -> u32 {
11590 self.0
11591 }
11592 #[inline]
11593 pub const fn is_empty(self) -> bool {
11594 self.0 == 0u32
11595 }
11596 #[inline]
11597 pub const fn contains(self, other: Self) -> bool {
11598 (self.0 & other.0) == other.0
11599 }
11600 #[inline]
11601 pub const fn all() -> Self {
11602 Self(3u32)
11603 }
11604 pub const EXPLICIT_PREPROCESS: Self = Self(1u32);
11606 pub const UNORDERED_SEQUENCES: Self = Self(2u32);
11608}
11609impl core::ops::BitOr for IndirectCommandsLayoutUsageFlagBitsEXT {
11610 type Output = Self;
11611 #[inline]
11612 fn bitor(self, rhs: Self) -> Self {
11613 Self(self.0 | rhs.0)
11614 }
11615}
11616impl core::ops::BitOrAssign for IndirectCommandsLayoutUsageFlagBitsEXT {
11617 #[inline]
11618 fn bitor_assign(&mut self, rhs: Self) {
11619 self.0 |= rhs.0;
11620 }
11621}
11622impl core::ops::BitAnd for IndirectCommandsLayoutUsageFlagBitsEXT {
11623 type Output = Self;
11624 #[inline]
11625 fn bitand(self, rhs: Self) -> Self {
11626 Self(self.0 & rhs.0)
11627 }
11628}
11629impl core::ops::BitAndAssign for IndirectCommandsLayoutUsageFlagBitsEXT {
11630 #[inline]
11631 fn bitand_assign(&mut self, rhs: Self) {
11632 self.0 &= rhs.0;
11633 }
11634}
11635impl core::ops::BitXor for IndirectCommandsLayoutUsageFlagBitsEXT {
11636 type Output = Self;
11637 #[inline]
11638 fn bitxor(self, rhs: Self) -> Self {
11639 Self(self.0 ^ rhs.0)
11640 }
11641}
11642impl core::ops::BitXorAssign for IndirectCommandsLayoutUsageFlagBitsEXT {
11643 #[inline]
11644 fn bitxor_assign(&mut self, rhs: Self) {
11645 self.0 ^= rhs.0;
11646 }
11647}
11648impl core::ops::Not for IndirectCommandsLayoutUsageFlagBitsEXT {
11649 type Output = Self;
11650 #[inline]
11651 fn not(self) -> Self {
11652 Self(!self.0)
11653 }
11654}
11655impl core::fmt::Debug for IndirectCommandsLayoutUsageFlagBitsEXT {
11656 #[allow(unused_mut, unused_variables)]
11657 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11658 let mut first = true;
11659 let mut remaining = self.0;
11660 if remaining & Self::EXPLICIT_PREPROCESS.0 != 0 {
11661 if !first {
11662 f.write_str(" | ")?;
11663 }
11664 f.write_str("EXPLICIT_PREPROCESS")?;
11665 remaining &= !Self::EXPLICIT_PREPROCESS.0;
11666 first = false;
11667 }
11668 if remaining & Self::UNORDERED_SEQUENCES.0 != 0 {
11669 if !first {
11670 f.write_str(" | ")?;
11671 }
11672 f.write_str("UNORDERED_SEQUENCES")?;
11673 remaining &= !Self::UNORDERED_SEQUENCES.0;
11674 first = false;
11675 }
11676 if remaining != 0u32 {
11677 if !first {
11678 f.write_str(" | ")?;
11679 }
11680 write!(f, "{:#x}", remaining)?;
11681 } else if first {
11682 f.write_str("(empty)")?;
11683 }
11684 Ok(())
11685 }
11686}
11687#[repr(transparent)]
11689#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11690#[doc(alias = "VkIndirectCommandsLayoutUsageFlagBitsNV")]
11691pub struct IndirectCommandsLayoutUsageFlagBitsNV(u32);
11692impl IndirectCommandsLayoutUsageFlagBitsNV {
11693 #[inline]
11694 pub const fn empty() -> Self {
11695 Self(0u32)
11696 }
11697 #[inline]
11698 pub const fn from_raw(value: u32) -> Self {
11699 Self(value)
11700 }
11701 #[inline]
11702 pub const fn as_raw(self) -> u32 {
11703 self.0
11704 }
11705 #[inline]
11706 pub const fn is_empty(self) -> bool {
11707 self.0 == 0u32
11708 }
11709 #[inline]
11710 pub const fn contains(self, other: Self) -> bool {
11711 (self.0 & other.0) == other.0
11712 }
11713 #[inline]
11714 pub const fn all() -> Self {
11715 Self(7u32)
11716 }
11717 pub const EXPLICIT_PREPROCESS: Self = Self(1u32);
11719 pub const INDEXED_SEQUENCES: Self = Self(2u32);
11721 pub const UNORDERED_SEQUENCES: Self = Self(4u32);
11723}
11724impl core::ops::BitOr for IndirectCommandsLayoutUsageFlagBitsNV {
11725 type Output = Self;
11726 #[inline]
11727 fn bitor(self, rhs: Self) -> Self {
11728 Self(self.0 | rhs.0)
11729 }
11730}
11731impl core::ops::BitOrAssign for IndirectCommandsLayoutUsageFlagBitsNV {
11732 #[inline]
11733 fn bitor_assign(&mut self, rhs: Self) {
11734 self.0 |= rhs.0;
11735 }
11736}
11737impl core::ops::BitAnd for IndirectCommandsLayoutUsageFlagBitsNV {
11738 type Output = Self;
11739 #[inline]
11740 fn bitand(self, rhs: Self) -> Self {
11741 Self(self.0 & rhs.0)
11742 }
11743}
11744impl core::ops::BitAndAssign for IndirectCommandsLayoutUsageFlagBitsNV {
11745 #[inline]
11746 fn bitand_assign(&mut self, rhs: Self) {
11747 self.0 &= rhs.0;
11748 }
11749}
11750impl core::ops::BitXor for IndirectCommandsLayoutUsageFlagBitsNV {
11751 type Output = Self;
11752 #[inline]
11753 fn bitxor(self, rhs: Self) -> Self {
11754 Self(self.0 ^ rhs.0)
11755 }
11756}
11757impl core::ops::BitXorAssign for IndirectCommandsLayoutUsageFlagBitsNV {
11758 #[inline]
11759 fn bitxor_assign(&mut self, rhs: Self) {
11760 self.0 ^= rhs.0;
11761 }
11762}
11763impl core::ops::Not for IndirectCommandsLayoutUsageFlagBitsNV {
11764 type Output = Self;
11765 #[inline]
11766 fn not(self) -> Self {
11767 Self(!self.0)
11768 }
11769}
11770impl core::fmt::Debug for IndirectCommandsLayoutUsageFlagBitsNV {
11771 #[allow(unused_mut, unused_variables)]
11772 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11773 let mut first = true;
11774 let mut remaining = self.0;
11775 if remaining & Self::EXPLICIT_PREPROCESS.0 != 0 {
11776 if !first {
11777 f.write_str(" | ")?;
11778 }
11779 f.write_str("EXPLICIT_PREPROCESS")?;
11780 remaining &= !Self::EXPLICIT_PREPROCESS.0;
11781 first = false;
11782 }
11783 if remaining & Self::INDEXED_SEQUENCES.0 != 0 {
11784 if !first {
11785 f.write_str(" | ")?;
11786 }
11787 f.write_str("INDEXED_SEQUENCES")?;
11788 remaining &= !Self::INDEXED_SEQUENCES.0;
11789 first = false;
11790 }
11791 if remaining & Self::UNORDERED_SEQUENCES.0 != 0 {
11792 if !first {
11793 f.write_str(" | ")?;
11794 }
11795 f.write_str("UNORDERED_SEQUENCES")?;
11796 remaining &= !Self::UNORDERED_SEQUENCES.0;
11797 first = false;
11798 }
11799 if remaining != 0u32 {
11800 if !first {
11801 f.write_str(" | ")?;
11802 }
11803 write!(f, "{:#x}", remaining)?;
11804 } else if first {
11805 f.write_str("(empty)")?;
11806 }
11807 Ok(())
11808 }
11809}
11810#[repr(transparent)]
11812#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11813#[doc(alias = "VkIndirectStateFlagBitsNV")]
11814pub struct IndirectStateFlagBitsNV(u32);
11815impl IndirectStateFlagBitsNV {
11816 #[inline]
11817 pub const fn empty() -> Self {
11818 Self(0u32)
11819 }
11820 #[inline]
11821 pub const fn from_raw(value: u32) -> Self {
11822 Self(value)
11823 }
11824 #[inline]
11825 pub const fn as_raw(self) -> u32 {
11826 self.0
11827 }
11828 #[inline]
11829 pub const fn is_empty(self) -> bool {
11830 self.0 == 0u32
11831 }
11832 #[inline]
11833 pub const fn contains(self, other: Self) -> bool {
11834 (self.0 & other.0) == other.0
11835 }
11836 #[inline]
11837 pub const fn all() -> Self {
11838 Self(1u32)
11839 }
11840 pub const FLAG_FRONTFACE: Self = Self(1u32);
11842}
11843impl core::ops::BitOr for IndirectStateFlagBitsNV {
11844 type Output = Self;
11845 #[inline]
11846 fn bitor(self, rhs: Self) -> Self {
11847 Self(self.0 | rhs.0)
11848 }
11849}
11850impl core::ops::BitOrAssign for IndirectStateFlagBitsNV {
11851 #[inline]
11852 fn bitor_assign(&mut self, rhs: Self) {
11853 self.0 |= rhs.0;
11854 }
11855}
11856impl core::ops::BitAnd for IndirectStateFlagBitsNV {
11857 type Output = Self;
11858 #[inline]
11859 fn bitand(self, rhs: Self) -> Self {
11860 Self(self.0 & rhs.0)
11861 }
11862}
11863impl core::ops::BitAndAssign for IndirectStateFlagBitsNV {
11864 #[inline]
11865 fn bitand_assign(&mut self, rhs: Self) {
11866 self.0 &= rhs.0;
11867 }
11868}
11869impl core::ops::BitXor for IndirectStateFlagBitsNV {
11870 type Output = Self;
11871 #[inline]
11872 fn bitxor(self, rhs: Self) -> Self {
11873 Self(self.0 ^ rhs.0)
11874 }
11875}
11876impl core::ops::BitXorAssign for IndirectStateFlagBitsNV {
11877 #[inline]
11878 fn bitxor_assign(&mut self, rhs: Self) {
11879 self.0 ^= rhs.0;
11880 }
11881}
11882impl core::ops::Not for IndirectStateFlagBitsNV {
11883 type Output = Self;
11884 #[inline]
11885 fn not(self) -> Self {
11886 Self(!self.0)
11887 }
11888}
11889impl core::fmt::Debug for IndirectStateFlagBitsNV {
11890 #[allow(unused_mut, unused_variables)]
11891 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11892 let mut first = true;
11893 let mut remaining = self.0;
11894 if remaining & Self::FLAG_FRONTFACE.0 != 0 {
11895 if !first {
11896 f.write_str(" | ")?;
11897 }
11898 f.write_str("FLAG_FRONTFACE")?;
11899 remaining &= !Self::FLAG_FRONTFACE.0;
11900 first = false;
11901 }
11902 if remaining != 0u32 {
11903 if !first {
11904 f.write_str(" | ")?;
11905 }
11906 write!(f, "{:#x}", remaining)?;
11907 } else if first {
11908 f.write_str("(empty)")?;
11909 }
11910 Ok(())
11911 }
11912}
11913#[repr(transparent)]
11915#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
11916#[doc(alias = "VkInstanceCreateFlagBits")]
11917pub struct InstanceCreateFlagBits(u32);
11918impl InstanceCreateFlagBits {
11919 #[inline]
11920 pub const fn empty() -> Self {
11921 Self(0u32)
11922 }
11923 #[inline]
11924 pub const fn from_raw(value: u32) -> Self {
11925 Self(value)
11926 }
11927 #[inline]
11928 pub const fn as_raw(self) -> u32 {
11929 self.0
11930 }
11931 #[inline]
11932 pub const fn is_empty(self) -> bool {
11933 self.0 == 0u32
11934 }
11935 #[inline]
11936 pub const fn contains(self, other: Self) -> bool {
11937 (self.0 & other.0) == other.0
11938 }
11939 #[inline]
11940 pub const fn all() -> Self {
11941 Self(1u32)
11942 }
11943 pub const ENUMERATE_PORTABILITY: Self = Self(1u32);
11945}
11946impl core::ops::BitOr for InstanceCreateFlagBits {
11947 type Output = Self;
11948 #[inline]
11949 fn bitor(self, rhs: Self) -> Self {
11950 Self(self.0 | rhs.0)
11951 }
11952}
11953impl core::ops::BitOrAssign for InstanceCreateFlagBits {
11954 #[inline]
11955 fn bitor_assign(&mut self, rhs: Self) {
11956 self.0 |= rhs.0;
11957 }
11958}
11959impl core::ops::BitAnd for InstanceCreateFlagBits {
11960 type Output = Self;
11961 #[inline]
11962 fn bitand(self, rhs: Self) -> Self {
11963 Self(self.0 & rhs.0)
11964 }
11965}
11966impl core::ops::BitAndAssign for InstanceCreateFlagBits {
11967 #[inline]
11968 fn bitand_assign(&mut self, rhs: Self) {
11969 self.0 &= rhs.0;
11970 }
11971}
11972impl core::ops::BitXor for InstanceCreateFlagBits {
11973 type Output = Self;
11974 #[inline]
11975 fn bitxor(self, rhs: Self) -> Self {
11976 Self(self.0 ^ rhs.0)
11977 }
11978}
11979impl core::ops::BitXorAssign for InstanceCreateFlagBits {
11980 #[inline]
11981 fn bitxor_assign(&mut self, rhs: Self) {
11982 self.0 ^= rhs.0;
11983 }
11984}
11985impl core::ops::Not for InstanceCreateFlagBits {
11986 type Output = Self;
11987 #[inline]
11988 fn not(self) -> Self {
11989 Self(!self.0)
11990 }
11991}
11992impl core::fmt::Debug for InstanceCreateFlagBits {
11993 #[allow(unused_mut, unused_variables)]
11994 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11995 let mut first = true;
11996 let mut remaining = self.0;
11997 if remaining & Self::ENUMERATE_PORTABILITY.0 != 0 {
11998 if !first {
11999 f.write_str(" | ")?;
12000 }
12001 f.write_str("ENUMERATE_PORTABILITY")?;
12002 remaining &= !Self::ENUMERATE_PORTABILITY.0;
12003 first = false;
12004 }
12005 if remaining != 0u32 {
12006 if !first {
12007 f.write_str(" | ")?;
12008 }
12009 write!(f, "{:#x}", remaining)?;
12010 } else if first {
12011 f.write_str("(empty)")?;
12012 }
12013 Ok(())
12014 }
12015}
12016#[repr(transparent)]
12018#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12019#[doc(alias = "VkMemoryAllocateFlagBits")]
12020pub struct MemoryAllocateFlagBits(u32);
12021impl MemoryAllocateFlagBits {
12022 #[inline]
12023 pub const fn empty() -> Self {
12024 Self(0u32)
12025 }
12026 #[inline]
12027 pub const fn from_raw(value: u32) -> Self {
12028 Self(value)
12029 }
12030 #[inline]
12031 pub const fn as_raw(self) -> u32 {
12032 self.0
12033 }
12034 #[inline]
12035 pub const fn is_empty(self) -> bool {
12036 self.0 == 0u32
12037 }
12038 #[inline]
12039 pub const fn contains(self, other: Self) -> bool {
12040 (self.0 & other.0) == other.0
12041 }
12042 #[inline]
12043 pub const fn all() -> Self {
12044 Self(15u32)
12045 }
12046 pub const DEVICE_MASK: Self = Self(1u32);
12048 pub const DEVICE_ADDRESS: Self = Self(2u32);
12050 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(4u32);
12052 pub const ZERO_INITIALIZE: Self = Self(8u32);
12054}
12055impl core::ops::BitOr for MemoryAllocateFlagBits {
12056 type Output = Self;
12057 #[inline]
12058 fn bitor(self, rhs: Self) -> Self {
12059 Self(self.0 | rhs.0)
12060 }
12061}
12062impl core::ops::BitOrAssign for MemoryAllocateFlagBits {
12063 #[inline]
12064 fn bitor_assign(&mut self, rhs: Self) {
12065 self.0 |= rhs.0;
12066 }
12067}
12068impl core::ops::BitAnd for MemoryAllocateFlagBits {
12069 type Output = Self;
12070 #[inline]
12071 fn bitand(self, rhs: Self) -> Self {
12072 Self(self.0 & rhs.0)
12073 }
12074}
12075impl core::ops::BitAndAssign for MemoryAllocateFlagBits {
12076 #[inline]
12077 fn bitand_assign(&mut self, rhs: Self) {
12078 self.0 &= rhs.0;
12079 }
12080}
12081impl core::ops::BitXor for MemoryAllocateFlagBits {
12082 type Output = Self;
12083 #[inline]
12084 fn bitxor(self, rhs: Self) -> Self {
12085 Self(self.0 ^ rhs.0)
12086 }
12087}
12088impl core::ops::BitXorAssign for MemoryAllocateFlagBits {
12089 #[inline]
12090 fn bitxor_assign(&mut self, rhs: Self) {
12091 self.0 ^= rhs.0;
12092 }
12093}
12094impl core::ops::Not for MemoryAllocateFlagBits {
12095 type Output = Self;
12096 #[inline]
12097 fn not(self) -> Self {
12098 Self(!self.0)
12099 }
12100}
12101impl core::fmt::Debug for MemoryAllocateFlagBits {
12102 #[allow(unused_mut, unused_variables)]
12103 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12104 let mut first = true;
12105 let mut remaining = self.0;
12106 if remaining & Self::DEVICE_MASK.0 != 0 {
12107 if !first {
12108 f.write_str(" | ")?;
12109 }
12110 f.write_str("DEVICE_MASK")?;
12111 remaining &= !Self::DEVICE_MASK.0;
12112 first = false;
12113 }
12114 if remaining & Self::DEVICE_ADDRESS.0 != 0 {
12115 if !first {
12116 f.write_str(" | ")?;
12117 }
12118 f.write_str("DEVICE_ADDRESS")?;
12119 remaining &= !Self::DEVICE_ADDRESS.0;
12120 first = false;
12121 }
12122 if remaining & Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0 != 0 {
12123 if !first {
12124 f.write_str(" | ")?;
12125 }
12126 f.write_str("DEVICE_ADDRESS_CAPTURE_REPLAY")?;
12127 remaining &= !Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0;
12128 first = false;
12129 }
12130 if remaining & Self::ZERO_INITIALIZE.0 != 0 {
12131 if !first {
12132 f.write_str(" | ")?;
12133 }
12134 f.write_str("ZERO_INITIALIZE")?;
12135 remaining &= !Self::ZERO_INITIALIZE.0;
12136 first = false;
12137 }
12138 if remaining != 0u32 {
12139 if !first {
12140 f.write_str(" | ")?;
12141 }
12142 write!(f, "{:#x}", remaining)?;
12143 } else if first {
12144 f.write_str("(empty)")?;
12145 }
12146 Ok(())
12147 }
12148}
12149#[repr(transparent)]
12151#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12152#[doc(alias = "VkMemoryDecompressionMethodFlagBitsEXT")]
12153pub struct MemoryDecompressionMethodFlagBitsEXT(u64);
12154impl MemoryDecompressionMethodFlagBitsEXT {
12155 #[inline]
12156 pub const fn empty() -> Self {
12157 Self(0u64)
12158 }
12159 #[inline]
12160 pub const fn from_raw(value: u64) -> Self {
12161 Self(value)
12162 }
12163 #[inline]
12164 pub const fn as_raw(self) -> u64 {
12165 self.0
12166 }
12167 #[inline]
12168 pub const fn is_empty(self) -> bool {
12169 self.0 == 0u64
12170 }
12171 #[inline]
12172 pub const fn contains(self, other: Self) -> bool {
12173 (self.0 & other.0) == other.0
12174 }
12175 #[inline]
12176 pub const fn all() -> Self {
12177 Self(1u64)
12178 }
12179 pub const GDEFLATE_1_0: Self = Self(1u64);
12181}
12182impl core::ops::BitOr for MemoryDecompressionMethodFlagBitsEXT {
12183 type Output = Self;
12184 #[inline]
12185 fn bitor(self, rhs: Self) -> Self {
12186 Self(self.0 | rhs.0)
12187 }
12188}
12189impl core::ops::BitOrAssign for MemoryDecompressionMethodFlagBitsEXT {
12190 #[inline]
12191 fn bitor_assign(&mut self, rhs: Self) {
12192 self.0 |= rhs.0;
12193 }
12194}
12195impl core::ops::BitAnd for MemoryDecompressionMethodFlagBitsEXT {
12196 type Output = Self;
12197 #[inline]
12198 fn bitand(self, rhs: Self) -> Self {
12199 Self(self.0 & rhs.0)
12200 }
12201}
12202impl core::ops::BitAndAssign for MemoryDecompressionMethodFlagBitsEXT {
12203 #[inline]
12204 fn bitand_assign(&mut self, rhs: Self) {
12205 self.0 &= rhs.0;
12206 }
12207}
12208impl core::ops::BitXor for MemoryDecompressionMethodFlagBitsEXT {
12209 type Output = Self;
12210 #[inline]
12211 fn bitxor(self, rhs: Self) -> Self {
12212 Self(self.0 ^ rhs.0)
12213 }
12214}
12215impl core::ops::BitXorAssign for MemoryDecompressionMethodFlagBitsEXT {
12216 #[inline]
12217 fn bitxor_assign(&mut self, rhs: Self) {
12218 self.0 ^= rhs.0;
12219 }
12220}
12221impl core::ops::Not for MemoryDecompressionMethodFlagBitsEXT {
12222 type Output = Self;
12223 #[inline]
12224 fn not(self) -> Self {
12225 Self(!self.0)
12226 }
12227}
12228impl core::fmt::Debug for MemoryDecompressionMethodFlagBitsEXT {
12229 #[allow(unused_mut, unused_variables)]
12230 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12231 let mut first = true;
12232 let mut remaining = self.0;
12233 if remaining & Self::GDEFLATE_1_0.0 != 0 {
12234 if !first {
12235 f.write_str(" | ")?;
12236 }
12237 f.write_str("GDEFLATE_1_0")?;
12238 remaining &= !Self::GDEFLATE_1_0.0;
12239 first = false;
12240 }
12241 if remaining != 0u64 {
12242 if !first {
12243 f.write_str(" | ")?;
12244 }
12245 write!(f, "{:#x}", remaining)?;
12246 } else if first {
12247 f.write_str("(empty)")?;
12248 }
12249 Ok(())
12250 }
12251}
12252#[repr(transparent)]
12254#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12255#[doc(alias = "VkMemoryHeapFlagBits")]
12256pub struct MemoryHeapFlagBits(u32);
12257impl MemoryHeapFlagBits {
12258 #[inline]
12259 pub const fn empty() -> Self {
12260 Self(0u32)
12261 }
12262 #[inline]
12263 pub const fn from_raw(value: u32) -> Self {
12264 Self(value)
12265 }
12266 #[inline]
12267 pub const fn as_raw(self) -> u32 {
12268 self.0
12269 }
12270 #[inline]
12271 pub const fn is_empty(self) -> bool {
12272 self.0 == 0u32
12273 }
12274 #[inline]
12275 pub const fn contains(self, other: Self) -> bool {
12276 (self.0 & other.0) == other.0
12277 }
12278 #[inline]
12279 pub const fn all() -> Self {
12280 Self(15u32)
12281 }
12282 pub const DEVICE_LOCAL: Self = Self(1u32);
12284 pub const MULTI_INSTANCE: Self = Self(2u32);
12286 pub const SEU_SAFE: Self = Self(4u32);
12288 pub const TILE_MEMORY_BIT: Self = Self(8u32);
12290}
12291impl core::ops::BitOr for MemoryHeapFlagBits {
12292 type Output = Self;
12293 #[inline]
12294 fn bitor(self, rhs: Self) -> Self {
12295 Self(self.0 | rhs.0)
12296 }
12297}
12298impl core::ops::BitOrAssign for MemoryHeapFlagBits {
12299 #[inline]
12300 fn bitor_assign(&mut self, rhs: Self) {
12301 self.0 |= rhs.0;
12302 }
12303}
12304impl core::ops::BitAnd for MemoryHeapFlagBits {
12305 type Output = Self;
12306 #[inline]
12307 fn bitand(self, rhs: Self) -> Self {
12308 Self(self.0 & rhs.0)
12309 }
12310}
12311impl core::ops::BitAndAssign for MemoryHeapFlagBits {
12312 #[inline]
12313 fn bitand_assign(&mut self, rhs: Self) {
12314 self.0 &= rhs.0;
12315 }
12316}
12317impl core::ops::BitXor for MemoryHeapFlagBits {
12318 type Output = Self;
12319 #[inline]
12320 fn bitxor(self, rhs: Self) -> Self {
12321 Self(self.0 ^ rhs.0)
12322 }
12323}
12324impl core::ops::BitXorAssign for MemoryHeapFlagBits {
12325 #[inline]
12326 fn bitxor_assign(&mut self, rhs: Self) {
12327 self.0 ^= rhs.0;
12328 }
12329}
12330impl core::ops::Not for MemoryHeapFlagBits {
12331 type Output = Self;
12332 #[inline]
12333 fn not(self) -> Self {
12334 Self(!self.0)
12335 }
12336}
12337impl core::fmt::Debug for MemoryHeapFlagBits {
12338 #[allow(unused_mut, unused_variables)]
12339 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12340 let mut first = true;
12341 let mut remaining = self.0;
12342 if remaining & Self::DEVICE_LOCAL.0 != 0 {
12343 if !first {
12344 f.write_str(" | ")?;
12345 }
12346 f.write_str("DEVICE_LOCAL")?;
12347 remaining &= !Self::DEVICE_LOCAL.0;
12348 first = false;
12349 }
12350 if remaining & Self::MULTI_INSTANCE.0 != 0 {
12351 if !first {
12352 f.write_str(" | ")?;
12353 }
12354 f.write_str("MULTI_INSTANCE")?;
12355 remaining &= !Self::MULTI_INSTANCE.0;
12356 first = false;
12357 }
12358 if remaining & Self::SEU_SAFE.0 != 0 {
12359 if !first {
12360 f.write_str(" | ")?;
12361 }
12362 f.write_str("SEU_SAFE")?;
12363 remaining &= !Self::SEU_SAFE.0;
12364 first = false;
12365 }
12366 if remaining & Self::TILE_MEMORY_BIT.0 != 0 {
12367 if !first {
12368 f.write_str(" | ")?;
12369 }
12370 f.write_str("TILE_MEMORY_BIT")?;
12371 remaining &= !Self::TILE_MEMORY_BIT.0;
12372 first = false;
12373 }
12374 if remaining != 0u32 {
12375 if !first {
12376 f.write_str(" | ")?;
12377 }
12378 write!(f, "{:#x}", remaining)?;
12379 } else if first {
12380 f.write_str("(empty)")?;
12381 }
12382 Ok(())
12383 }
12384}
12385#[repr(transparent)]
12387#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12388#[doc(alias = "VkMemoryMapFlagBits")]
12389pub struct MemoryMapFlagBits(u32);
12390impl MemoryMapFlagBits {
12391 #[inline]
12392 pub const fn empty() -> Self {
12393 Self(0u32)
12394 }
12395 #[inline]
12396 pub const fn from_raw(value: u32) -> Self {
12397 Self(value)
12398 }
12399 #[inline]
12400 pub const fn as_raw(self) -> u32 {
12401 self.0
12402 }
12403 #[inline]
12404 pub const fn is_empty(self) -> bool {
12405 self.0 == 0u32
12406 }
12407 #[inline]
12408 pub const fn contains(self, other: Self) -> bool {
12409 (self.0 & other.0) == other.0
12410 }
12411 #[inline]
12412 pub const fn all() -> Self {
12413 Self(1u32)
12414 }
12415 pub const PLACED: Self = Self(1u32);
12417}
12418impl core::ops::BitOr for MemoryMapFlagBits {
12419 type Output = Self;
12420 #[inline]
12421 fn bitor(self, rhs: Self) -> Self {
12422 Self(self.0 | rhs.0)
12423 }
12424}
12425impl core::ops::BitOrAssign for MemoryMapFlagBits {
12426 #[inline]
12427 fn bitor_assign(&mut self, rhs: Self) {
12428 self.0 |= rhs.0;
12429 }
12430}
12431impl core::ops::BitAnd for MemoryMapFlagBits {
12432 type Output = Self;
12433 #[inline]
12434 fn bitand(self, rhs: Self) -> Self {
12435 Self(self.0 & rhs.0)
12436 }
12437}
12438impl core::ops::BitAndAssign for MemoryMapFlagBits {
12439 #[inline]
12440 fn bitand_assign(&mut self, rhs: Self) {
12441 self.0 &= rhs.0;
12442 }
12443}
12444impl core::ops::BitXor for MemoryMapFlagBits {
12445 type Output = Self;
12446 #[inline]
12447 fn bitxor(self, rhs: Self) -> Self {
12448 Self(self.0 ^ rhs.0)
12449 }
12450}
12451impl core::ops::BitXorAssign for MemoryMapFlagBits {
12452 #[inline]
12453 fn bitxor_assign(&mut self, rhs: Self) {
12454 self.0 ^= rhs.0;
12455 }
12456}
12457impl core::ops::Not for MemoryMapFlagBits {
12458 type Output = Self;
12459 #[inline]
12460 fn not(self) -> Self {
12461 Self(!self.0)
12462 }
12463}
12464impl core::fmt::Debug for MemoryMapFlagBits {
12465 #[allow(unused_mut, unused_variables)]
12466 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12467 let mut first = true;
12468 let mut remaining = self.0;
12469 if remaining & Self::PLACED.0 != 0 {
12470 if !first {
12471 f.write_str(" | ")?;
12472 }
12473 f.write_str("PLACED")?;
12474 remaining &= !Self::PLACED.0;
12475 first = false;
12476 }
12477 if remaining != 0u32 {
12478 if !first {
12479 f.write_str(" | ")?;
12480 }
12481 write!(f, "{:#x}", remaining)?;
12482 } else if first {
12483 f.write_str("(empty)")?;
12484 }
12485 Ok(())
12486 }
12487}
12488#[repr(transparent)]
12490#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12491#[doc(alias = "VkMemoryPropertyFlagBits")]
12492pub struct MemoryPropertyFlagBits(u32);
12493impl MemoryPropertyFlagBits {
12494 #[inline]
12495 pub const fn empty() -> Self {
12496 Self(0u32)
12497 }
12498 #[inline]
12499 pub const fn from_raw(value: u32) -> Self {
12500 Self(value)
12501 }
12502 #[inline]
12503 pub const fn as_raw(self) -> u32 {
12504 self.0
12505 }
12506 #[inline]
12507 pub const fn is_empty(self) -> bool {
12508 self.0 == 0u32
12509 }
12510 #[inline]
12511 pub const fn contains(self, other: Self) -> bool {
12512 (self.0 & other.0) == other.0
12513 }
12514 #[inline]
12515 pub const fn all() -> Self {
12516 Self(511u32)
12517 }
12518 pub const DEVICE_LOCAL: Self = Self(1u32);
12520 pub const HOST_VISIBLE: Self = Self(2u32);
12522 pub const HOST_COHERENT: Self = Self(4u32);
12524 pub const HOST_CACHED: Self = Self(8u32);
12526 pub const LAZILY_ALLOCATED: Self = Self(16u32);
12528 pub const PROTECTED: Self = Self(32u32);
12530 pub const DEVICE_COHERENT: Self = Self(64u32);
12532 pub const DEVICE_UNCACHED: Self = Self(128u32);
12534 pub const RDMA_CAPABLE: Self = Self(256u32);
12536}
12537impl core::ops::BitOr for MemoryPropertyFlagBits {
12538 type Output = Self;
12539 #[inline]
12540 fn bitor(self, rhs: Self) -> Self {
12541 Self(self.0 | rhs.0)
12542 }
12543}
12544impl core::ops::BitOrAssign for MemoryPropertyFlagBits {
12545 #[inline]
12546 fn bitor_assign(&mut self, rhs: Self) {
12547 self.0 |= rhs.0;
12548 }
12549}
12550impl core::ops::BitAnd for MemoryPropertyFlagBits {
12551 type Output = Self;
12552 #[inline]
12553 fn bitand(self, rhs: Self) -> Self {
12554 Self(self.0 & rhs.0)
12555 }
12556}
12557impl core::ops::BitAndAssign for MemoryPropertyFlagBits {
12558 #[inline]
12559 fn bitand_assign(&mut self, rhs: Self) {
12560 self.0 &= rhs.0;
12561 }
12562}
12563impl core::ops::BitXor for MemoryPropertyFlagBits {
12564 type Output = Self;
12565 #[inline]
12566 fn bitxor(self, rhs: Self) -> Self {
12567 Self(self.0 ^ rhs.0)
12568 }
12569}
12570impl core::ops::BitXorAssign for MemoryPropertyFlagBits {
12571 #[inline]
12572 fn bitxor_assign(&mut self, rhs: Self) {
12573 self.0 ^= rhs.0;
12574 }
12575}
12576impl core::ops::Not for MemoryPropertyFlagBits {
12577 type Output = Self;
12578 #[inline]
12579 fn not(self) -> Self {
12580 Self(!self.0)
12581 }
12582}
12583impl core::fmt::Debug for MemoryPropertyFlagBits {
12584 #[allow(unused_mut, unused_variables)]
12585 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12586 let mut first = true;
12587 let mut remaining = self.0;
12588 if remaining & Self::DEVICE_LOCAL.0 != 0 {
12589 if !first {
12590 f.write_str(" | ")?;
12591 }
12592 f.write_str("DEVICE_LOCAL")?;
12593 remaining &= !Self::DEVICE_LOCAL.0;
12594 first = false;
12595 }
12596 if remaining & Self::HOST_VISIBLE.0 != 0 {
12597 if !first {
12598 f.write_str(" | ")?;
12599 }
12600 f.write_str("HOST_VISIBLE")?;
12601 remaining &= !Self::HOST_VISIBLE.0;
12602 first = false;
12603 }
12604 if remaining & Self::HOST_COHERENT.0 != 0 {
12605 if !first {
12606 f.write_str(" | ")?;
12607 }
12608 f.write_str("HOST_COHERENT")?;
12609 remaining &= !Self::HOST_COHERENT.0;
12610 first = false;
12611 }
12612 if remaining & Self::HOST_CACHED.0 != 0 {
12613 if !first {
12614 f.write_str(" | ")?;
12615 }
12616 f.write_str("HOST_CACHED")?;
12617 remaining &= !Self::HOST_CACHED.0;
12618 first = false;
12619 }
12620 if remaining & Self::LAZILY_ALLOCATED.0 != 0 {
12621 if !first {
12622 f.write_str(" | ")?;
12623 }
12624 f.write_str("LAZILY_ALLOCATED")?;
12625 remaining &= !Self::LAZILY_ALLOCATED.0;
12626 first = false;
12627 }
12628 if remaining & Self::PROTECTED.0 != 0 {
12629 if !first {
12630 f.write_str(" | ")?;
12631 }
12632 f.write_str("PROTECTED")?;
12633 remaining &= !Self::PROTECTED.0;
12634 first = false;
12635 }
12636 if remaining & Self::DEVICE_COHERENT.0 != 0 {
12637 if !first {
12638 f.write_str(" | ")?;
12639 }
12640 f.write_str("DEVICE_COHERENT")?;
12641 remaining &= !Self::DEVICE_COHERENT.0;
12642 first = false;
12643 }
12644 if remaining & Self::DEVICE_UNCACHED.0 != 0 {
12645 if !first {
12646 f.write_str(" | ")?;
12647 }
12648 f.write_str("DEVICE_UNCACHED")?;
12649 remaining &= !Self::DEVICE_UNCACHED.0;
12650 first = false;
12651 }
12652 if remaining & Self::RDMA_CAPABLE.0 != 0 {
12653 if !first {
12654 f.write_str(" | ")?;
12655 }
12656 f.write_str("RDMA_CAPABLE")?;
12657 remaining &= !Self::RDMA_CAPABLE.0;
12658 first = false;
12659 }
12660 if remaining != 0u32 {
12661 if !first {
12662 f.write_str(" | ")?;
12663 }
12664 write!(f, "{:#x}", remaining)?;
12665 } else if first {
12666 f.write_str("(empty)")?;
12667 }
12668 Ok(())
12669 }
12670}
12671#[repr(transparent)]
12673#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12674#[doc(alias = "VkMemoryUnmapFlagBits")]
12675pub struct MemoryUnmapFlagBits(u32);
12676impl MemoryUnmapFlagBits {
12677 #[inline]
12678 pub const fn empty() -> Self {
12679 Self(0u32)
12680 }
12681 #[inline]
12682 pub const fn from_raw(value: u32) -> Self {
12683 Self(value)
12684 }
12685 #[inline]
12686 pub const fn as_raw(self) -> u32 {
12687 self.0
12688 }
12689 #[inline]
12690 pub const fn is_empty(self) -> bool {
12691 self.0 == 0u32
12692 }
12693 #[inline]
12694 pub const fn contains(self, other: Self) -> bool {
12695 (self.0 & other.0) == other.0
12696 }
12697 #[inline]
12698 pub const fn all() -> Self {
12699 Self(1u32)
12700 }
12701 pub const RESERVE: Self = Self(1u32);
12703}
12704impl core::ops::BitOr for MemoryUnmapFlagBits {
12705 type Output = Self;
12706 #[inline]
12707 fn bitor(self, rhs: Self) -> Self {
12708 Self(self.0 | rhs.0)
12709 }
12710}
12711impl core::ops::BitOrAssign for MemoryUnmapFlagBits {
12712 #[inline]
12713 fn bitor_assign(&mut self, rhs: Self) {
12714 self.0 |= rhs.0;
12715 }
12716}
12717impl core::ops::BitAnd for MemoryUnmapFlagBits {
12718 type Output = Self;
12719 #[inline]
12720 fn bitand(self, rhs: Self) -> Self {
12721 Self(self.0 & rhs.0)
12722 }
12723}
12724impl core::ops::BitAndAssign for MemoryUnmapFlagBits {
12725 #[inline]
12726 fn bitand_assign(&mut self, rhs: Self) {
12727 self.0 &= rhs.0;
12728 }
12729}
12730impl core::ops::BitXor for MemoryUnmapFlagBits {
12731 type Output = Self;
12732 #[inline]
12733 fn bitxor(self, rhs: Self) -> Self {
12734 Self(self.0 ^ rhs.0)
12735 }
12736}
12737impl core::ops::BitXorAssign for MemoryUnmapFlagBits {
12738 #[inline]
12739 fn bitxor_assign(&mut self, rhs: Self) {
12740 self.0 ^= rhs.0;
12741 }
12742}
12743impl core::ops::Not for MemoryUnmapFlagBits {
12744 type Output = Self;
12745 #[inline]
12746 fn not(self) -> Self {
12747 Self(!self.0)
12748 }
12749}
12750impl core::fmt::Debug for MemoryUnmapFlagBits {
12751 #[allow(unused_mut, unused_variables)]
12752 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12753 let mut first = true;
12754 let mut remaining = self.0;
12755 if remaining & Self::RESERVE.0 != 0 {
12756 if !first {
12757 f.write_str(" | ")?;
12758 }
12759 f.write_str("RESERVE")?;
12760 remaining &= !Self::RESERVE.0;
12761 first = false;
12762 }
12763 if remaining != 0u32 {
12764 if !first {
12765 f.write_str(" | ")?;
12766 }
12767 write!(f, "{:#x}", remaining)?;
12768 } else if first {
12769 f.write_str("(empty)")?;
12770 }
12771 Ok(())
12772 }
12773}
12774#[repr(transparent)]
12776#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12777#[doc(alias = "VkMicromapCreateFlagBitsEXT")]
12778pub struct MicromapCreateFlagBitsEXT(u32);
12779impl MicromapCreateFlagBitsEXT {
12780 #[inline]
12781 pub const fn empty() -> Self {
12782 Self(0u32)
12783 }
12784 #[inline]
12785 pub const fn from_raw(value: u32) -> Self {
12786 Self(value)
12787 }
12788 #[inline]
12789 pub const fn as_raw(self) -> u32 {
12790 self.0
12791 }
12792 #[inline]
12793 pub const fn is_empty(self) -> bool {
12794 self.0 == 0u32
12795 }
12796 #[inline]
12797 pub const fn contains(self, other: Self) -> bool {
12798 (self.0 & other.0) == other.0
12799 }
12800 #[inline]
12801 pub const fn all() -> Self {
12802 Self(1u32)
12803 }
12804 pub const DEVICE_ADDRESS_CAPTURE_REPLAY: Self = Self(1u32);
12806}
12807impl core::ops::BitOr for MicromapCreateFlagBitsEXT {
12808 type Output = Self;
12809 #[inline]
12810 fn bitor(self, rhs: Self) -> Self {
12811 Self(self.0 | rhs.0)
12812 }
12813}
12814impl core::ops::BitOrAssign for MicromapCreateFlagBitsEXT {
12815 #[inline]
12816 fn bitor_assign(&mut self, rhs: Self) {
12817 self.0 |= rhs.0;
12818 }
12819}
12820impl core::ops::BitAnd for MicromapCreateFlagBitsEXT {
12821 type Output = Self;
12822 #[inline]
12823 fn bitand(self, rhs: Self) -> Self {
12824 Self(self.0 & rhs.0)
12825 }
12826}
12827impl core::ops::BitAndAssign for MicromapCreateFlagBitsEXT {
12828 #[inline]
12829 fn bitand_assign(&mut self, rhs: Self) {
12830 self.0 &= rhs.0;
12831 }
12832}
12833impl core::ops::BitXor for MicromapCreateFlagBitsEXT {
12834 type Output = Self;
12835 #[inline]
12836 fn bitxor(self, rhs: Self) -> Self {
12837 Self(self.0 ^ rhs.0)
12838 }
12839}
12840impl core::ops::BitXorAssign for MicromapCreateFlagBitsEXT {
12841 #[inline]
12842 fn bitxor_assign(&mut self, rhs: Self) {
12843 self.0 ^= rhs.0;
12844 }
12845}
12846impl core::ops::Not for MicromapCreateFlagBitsEXT {
12847 type Output = Self;
12848 #[inline]
12849 fn not(self) -> Self {
12850 Self(!self.0)
12851 }
12852}
12853impl core::fmt::Debug for MicromapCreateFlagBitsEXT {
12854 #[allow(unused_mut, unused_variables)]
12855 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12856 let mut first = true;
12857 let mut remaining = self.0;
12858 if remaining & Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0 != 0 {
12859 if !first {
12860 f.write_str(" | ")?;
12861 }
12862 f.write_str("DEVICE_ADDRESS_CAPTURE_REPLAY")?;
12863 remaining &= !Self::DEVICE_ADDRESS_CAPTURE_REPLAY.0;
12864 first = false;
12865 }
12866 if remaining != 0u32 {
12867 if !first {
12868 f.write_str(" | ")?;
12869 }
12870 write!(f, "{:#x}", remaining)?;
12871 } else if first {
12872 f.write_str("(empty)")?;
12873 }
12874 Ok(())
12875 }
12876}
12877#[repr(transparent)]
12879#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12880#[doc(alias = "VkOpticalFlowExecuteFlagBitsNV")]
12881pub struct OpticalFlowExecuteFlagBitsNV(u32);
12882impl OpticalFlowExecuteFlagBitsNV {
12883 #[inline]
12884 pub const fn empty() -> Self {
12885 Self(0u32)
12886 }
12887 #[inline]
12888 pub const fn from_raw(value: u32) -> Self {
12889 Self(value)
12890 }
12891 #[inline]
12892 pub const fn as_raw(self) -> u32 {
12893 self.0
12894 }
12895 #[inline]
12896 pub const fn is_empty(self) -> bool {
12897 self.0 == 0u32
12898 }
12899 #[inline]
12900 pub const fn contains(self, other: Self) -> bool {
12901 (self.0 & other.0) == other.0
12902 }
12903 #[inline]
12904 pub const fn all() -> Self {
12905 Self(1u32)
12906 }
12907 pub const DISABLE_TEMPORAL_HINTS: Self = Self(1u32);
12909}
12910impl core::ops::BitOr for OpticalFlowExecuteFlagBitsNV {
12911 type Output = Self;
12912 #[inline]
12913 fn bitor(self, rhs: Self) -> Self {
12914 Self(self.0 | rhs.0)
12915 }
12916}
12917impl core::ops::BitOrAssign for OpticalFlowExecuteFlagBitsNV {
12918 #[inline]
12919 fn bitor_assign(&mut self, rhs: Self) {
12920 self.0 |= rhs.0;
12921 }
12922}
12923impl core::ops::BitAnd for OpticalFlowExecuteFlagBitsNV {
12924 type Output = Self;
12925 #[inline]
12926 fn bitand(self, rhs: Self) -> Self {
12927 Self(self.0 & rhs.0)
12928 }
12929}
12930impl core::ops::BitAndAssign for OpticalFlowExecuteFlagBitsNV {
12931 #[inline]
12932 fn bitand_assign(&mut self, rhs: Self) {
12933 self.0 &= rhs.0;
12934 }
12935}
12936impl core::ops::BitXor for OpticalFlowExecuteFlagBitsNV {
12937 type Output = Self;
12938 #[inline]
12939 fn bitxor(self, rhs: Self) -> Self {
12940 Self(self.0 ^ rhs.0)
12941 }
12942}
12943impl core::ops::BitXorAssign for OpticalFlowExecuteFlagBitsNV {
12944 #[inline]
12945 fn bitxor_assign(&mut self, rhs: Self) {
12946 self.0 ^= rhs.0;
12947 }
12948}
12949impl core::ops::Not for OpticalFlowExecuteFlagBitsNV {
12950 type Output = Self;
12951 #[inline]
12952 fn not(self) -> Self {
12953 Self(!self.0)
12954 }
12955}
12956impl core::fmt::Debug for OpticalFlowExecuteFlagBitsNV {
12957 #[allow(unused_mut, unused_variables)]
12958 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
12959 let mut first = true;
12960 let mut remaining = self.0;
12961 if remaining & Self::DISABLE_TEMPORAL_HINTS.0 != 0 {
12962 if !first {
12963 f.write_str(" | ")?;
12964 }
12965 f.write_str("DISABLE_TEMPORAL_HINTS")?;
12966 remaining &= !Self::DISABLE_TEMPORAL_HINTS.0;
12967 first = false;
12968 }
12969 if remaining != 0u32 {
12970 if !first {
12971 f.write_str(" | ")?;
12972 }
12973 write!(f, "{:#x}", remaining)?;
12974 } else if first {
12975 f.write_str("(empty)")?;
12976 }
12977 Ok(())
12978 }
12979}
12980#[repr(transparent)]
12982#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
12983#[doc(alias = "VkOpticalFlowGridSizeFlagBitsNV")]
12984pub struct OpticalFlowGridSizeFlagBitsNV(u32);
12985impl OpticalFlowGridSizeFlagBitsNV {
12986 #[inline]
12987 pub const fn empty() -> Self {
12988 Self(0u32)
12989 }
12990 #[inline]
12991 pub const fn from_raw(value: u32) -> Self {
12992 Self(value)
12993 }
12994 #[inline]
12995 pub const fn as_raw(self) -> u32 {
12996 self.0
12997 }
12998 #[inline]
12999 pub const fn is_empty(self) -> bool {
13000 self.0 == 0u32
13001 }
13002 #[inline]
13003 pub const fn contains(self, other: Self) -> bool {
13004 (self.0 & other.0) == other.0
13005 }
13006 #[inline]
13007 pub const fn all() -> Self {
13008 Self(15u32)
13009 }
13010 pub const UNKNOWN: Self = Self(0u32);
13011 pub const _1X1: Self = Self(1u32);
13013 pub const _2X2: Self = Self(2u32);
13015 pub const _4X4: Self = Self(4u32);
13017 pub const _8X8: Self = Self(8u32);
13019}
13020impl core::ops::BitOr for OpticalFlowGridSizeFlagBitsNV {
13021 type Output = Self;
13022 #[inline]
13023 fn bitor(self, rhs: Self) -> Self {
13024 Self(self.0 | rhs.0)
13025 }
13026}
13027impl core::ops::BitOrAssign for OpticalFlowGridSizeFlagBitsNV {
13028 #[inline]
13029 fn bitor_assign(&mut self, rhs: Self) {
13030 self.0 |= rhs.0;
13031 }
13032}
13033impl core::ops::BitAnd for OpticalFlowGridSizeFlagBitsNV {
13034 type Output = Self;
13035 #[inline]
13036 fn bitand(self, rhs: Self) -> Self {
13037 Self(self.0 & rhs.0)
13038 }
13039}
13040impl core::ops::BitAndAssign for OpticalFlowGridSizeFlagBitsNV {
13041 #[inline]
13042 fn bitand_assign(&mut self, rhs: Self) {
13043 self.0 &= rhs.0;
13044 }
13045}
13046impl core::ops::BitXor for OpticalFlowGridSizeFlagBitsNV {
13047 type Output = Self;
13048 #[inline]
13049 fn bitxor(self, rhs: Self) -> Self {
13050 Self(self.0 ^ rhs.0)
13051 }
13052}
13053impl core::ops::BitXorAssign for OpticalFlowGridSizeFlagBitsNV {
13054 #[inline]
13055 fn bitxor_assign(&mut self, rhs: Self) {
13056 self.0 ^= rhs.0;
13057 }
13058}
13059impl core::ops::Not for OpticalFlowGridSizeFlagBitsNV {
13060 type Output = Self;
13061 #[inline]
13062 fn not(self) -> Self {
13063 Self(!self.0)
13064 }
13065}
13066impl core::fmt::Debug for OpticalFlowGridSizeFlagBitsNV {
13067 #[allow(unused_mut, unused_variables)]
13068 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13069 let mut first = true;
13070 let mut remaining = self.0;
13071 if remaining & Self::_1X1.0 != 0 {
13072 if !first {
13073 f.write_str(" | ")?;
13074 }
13075 f.write_str("_1X1")?;
13076 remaining &= !Self::_1X1.0;
13077 first = false;
13078 }
13079 if remaining & Self::_2X2.0 != 0 {
13080 if !first {
13081 f.write_str(" | ")?;
13082 }
13083 f.write_str("_2X2")?;
13084 remaining &= !Self::_2X2.0;
13085 first = false;
13086 }
13087 if remaining & Self::_4X4.0 != 0 {
13088 if !first {
13089 f.write_str(" | ")?;
13090 }
13091 f.write_str("_4X4")?;
13092 remaining &= !Self::_4X4.0;
13093 first = false;
13094 }
13095 if remaining & Self::_8X8.0 != 0 {
13096 if !first {
13097 f.write_str(" | ")?;
13098 }
13099 f.write_str("_8X8")?;
13100 remaining &= !Self::_8X8.0;
13101 first = false;
13102 }
13103 if remaining != 0u32 {
13104 if !first {
13105 f.write_str(" | ")?;
13106 }
13107 write!(f, "{:#x}", remaining)?;
13108 } else if first {
13109 f.write_str("(empty)")?;
13110 }
13111 Ok(())
13112 }
13113}
13114#[repr(transparent)]
13116#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13117#[doc(alias = "VkOpticalFlowSessionCreateFlagBitsNV")]
13118pub struct OpticalFlowSessionCreateFlagBitsNV(u32);
13119impl OpticalFlowSessionCreateFlagBitsNV {
13120 #[inline]
13121 pub const fn empty() -> Self {
13122 Self(0u32)
13123 }
13124 #[inline]
13125 pub const fn from_raw(value: u32) -> Self {
13126 Self(value)
13127 }
13128 #[inline]
13129 pub const fn as_raw(self) -> u32 {
13130 self.0
13131 }
13132 #[inline]
13133 pub const fn is_empty(self) -> bool {
13134 self.0 == 0u32
13135 }
13136 #[inline]
13137 pub const fn contains(self, other: Self) -> bool {
13138 (self.0 & other.0) == other.0
13139 }
13140 #[inline]
13141 pub const fn all() -> Self {
13142 Self(31u32)
13143 }
13144 pub const ENABLE_HINT: Self = Self(1u32);
13146 pub const ENABLE_COST: Self = Self(2u32);
13148 pub const ENABLE_GLOBAL_FLOW: Self = Self(4u32);
13150 pub const ALLOW_REGIONS: Self = Self(8u32);
13152 pub const BOTH_DIRECTIONS: Self = Self(16u32);
13154}
13155impl core::ops::BitOr for OpticalFlowSessionCreateFlagBitsNV {
13156 type Output = Self;
13157 #[inline]
13158 fn bitor(self, rhs: Self) -> Self {
13159 Self(self.0 | rhs.0)
13160 }
13161}
13162impl core::ops::BitOrAssign for OpticalFlowSessionCreateFlagBitsNV {
13163 #[inline]
13164 fn bitor_assign(&mut self, rhs: Self) {
13165 self.0 |= rhs.0;
13166 }
13167}
13168impl core::ops::BitAnd for OpticalFlowSessionCreateFlagBitsNV {
13169 type Output = Self;
13170 #[inline]
13171 fn bitand(self, rhs: Self) -> Self {
13172 Self(self.0 & rhs.0)
13173 }
13174}
13175impl core::ops::BitAndAssign for OpticalFlowSessionCreateFlagBitsNV {
13176 #[inline]
13177 fn bitand_assign(&mut self, rhs: Self) {
13178 self.0 &= rhs.0;
13179 }
13180}
13181impl core::ops::BitXor for OpticalFlowSessionCreateFlagBitsNV {
13182 type Output = Self;
13183 #[inline]
13184 fn bitxor(self, rhs: Self) -> Self {
13185 Self(self.0 ^ rhs.0)
13186 }
13187}
13188impl core::ops::BitXorAssign for OpticalFlowSessionCreateFlagBitsNV {
13189 #[inline]
13190 fn bitxor_assign(&mut self, rhs: Self) {
13191 self.0 ^= rhs.0;
13192 }
13193}
13194impl core::ops::Not for OpticalFlowSessionCreateFlagBitsNV {
13195 type Output = Self;
13196 #[inline]
13197 fn not(self) -> Self {
13198 Self(!self.0)
13199 }
13200}
13201impl core::fmt::Debug for OpticalFlowSessionCreateFlagBitsNV {
13202 #[allow(unused_mut, unused_variables)]
13203 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13204 let mut first = true;
13205 let mut remaining = self.0;
13206 if remaining & Self::ENABLE_HINT.0 != 0 {
13207 if !first {
13208 f.write_str(" | ")?;
13209 }
13210 f.write_str("ENABLE_HINT")?;
13211 remaining &= !Self::ENABLE_HINT.0;
13212 first = false;
13213 }
13214 if remaining & Self::ENABLE_COST.0 != 0 {
13215 if !first {
13216 f.write_str(" | ")?;
13217 }
13218 f.write_str("ENABLE_COST")?;
13219 remaining &= !Self::ENABLE_COST.0;
13220 first = false;
13221 }
13222 if remaining & Self::ENABLE_GLOBAL_FLOW.0 != 0 {
13223 if !first {
13224 f.write_str(" | ")?;
13225 }
13226 f.write_str("ENABLE_GLOBAL_FLOW")?;
13227 remaining &= !Self::ENABLE_GLOBAL_FLOW.0;
13228 first = false;
13229 }
13230 if remaining & Self::ALLOW_REGIONS.0 != 0 {
13231 if !first {
13232 f.write_str(" | ")?;
13233 }
13234 f.write_str("ALLOW_REGIONS")?;
13235 remaining &= !Self::ALLOW_REGIONS.0;
13236 first = false;
13237 }
13238 if remaining & Self::BOTH_DIRECTIONS.0 != 0 {
13239 if !first {
13240 f.write_str(" | ")?;
13241 }
13242 f.write_str("BOTH_DIRECTIONS")?;
13243 remaining &= !Self::BOTH_DIRECTIONS.0;
13244 first = false;
13245 }
13246 if remaining != 0u32 {
13247 if !first {
13248 f.write_str(" | ")?;
13249 }
13250 write!(f, "{:#x}", remaining)?;
13251 } else if first {
13252 f.write_str("(empty)")?;
13253 }
13254 Ok(())
13255 }
13256}
13257#[repr(transparent)]
13259#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13260#[doc(alias = "VkOpticalFlowUsageFlagBitsNV")]
13261pub struct OpticalFlowUsageFlagBitsNV(u32);
13262impl OpticalFlowUsageFlagBitsNV {
13263 #[inline]
13264 pub const fn empty() -> Self {
13265 Self(0u32)
13266 }
13267 #[inline]
13268 pub const fn from_raw(value: u32) -> Self {
13269 Self(value)
13270 }
13271 #[inline]
13272 pub const fn as_raw(self) -> u32 {
13273 self.0
13274 }
13275 #[inline]
13276 pub const fn is_empty(self) -> bool {
13277 self.0 == 0u32
13278 }
13279 #[inline]
13280 pub const fn contains(self, other: Self) -> bool {
13281 (self.0 & other.0) == other.0
13282 }
13283 #[inline]
13284 pub const fn all() -> Self {
13285 Self(31u32)
13286 }
13287 pub const UNKNOWN: Self = Self(0u32);
13288 pub const INPUT: Self = Self(1u32);
13290 pub const OUTPUT: Self = Self(2u32);
13292 pub const HINT: Self = Self(4u32);
13294 pub const COST: Self = Self(8u32);
13296 pub const GLOBAL_FLOW: Self = Self(16u32);
13298}
13299impl core::ops::BitOr for OpticalFlowUsageFlagBitsNV {
13300 type Output = Self;
13301 #[inline]
13302 fn bitor(self, rhs: Self) -> Self {
13303 Self(self.0 | rhs.0)
13304 }
13305}
13306impl core::ops::BitOrAssign for OpticalFlowUsageFlagBitsNV {
13307 #[inline]
13308 fn bitor_assign(&mut self, rhs: Self) {
13309 self.0 |= rhs.0;
13310 }
13311}
13312impl core::ops::BitAnd for OpticalFlowUsageFlagBitsNV {
13313 type Output = Self;
13314 #[inline]
13315 fn bitand(self, rhs: Self) -> Self {
13316 Self(self.0 & rhs.0)
13317 }
13318}
13319impl core::ops::BitAndAssign for OpticalFlowUsageFlagBitsNV {
13320 #[inline]
13321 fn bitand_assign(&mut self, rhs: Self) {
13322 self.0 &= rhs.0;
13323 }
13324}
13325impl core::ops::BitXor for OpticalFlowUsageFlagBitsNV {
13326 type Output = Self;
13327 #[inline]
13328 fn bitxor(self, rhs: Self) -> Self {
13329 Self(self.0 ^ rhs.0)
13330 }
13331}
13332impl core::ops::BitXorAssign for OpticalFlowUsageFlagBitsNV {
13333 #[inline]
13334 fn bitxor_assign(&mut self, rhs: Self) {
13335 self.0 ^= rhs.0;
13336 }
13337}
13338impl core::ops::Not for OpticalFlowUsageFlagBitsNV {
13339 type Output = Self;
13340 #[inline]
13341 fn not(self) -> Self {
13342 Self(!self.0)
13343 }
13344}
13345impl core::fmt::Debug for OpticalFlowUsageFlagBitsNV {
13346 #[allow(unused_mut, unused_variables)]
13347 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13348 let mut first = true;
13349 let mut remaining = self.0;
13350 if remaining & Self::INPUT.0 != 0 {
13351 if !first {
13352 f.write_str(" | ")?;
13353 }
13354 f.write_str("INPUT")?;
13355 remaining &= !Self::INPUT.0;
13356 first = false;
13357 }
13358 if remaining & Self::OUTPUT.0 != 0 {
13359 if !first {
13360 f.write_str(" | ")?;
13361 }
13362 f.write_str("OUTPUT")?;
13363 remaining &= !Self::OUTPUT.0;
13364 first = false;
13365 }
13366 if remaining & Self::HINT.0 != 0 {
13367 if !first {
13368 f.write_str(" | ")?;
13369 }
13370 f.write_str("HINT")?;
13371 remaining &= !Self::HINT.0;
13372 first = false;
13373 }
13374 if remaining & Self::COST.0 != 0 {
13375 if !first {
13376 f.write_str(" | ")?;
13377 }
13378 f.write_str("COST")?;
13379 remaining &= !Self::COST.0;
13380 first = false;
13381 }
13382 if remaining & Self::GLOBAL_FLOW.0 != 0 {
13383 if !first {
13384 f.write_str(" | ")?;
13385 }
13386 f.write_str("GLOBAL_FLOW")?;
13387 remaining &= !Self::GLOBAL_FLOW.0;
13388 first = false;
13389 }
13390 if remaining != 0u32 {
13391 if !first {
13392 f.write_str(" | ")?;
13393 }
13394 write!(f, "{:#x}", remaining)?;
13395 } else if first {
13396 f.write_str("(empty)")?;
13397 }
13398 Ok(())
13399 }
13400}
13401#[repr(transparent)]
13403#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13404#[doc(alias = "VkPartitionedAccelerationStructureInstanceFlagBitsNV")]
13405pub struct PartitionedAccelerationStructureInstanceFlagBitsNV(u32);
13406impl PartitionedAccelerationStructureInstanceFlagBitsNV {
13407 #[inline]
13408 pub const fn empty() -> Self {
13409 Self(0u32)
13410 }
13411 #[inline]
13412 pub const fn from_raw(value: u32) -> Self {
13413 Self(value)
13414 }
13415 #[inline]
13416 pub const fn as_raw(self) -> u32 {
13417 self.0
13418 }
13419 #[inline]
13420 pub const fn is_empty(self) -> bool {
13421 self.0 == 0u32
13422 }
13423 #[inline]
13424 pub const fn contains(self, other: Self) -> bool {
13425 (self.0 & other.0) == other.0
13426 }
13427 #[inline]
13428 pub const fn all() -> Self {
13429 Self(31u32)
13430 }
13431 pub const FLAG_TRIANGLE_FACING_CULL_DISABLE: Self = Self(1u32);
13433 pub const FLAG_TRIANGLE_FLIP_FACING: Self = Self(2u32);
13435 pub const FLAG_FORCE_OPAQUE: Self = Self(4u32);
13437 pub const FLAG_FORCE_NO_OPAQUE: Self = Self(8u32);
13439 pub const FLAG_ENABLE_EXPLICIT_BOUNDING_BOX: Self = Self(16u32);
13441}
13442impl core::ops::BitOr for PartitionedAccelerationStructureInstanceFlagBitsNV {
13443 type Output = Self;
13444 #[inline]
13445 fn bitor(self, rhs: Self) -> Self {
13446 Self(self.0 | rhs.0)
13447 }
13448}
13449impl core::ops::BitOrAssign for PartitionedAccelerationStructureInstanceFlagBitsNV {
13450 #[inline]
13451 fn bitor_assign(&mut self, rhs: Self) {
13452 self.0 |= rhs.0;
13453 }
13454}
13455impl core::ops::BitAnd for PartitionedAccelerationStructureInstanceFlagBitsNV {
13456 type Output = Self;
13457 #[inline]
13458 fn bitand(self, rhs: Self) -> Self {
13459 Self(self.0 & rhs.0)
13460 }
13461}
13462impl core::ops::BitAndAssign for PartitionedAccelerationStructureInstanceFlagBitsNV {
13463 #[inline]
13464 fn bitand_assign(&mut self, rhs: Self) {
13465 self.0 &= rhs.0;
13466 }
13467}
13468impl core::ops::BitXor for PartitionedAccelerationStructureInstanceFlagBitsNV {
13469 type Output = Self;
13470 #[inline]
13471 fn bitxor(self, rhs: Self) -> Self {
13472 Self(self.0 ^ rhs.0)
13473 }
13474}
13475impl core::ops::BitXorAssign for PartitionedAccelerationStructureInstanceFlagBitsNV {
13476 #[inline]
13477 fn bitxor_assign(&mut self, rhs: Self) {
13478 self.0 ^= rhs.0;
13479 }
13480}
13481impl core::ops::Not for PartitionedAccelerationStructureInstanceFlagBitsNV {
13482 type Output = Self;
13483 #[inline]
13484 fn not(self) -> Self {
13485 Self(!self.0)
13486 }
13487}
13488impl core::fmt::Debug for PartitionedAccelerationStructureInstanceFlagBitsNV {
13489 #[allow(unused_mut, unused_variables)]
13490 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13491 let mut first = true;
13492 let mut remaining = self.0;
13493 if remaining & Self::FLAG_TRIANGLE_FACING_CULL_DISABLE.0 != 0 {
13494 if !first {
13495 f.write_str(" | ")?;
13496 }
13497 f.write_str("FLAG_TRIANGLE_FACING_CULL_DISABLE")?;
13498 remaining &= !Self::FLAG_TRIANGLE_FACING_CULL_DISABLE.0;
13499 first = false;
13500 }
13501 if remaining & Self::FLAG_TRIANGLE_FLIP_FACING.0 != 0 {
13502 if !first {
13503 f.write_str(" | ")?;
13504 }
13505 f.write_str("FLAG_TRIANGLE_FLIP_FACING")?;
13506 remaining &= !Self::FLAG_TRIANGLE_FLIP_FACING.0;
13507 first = false;
13508 }
13509 if remaining & Self::FLAG_FORCE_OPAQUE.0 != 0 {
13510 if !first {
13511 f.write_str(" | ")?;
13512 }
13513 f.write_str("FLAG_FORCE_OPAQUE")?;
13514 remaining &= !Self::FLAG_FORCE_OPAQUE.0;
13515 first = false;
13516 }
13517 if remaining & Self::FLAG_FORCE_NO_OPAQUE.0 != 0 {
13518 if !first {
13519 f.write_str(" | ")?;
13520 }
13521 f.write_str("FLAG_FORCE_NO_OPAQUE")?;
13522 remaining &= !Self::FLAG_FORCE_NO_OPAQUE.0;
13523 first = false;
13524 }
13525 if remaining & Self::FLAG_ENABLE_EXPLICIT_BOUNDING_BOX.0 != 0 {
13526 if !first {
13527 f.write_str(" | ")?;
13528 }
13529 f.write_str("FLAG_ENABLE_EXPLICIT_BOUNDING_BOX")?;
13530 remaining &= !Self::FLAG_ENABLE_EXPLICIT_BOUNDING_BOX.0;
13531 first = false;
13532 }
13533 if remaining != 0u32 {
13534 if !first {
13535 f.write_str(" | ")?;
13536 }
13537 write!(f, "{:#x}", remaining)?;
13538 } else if first {
13539 f.write_str("(empty)")?;
13540 }
13541 Ok(())
13542 }
13543}
13544#[repr(transparent)]
13546#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13547#[doc(alias = "VkPastPresentationTimingFlagBitsEXT")]
13548pub struct PastPresentationTimingFlagBitsEXT(u32);
13549impl PastPresentationTimingFlagBitsEXT {
13550 #[inline]
13551 pub const fn empty() -> Self {
13552 Self(0u32)
13553 }
13554 #[inline]
13555 pub const fn from_raw(value: u32) -> Self {
13556 Self(value)
13557 }
13558 #[inline]
13559 pub const fn as_raw(self) -> u32 {
13560 self.0
13561 }
13562 #[inline]
13563 pub const fn is_empty(self) -> bool {
13564 self.0 == 0u32
13565 }
13566 #[inline]
13567 pub const fn contains(self, other: Self) -> bool {
13568 (self.0 & other.0) == other.0
13569 }
13570 #[inline]
13571 pub const fn all() -> Self {
13572 Self(3u32)
13573 }
13574 pub const ALLOW_PARTIAL_RESULTS: Self = Self(1u32);
13576 pub const ALLOW_OUT_OF_ORDER_RESULTS: Self = Self(2u32);
13578}
13579impl core::ops::BitOr for PastPresentationTimingFlagBitsEXT {
13580 type Output = Self;
13581 #[inline]
13582 fn bitor(self, rhs: Self) -> Self {
13583 Self(self.0 | rhs.0)
13584 }
13585}
13586impl core::ops::BitOrAssign for PastPresentationTimingFlagBitsEXT {
13587 #[inline]
13588 fn bitor_assign(&mut self, rhs: Self) {
13589 self.0 |= rhs.0;
13590 }
13591}
13592impl core::ops::BitAnd for PastPresentationTimingFlagBitsEXT {
13593 type Output = Self;
13594 #[inline]
13595 fn bitand(self, rhs: Self) -> Self {
13596 Self(self.0 & rhs.0)
13597 }
13598}
13599impl core::ops::BitAndAssign for PastPresentationTimingFlagBitsEXT {
13600 #[inline]
13601 fn bitand_assign(&mut self, rhs: Self) {
13602 self.0 &= rhs.0;
13603 }
13604}
13605impl core::ops::BitXor for PastPresentationTimingFlagBitsEXT {
13606 type Output = Self;
13607 #[inline]
13608 fn bitxor(self, rhs: Self) -> Self {
13609 Self(self.0 ^ rhs.0)
13610 }
13611}
13612impl core::ops::BitXorAssign for PastPresentationTimingFlagBitsEXT {
13613 #[inline]
13614 fn bitxor_assign(&mut self, rhs: Self) {
13615 self.0 ^= rhs.0;
13616 }
13617}
13618impl core::ops::Not for PastPresentationTimingFlagBitsEXT {
13619 type Output = Self;
13620 #[inline]
13621 fn not(self) -> Self {
13622 Self(!self.0)
13623 }
13624}
13625impl core::fmt::Debug for PastPresentationTimingFlagBitsEXT {
13626 #[allow(unused_mut, unused_variables)]
13627 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13628 let mut first = true;
13629 let mut remaining = self.0;
13630 if remaining & Self::ALLOW_PARTIAL_RESULTS.0 != 0 {
13631 if !first {
13632 f.write_str(" | ")?;
13633 }
13634 f.write_str("ALLOW_PARTIAL_RESULTS")?;
13635 remaining &= !Self::ALLOW_PARTIAL_RESULTS.0;
13636 first = false;
13637 }
13638 if remaining & Self::ALLOW_OUT_OF_ORDER_RESULTS.0 != 0 {
13639 if !first {
13640 f.write_str(" | ")?;
13641 }
13642 f.write_str("ALLOW_OUT_OF_ORDER_RESULTS")?;
13643 remaining &= !Self::ALLOW_OUT_OF_ORDER_RESULTS.0;
13644 first = false;
13645 }
13646 if remaining != 0u32 {
13647 if !first {
13648 f.write_str(" | ")?;
13649 }
13650 write!(f, "{:#x}", remaining)?;
13651 } else if first {
13652 f.write_str("(empty)")?;
13653 }
13654 Ok(())
13655 }
13656}
13657#[repr(transparent)]
13659#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13660#[doc(alias = "VkPeerMemoryFeatureFlagBits")]
13661pub struct PeerMemoryFeatureFlagBits(u32);
13662impl PeerMemoryFeatureFlagBits {
13663 #[inline]
13664 pub const fn empty() -> Self {
13665 Self(0u32)
13666 }
13667 #[inline]
13668 pub const fn from_raw(value: u32) -> Self {
13669 Self(value)
13670 }
13671 #[inline]
13672 pub const fn as_raw(self) -> u32 {
13673 self.0
13674 }
13675 #[inline]
13676 pub const fn is_empty(self) -> bool {
13677 self.0 == 0u32
13678 }
13679 #[inline]
13680 pub const fn contains(self, other: Self) -> bool {
13681 (self.0 & other.0) == other.0
13682 }
13683 #[inline]
13684 pub const fn all() -> Self {
13685 Self(15u32)
13686 }
13687 pub const COPY_SRC: Self = Self(1u32);
13689 pub const COPY_DST: Self = Self(2u32);
13691 pub const GENERIC_SRC: Self = Self(4u32);
13693 pub const GENERIC_DST: Self = Self(8u32);
13695}
13696impl core::ops::BitOr for PeerMemoryFeatureFlagBits {
13697 type Output = Self;
13698 #[inline]
13699 fn bitor(self, rhs: Self) -> Self {
13700 Self(self.0 | rhs.0)
13701 }
13702}
13703impl core::ops::BitOrAssign for PeerMemoryFeatureFlagBits {
13704 #[inline]
13705 fn bitor_assign(&mut self, rhs: Self) {
13706 self.0 |= rhs.0;
13707 }
13708}
13709impl core::ops::BitAnd for PeerMemoryFeatureFlagBits {
13710 type Output = Self;
13711 #[inline]
13712 fn bitand(self, rhs: Self) -> Self {
13713 Self(self.0 & rhs.0)
13714 }
13715}
13716impl core::ops::BitAndAssign for PeerMemoryFeatureFlagBits {
13717 #[inline]
13718 fn bitand_assign(&mut self, rhs: Self) {
13719 self.0 &= rhs.0;
13720 }
13721}
13722impl core::ops::BitXor for PeerMemoryFeatureFlagBits {
13723 type Output = Self;
13724 #[inline]
13725 fn bitxor(self, rhs: Self) -> Self {
13726 Self(self.0 ^ rhs.0)
13727 }
13728}
13729impl core::ops::BitXorAssign for PeerMemoryFeatureFlagBits {
13730 #[inline]
13731 fn bitxor_assign(&mut self, rhs: Self) {
13732 self.0 ^= rhs.0;
13733 }
13734}
13735impl core::ops::Not for PeerMemoryFeatureFlagBits {
13736 type Output = Self;
13737 #[inline]
13738 fn not(self) -> Self {
13739 Self(!self.0)
13740 }
13741}
13742impl core::fmt::Debug for PeerMemoryFeatureFlagBits {
13743 #[allow(unused_mut, unused_variables)]
13744 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13745 let mut first = true;
13746 let mut remaining = self.0;
13747 if remaining & Self::COPY_SRC.0 != 0 {
13748 if !first {
13749 f.write_str(" | ")?;
13750 }
13751 f.write_str("COPY_SRC")?;
13752 remaining &= !Self::COPY_SRC.0;
13753 first = false;
13754 }
13755 if remaining & Self::COPY_DST.0 != 0 {
13756 if !first {
13757 f.write_str(" | ")?;
13758 }
13759 f.write_str("COPY_DST")?;
13760 remaining &= !Self::COPY_DST.0;
13761 first = false;
13762 }
13763 if remaining & Self::GENERIC_SRC.0 != 0 {
13764 if !first {
13765 f.write_str(" | ")?;
13766 }
13767 f.write_str("GENERIC_SRC")?;
13768 remaining &= !Self::GENERIC_SRC.0;
13769 first = false;
13770 }
13771 if remaining & Self::GENERIC_DST.0 != 0 {
13772 if !first {
13773 f.write_str(" | ")?;
13774 }
13775 f.write_str("GENERIC_DST")?;
13776 remaining &= !Self::GENERIC_DST.0;
13777 first = false;
13778 }
13779 if remaining != 0u32 {
13780 if !first {
13781 f.write_str(" | ")?;
13782 }
13783 write!(f, "{:#x}", remaining)?;
13784 } else if first {
13785 f.write_str("(empty)")?;
13786 }
13787 Ok(())
13788 }
13789}
13790#[repr(transparent)]
13792#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13793#[doc(alias = "VkPerformanceCounterDescriptionFlagBitsKHR")]
13794pub struct PerformanceCounterDescriptionFlagBitsKHR(u32);
13795impl PerformanceCounterDescriptionFlagBitsKHR {
13796 #[inline]
13797 pub const fn empty() -> Self {
13798 Self(0u32)
13799 }
13800 #[inline]
13801 pub const fn from_raw(value: u32) -> Self {
13802 Self(value)
13803 }
13804 #[inline]
13805 pub const fn as_raw(self) -> u32 {
13806 self.0
13807 }
13808 #[inline]
13809 pub const fn is_empty(self) -> bool {
13810 self.0 == 0u32
13811 }
13812 #[inline]
13813 pub const fn contains(self, other: Self) -> bool {
13814 (self.0 & other.0) == other.0
13815 }
13816 #[inline]
13817 pub const fn all() -> Self {
13818 Self(3u32)
13819 }
13820 pub const PERFORMANCE_IMPACTING: Self = Self(1u32);
13822 pub const CONCURRENTLY_IMPACTED: Self = Self(2u32);
13824}
13825impl core::ops::BitOr for PerformanceCounterDescriptionFlagBitsKHR {
13826 type Output = Self;
13827 #[inline]
13828 fn bitor(self, rhs: Self) -> Self {
13829 Self(self.0 | rhs.0)
13830 }
13831}
13832impl core::ops::BitOrAssign for PerformanceCounterDescriptionFlagBitsKHR {
13833 #[inline]
13834 fn bitor_assign(&mut self, rhs: Self) {
13835 self.0 |= rhs.0;
13836 }
13837}
13838impl core::ops::BitAnd for PerformanceCounterDescriptionFlagBitsKHR {
13839 type Output = Self;
13840 #[inline]
13841 fn bitand(self, rhs: Self) -> Self {
13842 Self(self.0 & rhs.0)
13843 }
13844}
13845impl core::ops::BitAndAssign for PerformanceCounterDescriptionFlagBitsKHR {
13846 #[inline]
13847 fn bitand_assign(&mut self, rhs: Self) {
13848 self.0 &= rhs.0;
13849 }
13850}
13851impl core::ops::BitXor for PerformanceCounterDescriptionFlagBitsKHR {
13852 type Output = Self;
13853 #[inline]
13854 fn bitxor(self, rhs: Self) -> Self {
13855 Self(self.0 ^ rhs.0)
13856 }
13857}
13858impl core::ops::BitXorAssign for PerformanceCounterDescriptionFlagBitsKHR {
13859 #[inline]
13860 fn bitxor_assign(&mut self, rhs: Self) {
13861 self.0 ^= rhs.0;
13862 }
13863}
13864impl core::ops::Not for PerformanceCounterDescriptionFlagBitsKHR {
13865 type Output = Self;
13866 #[inline]
13867 fn not(self) -> Self {
13868 Self(!self.0)
13869 }
13870}
13871impl core::fmt::Debug for PerformanceCounterDescriptionFlagBitsKHR {
13872 #[allow(unused_mut, unused_variables)]
13873 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13874 let mut first = true;
13875 let mut remaining = self.0;
13876 if remaining & Self::PERFORMANCE_IMPACTING.0 != 0 {
13877 if !first {
13878 f.write_str(" | ")?;
13879 }
13880 f.write_str("PERFORMANCE_IMPACTING")?;
13881 remaining &= !Self::PERFORMANCE_IMPACTING.0;
13882 first = false;
13883 }
13884 if remaining & Self::CONCURRENTLY_IMPACTED.0 != 0 {
13885 if !first {
13886 f.write_str(" | ")?;
13887 }
13888 f.write_str("CONCURRENTLY_IMPACTED")?;
13889 remaining &= !Self::CONCURRENTLY_IMPACTED.0;
13890 first = false;
13891 }
13892 if remaining != 0u32 {
13893 if !first {
13894 f.write_str(" | ")?;
13895 }
13896 write!(f, "{:#x}", remaining)?;
13897 } else if first {
13898 f.write_str("(empty)")?;
13899 }
13900 Ok(())
13901 }
13902}
13903#[repr(transparent)]
13905#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
13906#[doc(alias = "VkPhysicalDeviceSchedulingControlsFlagBitsARM")]
13907pub struct PhysicalDeviceSchedulingControlsFlagBitsARM(u64);
13908impl PhysicalDeviceSchedulingControlsFlagBitsARM {
13909 #[inline]
13910 pub const fn empty() -> Self {
13911 Self(0u64)
13912 }
13913 #[inline]
13914 pub const fn from_raw(value: u64) -> Self {
13915 Self(value)
13916 }
13917 #[inline]
13918 pub const fn as_raw(self) -> u64 {
13919 self.0
13920 }
13921 #[inline]
13922 pub const fn is_empty(self) -> bool {
13923 self.0 == 0u64
13924 }
13925 #[inline]
13926 pub const fn contains(self, other: Self) -> bool {
13927 (self.0 & other.0) == other.0
13928 }
13929 #[inline]
13930 pub const fn all() -> Self {
13931 Self(1u64)
13932 }
13933 pub const SHADER_CORE_COUNT: Self = Self(1u64);
13935}
13936impl core::ops::BitOr for PhysicalDeviceSchedulingControlsFlagBitsARM {
13937 type Output = Self;
13938 #[inline]
13939 fn bitor(self, rhs: Self) -> Self {
13940 Self(self.0 | rhs.0)
13941 }
13942}
13943impl core::ops::BitOrAssign for PhysicalDeviceSchedulingControlsFlagBitsARM {
13944 #[inline]
13945 fn bitor_assign(&mut self, rhs: Self) {
13946 self.0 |= rhs.0;
13947 }
13948}
13949impl core::ops::BitAnd for PhysicalDeviceSchedulingControlsFlagBitsARM {
13950 type Output = Self;
13951 #[inline]
13952 fn bitand(self, rhs: Self) -> Self {
13953 Self(self.0 & rhs.0)
13954 }
13955}
13956impl core::ops::BitAndAssign for PhysicalDeviceSchedulingControlsFlagBitsARM {
13957 #[inline]
13958 fn bitand_assign(&mut self, rhs: Self) {
13959 self.0 &= rhs.0;
13960 }
13961}
13962impl core::ops::BitXor for PhysicalDeviceSchedulingControlsFlagBitsARM {
13963 type Output = Self;
13964 #[inline]
13965 fn bitxor(self, rhs: Self) -> Self {
13966 Self(self.0 ^ rhs.0)
13967 }
13968}
13969impl core::ops::BitXorAssign for PhysicalDeviceSchedulingControlsFlagBitsARM {
13970 #[inline]
13971 fn bitxor_assign(&mut self, rhs: Self) {
13972 self.0 ^= rhs.0;
13973 }
13974}
13975impl core::ops::Not for PhysicalDeviceSchedulingControlsFlagBitsARM {
13976 type Output = Self;
13977 #[inline]
13978 fn not(self) -> Self {
13979 Self(!self.0)
13980 }
13981}
13982impl core::fmt::Debug for PhysicalDeviceSchedulingControlsFlagBitsARM {
13983 #[allow(unused_mut, unused_variables)]
13984 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
13985 let mut first = true;
13986 let mut remaining = self.0;
13987 if remaining & Self::SHADER_CORE_COUNT.0 != 0 {
13988 if !first {
13989 f.write_str(" | ")?;
13990 }
13991 f.write_str("SHADER_CORE_COUNT")?;
13992 remaining &= !Self::SHADER_CORE_COUNT.0;
13993 first = false;
13994 }
13995 if remaining != 0u64 {
13996 if !first {
13997 f.write_str(" | ")?;
13998 }
13999 write!(f, "{:#x}", remaining)?;
14000 } else if first {
14001 f.write_str("(empty)")?;
14002 }
14003 Ok(())
14004 }
14005}
14006#[repr(transparent)]
14008#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
14009#[doc(alias = "VkPipelineCacheCreateFlagBits")]
14010pub struct PipelineCacheCreateFlagBits(u32);
14011impl PipelineCacheCreateFlagBits {
14012 #[inline]
14013 pub const fn empty() -> Self {
14014 Self(0u32)
14015 }
14016 #[inline]
14017 pub const fn from_raw(value: u32) -> Self {
14018 Self(value)
14019 }
14020 #[inline]
14021 pub const fn as_raw(self) -> u32 {
14022 self.0
14023 }
14024 #[inline]
14025 pub const fn is_empty(self) -> bool {
14026 self.0 == 0u32
14027 }
14028 #[inline]
14029 pub const fn contains(self, other: Self) -> bool {
14030 (self.0 & other.0) == other.0
14031 }
14032 #[inline]
14033 pub const fn all() -> Self {
14034 Self(15u32)
14035 }
14036 pub const EXTERNALLY_SYNCHRONIZED: Self = Self(1u32);
14038 pub const READ_ONLY: Self = Self(2u32);
14040 pub const USE_APPLICATION_STORAGE: Self = Self(4u32);
14042 pub const INTERNALLY_SYNCHRONIZED_MERGE: Self = Self(8u32);
14044}
14045impl core::ops::BitOr for PipelineCacheCreateFlagBits {
14046 type Output = Self;
14047 #[inline]
14048 fn bitor(self, rhs: Self) -> Self {
14049 Self(self.0 | rhs.0)
14050 }
14051}
14052impl core::ops::BitOrAssign for PipelineCacheCreateFlagBits {
14053 #[inline]
14054 fn bitor_assign(&mut self, rhs: Self) {
14055 self.0 |= rhs.0;
14056 }
14057}
14058impl core::ops::BitAnd for PipelineCacheCreateFlagBits {
14059 type Output = Self;
14060 #[inline]
14061 fn bitand(self, rhs: Self) -> Self {
14062 Self(self.0 & rhs.0)
14063 }
14064}
14065impl core::ops::BitAndAssign for PipelineCacheCreateFlagBits {
14066 #[inline]
14067 fn bitand_assign(&mut self, rhs: Self) {
14068 self.0 &= rhs.0;
14069 }
14070}
14071impl core::ops::BitXor for PipelineCacheCreateFlagBits {
14072 type Output = Self;
14073 #[inline]
14074 fn bitxor(self, rhs: Self) -> Self {
14075 Self(self.0 ^ rhs.0)
14076 }
14077}
14078impl core::ops::BitXorAssign for PipelineCacheCreateFlagBits {
14079 #[inline]
14080 fn bitxor_assign(&mut self, rhs: Self) {
14081 self.0 ^= rhs.0;
14082 }
14083}
14084impl core::ops::Not for PipelineCacheCreateFlagBits {
14085 type Output = Self;
14086 #[inline]
14087 fn not(self) -> Self {
14088 Self(!self.0)
14089 }
14090}
14091impl core::fmt::Debug for PipelineCacheCreateFlagBits {
14092 #[allow(unused_mut, unused_variables)]
14093 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14094 let mut first = true;
14095 let mut remaining = self.0;
14096 if remaining & Self::EXTERNALLY_SYNCHRONIZED.0 != 0 {
14097 if !first {
14098 f.write_str(" | ")?;
14099 }
14100 f.write_str("EXTERNALLY_SYNCHRONIZED")?;
14101 remaining &= !Self::EXTERNALLY_SYNCHRONIZED.0;
14102 first = false;
14103 }
14104 if remaining & Self::READ_ONLY.0 != 0 {
14105 if !first {
14106 f.write_str(" | ")?;
14107 }
14108 f.write_str("READ_ONLY")?;
14109 remaining &= !Self::READ_ONLY.0;
14110 first = false;
14111 }
14112 if remaining & Self::USE_APPLICATION_STORAGE.0 != 0 {
14113 if !first {
14114 f.write_str(" | ")?;
14115 }
14116 f.write_str("USE_APPLICATION_STORAGE")?;
14117 remaining &= !Self::USE_APPLICATION_STORAGE.0;
14118 first = false;
14119 }
14120 if remaining & Self::INTERNALLY_SYNCHRONIZED_MERGE.0 != 0 {
14121 if !first {
14122 f.write_str(" | ")?;
14123 }
14124 f.write_str("INTERNALLY_SYNCHRONIZED_MERGE")?;
14125 remaining &= !Self::INTERNALLY_SYNCHRONIZED_MERGE.0;
14126 first = false;
14127 }
14128 if remaining != 0u32 {
14129 if !first {
14130 f.write_str(" | ")?;
14131 }
14132 write!(f, "{:#x}", remaining)?;
14133 } else if first {
14134 f.write_str("(empty)")?;
14135 }
14136 Ok(())
14137 }
14138}
14139#[repr(transparent)]
14141#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
14142#[doc(alias = "VkPipelineColorBlendStateCreateFlagBits")]
14143pub struct PipelineColorBlendStateCreateFlagBits(u32);
14144impl PipelineColorBlendStateCreateFlagBits {
14145 #[inline]
14146 pub const fn empty() -> Self {
14147 Self(0u32)
14148 }
14149 #[inline]
14150 pub const fn from_raw(value: u32) -> Self {
14151 Self(value)
14152 }
14153 #[inline]
14154 pub const fn as_raw(self) -> u32 {
14155 self.0
14156 }
14157 #[inline]
14158 pub const fn is_empty(self) -> bool {
14159 self.0 == 0u32
14160 }
14161 #[inline]
14162 pub const fn contains(self, other: Self) -> bool {
14163 (self.0 & other.0) == other.0
14164 }
14165 #[inline]
14166 pub const fn all() -> Self {
14167 Self(1u32)
14168 }
14169 pub const RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_ACCESS;
14170 pub const RASTERIZATION_ORDER_ATTACHMENT_ACCESS: Self = Self(1u32);
14172}
14173impl core::ops::BitOr for PipelineColorBlendStateCreateFlagBits {
14174 type Output = Self;
14175 #[inline]
14176 fn bitor(self, rhs: Self) -> Self {
14177 Self(self.0 | rhs.0)
14178 }
14179}
14180impl core::ops::BitOrAssign for PipelineColorBlendStateCreateFlagBits {
14181 #[inline]
14182 fn bitor_assign(&mut self, rhs: Self) {
14183 self.0 |= rhs.0;
14184 }
14185}
14186impl core::ops::BitAnd for PipelineColorBlendStateCreateFlagBits {
14187 type Output = Self;
14188 #[inline]
14189 fn bitand(self, rhs: Self) -> Self {
14190 Self(self.0 & rhs.0)
14191 }
14192}
14193impl core::ops::BitAndAssign for PipelineColorBlendStateCreateFlagBits {
14194 #[inline]
14195 fn bitand_assign(&mut self, rhs: Self) {
14196 self.0 &= rhs.0;
14197 }
14198}
14199impl core::ops::BitXor for PipelineColorBlendStateCreateFlagBits {
14200 type Output = Self;
14201 #[inline]
14202 fn bitxor(self, rhs: Self) -> Self {
14203 Self(self.0 ^ rhs.0)
14204 }
14205}
14206impl core::ops::BitXorAssign for PipelineColorBlendStateCreateFlagBits {
14207 #[inline]
14208 fn bitxor_assign(&mut self, rhs: Self) {
14209 self.0 ^= rhs.0;
14210 }
14211}
14212impl core::ops::Not for PipelineColorBlendStateCreateFlagBits {
14213 type Output = Self;
14214 #[inline]
14215 fn not(self) -> Self {
14216 Self(!self.0)
14217 }
14218}
14219impl core::fmt::Debug for PipelineColorBlendStateCreateFlagBits {
14220 #[allow(unused_mut, unused_variables)]
14221 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14222 let mut first = true;
14223 let mut remaining = self.0;
14224 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_ACCESS.0 != 0 {
14225 if !first {
14226 f.write_str(" | ")?;
14227 }
14228 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_ACCESS")?;
14229 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_ACCESS.0;
14230 first = false;
14231 }
14232 if remaining != 0u32 {
14233 if !first {
14234 f.write_str(" | ")?;
14235 }
14236 write!(f, "{:#x}", remaining)?;
14237 } else if first {
14238 f.write_str("(empty)")?;
14239 }
14240 Ok(())
14241 }
14242}
14243#[repr(transparent)]
14245#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
14246#[doc(alias = "VkPipelineCompilerControlFlagBitsAMD")]
14247pub struct PipelineCompilerControlFlagBitsAMD(u32);
14248impl PipelineCompilerControlFlagBitsAMD {
14249 #[inline]
14250 pub const fn empty() -> Self {
14251 Self(0u32)
14252 }
14253 #[inline]
14254 pub const fn from_raw(value: u32) -> Self {
14255 Self(value)
14256 }
14257 #[inline]
14258 pub const fn as_raw(self) -> u32 {
14259 self.0
14260 }
14261 #[inline]
14262 pub const fn is_empty(self) -> bool {
14263 self.0 == 0u32
14264 }
14265 #[inline]
14266 pub const fn contains(self, other: Self) -> bool {
14267 (self.0 & other.0) == other.0
14268 }
14269 #[inline]
14270 pub const fn all() -> Self {
14271 Self(0u32)
14272 }
14273}
14274impl core::ops::BitOr for PipelineCompilerControlFlagBitsAMD {
14275 type Output = Self;
14276 #[inline]
14277 fn bitor(self, rhs: Self) -> Self {
14278 Self(self.0 | rhs.0)
14279 }
14280}
14281impl core::ops::BitOrAssign for PipelineCompilerControlFlagBitsAMD {
14282 #[inline]
14283 fn bitor_assign(&mut self, rhs: Self) {
14284 self.0 |= rhs.0;
14285 }
14286}
14287impl core::ops::BitAnd for PipelineCompilerControlFlagBitsAMD {
14288 type Output = Self;
14289 #[inline]
14290 fn bitand(self, rhs: Self) -> Self {
14291 Self(self.0 & rhs.0)
14292 }
14293}
14294impl core::ops::BitAndAssign for PipelineCompilerControlFlagBitsAMD {
14295 #[inline]
14296 fn bitand_assign(&mut self, rhs: Self) {
14297 self.0 &= rhs.0;
14298 }
14299}
14300impl core::ops::BitXor for PipelineCompilerControlFlagBitsAMD {
14301 type Output = Self;
14302 #[inline]
14303 fn bitxor(self, rhs: Self) -> Self {
14304 Self(self.0 ^ rhs.0)
14305 }
14306}
14307impl core::ops::BitXorAssign for PipelineCompilerControlFlagBitsAMD {
14308 #[inline]
14309 fn bitxor_assign(&mut self, rhs: Self) {
14310 self.0 ^= rhs.0;
14311 }
14312}
14313impl core::ops::Not for PipelineCompilerControlFlagBitsAMD {
14314 type Output = Self;
14315 #[inline]
14316 fn not(self) -> Self {
14317 Self(!self.0)
14318 }
14319}
14320impl core::fmt::Debug for PipelineCompilerControlFlagBitsAMD {
14321 #[allow(unused_mut, unused_variables)]
14322 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14323 let mut first = true;
14324 let mut remaining = self.0;
14325 if remaining != 0u32 {
14326 if !first {
14327 f.write_str(" | ")?;
14328 }
14329 write!(f, "{:#x}", remaining)?;
14330 } else if first {
14331 f.write_str("(empty)")?;
14332 }
14333 Ok(())
14334 }
14335}
14336#[repr(transparent)]
14338#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
14339#[doc(alias = "VkPipelineCreateFlagBits")]
14340pub struct PipelineCreateFlagBits(u32);
14341impl PipelineCreateFlagBits {
14342 #[inline]
14343 pub const fn empty() -> Self {
14344 Self(0u32)
14345 }
14346 #[inline]
14347 pub const fn from_raw(value: u32) -> Self {
14348 Self(value)
14349 }
14350 #[inline]
14351 pub const fn as_raw(self) -> u32 {
14352 self.0
14353 }
14354 #[inline]
14355 pub const fn is_empty(self) -> bool {
14356 self.0 == 0u32
14357 }
14358 #[inline]
14359 pub const fn contains(self, other: Self) -> bool {
14360 (self.0 & other.0) == other.0
14361 }
14362 #[inline]
14363 pub const fn all() -> Self {
14364 Self(2147483647u32)
14365 }
14366 pub const DISABLE_OPTIMIZATION: Self = Self(1u32);
14368 pub const ALLOW_DERIVATIVES: Self = Self(2u32);
14370 pub const DERIVATIVE: Self = Self(4u32);
14372 pub const DISPATCH_BASE: Self = Self(16u32);
14374 pub const VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(8u32);
14376 pub const FAIL_ON_PIPELINE_COMPILE_REQUIRED: Self = Self(256u32);
14378 pub const EARLY_RETURN_ON_FAILURE: Self = Self(512u32);
14380 pub const NO_PROTECTED_ACCESS: Self = Self(134217728u32);
14382 pub const PROTECTED_ACCESS_ONLY: Self = Self(1073741824u32);
14384 pub const RAY_TRACING_NO_NULL_ANY_HIT_SHADERS: Self = Self(16384u32);
14386 pub const RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS: Self = Self(32768u32);
14388 pub const RAY_TRACING_NO_NULL_MISS_SHADERS: Self = Self(65536u32);
14390 pub const RAY_TRACING_NO_NULL_INTERSECTION_SHADERS: Self = Self(131072u32);
14392 pub const RAY_TRACING_SKIP_TRIANGLES: Self = Self(4096u32);
14394 pub const RAY_TRACING_SKIP_AABBS: Self = Self(8192u32);
14396 pub const RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY: Self = Self(524288u32);
14398 pub const DEFER_COMPILE: Self = Self(32u32);
14400 pub const RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self(4194304u32);
14402 pub const PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT;
14403 pub const RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(2097152u32);
14405 pub const PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT;
14406 pub const CAPTURE_STATISTICS: Self = Self(64u32);
14408 pub const CAPTURE_INTERNAL_REPRESENTATIONS: Self = Self(128u32);
14410 pub const INDIRECT_BINDABLE: Self = Self(262144u32);
14412 pub const LIBRARY: Self = Self(2048u32);
14414 pub const DESCRIPTOR_BUFFER: Self = Self(536870912u32);
14416 pub const RETAIN_LINK_TIME_OPTIMIZATION_INFO: Self = Self(8388608u32);
14418 pub const LINK_TIME_OPTIMIZATION: Self = Self(1024u32);
14420 pub const RAY_TRACING_ALLOW_MOTION: Self = Self(1048576u32);
14422 pub const COLOR_ATTACHMENT_FEEDBACK_LOOP: Self = Self(33554432u32);
14424 pub const DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP: Self = Self(67108864u32);
14426 pub const RAY_TRACING_OPACITY_MICROMAP: Self = Self(16777216u32);
14428 pub const RAY_TRACING_DISPLACEMENT_MICROMAP: Self = Self(268435456u32);
14430}
14431impl core::ops::BitOr for PipelineCreateFlagBits {
14432 type Output = Self;
14433 #[inline]
14434 fn bitor(self, rhs: Self) -> Self {
14435 Self(self.0 | rhs.0)
14436 }
14437}
14438impl core::ops::BitOrAssign for PipelineCreateFlagBits {
14439 #[inline]
14440 fn bitor_assign(&mut self, rhs: Self) {
14441 self.0 |= rhs.0;
14442 }
14443}
14444impl core::ops::BitAnd for PipelineCreateFlagBits {
14445 type Output = Self;
14446 #[inline]
14447 fn bitand(self, rhs: Self) -> Self {
14448 Self(self.0 & rhs.0)
14449 }
14450}
14451impl core::ops::BitAndAssign for PipelineCreateFlagBits {
14452 #[inline]
14453 fn bitand_assign(&mut self, rhs: Self) {
14454 self.0 &= rhs.0;
14455 }
14456}
14457impl core::ops::BitXor for PipelineCreateFlagBits {
14458 type Output = Self;
14459 #[inline]
14460 fn bitxor(self, rhs: Self) -> Self {
14461 Self(self.0 ^ rhs.0)
14462 }
14463}
14464impl core::ops::BitXorAssign for PipelineCreateFlagBits {
14465 #[inline]
14466 fn bitxor_assign(&mut self, rhs: Self) {
14467 self.0 ^= rhs.0;
14468 }
14469}
14470impl core::ops::Not for PipelineCreateFlagBits {
14471 type Output = Self;
14472 #[inline]
14473 fn not(self) -> Self {
14474 Self(!self.0)
14475 }
14476}
14477impl core::fmt::Debug for PipelineCreateFlagBits {
14478 #[allow(unused_mut, unused_variables)]
14479 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14480 let mut first = true;
14481 let mut remaining = self.0;
14482 if remaining & Self::DISABLE_OPTIMIZATION.0 != 0 {
14483 if !first {
14484 f.write_str(" | ")?;
14485 }
14486 f.write_str("DISABLE_OPTIMIZATION")?;
14487 remaining &= !Self::DISABLE_OPTIMIZATION.0;
14488 first = false;
14489 }
14490 if remaining & Self::ALLOW_DERIVATIVES.0 != 0 {
14491 if !first {
14492 f.write_str(" | ")?;
14493 }
14494 f.write_str("ALLOW_DERIVATIVES")?;
14495 remaining &= !Self::ALLOW_DERIVATIVES.0;
14496 first = false;
14497 }
14498 if remaining & Self::DERIVATIVE.0 != 0 {
14499 if !first {
14500 f.write_str(" | ")?;
14501 }
14502 f.write_str("DERIVATIVE")?;
14503 remaining &= !Self::DERIVATIVE.0;
14504 first = false;
14505 }
14506 if remaining & Self::DISPATCH_BASE.0 != 0 {
14507 if !first {
14508 f.write_str(" | ")?;
14509 }
14510 f.write_str("DISPATCH_BASE")?;
14511 remaining &= !Self::DISPATCH_BASE.0;
14512 first = false;
14513 }
14514 if remaining & Self::VIEW_INDEX_FROM_DEVICE_INDEX.0 != 0 {
14515 if !first {
14516 f.write_str(" | ")?;
14517 }
14518 f.write_str("VIEW_INDEX_FROM_DEVICE_INDEX")?;
14519 remaining &= !Self::VIEW_INDEX_FROM_DEVICE_INDEX.0;
14520 first = false;
14521 }
14522 if remaining & Self::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0 != 0 {
14523 if !first {
14524 f.write_str(" | ")?;
14525 }
14526 f.write_str("FAIL_ON_PIPELINE_COMPILE_REQUIRED")?;
14527 remaining &= !Self::FAIL_ON_PIPELINE_COMPILE_REQUIRED.0;
14528 first = false;
14529 }
14530 if remaining & Self::EARLY_RETURN_ON_FAILURE.0 != 0 {
14531 if !first {
14532 f.write_str(" | ")?;
14533 }
14534 f.write_str("EARLY_RETURN_ON_FAILURE")?;
14535 remaining &= !Self::EARLY_RETURN_ON_FAILURE.0;
14536 first = false;
14537 }
14538 if remaining & Self::NO_PROTECTED_ACCESS.0 != 0 {
14539 if !first {
14540 f.write_str(" | ")?;
14541 }
14542 f.write_str("NO_PROTECTED_ACCESS")?;
14543 remaining &= !Self::NO_PROTECTED_ACCESS.0;
14544 first = false;
14545 }
14546 if remaining & Self::PROTECTED_ACCESS_ONLY.0 != 0 {
14547 if !first {
14548 f.write_str(" | ")?;
14549 }
14550 f.write_str("PROTECTED_ACCESS_ONLY")?;
14551 remaining &= !Self::PROTECTED_ACCESS_ONLY.0;
14552 first = false;
14553 }
14554 if remaining & Self::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0 != 0 {
14555 if !first {
14556 f.write_str(" | ")?;
14557 }
14558 f.write_str("RAY_TRACING_NO_NULL_ANY_HIT_SHADERS")?;
14559 remaining &= !Self::RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0;
14560 first = false;
14561 }
14562 if remaining & Self::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0 != 0 {
14563 if !first {
14564 f.write_str(" | ")?;
14565 }
14566 f.write_str("RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS")?;
14567 remaining &= !Self::RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0;
14568 first = false;
14569 }
14570 if remaining & Self::RAY_TRACING_NO_NULL_MISS_SHADERS.0 != 0 {
14571 if !first {
14572 f.write_str(" | ")?;
14573 }
14574 f.write_str("RAY_TRACING_NO_NULL_MISS_SHADERS")?;
14575 remaining &= !Self::RAY_TRACING_NO_NULL_MISS_SHADERS.0;
14576 first = false;
14577 }
14578 if remaining & Self::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0 != 0 {
14579 if !first {
14580 f.write_str(" | ")?;
14581 }
14582 f.write_str("RAY_TRACING_NO_NULL_INTERSECTION_SHADERS")?;
14583 remaining &= !Self::RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0;
14584 first = false;
14585 }
14586 if remaining & Self::RAY_TRACING_SKIP_TRIANGLES.0 != 0 {
14587 if !first {
14588 f.write_str(" | ")?;
14589 }
14590 f.write_str("RAY_TRACING_SKIP_TRIANGLES")?;
14591 remaining &= !Self::RAY_TRACING_SKIP_TRIANGLES.0;
14592 first = false;
14593 }
14594 if remaining & Self::RAY_TRACING_SKIP_AABBS.0 != 0 {
14595 if !first {
14596 f.write_str(" | ")?;
14597 }
14598 f.write_str("RAY_TRACING_SKIP_AABBS")?;
14599 remaining &= !Self::RAY_TRACING_SKIP_AABBS.0;
14600 first = false;
14601 }
14602 if remaining & Self::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0 != 0 {
14603 if !first {
14604 f.write_str(" | ")?;
14605 }
14606 f.write_str("RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY")?;
14607 remaining &= !Self::RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0;
14608 first = false;
14609 }
14610 if remaining & Self::DEFER_COMPILE.0 != 0 {
14611 if !first {
14612 f.write_str(" | ")?;
14613 }
14614 f.write_str("DEFER_COMPILE")?;
14615 remaining &= !Self::DEFER_COMPILE.0;
14616 first = false;
14617 }
14618 if remaining & Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT.0 != 0 {
14619 if !first {
14620 f.write_str(" | ")?;
14621 }
14622 f.write_str("RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT")?;
14623 remaining &= !Self::RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT.0;
14624 first = false;
14625 }
14626 if remaining & Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
14627 if !first {
14628 f.write_str(" | ")?;
14629 }
14630 f.write_str("RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT")?;
14631 remaining &= !Self::RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0;
14632 first = false;
14633 }
14634 if remaining & Self::CAPTURE_STATISTICS.0 != 0 {
14635 if !first {
14636 f.write_str(" | ")?;
14637 }
14638 f.write_str("CAPTURE_STATISTICS")?;
14639 remaining &= !Self::CAPTURE_STATISTICS.0;
14640 first = false;
14641 }
14642 if remaining & Self::CAPTURE_INTERNAL_REPRESENTATIONS.0 != 0 {
14643 if !first {
14644 f.write_str(" | ")?;
14645 }
14646 f.write_str("CAPTURE_INTERNAL_REPRESENTATIONS")?;
14647 remaining &= !Self::CAPTURE_INTERNAL_REPRESENTATIONS.0;
14648 first = false;
14649 }
14650 if remaining & Self::INDIRECT_BINDABLE.0 != 0 {
14651 if !first {
14652 f.write_str(" | ")?;
14653 }
14654 f.write_str("INDIRECT_BINDABLE")?;
14655 remaining &= !Self::INDIRECT_BINDABLE.0;
14656 first = false;
14657 }
14658 if remaining & Self::LIBRARY.0 != 0 {
14659 if !first {
14660 f.write_str(" | ")?;
14661 }
14662 f.write_str("LIBRARY")?;
14663 remaining &= !Self::LIBRARY.0;
14664 first = false;
14665 }
14666 if remaining & Self::DESCRIPTOR_BUFFER.0 != 0 {
14667 if !first {
14668 f.write_str(" | ")?;
14669 }
14670 f.write_str("DESCRIPTOR_BUFFER")?;
14671 remaining &= !Self::DESCRIPTOR_BUFFER.0;
14672 first = false;
14673 }
14674 if remaining & Self::RETAIN_LINK_TIME_OPTIMIZATION_INFO.0 != 0 {
14675 if !first {
14676 f.write_str(" | ")?;
14677 }
14678 f.write_str("RETAIN_LINK_TIME_OPTIMIZATION_INFO")?;
14679 remaining &= !Self::RETAIN_LINK_TIME_OPTIMIZATION_INFO.0;
14680 first = false;
14681 }
14682 if remaining & Self::LINK_TIME_OPTIMIZATION.0 != 0 {
14683 if !first {
14684 f.write_str(" | ")?;
14685 }
14686 f.write_str("LINK_TIME_OPTIMIZATION")?;
14687 remaining &= !Self::LINK_TIME_OPTIMIZATION.0;
14688 first = false;
14689 }
14690 if remaining & Self::RAY_TRACING_ALLOW_MOTION.0 != 0 {
14691 if !first {
14692 f.write_str(" | ")?;
14693 }
14694 f.write_str("RAY_TRACING_ALLOW_MOTION")?;
14695 remaining &= !Self::RAY_TRACING_ALLOW_MOTION.0;
14696 first = false;
14697 }
14698 if remaining & Self::COLOR_ATTACHMENT_FEEDBACK_LOOP.0 != 0 {
14699 if !first {
14700 f.write_str(" | ")?;
14701 }
14702 f.write_str("COLOR_ATTACHMENT_FEEDBACK_LOOP")?;
14703 remaining &= !Self::COLOR_ATTACHMENT_FEEDBACK_LOOP.0;
14704 first = false;
14705 }
14706 if remaining & Self::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP.0 != 0 {
14707 if !first {
14708 f.write_str(" | ")?;
14709 }
14710 f.write_str("DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP")?;
14711 remaining &= !Self::DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP.0;
14712 first = false;
14713 }
14714 if remaining & Self::RAY_TRACING_OPACITY_MICROMAP.0 != 0 {
14715 if !first {
14716 f.write_str(" | ")?;
14717 }
14718 f.write_str("RAY_TRACING_OPACITY_MICROMAP")?;
14719 remaining &= !Self::RAY_TRACING_OPACITY_MICROMAP.0;
14720 first = false;
14721 }
14722 if remaining & Self::RAY_TRACING_DISPLACEMENT_MICROMAP.0 != 0 {
14723 if !first {
14724 f.write_str(" | ")?;
14725 }
14726 f.write_str("RAY_TRACING_DISPLACEMENT_MICROMAP")?;
14727 remaining &= !Self::RAY_TRACING_DISPLACEMENT_MICROMAP.0;
14728 first = false;
14729 }
14730 if remaining != 0u32 {
14731 if !first {
14732 f.write_str(" | ")?;
14733 }
14734 write!(f, "{:#x}", remaining)?;
14735 } else if first {
14736 f.write_str("(empty)")?;
14737 }
14738 Ok(())
14739 }
14740}
14741#[repr(transparent)]
14743#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
14744#[doc(alias = "VkPipelineCreateFlagBits2")]
14745pub struct PipelineCreateFlagBits2(u64);
14746impl PipelineCreateFlagBits2 {
14747 #[inline]
14748 pub const fn empty() -> Self {
14749 Self(0u64)
14750 }
14751 #[inline]
14752 pub const fn from_raw(value: u64) -> Self {
14753 Self(value)
14754 }
14755 #[inline]
14756 pub const fn as_raw(self) -> u64 {
14757 self.0
14758 }
14759 #[inline]
14760 pub const fn is_empty(self) -> bool {
14761 self.0 == 0u64
14762 }
14763 #[inline]
14764 pub const fn contains(self, other: Self) -> bool {
14765 (self.0 & other.0) == other.0
14766 }
14767 #[inline]
14768 pub const fn all() -> Self {
14769 Self(10685878632447u64)
14770 }
14771 pub const _2_DISABLE_OPTIMIZATION: Self = Self(1u64);
14773 pub const _2_ALLOW_DERIVATIVES: Self = Self(2u64);
14775 pub const _2_DERIVATIVE: Self = Self(4u64);
14777 pub const _2_VIEW_INDEX_FROM_DEVICE_INDEX: Self = Self(8u64);
14779 pub const _2_DISPATCH_BASE: Self = Self(16u64);
14781 pub const _2_FAIL_ON_PIPELINE_COMPILE_REQUIRED: Self = Self(256u64);
14783 pub const _2_EARLY_RETURN_ON_FAILURE: Self = Self(512u64);
14785 pub const _2_NO_PROTECTED_ACCESS: Self = Self(134217728u64);
14787 pub const _2_PROTECTED_ACCESS_ONLY: Self = Self(1073741824u64);
14789 pub const _2_EXECUTION_GRAPH_BIT: Self = Self(4294967296u64);
14791 pub const _2_DESCRIPTOR_HEAP: Self = Self(68719476736u64);
14793 pub const _2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES: Self = Self::_2_RAY_TRACING_SKIP_TRIANGLES;
14794 pub const _2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES: Self = Self(
14796 8589934592u64,
14797 );
14798 pub const _2_ENABLE_LEGACY_DITHERING: Self = Self(17179869184u64);
14800 pub const _2_DEFER_COMPILE: Self = Self(32u64);
14802 pub const _2_CAPTURE_STATISTICS: Self = Self(64u64);
14804 pub const _2_CAPTURE_INTERNAL_REPRESENTATIONS: Self = Self(128u64);
14806 pub const _2_LINK_TIME_OPTIMIZATION: Self = Self(1024u64);
14808 pub const _2_RETAIN_LINK_TIME_OPTIMIZATION_INFO: Self = Self(8388608u64);
14810 pub const _2_LIBRARY: Self = Self(2048u64);
14812 pub const _2_RAY_TRACING_SKIP_TRIANGLES: Self = Self(4096u64);
14814 pub const _2_RAY_TRACING_SKIP_AABBS: Self = Self(8192u64);
14816 pub const _2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS: Self = Self(16384u64);
14818 pub const _2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS: Self = Self(32768u64);
14820 pub const _2_RAY_TRACING_NO_NULL_MISS_SHADERS: Self = Self(65536u64);
14822 pub const _2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS: Self = Self(131072u64);
14824 pub const _2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY: Self = Self(524288u64);
14826 pub const _2_INDIRECT_BINDABLE: Self = Self(262144u64);
14828 pub const _2_RAY_TRACING_ALLOW_MOTION: Self = Self(1048576u64);
14830 pub const _2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(2097152u64);
14832 pub const _2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self(4194304u64);
14834 pub const _2_RAY_TRACING_OPACITY_MICROMAP: Self = Self(16777216u64);
14836 pub const _2_COLOR_ATTACHMENT_FEEDBACK_LOOP: Self = Self(33554432u64);
14838 pub const _2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP: Self = Self(67108864u64);
14840 pub const _2_RAY_TRACING_DISPLACEMENT_MICROMAP: Self = Self(268435456u64);
14842 pub const _2_DESCRIPTOR_BUFFER: Self = Self(536870912u64);
14844 pub const _2_DISALLOW_OPACITY_MICROMAP_BIT: Self = Self(137438953472u64);
14846 pub const _2_INSTRUMENT_SHADERS_BIT: Self = Self(549755813888u64);
14848 pub const _2_CAPTURE_DATA: Self = Self(2147483648u64);
14850 pub const _2_PER_LAYER_FRAGMENT_DENSITY_BIT: Self = Self(1099511627776u64);
14852 pub const _2_64_BIT_INDEXING: Self = Self(8796093022208u64);
14854}
14855impl core::ops::BitOr for PipelineCreateFlagBits2 {
14856 type Output = Self;
14857 #[inline]
14858 fn bitor(self, rhs: Self) -> Self {
14859 Self(self.0 | rhs.0)
14860 }
14861}
14862impl core::ops::BitOrAssign for PipelineCreateFlagBits2 {
14863 #[inline]
14864 fn bitor_assign(&mut self, rhs: Self) {
14865 self.0 |= rhs.0;
14866 }
14867}
14868impl core::ops::BitAnd for PipelineCreateFlagBits2 {
14869 type Output = Self;
14870 #[inline]
14871 fn bitand(self, rhs: Self) -> Self {
14872 Self(self.0 & rhs.0)
14873 }
14874}
14875impl core::ops::BitAndAssign for PipelineCreateFlagBits2 {
14876 #[inline]
14877 fn bitand_assign(&mut self, rhs: Self) {
14878 self.0 &= rhs.0;
14879 }
14880}
14881impl core::ops::BitXor for PipelineCreateFlagBits2 {
14882 type Output = Self;
14883 #[inline]
14884 fn bitxor(self, rhs: Self) -> Self {
14885 Self(self.0 ^ rhs.0)
14886 }
14887}
14888impl core::ops::BitXorAssign for PipelineCreateFlagBits2 {
14889 #[inline]
14890 fn bitxor_assign(&mut self, rhs: Self) {
14891 self.0 ^= rhs.0;
14892 }
14893}
14894impl core::ops::Not for PipelineCreateFlagBits2 {
14895 type Output = Self;
14896 #[inline]
14897 fn not(self) -> Self {
14898 Self(!self.0)
14899 }
14900}
14901impl core::fmt::Debug for PipelineCreateFlagBits2 {
14902 #[allow(unused_mut, unused_variables)]
14903 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
14904 let mut first = true;
14905 let mut remaining = self.0;
14906 if remaining & Self::_2_DISABLE_OPTIMIZATION.0 != 0 {
14907 if !first {
14908 f.write_str(" | ")?;
14909 }
14910 f.write_str("_2_DISABLE_OPTIMIZATION")?;
14911 remaining &= !Self::_2_DISABLE_OPTIMIZATION.0;
14912 first = false;
14913 }
14914 if remaining & Self::_2_ALLOW_DERIVATIVES.0 != 0 {
14915 if !first {
14916 f.write_str(" | ")?;
14917 }
14918 f.write_str("_2_ALLOW_DERIVATIVES")?;
14919 remaining &= !Self::_2_ALLOW_DERIVATIVES.0;
14920 first = false;
14921 }
14922 if remaining & Self::_2_DERIVATIVE.0 != 0 {
14923 if !first {
14924 f.write_str(" | ")?;
14925 }
14926 f.write_str("_2_DERIVATIVE")?;
14927 remaining &= !Self::_2_DERIVATIVE.0;
14928 first = false;
14929 }
14930 if remaining & Self::_2_VIEW_INDEX_FROM_DEVICE_INDEX.0 != 0 {
14931 if !first {
14932 f.write_str(" | ")?;
14933 }
14934 f.write_str("_2_VIEW_INDEX_FROM_DEVICE_INDEX")?;
14935 remaining &= !Self::_2_VIEW_INDEX_FROM_DEVICE_INDEX.0;
14936 first = false;
14937 }
14938 if remaining & Self::_2_DISPATCH_BASE.0 != 0 {
14939 if !first {
14940 f.write_str(" | ")?;
14941 }
14942 f.write_str("_2_DISPATCH_BASE")?;
14943 remaining &= !Self::_2_DISPATCH_BASE.0;
14944 first = false;
14945 }
14946 if remaining & Self::_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED.0 != 0 {
14947 if !first {
14948 f.write_str(" | ")?;
14949 }
14950 f.write_str("_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED")?;
14951 remaining &= !Self::_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED.0;
14952 first = false;
14953 }
14954 if remaining & Self::_2_EARLY_RETURN_ON_FAILURE.0 != 0 {
14955 if !first {
14956 f.write_str(" | ")?;
14957 }
14958 f.write_str("_2_EARLY_RETURN_ON_FAILURE")?;
14959 remaining &= !Self::_2_EARLY_RETURN_ON_FAILURE.0;
14960 first = false;
14961 }
14962 if remaining & Self::_2_NO_PROTECTED_ACCESS.0 != 0 {
14963 if !first {
14964 f.write_str(" | ")?;
14965 }
14966 f.write_str("_2_NO_PROTECTED_ACCESS")?;
14967 remaining &= !Self::_2_NO_PROTECTED_ACCESS.0;
14968 first = false;
14969 }
14970 if remaining & Self::_2_PROTECTED_ACCESS_ONLY.0 != 0 {
14971 if !first {
14972 f.write_str(" | ")?;
14973 }
14974 f.write_str("_2_PROTECTED_ACCESS_ONLY")?;
14975 remaining &= !Self::_2_PROTECTED_ACCESS_ONLY.0;
14976 first = false;
14977 }
14978 if remaining & Self::_2_EXECUTION_GRAPH_BIT.0 != 0 {
14979 if !first {
14980 f.write_str(" | ")?;
14981 }
14982 f.write_str("_2_EXECUTION_GRAPH_BIT")?;
14983 remaining &= !Self::_2_EXECUTION_GRAPH_BIT.0;
14984 first = false;
14985 }
14986 if remaining & Self::_2_DESCRIPTOR_HEAP.0 != 0 {
14987 if !first {
14988 f.write_str(" | ")?;
14989 }
14990 f.write_str("_2_DESCRIPTOR_HEAP")?;
14991 remaining &= !Self::_2_DESCRIPTOR_HEAP.0;
14992 first = false;
14993 }
14994 if remaining & Self::_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES.0 != 0
14995 {
14996 if !first {
14997 f.write_str(" | ")?;
14998 }
14999 f.write_str("_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES")?;
15000 remaining &= !Self::_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES.0;
15001 first = false;
15002 }
15003 if remaining & Self::_2_ENABLE_LEGACY_DITHERING.0 != 0 {
15004 if !first {
15005 f.write_str(" | ")?;
15006 }
15007 f.write_str("_2_ENABLE_LEGACY_DITHERING")?;
15008 remaining &= !Self::_2_ENABLE_LEGACY_DITHERING.0;
15009 first = false;
15010 }
15011 if remaining & Self::_2_DEFER_COMPILE.0 != 0 {
15012 if !first {
15013 f.write_str(" | ")?;
15014 }
15015 f.write_str("_2_DEFER_COMPILE")?;
15016 remaining &= !Self::_2_DEFER_COMPILE.0;
15017 first = false;
15018 }
15019 if remaining & Self::_2_CAPTURE_STATISTICS.0 != 0 {
15020 if !first {
15021 f.write_str(" | ")?;
15022 }
15023 f.write_str("_2_CAPTURE_STATISTICS")?;
15024 remaining &= !Self::_2_CAPTURE_STATISTICS.0;
15025 first = false;
15026 }
15027 if remaining & Self::_2_CAPTURE_INTERNAL_REPRESENTATIONS.0 != 0 {
15028 if !first {
15029 f.write_str(" | ")?;
15030 }
15031 f.write_str("_2_CAPTURE_INTERNAL_REPRESENTATIONS")?;
15032 remaining &= !Self::_2_CAPTURE_INTERNAL_REPRESENTATIONS.0;
15033 first = false;
15034 }
15035 if remaining & Self::_2_LINK_TIME_OPTIMIZATION.0 != 0 {
15036 if !first {
15037 f.write_str(" | ")?;
15038 }
15039 f.write_str("_2_LINK_TIME_OPTIMIZATION")?;
15040 remaining &= !Self::_2_LINK_TIME_OPTIMIZATION.0;
15041 first = false;
15042 }
15043 if remaining & Self::_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO.0 != 0 {
15044 if !first {
15045 f.write_str(" | ")?;
15046 }
15047 f.write_str("_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO")?;
15048 remaining &= !Self::_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO.0;
15049 first = false;
15050 }
15051 if remaining & Self::_2_LIBRARY.0 != 0 {
15052 if !first {
15053 f.write_str(" | ")?;
15054 }
15055 f.write_str("_2_LIBRARY")?;
15056 remaining &= !Self::_2_LIBRARY.0;
15057 first = false;
15058 }
15059 if remaining & Self::_2_RAY_TRACING_SKIP_TRIANGLES.0 != 0 {
15060 if !first {
15061 f.write_str(" | ")?;
15062 }
15063 f.write_str("_2_RAY_TRACING_SKIP_TRIANGLES")?;
15064 remaining &= !Self::_2_RAY_TRACING_SKIP_TRIANGLES.0;
15065 first = false;
15066 }
15067 if remaining & Self::_2_RAY_TRACING_SKIP_AABBS.0 != 0 {
15068 if !first {
15069 f.write_str(" | ")?;
15070 }
15071 f.write_str("_2_RAY_TRACING_SKIP_AABBS")?;
15072 remaining &= !Self::_2_RAY_TRACING_SKIP_AABBS.0;
15073 first = false;
15074 }
15075 if remaining & Self::_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0 != 0 {
15076 if !first {
15077 f.write_str(" | ")?;
15078 }
15079 f.write_str("_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS")?;
15080 remaining &= !Self::_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS.0;
15081 first = false;
15082 }
15083 if remaining & Self::_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0 != 0 {
15084 if !first {
15085 f.write_str(" | ")?;
15086 }
15087 f.write_str("_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS")?;
15088 remaining &= !Self::_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS.0;
15089 first = false;
15090 }
15091 if remaining & Self::_2_RAY_TRACING_NO_NULL_MISS_SHADERS.0 != 0 {
15092 if !first {
15093 f.write_str(" | ")?;
15094 }
15095 f.write_str("_2_RAY_TRACING_NO_NULL_MISS_SHADERS")?;
15096 remaining &= !Self::_2_RAY_TRACING_NO_NULL_MISS_SHADERS.0;
15097 first = false;
15098 }
15099 if remaining & Self::_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0 != 0 {
15100 if !first {
15101 f.write_str(" | ")?;
15102 }
15103 f.write_str("_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS")?;
15104 remaining &= !Self::_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS.0;
15105 first = false;
15106 }
15107 if remaining & Self::_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0 != 0 {
15108 if !first {
15109 f.write_str(" | ")?;
15110 }
15111 f.write_str("_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY")?;
15112 remaining &= !Self::_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY.0;
15113 first = false;
15114 }
15115 if remaining & Self::_2_INDIRECT_BINDABLE.0 != 0 {
15116 if !first {
15117 f.write_str(" | ")?;
15118 }
15119 f.write_str("_2_INDIRECT_BINDABLE")?;
15120 remaining &= !Self::_2_INDIRECT_BINDABLE.0;
15121 first = false;
15122 }
15123 if remaining & Self::_2_RAY_TRACING_ALLOW_MOTION.0 != 0 {
15124 if !first {
15125 f.write_str(" | ")?;
15126 }
15127 f.write_str("_2_RAY_TRACING_ALLOW_MOTION")?;
15128 remaining &= !Self::_2_RAY_TRACING_ALLOW_MOTION.0;
15129 first = false;
15130 }
15131 if remaining & Self::_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
15132 if !first {
15133 f.write_str(" | ")?;
15134 }
15135 f.write_str("_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT")?;
15136 remaining &= !Self::_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT.0;
15137 first = false;
15138 }
15139 if remaining & Self::_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT.0 != 0 {
15140 if !first {
15141 f.write_str(" | ")?;
15142 }
15143 f.write_str("_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT")?;
15144 remaining &= !Self::_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT.0;
15145 first = false;
15146 }
15147 if remaining & Self::_2_RAY_TRACING_OPACITY_MICROMAP.0 != 0 {
15148 if !first {
15149 f.write_str(" | ")?;
15150 }
15151 f.write_str("_2_RAY_TRACING_OPACITY_MICROMAP")?;
15152 remaining &= !Self::_2_RAY_TRACING_OPACITY_MICROMAP.0;
15153 first = false;
15154 }
15155 if remaining & Self::_2_COLOR_ATTACHMENT_FEEDBACK_LOOP.0 != 0 {
15156 if !first {
15157 f.write_str(" | ")?;
15158 }
15159 f.write_str("_2_COLOR_ATTACHMENT_FEEDBACK_LOOP")?;
15160 remaining &= !Self::_2_COLOR_ATTACHMENT_FEEDBACK_LOOP.0;
15161 first = false;
15162 }
15163 if remaining & Self::_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP.0 != 0 {
15164 if !first {
15165 f.write_str(" | ")?;
15166 }
15167 f.write_str("_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP")?;
15168 remaining &= !Self::_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP.0;
15169 first = false;
15170 }
15171 if remaining & Self::_2_RAY_TRACING_DISPLACEMENT_MICROMAP.0 != 0 {
15172 if !first {
15173 f.write_str(" | ")?;
15174 }
15175 f.write_str("_2_RAY_TRACING_DISPLACEMENT_MICROMAP")?;
15176 remaining &= !Self::_2_RAY_TRACING_DISPLACEMENT_MICROMAP.0;
15177 first = false;
15178 }
15179 if remaining & Self::_2_DESCRIPTOR_BUFFER.0 != 0 {
15180 if !first {
15181 f.write_str(" | ")?;
15182 }
15183 f.write_str("_2_DESCRIPTOR_BUFFER")?;
15184 remaining &= !Self::_2_DESCRIPTOR_BUFFER.0;
15185 first = false;
15186 }
15187 if remaining & Self::_2_DISALLOW_OPACITY_MICROMAP_BIT.0 != 0 {
15188 if !first {
15189 f.write_str(" | ")?;
15190 }
15191 f.write_str("_2_DISALLOW_OPACITY_MICROMAP_BIT")?;
15192 remaining &= !Self::_2_DISALLOW_OPACITY_MICROMAP_BIT.0;
15193 first = false;
15194 }
15195 if remaining & Self::_2_INSTRUMENT_SHADERS_BIT.0 != 0 {
15196 if !first {
15197 f.write_str(" | ")?;
15198 }
15199 f.write_str("_2_INSTRUMENT_SHADERS_BIT")?;
15200 remaining &= !Self::_2_INSTRUMENT_SHADERS_BIT.0;
15201 first = false;
15202 }
15203 if remaining & Self::_2_CAPTURE_DATA.0 != 0 {
15204 if !first {
15205 f.write_str(" | ")?;
15206 }
15207 f.write_str("_2_CAPTURE_DATA")?;
15208 remaining &= !Self::_2_CAPTURE_DATA.0;
15209 first = false;
15210 }
15211 if remaining & Self::_2_PER_LAYER_FRAGMENT_DENSITY_BIT.0 != 0 {
15212 if !first {
15213 f.write_str(" | ")?;
15214 }
15215 f.write_str("_2_PER_LAYER_FRAGMENT_DENSITY_BIT")?;
15216 remaining &= !Self::_2_PER_LAYER_FRAGMENT_DENSITY_BIT.0;
15217 first = false;
15218 }
15219 if remaining & Self::_2_64_BIT_INDEXING.0 != 0 {
15220 if !first {
15221 f.write_str(" | ")?;
15222 }
15223 f.write_str("_2_64_BIT_INDEXING")?;
15224 remaining &= !Self::_2_64_BIT_INDEXING.0;
15225 first = false;
15226 }
15227 if remaining != 0u64 {
15228 if !first {
15229 f.write_str(" | ")?;
15230 }
15231 write!(f, "{:#x}", remaining)?;
15232 } else if first {
15233 f.write_str("(empty)")?;
15234 }
15235 Ok(())
15236 }
15237}
15238#[repr(transparent)]
15240#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
15241#[doc(alias = "VkPipelineCreationFeedbackFlagBits")]
15242pub struct PipelineCreationFeedbackFlagBits(u32);
15243impl PipelineCreationFeedbackFlagBits {
15244 #[inline]
15245 pub const fn empty() -> Self {
15246 Self(0u32)
15247 }
15248 #[inline]
15249 pub const fn from_raw(value: u32) -> Self {
15250 Self(value)
15251 }
15252 #[inline]
15253 pub const fn as_raw(self) -> u32 {
15254 self.0
15255 }
15256 #[inline]
15257 pub const fn is_empty(self) -> bool {
15258 self.0 == 0u32
15259 }
15260 #[inline]
15261 pub const fn contains(self, other: Self) -> bool {
15262 (self.0 & other.0) == other.0
15263 }
15264 #[inline]
15265 pub const fn all() -> Self {
15266 Self(7u32)
15267 }
15268 pub const VALID: Self = Self(1u32);
15270 pub const APPLICATION_PIPELINE_CACHE_HIT: Self = Self(2u32);
15272 pub const BASE_PIPELINE_ACCELERATION: Self = Self(4u32);
15274}
15275impl core::ops::BitOr for PipelineCreationFeedbackFlagBits {
15276 type Output = Self;
15277 #[inline]
15278 fn bitor(self, rhs: Self) -> Self {
15279 Self(self.0 | rhs.0)
15280 }
15281}
15282impl core::ops::BitOrAssign for PipelineCreationFeedbackFlagBits {
15283 #[inline]
15284 fn bitor_assign(&mut self, rhs: Self) {
15285 self.0 |= rhs.0;
15286 }
15287}
15288impl core::ops::BitAnd for PipelineCreationFeedbackFlagBits {
15289 type Output = Self;
15290 #[inline]
15291 fn bitand(self, rhs: Self) -> Self {
15292 Self(self.0 & rhs.0)
15293 }
15294}
15295impl core::ops::BitAndAssign for PipelineCreationFeedbackFlagBits {
15296 #[inline]
15297 fn bitand_assign(&mut self, rhs: Self) {
15298 self.0 &= rhs.0;
15299 }
15300}
15301impl core::ops::BitXor for PipelineCreationFeedbackFlagBits {
15302 type Output = Self;
15303 #[inline]
15304 fn bitxor(self, rhs: Self) -> Self {
15305 Self(self.0 ^ rhs.0)
15306 }
15307}
15308impl core::ops::BitXorAssign for PipelineCreationFeedbackFlagBits {
15309 #[inline]
15310 fn bitxor_assign(&mut self, rhs: Self) {
15311 self.0 ^= rhs.0;
15312 }
15313}
15314impl core::ops::Not for PipelineCreationFeedbackFlagBits {
15315 type Output = Self;
15316 #[inline]
15317 fn not(self) -> Self {
15318 Self(!self.0)
15319 }
15320}
15321impl core::fmt::Debug for PipelineCreationFeedbackFlagBits {
15322 #[allow(unused_mut, unused_variables)]
15323 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
15324 let mut first = true;
15325 let mut remaining = self.0;
15326 if remaining & Self::VALID.0 != 0 {
15327 if !first {
15328 f.write_str(" | ")?;
15329 }
15330 f.write_str("VALID")?;
15331 remaining &= !Self::VALID.0;
15332 first = false;
15333 }
15334 if remaining & Self::APPLICATION_PIPELINE_CACHE_HIT.0 != 0 {
15335 if !first {
15336 f.write_str(" | ")?;
15337 }
15338 f.write_str("APPLICATION_PIPELINE_CACHE_HIT")?;
15339 remaining &= !Self::APPLICATION_PIPELINE_CACHE_HIT.0;
15340 first = false;
15341 }
15342 if remaining & Self::BASE_PIPELINE_ACCELERATION.0 != 0 {
15343 if !first {
15344 f.write_str(" | ")?;
15345 }
15346 f.write_str("BASE_PIPELINE_ACCELERATION")?;
15347 remaining &= !Self::BASE_PIPELINE_ACCELERATION.0;
15348 first = false;
15349 }
15350 if remaining != 0u32 {
15351 if !first {
15352 f.write_str(" | ")?;
15353 }
15354 write!(f, "{:#x}", remaining)?;
15355 } else if first {
15356 f.write_str("(empty)")?;
15357 }
15358 Ok(())
15359 }
15360}
15361#[repr(transparent)]
15363#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
15364#[doc(alias = "VkPipelineDepthStencilStateCreateFlagBits")]
15365pub struct PipelineDepthStencilStateCreateFlagBits(u32);
15366impl PipelineDepthStencilStateCreateFlagBits {
15367 #[inline]
15368 pub const fn empty() -> Self {
15369 Self(0u32)
15370 }
15371 #[inline]
15372 pub const fn from_raw(value: u32) -> Self {
15373 Self(value)
15374 }
15375 #[inline]
15376 pub const fn as_raw(self) -> u32 {
15377 self.0
15378 }
15379 #[inline]
15380 pub const fn is_empty(self) -> bool {
15381 self.0 == 0u32
15382 }
15383 #[inline]
15384 pub const fn contains(self, other: Self) -> bool {
15385 (self.0 & other.0) == other.0
15386 }
15387 #[inline]
15388 pub const fn all() -> Self {
15389 Self(3u32)
15390 }
15391 pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS;
15392 pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS;
15393 pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS: Self = Self(1u32);
15395 pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS: Self = Self(2u32);
15397}
15398impl core::ops::BitOr for PipelineDepthStencilStateCreateFlagBits {
15399 type Output = Self;
15400 #[inline]
15401 fn bitor(self, rhs: Self) -> Self {
15402 Self(self.0 | rhs.0)
15403 }
15404}
15405impl core::ops::BitOrAssign for PipelineDepthStencilStateCreateFlagBits {
15406 #[inline]
15407 fn bitor_assign(&mut self, rhs: Self) {
15408 self.0 |= rhs.0;
15409 }
15410}
15411impl core::ops::BitAnd for PipelineDepthStencilStateCreateFlagBits {
15412 type Output = Self;
15413 #[inline]
15414 fn bitand(self, rhs: Self) -> Self {
15415 Self(self.0 & rhs.0)
15416 }
15417}
15418impl core::ops::BitAndAssign for PipelineDepthStencilStateCreateFlagBits {
15419 #[inline]
15420 fn bitand_assign(&mut self, rhs: Self) {
15421 self.0 &= rhs.0;
15422 }
15423}
15424impl core::ops::BitXor for PipelineDepthStencilStateCreateFlagBits {
15425 type Output = Self;
15426 #[inline]
15427 fn bitxor(self, rhs: Self) -> Self {
15428 Self(self.0 ^ rhs.0)
15429 }
15430}
15431impl core::ops::BitXorAssign for PipelineDepthStencilStateCreateFlagBits {
15432 #[inline]
15433 fn bitxor_assign(&mut self, rhs: Self) {
15434 self.0 ^= rhs.0;
15435 }
15436}
15437impl core::ops::Not for PipelineDepthStencilStateCreateFlagBits {
15438 type Output = Self;
15439 #[inline]
15440 fn not(self) -> Self {
15441 Self(!self.0)
15442 }
15443}
15444impl core::fmt::Debug for PipelineDepthStencilStateCreateFlagBits {
15445 #[allow(unused_mut, unused_variables)]
15446 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
15447 let mut first = true;
15448 let mut remaining = self.0;
15449 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS.0 != 0 {
15450 if !first {
15451 f.write_str(" | ")?;
15452 }
15453 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS")?;
15454 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS.0;
15455 first = false;
15456 }
15457 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS.0 != 0 {
15458 if !first {
15459 f.write_str(" | ")?;
15460 }
15461 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS")?;
15462 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS.0;
15463 first = false;
15464 }
15465 if remaining != 0u32 {
15466 if !first {
15467 f.write_str(" | ")?;
15468 }
15469 write!(f, "{:#x}", remaining)?;
15470 } else if first {
15471 f.write_str("(empty)")?;
15472 }
15473 Ok(())
15474 }
15475}
15476#[repr(transparent)]
15478#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
15479#[doc(alias = "VkPipelineLayoutCreateFlagBits")]
15480pub struct PipelineLayoutCreateFlagBits(u32);
15481impl PipelineLayoutCreateFlagBits {
15482 #[inline]
15483 pub const fn empty() -> Self {
15484 Self(0u32)
15485 }
15486 #[inline]
15487 pub const fn from_raw(value: u32) -> Self {
15488 Self(value)
15489 }
15490 #[inline]
15491 pub const fn as_raw(self) -> u32 {
15492 self.0
15493 }
15494 #[inline]
15495 pub const fn is_empty(self) -> bool {
15496 self.0 == 0u32
15497 }
15498 #[inline]
15499 pub const fn contains(self, other: Self) -> bool {
15500 (self.0 & other.0) == other.0
15501 }
15502 #[inline]
15503 pub const fn all() -> Self {
15504 Self(2u32)
15505 }
15506 pub const INDEPENDENT_SETS: Self = Self(2u32);
15508}
15509impl core::ops::BitOr for PipelineLayoutCreateFlagBits {
15510 type Output = Self;
15511 #[inline]
15512 fn bitor(self, rhs: Self) -> Self {
15513 Self(self.0 | rhs.0)
15514 }
15515}
15516impl core::ops::BitOrAssign for PipelineLayoutCreateFlagBits {
15517 #[inline]
15518 fn bitor_assign(&mut self, rhs: Self) {
15519 self.0 |= rhs.0;
15520 }
15521}
15522impl core::ops::BitAnd for PipelineLayoutCreateFlagBits {
15523 type Output = Self;
15524 #[inline]
15525 fn bitand(self, rhs: Self) -> Self {
15526 Self(self.0 & rhs.0)
15527 }
15528}
15529impl core::ops::BitAndAssign for PipelineLayoutCreateFlagBits {
15530 #[inline]
15531 fn bitand_assign(&mut self, rhs: Self) {
15532 self.0 &= rhs.0;
15533 }
15534}
15535impl core::ops::BitXor for PipelineLayoutCreateFlagBits {
15536 type Output = Self;
15537 #[inline]
15538 fn bitxor(self, rhs: Self) -> Self {
15539 Self(self.0 ^ rhs.0)
15540 }
15541}
15542impl core::ops::BitXorAssign for PipelineLayoutCreateFlagBits {
15543 #[inline]
15544 fn bitxor_assign(&mut self, rhs: Self) {
15545 self.0 ^= rhs.0;
15546 }
15547}
15548impl core::ops::Not for PipelineLayoutCreateFlagBits {
15549 type Output = Self;
15550 #[inline]
15551 fn not(self) -> Self {
15552 Self(!self.0)
15553 }
15554}
15555impl core::fmt::Debug for PipelineLayoutCreateFlagBits {
15556 #[allow(unused_mut, unused_variables)]
15557 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
15558 let mut first = true;
15559 let mut remaining = self.0;
15560 if remaining & Self::INDEPENDENT_SETS.0 != 0 {
15561 if !first {
15562 f.write_str(" | ")?;
15563 }
15564 f.write_str("INDEPENDENT_SETS")?;
15565 remaining &= !Self::INDEPENDENT_SETS.0;
15566 first = false;
15567 }
15568 if remaining != 0u32 {
15569 if !first {
15570 f.write_str(" | ")?;
15571 }
15572 write!(f, "{:#x}", remaining)?;
15573 } else if first {
15574 f.write_str("(empty)")?;
15575 }
15576 Ok(())
15577 }
15578}
15579#[repr(transparent)]
15581#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
15582#[doc(alias = "VkPipelineShaderStageCreateFlagBits")]
15583pub struct PipelineShaderStageCreateFlagBits(u32);
15584impl PipelineShaderStageCreateFlagBits {
15585 #[inline]
15586 pub const fn empty() -> Self {
15587 Self(0u32)
15588 }
15589 #[inline]
15590 pub const fn from_raw(value: u32) -> Self {
15591 Self(value)
15592 }
15593 #[inline]
15594 pub const fn as_raw(self) -> u32 {
15595 self.0
15596 }
15597 #[inline]
15598 pub const fn is_empty(self) -> bool {
15599 self.0 == 0u32
15600 }
15601 #[inline]
15602 pub const fn contains(self, other: Self) -> bool {
15603 (self.0 & other.0) == other.0
15604 }
15605 #[inline]
15606 pub const fn all() -> Self {
15607 Self(3u32)
15608 }
15609 pub const ALLOW_VARYING_SUBGROUP_SIZE: Self = Self(1u32);
15611 pub const REQUIRE_FULL_SUBGROUPS: Self = Self(2u32);
15613}
15614impl core::ops::BitOr for PipelineShaderStageCreateFlagBits {
15615 type Output = Self;
15616 #[inline]
15617 fn bitor(self, rhs: Self) -> Self {
15618 Self(self.0 | rhs.0)
15619 }
15620}
15621impl core::ops::BitOrAssign for PipelineShaderStageCreateFlagBits {
15622 #[inline]
15623 fn bitor_assign(&mut self, rhs: Self) {
15624 self.0 |= rhs.0;
15625 }
15626}
15627impl core::ops::BitAnd for PipelineShaderStageCreateFlagBits {
15628 type Output = Self;
15629 #[inline]
15630 fn bitand(self, rhs: Self) -> Self {
15631 Self(self.0 & rhs.0)
15632 }
15633}
15634impl core::ops::BitAndAssign for PipelineShaderStageCreateFlagBits {
15635 #[inline]
15636 fn bitand_assign(&mut self, rhs: Self) {
15637 self.0 &= rhs.0;
15638 }
15639}
15640impl core::ops::BitXor for PipelineShaderStageCreateFlagBits {
15641 type Output = Self;
15642 #[inline]
15643 fn bitxor(self, rhs: Self) -> Self {
15644 Self(self.0 ^ rhs.0)
15645 }
15646}
15647impl core::ops::BitXorAssign for PipelineShaderStageCreateFlagBits {
15648 #[inline]
15649 fn bitxor_assign(&mut self, rhs: Self) {
15650 self.0 ^= rhs.0;
15651 }
15652}
15653impl core::ops::Not for PipelineShaderStageCreateFlagBits {
15654 type Output = Self;
15655 #[inline]
15656 fn not(self) -> Self {
15657 Self(!self.0)
15658 }
15659}
15660impl core::fmt::Debug for PipelineShaderStageCreateFlagBits {
15661 #[allow(unused_mut, unused_variables)]
15662 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
15663 let mut first = true;
15664 let mut remaining = self.0;
15665 if remaining & Self::ALLOW_VARYING_SUBGROUP_SIZE.0 != 0 {
15666 if !first {
15667 f.write_str(" | ")?;
15668 }
15669 f.write_str("ALLOW_VARYING_SUBGROUP_SIZE")?;
15670 remaining &= !Self::ALLOW_VARYING_SUBGROUP_SIZE.0;
15671 first = false;
15672 }
15673 if remaining & Self::REQUIRE_FULL_SUBGROUPS.0 != 0 {
15674 if !first {
15675 f.write_str(" | ")?;
15676 }
15677 f.write_str("REQUIRE_FULL_SUBGROUPS")?;
15678 remaining &= !Self::REQUIRE_FULL_SUBGROUPS.0;
15679 first = false;
15680 }
15681 if remaining != 0u32 {
15682 if !first {
15683 f.write_str(" | ")?;
15684 }
15685 write!(f, "{:#x}", remaining)?;
15686 } else if first {
15687 f.write_str("(empty)")?;
15688 }
15689 Ok(())
15690 }
15691}
15692#[repr(transparent)]
15694#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
15695#[doc(alias = "VkPipelineStageFlagBits")]
15696pub struct PipelineStageFlagBits(u32);
15697impl PipelineStageFlagBits {
15698 #[inline]
15699 pub const fn empty() -> Self {
15700 Self(0u32)
15701 }
15702 #[inline]
15703 pub const fn from_raw(value: u32) -> Self {
15704 Self(value)
15705 }
15706 #[inline]
15707 pub const fn as_raw(self) -> u32 {
15708 self.0
15709 }
15710 #[inline]
15711 pub const fn is_empty(self) -> bool {
15712 self.0 == 0u32
15713 }
15714 #[inline]
15715 pub const fn contains(self, other: Self) -> bool {
15716 (self.0 & other.0) == other.0
15717 }
15718 #[inline]
15719 pub const fn all() -> Self {
15720 Self(67108863u32)
15721 }
15722 pub const TOP_OF_PIPE: Self = Self(1u32);
15724 pub const DRAW_INDIRECT: Self = Self(2u32);
15726 pub const VERTEX_INPUT: Self = Self(4u32);
15728 pub const VERTEX_SHADER: Self = Self(8u32);
15730 pub const TESSELLATION_CONTROL_SHADER: Self = Self(16u32);
15732 pub const TESSELLATION_EVALUATION_SHADER: Self = Self(32u32);
15734 pub const GEOMETRY_SHADER: Self = Self(64u32);
15736 pub const FRAGMENT_SHADER: Self = Self(128u32);
15738 pub const EARLY_FRAGMENT_TESTS: Self = Self(256u32);
15740 pub const LATE_FRAGMENT_TESTS: Self = Self(512u32);
15742 pub const COLOR_ATTACHMENT_OUTPUT: Self = Self(1024u32);
15744 pub const COMPUTE_SHADER: Self = Self(2048u32);
15746 pub const TRANSFER: Self = Self(4096u32);
15748 pub const BOTTOM_OF_PIPE: Self = Self(8192u32);
15750 pub const HOST: Self = Self(16384u32);
15752 pub const ALL_GRAPHICS: Self = Self(32768u32);
15754 pub const ALL_COMMANDS: Self = Self(65536u32);
15756 pub const NONE: Self = Self(0u32);
15757 pub const TRANSFORM_FEEDBACK: Self = Self(16777216u32);
15759 pub const CONDITIONAL_RENDERING: Self = Self(262144u32);
15761 pub const ACCELERATION_STRUCTURE_BUILD: Self = Self(33554432u32);
15763 pub const RAY_TRACING_SHADER: Self = Self(2097152u32);
15765 pub const SHADING_RATE_IMAGE: Self = Self::FRAGMENT_SHADING_RATE_ATTACHMENT;
15766 pub const FRAGMENT_DENSITY_PROCESS: Self = Self(8388608u32);
15768 pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(4194304u32);
15770 pub const TASK_SHADER: Self = Self(524288u32);
15772 pub const MESH_SHADER: Self = Self(1048576u32);
15774 pub const COMMAND_PREPROCESS: Self = Self(131072u32);
15776}
15777impl core::ops::BitOr for PipelineStageFlagBits {
15778 type Output = Self;
15779 #[inline]
15780 fn bitor(self, rhs: Self) -> Self {
15781 Self(self.0 | rhs.0)
15782 }
15783}
15784impl core::ops::BitOrAssign for PipelineStageFlagBits {
15785 #[inline]
15786 fn bitor_assign(&mut self, rhs: Self) {
15787 self.0 |= rhs.0;
15788 }
15789}
15790impl core::ops::BitAnd for PipelineStageFlagBits {
15791 type Output = Self;
15792 #[inline]
15793 fn bitand(self, rhs: Self) -> Self {
15794 Self(self.0 & rhs.0)
15795 }
15796}
15797impl core::ops::BitAndAssign for PipelineStageFlagBits {
15798 #[inline]
15799 fn bitand_assign(&mut self, rhs: Self) {
15800 self.0 &= rhs.0;
15801 }
15802}
15803impl core::ops::BitXor for PipelineStageFlagBits {
15804 type Output = Self;
15805 #[inline]
15806 fn bitxor(self, rhs: Self) -> Self {
15807 Self(self.0 ^ rhs.0)
15808 }
15809}
15810impl core::ops::BitXorAssign for PipelineStageFlagBits {
15811 #[inline]
15812 fn bitxor_assign(&mut self, rhs: Self) {
15813 self.0 ^= rhs.0;
15814 }
15815}
15816impl core::ops::Not for PipelineStageFlagBits {
15817 type Output = Self;
15818 #[inline]
15819 fn not(self) -> Self {
15820 Self(!self.0)
15821 }
15822}
15823impl core::fmt::Debug for PipelineStageFlagBits {
15824 #[allow(unused_mut, unused_variables)]
15825 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
15826 let mut first = true;
15827 let mut remaining = self.0;
15828 if remaining & Self::TOP_OF_PIPE.0 != 0 {
15829 if !first {
15830 f.write_str(" | ")?;
15831 }
15832 f.write_str("TOP_OF_PIPE")?;
15833 remaining &= !Self::TOP_OF_PIPE.0;
15834 first = false;
15835 }
15836 if remaining & Self::DRAW_INDIRECT.0 != 0 {
15837 if !first {
15838 f.write_str(" | ")?;
15839 }
15840 f.write_str("DRAW_INDIRECT")?;
15841 remaining &= !Self::DRAW_INDIRECT.0;
15842 first = false;
15843 }
15844 if remaining & Self::VERTEX_INPUT.0 != 0 {
15845 if !first {
15846 f.write_str(" | ")?;
15847 }
15848 f.write_str("VERTEX_INPUT")?;
15849 remaining &= !Self::VERTEX_INPUT.0;
15850 first = false;
15851 }
15852 if remaining & Self::VERTEX_SHADER.0 != 0 {
15853 if !first {
15854 f.write_str(" | ")?;
15855 }
15856 f.write_str("VERTEX_SHADER")?;
15857 remaining &= !Self::VERTEX_SHADER.0;
15858 first = false;
15859 }
15860 if remaining & Self::TESSELLATION_CONTROL_SHADER.0 != 0 {
15861 if !first {
15862 f.write_str(" | ")?;
15863 }
15864 f.write_str("TESSELLATION_CONTROL_SHADER")?;
15865 remaining &= !Self::TESSELLATION_CONTROL_SHADER.0;
15866 first = false;
15867 }
15868 if remaining & Self::TESSELLATION_EVALUATION_SHADER.0 != 0 {
15869 if !first {
15870 f.write_str(" | ")?;
15871 }
15872 f.write_str("TESSELLATION_EVALUATION_SHADER")?;
15873 remaining &= !Self::TESSELLATION_EVALUATION_SHADER.0;
15874 first = false;
15875 }
15876 if remaining & Self::GEOMETRY_SHADER.0 != 0 {
15877 if !first {
15878 f.write_str(" | ")?;
15879 }
15880 f.write_str("GEOMETRY_SHADER")?;
15881 remaining &= !Self::GEOMETRY_SHADER.0;
15882 first = false;
15883 }
15884 if remaining & Self::FRAGMENT_SHADER.0 != 0 {
15885 if !first {
15886 f.write_str(" | ")?;
15887 }
15888 f.write_str("FRAGMENT_SHADER")?;
15889 remaining &= !Self::FRAGMENT_SHADER.0;
15890 first = false;
15891 }
15892 if remaining & Self::EARLY_FRAGMENT_TESTS.0 != 0 {
15893 if !first {
15894 f.write_str(" | ")?;
15895 }
15896 f.write_str("EARLY_FRAGMENT_TESTS")?;
15897 remaining &= !Self::EARLY_FRAGMENT_TESTS.0;
15898 first = false;
15899 }
15900 if remaining & Self::LATE_FRAGMENT_TESTS.0 != 0 {
15901 if !first {
15902 f.write_str(" | ")?;
15903 }
15904 f.write_str("LATE_FRAGMENT_TESTS")?;
15905 remaining &= !Self::LATE_FRAGMENT_TESTS.0;
15906 first = false;
15907 }
15908 if remaining & Self::COLOR_ATTACHMENT_OUTPUT.0 != 0 {
15909 if !first {
15910 f.write_str(" | ")?;
15911 }
15912 f.write_str("COLOR_ATTACHMENT_OUTPUT")?;
15913 remaining &= !Self::COLOR_ATTACHMENT_OUTPUT.0;
15914 first = false;
15915 }
15916 if remaining & Self::COMPUTE_SHADER.0 != 0 {
15917 if !first {
15918 f.write_str(" | ")?;
15919 }
15920 f.write_str("COMPUTE_SHADER")?;
15921 remaining &= !Self::COMPUTE_SHADER.0;
15922 first = false;
15923 }
15924 if remaining & Self::TRANSFER.0 != 0 {
15925 if !first {
15926 f.write_str(" | ")?;
15927 }
15928 f.write_str("TRANSFER")?;
15929 remaining &= !Self::TRANSFER.0;
15930 first = false;
15931 }
15932 if remaining & Self::BOTTOM_OF_PIPE.0 != 0 {
15933 if !first {
15934 f.write_str(" | ")?;
15935 }
15936 f.write_str("BOTTOM_OF_PIPE")?;
15937 remaining &= !Self::BOTTOM_OF_PIPE.0;
15938 first = false;
15939 }
15940 if remaining & Self::HOST.0 != 0 {
15941 if !first {
15942 f.write_str(" | ")?;
15943 }
15944 f.write_str("HOST")?;
15945 remaining &= !Self::HOST.0;
15946 first = false;
15947 }
15948 if remaining & Self::ALL_GRAPHICS.0 != 0 {
15949 if !first {
15950 f.write_str(" | ")?;
15951 }
15952 f.write_str("ALL_GRAPHICS")?;
15953 remaining &= !Self::ALL_GRAPHICS.0;
15954 first = false;
15955 }
15956 if remaining & Self::ALL_COMMANDS.0 != 0 {
15957 if !first {
15958 f.write_str(" | ")?;
15959 }
15960 f.write_str("ALL_COMMANDS")?;
15961 remaining &= !Self::ALL_COMMANDS.0;
15962 first = false;
15963 }
15964 if remaining & Self::TRANSFORM_FEEDBACK.0 != 0 {
15965 if !first {
15966 f.write_str(" | ")?;
15967 }
15968 f.write_str("TRANSFORM_FEEDBACK")?;
15969 remaining &= !Self::TRANSFORM_FEEDBACK.0;
15970 first = false;
15971 }
15972 if remaining & Self::CONDITIONAL_RENDERING.0 != 0 {
15973 if !first {
15974 f.write_str(" | ")?;
15975 }
15976 f.write_str("CONDITIONAL_RENDERING")?;
15977 remaining &= !Self::CONDITIONAL_RENDERING.0;
15978 first = false;
15979 }
15980 if remaining & Self::ACCELERATION_STRUCTURE_BUILD.0 != 0 {
15981 if !first {
15982 f.write_str(" | ")?;
15983 }
15984 f.write_str("ACCELERATION_STRUCTURE_BUILD")?;
15985 remaining &= !Self::ACCELERATION_STRUCTURE_BUILD.0;
15986 first = false;
15987 }
15988 if remaining & Self::RAY_TRACING_SHADER.0 != 0 {
15989 if !first {
15990 f.write_str(" | ")?;
15991 }
15992 f.write_str("RAY_TRACING_SHADER")?;
15993 remaining &= !Self::RAY_TRACING_SHADER.0;
15994 first = false;
15995 }
15996 if remaining & Self::FRAGMENT_DENSITY_PROCESS.0 != 0 {
15997 if !first {
15998 f.write_str(" | ")?;
15999 }
16000 f.write_str("FRAGMENT_DENSITY_PROCESS")?;
16001 remaining &= !Self::FRAGMENT_DENSITY_PROCESS.0;
16002 first = false;
16003 }
16004 if remaining & Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
16005 if !first {
16006 f.write_str(" | ")?;
16007 }
16008 f.write_str("FRAGMENT_SHADING_RATE_ATTACHMENT")?;
16009 remaining &= !Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0;
16010 first = false;
16011 }
16012 if remaining & Self::TASK_SHADER.0 != 0 {
16013 if !first {
16014 f.write_str(" | ")?;
16015 }
16016 f.write_str("TASK_SHADER")?;
16017 remaining &= !Self::TASK_SHADER.0;
16018 first = false;
16019 }
16020 if remaining & Self::MESH_SHADER.0 != 0 {
16021 if !first {
16022 f.write_str(" | ")?;
16023 }
16024 f.write_str("MESH_SHADER")?;
16025 remaining &= !Self::MESH_SHADER.0;
16026 first = false;
16027 }
16028 if remaining & Self::COMMAND_PREPROCESS.0 != 0 {
16029 if !first {
16030 f.write_str(" | ")?;
16031 }
16032 f.write_str("COMMAND_PREPROCESS")?;
16033 remaining &= !Self::COMMAND_PREPROCESS.0;
16034 first = false;
16035 }
16036 if remaining != 0u32 {
16037 if !first {
16038 f.write_str(" | ")?;
16039 }
16040 write!(f, "{:#x}", remaining)?;
16041 } else if first {
16042 f.write_str("(empty)")?;
16043 }
16044 Ok(())
16045 }
16046}
16047#[repr(transparent)]
16049#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
16050#[doc(alias = "VkPipelineStageFlagBits2")]
16051pub struct PipelineStageFlagBits2(u64);
16052impl PipelineStageFlagBits2 {
16053 #[inline]
16054 pub const fn empty() -> Self {
16055 Self(0u64)
16056 }
16057 #[inline]
16058 pub const fn from_raw(value: u64) -> Self {
16059 Self(value)
16060 }
16061 #[inline]
16062 pub const fn as_raw(self) -> u64 {
16063 self.0
16064 }
16065 #[inline]
16066 pub const fn is_empty(self) -> bool {
16067 self.0 == 0u64
16068 }
16069 #[inline]
16070 pub const fn contains(self, other: Self) -> bool {
16071 (self.0 & other.0) == other.0
16072 }
16073 #[inline]
16074 pub const fn all() -> Self {
16075 Self(131939247849471u64)
16076 }
16077 pub const _2_NONE: Self = Self(0u64);
16078 pub const _2_TOP_OF_PIPE: Self = Self(1u64);
16080 pub const _2_DRAW_INDIRECT: Self = Self(2u64);
16082 pub const _2_VERTEX_INPUT: Self = Self(4u64);
16084 pub const _2_VERTEX_SHADER: Self = Self(8u64);
16086 pub const _2_TESSELLATION_CONTROL_SHADER: Self = Self(16u64);
16088 pub const _2_TESSELLATION_EVALUATION_SHADER: Self = Self(32u64);
16090 pub const _2_GEOMETRY_SHADER: Self = Self(64u64);
16092 pub const _2_FRAGMENT_SHADER: Self = Self(128u64);
16094 pub const _2_EARLY_FRAGMENT_TESTS: Self = Self(256u64);
16096 pub const _2_LATE_FRAGMENT_TESTS: Self = Self(512u64);
16098 pub const _2_COLOR_ATTACHMENT_OUTPUT: Self = Self(1024u64);
16100 pub const _2_COMPUTE_SHADER: Self = Self(2048u64);
16102 pub const _2_ALL_TRANSFER: Self = Self(4096u64);
16104 pub const _2_TRANSFER: Self = Self::_2_ALL_TRANSFER;
16105 pub const _2_BOTTOM_OF_PIPE: Self = Self(8192u64);
16107 pub const _2_HOST: Self = Self(16384u64);
16109 pub const _2_ALL_GRAPHICS: Self = Self(32768u64);
16111 pub const _2_ALL_COMMANDS: Self = Self(65536u64);
16113 pub const _2_COPY: Self = Self(4294967296u64);
16115 pub const _2_RESOLVE: Self = Self(8589934592u64);
16117 pub const _2_BLIT: Self = Self(17179869184u64);
16119 pub const _2_CLEAR: Self = Self(34359738368u64);
16121 pub const _2_INDEX_INPUT: Self = Self(68719476736u64);
16123 pub const _2_VERTEX_ATTRIBUTE_INPUT: Self = Self(137438953472u64);
16125 pub const _2_PRE_RASTERIZATION_SHADERS: Self = Self(274877906944u64);
16127 pub const _2_VIDEO_DECODE: Self = Self(67108864u64);
16129 pub const _2_VIDEO_ENCODE: Self = Self(134217728u64);
16131 pub const _2_TRANSFORM_FEEDBACK: Self = Self(16777216u64);
16133 pub const _2_CONDITIONAL_RENDERING: Self = Self(262144u64);
16135 pub const _2_COMMAND_PREPROCESS: Self = Self(131072u64);
16137 pub const _2_FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(4194304u64);
16139 pub const _2_SHADING_RATE_IMAGE: Self = Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT;
16140 pub const _2_ACCELERATION_STRUCTURE_BUILD: Self = Self(33554432u64);
16142 pub const _2_RAY_TRACING_SHADER: Self = Self(2097152u64);
16144 pub const _2_FRAGMENT_DENSITY_PROCESS: Self = Self(8388608u64);
16146 pub const _2_TASK_SHADER: Self = Self(524288u64);
16148 pub const _2_MESH_SHADER: Self = Self(1048576u64);
16150 pub const _2_SUBPASS_SHADER_BIT: Self = Self(549755813888u64);
16152 pub const _2_SUBPASS_SHADING_BIT: Self = Self::_2_SUBPASS_SHADER_BIT;
16153 pub const _2_INVOCATION_MASK_BIT: Self = Self(1099511627776u64);
16155 pub const _2_ACCELERATION_STRUCTURE_COPY: Self = Self(268435456u64);
16157 pub const _2_MICROMAP_BUILD: Self = Self(1073741824u64);
16159 pub const _2_CLUSTER_CULLING_SHADER_BIT: Self = Self(2199023255552u64);
16161 pub const _2_OPTICAL_FLOW: Self = Self(536870912u64);
16163 pub const _2_CONVERT_COOPERATIVE_VECTOR_MATRIX: Self = Self(17592186044416u64);
16165 pub const _2_DATA_GRAPH_BIT: Self = Self(4398046511104u64);
16167 pub const _2_COPY_INDIRECT: Self = Self(70368744177664u64);
16169 pub const _2_MEMORY_DECOMPRESSION: Self = Self(35184372088832u64);
16171}
16172impl core::ops::BitOr for PipelineStageFlagBits2 {
16173 type Output = Self;
16174 #[inline]
16175 fn bitor(self, rhs: Self) -> Self {
16176 Self(self.0 | rhs.0)
16177 }
16178}
16179impl core::ops::BitOrAssign for PipelineStageFlagBits2 {
16180 #[inline]
16181 fn bitor_assign(&mut self, rhs: Self) {
16182 self.0 |= rhs.0;
16183 }
16184}
16185impl core::ops::BitAnd for PipelineStageFlagBits2 {
16186 type Output = Self;
16187 #[inline]
16188 fn bitand(self, rhs: Self) -> Self {
16189 Self(self.0 & rhs.0)
16190 }
16191}
16192impl core::ops::BitAndAssign for PipelineStageFlagBits2 {
16193 #[inline]
16194 fn bitand_assign(&mut self, rhs: Self) {
16195 self.0 &= rhs.0;
16196 }
16197}
16198impl core::ops::BitXor for PipelineStageFlagBits2 {
16199 type Output = Self;
16200 #[inline]
16201 fn bitxor(self, rhs: Self) -> Self {
16202 Self(self.0 ^ rhs.0)
16203 }
16204}
16205impl core::ops::BitXorAssign for PipelineStageFlagBits2 {
16206 #[inline]
16207 fn bitxor_assign(&mut self, rhs: Self) {
16208 self.0 ^= rhs.0;
16209 }
16210}
16211impl core::ops::Not for PipelineStageFlagBits2 {
16212 type Output = Self;
16213 #[inline]
16214 fn not(self) -> Self {
16215 Self(!self.0)
16216 }
16217}
16218impl core::fmt::Debug for PipelineStageFlagBits2 {
16219 #[allow(unused_mut, unused_variables)]
16220 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16221 let mut first = true;
16222 let mut remaining = self.0;
16223 if remaining & Self::_2_TOP_OF_PIPE.0 != 0 {
16224 if !first {
16225 f.write_str(" | ")?;
16226 }
16227 f.write_str("_2_TOP_OF_PIPE")?;
16228 remaining &= !Self::_2_TOP_OF_PIPE.0;
16229 first = false;
16230 }
16231 if remaining & Self::_2_DRAW_INDIRECT.0 != 0 {
16232 if !first {
16233 f.write_str(" | ")?;
16234 }
16235 f.write_str("_2_DRAW_INDIRECT")?;
16236 remaining &= !Self::_2_DRAW_INDIRECT.0;
16237 first = false;
16238 }
16239 if remaining & Self::_2_VERTEX_INPUT.0 != 0 {
16240 if !first {
16241 f.write_str(" | ")?;
16242 }
16243 f.write_str("_2_VERTEX_INPUT")?;
16244 remaining &= !Self::_2_VERTEX_INPUT.0;
16245 first = false;
16246 }
16247 if remaining & Self::_2_VERTEX_SHADER.0 != 0 {
16248 if !first {
16249 f.write_str(" | ")?;
16250 }
16251 f.write_str("_2_VERTEX_SHADER")?;
16252 remaining &= !Self::_2_VERTEX_SHADER.0;
16253 first = false;
16254 }
16255 if remaining & Self::_2_TESSELLATION_CONTROL_SHADER.0 != 0 {
16256 if !first {
16257 f.write_str(" | ")?;
16258 }
16259 f.write_str("_2_TESSELLATION_CONTROL_SHADER")?;
16260 remaining &= !Self::_2_TESSELLATION_CONTROL_SHADER.0;
16261 first = false;
16262 }
16263 if remaining & Self::_2_TESSELLATION_EVALUATION_SHADER.0 != 0 {
16264 if !first {
16265 f.write_str(" | ")?;
16266 }
16267 f.write_str("_2_TESSELLATION_EVALUATION_SHADER")?;
16268 remaining &= !Self::_2_TESSELLATION_EVALUATION_SHADER.0;
16269 first = false;
16270 }
16271 if remaining & Self::_2_GEOMETRY_SHADER.0 != 0 {
16272 if !first {
16273 f.write_str(" | ")?;
16274 }
16275 f.write_str("_2_GEOMETRY_SHADER")?;
16276 remaining &= !Self::_2_GEOMETRY_SHADER.0;
16277 first = false;
16278 }
16279 if remaining & Self::_2_FRAGMENT_SHADER.0 != 0 {
16280 if !first {
16281 f.write_str(" | ")?;
16282 }
16283 f.write_str("_2_FRAGMENT_SHADER")?;
16284 remaining &= !Self::_2_FRAGMENT_SHADER.0;
16285 first = false;
16286 }
16287 if remaining & Self::_2_EARLY_FRAGMENT_TESTS.0 != 0 {
16288 if !first {
16289 f.write_str(" | ")?;
16290 }
16291 f.write_str("_2_EARLY_FRAGMENT_TESTS")?;
16292 remaining &= !Self::_2_EARLY_FRAGMENT_TESTS.0;
16293 first = false;
16294 }
16295 if remaining & Self::_2_LATE_FRAGMENT_TESTS.0 != 0 {
16296 if !first {
16297 f.write_str(" | ")?;
16298 }
16299 f.write_str("_2_LATE_FRAGMENT_TESTS")?;
16300 remaining &= !Self::_2_LATE_FRAGMENT_TESTS.0;
16301 first = false;
16302 }
16303 if remaining & Self::_2_COLOR_ATTACHMENT_OUTPUT.0 != 0 {
16304 if !first {
16305 f.write_str(" | ")?;
16306 }
16307 f.write_str("_2_COLOR_ATTACHMENT_OUTPUT")?;
16308 remaining &= !Self::_2_COLOR_ATTACHMENT_OUTPUT.0;
16309 first = false;
16310 }
16311 if remaining & Self::_2_COMPUTE_SHADER.0 != 0 {
16312 if !first {
16313 f.write_str(" | ")?;
16314 }
16315 f.write_str("_2_COMPUTE_SHADER")?;
16316 remaining &= !Self::_2_COMPUTE_SHADER.0;
16317 first = false;
16318 }
16319 if remaining & Self::_2_ALL_TRANSFER.0 != 0 {
16320 if !first {
16321 f.write_str(" | ")?;
16322 }
16323 f.write_str("_2_ALL_TRANSFER")?;
16324 remaining &= !Self::_2_ALL_TRANSFER.0;
16325 first = false;
16326 }
16327 if remaining & Self::_2_BOTTOM_OF_PIPE.0 != 0 {
16328 if !first {
16329 f.write_str(" | ")?;
16330 }
16331 f.write_str("_2_BOTTOM_OF_PIPE")?;
16332 remaining &= !Self::_2_BOTTOM_OF_PIPE.0;
16333 first = false;
16334 }
16335 if remaining & Self::_2_HOST.0 != 0 {
16336 if !first {
16337 f.write_str(" | ")?;
16338 }
16339 f.write_str("_2_HOST")?;
16340 remaining &= !Self::_2_HOST.0;
16341 first = false;
16342 }
16343 if remaining & Self::_2_ALL_GRAPHICS.0 != 0 {
16344 if !first {
16345 f.write_str(" | ")?;
16346 }
16347 f.write_str("_2_ALL_GRAPHICS")?;
16348 remaining &= !Self::_2_ALL_GRAPHICS.0;
16349 first = false;
16350 }
16351 if remaining & Self::_2_ALL_COMMANDS.0 != 0 {
16352 if !first {
16353 f.write_str(" | ")?;
16354 }
16355 f.write_str("_2_ALL_COMMANDS")?;
16356 remaining &= !Self::_2_ALL_COMMANDS.0;
16357 first = false;
16358 }
16359 if remaining & Self::_2_COPY.0 != 0 {
16360 if !first {
16361 f.write_str(" | ")?;
16362 }
16363 f.write_str("_2_COPY")?;
16364 remaining &= !Self::_2_COPY.0;
16365 first = false;
16366 }
16367 if remaining & Self::_2_RESOLVE.0 != 0 {
16368 if !first {
16369 f.write_str(" | ")?;
16370 }
16371 f.write_str("_2_RESOLVE")?;
16372 remaining &= !Self::_2_RESOLVE.0;
16373 first = false;
16374 }
16375 if remaining & Self::_2_BLIT.0 != 0 {
16376 if !first {
16377 f.write_str(" | ")?;
16378 }
16379 f.write_str("_2_BLIT")?;
16380 remaining &= !Self::_2_BLIT.0;
16381 first = false;
16382 }
16383 if remaining & Self::_2_CLEAR.0 != 0 {
16384 if !first {
16385 f.write_str(" | ")?;
16386 }
16387 f.write_str("_2_CLEAR")?;
16388 remaining &= !Self::_2_CLEAR.0;
16389 first = false;
16390 }
16391 if remaining & Self::_2_INDEX_INPUT.0 != 0 {
16392 if !first {
16393 f.write_str(" | ")?;
16394 }
16395 f.write_str("_2_INDEX_INPUT")?;
16396 remaining &= !Self::_2_INDEX_INPUT.0;
16397 first = false;
16398 }
16399 if remaining & Self::_2_VERTEX_ATTRIBUTE_INPUT.0 != 0 {
16400 if !first {
16401 f.write_str(" | ")?;
16402 }
16403 f.write_str("_2_VERTEX_ATTRIBUTE_INPUT")?;
16404 remaining &= !Self::_2_VERTEX_ATTRIBUTE_INPUT.0;
16405 first = false;
16406 }
16407 if remaining & Self::_2_PRE_RASTERIZATION_SHADERS.0 != 0 {
16408 if !first {
16409 f.write_str(" | ")?;
16410 }
16411 f.write_str("_2_PRE_RASTERIZATION_SHADERS")?;
16412 remaining &= !Self::_2_PRE_RASTERIZATION_SHADERS.0;
16413 first = false;
16414 }
16415 if remaining & Self::_2_VIDEO_DECODE.0 != 0 {
16416 if !first {
16417 f.write_str(" | ")?;
16418 }
16419 f.write_str("_2_VIDEO_DECODE")?;
16420 remaining &= !Self::_2_VIDEO_DECODE.0;
16421 first = false;
16422 }
16423 if remaining & Self::_2_VIDEO_ENCODE.0 != 0 {
16424 if !first {
16425 f.write_str(" | ")?;
16426 }
16427 f.write_str("_2_VIDEO_ENCODE")?;
16428 remaining &= !Self::_2_VIDEO_ENCODE.0;
16429 first = false;
16430 }
16431 if remaining & Self::_2_TRANSFORM_FEEDBACK.0 != 0 {
16432 if !first {
16433 f.write_str(" | ")?;
16434 }
16435 f.write_str("_2_TRANSFORM_FEEDBACK")?;
16436 remaining &= !Self::_2_TRANSFORM_FEEDBACK.0;
16437 first = false;
16438 }
16439 if remaining & Self::_2_CONDITIONAL_RENDERING.0 != 0 {
16440 if !first {
16441 f.write_str(" | ")?;
16442 }
16443 f.write_str("_2_CONDITIONAL_RENDERING")?;
16444 remaining &= !Self::_2_CONDITIONAL_RENDERING.0;
16445 first = false;
16446 }
16447 if remaining & Self::_2_COMMAND_PREPROCESS.0 != 0 {
16448 if !first {
16449 f.write_str(" | ")?;
16450 }
16451 f.write_str("_2_COMMAND_PREPROCESS")?;
16452 remaining &= !Self::_2_COMMAND_PREPROCESS.0;
16453 first = false;
16454 }
16455 if remaining & Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
16456 if !first {
16457 f.write_str(" | ")?;
16458 }
16459 f.write_str("_2_FRAGMENT_SHADING_RATE_ATTACHMENT")?;
16460 remaining &= !Self::_2_FRAGMENT_SHADING_RATE_ATTACHMENT.0;
16461 first = false;
16462 }
16463 if remaining & Self::_2_ACCELERATION_STRUCTURE_BUILD.0 != 0 {
16464 if !first {
16465 f.write_str(" | ")?;
16466 }
16467 f.write_str("_2_ACCELERATION_STRUCTURE_BUILD")?;
16468 remaining &= !Self::_2_ACCELERATION_STRUCTURE_BUILD.0;
16469 first = false;
16470 }
16471 if remaining & Self::_2_RAY_TRACING_SHADER.0 != 0 {
16472 if !first {
16473 f.write_str(" | ")?;
16474 }
16475 f.write_str("_2_RAY_TRACING_SHADER")?;
16476 remaining &= !Self::_2_RAY_TRACING_SHADER.0;
16477 first = false;
16478 }
16479 if remaining & Self::_2_FRAGMENT_DENSITY_PROCESS.0 != 0 {
16480 if !first {
16481 f.write_str(" | ")?;
16482 }
16483 f.write_str("_2_FRAGMENT_DENSITY_PROCESS")?;
16484 remaining &= !Self::_2_FRAGMENT_DENSITY_PROCESS.0;
16485 first = false;
16486 }
16487 if remaining & Self::_2_TASK_SHADER.0 != 0 {
16488 if !first {
16489 f.write_str(" | ")?;
16490 }
16491 f.write_str("_2_TASK_SHADER")?;
16492 remaining &= !Self::_2_TASK_SHADER.0;
16493 first = false;
16494 }
16495 if remaining & Self::_2_MESH_SHADER.0 != 0 {
16496 if !first {
16497 f.write_str(" | ")?;
16498 }
16499 f.write_str("_2_MESH_SHADER")?;
16500 remaining &= !Self::_2_MESH_SHADER.0;
16501 first = false;
16502 }
16503 if remaining & Self::_2_SUBPASS_SHADER_BIT.0 != 0 {
16504 if !first {
16505 f.write_str(" | ")?;
16506 }
16507 f.write_str("_2_SUBPASS_SHADER_BIT")?;
16508 remaining &= !Self::_2_SUBPASS_SHADER_BIT.0;
16509 first = false;
16510 }
16511 if remaining & Self::_2_INVOCATION_MASK_BIT.0 != 0 {
16512 if !first {
16513 f.write_str(" | ")?;
16514 }
16515 f.write_str("_2_INVOCATION_MASK_BIT")?;
16516 remaining &= !Self::_2_INVOCATION_MASK_BIT.0;
16517 first = false;
16518 }
16519 if remaining & Self::_2_ACCELERATION_STRUCTURE_COPY.0 != 0 {
16520 if !first {
16521 f.write_str(" | ")?;
16522 }
16523 f.write_str("_2_ACCELERATION_STRUCTURE_COPY")?;
16524 remaining &= !Self::_2_ACCELERATION_STRUCTURE_COPY.0;
16525 first = false;
16526 }
16527 if remaining & Self::_2_MICROMAP_BUILD.0 != 0 {
16528 if !first {
16529 f.write_str(" | ")?;
16530 }
16531 f.write_str("_2_MICROMAP_BUILD")?;
16532 remaining &= !Self::_2_MICROMAP_BUILD.0;
16533 first = false;
16534 }
16535 if remaining & Self::_2_CLUSTER_CULLING_SHADER_BIT.0 != 0 {
16536 if !first {
16537 f.write_str(" | ")?;
16538 }
16539 f.write_str("_2_CLUSTER_CULLING_SHADER_BIT")?;
16540 remaining &= !Self::_2_CLUSTER_CULLING_SHADER_BIT.0;
16541 first = false;
16542 }
16543 if remaining & Self::_2_OPTICAL_FLOW.0 != 0 {
16544 if !first {
16545 f.write_str(" | ")?;
16546 }
16547 f.write_str("_2_OPTICAL_FLOW")?;
16548 remaining &= !Self::_2_OPTICAL_FLOW.0;
16549 first = false;
16550 }
16551 if remaining & Self::_2_CONVERT_COOPERATIVE_VECTOR_MATRIX.0 != 0 {
16552 if !first {
16553 f.write_str(" | ")?;
16554 }
16555 f.write_str("_2_CONVERT_COOPERATIVE_VECTOR_MATRIX")?;
16556 remaining &= !Self::_2_CONVERT_COOPERATIVE_VECTOR_MATRIX.0;
16557 first = false;
16558 }
16559 if remaining & Self::_2_DATA_GRAPH_BIT.0 != 0 {
16560 if !first {
16561 f.write_str(" | ")?;
16562 }
16563 f.write_str("_2_DATA_GRAPH_BIT")?;
16564 remaining &= !Self::_2_DATA_GRAPH_BIT.0;
16565 first = false;
16566 }
16567 if remaining & Self::_2_COPY_INDIRECT.0 != 0 {
16568 if !first {
16569 f.write_str(" | ")?;
16570 }
16571 f.write_str("_2_COPY_INDIRECT")?;
16572 remaining &= !Self::_2_COPY_INDIRECT.0;
16573 first = false;
16574 }
16575 if remaining & Self::_2_MEMORY_DECOMPRESSION.0 != 0 {
16576 if !first {
16577 f.write_str(" | ")?;
16578 }
16579 f.write_str("_2_MEMORY_DECOMPRESSION")?;
16580 remaining &= !Self::_2_MEMORY_DECOMPRESSION.0;
16581 first = false;
16582 }
16583 if remaining != 0u64 {
16584 if !first {
16585 f.write_str(" | ")?;
16586 }
16587 write!(f, "{:#x}", remaining)?;
16588 } else if first {
16589 f.write_str("(empty)")?;
16590 }
16591 Ok(())
16592 }
16593}
16594#[repr(transparent)]
16596#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
16597#[doc(alias = "VkPresentGravityFlagBitsKHR")]
16598pub struct PresentGravityFlagBitsKHR(u32);
16599impl PresentGravityFlagBitsKHR {
16600 #[inline]
16601 pub const fn empty() -> Self {
16602 Self(0u32)
16603 }
16604 #[inline]
16605 pub const fn from_raw(value: u32) -> Self {
16606 Self(value)
16607 }
16608 #[inline]
16609 pub const fn as_raw(self) -> u32 {
16610 self.0
16611 }
16612 #[inline]
16613 pub const fn is_empty(self) -> bool {
16614 self.0 == 0u32
16615 }
16616 #[inline]
16617 pub const fn contains(self, other: Self) -> bool {
16618 (self.0 & other.0) == other.0
16619 }
16620 #[inline]
16621 pub const fn all() -> Self {
16622 Self(7u32)
16623 }
16624 pub const MIN: Self = Self(1u32);
16626 pub const MAX: Self = Self(2u32);
16628 pub const CENTERED: Self = Self(4u32);
16630}
16631impl core::ops::BitOr for PresentGravityFlagBitsKHR {
16632 type Output = Self;
16633 #[inline]
16634 fn bitor(self, rhs: Self) -> Self {
16635 Self(self.0 | rhs.0)
16636 }
16637}
16638impl core::ops::BitOrAssign for PresentGravityFlagBitsKHR {
16639 #[inline]
16640 fn bitor_assign(&mut self, rhs: Self) {
16641 self.0 |= rhs.0;
16642 }
16643}
16644impl core::ops::BitAnd for PresentGravityFlagBitsKHR {
16645 type Output = Self;
16646 #[inline]
16647 fn bitand(self, rhs: Self) -> Self {
16648 Self(self.0 & rhs.0)
16649 }
16650}
16651impl core::ops::BitAndAssign for PresentGravityFlagBitsKHR {
16652 #[inline]
16653 fn bitand_assign(&mut self, rhs: Self) {
16654 self.0 &= rhs.0;
16655 }
16656}
16657impl core::ops::BitXor for PresentGravityFlagBitsKHR {
16658 type Output = Self;
16659 #[inline]
16660 fn bitxor(self, rhs: Self) -> Self {
16661 Self(self.0 ^ rhs.0)
16662 }
16663}
16664impl core::ops::BitXorAssign for PresentGravityFlagBitsKHR {
16665 #[inline]
16666 fn bitxor_assign(&mut self, rhs: Self) {
16667 self.0 ^= rhs.0;
16668 }
16669}
16670impl core::ops::Not for PresentGravityFlagBitsKHR {
16671 type Output = Self;
16672 #[inline]
16673 fn not(self) -> Self {
16674 Self(!self.0)
16675 }
16676}
16677impl core::fmt::Debug for PresentGravityFlagBitsKHR {
16678 #[allow(unused_mut, unused_variables)]
16679 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16680 let mut first = true;
16681 let mut remaining = self.0;
16682 if remaining & Self::MIN.0 != 0 {
16683 if !first {
16684 f.write_str(" | ")?;
16685 }
16686 f.write_str("MIN")?;
16687 remaining &= !Self::MIN.0;
16688 first = false;
16689 }
16690 if remaining & Self::MAX.0 != 0 {
16691 if !first {
16692 f.write_str(" | ")?;
16693 }
16694 f.write_str("MAX")?;
16695 remaining &= !Self::MAX.0;
16696 first = false;
16697 }
16698 if remaining & Self::CENTERED.0 != 0 {
16699 if !first {
16700 f.write_str(" | ")?;
16701 }
16702 f.write_str("CENTERED")?;
16703 remaining &= !Self::CENTERED.0;
16704 first = false;
16705 }
16706 if remaining != 0u32 {
16707 if !first {
16708 f.write_str(" | ")?;
16709 }
16710 write!(f, "{:#x}", remaining)?;
16711 } else if first {
16712 f.write_str("(empty)")?;
16713 }
16714 Ok(())
16715 }
16716}
16717#[repr(transparent)]
16719#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
16720#[doc(alias = "VkPresentScalingFlagBitsKHR")]
16721pub struct PresentScalingFlagBitsKHR(u32);
16722impl PresentScalingFlagBitsKHR {
16723 #[inline]
16724 pub const fn empty() -> Self {
16725 Self(0u32)
16726 }
16727 #[inline]
16728 pub const fn from_raw(value: u32) -> Self {
16729 Self(value)
16730 }
16731 #[inline]
16732 pub const fn as_raw(self) -> u32 {
16733 self.0
16734 }
16735 #[inline]
16736 pub const fn is_empty(self) -> bool {
16737 self.0 == 0u32
16738 }
16739 #[inline]
16740 pub const fn contains(self, other: Self) -> bool {
16741 (self.0 & other.0) == other.0
16742 }
16743 #[inline]
16744 pub const fn all() -> Self {
16745 Self(7u32)
16746 }
16747 pub const ONE_TO_ONE: Self = Self(1u32);
16749 pub const ASPECT_RATIO_STRETCH: Self = Self(2u32);
16751 pub const STRETCH: Self = Self(4u32);
16753}
16754impl core::ops::BitOr for PresentScalingFlagBitsKHR {
16755 type Output = Self;
16756 #[inline]
16757 fn bitor(self, rhs: Self) -> Self {
16758 Self(self.0 | rhs.0)
16759 }
16760}
16761impl core::ops::BitOrAssign for PresentScalingFlagBitsKHR {
16762 #[inline]
16763 fn bitor_assign(&mut self, rhs: Self) {
16764 self.0 |= rhs.0;
16765 }
16766}
16767impl core::ops::BitAnd for PresentScalingFlagBitsKHR {
16768 type Output = Self;
16769 #[inline]
16770 fn bitand(self, rhs: Self) -> Self {
16771 Self(self.0 & rhs.0)
16772 }
16773}
16774impl core::ops::BitAndAssign for PresentScalingFlagBitsKHR {
16775 #[inline]
16776 fn bitand_assign(&mut self, rhs: Self) {
16777 self.0 &= rhs.0;
16778 }
16779}
16780impl core::ops::BitXor for PresentScalingFlagBitsKHR {
16781 type Output = Self;
16782 #[inline]
16783 fn bitxor(self, rhs: Self) -> Self {
16784 Self(self.0 ^ rhs.0)
16785 }
16786}
16787impl core::ops::BitXorAssign for PresentScalingFlagBitsKHR {
16788 #[inline]
16789 fn bitxor_assign(&mut self, rhs: Self) {
16790 self.0 ^= rhs.0;
16791 }
16792}
16793impl core::ops::Not for PresentScalingFlagBitsKHR {
16794 type Output = Self;
16795 #[inline]
16796 fn not(self) -> Self {
16797 Self(!self.0)
16798 }
16799}
16800impl core::fmt::Debug for PresentScalingFlagBitsKHR {
16801 #[allow(unused_mut, unused_variables)]
16802 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16803 let mut first = true;
16804 let mut remaining = self.0;
16805 if remaining & Self::ONE_TO_ONE.0 != 0 {
16806 if !first {
16807 f.write_str(" | ")?;
16808 }
16809 f.write_str("ONE_TO_ONE")?;
16810 remaining &= !Self::ONE_TO_ONE.0;
16811 first = false;
16812 }
16813 if remaining & Self::ASPECT_RATIO_STRETCH.0 != 0 {
16814 if !first {
16815 f.write_str(" | ")?;
16816 }
16817 f.write_str("ASPECT_RATIO_STRETCH")?;
16818 remaining &= !Self::ASPECT_RATIO_STRETCH.0;
16819 first = false;
16820 }
16821 if remaining & Self::STRETCH.0 != 0 {
16822 if !first {
16823 f.write_str(" | ")?;
16824 }
16825 f.write_str("STRETCH")?;
16826 remaining &= !Self::STRETCH.0;
16827 first = false;
16828 }
16829 if remaining != 0u32 {
16830 if !first {
16831 f.write_str(" | ")?;
16832 }
16833 write!(f, "{:#x}", remaining)?;
16834 } else if first {
16835 f.write_str("(empty)")?;
16836 }
16837 Ok(())
16838 }
16839}
16840#[repr(transparent)]
16842#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
16843#[doc(alias = "VkPresentStageFlagBitsEXT")]
16844pub struct PresentStageFlagBitsEXT(u32);
16845impl PresentStageFlagBitsEXT {
16846 #[inline]
16847 pub const fn empty() -> Self {
16848 Self(0u32)
16849 }
16850 #[inline]
16851 pub const fn from_raw(value: u32) -> Self {
16852 Self(value)
16853 }
16854 #[inline]
16855 pub const fn as_raw(self) -> u32 {
16856 self.0
16857 }
16858 #[inline]
16859 pub const fn is_empty(self) -> bool {
16860 self.0 == 0u32
16861 }
16862 #[inline]
16863 pub const fn contains(self, other: Self) -> bool {
16864 (self.0 & other.0) == other.0
16865 }
16866 #[inline]
16867 pub const fn all() -> Self {
16868 Self(15u32)
16869 }
16870 pub const QUEUE_OPERATIONS_END: Self = Self(1u32);
16872 pub const REQUEST_DEQUEUED: Self = Self(2u32);
16874 pub const IMAGE_FIRST_PIXEL_OUT: Self = Self(4u32);
16876 pub const IMAGE_FIRST_PIXEL_VISIBLE: Self = Self(8u32);
16878}
16879impl core::ops::BitOr for PresentStageFlagBitsEXT {
16880 type Output = Self;
16881 #[inline]
16882 fn bitor(self, rhs: Self) -> Self {
16883 Self(self.0 | rhs.0)
16884 }
16885}
16886impl core::ops::BitOrAssign for PresentStageFlagBitsEXT {
16887 #[inline]
16888 fn bitor_assign(&mut self, rhs: Self) {
16889 self.0 |= rhs.0;
16890 }
16891}
16892impl core::ops::BitAnd for PresentStageFlagBitsEXT {
16893 type Output = Self;
16894 #[inline]
16895 fn bitand(self, rhs: Self) -> Self {
16896 Self(self.0 & rhs.0)
16897 }
16898}
16899impl core::ops::BitAndAssign for PresentStageFlagBitsEXT {
16900 #[inline]
16901 fn bitand_assign(&mut self, rhs: Self) {
16902 self.0 &= rhs.0;
16903 }
16904}
16905impl core::ops::BitXor for PresentStageFlagBitsEXT {
16906 type Output = Self;
16907 #[inline]
16908 fn bitxor(self, rhs: Self) -> Self {
16909 Self(self.0 ^ rhs.0)
16910 }
16911}
16912impl core::ops::BitXorAssign for PresentStageFlagBitsEXT {
16913 #[inline]
16914 fn bitxor_assign(&mut self, rhs: Self) {
16915 self.0 ^= rhs.0;
16916 }
16917}
16918impl core::ops::Not for PresentStageFlagBitsEXT {
16919 type Output = Self;
16920 #[inline]
16921 fn not(self) -> Self {
16922 Self(!self.0)
16923 }
16924}
16925impl core::fmt::Debug for PresentStageFlagBitsEXT {
16926 #[allow(unused_mut, unused_variables)]
16927 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
16928 let mut first = true;
16929 let mut remaining = self.0;
16930 if remaining & Self::QUEUE_OPERATIONS_END.0 != 0 {
16931 if !first {
16932 f.write_str(" | ")?;
16933 }
16934 f.write_str("QUEUE_OPERATIONS_END")?;
16935 remaining &= !Self::QUEUE_OPERATIONS_END.0;
16936 first = false;
16937 }
16938 if remaining & Self::REQUEST_DEQUEUED.0 != 0 {
16939 if !first {
16940 f.write_str(" | ")?;
16941 }
16942 f.write_str("REQUEST_DEQUEUED")?;
16943 remaining &= !Self::REQUEST_DEQUEUED.0;
16944 first = false;
16945 }
16946 if remaining & Self::IMAGE_FIRST_PIXEL_OUT.0 != 0 {
16947 if !first {
16948 f.write_str(" | ")?;
16949 }
16950 f.write_str("IMAGE_FIRST_PIXEL_OUT")?;
16951 remaining &= !Self::IMAGE_FIRST_PIXEL_OUT.0;
16952 first = false;
16953 }
16954 if remaining & Self::IMAGE_FIRST_PIXEL_VISIBLE.0 != 0 {
16955 if !first {
16956 f.write_str(" | ")?;
16957 }
16958 f.write_str("IMAGE_FIRST_PIXEL_VISIBLE")?;
16959 remaining &= !Self::IMAGE_FIRST_PIXEL_VISIBLE.0;
16960 first = false;
16961 }
16962 if remaining != 0u32 {
16963 if !first {
16964 f.write_str(" | ")?;
16965 }
16966 write!(f, "{:#x}", remaining)?;
16967 } else if first {
16968 f.write_str("(empty)")?;
16969 }
16970 Ok(())
16971 }
16972}
16973#[repr(transparent)]
16975#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
16976#[doc(alias = "VkPresentTimingInfoFlagBitsEXT")]
16977pub struct PresentTimingInfoFlagBitsEXT(u32);
16978impl PresentTimingInfoFlagBitsEXT {
16979 #[inline]
16980 pub const fn empty() -> Self {
16981 Self(0u32)
16982 }
16983 #[inline]
16984 pub const fn from_raw(value: u32) -> Self {
16985 Self(value)
16986 }
16987 #[inline]
16988 pub const fn as_raw(self) -> u32 {
16989 self.0
16990 }
16991 #[inline]
16992 pub const fn is_empty(self) -> bool {
16993 self.0 == 0u32
16994 }
16995 #[inline]
16996 pub const fn contains(self, other: Self) -> bool {
16997 (self.0 & other.0) == other.0
16998 }
16999 #[inline]
17000 pub const fn all() -> Self {
17001 Self(3u32)
17002 }
17003 pub const PRESENT_AT_RELATIVE_TIME: Self = Self(1u32);
17005 pub const PRESENT_AT_NEAREST_REFRESH_CYCLE: Self = Self(2u32);
17007}
17008impl core::ops::BitOr for PresentTimingInfoFlagBitsEXT {
17009 type Output = Self;
17010 #[inline]
17011 fn bitor(self, rhs: Self) -> Self {
17012 Self(self.0 | rhs.0)
17013 }
17014}
17015impl core::ops::BitOrAssign for PresentTimingInfoFlagBitsEXT {
17016 #[inline]
17017 fn bitor_assign(&mut self, rhs: Self) {
17018 self.0 |= rhs.0;
17019 }
17020}
17021impl core::ops::BitAnd for PresentTimingInfoFlagBitsEXT {
17022 type Output = Self;
17023 #[inline]
17024 fn bitand(self, rhs: Self) -> Self {
17025 Self(self.0 & rhs.0)
17026 }
17027}
17028impl core::ops::BitAndAssign for PresentTimingInfoFlagBitsEXT {
17029 #[inline]
17030 fn bitand_assign(&mut self, rhs: Self) {
17031 self.0 &= rhs.0;
17032 }
17033}
17034impl core::ops::BitXor for PresentTimingInfoFlagBitsEXT {
17035 type Output = Self;
17036 #[inline]
17037 fn bitxor(self, rhs: Self) -> Self {
17038 Self(self.0 ^ rhs.0)
17039 }
17040}
17041impl core::ops::BitXorAssign for PresentTimingInfoFlagBitsEXT {
17042 #[inline]
17043 fn bitxor_assign(&mut self, rhs: Self) {
17044 self.0 ^= rhs.0;
17045 }
17046}
17047impl core::ops::Not for PresentTimingInfoFlagBitsEXT {
17048 type Output = Self;
17049 #[inline]
17050 fn not(self) -> Self {
17051 Self(!self.0)
17052 }
17053}
17054impl core::fmt::Debug for PresentTimingInfoFlagBitsEXT {
17055 #[allow(unused_mut, unused_variables)]
17056 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17057 let mut first = true;
17058 let mut remaining = self.0;
17059 if remaining & Self::PRESENT_AT_RELATIVE_TIME.0 != 0 {
17060 if !first {
17061 f.write_str(" | ")?;
17062 }
17063 f.write_str("PRESENT_AT_RELATIVE_TIME")?;
17064 remaining &= !Self::PRESENT_AT_RELATIVE_TIME.0;
17065 first = false;
17066 }
17067 if remaining & Self::PRESENT_AT_NEAREST_REFRESH_CYCLE.0 != 0 {
17068 if !first {
17069 f.write_str(" | ")?;
17070 }
17071 f.write_str("PRESENT_AT_NEAREST_REFRESH_CYCLE")?;
17072 remaining &= !Self::PRESENT_AT_NEAREST_REFRESH_CYCLE.0;
17073 first = false;
17074 }
17075 if remaining != 0u32 {
17076 if !first {
17077 f.write_str(" | ")?;
17078 }
17079 write!(f, "{:#x}", remaining)?;
17080 } else if first {
17081 f.write_str("(empty)")?;
17082 }
17083 Ok(())
17084 }
17085}
17086#[repr(transparent)]
17088#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17089#[doc(alias = "VkPrivateDataSlotCreateFlagBits")]
17090pub struct PrivateDataSlotCreateFlagBits(u32);
17091impl PrivateDataSlotCreateFlagBits {
17092 #[inline]
17093 pub const fn empty() -> Self {
17094 Self(0u32)
17095 }
17096 #[inline]
17097 pub const fn from_raw(value: u32) -> Self {
17098 Self(value)
17099 }
17100 #[inline]
17101 pub const fn as_raw(self) -> u32 {
17102 self.0
17103 }
17104 #[inline]
17105 pub const fn is_empty(self) -> bool {
17106 self.0 == 0u32
17107 }
17108 #[inline]
17109 pub const fn contains(self, other: Self) -> bool {
17110 (self.0 & other.0) == other.0
17111 }
17112 #[inline]
17113 pub const fn all() -> Self {
17114 Self(0u32)
17115 }
17116}
17117impl core::ops::BitOr for PrivateDataSlotCreateFlagBits {
17118 type Output = Self;
17119 #[inline]
17120 fn bitor(self, rhs: Self) -> Self {
17121 Self(self.0 | rhs.0)
17122 }
17123}
17124impl core::ops::BitOrAssign for PrivateDataSlotCreateFlagBits {
17125 #[inline]
17126 fn bitor_assign(&mut self, rhs: Self) {
17127 self.0 |= rhs.0;
17128 }
17129}
17130impl core::ops::BitAnd for PrivateDataSlotCreateFlagBits {
17131 type Output = Self;
17132 #[inline]
17133 fn bitand(self, rhs: Self) -> Self {
17134 Self(self.0 & rhs.0)
17135 }
17136}
17137impl core::ops::BitAndAssign for PrivateDataSlotCreateFlagBits {
17138 #[inline]
17139 fn bitand_assign(&mut self, rhs: Self) {
17140 self.0 &= rhs.0;
17141 }
17142}
17143impl core::ops::BitXor for PrivateDataSlotCreateFlagBits {
17144 type Output = Self;
17145 #[inline]
17146 fn bitxor(self, rhs: Self) -> Self {
17147 Self(self.0 ^ rhs.0)
17148 }
17149}
17150impl core::ops::BitXorAssign for PrivateDataSlotCreateFlagBits {
17151 #[inline]
17152 fn bitxor_assign(&mut self, rhs: Self) {
17153 self.0 ^= rhs.0;
17154 }
17155}
17156impl core::ops::Not for PrivateDataSlotCreateFlagBits {
17157 type Output = Self;
17158 #[inline]
17159 fn not(self) -> Self {
17160 Self(!self.0)
17161 }
17162}
17163impl core::fmt::Debug for PrivateDataSlotCreateFlagBits {
17164 #[allow(unused_mut, unused_variables)]
17165 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17166 let mut first = true;
17167 let mut remaining = self.0;
17168 if remaining != 0u32 {
17169 if !first {
17170 f.write_str(" | ")?;
17171 }
17172 write!(f, "{:#x}", remaining)?;
17173 } else if first {
17174 f.write_str("(empty)")?;
17175 }
17176 Ok(())
17177 }
17178}
17179#[repr(transparent)]
17181#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17182#[doc(alias = "VkQueryControlFlagBits")]
17183pub struct QueryControlFlagBits(u32);
17184impl QueryControlFlagBits {
17185 #[inline]
17186 pub const fn empty() -> Self {
17187 Self(0u32)
17188 }
17189 #[inline]
17190 pub const fn from_raw(value: u32) -> Self {
17191 Self(value)
17192 }
17193 #[inline]
17194 pub const fn as_raw(self) -> u32 {
17195 self.0
17196 }
17197 #[inline]
17198 pub const fn is_empty(self) -> bool {
17199 self.0 == 0u32
17200 }
17201 #[inline]
17202 pub const fn contains(self, other: Self) -> bool {
17203 (self.0 & other.0) == other.0
17204 }
17205 #[inline]
17206 pub const fn all() -> Self {
17207 Self(1u32)
17208 }
17209 pub const PRECISE: Self = Self(1u32);
17211}
17212impl core::ops::BitOr for QueryControlFlagBits {
17213 type Output = Self;
17214 #[inline]
17215 fn bitor(self, rhs: Self) -> Self {
17216 Self(self.0 | rhs.0)
17217 }
17218}
17219impl core::ops::BitOrAssign for QueryControlFlagBits {
17220 #[inline]
17221 fn bitor_assign(&mut self, rhs: Self) {
17222 self.0 |= rhs.0;
17223 }
17224}
17225impl core::ops::BitAnd for QueryControlFlagBits {
17226 type Output = Self;
17227 #[inline]
17228 fn bitand(self, rhs: Self) -> Self {
17229 Self(self.0 & rhs.0)
17230 }
17231}
17232impl core::ops::BitAndAssign for QueryControlFlagBits {
17233 #[inline]
17234 fn bitand_assign(&mut self, rhs: Self) {
17235 self.0 &= rhs.0;
17236 }
17237}
17238impl core::ops::BitXor for QueryControlFlagBits {
17239 type Output = Self;
17240 #[inline]
17241 fn bitxor(self, rhs: Self) -> Self {
17242 Self(self.0 ^ rhs.0)
17243 }
17244}
17245impl core::ops::BitXorAssign for QueryControlFlagBits {
17246 #[inline]
17247 fn bitxor_assign(&mut self, rhs: Self) {
17248 self.0 ^= rhs.0;
17249 }
17250}
17251impl core::ops::Not for QueryControlFlagBits {
17252 type Output = Self;
17253 #[inline]
17254 fn not(self) -> Self {
17255 Self(!self.0)
17256 }
17257}
17258impl core::fmt::Debug for QueryControlFlagBits {
17259 #[allow(unused_mut, unused_variables)]
17260 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17261 let mut first = true;
17262 let mut remaining = self.0;
17263 if remaining & Self::PRECISE.0 != 0 {
17264 if !first {
17265 f.write_str(" | ")?;
17266 }
17267 f.write_str("PRECISE")?;
17268 remaining &= !Self::PRECISE.0;
17269 first = false;
17270 }
17271 if remaining != 0u32 {
17272 if !first {
17273 f.write_str(" | ")?;
17274 }
17275 write!(f, "{:#x}", remaining)?;
17276 } else if first {
17277 f.write_str("(empty)")?;
17278 }
17279 Ok(())
17280 }
17281}
17282#[repr(transparent)]
17284#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17285#[doc(alias = "VkQueryPipelineStatisticFlagBits")]
17286pub struct QueryPipelineStatisticFlagBits(u32);
17287impl QueryPipelineStatisticFlagBits {
17288 #[inline]
17289 pub const fn empty() -> Self {
17290 Self(0u32)
17291 }
17292 #[inline]
17293 pub const fn from_raw(value: u32) -> Self {
17294 Self(value)
17295 }
17296 #[inline]
17297 pub const fn as_raw(self) -> u32 {
17298 self.0
17299 }
17300 #[inline]
17301 pub const fn is_empty(self) -> bool {
17302 self.0 == 0u32
17303 }
17304 #[inline]
17305 pub const fn contains(self, other: Self) -> bool {
17306 (self.0 & other.0) == other.0
17307 }
17308 #[inline]
17309 pub const fn all() -> Self {
17310 Self(16383u32)
17311 }
17312 pub const INPUT_ASSEMBLY_VERTICES: Self = Self(1u32);
17314 pub const INPUT_ASSEMBLY_PRIMITIVES: Self = Self(2u32);
17316 pub const VERTEX_SHADER_INVOCATIONS: Self = Self(4u32);
17318 pub const GEOMETRY_SHADER_INVOCATIONS: Self = Self(8u32);
17320 pub const GEOMETRY_SHADER_PRIMITIVES: Self = Self(16u32);
17322 pub const CLIPPING_INVOCATIONS: Self = Self(32u32);
17324 pub const CLIPPING_PRIMITIVES: Self = Self(64u32);
17326 pub const FRAGMENT_SHADER_INVOCATIONS: Self = Self(128u32);
17328 pub const TESSELLATION_CONTROL_SHADER_PATCHES: Self = Self(256u32);
17330 pub const TESSELLATION_EVALUATION_SHADER_INVOCATIONS: Self = Self(512u32);
17332 pub const COMPUTE_SHADER_INVOCATIONS: Self = Self(1024u32);
17334 pub const TASK_SHADER_INVOCATIONS: Self = Self(2048u32);
17336 pub const MESH_SHADER_INVOCATIONS: Self = Self(4096u32);
17338 pub const CLUSTER_CULLING_SHADER_INVOCATIONS_BIT: Self = Self(8192u32);
17340}
17341impl core::ops::BitOr for QueryPipelineStatisticFlagBits {
17342 type Output = Self;
17343 #[inline]
17344 fn bitor(self, rhs: Self) -> Self {
17345 Self(self.0 | rhs.0)
17346 }
17347}
17348impl core::ops::BitOrAssign for QueryPipelineStatisticFlagBits {
17349 #[inline]
17350 fn bitor_assign(&mut self, rhs: Self) {
17351 self.0 |= rhs.0;
17352 }
17353}
17354impl core::ops::BitAnd for QueryPipelineStatisticFlagBits {
17355 type Output = Self;
17356 #[inline]
17357 fn bitand(self, rhs: Self) -> Self {
17358 Self(self.0 & rhs.0)
17359 }
17360}
17361impl core::ops::BitAndAssign for QueryPipelineStatisticFlagBits {
17362 #[inline]
17363 fn bitand_assign(&mut self, rhs: Self) {
17364 self.0 &= rhs.0;
17365 }
17366}
17367impl core::ops::BitXor for QueryPipelineStatisticFlagBits {
17368 type Output = Self;
17369 #[inline]
17370 fn bitxor(self, rhs: Self) -> Self {
17371 Self(self.0 ^ rhs.0)
17372 }
17373}
17374impl core::ops::BitXorAssign for QueryPipelineStatisticFlagBits {
17375 #[inline]
17376 fn bitxor_assign(&mut self, rhs: Self) {
17377 self.0 ^= rhs.0;
17378 }
17379}
17380impl core::ops::Not for QueryPipelineStatisticFlagBits {
17381 type Output = Self;
17382 #[inline]
17383 fn not(self) -> Self {
17384 Self(!self.0)
17385 }
17386}
17387impl core::fmt::Debug for QueryPipelineStatisticFlagBits {
17388 #[allow(unused_mut, unused_variables)]
17389 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17390 let mut first = true;
17391 let mut remaining = self.0;
17392 if remaining & Self::INPUT_ASSEMBLY_VERTICES.0 != 0 {
17393 if !first {
17394 f.write_str(" | ")?;
17395 }
17396 f.write_str("INPUT_ASSEMBLY_VERTICES")?;
17397 remaining &= !Self::INPUT_ASSEMBLY_VERTICES.0;
17398 first = false;
17399 }
17400 if remaining & Self::INPUT_ASSEMBLY_PRIMITIVES.0 != 0 {
17401 if !first {
17402 f.write_str(" | ")?;
17403 }
17404 f.write_str("INPUT_ASSEMBLY_PRIMITIVES")?;
17405 remaining &= !Self::INPUT_ASSEMBLY_PRIMITIVES.0;
17406 first = false;
17407 }
17408 if remaining & Self::VERTEX_SHADER_INVOCATIONS.0 != 0 {
17409 if !first {
17410 f.write_str(" | ")?;
17411 }
17412 f.write_str("VERTEX_SHADER_INVOCATIONS")?;
17413 remaining &= !Self::VERTEX_SHADER_INVOCATIONS.0;
17414 first = false;
17415 }
17416 if remaining & Self::GEOMETRY_SHADER_INVOCATIONS.0 != 0 {
17417 if !first {
17418 f.write_str(" | ")?;
17419 }
17420 f.write_str("GEOMETRY_SHADER_INVOCATIONS")?;
17421 remaining &= !Self::GEOMETRY_SHADER_INVOCATIONS.0;
17422 first = false;
17423 }
17424 if remaining & Self::GEOMETRY_SHADER_PRIMITIVES.0 != 0 {
17425 if !first {
17426 f.write_str(" | ")?;
17427 }
17428 f.write_str("GEOMETRY_SHADER_PRIMITIVES")?;
17429 remaining &= !Self::GEOMETRY_SHADER_PRIMITIVES.0;
17430 first = false;
17431 }
17432 if remaining & Self::CLIPPING_INVOCATIONS.0 != 0 {
17433 if !first {
17434 f.write_str(" | ")?;
17435 }
17436 f.write_str("CLIPPING_INVOCATIONS")?;
17437 remaining &= !Self::CLIPPING_INVOCATIONS.0;
17438 first = false;
17439 }
17440 if remaining & Self::CLIPPING_PRIMITIVES.0 != 0 {
17441 if !first {
17442 f.write_str(" | ")?;
17443 }
17444 f.write_str("CLIPPING_PRIMITIVES")?;
17445 remaining &= !Self::CLIPPING_PRIMITIVES.0;
17446 first = false;
17447 }
17448 if remaining & Self::FRAGMENT_SHADER_INVOCATIONS.0 != 0 {
17449 if !first {
17450 f.write_str(" | ")?;
17451 }
17452 f.write_str("FRAGMENT_SHADER_INVOCATIONS")?;
17453 remaining &= !Self::FRAGMENT_SHADER_INVOCATIONS.0;
17454 first = false;
17455 }
17456 if remaining & Self::TESSELLATION_CONTROL_SHADER_PATCHES.0 != 0 {
17457 if !first {
17458 f.write_str(" | ")?;
17459 }
17460 f.write_str("TESSELLATION_CONTROL_SHADER_PATCHES")?;
17461 remaining &= !Self::TESSELLATION_CONTROL_SHADER_PATCHES.0;
17462 first = false;
17463 }
17464 if remaining & Self::TESSELLATION_EVALUATION_SHADER_INVOCATIONS.0 != 0 {
17465 if !first {
17466 f.write_str(" | ")?;
17467 }
17468 f.write_str("TESSELLATION_EVALUATION_SHADER_INVOCATIONS")?;
17469 remaining &= !Self::TESSELLATION_EVALUATION_SHADER_INVOCATIONS.0;
17470 first = false;
17471 }
17472 if remaining & Self::COMPUTE_SHADER_INVOCATIONS.0 != 0 {
17473 if !first {
17474 f.write_str(" | ")?;
17475 }
17476 f.write_str("COMPUTE_SHADER_INVOCATIONS")?;
17477 remaining &= !Self::COMPUTE_SHADER_INVOCATIONS.0;
17478 first = false;
17479 }
17480 if remaining & Self::TASK_SHADER_INVOCATIONS.0 != 0 {
17481 if !first {
17482 f.write_str(" | ")?;
17483 }
17484 f.write_str("TASK_SHADER_INVOCATIONS")?;
17485 remaining &= !Self::TASK_SHADER_INVOCATIONS.0;
17486 first = false;
17487 }
17488 if remaining & Self::MESH_SHADER_INVOCATIONS.0 != 0 {
17489 if !first {
17490 f.write_str(" | ")?;
17491 }
17492 f.write_str("MESH_SHADER_INVOCATIONS")?;
17493 remaining &= !Self::MESH_SHADER_INVOCATIONS.0;
17494 first = false;
17495 }
17496 if remaining & Self::CLUSTER_CULLING_SHADER_INVOCATIONS_BIT.0 != 0 {
17497 if !first {
17498 f.write_str(" | ")?;
17499 }
17500 f.write_str("CLUSTER_CULLING_SHADER_INVOCATIONS_BIT")?;
17501 remaining &= !Self::CLUSTER_CULLING_SHADER_INVOCATIONS_BIT.0;
17502 first = false;
17503 }
17504 if remaining != 0u32 {
17505 if !first {
17506 f.write_str(" | ")?;
17507 }
17508 write!(f, "{:#x}", remaining)?;
17509 } else if first {
17510 f.write_str("(empty)")?;
17511 }
17512 Ok(())
17513 }
17514}
17515#[repr(transparent)]
17517#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17518#[doc(alias = "VkQueryPoolCreateFlagBits")]
17519pub struct QueryPoolCreateFlagBits(u32);
17520impl QueryPoolCreateFlagBits {
17521 #[inline]
17522 pub const fn empty() -> Self {
17523 Self(0u32)
17524 }
17525 #[inline]
17526 pub const fn from_raw(value: u32) -> Self {
17527 Self(value)
17528 }
17529 #[inline]
17530 pub const fn as_raw(self) -> u32 {
17531 self.0
17532 }
17533 #[inline]
17534 pub const fn is_empty(self) -> bool {
17535 self.0 == 0u32
17536 }
17537 #[inline]
17538 pub const fn contains(self, other: Self) -> bool {
17539 (self.0 & other.0) == other.0
17540 }
17541 #[inline]
17542 pub const fn all() -> Self {
17543 Self(1u32)
17544 }
17545 pub const RESET: Self = Self(1u32);
17547}
17548impl core::ops::BitOr for QueryPoolCreateFlagBits {
17549 type Output = Self;
17550 #[inline]
17551 fn bitor(self, rhs: Self) -> Self {
17552 Self(self.0 | rhs.0)
17553 }
17554}
17555impl core::ops::BitOrAssign for QueryPoolCreateFlagBits {
17556 #[inline]
17557 fn bitor_assign(&mut self, rhs: Self) {
17558 self.0 |= rhs.0;
17559 }
17560}
17561impl core::ops::BitAnd for QueryPoolCreateFlagBits {
17562 type Output = Self;
17563 #[inline]
17564 fn bitand(self, rhs: Self) -> Self {
17565 Self(self.0 & rhs.0)
17566 }
17567}
17568impl core::ops::BitAndAssign for QueryPoolCreateFlagBits {
17569 #[inline]
17570 fn bitand_assign(&mut self, rhs: Self) {
17571 self.0 &= rhs.0;
17572 }
17573}
17574impl core::ops::BitXor for QueryPoolCreateFlagBits {
17575 type Output = Self;
17576 #[inline]
17577 fn bitxor(self, rhs: Self) -> Self {
17578 Self(self.0 ^ rhs.0)
17579 }
17580}
17581impl core::ops::BitXorAssign for QueryPoolCreateFlagBits {
17582 #[inline]
17583 fn bitxor_assign(&mut self, rhs: Self) {
17584 self.0 ^= rhs.0;
17585 }
17586}
17587impl core::ops::Not for QueryPoolCreateFlagBits {
17588 type Output = Self;
17589 #[inline]
17590 fn not(self) -> Self {
17591 Self(!self.0)
17592 }
17593}
17594impl core::fmt::Debug for QueryPoolCreateFlagBits {
17595 #[allow(unused_mut, unused_variables)]
17596 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17597 let mut first = true;
17598 let mut remaining = self.0;
17599 if remaining & Self::RESET.0 != 0 {
17600 if !first {
17601 f.write_str(" | ")?;
17602 }
17603 f.write_str("RESET")?;
17604 remaining &= !Self::RESET.0;
17605 first = false;
17606 }
17607 if remaining != 0u32 {
17608 if !first {
17609 f.write_str(" | ")?;
17610 }
17611 write!(f, "{:#x}", remaining)?;
17612 } else if first {
17613 f.write_str("(empty)")?;
17614 }
17615 Ok(())
17616 }
17617}
17618#[repr(transparent)]
17620#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17621#[doc(alias = "VkQueryResultFlagBits")]
17622pub struct QueryResultFlagBits(u32);
17623impl QueryResultFlagBits {
17624 #[inline]
17625 pub const fn empty() -> Self {
17626 Self(0u32)
17627 }
17628 #[inline]
17629 pub const fn from_raw(value: u32) -> Self {
17630 Self(value)
17631 }
17632 #[inline]
17633 pub const fn as_raw(self) -> u32 {
17634 self.0
17635 }
17636 #[inline]
17637 pub const fn is_empty(self) -> bool {
17638 self.0 == 0u32
17639 }
17640 #[inline]
17641 pub const fn contains(self, other: Self) -> bool {
17642 (self.0 & other.0) == other.0
17643 }
17644 #[inline]
17645 pub const fn all() -> Self {
17646 Self(31u32)
17647 }
17648 pub const _64: Self = Self(1u32);
17650 pub const WAIT: Self = Self(2u32);
17652 pub const WITH_AVAILABILITY: Self = Self(4u32);
17654 pub const PARTIAL: Self = Self(8u32);
17656 pub const WITH_STATUS: Self = Self(16u32);
17658}
17659impl core::ops::BitOr for QueryResultFlagBits {
17660 type Output = Self;
17661 #[inline]
17662 fn bitor(self, rhs: Self) -> Self {
17663 Self(self.0 | rhs.0)
17664 }
17665}
17666impl core::ops::BitOrAssign for QueryResultFlagBits {
17667 #[inline]
17668 fn bitor_assign(&mut self, rhs: Self) {
17669 self.0 |= rhs.0;
17670 }
17671}
17672impl core::ops::BitAnd for QueryResultFlagBits {
17673 type Output = Self;
17674 #[inline]
17675 fn bitand(self, rhs: Self) -> Self {
17676 Self(self.0 & rhs.0)
17677 }
17678}
17679impl core::ops::BitAndAssign for QueryResultFlagBits {
17680 #[inline]
17681 fn bitand_assign(&mut self, rhs: Self) {
17682 self.0 &= rhs.0;
17683 }
17684}
17685impl core::ops::BitXor for QueryResultFlagBits {
17686 type Output = Self;
17687 #[inline]
17688 fn bitxor(self, rhs: Self) -> Self {
17689 Self(self.0 ^ rhs.0)
17690 }
17691}
17692impl core::ops::BitXorAssign for QueryResultFlagBits {
17693 #[inline]
17694 fn bitxor_assign(&mut self, rhs: Self) {
17695 self.0 ^= rhs.0;
17696 }
17697}
17698impl core::ops::Not for QueryResultFlagBits {
17699 type Output = Self;
17700 #[inline]
17701 fn not(self) -> Self {
17702 Self(!self.0)
17703 }
17704}
17705impl core::fmt::Debug for QueryResultFlagBits {
17706 #[allow(unused_mut, unused_variables)]
17707 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17708 let mut first = true;
17709 let mut remaining = self.0;
17710 if remaining & Self::_64.0 != 0 {
17711 if !first {
17712 f.write_str(" | ")?;
17713 }
17714 f.write_str("_64")?;
17715 remaining &= !Self::_64.0;
17716 first = false;
17717 }
17718 if remaining & Self::WAIT.0 != 0 {
17719 if !first {
17720 f.write_str(" | ")?;
17721 }
17722 f.write_str("WAIT")?;
17723 remaining &= !Self::WAIT.0;
17724 first = false;
17725 }
17726 if remaining & Self::WITH_AVAILABILITY.0 != 0 {
17727 if !first {
17728 f.write_str(" | ")?;
17729 }
17730 f.write_str("WITH_AVAILABILITY")?;
17731 remaining &= !Self::WITH_AVAILABILITY.0;
17732 first = false;
17733 }
17734 if remaining & Self::PARTIAL.0 != 0 {
17735 if !first {
17736 f.write_str(" | ")?;
17737 }
17738 f.write_str("PARTIAL")?;
17739 remaining &= !Self::PARTIAL.0;
17740 first = false;
17741 }
17742 if remaining & Self::WITH_STATUS.0 != 0 {
17743 if !first {
17744 f.write_str(" | ")?;
17745 }
17746 f.write_str("WITH_STATUS")?;
17747 remaining &= !Self::WITH_STATUS.0;
17748 first = false;
17749 }
17750 if remaining != 0u32 {
17751 if !first {
17752 f.write_str(" | ")?;
17753 }
17754 write!(f, "{:#x}", remaining)?;
17755 } else if first {
17756 f.write_str("(empty)")?;
17757 }
17758 Ok(())
17759 }
17760}
17761#[repr(transparent)]
17763#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17764#[doc(alias = "VkQueueFlagBits")]
17765pub struct QueueFlagBits(u32);
17766impl QueueFlagBits {
17767 #[inline]
17768 pub const fn empty() -> Self {
17769 Self(0u32)
17770 }
17771 #[inline]
17772 pub const fn from_raw(value: u32) -> Self {
17773 Self(value)
17774 }
17775 #[inline]
17776 pub const fn as_raw(self) -> u32 {
17777 self.0
17778 }
17779 #[inline]
17780 pub const fn is_empty(self) -> bool {
17781 self.0 == 0u32
17782 }
17783 #[inline]
17784 pub const fn contains(self, other: Self) -> bool {
17785 (self.0 & other.0) == other.0
17786 }
17787 #[inline]
17788 pub const fn all() -> Self {
17789 Self(1407u32)
17790 }
17791 pub const GRAPHICS: Self = Self(1u32);
17793 pub const COMPUTE: Self = Self(2u32);
17795 pub const TRANSFER: Self = Self(4u32);
17797 pub const SPARSE_BINDING: Self = Self(8u32);
17799 pub const PROTECTED: Self = Self(16u32);
17801 pub const VIDEO_DECODE: Self = Self(32u32);
17803 pub const VIDEO_ENCODE: Self = Self(64u32);
17805 pub const OPTICAL_FLOW: Self = Self(256u32);
17807 pub const DATA_GRAPH_BIT: Self = Self(1024u32);
17809}
17810impl core::ops::BitOr for QueueFlagBits {
17811 type Output = Self;
17812 #[inline]
17813 fn bitor(self, rhs: Self) -> Self {
17814 Self(self.0 | rhs.0)
17815 }
17816}
17817impl core::ops::BitOrAssign for QueueFlagBits {
17818 #[inline]
17819 fn bitor_assign(&mut self, rhs: Self) {
17820 self.0 |= rhs.0;
17821 }
17822}
17823impl core::ops::BitAnd for QueueFlagBits {
17824 type Output = Self;
17825 #[inline]
17826 fn bitand(self, rhs: Self) -> Self {
17827 Self(self.0 & rhs.0)
17828 }
17829}
17830impl core::ops::BitAndAssign for QueueFlagBits {
17831 #[inline]
17832 fn bitand_assign(&mut self, rhs: Self) {
17833 self.0 &= rhs.0;
17834 }
17835}
17836impl core::ops::BitXor for QueueFlagBits {
17837 type Output = Self;
17838 #[inline]
17839 fn bitxor(self, rhs: Self) -> Self {
17840 Self(self.0 ^ rhs.0)
17841 }
17842}
17843impl core::ops::BitXorAssign for QueueFlagBits {
17844 #[inline]
17845 fn bitxor_assign(&mut self, rhs: Self) {
17846 self.0 ^= rhs.0;
17847 }
17848}
17849impl core::ops::Not for QueueFlagBits {
17850 type Output = Self;
17851 #[inline]
17852 fn not(self) -> Self {
17853 Self(!self.0)
17854 }
17855}
17856impl core::fmt::Debug for QueueFlagBits {
17857 #[allow(unused_mut, unused_variables)]
17858 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
17859 let mut first = true;
17860 let mut remaining = self.0;
17861 if remaining & Self::GRAPHICS.0 != 0 {
17862 if !first {
17863 f.write_str(" | ")?;
17864 }
17865 f.write_str("GRAPHICS")?;
17866 remaining &= !Self::GRAPHICS.0;
17867 first = false;
17868 }
17869 if remaining & Self::COMPUTE.0 != 0 {
17870 if !first {
17871 f.write_str(" | ")?;
17872 }
17873 f.write_str("COMPUTE")?;
17874 remaining &= !Self::COMPUTE.0;
17875 first = false;
17876 }
17877 if remaining & Self::TRANSFER.0 != 0 {
17878 if !first {
17879 f.write_str(" | ")?;
17880 }
17881 f.write_str("TRANSFER")?;
17882 remaining &= !Self::TRANSFER.0;
17883 first = false;
17884 }
17885 if remaining & Self::SPARSE_BINDING.0 != 0 {
17886 if !first {
17887 f.write_str(" | ")?;
17888 }
17889 f.write_str("SPARSE_BINDING")?;
17890 remaining &= !Self::SPARSE_BINDING.0;
17891 first = false;
17892 }
17893 if remaining & Self::PROTECTED.0 != 0 {
17894 if !first {
17895 f.write_str(" | ")?;
17896 }
17897 f.write_str("PROTECTED")?;
17898 remaining &= !Self::PROTECTED.0;
17899 first = false;
17900 }
17901 if remaining & Self::VIDEO_DECODE.0 != 0 {
17902 if !first {
17903 f.write_str(" | ")?;
17904 }
17905 f.write_str("VIDEO_DECODE")?;
17906 remaining &= !Self::VIDEO_DECODE.0;
17907 first = false;
17908 }
17909 if remaining & Self::VIDEO_ENCODE.0 != 0 {
17910 if !first {
17911 f.write_str(" | ")?;
17912 }
17913 f.write_str("VIDEO_ENCODE")?;
17914 remaining &= !Self::VIDEO_ENCODE.0;
17915 first = false;
17916 }
17917 if remaining & Self::OPTICAL_FLOW.0 != 0 {
17918 if !first {
17919 f.write_str(" | ")?;
17920 }
17921 f.write_str("OPTICAL_FLOW")?;
17922 remaining &= !Self::OPTICAL_FLOW.0;
17923 first = false;
17924 }
17925 if remaining & Self::DATA_GRAPH_BIT.0 != 0 {
17926 if !first {
17927 f.write_str(" | ")?;
17928 }
17929 f.write_str("DATA_GRAPH_BIT")?;
17930 remaining &= !Self::DATA_GRAPH_BIT.0;
17931 first = false;
17932 }
17933 if remaining != 0u32 {
17934 if !first {
17935 f.write_str(" | ")?;
17936 }
17937 write!(f, "{:#x}", remaining)?;
17938 } else if first {
17939 f.write_str("(empty)")?;
17940 }
17941 Ok(())
17942 }
17943}
17944#[repr(transparent)]
17946#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
17947#[doc(alias = "VkRefreshObjectFlagBitsKHR")]
17948pub struct RefreshObjectFlagBitsKHR(u32);
17949impl RefreshObjectFlagBitsKHR {
17950 #[inline]
17951 pub const fn empty() -> Self {
17952 Self(0u32)
17953 }
17954 #[inline]
17955 pub const fn from_raw(value: u32) -> Self {
17956 Self(value)
17957 }
17958 #[inline]
17959 pub const fn as_raw(self) -> u32 {
17960 self.0
17961 }
17962 #[inline]
17963 pub const fn is_empty(self) -> bool {
17964 self.0 == 0u32
17965 }
17966 #[inline]
17967 pub const fn contains(self, other: Self) -> bool {
17968 (self.0 & other.0) == other.0
17969 }
17970 #[inline]
17971 pub const fn all() -> Self {
17972 Self(0u32)
17973 }
17974}
17975impl core::ops::BitOr for RefreshObjectFlagBitsKHR {
17976 type Output = Self;
17977 #[inline]
17978 fn bitor(self, rhs: Self) -> Self {
17979 Self(self.0 | rhs.0)
17980 }
17981}
17982impl core::ops::BitOrAssign for RefreshObjectFlagBitsKHR {
17983 #[inline]
17984 fn bitor_assign(&mut self, rhs: Self) {
17985 self.0 |= rhs.0;
17986 }
17987}
17988impl core::ops::BitAnd for RefreshObjectFlagBitsKHR {
17989 type Output = Self;
17990 #[inline]
17991 fn bitand(self, rhs: Self) -> Self {
17992 Self(self.0 & rhs.0)
17993 }
17994}
17995impl core::ops::BitAndAssign for RefreshObjectFlagBitsKHR {
17996 #[inline]
17997 fn bitand_assign(&mut self, rhs: Self) {
17998 self.0 &= rhs.0;
17999 }
18000}
18001impl core::ops::BitXor for RefreshObjectFlagBitsKHR {
18002 type Output = Self;
18003 #[inline]
18004 fn bitxor(self, rhs: Self) -> Self {
18005 Self(self.0 ^ rhs.0)
18006 }
18007}
18008impl core::ops::BitXorAssign for RefreshObjectFlagBitsKHR {
18009 #[inline]
18010 fn bitxor_assign(&mut self, rhs: Self) {
18011 self.0 ^= rhs.0;
18012 }
18013}
18014impl core::ops::Not for RefreshObjectFlagBitsKHR {
18015 type Output = Self;
18016 #[inline]
18017 fn not(self) -> Self {
18018 Self(!self.0)
18019 }
18020}
18021impl core::fmt::Debug for RefreshObjectFlagBitsKHR {
18022 #[allow(unused_mut, unused_variables)]
18023 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18024 let mut first = true;
18025 let mut remaining = self.0;
18026 if remaining != 0u32 {
18027 if !first {
18028 f.write_str(" | ")?;
18029 }
18030 write!(f, "{:#x}", remaining)?;
18031 } else if first {
18032 f.write_str("(empty)")?;
18033 }
18034 Ok(())
18035 }
18036}
18037#[repr(transparent)]
18039#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18040#[doc(alias = "VkRenderPassCreateFlagBits")]
18041pub struct RenderPassCreateFlagBits(u32);
18042impl RenderPassCreateFlagBits {
18043 #[inline]
18044 pub const fn empty() -> Self {
18045 Self(0u32)
18046 }
18047 #[inline]
18048 pub const fn from_raw(value: u32) -> Self {
18049 Self(value)
18050 }
18051 #[inline]
18052 pub const fn as_raw(self) -> u32 {
18053 self.0
18054 }
18055 #[inline]
18056 pub const fn is_empty(self) -> bool {
18057 self.0 == 0u32
18058 }
18059 #[inline]
18060 pub const fn contains(self, other: Self) -> bool {
18061 (self.0 & other.0) == other.0
18062 }
18063 #[inline]
18064 pub const fn all() -> Self {
18065 Self(6u32)
18066 }
18067 pub const TRANSFORM_BIT: Self = Self(2u32);
18069 pub const PER_LAYER_FRAGMENT_DENSITY_BIT: Self = Self(4u32);
18071}
18072impl core::ops::BitOr for RenderPassCreateFlagBits {
18073 type Output = Self;
18074 #[inline]
18075 fn bitor(self, rhs: Self) -> Self {
18076 Self(self.0 | rhs.0)
18077 }
18078}
18079impl core::ops::BitOrAssign for RenderPassCreateFlagBits {
18080 #[inline]
18081 fn bitor_assign(&mut self, rhs: Self) {
18082 self.0 |= rhs.0;
18083 }
18084}
18085impl core::ops::BitAnd for RenderPassCreateFlagBits {
18086 type Output = Self;
18087 #[inline]
18088 fn bitand(self, rhs: Self) -> Self {
18089 Self(self.0 & rhs.0)
18090 }
18091}
18092impl core::ops::BitAndAssign for RenderPassCreateFlagBits {
18093 #[inline]
18094 fn bitand_assign(&mut self, rhs: Self) {
18095 self.0 &= rhs.0;
18096 }
18097}
18098impl core::ops::BitXor for RenderPassCreateFlagBits {
18099 type Output = Self;
18100 #[inline]
18101 fn bitxor(self, rhs: Self) -> Self {
18102 Self(self.0 ^ rhs.0)
18103 }
18104}
18105impl core::ops::BitXorAssign for RenderPassCreateFlagBits {
18106 #[inline]
18107 fn bitxor_assign(&mut self, rhs: Self) {
18108 self.0 ^= rhs.0;
18109 }
18110}
18111impl core::ops::Not for RenderPassCreateFlagBits {
18112 type Output = Self;
18113 #[inline]
18114 fn not(self) -> Self {
18115 Self(!self.0)
18116 }
18117}
18118impl core::fmt::Debug for RenderPassCreateFlagBits {
18119 #[allow(unused_mut, unused_variables)]
18120 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18121 let mut first = true;
18122 let mut remaining = self.0;
18123 if remaining & Self::TRANSFORM_BIT.0 != 0 {
18124 if !first {
18125 f.write_str(" | ")?;
18126 }
18127 f.write_str("TRANSFORM_BIT")?;
18128 remaining &= !Self::TRANSFORM_BIT.0;
18129 first = false;
18130 }
18131 if remaining & Self::PER_LAYER_FRAGMENT_DENSITY_BIT.0 != 0 {
18132 if !first {
18133 f.write_str(" | ")?;
18134 }
18135 f.write_str("PER_LAYER_FRAGMENT_DENSITY_BIT")?;
18136 remaining &= !Self::PER_LAYER_FRAGMENT_DENSITY_BIT.0;
18137 first = false;
18138 }
18139 if remaining != 0u32 {
18140 if !first {
18141 f.write_str(" | ")?;
18142 }
18143 write!(f, "{:#x}", remaining)?;
18144 } else if first {
18145 f.write_str("(empty)")?;
18146 }
18147 Ok(())
18148 }
18149}
18150#[repr(transparent)]
18152#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18153#[doc(alias = "VkRenderingAttachmentFlagBitsKHR")]
18154pub struct RenderingAttachmentFlagBitsKHR(u32);
18155impl RenderingAttachmentFlagBitsKHR {
18156 #[inline]
18157 pub const fn empty() -> Self {
18158 Self(0u32)
18159 }
18160 #[inline]
18161 pub const fn from_raw(value: u32) -> Self {
18162 Self(value)
18163 }
18164 #[inline]
18165 pub const fn as_raw(self) -> u32 {
18166 self.0
18167 }
18168 #[inline]
18169 pub const fn is_empty(self) -> bool {
18170 self.0 == 0u32
18171 }
18172 #[inline]
18173 pub const fn contains(self, other: Self) -> bool {
18174 (self.0 & other.0) == other.0
18175 }
18176 #[inline]
18177 pub const fn all() -> Self {
18178 Self(7u32)
18179 }
18180 pub const INPUT_ATTACHMENT_FEEDBACK: Self = Self(1u32);
18182 pub const RESOLVE_SKIP_TRANSFER_FUNCTION: Self = Self(2u32);
18184 pub const RESOLVE_ENABLE_TRANSFER_FUNCTION: Self = Self(4u32);
18186}
18187impl core::ops::BitOr for RenderingAttachmentFlagBitsKHR {
18188 type Output = Self;
18189 #[inline]
18190 fn bitor(self, rhs: Self) -> Self {
18191 Self(self.0 | rhs.0)
18192 }
18193}
18194impl core::ops::BitOrAssign for RenderingAttachmentFlagBitsKHR {
18195 #[inline]
18196 fn bitor_assign(&mut self, rhs: Self) {
18197 self.0 |= rhs.0;
18198 }
18199}
18200impl core::ops::BitAnd for RenderingAttachmentFlagBitsKHR {
18201 type Output = Self;
18202 #[inline]
18203 fn bitand(self, rhs: Self) -> Self {
18204 Self(self.0 & rhs.0)
18205 }
18206}
18207impl core::ops::BitAndAssign for RenderingAttachmentFlagBitsKHR {
18208 #[inline]
18209 fn bitand_assign(&mut self, rhs: Self) {
18210 self.0 &= rhs.0;
18211 }
18212}
18213impl core::ops::BitXor for RenderingAttachmentFlagBitsKHR {
18214 type Output = Self;
18215 #[inline]
18216 fn bitxor(self, rhs: Self) -> Self {
18217 Self(self.0 ^ rhs.0)
18218 }
18219}
18220impl core::ops::BitXorAssign for RenderingAttachmentFlagBitsKHR {
18221 #[inline]
18222 fn bitxor_assign(&mut self, rhs: Self) {
18223 self.0 ^= rhs.0;
18224 }
18225}
18226impl core::ops::Not for RenderingAttachmentFlagBitsKHR {
18227 type Output = Self;
18228 #[inline]
18229 fn not(self) -> Self {
18230 Self(!self.0)
18231 }
18232}
18233impl core::fmt::Debug for RenderingAttachmentFlagBitsKHR {
18234 #[allow(unused_mut, unused_variables)]
18235 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18236 let mut first = true;
18237 let mut remaining = self.0;
18238 if remaining & Self::INPUT_ATTACHMENT_FEEDBACK.0 != 0 {
18239 if !first {
18240 f.write_str(" | ")?;
18241 }
18242 f.write_str("INPUT_ATTACHMENT_FEEDBACK")?;
18243 remaining &= !Self::INPUT_ATTACHMENT_FEEDBACK.0;
18244 first = false;
18245 }
18246 if remaining & Self::RESOLVE_SKIP_TRANSFER_FUNCTION.0 != 0 {
18247 if !first {
18248 f.write_str(" | ")?;
18249 }
18250 f.write_str("RESOLVE_SKIP_TRANSFER_FUNCTION")?;
18251 remaining &= !Self::RESOLVE_SKIP_TRANSFER_FUNCTION.0;
18252 first = false;
18253 }
18254 if remaining & Self::RESOLVE_ENABLE_TRANSFER_FUNCTION.0 != 0 {
18255 if !first {
18256 f.write_str(" | ")?;
18257 }
18258 f.write_str("RESOLVE_ENABLE_TRANSFER_FUNCTION")?;
18259 remaining &= !Self::RESOLVE_ENABLE_TRANSFER_FUNCTION.0;
18260 first = false;
18261 }
18262 if remaining != 0u32 {
18263 if !first {
18264 f.write_str(" | ")?;
18265 }
18266 write!(f, "{:#x}", remaining)?;
18267 } else if first {
18268 f.write_str("(empty)")?;
18269 }
18270 Ok(())
18271 }
18272}
18273#[repr(transparent)]
18275#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18276#[doc(alias = "VkRenderingFlagBits")]
18277pub struct RenderingFlagBits(u32);
18278impl RenderingFlagBits {
18279 #[inline]
18280 pub const fn empty() -> Self {
18281 Self(0u32)
18282 }
18283 #[inline]
18284 pub const fn from_raw(value: u32) -> Self {
18285 Self(value)
18286 }
18287 #[inline]
18288 pub const fn as_raw(self) -> u32 {
18289 self.0
18290 }
18291 #[inline]
18292 pub const fn is_empty(self) -> bool {
18293 self.0 == 0u32
18294 }
18295 #[inline]
18296 pub const fn contains(self, other: Self) -> bool {
18297 (self.0 & other.0) == other.0
18298 }
18299 #[inline]
18300 pub const fn all() -> Self {
18301 Self(511u32)
18302 }
18303 pub const CONTENTS_SECONDARY_COMMAND_BUFFERS: Self = Self(1u32);
18305 pub const SUSPENDING: Self = Self(2u32);
18307 pub const RESUMING: Self = Self(4u32);
18309 pub const ENABLE_LEGACY_DITHERING: Self = Self(8u32);
18311 pub const CONTENTS_INLINE: Self = Self(16u32);
18313 pub const PER_LAYER_FRAGMENT_DENSITY_BIT: Self = Self(32u32);
18315 pub const FRAGMENT_REGION: Self = Self(64u32);
18317 pub const CUSTOM_RESOLVE: Self = Self(128u32);
18319 pub const LOCAL_READ_CONCURRENT_ACCESS_CONTROL: Self = Self(256u32);
18321}
18322impl core::ops::BitOr for RenderingFlagBits {
18323 type Output = Self;
18324 #[inline]
18325 fn bitor(self, rhs: Self) -> Self {
18326 Self(self.0 | rhs.0)
18327 }
18328}
18329impl core::ops::BitOrAssign for RenderingFlagBits {
18330 #[inline]
18331 fn bitor_assign(&mut self, rhs: Self) {
18332 self.0 |= rhs.0;
18333 }
18334}
18335impl core::ops::BitAnd for RenderingFlagBits {
18336 type Output = Self;
18337 #[inline]
18338 fn bitand(self, rhs: Self) -> Self {
18339 Self(self.0 & rhs.0)
18340 }
18341}
18342impl core::ops::BitAndAssign for RenderingFlagBits {
18343 #[inline]
18344 fn bitand_assign(&mut self, rhs: Self) {
18345 self.0 &= rhs.0;
18346 }
18347}
18348impl core::ops::BitXor for RenderingFlagBits {
18349 type Output = Self;
18350 #[inline]
18351 fn bitxor(self, rhs: Self) -> Self {
18352 Self(self.0 ^ rhs.0)
18353 }
18354}
18355impl core::ops::BitXorAssign for RenderingFlagBits {
18356 #[inline]
18357 fn bitxor_assign(&mut self, rhs: Self) {
18358 self.0 ^= rhs.0;
18359 }
18360}
18361impl core::ops::Not for RenderingFlagBits {
18362 type Output = Self;
18363 #[inline]
18364 fn not(self) -> Self {
18365 Self(!self.0)
18366 }
18367}
18368impl core::fmt::Debug for RenderingFlagBits {
18369 #[allow(unused_mut, unused_variables)]
18370 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18371 let mut first = true;
18372 let mut remaining = self.0;
18373 if remaining & Self::CONTENTS_SECONDARY_COMMAND_BUFFERS.0 != 0 {
18374 if !first {
18375 f.write_str(" | ")?;
18376 }
18377 f.write_str("CONTENTS_SECONDARY_COMMAND_BUFFERS")?;
18378 remaining &= !Self::CONTENTS_SECONDARY_COMMAND_BUFFERS.0;
18379 first = false;
18380 }
18381 if remaining & Self::SUSPENDING.0 != 0 {
18382 if !first {
18383 f.write_str(" | ")?;
18384 }
18385 f.write_str("SUSPENDING")?;
18386 remaining &= !Self::SUSPENDING.0;
18387 first = false;
18388 }
18389 if remaining & Self::RESUMING.0 != 0 {
18390 if !first {
18391 f.write_str(" | ")?;
18392 }
18393 f.write_str("RESUMING")?;
18394 remaining &= !Self::RESUMING.0;
18395 first = false;
18396 }
18397 if remaining & Self::ENABLE_LEGACY_DITHERING.0 != 0 {
18398 if !first {
18399 f.write_str(" | ")?;
18400 }
18401 f.write_str("ENABLE_LEGACY_DITHERING")?;
18402 remaining &= !Self::ENABLE_LEGACY_DITHERING.0;
18403 first = false;
18404 }
18405 if remaining & Self::CONTENTS_INLINE.0 != 0 {
18406 if !first {
18407 f.write_str(" | ")?;
18408 }
18409 f.write_str("CONTENTS_INLINE")?;
18410 remaining &= !Self::CONTENTS_INLINE.0;
18411 first = false;
18412 }
18413 if remaining & Self::PER_LAYER_FRAGMENT_DENSITY_BIT.0 != 0 {
18414 if !first {
18415 f.write_str(" | ")?;
18416 }
18417 f.write_str("PER_LAYER_FRAGMENT_DENSITY_BIT")?;
18418 remaining &= !Self::PER_LAYER_FRAGMENT_DENSITY_BIT.0;
18419 first = false;
18420 }
18421 if remaining & Self::FRAGMENT_REGION.0 != 0 {
18422 if !first {
18423 f.write_str(" | ")?;
18424 }
18425 f.write_str("FRAGMENT_REGION")?;
18426 remaining &= !Self::FRAGMENT_REGION.0;
18427 first = false;
18428 }
18429 if remaining & Self::CUSTOM_RESOLVE.0 != 0 {
18430 if !first {
18431 f.write_str(" | ")?;
18432 }
18433 f.write_str("CUSTOM_RESOLVE")?;
18434 remaining &= !Self::CUSTOM_RESOLVE.0;
18435 first = false;
18436 }
18437 if remaining & Self::LOCAL_READ_CONCURRENT_ACCESS_CONTROL.0 != 0 {
18438 if !first {
18439 f.write_str(" | ")?;
18440 }
18441 f.write_str("LOCAL_READ_CONCURRENT_ACCESS_CONTROL")?;
18442 remaining &= !Self::LOCAL_READ_CONCURRENT_ACCESS_CONTROL.0;
18443 first = false;
18444 }
18445 if remaining != 0u32 {
18446 if !first {
18447 f.write_str(" | ")?;
18448 }
18449 write!(f, "{:#x}", remaining)?;
18450 } else if first {
18451 f.write_str("(empty)")?;
18452 }
18453 Ok(())
18454 }
18455}
18456#[repr(transparent)]
18458#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18459#[doc(alias = "VkResolveImageFlagBitsKHR")]
18460pub struct ResolveImageFlagBitsKHR(u32);
18461impl ResolveImageFlagBitsKHR {
18462 #[inline]
18463 pub const fn empty() -> Self {
18464 Self(0u32)
18465 }
18466 #[inline]
18467 pub const fn from_raw(value: u32) -> Self {
18468 Self(value)
18469 }
18470 #[inline]
18471 pub const fn as_raw(self) -> u32 {
18472 self.0
18473 }
18474 #[inline]
18475 pub const fn is_empty(self) -> bool {
18476 self.0 == 0u32
18477 }
18478 #[inline]
18479 pub const fn contains(self, other: Self) -> bool {
18480 (self.0 & other.0) == other.0
18481 }
18482 #[inline]
18483 pub const fn all() -> Self {
18484 Self(3u32)
18485 }
18486 pub const SKIP_TRANSFER_FUNCTION: Self = Self(1u32);
18488 pub const ENABLE_TRANSFER_FUNCTION: Self = Self(2u32);
18490}
18491impl core::ops::BitOr for ResolveImageFlagBitsKHR {
18492 type Output = Self;
18493 #[inline]
18494 fn bitor(self, rhs: Self) -> Self {
18495 Self(self.0 | rhs.0)
18496 }
18497}
18498impl core::ops::BitOrAssign for ResolveImageFlagBitsKHR {
18499 #[inline]
18500 fn bitor_assign(&mut self, rhs: Self) {
18501 self.0 |= rhs.0;
18502 }
18503}
18504impl core::ops::BitAnd for ResolveImageFlagBitsKHR {
18505 type Output = Self;
18506 #[inline]
18507 fn bitand(self, rhs: Self) -> Self {
18508 Self(self.0 & rhs.0)
18509 }
18510}
18511impl core::ops::BitAndAssign for ResolveImageFlagBitsKHR {
18512 #[inline]
18513 fn bitand_assign(&mut self, rhs: Self) {
18514 self.0 &= rhs.0;
18515 }
18516}
18517impl core::ops::BitXor for ResolveImageFlagBitsKHR {
18518 type Output = Self;
18519 #[inline]
18520 fn bitxor(self, rhs: Self) -> Self {
18521 Self(self.0 ^ rhs.0)
18522 }
18523}
18524impl core::ops::BitXorAssign for ResolveImageFlagBitsKHR {
18525 #[inline]
18526 fn bitxor_assign(&mut self, rhs: Self) {
18527 self.0 ^= rhs.0;
18528 }
18529}
18530impl core::ops::Not for ResolveImageFlagBitsKHR {
18531 type Output = Self;
18532 #[inline]
18533 fn not(self) -> Self {
18534 Self(!self.0)
18535 }
18536}
18537impl core::fmt::Debug for ResolveImageFlagBitsKHR {
18538 #[allow(unused_mut, unused_variables)]
18539 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18540 let mut first = true;
18541 let mut remaining = self.0;
18542 if remaining & Self::SKIP_TRANSFER_FUNCTION.0 != 0 {
18543 if !first {
18544 f.write_str(" | ")?;
18545 }
18546 f.write_str("SKIP_TRANSFER_FUNCTION")?;
18547 remaining &= !Self::SKIP_TRANSFER_FUNCTION.0;
18548 first = false;
18549 }
18550 if remaining & Self::ENABLE_TRANSFER_FUNCTION.0 != 0 {
18551 if !first {
18552 f.write_str(" | ")?;
18553 }
18554 f.write_str("ENABLE_TRANSFER_FUNCTION")?;
18555 remaining &= !Self::ENABLE_TRANSFER_FUNCTION.0;
18556 first = false;
18557 }
18558 if remaining != 0u32 {
18559 if !first {
18560 f.write_str(" | ")?;
18561 }
18562 write!(f, "{:#x}", remaining)?;
18563 } else if first {
18564 f.write_str("(empty)")?;
18565 }
18566 Ok(())
18567 }
18568}
18569#[repr(transparent)]
18571#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18572#[doc(alias = "VkResolveModeFlagBits")]
18573pub struct ResolveModeFlagBits(u32);
18574impl ResolveModeFlagBits {
18575 #[inline]
18576 pub const fn empty() -> Self {
18577 Self(0u32)
18578 }
18579 #[inline]
18580 pub const fn from_raw(value: u32) -> Self {
18581 Self(value)
18582 }
18583 #[inline]
18584 pub const fn as_raw(self) -> u32 {
18585 self.0
18586 }
18587 #[inline]
18588 pub const fn is_empty(self) -> bool {
18589 self.0 == 0u32
18590 }
18591 #[inline]
18592 pub const fn contains(self, other: Self) -> bool {
18593 (self.0 & other.0) == other.0
18594 }
18595 #[inline]
18596 pub const fn all() -> Self {
18597 Self(63u32)
18598 }
18599 pub const NONE: Self = Self(0u32);
18600 pub const SAMPLE_ZERO: Self = Self(1u32);
18602 pub const AVERAGE: Self = Self(2u32);
18604 pub const MIN: Self = Self(4u32);
18606 pub const MAX: Self = Self(8u32);
18608 pub const EXTERNAL_FORMAT_DOWNSAMPLE_BIT: Self = Self(16u32);
18610 pub const EXTERNAL_FORMAT_DOWNSAMPLE: Self = Self::EXTERNAL_FORMAT_DOWNSAMPLE_BIT;
18611 pub const CUSTOM: Self = Self(32u32);
18613}
18614impl core::ops::BitOr for ResolveModeFlagBits {
18615 type Output = Self;
18616 #[inline]
18617 fn bitor(self, rhs: Self) -> Self {
18618 Self(self.0 | rhs.0)
18619 }
18620}
18621impl core::ops::BitOrAssign for ResolveModeFlagBits {
18622 #[inline]
18623 fn bitor_assign(&mut self, rhs: Self) {
18624 self.0 |= rhs.0;
18625 }
18626}
18627impl core::ops::BitAnd for ResolveModeFlagBits {
18628 type Output = Self;
18629 #[inline]
18630 fn bitand(self, rhs: Self) -> Self {
18631 Self(self.0 & rhs.0)
18632 }
18633}
18634impl core::ops::BitAndAssign for ResolveModeFlagBits {
18635 #[inline]
18636 fn bitand_assign(&mut self, rhs: Self) {
18637 self.0 &= rhs.0;
18638 }
18639}
18640impl core::ops::BitXor for ResolveModeFlagBits {
18641 type Output = Self;
18642 #[inline]
18643 fn bitxor(self, rhs: Self) -> Self {
18644 Self(self.0 ^ rhs.0)
18645 }
18646}
18647impl core::ops::BitXorAssign for ResolveModeFlagBits {
18648 #[inline]
18649 fn bitxor_assign(&mut self, rhs: Self) {
18650 self.0 ^= rhs.0;
18651 }
18652}
18653impl core::ops::Not for ResolveModeFlagBits {
18654 type Output = Self;
18655 #[inline]
18656 fn not(self) -> Self {
18657 Self(!self.0)
18658 }
18659}
18660impl core::fmt::Debug for ResolveModeFlagBits {
18661 #[allow(unused_mut, unused_variables)]
18662 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18663 let mut first = true;
18664 let mut remaining = self.0;
18665 if remaining & Self::SAMPLE_ZERO.0 != 0 {
18666 if !first {
18667 f.write_str(" | ")?;
18668 }
18669 f.write_str("SAMPLE_ZERO")?;
18670 remaining &= !Self::SAMPLE_ZERO.0;
18671 first = false;
18672 }
18673 if remaining & Self::AVERAGE.0 != 0 {
18674 if !first {
18675 f.write_str(" | ")?;
18676 }
18677 f.write_str("AVERAGE")?;
18678 remaining &= !Self::AVERAGE.0;
18679 first = false;
18680 }
18681 if remaining & Self::MIN.0 != 0 {
18682 if !first {
18683 f.write_str(" | ")?;
18684 }
18685 f.write_str("MIN")?;
18686 remaining &= !Self::MIN.0;
18687 first = false;
18688 }
18689 if remaining & Self::MAX.0 != 0 {
18690 if !first {
18691 f.write_str(" | ")?;
18692 }
18693 f.write_str("MAX")?;
18694 remaining &= !Self::MAX.0;
18695 first = false;
18696 }
18697 if remaining & Self::EXTERNAL_FORMAT_DOWNSAMPLE_BIT.0 != 0 {
18698 if !first {
18699 f.write_str(" | ")?;
18700 }
18701 f.write_str("EXTERNAL_FORMAT_DOWNSAMPLE_BIT")?;
18702 remaining &= !Self::EXTERNAL_FORMAT_DOWNSAMPLE_BIT.0;
18703 first = false;
18704 }
18705 if remaining & Self::CUSTOM.0 != 0 {
18706 if !first {
18707 f.write_str(" | ")?;
18708 }
18709 f.write_str("CUSTOM")?;
18710 remaining &= !Self::CUSTOM.0;
18711 first = false;
18712 }
18713 if remaining != 0u32 {
18714 if !first {
18715 f.write_str(" | ")?;
18716 }
18717 write!(f, "{:#x}", remaining)?;
18718 } else if first {
18719 f.write_str("(empty)")?;
18720 }
18721 Ok(())
18722 }
18723}
18724#[repr(transparent)]
18726#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18727#[doc(alias = "VkSampleCountFlagBits")]
18728pub struct SampleCountFlagBits(u32);
18729impl SampleCountFlagBits {
18730 #[inline]
18731 pub const fn empty() -> Self {
18732 Self(0u32)
18733 }
18734 #[inline]
18735 pub const fn from_raw(value: u32) -> Self {
18736 Self(value)
18737 }
18738 #[inline]
18739 pub const fn as_raw(self) -> u32 {
18740 self.0
18741 }
18742 #[inline]
18743 pub const fn is_empty(self) -> bool {
18744 self.0 == 0u32
18745 }
18746 #[inline]
18747 pub const fn contains(self, other: Self) -> bool {
18748 (self.0 & other.0) == other.0
18749 }
18750 #[inline]
18751 pub const fn all() -> Self {
18752 Self(127u32)
18753 }
18754 pub const _1: Self = Self(1u32);
18756 pub const _2: Self = Self(2u32);
18758 pub const _4: Self = Self(4u32);
18760 pub const _8: Self = Self(8u32);
18762 pub const _16: Self = Self(16u32);
18764 pub const _32: Self = Self(32u32);
18766 pub const _64: Self = Self(64u32);
18768}
18769impl core::ops::BitOr for SampleCountFlagBits {
18770 type Output = Self;
18771 #[inline]
18772 fn bitor(self, rhs: Self) -> Self {
18773 Self(self.0 | rhs.0)
18774 }
18775}
18776impl core::ops::BitOrAssign for SampleCountFlagBits {
18777 #[inline]
18778 fn bitor_assign(&mut self, rhs: Self) {
18779 self.0 |= rhs.0;
18780 }
18781}
18782impl core::ops::BitAnd for SampleCountFlagBits {
18783 type Output = Self;
18784 #[inline]
18785 fn bitand(self, rhs: Self) -> Self {
18786 Self(self.0 & rhs.0)
18787 }
18788}
18789impl core::ops::BitAndAssign for SampleCountFlagBits {
18790 #[inline]
18791 fn bitand_assign(&mut self, rhs: Self) {
18792 self.0 &= rhs.0;
18793 }
18794}
18795impl core::ops::BitXor for SampleCountFlagBits {
18796 type Output = Self;
18797 #[inline]
18798 fn bitxor(self, rhs: Self) -> Self {
18799 Self(self.0 ^ rhs.0)
18800 }
18801}
18802impl core::ops::BitXorAssign for SampleCountFlagBits {
18803 #[inline]
18804 fn bitxor_assign(&mut self, rhs: Self) {
18805 self.0 ^= rhs.0;
18806 }
18807}
18808impl core::ops::Not for SampleCountFlagBits {
18809 type Output = Self;
18810 #[inline]
18811 fn not(self) -> Self {
18812 Self(!self.0)
18813 }
18814}
18815impl core::fmt::Debug for SampleCountFlagBits {
18816 #[allow(unused_mut, unused_variables)]
18817 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18818 let mut first = true;
18819 let mut remaining = self.0;
18820 if remaining & Self::_1.0 != 0 {
18821 if !first {
18822 f.write_str(" | ")?;
18823 }
18824 f.write_str("_1")?;
18825 remaining &= !Self::_1.0;
18826 first = false;
18827 }
18828 if remaining & Self::_2.0 != 0 {
18829 if !first {
18830 f.write_str(" | ")?;
18831 }
18832 f.write_str("_2")?;
18833 remaining &= !Self::_2.0;
18834 first = false;
18835 }
18836 if remaining & Self::_4.0 != 0 {
18837 if !first {
18838 f.write_str(" | ")?;
18839 }
18840 f.write_str("_4")?;
18841 remaining &= !Self::_4.0;
18842 first = false;
18843 }
18844 if remaining & Self::_8.0 != 0 {
18845 if !first {
18846 f.write_str(" | ")?;
18847 }
18848 f.write_str("_8")?;
18849 remaining &= !Self::_8.0;
18850 first = false;
18851 }
18852 if remaining & Self::_16.0 != 0 {
18853 if !first {
18854 f.write_str(" | ")?;
18855 }
18856 f.write_str("_16")?;
18857 remaining &= !Self::_16.0;
18858 first = false;
18859 }
18860 if remaining & Self::_32.0 != 0 {
18861 if !first {
18862 f.write_str(" | ")?;
18863 }
18864 f.write_str("_32")?;
18865 remaining &= !Self::_32.0;
18866 first = false;
18867 }
18868 if remaining & Self::_64.0 != 0 {
18869 if !first {
18870 f.write_str(" | ")?;
18871 }
18872 f.write_str("_64")?;
18873 remaining &= !Self::_64.0;
18874 first = false;
18875 }
18876 if remaining != 0u32 {
18877 if !first {
18878 f.write_str(" | ")?;
18879 }
18880 write!(f, "{:#x}", remaining)?;
18881 } else if first {
18882 f.write_str("(empty)")?;
18883 }
18884 Ok(())
18885 }
18886}
18887#[repr(transparent)]
18889#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
18890#[doc(alias = "VkSamplerCreateFlagBits")]
18891pub struct SamplerCreateFlagBits(u32);
18892impl SamplerCreateFlagBits {
18893 #[inline]
18894 pub const fn empty() -> Self {
18895 Self(0u32)
18896 }
18897 #[inline]
18898 pub const fn from_raw(value: u32) -> Self {
18899 Self(value)
18900 }
18901 #[inline]
18902 pub const fn as_raw(self) -> u32 {
18903 self.0
18904 }
18905 #[inline]
18906 pub const fn is_empty(self) -> bool {
18907 self.0 == 0u32
18908 }
18909 #[inline]
18910 pub const fn contains(self, other: Self) -> bool {
18911 (self.0 & other.0) == other.0
18912 }
18913 #[inline]
18914 pub const fn all() -> Self {
18915 Self(31u32)
18916 }
18917 pub const SUBSAMPLED: Self = Self(1u32);
18919 pub const SUBSAMPLED_COARSE_RECONSTRUCTION: Self = Self(2u32);
18921 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY: Self = Self(8u32);
18923 pub const NON_SEAMLESS_CUBE_MAP: Self = Self(4u32);
18925 pub const IMAGE_PROCESSING_BIT: Self = Self(16u32);
18927}
18928impl core::ops::BitOr for SamplerCreateFlagBits {
18929 type Output = Self;
18930 #[inline]
18931 fn bitor(self, rhs: Self) -> Self {
18932 Self(self.0 | rhs.0)
18933 }
18934}
18935impl core::ops::BitOrAssign for SamplerCreateFlagBits {
18936 #[inline]
18937 fn bitor_assign(&mut self, rhs: Self) {
18938 self.0 |= rhs.0;
18939 }
18940}
18941impl core::ops::BitAnd for SamplerCreateFlagBits {
18942 type Output = Self;
18943 #[inline]
18944 fn bitand(self, rhs: Self) -> Self {
18945 Self(self.0 & rhs.0)
18946 }
18947}
18948impl core::ops::BitAndAssign for SamplerCreateFlagBits {
18949 #[inline]
18950 fn bitand_assign(&mut self, rhs: Self) {
18951 self.0 &= rhs.0;
18952 }
18953}
18954impl core::ops::BitXor for SamplerCreateFlagBits {
18955 type Output = Self;
18956 #[inline]
18957 fn bitxor(self, rhs: Self) -> Self {
18958 Self(self.0 ^ rhs.0)
18959 }
18960}
18961impl core::ops::BitXorAssign for SamplerCreateFlagBits {
18962 #[inline]
18963 fn bitxor_assign(&mut self, rhs: Self) {
18964 self.0 ^= rhs.0;
18965 }
18966}
18967impl core::ops::Not for SamplerCreateFlagBits {
18968 type Output = Self;
18969 #[inline]
18970 fn not(self) -> Self {
18971 Self(!self.0)
18972 }
18973}
18974impl core::fmt::Debug for SamplerCreateFlagBits {
18975 #[allow(unused_mut, unused_variables)]
18976 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
18977 let mut first = true;
18978 let mut remaining = self.0;
18979 if remaining & Self::SUBSAMPLED.0 != 0 {
18980 if !first {
18981 f.write_str(" | ")?;
18982 }
18983 f.write_str("SUBSAMPLED")?;
18984 remaining &= !Self::SUBSAMPLED.0;
18985 first = false;
18986 }
18987 if remaining & Self::SUBSAMPLED_COARSE_RECONSTRUCTION.0 != 0 {
18988 if !first {
18989 f.write_str(" | ")?;
18990 }
18991 f.write_str("SUBSAMPLED_COARSE_RECONSTRUCTION")?;
18992 remaining &= !Self::SUBSAMPLED_COARSE_RECONSTRUCTION.0;
18993 first = false;
18994 }
18995 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0 != 0 {
18996 if !first {
18997 f.write_str(" | ")?;
18998 }
18999 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY")?;
19000 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY.0;
19001 first = false;
19002 }
19003 if remaining & Self::NON_SEAMLESS_CUBE_MAP.0 != 0 {
19004 if !first {
19005 f.write_str(" | ")?;
19006 }
19007 f.write_str("NON_SEAMLESS_CUBE_MAP")?;
19008 remaining &= !Self::NON_SEAMLESS_CUBE_MAP.0;
19009 first = false;
19010 }
19011 if remaining & Self::IMAGE_PROCESSING_BIT.0 != 0 {
19012 if !first {
19013 f.write_str(" | ")?;
19014 }
19015 f.write_str("IMAGE_PROCESSING_BIT")?;
19016 remaining &= !Self::IMAGE_PROCESSING_BIT.0;
19017 first = false;
19018 }
19019 if remaining != 0u32 {
19020 if !first {
19021 f.write_str(" | ")?;
19022 }
19023 write!(f, "{:#x}", remaining)?;
19024 } else if first {
19025 f.write_str("(empty)")?;
19026 }
19027 Ok(())
19028 }
19029}
19030#[repr(transparent)]
19032#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19033#[doc(alias = "VkSemaphoreCreateFlagBits")]
19034pub struct SemaphoreCreateFlagBits(u32);
19035impl SemaphoreCreateFlagBits {
19036 #[inline]
19037 pub const fn empty() -> Self {
19038 Self(0u32)
19039 }
19040 #[inline]
19041 pub const fn from_raw(value: u32) -> Self {
19042 Self(value)
19043 }
19044 #[inline]
19045 pub const fn as_raw(self) -> u32 {
19046 self.0
19047 }
19048 #[inline]
19049 pub const fn is_empty(self) -> bool {
19050 self.0 == 0u32
19051 }
19052 #[inline]
19053 pub const fn contains(self, other: Self) -> bool {
19054 (self.0 & other.0) == other.0
19055 }
19056 #[inline]
19057 pub const fn all() -> Self {
19058 Self(0u32)
19059 }
19060}
19061impl core::ops::BitOr for SemaphoreCreateFlagBits {
19062 type Output = Self;
19063 #[inline]
19064 fn bitor(self, rhs: Self) -> Self {
19065 Self(self.0 | rhs.0)
19066 }
19067}
19068impl core::ops::BitOrAssign for SemaphoreCreateFlagBits {
19069 #[inline]
19070 fn bitor_assign(&mut self, rhs: Self) {
19071 self.0 |= rhs.0;
19072 }
19073}
19074impl core::ops::BitAnd for SemaphoreCreateFlagBits {
19075 type Output = Self;
19076 #[inline]
19077 fn bitand(self, rhs: Self) -> Self {
19078 Self(self.0 & rhs.0)
19079 }
19080}
19081impl core::ops::BitAndAssign for SemaphoreCreateFlagBits {
19082 #[inline]
19083 fn bitand_assign(&mut self, rhs: Self) {
19084 self.0 &= rhs.0;
19085 }
19086}
19087impl core::ops::BitXor for SemaphoreCreateFlagBits {
19088 type Output = Self;
19089 #[inline]
19090 fn bitxor(self, rhs: Self) -> Self {
19091 Self(self.0 ^ rhs.0)
19092 }
19093}
19094impl core::ops::BitXorAssign for SemaphoreCreateFlagBits {
19095 #[inline]
19096 fn bitxor_assign(&mut self, rhs: Self) {
19097 self.0 ^= rhs.0;
19098 }
19099}
19100impl core::ops::Not for SemaphoreCreateFlagBits {
19101 type Output = Self;
19102 #[inline]
19103 fn not(self) -> Self {
19104 Self(!self.0)
19105 }
19106}
19107impl core::fmt::Debug for SemaphoreCreateFlagBits {
19108 #[allow(unused_mut, unused_variables)]
19109 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19110 let mut first = true;
19111 let mut remaining = self.0;
19112 if remaining != 0u32 {
19113 if !first {
19114 f.write_str(" | ")?;
19115 }
19116 write!(f, "{:#x}", remaining)?;
19117 } else if first {
19118 f.write_str("(empty)")?;
19119 }
19120 Ok(())
19121 }
19122}
19123#[repr(transparent)]
19125#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19126#[doc(alias = "VkSemaphoreImportFlagBits")]
19127pub struct SemaphoreImportFlagBits(u32);
19128impl SemaphoreImportFlagBits {
19129 #[inline]
19130 pub const fn empty() -> Self {
19131 Self(0u32)
19132 }
19133 #[inline]
19134 pub const fn from_raw(value: u32) -> Self {
19135 Self(value)
19136 }
19137 #[inline]
19138 pub const fn as_raw(self) -> u32 {
19139 self.0
19140 }
19141 #[inline]
19142 pub const fn is_empty(self) -> bool {
19143 self.0 == 0u32
19144 }
19145 #[inline]
19146 pub const fn contains(self, other: Self) -> bool {
19147 (self.0 & other.0) == other.0
19148 }
19149 #[inline]
19150 pub const fn all() -> Self {
19151 Self(1u32)
19152 }
19153 pub const TEMPORARY: Self = Self(1u32);
19155}
19156impl core::ops::BitOr for SemaphoreImportFlagBits {
19157 type Output = Self;
19158 #[inline]
19159 fn bitor(self, rhs: Self) -> Self {
19160 Self(self.0 | rhs.0)
19161 }
19162}
19163impl core::ops::BitOrAssign for SemaphoreImportFlagBits {
19164 #[inline]
19165 fn bitor_assign(&mut self, rhs: Self) {
19166 self.0 |= rhs.0;
19167 }
19168}
19169impl core::ops::BitAnd for SemaphoreImportFlagBits {
19170 type Output = Self;
19171 #[inline]
19172 fn bitand(self, rhs: Self) -> Self {
19173 Self(self.0 & rhs.0)
19174 }
19175}
19176impl core::ops::BitAndAssign for SemaphoreImportFlagBits {
19177 #[inline]
19178 fn bitand_assign(&mut self, rhs: Self) {
19179 self.0 &= rhs.0;
19180 }
19181}
19182impl core::ops::BitXor for SemaphoreImportFlagBits {
19183 type Output = Self;
19184 #[inline]
19185 fn bitxor(self, rhs: Self) -> Self {
19186 Self(self.0 ^ rhs.0)
19187 }
19188}
19189impl core::ops::BitXorAssign for SemaphoreImportFlagBits {
19190 #[inline]
19191 fn bitxor_assign(&mut self, rhs: Self) {
19192 self.0 ^= rhs.0;
19193 }
19194}
19195impl core::ops::Not for SemaphoreImportFlagBits {
19196 type Output = Self;
19197 #[inline]
19198 fn not(self) -> Self {
19199 Self(!self.0)
19200 }
19201}
19202impl core::fmt::Debug for SemaphoreImportFlagBits {
19203 #[allow(unused_mut, unused_variables)]
19204 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19205 let mut first = true;
19206 let mut remaining = self.0;
19207 if remaining & Self::TEMPORARY.0 != 0 {
19208 if !first {
19209 f.write_str(" | ")?;
19210 }
19211 f.write_str("TEMPORARY")?;
19212 remaining &= !Self::TEMPORARY.0;
19213 first = false;
19214 }
19215 if remaining != 0u32 {
19216 if !first {
19217 f.write_str(" | ")?;
19218 }
19219 write!(f, "{:#x}", remaining)?;
19220 } else if first {
19221 f.write_str("(empty)")?;
19222 }
19223 Ok(())
19224 }
19225}
19226#[repr(transparent)]
19228#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19229#[doc(alias = "VkSemaphoreWaitFlagBits")]
19230pub struct SemaphoreWaitFlagBits(u32);
19231impl SemaphoreWaitFlagBits {
19232 #[inline]
19233 pub const fn empty() -> Self {
19234 Self(0u32)
19235 }
19236 #[inline]
19237 pub const fn from_raw(value: u32) -> Self {
19238 Self(value)
19239 }
19240 #[inline]
19241 pub const fn as_raw(self) -> u32 {
19242 self.0
19243 }
19244 #[inline]
19245 pub const fn is_empty(self) -> bool {
19246 self.0 == 0u32
19247 }
19248 #[inline]
19249 pub const fn contains(self, other: Self) -> bool {
19250 (self.0 & other.0) == other.0
19251 }
19252 #[inline]
19253 pub const fn all() -> Self {
19254 Self(1u32)
19255 }
19256 pub const ANY: Self = Self(1u32);
19258}
19259impl core::ops::BitOr for SemaphoreWaitFlagBits {
19260 type Output = Self;
19261 #[inline]
19262 fn bitor(self, rhs: Self) -> Self {
19263 Self(self.0 | rhs.0)
19264 }
19265}
19266impl core::ops::BitOrAssign for SemaphoreWaitFlagBits {
19267 #[inline]
19268 fn bitor_assign(&mut self, rhs: Self) {
19269 self.0 |= rhs.0;
19270 }
19271}
19272impl core::ops::BitAnd for SemaphoreWaitFlagBits {
19273 type Output = Self;
19274 #[inline]
19275 fn bitand(self, rhs: Self) -> Self {
19276 Self(self.0 & rhs.0)
19277 }
19278}
19279impl core::ops::BitAndAssign for SemaphoreWaitFlagBits {
19280 #[inline]
19281 fn bitand_assign(&mut self, rhs: Self) {
19282 self.0 &= rhs.0;
19283 }
19284}
19285impl core::ops::BitXor for SemaphoreWaitFlagBits {
19286 type Output = Self;
19287 #[inline]
19288 fn bitxor(self, rhs: Self) -> Self {
19289 Self(self.0 ^ rhs.0)
19290 }
19291}
19292impl core::ops::BitXorAssign for SemaphoreWaitFlagBits {
19293 #[inline]
19294 fn bitxor_assign(&mut self, rhs: Self) {
19295 self.0 ^= rhs.0;
19296 }
19297}
19298impl core::ops::Not for SemaphoreWaitFlagBits {
19299 type Output = Self;
19300 #[inline]
19301 fn not(self) -> Self {
19302 Self(!self.0)
19303 }
19304}
19305impl core::fmt::Debug for SemaphoreWaitFlagBits {
19306 #[allow(unused_mut, unused_variables)]
19307 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19308 let mut first = true;
19309 let mut remaining = self.0;
19310 if remaining & Self::ANY.0 != 0 {
19311 if !first {
19312 f.write_str(" | ")?;
19313 }
19314 f.write_str("ANY")?;
19315 remaining &= !Self::ANY.0;
19316 first = false;
19317 }
19318 if remaining != 0u32 {
19319 if !first {
19320 f.write_str(" | ")?;
19321 }
19322 write!(f, "{:#x}", remaining)?;
19323 } else if first {
19324 f.write_str("(empty)")?;
19325 }
19326 Ok(())
19327 }
19328}
19329#[repr(transparent)]
19331#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19332#[doc(alias = "VkShaderCorePropertiesFlagBitsAMD")]
19333pub struct ShaderCorePropertiesFlagBitsAMD(u32);
19334impl ShaderCorePropertiesFlagBitsAMD {
19335 #[inline]
19336 pub const fn empty() -> Self {
19337 Self(0u32)
19338 }
19339 #[inline]
19340 pub const fn from_raw(value: u32) -> Self {
19341 Self(value)
19342 }
19343 #[inline]
19344 pub const fn as_raw(self) -> u32 {
19345 self.0
19346 }
19347 #[inline]
19348 pub const fn is_empty(self) -> bool {
19349 self.0 == 0u32
19350 }
19351 #[inline]
19352 pub const fn contains(self, other: Self) -> bool {
19353 (self.0 & other.0) == other.0
19354 }
19355 #[inline]
19356 pub const fn all() -> Self {
19357 Self(0u32)
19358 }
19359}
19360impl core::ops::BitOr for ShaderCorePropertiesFlagBitsAMD {
19361 type Output = Self;
19362 #[inline]
19363 fn bitor(self, rhs: Self) -> Self {
19364 Self(self.0 | rhs.0)
19365 }
19366}
19367impl core::ops::BitOrAssign for ShaderCorePropertiesFlagBitsAMD {
19368 #[inline]
19369 fn bitor_assign(&mut self, rhs: Self) {
19370 self.0 |= rhs.0;
19371 }
19372}
19373impl core::ops::BitAnd for ShaderCorePropertiesFlagBitsAMD {
19374 type Output = Self;
19375 #[inline]
19376 fn bitand(self, rhs: Self) -> Self {
19377 Self(self.0 & rhs.0)
19378 }
19379}
19380impl core::ops::BitAndAssign for ShaderCorePropertiesFlagBitsAMD {
19381 #[inline]
19382 fn bitand_assign(&mut self, rhs: Self) {
19383 self.0 &= rhs.0;
19384 }
19385}
19386impl core::ops::BitXor for ShaderCorePropertiesFlagBitsAMD {
19387 type Output = Self;
19388 #[inline]
19389 fn bitxor(self, rhs: Self) -> Self {
19390 Self(self.0 ^ rhs.0)
19391 }
19392}
19393impl core::ops::BitXorAssign for ShaderCorePropertiesFlagBitsAMD {
19394 #[inline]
19395 fn bitxor_assign(&mut self, rhs: Self) {
19396 self.0 ^= rhs.0;
19397 }
19398}
19399impl core::ops::Not for ShaderCorePropertiesFlagBitsAMD {
19400 type Output = Self;
19401 #[inline]
19402 fn not(self) -> Self {
19403 Self(!self.0)
19404 }
19405}
19406impl core::fmt::Debug for ShaderCorePropertiesFlagBitsAMD {
19407 #[allow(unused_mut, unused_variables)]
19408 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19409 let mut first = true;
19410 let mut remaining = self.0;
19411 if remaining != 0u32 {
19412 if !first {
19413 f.write_str(" | ")?;
19414 }
19415 write!(f, "{:#x}", remaining)?;
19416 } else if first {
19417 f.write_str("(empty)")?;
19418 }
19419 Ok(())
19420 }
19421}
19422#[repr(transparent)]
19424#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19425#[doc(alias = "VkShaderCreateFlagBitsEXT")]
19426pub struct ShaderCreateFlagBitsEXT(u32);
19427impl ShaderCreateFlagBitsEXT {
19428 #[inline]
19429 pub const fn empty() -> Self {
19430 Self(0u32)
19431 }
19432 #[inline]
19433 pub const fn from_raw(value: u32) -> Self {
19434 Self(value)
19435 }
19436 #[inline]
19437 pub const fn as_raw(self) -> u32 {
19438 self.0
19439 }
19440 #[inline]
19441 pub const fn is_empty(self) -> bool {
19442 self.0 == 0u32
19443 }
19444 #[inline]
19445 pub const fn contains(self, other: Self) -> bool {
19446 (self.0 & other.0) == other.0
19447 }
19448 #[inline]
19449 pub const fn all() -> Self {
19450 Self(36095u32)
19451 }
19452 pub const LINK_STAGE: Self = Self(1u32);
19454 pub const DESCRIPTOR_HEAP: Self = Self(1024u32);
19456 pub const INSTRUMENT_SHADER_BIT: Self = Self(2048u32);
19458 pub const ALLOW_VARYING_SUBGROUP_SIZE: Self = Self(2u32);
19460 pub const REQUIRE_FULL_SUBGROUPS: Self = Self(4u32);
19462 pub const NO_TASK_SHADER: Self = Self(8u32);
19464 pub const DISPATCH_BASE: Self = Self(16u32);
19466 pub const FRAGMENT_SHADING_RATE_ATTACHMENT: Self = Self(32u32);
19468 pub const FRAGMENT_DENSITY_MAP_ATTACHMENT: Self = Self(64u32);
19470 pub const INDIRECT_BINDABLE: Self = Self(128u32);
19472 pub const _64_BIT_INDEXING: Self = Self(32768u32);
19474}
19475impl core::ops::BitOr for ShaderCreateFlagBitsEXT {
19476 type Output = Self;
19477 #[inline]
19478 fn bitor(self, rhs: Self) -> Self {
19479 Self(self.0 | rhs.0)
19480 }
19481}
19482impl core::ops::BitOrAssign for ShaderCreateFlagBitsEXT {
19483 #[inline]
19484 fn bitor_assign(&mut self, rhs: Self) {
19485 self.0 |= rhs.0;
19486 }
19487}
19488impl core::ops::BitAnd for ShaderCreateFlagBitsEXT {
19489 type Output = Self;
19490 #[inline]
19491 fn bitand(self, rhs: Self) -> Self {
19492 Self(self.0 & rhs.0)
19493 }
19494}
19495impl core::ops::BitAndAssign for ShaderCreateFlagBitsEXT {
19496 #[inline]
19497 fn bitand_assign(&mut self, rhs: Self) {
19498 self.0 &= rhs.0;
19499 }
19500}
19501impl core::ops::BitXor for ShaderCreateFlagBitsEXT {
19502 type Output = Self;
19503 #[inline]
19504 fn bitxor(self, rhs: Self) -> Self {
19505 Self(self.0 ^ rhs.0)
19506 }
19507}
19508impl core::ops::BitXorAssign for ShaderCreateFlagBitsEXT {
19509 #[inline]
19510 fn bitxor_assign(&mut self, rhs: Self) {
19511 self.0 ^= rhs.0;
19512 }
19513}
19514impl core::ops::Not for ShaderCreateFlagBitsEXT {
19515 type Output = Self;
19516 #[inline]
19517 fn not(self) -> Self {
19518 Self(!self.0)
19519 }
19520}
19521impl core::fmt::Debug for ShaderCreateFlagBitsEXT {
19522 #[allow(unused_mut, unused_variables)]
19523 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19524 let mut first = true;
19525 let mut remaining = self.0;
19526 if remaining & Self::LINK_STAGE.0 != 0 {
19527 if !first {
19528 f.write_str(" | ")?;
19529 }
19530 f.write_str("LINK_STAGE")?;
19531 remaining &= !Self::LINK_STAGE.0;
19532 first = false;
19533 }
19534 if remaining & Self::DESCRIPTOR_HEAP.0 != 0 {
19535 if !first {
19536 f.write_str(" | ")?;
19537 }
19538 f.write_str("DESCRIPTOR_HEAP")?;
19539 remaining &= !Self::DESCRIPTOR_HEAP.0;
19540 first = false;
19541 }
19542 if remaining & Self::INSTRUMENT_SHADER_BIT.0 != 0 {
19543 if !first {
19544 f.write_str(" | ")?;
19545 }
19546 f.write_str("INSTRUMENT_SHADER_BIT")?;
19547 remaining &= !Self::INSTRUMENT_SHADER_BIT.0;
19548 first = false;
19549 }
19550 if remaining & Self::ALLOW_VARYING_SUBGROUP_SIZE.0 != 0 {
19551 if !first {
19552 f.write_str(" | ")?;
19553 }
19554 f.write_str("ALLOW_VARYING_SUBGROUP_SIZE")?;
19555 remaining &= !Self::ALLOW_VARYING_SUBGROUP_SIZE.0;
19556 first = false;
19557 }
19558 if remaining & Self::REQUIRE_FULL_SUBGROUPS.0 != 0 {
19559 if !first {
19560 f.write_str(" | ")?;
19561 }
19562 f.write_str("REQUIRE_FULL_SUBGROUPS")?;
19563 remaining &= !Self::REQUIRE_FULL_SUBGROUPS.0;
19564 first = false;
19565 }
19566 if remaining & Self::NO_TASK_SHADER.0 != 0 {
19567 if !first {
19568 f.write_str(" | ")?;
19569 }
19570 f.write_str("NO_TASK_SHADER")?;
19571 remaining &= !Self::NO_TASK_SHADER.0;
19572 first = false;
19573 }
19574 if remaining & Self::DISPATCH_BASE.0 != 0 {
19575 if !first {
19576 f.write_str(" | ")?;
19577 }
19578 f.write_str("DISPATCH_BASE")?;
19579 remaining &= !Self::DISPATCH_BASE.0;
19580 first = false;
19581 }
19582 if remaining & Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0 != 0 {
19583 if !first {
19584 f.write_str(" | ")?;
19585 }
19586 f.write_str("FRAGMENT_SHADING_RATE_ATTACHMENT")?;
19587 remaining &= !Self::FRAGMENT_SHADING_RATE_ATTACHMENT.0;
19588 first = false;
19589 }
19590 if remaining & Self::FRAGMENT_DENSITY_MAP_ATTACHMENT.0 != 0 {
19591 if !first {
19592 f.write_str(" | ")?;
19593 }
19594 f.write_str("FRAGMENT_DENSITY_MAP_ATTACHMENT")?;
19595 remaining &= !Self::FRAGMENT_DENSITY_MAP_ATTACHMENT.0;
19596 first = false;
19597 }
19598 if remaining & Self::INDIRECT_BINDABLE.0 != 0 {
19599 if !first {
19600 f.write_str(" | ")?;
19601 }
19602 f.write_str("INDIRECT_BINDABLE")?;
19603 remaining &= !Self::INDIRECT_BINDABLE.0;
19604 first = false;
19605 }
19606 if remaining & Self::_64_BIT_INDEXING.0 != 0 {
19607 if !first {
19608 f.write_str(" | ")?;
19609 }
19610 f.write_str("_64_BIT_INDEXING")?;
19611 remaining &= !Self::_64_BIT_INDEXING.0;
19612 first = false;
19613 }
19614 if remaining != 0u32 {
19615 if !first {
19616 f.write_str(" | ")?;
19617 }
19618 write!(f, "{:#x}", remaining)?;
19619 } else if first {
19620 f.write_str("(empty)")?;
19621 }
19622 Ok(())
19623 }
19624}
19625#[repr(transparent)]
19627#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19628#[doc(alias = "VkShaderModuleCreateFlagBits")]
19629pub struct ShaderModuleCreateFlagBits(u32);
19630impl ShaderModuleCreateFlagBits {
19631 #[inline]
19632 pub const fn empty() -> Self {
19633 Self(0u32)
19634 }
19635 #[inline]
19636 pub const fn from_raw(value: u32) -> Self {
19637 Self(value)
19638 }
19639 #[inline]
19640 pub const fn as_raw(self) -> u32 {
19641 self.0
19642 }
19643 #[inline]
19644 pub const fn is_empty(self) -> bool {
19645 self.0 == 0u32
19646 }
19647 #[inline]
19648 pub const fn contains(self, other: Self) -> bool {
19649 (self.0 & other.0) == other.0
19650 }
19651 #[inline]
19652 pub const fn all() -> Self {
19653 Self(0u32)
19654 }
19655}
19656impl core::ops::BitOr for ShaderModuleCreateFlagBits {
19657 type Output = Self;
19658 #[inline]
19659 fn bitor(self, rhs: Self) -> Self {
19660 Self(self.0 | rhs.0)
19661 }
19662}
19663impl core::ops::BitOrAssign for ShaderModuleCreateFlagBits {
19664 #[inline]
19665 fn bitor_assign(&mut self, rhs: Self) {
19666 self.0 |= rhs.0;
19667 }
19668}
19669impl core::ops::BitAnd for ShaderModuleCreateFlagBits {
19670 type Output = Self;
19671 #[inline]
19672 fn bitand(self, rhs: Self) -> Self {
19673 Self(self.0 & rhs.0)
19674 }
19675}
19676impl core::ops::BitAndAssign for ShaderModuleCreateFlagBits {
19677 #[inline]
19678 fn bitand_assign(&mut self, rhs: Self) {
19679 self.0 &= rhs.0;
19680 }
19681}
19682impl core::ops::BitXor for ShaderModuleCreateFlagBits {
19683 type Output = Self;
19684 #[inline]
19685 fn bitxor(self, rhs: Self) -> Self {
19686 Self(self.0 ^ rhs.0)
19687 }
19688}
19689impl core::ops::BitXorAssign for ShaderModuleCreateFlagBits {
19690 #[inline]
19691 fn bitxor_assign(&mut self, rhs: Self) {
19692 self.0 ^= rhs.0;
19693 }
19694}
19695impl core::ops::Not for ShaderModuleCreateFlagBits {
19696 type Output = Self;
19697 #[inline]
19698 fn not(self) -> Self {
19699 Self(!self.0)
19700 }
19701}
19702impl core::fmt::Debug for ShaderModuleCreateFlagBits {
19703 #[allow(unused_mut, unused_variables)]
19704 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19705 let mut first = true;
19706 let mut remaining = self.0;
19707 if remaining != 0u32 {
19708 if !first {
19709 f.write_str(" | ")?;
19710 }
19711 write!(f, "{:#x}", remaining)?;
19712 } else if first {
19713 f.write_str("(empty)")?;
19714 }
19715 Ok(())
19716 }
19717}
19718#[repr(transparent)]
19720#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19721#[doc(alias = "VkShaderStageFlagBits")]
19722pub struct ShaderStageFlagBits(u32);
19723impl ShaderStageFlagBits {
19724 #[inline]
19725 pub const fn empty() -> Self {
19726 Self(0u32)
19727 }
19728 #[inline]
19729 pub const fn from_raw(value: u32) -> Self {
19730 Self(value)
19731 }
19732 #[inline]
19733 pub const fn as_raw(self) -> u32 {
19734 self.0
19735 }
19736 #[inline]
19737 pub const fn is_empty(self) -> bool {
19738 self.0 == 0u32
19739 }
19740 #[inline]
19741 pub const fn contains(self, other: Self) -> bool {
19742 (self.0 & other.0) == other.0
19743 }
19744 #[inline]
19745 pub const fn all() -> Self {
19746 Self(2147483647u32)
19747 }
19748 pub const VERTEX: Self = Self(1u32);
19750 pub const TESSELLATION_CONTROL: Self = Self(2u32);
19752 pub const TESSELLATION_EVALUATION: Self = Self(4u32);
19754 pub const GEOMETRY: Self = Self(8u32);
19756 pub const FRAGMENT: Self = Self(16u32);
19758 pub const COMPUTE: Self = Self(32u32);
19760 pub const ALL_GRAPHICS: Self = Self(31u32);
19761 pub const ALL: Self = Self(2147483647u32);
19762 pub const RAYGEN: Self = Self(256u32);
19764 pub const ANY_HIT: Self = Self(512u32);
19766 pub const CLOSEST_HIT: Self = Self(1024u32);
19768 pub const MISS: Self = Self(2048u32);
19770 pub const INTERSECTION: Self = Self(4096u32);
19772 pub const CALLABLE: Self = Self(8192u32);
19774 pub const TASK: Self = Self(64u32);
19776 pub const MESH: Self = Self(128u32);
19778 pub const SUBPASS_SHADING_BIT: Self = Self(16384u32);
19780 pub const CLUSTER_CULLING_BIT: Self = Self(524288u32);
19782}
19783impl core::ops::BitOr for ShaderStageFlagBits {
19784 type Output = Self;
19785 #[inline]
19786 fn bitor(self, rhs: Self) -> Self {
19787 Self(self.0 | rhs.0)
19788 }
19789}
19790impl core::ops::BitOrAssign for ShaderStageFlagBits {
19791 #[inline]
19792 fn bitor_assign(&mut self, rhs: Self) {
19793 self.0 |= rhs.0;
19794 }
19795}
19796impl core::ops::BitAnd for ShaderStageFlagBits {
19797 type Output = Self;
19798 #[inline]
19799 fn bitand(self, rhs: Self) -> Self {
19800 Self(self.0 & rhs.0)
19801 }
19802}
19803impl core::ops::BitAndAssign for ShaderStageFlagBits {
19804 #[inline]
19805 fn bitand_assign(&mut self, rhs: Self) {
19806 self.0 &= rhs.0;
19807 }
19808}
19809impl core::ops::BitXor for ShaderStageFlagBits {
19810 type Output = Self;
19811 #[inline]
19812 fn bitxor(self, rhs: Self) -> Self {
19813 Self(self.0 ^ rhs.0)
19814 }
19815}
19816impl core::ops::BitXorAssign for ShaderStageFlagBits {
19817 #[inline]
19818 fn bitxor_assign(&mut self, rhs: Self) {
19819 self.0 ^= rhs.0;
19820 }
19821}
19822impl core::ops::Not for ShaderStageFlagBits {
19823 type Output = Self;
19824 #[inline]
19825 fn not(self) -> Self {
19826 Self(!self.0)
19827 }
19828}
19829impl core::fmt::Debug for ShaderStageFlagBits {
19830 #[allow(unused_mut, unused_variables)]
19831 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
19832 let mut first = true;
19833 let mut remaining = self.0;
19834 if remaining & Self::VERTEX.0 != 0 {
19835 if !first {
19836 f.write_str(" | ")?;
19837 }
19838 f.write_str("VERTEX")?;
19839 remaining &= !Self::VERTEX.0;
19840 first = false;
19841 }
19842 if remaining & Self::TESSELLATION_CONTROL.0 != 0 {
19843 if !first {
19844 f.write_str(" | ")?;
19845 }
19846 f.write_str("TESSELLATION_CONTROL")?;
19847 remaining &= !Self::TESSELLATION_CONTROL.0;
19848 first = false;
19849 }
19850 if remaining & Self::TESSELLATION_EVALUATION.0 != 0 {
19851 if !first {
19852 f.write_str(" | ")?;
19853 }
19854 f.write_str("TESSELLATION_EVALUATION")?;
19855 remaining &= !Self::TESSELLATION_EVALUATION.0;
19856 first = false;
19857 }
19858 if remaining & Self::GEOMETRY.0 != 0 {
19859 if !first {
19860 f.write_str(" | ")?;
19861 }
19862 f.write_str("GEOMETRY")?;
19863 remaining &= !Self::GEOMETRY.0;
19864 first = false;
19865 }
19866 if remaining & Self::FRAGMENT.0 != 0 {
19867 if !first {
19868 f.write_str(" | ")?;
19869 }
19870 f.write_str("FRAGMENT")?;
19871 remaining &= !Self::FRAGMENT.0;
19872 first = false;
19873 }
19874 if remaining & Self::COMPUTE.0 != 0 {
19875 if !first {
19876 f.write_str(" | ")?;
19877 }
19878 f.write_str("COMPUTE")?;
19879 remaining &= !Self::COMPUTE.0;
19880 first = false;
19881 }
19882 if remaining & Self::RAYGEN.0 != 0 {
19883 if !first {
19884 f.write_str(" | ")?;
19885 }
19886 f.write_str("RAYGEN")?;
19887 remaining &= !Self::RAYGEN.0;
19888 first = false;
19889 }
19890 if remaining & Self::ANY_HIT.0 != 0 {
19891 if !first {
19892 f.write_str(" | ")?;
19893 }
19894 f.write_str("ANY_HIT")?;
19895 remaining &= !Self::ANY_HIT.0;
19896 first = false;
19897 }
19898 if remaining & Self::CLOSEST_HIT.0 != 0 {
19899 if !first {
19900 f.write_str(" | ")?;
19901 }
19902 f.write_str("CLOSEST_HIT")?;
19903 remaining &= !Self::CLOSEST_HIT.0;
19904 first = false;
19905 }
19906 if remaining & Self::MISS.0 != 0 {
19907 if !first {
19908 f.write_str(" | ")?;
19909 }
19910 f.write_str("MISS")?;
19911 remaining &= !Self::MISS.0;
19912 first = false;
19913 }
19914 if remaining & Self::INTERSECTION.0 != 0 {
19915 if !first {
19916 f.write_str(" | ")?;
19917 }
19918 f.write_str("INTERSECTION")?;
19919 remaining &= !Self::INTERSECTION.0;
19920 first = false;
19921 }
19922 if remaining & Self::CALLABLE.0 != 0 {
19923 if !first {
19924 f.write_str(" | ")?;
19925 }
19926 f.write_str("CALLABLE")?;
19927 remaining &= !Self::CALLABLE.0;
19928 first = false;
19929 }
19930 if remaining & Self::TASK.0 != 0 {
19931 if !first {
19932 f.write_str(" | ")?;
19933 }
19934 f.write_str("TASK")?;
19935 remaining &= !Self::TASK.0;
19936 first = false;
19937 }
19938 if remaining & Self::MESH.0 != 0 {
19939 if !first {
19940 f.write_str(" | ")?;
19941 }
19942 f.write_str("MESH")?;
19943 remaining &= !Self::MESH.0;
19944 first = false;
19945 }
19946 if remaining & Self::SUBPASS_SHADING_BIT.0 != 0 {
19947 if !first {
19948 f.write_str(" | ")?;
19949 }
19950 f.write_str("SUBPASS_SHADING_BIT")?;
19951 remaining &= !Self::SUBPASS_SHADING_BIT.0;
19952 first = false;
19953 }
19954 if remaining & Self::CLUSTER_CULLING_BIT.0 != 0 {
19955 if !first {
19956 f.write_str(" | ")?;
19957 }
19958 f.write_str("CLUSTER_CULLING_BIT")?;
19959 remaining &= !Self::CLUSTER_CULLING_BIT.0;
19960 first = false;
19961 }
19962 if remaining != 0u32 {
19963 if !first {
19964 f.write_str(" | ")?;
19965 }
19966 write!(f, "{:#x}", remaining)?;
19967 } else if first {
19968 f.write_str("(empty)")?;
19969 }
19970 Ok(())
19971 }
19972}
19973#[repr(transparent)]
19975#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
19976#[doc(alias = "VkSparseImageFormatFlagBits")]
19977pub struct SparseImageFormatFlagBits(u32);
19978impl SparseImageFormatFlagBits {
19979 #[inline]
19980 pub const fn empty() -> Self {
19981 Self(0u32)
19982 }
19983 #[inline]
19984 pub const fn from_raw(value: u32) -> Self {
19985 Self(value)
19986 }
19987 #[inline]
19988 pub const fn as_raw(self) -> u32 {
19989 self.0
19990 }
19991 #[inline]
19992 pub const fn is_empty(self) -> bool {
19993 self.0 == 0u32
19994 }
19995 #[inline]
19996 pub const fn contains(self, other: Self) -> bool {
19997 (self.0 & other.0) == other.0
19998 }
19999 #[inline]
20000 pub const fn all() -> Self {
20001 Self(7u32)
20002 }
20003 pub const SINGLE_MIPTAIL: Self = Self(1u32);
20005 pub const ALIGNED_MIP_SIZE: Self = Self(2u32);
20007 pub const NONSTANDARD_BLOCK_SIZE: Self = Self(4u32);
20009}
20010impl core::ops::BitOr for SparseImageFormatFlagBits {
20011 type Output = Self;
20012 #[inline]
20013 fn bitor(self, rhs: Self) -> Self {
20014 Self(self.0 | rhs.0)
20015 }
20016}
20017impl core::ops::BitOrAssign for SparseImageFormatFlagBits {
20018 #[inline]
20019 fn bitor_assign(&mut self, rhs: Self) {
20020 self.0 |= rhs.0;
20021 }
20022}
20023impl core::ops::BitAnd for SparseImageFormatFlagBits {
20024 type Output = Self;
20025 #[inline]
20026 fn bitand(self, rhs: Self) -> Self {
20027 Self(self.0 & rhs.0)
20028 }
20029}
20030impl core::ops::BitAndAssign for SparseImageFormatFlagBits {
20031 #[inline]
20032 fn bitand_assign(&mut self, rhs: Self) {
20033 self.0 &= rhs.0;
20034 }
20035}
20036impl core::ops::BitXor for SparseImageFormatFlagBits {
20037 type Output = Self;
20038 #[inline]
20039 fn bitxor(self, rhs: Self) -> Self {
20040 Self(self.0 ^ rhs.0)
20041 }
20042}
20043impl core::ops::BitXorAssign for SparseImageFormatFlagBits {
20044 #[inline]
20045 fn bitxor_assign(&mut self, rhs: Self) {
20046 self.0 ^= rhs.0;
20047 }
20048}
20049impl core::ops::Not for SparseImageFormatFlagBits {
20050 type Output = Self;
20051 #[inline]
20052 fn not(self) -> Self {
20053 Self(!self.0)
20054 }
20055}
20056impl core::fmt::Debug for SparseImageFormatFlagBits {
20057 #[allow(unused_mut, unused_variables)]
20058 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20059 let mut first = true;
20060 let mut remaining = self.0;
20061 if remaining & Self::SINGLE_MIPTAIL.0 != 0 {
20062 if !first {
20063 f.write_str(" | ")?;
20064 }
20065 f.write_str("SINGLE_MIPTAIL")?;
20066 remaining &= !Self::SINGLE_MIPTAIL.0;
20067 first = false;
20068 }
20069 if remaining & Self::ALIGNED_MIP_SIZE.0 != 0 {
20070 if !first {
20071 f.write_str(" | ")?;
20072 }
20073 f.write_str("ALIGNED_MIP_SIZE")?;
20074 remaining &= !Self::ALIGNED_MIP_SIZE.0;
20075 first = false;
20076 }
20077 if remaining & Self::NONSTANDARD_BLOCK_SIZE.0 != 0 {
20078 if !first {
20079 f.write_str(" | ")?;
20080 }
20081 f.write_str("NONSTANDARD_BLOCK_SIZE")?;
20082 remaining &= !Self::NONSTANDARD_BLOCK_SIZE.0;
20083 first = false;
20084 }
20085 if remaining != 0u32 {
20086 if !first {
20087 f.write_str(" | ")?;
20088 }
20089 write!(f, "{:#x}", remaining)?;
20090 } else if first {
20091 f.write_str("(empty)")?;
20092 }
20093 Ok(())
20094 }
20095}
20096#[repr(transparent)]
20098#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20099#[doc(alias = "VkSparseMemoryBindFlagBits")]
20100pub struct SparseMemoryBindFlagBits(u32);
20101impl SparseMemoryBindFlagBits {
20102 #[inline]
20103 pub const fn empty() -> Self {
20104 Self(0u32)
20105 }
20106 #[inline]
20107 pub const fn from_raw(value: u32) -> Self {
20108 Self(value)
20109 }
20110 #[inline]
20111 pub const fn as_raw(self) -> u32 {
20112 self.0
20113 }
20114 #[inline]
20115 pub const fn is_empty(self) -> bool {
20116 self.0 == 0u32
20117 }
20118 #[inline]
20119 pub const fn contains(self, other: Self) -> bool {
20120 (self.0 & other.0) == other.0
20121 }
20122 #[inline]
20123 pub const fn all() -> Self {
20124 Self(1u32)
20125 }
20126 pub const METADATA: Self = Self(1u32);
20128}
20129impl core::ops::BitOr for SparseMemoryBindFlagBits {
20130 type Output = Self;
20131 #[inline]
20132 fn bitor(self, rhs: Self) -> Self {
20133 Self(self.0 | rhs.0)
20134 }
20135}
20136impl core::ops::BitOrAssign for SparseMemoryBindFlagBits {
20137 #[inline]
20138 fn bitor_assign(&mut self, rhs: Self) {
20139 self.0 |= rhs.0;
20140 }
20141}
20142impl core::ops::BitAnd for SparseMemoryBindFlagBits {
20143 type Output = Self;
20144 #[inline]
20145 fn bitand(self, rhs: Self) -> Self {
20146 Self(self.0 & rhs.0)
20147 }
20148}
20149impl core::ops::BitAndAssign for SparseMemoryBindFlagBits {
20150 #[inline]
20151 fn bitand_assign(&mut self, rhs: Self) {
20152 self.0 &= rhs.0;
20153 }
20154}
20155impl core::ops::BitXor for SparseMemoryBindFlagBits {
20156 type Output = Self;
20157 #[inline]
20158 fn bitxor(self, rhs: Self) -> Self {
20159 Self(self.0 ^ rhs.0)
20160 }
20161}
20162impl core::ops::BitXorAssign for SparseMemoryBindFlagBits {
20163 #[inline]
20164 fn bitxor_assign(&mut self, rhs: Self) {
20165 self.0 ^= rhs.0;
20166 }
20167}
20168impl core::ops::Not for SparseMemoryBindFlagBits {
20169 type Output = Self;
20170 #[inline]
20171 fn not(self) -> Self {
20172 Self(!self.0)
20173 }
20174}
20175impl core::fmt::Debug for SparseMemoryBindFlagBits {
20176 #[allow(unused_mut, unused_variables)]
20177 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20178 let mut first = true;
20179 let mut remaining = self.0;
20180 if remaining & Self::METADATA.0 != 0 {
20181 if !first {
20182 f.write_str(" | ")?;
20183 }
20184 f.write_str("METADATA")?;
20185 remaining &= !Self::METADATA.0;
20186 first = false;
20187 }
20188 if remaining != 0u32 {
20189 if !first {
20190 f.write_str(" | ")?;
20191 }
20192 write!(f, "{:#x}", remaining)?;
20193 } else if first {
20194 f.write_str("(empty)")?;
20195 }
20196 Ok(())
20197 }
20198}
20199#[repr(transparent)]
20201#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20202#[doc(alias = "VkSpirvResourceTypeFlagBitsEXT")]
20203pub struct SpirvResourceTypeFlagBitsEXT(u32);
20204impl SpirvResourceTypeFlagBitsEXT {
20205 #[inline]
20206 pub const fn empty() -> Self {
20207 Self(0u32)
20208 }
20209 #[inline]
20210 pub const fn from_raw(value: u32) -> Self {
20211 Self(value)
20212 }
20213 #[inline]
20214 pub const fn as_raw(self) -> u32 {
20215 self.0
20216 }
20217 #[inline]
20218 pub const fn is_empty(self) -> bool {
20219 self.0 == 0u32
20220 }
20221 #[inline]
20222 pub const fn contains(self, other: Self) -> bool {
20223 (self.0 & other.0) == other.0
20224 }
20225 #[inline]
20226 pub const fn all() -> Self {
20227 Self(2147483647u32)
20228 }
20229 pub const ALL: Self = Self(2147483647u32);
20230 pub const SAMPLER: Self = Self(1u32);
20232 pub const SAMPLED_IMAGE: Self = Self(2u32);
20234 pub const READ_ONLY_IMAGE: Self = Self(4u32);
20236 pub const READ_WRITE_IMAGE: Self = Self(8u32);
20238 pub const COMBINED_SAMPLED_IMAGE: Self = Self(16u32);
20240 pub const UNIFORM_BUFFER: Self = Self(32u32);
20242 pub const READ_ONLY_STORAGE_BUFFER: Self = Self(64u32);
20244 pub const READ_WRITE_STORAGE_BUFFER: Self = Self(128u32);
20246 pub const ACCELERATION_STRUCTURE: Self = Self(256u32);
20248 pub const TENSOR_BIT: Self = Self(512u32);
20250}
20251impl core::ops::BitOr for SpirvResourceTypeFlagBitsEXT {
20252 type Output = Self;
20253 #[inline]
20254 fn bitor(self, rhs: Self) -> Self {
20255 Self(self.0 | rhs.0)
20256 }
20257}
20258impl core::ops::BitOrAssign for SpirvResourceTypeFlagBitsEXT {
20259 #[inline]
20260 fn bitor_assign(&mut self, rhs: Self) {
20261 self.0 |= rhs.0;
20262 }
20263}
20264impl core::ops::BitAnd for SpirvResourceTypeFlagBitsEXT {
20265 type Output = Self;
20266 #[inline]
20267 fn bitand(self, rhs: Self) -> Self {
20268 Self(self.0 & rhs.0)
20269 }
20270}
20271impl core::ops::BitAndAssign for SpirvResourceTypeFlagBitsEXT {
20272 #[inline]
20273 fn bitand_assign(&mut self, rhs: Self) {
20274 self.0 &= rhs.0;
20275 }
20276}
20277impl core::ops::BitXor for SpirvResourceTypeFlagBitsEXT {
20278 type Output = Self;
20279 #[inline]
20280 fn bitxor(self, rhs: Self) -> Self {
20281 Self(self.0 ^ rhs.0)
20282 }
20283}
20284impl core::ops::BitXorAssign for SpirvResourceTypeFlagBitsEXT {
20285 #[inline]
20286 fn bitxor_assign(&mut self, rhs: Self) {
20287 self.0 ^= rhs.0;
20288 }
20289}
20290impl core::ops::Not for SpirvResourceTypeFlagBitsEXT {
20291 type Output = Self;
20292 #[inline]
20293 fn not(self) -> Self {
20294 Self(!self.0)
20295 }
20296}
20297impl core::fmt::Debug for SpirvResourceTypeFlagBitsEXT {
20298 #[allow(unused_mut, unused_variables)]
20299 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20300 let mut first = true;
20301 let mut remaining = self.0;
20302 if remaining & Self::SAMPLER.0 != 0 {
20303 if !first {
20304 f.write_str(" | ")?;
20305 }
20306 f.write_str("SAMPLER")?;
20307 remaining &= !Self::SAMPLER.0;
20308 first = false;
20309 }
20310 if remaining & Self::SAMPLED_IMAGE.0 != 0 {
20311 if !first {
20312 f.write_str(" | ")?;
20313 }
20314 f.write_str("SAMPLED_IMAGE")?;
20315 remaining &= !Self::SAMPLED_IMAGE.0;
20316 first = false;
20317 }
20318 if remaining & Self::READ_ONLY_IMAGE.0 != 0 {
20319 if !first {
20320 f.write_str(" | ")?;
20321 }
20322 f.write_str("READ_ONLY_IMAGE")?;
20323 remaining &= !Self::READ_ONLY_IMAGE.0;
20324 first = false;
20325 }
20326 if remaining & Self::READ_WRITE_IMAGE.0 != 0 {
20327 if !first {
20328 f.write_str(" | ")?;
20329 }
20330 f.write_str("READ_WRITE_IMAGE")?;
20331 remaining &= !Self::READ_WRITE_IMAGE.0;
20332 first = false;
20333 }
20334 if remaining & Self::COMBINED_SAMPLED_IMAGE.0 != 0 {
20335 if !first {
20336 f.write_str(" | ")?;
20337 }
20338 f.write_str("COMBINED_SAMPLED_IMAGE")?;
20339 remaining &= !Self::COMBINED_SAMPLED_IMAGE.0;
20340 first = false;
20341 }
20342 if remaining & Self::UNIFORM_BUFFER.0 != 0 {
20343 if !first {
20344 f.write_str(" | ")?;
20345 }
20346 f.write_str("UNIFORM_BUFFER")?;
20347 remaining &= !Self::UNIFORM_BUFFER.0;
20348 first = false;
20349 }
20350 if remaining & Self::READ_ONLY_STORAGE_BUFFER.0 != 0 {
20351 if !first {
20352 f.write_str(" | ")?;
20353 }
20354 f.write_str("READ_ONLY_STORAGE_BUFFER")?;
20355 remaining &= !Self::READ_ONLY_STORAGE_BUFFER.0;
20356 first = false;
20357 }
20358 if remaining & Self::READ_WRITE_STORAGE_BUFFER.0 != 0 {
20359 if !first {
20360 f.write_str(" | ")?;
20361 }
20362 f.write_str("READ_WRITE_STORAGE_BUFFER")?;
20363 remaining &= !Self::READ_WRITE_STORAGE_BUFFER.0;
20364 first = false;
20365 }
20366 if remaining & Self::ACCELERATION_STRUCTURE.0 != 0 {
20367 if !first {
20368 f.write_str(" | ")?;
20369 }
20370 f.write_str("ACCELERATION_STRUCTURE")?;
20371 remaining &= !Self::ACCELERATION_STRUCTURE.0;
20372 first = false;
20373 }
20374 if remaining & Self::TENSOR_BIT.0 != 0 {
20375 if !first {
20376 f.write_str(" | ")?;
20377 }
20378 f.write_str("TENSOR_BIT")?;
20379 remaining &= !Self::TENSOR_BIT.0;
20380 first = false;
20381 }
20382 if remaining != 0u32 {
20383 if !first {
20384 f.write_str(" | ")?;
20385 }
20386 write!(f, "{:#x}", remaining)?;
20387 } else if first {
20388 f.write_str("(empty)")?;
20389 }
20390 Ok(())
20391 }
20392}
20393#[repr(transparent)]
20395#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20396#[doc(alias = "VkStencilFaceFlagBits")]
20397pub struct StencilFaceFlagBits(u32);
20398impl StencilFaceFlagBits {
20399 #[inline]
20400 pub const fn empty() -> Self {
20401 Self(0u32)
20402 }
20403 #[inline]
20404 pub const fn from_raw(value: u32) -> Self {
20405 Self(value)
20406 }
20407 #[inline]
20408 pub const fn as_raw(self) -> u32 {
20409 self.0
20410 }
20411 #[inline]
20412 pub const fn is_empty(self) -> bool {
20413 self.0 == 0u32
20414 }
20415 #[inline]
20416 pub const fn contains(self, other: Self) -> bool {
20417 (self.0 & other.0) == other.0
20418 }
20419 #[inline]
20420 pub const fn all() -> Self {
20421 Self(3u32)
20422 }
20423 pub const FRONT: Self = Self(1u32);
20425 pub const BACK: Self = Self(2u32);
20427 pub const FRONT_AND_BACK: Self = Self(3u32);
20428 pub const STENCIL_FRONT_AND_BACK: Self = Self::FRONT_AND_BACK;
20429}
20430impl core::ops::BitOr for StencilFaceFlagBits {
20431 type Output = Self;
20432 #[inline]
20433 fn bitor(self, rhs: Self) -> Self {
20434 Self(self.0 | rhs.0)
20435 }
20436}
20437impl core::ops::BitOrAssign for StencilFaceFlagBits {
20438 #[inline]
20439 fn bitor_assign(&mut self, rhs: Self) {
20440 self.0 |= rhs.0;
20441 }
20442}
20443impl core::ops::BitAnd for StencilFaceFlagBits {
20444 type Output = Self;
20445 #[inline]
20446 fn bitand(self, rhs: Self) -> Self {
20447 Self(self.0 & rhs.0)
20448 }
20449}
20450impl core::ops::BitAndAssign for StencilFaceFlagBits {
20451 #[inline]
20452 fn bitand_assign(&mut self, rhs: Self) {
20453 self.0 &= rhs.0;
20454 }
20455}
20456impl core::ops::BitXor for StencilFaceFlagBits {
20457 type Output = Self;
20458 #[inline]
20459 fn bitxor(self, rhs: Self) -> Self {
20460 Self(self.0 ^ rhs.0)
20461 }
20462}
20463impl core::ops::BitXorAssign for StencilFaceFlagBits {
20464 #[inline]
20465 fn bitxor_assign(&mut self, rhs: Self) {
20466 self.0 ^= rhs.0;
20467 }
20468}
20469impl core::ops::Not for StencilFaceFlagBits {
20470 type Output = Self;
20471 #[inline]
20472 fn not(self) -> Self {
20473 Self(!self.0)
20474 }
20475}
20476impl core::fmt::Debug for StencilFaceFlagBits {
20477 #[allow(unused_mut, unused_variables)]
20478 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20479 let mut first = true;
20480 let mut remaining = self.0;
20481 if remaining & Self::FRONT.0 != 0 {
20482 if !first {
20483 f.write_str(" | ")?;
20484 }
20485 f.write_str("FRONT")?;
20486 remaining &= !Self::FRONT.0;
20487 first = false;
20488 }
20489 if remaining & Self::BACK.0 != 0 {
20490 if !first {
20491 f.write_str(" | ")?;
20492 }
20493 f.write_str("BACK")?;
20494 remaining &= !Self::BACK.0;
20495 first = false;
20496 }
20497 if remaining != 0u32 {
20498 if !first {
20499 f.write_str(" | ")?;
20500 }
20501 write!(f, "{:#x}", remaining)?;
20502 } else if first {
20503 f.write_str("(empty)")?;
20504 }
20505 Ok(())
20506 }
20507}
20508#[repr(transparent)]
20510#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20511#[doc(alias = "VkSubgroupFeatureFlagBits")]
20512pub struct SubgroupFeatureFlagBits(u32);
20513impl SubgroupFeatureFlagBits {
20514 #[inline]
20515 pub const fn empty() -> Self {
20516 Self(0u32)
20517 }
20518 #[inline]
20519 pub const fn from_raw(value: u32) -> Self {
20520 Self(value)
20521 }
20522 #[inline]
20523 pub const fn as_raw(self) -> u32 {
20524 self.0
20525 }
20526 #[inline]
20527 pub const fn is_empty(self) -> bool {
20528 self.0 == 0u32
20529 }
20530 #[inline]
20531 pub const fn contains(self, other: Self) -> bool {
20532 (self.0 & other.0) == other.0
20533 }
20534 #[inline]
20535 pub const fn all() -> Self {
20536 Self(2047u32)
20537 }
20538 pub const BASIC: Self = Self(1u32);
20540 pub const VOTE: Self = Self(2u32);
20542 pub const ARITHMETIC: Self = Self(4u32);
20544 pub const BALLOT: Self = Self(8u32);
20546 pub const SHUFFLE: Self = Self(16u32);
20548 pub const SHUFFLE_RELATIVE: Self = Self(32u32);
20550 pub const CLUSTERED: Self = Self(64u32);
20552 pub const QUAD: Self = Self(128u32);
20554 pub const ROTATE: Self = Self(512u32);
20556 pub const ROTATE_CLUSTERED: Self = Self(1024u32);
20558 pub const PARTITIONED: Self = Self(256u32);
20560}
20561impl core::ops::BitOr for SubgroupFeatureFlagBits {
20562 type Output = Self;
20563 #[inline]
20564 fn bitor(self, rhs: Self) -> Self {
20565 Self(self.0 | rhs.0)
20566 }
20567}
20568impl core::ops::BitOrAssign for SubgroupFeatureFlagBits {
20569 #[inline]
20570 fn bitor_assign(&mut self, rhs: Self) {
20571 self.0 |= rhs.0;
20572 }
20573}
20574impl core::ops::BitAnd for SubgroupFeatureFlagBits {
20575 type Output = Self;
20576 #[inline]
20577 fn bitand(self, rhs: Self) -> Self {
20578 Self(self.0 & rhs.0)
20579 }
20580}
20581impl core::ops::BitAndAssign for SubgroupFeatureFlagBits {
20582 #[inline]
20583 fn bitand_assign(&mut self, rhs: Self) {
20584 self.0 &= rhs.0;
20585 }
20586}
20587impl core::ops::BitXor for SubgroupFeatureFlagBits {
20588 type Output = Self;
20589 #[inline]
20590 fn bitxor(self, rhs: Self) -> Self {
20591 Self(self.0 ^ rhs.0)
20592 }
20593}
20594impl core::ops::BitXorAssign for SubgroupFeatureFlagBits {
20595 #[inline]
20596 fn bitxor_assign(&mut self, rhs: Self) {
20597 self.0 ^= rhs.0;
20598 }
20599}
20600impl core::ops::Not for SubgroupFeatureFlagBits {
20601 type Output = Self;
20602 #[inline]
20603 fn not(self) -> Self {
20604 Self(!self.0)
20605 }
20606}
20607impl core::fmt::Debug for SubgroupFeatureFlagBits {
20608 #[allow(unused_mut, unused_variables)]
20609 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20610 let mut first = true;
20611 let mut remaining = self.0;
20612 if remaining & Self::BASIC.0 != 0 {
20613 if !first {
20614 f.write_str(" | ")?;
20615 }
20616 f.write_str("BASIC")?;
20617 remaining &= !Self::BASIC.0;
20618 first = false;
20619 }
20620 if remaining & Self::VOTE.0 != 0 {
20621 if !first {
20622 f.write_str(" | ")?;
20623 }
20624 f.write_str("VOTE")?;
20625 remaining &= !Self::VOTE.0;
20626 first = false;
20627 }
20628 if remaining & Self::ARITHMETIC.0 != 0 {
20629 if !first {
20630 f.write_str(" | ")?;
20631 }
20632 f.write_str("ARITHMETIC")?;
20633 remaining &= !Self::ARITHMETIC.0;
20634 first = false;
20635 }
20636 if remaining & Self::BALLOT.0 != 0 {
20637 if !first {
20638 f.write_str(" | ")?;
20639 }
20640 f.write_str("BALLOT")?;
20641 remaining &= !Self::BALLOT.0;
20642 first = false;
20643 }
20644 if remaining & Self::SHUFFLE.0 != 0 {
20645 if !first {
20646 f.write_str(" | ")?;
20647 }
20648 f.write_str("SHUFFLE")?;
20649 remaining &= !Self::SHUFFLE.0;
20650 first = false;
20651 }
20652 if remaining & Self::SHUFFLE_RELATIVE.0 != 0 {
20653 if !first {
20654 f.write_str(" | ")?;
20655 }
20656 f.write_str("SHUFFLE_RELATIVE")?;
20657 remaining &= !Self::SHUFFLE_RELATIVE.0;
20658 first = false;
20659 }
20660 if remaining & Self::CLUSTERED.0 != 0 {
20661 if !first {
20662 f.write_str(" | ")?;
20663 }
20664 f.write_str("CLUSTERED")?;
20665 remaining &= !Self::CLUSTERED.0;
20666 first = false;
20667 }
20668 if remaining & Self::QUAD.0 != 0 {
20669 if !first {
20670 f.write_str(" | ")?;
20671 }
20672 f.write_str("QUAD")?;
20673 remaining &= !Self::QUAD.0;
20674 first = false;
20675 }
20676 if remaining & Self::ROTATE.0 != 0 {
20677 if !first {
20678 f.write_str(" | ")?;
20679 }
20680 f.write_str("ROTATE")?;
20681 remaining &= !Self::ROTATE.0;
20682 first = false;
20683 }
20684 if remaining & Self::ROTATE_CLUSTERED.0 != 0 {
20685 if !first {
20686 f.write_str(" | ")?;
20687 }
20688 f.write_str("ROTATE_CLUSTERED")?;
20689 remaining &= !Self::ROTATE_CLUSTERED.0;
20690 first = false;
20691 }
20692 if remaining & Self::PARTITIONED.0 != 0 {
20693 if !first {
20694 f.write_str(" | ")?;
20695 }
20696 f.write_str("PARTITIONED")?;
20697 remaining &= !Self::PARTITIONED.0;
20698 first = false;
20699 }
20700 if remaining != 0u32 {
20701 if !first {
20702 f.write_str(" | ")?;
20703 }
20704 write!(f, "{:#x}", remaining)?;
20705 } else if first {
20706 f.write_str("(empty)")?;
20707 }
20708 Ok(())
20709 }
20710}
20711#[repr(transparent)]
20713#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20714#[doc(alias = "VkSubmitFlagBits")]
20715pub struct SubmitFlagBits(u32);
20716impl SubmitFlagBits {
20717 #[inline]
20718 pub const fn empty() -> Self {
20719 Self(0u32)
20720 }
20721 #[inline]
20722 pub const fn from_raw(value: u32) -> Self {
20723 Self(value)
20724 }
20725 #[inline]
20726 pub const fn as_raw(self) -> u32 {
20727 self.0
20728 }
20729 #[inline]
20730 pub const fn is_empty(self) -> bool {
20731 self.0 == 0u32
20732 }
20733 #[inline]
20734 pub const fn contains(self, other: Self) -> bool {
20735 (self.0 & other.0) == other.0
20736 }
20737 #[inline]
20738 pub const fn all() -> Self {
20739 Self(1u32)
20740 }
20741 pub const PROTECTED: Self = Self(1u32);
20743}
20744impl core::ops::BitOr for SubmitFlagBits {
20745 type Output = Self;
20746 #[inline]
20747 fn bitor(self, rhs: Self) -> Self {
20748 Self(self.0 | rhs.0)
20749 }
20750}
20751impl core::ops::BitOrAssign for SubmitFlagBits {
20752 #[inline]
20753 fn bitor_assign(&mut self, rhs: Self) {
20754 self.0 |= rhs.0;
20755 }
20756}
20757impl core::ops::BitAnd for SubmitFlagBits {
20758 type Output = Self;
20759 #[inline]
20760 fn bitand(self, rhs: Self) -> Self {
20761 Self(self.0 & rhs.0)
20762 }
20763}
20764impl core::ops::BitAndAssign for SubmitFlagBits {
20765 #[inline]
20766 fn bitand_assign(&mut self, rhs: Self) {
20767 self.0 &= rhs.0;
20768 }
20769}
20770impl core::ops::BitXor for SubmitFlagBits {
20771 type Output = Self;
20772 #[inline]
20773 fn bitxor(self, rhs: Self) -> Self {
20774 Self(self.0 ^ rhs.0)
20775 }
20776}
20777impl core::ops::BitXorAssign for SubmitFlagBits {
20778 #[inline]
20779 fn bitxor_assign(&mut self, rhs: Self) {
20780 self.0 ^= rhs.0;
20781 }
20782}
20783impl core::ops::Not for SubmitFlagBits {
20784 type Output = Self;
20785 #[inline]
20786 fn not(self) -> Self {
20787 Self(!self.0)
20788 }
20789}
20790impl core::fmt::Debug for SubmitFlagBits {
20791 #[allow(unused_mut, unused_variables)]
20792 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20793 let mut first = true;
20794 let mut remaining = self.0;
20795 if remaining & Self::PROTECTED.0 != 0 {
20796 if !first {
20797 f.write_str(" | ")?;
20798 }
20799 f.write_str("PROTECTED")?;
20800 remaining &= !Self::PROTECTED.0;
20801 first = false;
20802 }
20803 if remaining != 0u32 {
20804 if !first {
20805 f.write_str(" | ")?;
20806 }
20807 write!(f, "{:#x}", remaining)?;
20808 } else if first {
20809 f.write_str("(empty)")?;
20810 }
20811 Ok(())
20812 }
20813}
20814#[repr(transparent)]
20816#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
20817#[doc(alias = "VkSubpassDescriptionFlagBits")]
20818pub struct SubpassDescriptionFlagBits(u32);
20819impl SubpassDescriptionFlagBits {
20820 #[inline]
20821 pub const fn empty() -> Self {
20822 Self(0u32)
20823 }
20824 #[inline]
20825 pub const fn from_raw(value: u32) -> Self {
20826 Self(value)
20827 }
20828 #[inline]
20829 pub const fn as_raw(self) -> u32 {
20830 self.0
20831 }
20832 #[inline]
20833 pub const fn is_empty(self) -> bool {
20834 self.0 == 0u32
20835 }
20836 #[inline]
20837 pub const fn contains(self, other: Self) -> bool {
20838 (self.0 & other.0) == other.0
20839 }
20840 #[inline]
20841 pub const fn all() -> Self {
20842 Self(511u32)
20843 }
20844 pub const PER_VIEW_ATTRIBUTES_BIT: Self = Self(1u32);
20846 pub const PER_VIEW_POSITION_X_ONLY_BIT: Self = Self(2u32);
20848 pub const FRAGMENT_REGION_BIT: Self = Self::FRAGMENT_REGION;
20849 pub const SHADER_RESOLVE_BIT: Self = Self::CUSTOM_RESOLVE;
20850 pub const TILE_SHADING_APRON_BIT: Self = Self(256u32);
20852 pub const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS;
20853 pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS;
20854 pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT: Self = Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS;
20855 pub const RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS: Self = Self(16u32);
20857 pub const RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS: Self = Self(32u32);
20859 pub const RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS: Self = Self(64u32);
20861 pub const ENABLE_LEGACY_DITHERING: Self = Self(128u32);
20863 pub const FRAGMENT_REGION: Self = Self(4u32);
20865 pub const CUSTOM_RESOLVE: Self = Self(8u32);
20867}
20868impl core::ops::BitOr for SubpassDescriptionFlagBits {
20869 type Output = Self;
20870 #[inline]
20871 fn bitor(self, rhs: Self) -> Self {
20872 Self(self.0 | rhs.0)
20873 }
20874}
20875impl core::ops::BitOrAssign for SubpassDescriptionFlagBits {
20876 #[inline]
20877 fn bitor_assign(&mut self, rhs: Self) {
20878 self.0 |= rhs.0;
20879 }
20880}
20881impl core::ops::BitAnd for SubpassDescriptionFlagBits {
20882 type Output = Self;
20883 #[inline]
20884 fn bitand(self, rhs: Self) -> Self {
20885 Self(self.0 & rhs.0)
20886 }
20887}
20888impl core::ops::BitAndAssign for SubpassDescriptionFlagBits {
20889 #[inline]
20890 fn bitand_assign(&mut self, rhs: Self) {
20891 self.0 &= rhs.0;
20892 }
20893}
20894impl core::ops::BitXor for SubpassDescriptionFlagBits {
20895 type Output = Self;
20896 #[inline]
20897 fn bitxor(self, rhs: Self) -> Self {
20898 Self(self.0 ^ rhs.0)
20899 }
20900}
20901impl core::ops::BitXorAssign for SubpassDescriptionFlagBits {
20902 #[inline]
20903 fn bitxor_assign(&mut self, rhs: Self) {
20904 self.0 ^= rhs.0;
20905 }
20906}
20907impl core::ops::Not for SubpassDescriptionFlagBits {
20908 type Output = Self;
20909 #[inline]
20910 fn not(self) -> Self {
20911 Self(!self.0)
20912 }
20913}
20914impl core::fmt::Debug for SubpassDescriptionFlagBits {
20915 #[allow(unused_mut, unused_variables)]
20916 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
20917 let mut first = true;
20918 let mut remaining = self.0;
20919 if remaining & Self::PER_VIEW_ATTRIBUTES_BIT.0 != 0 {
20920 if !first {
20921 f.write_str(" | ")?;
20922 }
20923 f.write_str("PER_VIEW_ATTRIBUTES_BIT")?;
20924 remaining &= !Self::PER_VIEW_ATTRIBUTES_BIT.0;
20925 first = false;
20926 }
20927 if remaining & Self::PER_VIEW_POSITION_X_ONLY_BIT.0 != 0 {
20928 if !first {
20929 f.write_str(" | ")?;
20930 }
20931 f.write_str("PER_VIEW_POSITION_X_ONLY_BIT")?;
20932 remaining &= !Self::PER_VIEW_POSITION_X_ONLY_BIT.0;
20933 first = false;
20934 }
20935 if remaining & Self::TILE_SHADING_APRON_BIT.0 != 0 {
20936 if !first {
20937 f.write_str(" | ")?;
20938 }
20939 f.write_str("TILE_SHADING_APRON_BIT")?;
20940 remaining &= !Self::TILE_SHADING_APRON_BIT.0;
20941 first = false;
20942 }
20943 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS.0 != 0 {
20944 if !first {
20945 f.write_str(" | ")?;
20946 }
20947 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS")?;
20948 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS.0;
20949 first = false;
20950 }
20951 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS.0 != 0 {
20952 if !first {
20953 f.write_str(" | ")?;
20954 }
20955 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS")?;
20956 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS.0;
20957 first = false;
20958 }
20959 if remaining & Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS.0 != 0 {
20960 if !first {
20961 f.write_str(" | ")?;
20962 }
20963 f.write_str("RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS")?;
20964 remaining &= !Self::RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS.0;
20965 first = false;
20966 }
20967 if remaining & Self::ENABLE_LEGACY_DITHERING.0 != 0 {
20968 if !first {
20969 f.write_str(" | ")?;
20970 }
20971 f.write_str("ENABLE_LEGACY_DITHERING")?;
20972 remaining &= !Self::ENABLE_LEGACY_DITHERING.0;
20973 first = false;
20974 }
20975 if remaining & Self::FRAGMENT_REGION.0 != 0 {
20976 if !first {
20977 f.write_str(" | ")?;
20978 }
20979 f.write_str("FRAGMENT_REGION")?;
20980 remaining &= !Self::FRAGMENT_REGION.0;
20981 first = false;
20982 }
20983 if remaining & Self::CUSTOM_RESOLVE.0 != 0 {
20984 if !first {
20985 f.write_str(" | ")?;
20986 }
20987 f.write_str("CUSTOM_RESOLVE")?;
20988 remaining &= !Self::CUSTOM_RESOLVE.0;
20989 first = false;
20990 }
20991 if remaining != 0u32 {
20992 if !first {
20993 f.write_str(" | ")?;
20994 }
20995 write!(f, "{:#x}", remaining)?;
20996 } else if first {
20997 f.write_str("(empty)")?;
20998 }
20999 Ok(())
21000 }
21001}
21002#[repr(transparent)]
21004#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21005#[doc(alias = "VkSurfaceCounterFlagBitsEXT")]
21006pub struct SurfaceCounterFlagBitsEXT(u32);
21007impl SurfaceCounterFlagBitsEXT {
21008 #[inline]
21009 pub const fn empty() -> Self {
21010 Self(0u32)
21011 }
21012 #[inline]
21013 pub const fn from_raw(value: u32) -> Self {
21014 Self(value)
21015 }
21016 #[inline]
21017 pub const fn as_raw(self) -> u32 {
21018 self.0
21019 }
21020 #[inline]
21021 pub const fn is_empty(self) -> bool {
21022 self.0 == 0u32
21023 }
21024 #[inline]
21025 pub const fn contains(self, other: Self) -> bool {
21026 (self.0 & other.0) == other.0
21027 }
21028 #[inline]
21029 pub const fn all() -> Self {
21030 Self(1u32)
21031 }
21032 pub const VBLANK: Self = Self(1u32);
21034}
21035impl core::ops::BitOr for SurfaceCounterFlagBitsEXT {
21036 type Output = Self;
21037 #[inline]
21038 fn bitor(self, rhs: Self) -> Self {
21039 Self(self.0 | rhs.0)
21040 }
21041}
21042impl core::ops::BitOrAssign for SurfaceCounterFlagBitsEXT {
21043 #[inline]
21044 fn bitor_assign(&mut self, rhs: Self) {
21045 self.0 |= rhs.0;
21046 }
21047}
21048impl core::ops::BitAnd for SurfaceCounterFlagBitsEXT {
21049 type Output = Self;
21050 #[inline]
21051 fn bitand(self, rhs: Self) -> Self {
21052 Self(self.0 & rhs.0)
21053 }
21054}
21055impl core::ops::BitAndAssign for SurfaceCounterFlagBitsEXT {
21056 #[inline]
21057 fn bitand_assign(&mut self, rhs: Self) {
21058 self.0 &= rhs.0;
21059 }
21060}
21061impl core::ops::BitXor for SurfaceCounterFlagBitsEXT {
21062 type Output = Self;
21063 #[inline]
21064 fn bitxor(self, rhs: Self) -> Self {
21065 Self(self.0 ^ rhs.0)
21066 }
21067}
21068impl core::ops::BitXorAssign for SurfaceCounterFlagBitsEXT {
21069 #[inline]
21070 fn bitxor_assign(&mut self, rhs: Self) {
21071 self.0 ^= rhs.0;
21072 }
21073}
21074impl core::ops::Not for SurfaceCounterFlagBitsEXT {
21075 type Output = Self;
21076 #[inline]
21077 fn not(self) -> Self {
21078 Self(!self.0)
21079 }
21080}
21081impl core::fmt::Debug for SurfaceCounterFlagBitsEXT {
21082 #[allow(unused_mut, unused_variables)]
21083 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21084 let mut first = true;
21085 let mut remaining = self.0;
21086 if remaining & Self::VBLANK.0 != 0 {
21087 if !first {
21088 f.write_str(" | ")?;
21089 }
21090 f.write_str("VBLANK")?;
21091 remaining &= !Self::VBLANK.0;
21092 first = false;
21093 }
21094 if remaining != 0u32 {
21095 if !first {
21096 f.write_str(" | ")?;
21097 }
21098 write!(f, "{:#x}", remaining)?;
21099 } else if first {
21100 f.write_str("(empty)")?;
21101 }
21102 Ok(())
21103 }
21104}
21105#[repr(transparent)]
21107#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21108#[doc(alias = "VkSurfaceTransformFlagBitsKHR")]
21109pub struct SurfaceTransformFlagBitsKHR(u32);
21110impl SurfaceTransformFlagBitsKHR {
21111 #[inline]
21112 pub const fn empty() -> Self {
21113 Self(0u32)
21114 }
21115 #[inline]
21116 pub const fn from_raw(value: u32) -> Self {
21117 Self(value)
21118 }
21119 #[inline]
21120 pub const fn as_raw(self) -> u32 {
21121 self.0
21122 }
21123 #[inline]
21124 pub const fn is_empty(self) -> bool {
21125 self.0 == 0u32
21126 }
21127 #[inline]
21128 pub const fn contains(self, other: Self) -> bool {
21129 (self.0 & other.0) == other.0
21130 }
21131 #[inline]
21132 pub const fn all() -> Self {
21133 Self(511u32)
21134 }
21135 pub const IDENTITY: Self = Self(1u32);
21137 pub const ROTATE_90: Self = Self(2u32);
21139 pub const ROTATE_180: Self = Self(4u32);
21141 pub const ROTATE_270: Self = Self(8u32);
21143 pub const HORIZONTAL_MIRROR: Self = Self(16u32);
21145 pub const HORIZONTAL_MIRROR_ROTATE_90: Self = Self(32u32);
21147 pub const HORIZONTAL_MIRROR_ROTATE_180: Self = Self(64u32);
21149 pub const HORIZONTAL_MIRROR_ROTATE_270: Self = Self(128u32);
21151 pub const INHERIT: Self = Self(256u32);
21153}
21154impl core::ops::BitOr for SurfaceTransformFlagBitsKHR {
21155 type Output = Self;
21156 #[inline]
21157 fn bitor(self, rhs: Self) -> Self {
21158 Self(self.0 | rhs.0)
21159 }
21160}
21161impl core::ops::BitOrAssign for SurfaceTransformFlagBitsKHR {
21162 #[inline]
21163 fn bitor_assign(&mut self, rhs: Self) {
21164 self.0 |= rhs.0;
21165 }
21166}
21167impl core::ops::BitAnd for SurfaceTransformFlagBitsKHR {
21168 type Output = Self;
21169 #[inline]
21170 fn bitand(self, rhs: Self) -> Self {
21171 Self(self.0 & rhs.0)
21172 }
21173}
21174impl core::ops::BitAndAssign for SurfaceTransformFlagBitsKHR {
21175 #[inline]
21176 fn bitand_assign(&mut self, rhs: Self) {
21177 self.0 &= rhs.0;
21178 }
21179}
21180impl core::ops::BitXor for SurfaceTransformFlagBitsKHR {
21181 type Output = Self;
21182 #[inline]
21183 fn bitxor(self, rhs: Self) -> Self {
21184 Self(self.0 ^ rhs.0)
21185 }
21186}
21187impl core::ops::BitXorAssign for SurfaceTransformFlagBitsKHR {
21188 #[inline]
21189 fn bitxor_assign(&mut self, rhs: Self) {
21190 self.0 ^= rhs.0;
21191 }
21192}
21193impl core::ops::Not for SurfaceTransformFlagBitsKHR {
21194 type Output = Self;
21195 #[inline]
21196 fn not(self) -> Self {
21197 Self(!self.0)
21198 }
21199}
21200impl core::fmt::Debug for SurfaceTransformFlagBitsKHR {
21201 #[allow(unused_mut, unused_variables)]
21202 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21203 let mut first = true;
21204 let mut remaining = self.0;
21205 if remaining & Self::IDENTITY.0 != 0 {
21206 if !first {
21207 f.write_str(" | ")?;
21208 }
21209 f.write_str("IDENTITY")?;
21210 remaining &= !Self::IDENTITY.0;
21211 first = false;
21212 }
21213 if remaining & Self::ROTATE_90.0 != 0 {
21214 if !first {
21215 f.write_str(" | ")?;
21216 }
21217 f.write_str("ROTATE_90")?;
21218 remaining &= !Self::ROTATE_90.0;
21219 first = false;
21220 }
21221 if remaining & Self::ROTATE_180.0 != 0 {
21222 if !first {
21223 f.write_str(" | ")?;
21224 }
21225 f.write_str("ROTATE_180")?;
21226 remaining &= !Self::ROTATE_180.0;
21227 first = false;
21228 }
21229 if remaining & Self::ROTATE_270.0 != 0 {
21230 if !first {
21231 f.write_str(" | ")?;
21232 }
21233 f.write_str("ROTATE_270")?;
21234 remaining &= !Self::ROTATE_270.0;
21235 first = false;
21236 }
21237 if remaining & Self::HORIZONTAL_MIRROR.0 != 0 {
21238 if !first {
21239 f.write_str(" | ")?;
21240 }
21241 f.write_str("HORIZONTAL_MIRROR")?;
21242 remaining &= !Self::HORIZONTAL_MIRROR.0;
21243 first = false;
21244 }
21245 if remaining & Self::HORIZONTAL_MIRROR_ROTATE_90.0 != 0 {
21246 if !first {
21247 f.write_str(" | ")?;
21248 }
21249 f.write_str("HORIZONTAL_MIRROR_ROTATE_90")?;
21250 remaining &= !Self::HORIZONTAL_MIRROR_ROTATE_90.0;
21251 first = false;
21252 }
21253 if remaining & Self::HORIZONTAL_MIRROR_ROTATE_180.0 != 0 {
21254 if !first {
21255 f.write_str(" | ")?;
21256 }
21257 f.write_str("HORIZONTAL_MIRROR_ROTATE_180")?;
21258 remaining &= !Self::HORIZONTAL_MIRROR_ROTATE_180.0;
21259 first = false;
21260 }
21261 if remaining & Self::HORIZONTAL_MIRROR_ROTATE_270.0 != 0 {
21262 if !first {
21263 f.write_str(" | ")?;
21264 }
21265 f.write_str("HORIZONTAL_MIRROR_ROTATE_270")?;
21266 remaining &= !Self::HORIZONTAL_MIRROR_ROTATE_270.0;
21267 first = false;
21268 }
21269 if remaining & Self::INHERIT.0 != 0 {
21270 if !first {
21271 f.write_str(" | ")?;
21272 }
21273 f.write_str("INHERIT")?;
21274 remaining &= !Self::INHERIT.0;
21275 first = false;
21276 }
21277 if remaining != 0u32 {
21278 if !first {
21279 f.write_str(" | ")?;
21280 }
21281 write!(f, "{:#x}", remaining)?;
21282 } else if first {
21283 f.write_str("(empty)")?;
21284 }
21285 Ok(())
21286 }
21287}
21288#[repr(transparent)]
21290#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21291#[doc(alias = "VkSwapchainCreateFlagBitsKHR")]
21292pub struct SwapchainCreateFlagBitsKHR(u32);
21293impl SwapchainCreateFlagBitsKHR {
21294 #[inline]
21295 pub const fn empty() -> Self {
21296 Self(0u32)
21297 }
21298 #[inline]
21299 pub const fn from_raw(value: u32) -> Self {
21300 Self(value)
21301 }
21302 #[inline]
21303 pub const fn as_raw(self) -> u32 {
21304 self.0
21305 }
21306 #[inline]
21307 pub const fn is_empty(self) -> bool {
21308 self.0 == 0u32
21309 }
21310 #[inline]
21311 pub const fn contains(self, other: Self) -> bool {
21312 (self.0 & other.0) == other.0
21313 }
21314 #[inline]
21315 pub const fn all() -> Self {
21316 Self(719u32)
21317 }
21318 pub const SPLIT_INSTANCE_BIND_REGIONS: Self = Self(1u32);
21320 pub const PROTECTED: Self = Self(2u32);
21322 pub const MUTABLE_FORMAT: Self = Self(4u32);
21324 pub const PRESENT_TIMING: Self = Self(512u32);
21326 pub const PRESENT_ID_2: Self = Self(64u32);
21328 pub const PRESENT_WAIT_2: Self = Self(128u32);
21330 pub const DEFERRED_MEMORY_ALLOCATION: Self = Self(8u32);
21332}
21333impl core::ops::BitOr for SwapchainCreateFlagBitsKHR {
21334 type Output = Self;
21335 #[inline]
21336 fn bitor(self, rhs: Self) -> Self {
21337 Self(self.0 | rhs.0)
21338 }
21339}
21340impl core::ops::BitOrAssign for SwapchainCreateFlagBitsKHR {
21341 #[inline]
21342 fn bitor_assign(&mut self, rhs: Self) {
21343 self.0 |= rhs.0;
21344 }
21345}
21346impl core::ops::BitAnd for SwapchainCreateFlagBitsKHR {
21347 type Output = Self;
21348 #[inline]
21349 fn bitand(self, rhs: Self) -> Self {
21350 Self(self.0 & rhs.0)
21351 }
21352}
21353impl core::ops::BitAndAssign for SwapchainCreateFlagBitsKHR {
21354 #[inline]
21355 fn bitand_assign(&mut self, rhs: Self) {
21356 self.0 &= rhs.0;
21357 }
21358}
21359impl core::ops::BitXor for SwapchainCreateFlagBitsKHR {
21360 type Output = Self;
21361 #[inline]
21362 fn bitxor(self, rhs: Self) -> Self {
21363 Self(self.0 ^ rhs.0)
21364 }
21365}
21366impl core::ops::BitXorAssign for SwapchainCreateFlagBitsKHR {
21367 #[inline]
21368 fn bitxor_assign(&mut self, rhs: Self) {
21369 self.0 ^= rhs.0;
21370 }
21371}
21372impl core::ops::Not for SwapchainCreateFlagBitsKHR {
21373 type Output = Self;
21374 #[inline]
21375 fn not(self) -> Self {
21376 Self(!self.0)
21377 }
21378}
21379impl core::fmt::Debug for SwapchainCreateFlagBitsKHR {
21380 #[allow(unused_mut, unused_variables)]
21381 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21382 let mut first = true;
21383 let mut remaining = self.0;
21384 if remaining & Self::SPLIT_INSTANCE_BIND_REGIONS.0 != 0 {
21385 if !first {
21386 f.write_str(" | ")?;
21387 }
21388 f.write_str("SPLIT_INSTANCE_BIND_REGIONS")?;
21389 remaining &= !Self::SPLIT_INSTANCE_BIND_REGIONS.0;
21390 first = false;
21391 }
21392 if remaining & Self::PROTECTED.0 != 0 {
21393 if !first {
21394 f.write_str(" | ")?;
21395 }
21396 f.write_str("PROTECTED")?;
21397 remaining &= !Self::PROTECTED.0;
21398 first = false;
21399 }
21400 if remaining & Self::MUTABLE_FORMAT.0 != 0 {
21401 if !first {
21402 f.write_str(" | ")?;
21403 }
21404 f.write_str("MUTABLE_FORMAT")?;
21405 remaining &= !Self::MUTABLE_FORMAT.0;
21406 first = false;
21407 }
21408 if remaining & Self::PRESENT_TIMING.0 != 0 {
21409 if !first {
21410 f.write_str(" | ")?;
21411 }
21412 f.write_str("PRESENT_TIMING")?;
21413 remaining &= !Self::PRESENT_TIMING.0;
21414 first = false;
21415 }
21416 if remaining & Self::PRESENT_ID_2.0 != 0 {
21417 if !first {
21418 f.write_str(" | ")?;
21419 }
21420 f.write_str("PRESENT_ID_2")?;
21421 remaining &= !Self::PRESENT_ID_2.0;
21422 first = false;
21423 }
21424 if remaining & Self::PRESENT_WAIT_2.0 != 0 {
21425 if !first {
21426 f.write_str(" | ")?;
21427 }
21428 f.write_str("PRESENT_WAIT_2")?;
21429 remaining &= !Self::PRESENT_WAIT_2.0;
21430 first = false;
21431 }
21432 if remaining & Self::DEFERRED_MEMORY_ALLOCATION.0 != 0 {
21433 if !first {
21434 f.write_str(" | ")?;
21435 }
21436 f.write_str("DEFERRED_MEMORY_ALLOCATION")?;
21437 remaining &= !Self::DEFERRED_MEMORY_ALLOCATION.0;
21438 first = false;
21439 }
21440 if remaining != 0u32 {
21441 if !first {
21442 f.write_str(" | ")?;
21443 }
21444 write!(f, "{:#x}", remaining)?;
21445 } else if first {
21446 f.write_str("(empty)")?;
21447 }
21448 Ok(())
21449 }
21450}
21451#[repr(transparent)]
21453#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21454#[doc(alias = "VkSwapchainImageUsageFlagBitsANDROID")]
21455pub struct SwapchainImageUsageFlagBitsANDROID(u32);
21456impl SwapchainImageUsageFlagBitsANDROID {
21457 #[inline]
21458 pub const fn empty() -> Self {
21459 Self(0u32)
21460 }
21461 #[inline]
21462 pub const fn from_raw(value: u32) -> Self {
21463 Self(value)
21464 }
21465 #[inline]
21466 pub const fn as_raw(self) -> u32 {
21467 self.0
21468 }
21469 #[inline]
21470 pub const fn is_empty(self) -> bool {
21471 self.0 == 0u32
21472 }
21473 #[inline]
21474 pub const fn contains(self, other: Self) -> bool {
21475 (self.0 & other.0) == other.0
21476 }
21477 #[inline]
21478 pub const fn all() -> Self {
21479 Self(1u32)
21480 }
21481 pub const SHARED_BIT: Self = Self(1u32);
21483}
21484impl core::ops::BitOr for SwapchainImageUsageFlagBitsANDROID {
21485 type Output = Self;
21486 #[inline]
21487 fn bitor(self, rhs: Self) -> Self {
21488 Self(self.0 | rhs.0)
21489 }
21490}
21491impl core::ops::BitOrAssign for SwapchainImageUsageFlagBitsANDROID {
21492 #[inline]
21493 fn bitor_assign(&mut self, rhs: Self) {
21494 self.0 |= rhs.0;
21495 }
21496}
21497impl core::ops::BitAnd for SwapchainImageUsageFlagBitsANDROID {
21498 type Output = Self;
21499 #[inline]
21500 fn bitand(self, rhs: Self) -> Self {
21501 Self(self.0 & rhs.0)
21502 }
21503}
21504impl core::ops::BitAndAssign for SwapchainImageUsageFlagBitsANDROID {
21505 #[inline]
21506 fn bitand_assign(&mut self, rhs: Self) {
21507 self.0 &= rhs.0;
21508 }
21509}
21510impl core::ops::BitXor for SwapchainImageUsageFlagBitsANDROID {
21511 type Output = Self;
21512 #[inline]
21513 fn bitxor(self, rhs: Self) -> Self {
21514 Self(self.0 ^ rhs.0)
21515 }
21516}
21517impl core::ops::BitXorAssign for SwapchainImageUsageFlagBitsANDROID {
21518 #[inline]
21519 fn bitxor_assign(&mut self, rhs: Self) {
21520 self.0 ^= rhs.0;
21521 }
21522}
21523impl core::ops::Not for SwapchainImageUsageFlagBitsANDROID {
21524 type Output = Self;
21525 #[inline]
21526 fn not(self) -> Self {
21527 Self(!self.0)
21528 }
21529}
21530impl core::fmt::Debug for SwapchainImageUsageFlagBitsANDROID {
21531 #[allow(unused_mut, unused_variables)]
21532 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21533 let mut first = true;
21534 let mut remaining = self.0;
21535 if remaining & Self::SHARED_BIT.0 != 0 {
21536 if !first {
21537 f.write_str(" | ")?;
21538 }
21539 f.write_str("SHARED_BIT")?;
21540 remaining &= !Self::SHARED_BIT.0;
21541 first = false;
21542 }
21543 if remaining != 0u32 {
21544 if !first {
21545 f.write_str(" | ")?;
21546 }
21547 write!(f, "{:#x}", remaining)?;
21548 } else if first {
21549 f.write_str("(empty)")?;
21550 }
21551 Ok(())
21552 }
21553}
21554#[repr(transparent)]
21556#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21557#[doc(alias = "VkSwapchainImageUsageFlagBitsOHOS")]
21558pub struct SwapchainImageUsageFlagBitsOHOS(u32);
21559impl SwapchainImageUsageFlagBitsOHOS {
21560 #[inline]
21561 pub const fn empty() -> Self {
21562 Self(0u32)
21563 }
21564 #[inline]
21565 pub const fn from_raw(value: u32) -> Self {
21566 Self(value)
21567 }
21568 #[inline]
21569 pub const fn as_raw(self) -> u32 {
21570 self.0
21571 }
21572 #[inline]
21573 pub const fn is_empty(self) -> bool {
21574 self.0 == 0u32
21575 }
21576 #[inline]
21577 pub const fn contains(self, other: Self) -> bool {
21578 (self.0 & other.0) == other.0
21579 }
21580 #[inline]
21581 pub const fn all() -> Self {
21582 Self(1u32)
21583 }
21584 pub const SHARED_BIT: Self = Self(1u32);
21586}
21587impl core::ops::BitOr for SwapchainImageUsageFlagBitsOHOS {
21588 type Output = Self;
21589 #[inline]
21590 fn bitor(self, rhs: Self) -> Self {
21591 Self(self.0 | rhs.0)
21592 }
21593}
21594impl core::ops::BitOrAssign for SwapchainImageUsageFlagBitsOHOS {
21595 #[inline]
21596 fn bitor_assign(&mut self, rhs: Self) {
21597 self.0 |= rhs.0;
21598 }
21599}
21600impl core::ops::BitAnd for SwapchainImageUsageFlagBitsOHOS {
21601 type Output = Self;
21602 #[inline]
21603 fn bitand(self, rhs: Self) -> Self {
21604 Self(self.0 & rhs.0)
21605 }
21606}
21607impl core::ops::BitAndAssign for SwapchainImageUsageFlagBitsOHOS {
21608 #[inline]
21609 fn bitand_assign(&mut self, rhs: Self) {
21610 self.0 &= rhs.0;
21611 }
21612}
21613impl core::ops::BitXor for SwapchainImageUsageFlagBitsOHOS {
21614 type Output = Self;
21615 #[inline]
21616 fn bitxor(self, rhs: Self) -> Self {
21617 Self(self.0 ^ rhs.0)
21618 }
21619}
21620impl core::ops::BitXorAssign for SwapchainImageUsageFlagBitsOHOS {
21621 #[inline]
21622 fn bitxor_assign(&mut self, rhs: Self) {
21623 self.0 ^= rhs.0;
21624 }
21625}
21626impl core::ops::Not for SwapchainImageUsageFlagBitsOHOS {
21627 type Output = Self;
21628 #[inline]
21629 fn not(self) -> Self {
21630 Self(!self.0)
21631 }
21632}
21633impl core::fmt::Debug for SwapchainImageUsageFlagBitsOHOS {
21634 #[allow(unused_mut, unused_variables)]
21635 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21636 let mut first = true;
21637 let mut remaining = self.0;
21638 if remaining & Self::SHARED_BIT.0 != 0 {
21639 if !first {
21640 f.write_str(" | ")?;
21641 }
21642 f.write_str("SHARED_BIT")?;
21643 remaining &= !Self::SHARED_BIT.0;
21644 first = false;
21645 }
21646 if remaining != 0u32 {
21647 if !first {
21648 f.write_str(" | ")?;
21649 }
21650 write!(f, "{:#x}", remaining)?;
21651 } else if first {
21652 f.write_str("(empty)")?;
21653 }
21654 Ok(())
21655 }
21656}
21657#[repr(transparent)]
21659#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21660#[doc(alias = "VkTensorCreateFlagBitsARM")]
21661pub struct TensorCreateFlagBitsARM(u64);
21662impl TensorCreateFlagBitsARM {
21663 #[inline]
21664 pub const fn empty() -> Self {
21665 Self(0u64)
21666 }
21667 #[inline]
21668 pub const fn from_raw(value: u64) -> Self {
21669 Self(value)
21670 }
21671 #[inline]
21672 pub const fn as_raw(self) -> u64 {
21673 self.0
21674 }
21675 #[inline]
21676 pub const fn is_empty(self) -> bool {
21677 self.0 == 0u64
21678 }
21679 #[inline]
21680 pub const fn contains(self, other: Self) -> bool {
21681 (self.0 & other.0) == other.0
21682 }
21683 #[inline]
21684 pub const fn all() -> Self {
21685 Self(15u64)
21686 }
21687 pub const MUTABLE_FORMAT_BIT: Self = Self(1u64);
21689 pub const PROTECTED_BIT: Self = Self(2u64);
21691 pub const DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT: Self = Self(8u64);
21693 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT: Self = Self(4u64);
21695}
21696impl core::ops::BitOr for TensorCreateFlagBitsARM {
21697 type Output = Self;
21698 #[inline]
21699 fn bitor(self, rhs: Self) -> Self {
21700 Self(self.0 | rhs.0)
21701 }
21702}
21703impl core::ops::BitOrAssign for TensorCreateFlagBitsARM {
21704 #[inline]
21705 fn bitor_assign(&mut self, rhs: Self) {
21706 self.0 |= rhs.0;
21707 }
21708}
21709impl core::ops::BitAnd for TensorCreateFlagBitsARM {
21710 type Output = Self;
21711 #[inline]
21712 fn bitand(self, rhs: Self) -> Self {
21713 Self(self.0 & rhs.0)
21714 }
21715}
21716impl core::ops::BitAndAssign for TensorCreateFlagBitsARM {
21717 #[inline]
21718 fn bitand_assign(&mut self, rhs: Self) {
21719 self.0 &= rhs.0;
21720 }
21721}
21722impl core::ops::BitXor for TensorCreateFlagBitsARM {
21723 type Output = Self;
21724 #[inline]
21725 fn bitxor(self, rhs: Self) -> Self {
21726 Self(self.0 ^ rhs.0)
21727 }
21728}
21729impl core::ops::BitXorAssign for TensorCreateFlagBitsARM {
21730 #[inline]
21731 fn bitxor_assign(&mut self, rhs: Self) {
21732 self.0 ^= rhs.0;
21733 }
21734}
21735impl core::ops::Not for TensorCreateFlagBitsARM {
21736 type Output = Self;
21737 #[inline]
21738 fn not(self) -> Self {
21739 Self(!self.0)
21740 }
21741}
21742impl core::fmt::Debug for TensorCreateFlagBitsARM {
21743 #[allow(unused_mut, unused_variables)]
21744 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21745 let mut first = true;
21746 let mut remaining = self.0;
21747 if remaining & Self::MUTABLE_FORMAT_BIT.0 != 0 {
21748 if !first {
21749 f.write_str(" | ")?;
21750 }
21751 f.write_str("MUTABLE_FORMAT_BIT")?;
21752 remaining &= !Self::MUTABLE_FORMAT_BIT.0;
21753 first = false;
21754 }
21755 if remaining & Self::PROTECTED_BIT.0 != 0 {
21756 if !first {
21757 f.write_str(" | ")?;
21758 }
21759 f.write_str("PROTECTED_BIT")?;
21760 remaining &= !Self::PROTECTED_BIT.0;
21761 first = false;
21762 }
21763 if remaining & Self::DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT.0 != 0 {
21764 if !first {
21765 f.write_str(" | ")?;
21766 }
21767 f.write_str("DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT")?;
21768 remaining &= !Self::DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT.0;
21769 first = false;
21770 }
21771 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT.0 != 0 {
21772 if !first {
21773 f.write_str(" | ")?;
21774 }
21775 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT")?;
21776 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT.0;
21777 first = false;
21778 }
21779 if remaining != 0u64 {
21780 if !first {
21781 f.write_str(" | ")?;
21782 }
21783 write!(f, "{:#x}", remaining)?;
21784 } else if first {
21785 f.write_str("(empty)")?;
21786 }
21787 Ok(())
21788 }
21789}
21790#[repr(transparent)]
21792#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21793#[doc(alias = "VkTensorUsageFlagBitsARM")]
21794pub struct TensorUsageFlagBitsARM(u64);
21795impl TensorUsageFlagBitsARM {
21796 #[inline]
21797 pub const fn empty() -> Self {
21798 Self(0u64)
21799 }
21800 #[inline]
21801 pub const fn from_raw(value: u64) -> Self {
21802 Self(value)
21803 }
21804 #[inline]
21805 pub const fn as_raw(self) -> u64 {
21806 self.0
21807 }
21808 #[inline]
21809 pub const fn is_empty(self) -> bool {
21810 self.0 == 0u64
21811 }
21812 #[inline]
21813 pub const fn contains(self, other: Self) -> bool {
21814 (self.0 & other.0) == other.0
21815 }
21816 #[inline]
21817 pub const fn all() -> Self {
21818 Self(62u64)
21819 }
21820 pub const SHADER_BIT: Self = Self(2u64);
21822 pub const TRANSFER_SRC_BIT: Self = Self(4u64);
21824 pub const TRANSFER_DST_BIT: Self = Self(8u64);
21826 pub const IMAGE_ALIASING_BIT: Self = Self(16u64);
21828 pub const DATA_GRAPH_BIT: Self = Self(32u64);
21830}
21831impl core::ops::BitOr for TensorUsageFlagBitsARM {
21832 type Output = Self;
21833 #[inline]
21834 fn bitor(self, rhs: Self) -> Self {
21835 Self(self.0 | rhs.0)
21836 }
21837}
21838impl core::ops::BitOrAssign for TensorUsageFlagBitsARM {
21839 #[inline]
21840 fn bitor_assign(&mut self, rhs: Self) {
21841 self.0 |= rhs.0;
21842 }
21843}
21844impl core::ops::BitAnd for TensorUsageFlagBitsARM {
21845 type Output = Self;
21846 #[inline]
21847 fn bitand(self, rhs: Self) -> Self {
21848 Self(self.0 & rhs.0)
21849 }
21850}
21851impl core::ops::BitAndAssign for TensorUsageFlagBitsARM {
21852 #[inline]
21853 fn bitand_assign(&mut self, rhs: Self) {
21854 self.0 &= rhs.0;
21855 }
21856}
21857impl core::ops::BitXor for TensorUsageFlagBitsARM {
21858 type Output = Self;
21859 #[inline]
21860 fn bitxor(self, rhs: Self) -> Self {
21861 Self(self.0 ^ rhs.0)
21862 }
21863}
21864impl core::ops::BitXorAssign for TensorUsageFlagBitsARM {
21865 #[inline]
21866 fn bitxor_assign(&mut self, rhs: Self) {
21867 self.0 ^= rhs.0;
21868 }
21869}
21870impl core::ops::Not for TensorUsageFlagBitsARM {
21871 type Output = Self;
21872 #[inline]
21873 fn not(self) -> Self {
21874 Self(!self.0)
21875 }
21876}
21877impl core::fmt::Debug for TensorUsageFlagBitsARM {
21878 #[allow(unused_mut, unused_variables)]
21879 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
21880 let mut first = true;
21881 let mut remaining = self.0;
21882 if remaining & Self::SHADER_BIT.0 != 0 {
21883 if !first {
21884 f.write_str(" | ")?;
21885 }
21886 f.write_str("SHADER_BIT")?;
21887 remaining &= !Self::SHADER_BIT.0;
21888 first = false;
21889 }
21890 if remaining & Self::TRANSFER_SRC_BIT.0 != 0 {
21891 if !first {
21892 f.write_str(" | ")?;
21893 }
21894 f.write_str("TRANSFER_SRC_BIT")?;
21895 remaining &= !Self::TRANSFER_SRC_BIT.0;
21896 first = false;
21897 }
21898 if remaining & Self::TRANSFER_DST_BIT.0 != 0 {
21899 if !first {
21900 f.write_str(" | ")?;
21901 }
21902 f.write_str("TRANSFER_DST_BIT")?;
21903 remaining &= !Self::TRANSFER_DST_BIT.0;
21904 first = false;
21905 }
21906 if remaining & Self::IMAGE_ALIASING_BIT.0 != 0 {
21907 if !first {
21908 f.write_str(" | ")?;
21909 }
21910 f.write_str("IMAGE_ALIASING_BIT")?;
21911 remaining &= !Self::IMAGE_ALIASING_BIT.0;
21912 first = false;
21913 }
21914 if remaining & Self::DATA_GRAPH_BIT.0 != 0 {
21915 if !first {
21916 f.write_str(" | ")?;
21917 }
21918 f.write_str("DATA_GRAPH_BIT")?;
21919 remaining &= !Self::DATA_GRAPH_BIT.0;
21920 first = false;
21921 }
21922 if remaining != 0u64 {
21923 if !first {
21924 f.write_str(" | ")?;
21925 }
21926 write!(f, "{:#x}", remaining)?;
21927 } else if first {
21928 f.write_str("(empty)")?;
21929 }
21930 Ok(())
21931 }
21932}
21933#[repr(transparent)]
21935#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
21936#[doc(alias = "VkTensorViewCreateFlagBitsARM")]
21937pub struct TensorViewCreateFlagBitsARM(u64);
21938impl TensorViewCreateFlagBitsARM {
21939 #[inline]
21940 pub const fn empty() -> Self {
21941 Self(0u64)
21942 }
21943 #[inline]
21944 pub const fn from_raw(value: u64) -> Self {
21945 Self(value)
21946 }
21947 #[inline]
21948 pub const fn as_raw(self) -> u64 {
21949 self.0
21950 }
21951 #[inline]
21952 pub const fn is_empty(self) -> bool {
21953 self.0 == 0u64
21954 }
21955 #[inline]
21956 pub const fn contains(self, other: Self) -> bool {
21957 (self.0 & other.0) == other.0
21958 }
21959 #[inline]
21960 pub const fn all() -> Self {
21961 Self(1u64)
21962 }
21963 pub const DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT: Self = Self(1u64);
21965}
21966impl core::ops::BitOr for TensorViewCreateFlagBitsARM {
21967 type Output = Self;
21968 #[inline]
21969 fn bitor(self, rhs: Self) -> Self {
21970 Self(self.0 | rhs.0)
21971 }
21972}
21973impl core::ops::BitOrAssign for TensorViewCreateFlagBitsARM {
21974 #[inline]
21975 fn bitor_assign(&mut self, rhs: Self) {
21976 self.0 |= rhs.0;
21977 }
21978}
21979impl core::ops::BitAnd for TensorViewCreateFlagBitsARM {
21980 type Output = Self;
21981 #[inline]
21982 fn bitand(self, rhs: Self) -> Self {
21983 Self(self.0 & rhs.0)
21984 }
21985}
21986impl core::ops::BitAndAssign for TensorViewCreateFlagBitsARM {
21987 #[inline]
21988 fn bitand_assign(&mut self, rhs: Self) {
21989 self.0 &= rhs.0;
21990 }
21991}
21992impl core::ops::BitXor for TensorViewCreateFlagBitsARM {
21993 type Output = Self;
21994 #[inline]
21995 fn bitxor(self, rhs: Self) -> Self {
21996 Self(self.0 ^ rhs.0)
21997 }
21998}
21999impl core::ops::BitXorAssign for TensorViewCreateFlagBitsARM {
22000 #[inline]
22001 fn bitxor_assign(&mut self, rhs: Self) {
22002 self.0 ^= rhs.0;
22003 }
22004}
22005impl core::ops::Not for TensorViewCreateFlagBitsARM {
22006 type Output = Self;
22007 #[inline]
22008 fn not(self) -> Self {
22009 Self(!self.0)
22010 }
22011}
22012impl core::fmt::Debug for TensorViewCreateFlagBitsARM {
22013 #[allow(unused_mut, unused_variables)]
22014 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22015 let mut first = true;
22016 let mut remaining = self.0;
22017 if remaining & Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT.0 != 0 {
22018 if !first {
22019 f.write_str(" | ")?;
22020 }
22021 f.write_str("DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT")?;
22022 remaining &= !Self::DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT.0;
22023 first = false;
22024 }
22025 if remaining != 0u64 {
22026 if !first {
22027 f.write_str(" | ")?;
22028 }
22029 write!(f, "{:#x}", remaining)?;
22030 } else if first {
22031 f.write_str("(empty)")?;
22032 }
22033 Ok(())
22034 }
22035}
22036#[repr(transparent)]
22038#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22039#[doc(alias = "VkTileShadingRenderPassFlagBitsQCOM")]
22040pub struct TileShadingRenderPassFlagBitsQCOM(u32);
22041impl TileShadingRenderPassFlagBitsQCOM {
22042 #[inline]
22043 pub const fn empty() -> Self {
22044 Self(0u32)
22045 }
22046 #[inline]
22047 pub const fn from_raw(value: u32) -> Self {
22048 Self(value)
22049 }
22050 #[inline]
22051 pub const fn as_raw(self) -> u32 {
22052 self.0
22053 }
22054 #[inline]
22055 pub const fn is_empty(self) -> bool {
22056 self.0 == 0u32
22057 }
22058 #[inline]
22059 pub const fn contains(self, other: Self) -> bool {
22060 (self.0 & other.0) == other.0
22061 }
22062 #[inline]
22063 pub const fn all() -> Self {
22064 Self(3u32)
22065 }
22066 pub const ENABLE_BIT: Self = Self(1u32);
22068 pub const PER_TILE_EXECUTION_BIT: Self = Self(2u32);
22070}
22071impl core::ops::BitOr for TileShadingRenderPassFlagBitsQCOM {
22072 type Output = Self;
22073 #[inline]
22074 fn bitor(self, rhs: Self) -> Self {
22075 Self(self.0 | rhs.0)
22076 }
22077}
22078impl core::ops::BitOrAssign for TileShadingRenderPassFlagBitsQCOM {
22079 #[inline]
22080 fn bitor_assign(&mut self, rhs: Self) {
22081 self.0 |= rhs.0;
22082 }
22083}
22084impl core::ops::BitAnd for TileShadingRenderPassFlagBitsQCOM {
22085 type Output = Self;
22086 #[inline]
22087 fn bitand(self, rhs: Self) -> Self {
22088 Self(self.0 & rhs.0)
22089 }
22090}
22091impl core::ops::BitAndAssign for TileShadingRenderPassFlagBitsQCOM {
22092 #[inline]
22093 fn bitand_assign(&mut self, rhs: Self) {
22094 self.0 &= rhs.0;
22095 }
22096}
22097impl core::ops::BitXor for TileShadingRenderPassFlagBitsQCOM {
22098 type Output = Self;
22099 #[inline]
22100 fn bitxor(self, rhs: Self) -> Self {
22101 Self(self.0 ^ rhs.0)
22102 }
22103}
22104impl core::ops::BitXorAssign for TileShadingRenderPassFlagBitsQCOM {
22105 #[inline]
22106 fn bitxor_assign(&mut self, rhs: Self) {
22107 self.0 ^= rhs.0;
22108 }
22109}
22110impl core::ops::Not for TileShadingRenderPassFlagBitsQCOM {
22111 type Output = Self;
22112 #[inline]
22113 fn not(self) -> Self {
22114 Self(!self.0)
22115 }
22116}
22117impl core::fmt::Debug for TileShadingRenderPassFlagBitsQCOM {
22118 #[allow(unused_mut, unused_variables)]
22119 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22120 let mut first = true;
22121 let mut remaining = self.0;
22122 if remaining & Self::ENABLE_BIT.0 != 0 {
22123 if !first {
22124 f.write_str(" | ")?;
22125 }
22126 f.write_str("ENABLE_BIT")?;
22127 remaining &= !Self::ENABLE_BIT.0;
22128 first = false;
22129 }
22130 if remaining & Self::PER_TILE_EXECUTION_BIT.0 != 0 {
22131 if !first {
22132 f.write_str(" | ")?;
22133 }
22134 f.write_str("PER_TILE_EXECUTION_BIT")?;
22135 remaining &= !Self::PER_TILE_EXECUTION_BIT.0;
22136 first = false;
22137 }
22138 if remaining != 0u32 {
22139 if !first {
22140 f.write_str(" | ")?;
22141 }
22142 write!(f, "{:#x}", remaining)?;
22143 } else if first {
22144 f.write_str("(empty)")?;
22145 }
22146 Ok(())
22147 }
22148}
22149#[repr(transparent)]
22151#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22152#[doc(alias = "VkToolPurposeFlagBits")]
22153pub struct ToolPurposeFlagBits(u32);
22154impl ToolPurposeFlagBits {
22155 #[inline]
22156 pub const fn empty() -> Self {
22157 Self(0u32)
22158 }
22159 #[inline]
22160 pub const fn from_raw(value: u32) -> Self {
22161 Self(value)
22162 }
22163 #[inline]
22164 pub const fn as_raw(self) -> u32 {
22165 self.0
22166 }
22167 #[inline]
22168 pub const fn is_empty(self) -> bool {
22169 self.0 == 0u32
22170 }
22171 #[inline]
22172 pub const fn contains(self, other: Self) -> bool {
22173 (self.0 & other.0) == other.0
22174 }
22175 #[inline]
22176 pub const fn all() -> Self {
22177 Self(127u32)
22178 }
22179 pub const VALIDATION: Self = Self(1u32);
22181 pub const PROFILING: Self = Self(2u32);
22183 pub const TRACING: Self = Self(4u32);
22185 pub const ADDITIONAL_FEATURES: Self = Self(8u32);
22187 pub const MODIFYING_FEATURES: Self = Self(16u32);
22189 pub const DEBUG_REPORTING: Self = Self(32u32);
22191 pub const DEBUG_MARKERS: Self = Self(64u32);
22193}
22194impl core::ops::BitOr for ToolPurposeFlagBits {
22195 type Output = Self;
22196 #[inline]
22197 fn bitor(self, rhs: Self) -> Self {
22198 Self(self.0 | rhs.0)
22199 }
22200}
22201impl core::ops::BitOrAssign for ToolPurposeFlagBits {
22202 #[inline]
22203 fn bitor_assign(&mut self, rhs: Self) {
22204 self.0 |= rhs.0;
22205 }
22206}
22207impl core::ops::BitAnd for ToolPurposeFlagBits {
22208 type Output = Self;
22209 #[inline]
22210 fn bitand(self, rhs: Self) -> Self {
22211 Self(self.0 & rhs.0)
22212 }
22213}
22214impl core::ops::BitAndAssign for ToolPurposeFlagBits {
22215 #[inline]
22216 fn bitand_assign(&mut self, rhs: Self) {
22217 self.0 &= rhs.0;
22218 }
22219}
22220impl core::ops::BitXor for ToolPurposeFlagBits {
22221 type Output = Self;
22222 #[inline]
22223 fn bitxor(self, rhs: Self) -> Self {
22224 Self(self.0 ^ rhs.0)
22225 }
22226}
22227impl core::ops::BitXorAssign for ToolPurposeFlagBits {
22228 #[inline]
22229 fn bitxor_assign(&mut self, rhs: Self) {
22230 self.0 ^= rhs.0;
22231 }
22232}
22233impl core::ops::Not for ToolPurposeFlagBits {
22234 type Output = Self;
22235 #[inline]
22236 fn not(self) -> Self {
22237 Self(!self.0)
22238 }
22239}
22240impl core::fmt::Debug for ToolPurposeFlagBits {
22241 #[allow(unused_mut, unused_variables)]
22242 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22243 let mut first = true;
22244 let mut remaining = self.0;
22245 if remaining & Self::VALIDATION.0 != 0 {
22246 if !first {
22247 f.write_str(" | ")?;
22248 }
22249 f.write_str("VALIDATION")?;
22250 remaining &= !Self::VALIDATION.0;
22251 first = false;
22252 }
22253 if remaining & Self::PROFILING.0 != 0 {
22254 if !first {
22255 f.write_str(" | ")?;
22256 }
22257 f.write_str("PROFILING")?;
22258 remaining &= !Self::PROFILING.0;
22259 first = false;
22260 }
22261 if remaining & Self::TRACING.0 != 0 {
22262 if !first {
22263 f.write_str(" | ")?;
22264 }
22265 f.write_str("TRACING")?;
22266 remaining &= !Self::TRACING.0;
22267 first = false;
22268 }
22269 if remaining & Self::ADDITIONAL_FEATURES.0 != 0 {
22270 if !first {
22271 f.write_str(" | ")?;
22272 }
22273 f.write_str("ADDITIONAL_FEATURES")?;
22274 remaining &= !Self::ADDITIONAL_FEATURES.0;
22275 first = false;
22276 }
22277 if remaining & Self::MODIFYING_FEATURES.0 != 0 {
22278 if !first {
22279 f.write_str(" | ")?;
22280 }
22281 f.write_str("MODIFYING_FEATURES")?;
22282 remaining &= !Self::MODIFYING_FEATURES.0;
22283 first = false;
22284 }
22285 if remaining & Self::DEBUG_REPORTING.0 != 0 {
22286 if !first {
22287 f.write_str(" | ")?;
22288 }
22289 f.write_str("DEBUG_REPORTING")?;
22290 remaining &= !Self::DEBUG_REPORTING.0;
22291 first = false;
22292 }
22293 if remaining & Self::DEBUG_MARKERS.0 != 0 {
22294 if !first {
22295 f.write_str(" | ")?;
22296 }
22297 f.write_str("DEBUG_MARKERS")?;
22298 remaining &= !Self::DEBUG_MARKERS.0;
22299 first = false;
22300 }
22301 if remaining != 0u32 {
22302 if !first {
22303 f.write_str(" | ")?;
22304 }
22305 write!(f, "{:#x}", remaining)?;
22306 } else if first {
22307 f.write_str("(empty)")?;
22308 }
22309 Ok(())
22310 }
22311}
22312#[repr(transparent)]
22314#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22315#[doc(alias = "VkVideoCapabilityFlagBitsKHR")]
22316pub struct VideoCapabilityFlagBitsKHR(u32);
22317impl VideoCapabilityFlagBitsKHR {
22318 #[inline]
22319 pub const fn empty() -> Self {
22320 Self(0u32)
22321 }
22322 #[inline]
22323 pub const fn from_raw(value: u32) -> Self {
22324 Self(value)
22325 }
22326 #[inline]
22327 pub const fn as_raw(self) -> u32 {
22328 self.0
22329 }
22330 #[inline]
22331 pub const fn is_empty(self) -> bool {
22332 self.0 == 0u32
22333 }
22334 #[inline]
22335 pub const fn contains(self, other: Self) -> bool {
22336 (self.0 & other.0) == other.0
22337 }
22338 #[inline]
22339 pub const fn all() -> Self {
22340 Self(3u32)
22341 }
22342 pub const PROTECTED_CONTENT: Self = Self(1u32);
22344 pub const SEPARATE_REFERENCE_IMAGES: Self = Self(2u32);
22346}
22347impl core::ops::BitOr for VideoCapabilityFlagBitsKHR {
22348 type Output = Self;
22349 #[inline]
22350 fn bitor(self, rhs: Self) -> Self {
22351 Self(self.0 | rhs.0)
22352 }
22353}
22354impl core::ops::BitOrAssign for VideoCapabilityFlagBitsKHR {
22355 #[inline]
22356 fn bitor_assign(&mut self, rhs: Self) {
22357 self.0 |= rhs.0;
22358 }
22359}
22360impl core::ops::BitAnd for VideoCapabilityFlagBitsKHR {
22361 type Output = Self;
22362 #[inline]
22363 fn bitand(self, rhs: Self) -> Self {
22364 Self(self.0 & rhs.0)
22365 }
22366}
22367impl core::ops::BitAndAssign for VideoCapabilityFlagBitsKHR {
22368 #[inline]
22369 fn bitand_assign(&mut self, rhs: Self) {
22370 self.0 &= rhs.0;
22371 }
22372}
22373impl core::ops::BitXor for VideoCapabilityFlagBitsKHR {
22374 type Output = Self;
22375 #[inline]
22376 fn bitxor(self, rhs: Self) -> Self {
22377 Self(self.0 ^ rhs.0)
22378 }
22379}
22380impl core::ops::BitXorAssign for VideoCapabilityFlagBitsKHR {
22381 #[inline]
22382 fn bitxor_assign(&mut self, rhs: Self) {
22383 self.0 ^= rhs.0;
22384 }
22385}
22386impl core::ops::Not for VideoCapabilityFlagBitsKHR {
22387 type Output = Self;
22388 #[inline]
22389 fn not(self) -> Self {
22390 Self(!self.0)
22391 }
22392}
22393impl core::fmt::Debug for VideoCapabilityFlagBitsKHR {
22394 #[allow(unused_mut, unused_variables)]
22395 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22396 let mut first = true;
22397 let mut remaining = self.0;
22398 if remaining & Self::PROTECTED_CONTENT.0 != 0 {
22399 if !first {
22400 f.write_str(" | ")?;
22401 }
22402 f.write_str("PROTECTED_CONTENT")?;
22403 remaining &= !Self::PROTECTED_CONTENT.0;
22404 first = false;
22405 }
22406 if remaining & Self::SEPARATE_REFERENCE_IMAGES.0 != 0 {
22407 if !first {
22408 f.write_str(" | ")?;
22409 }
22410 f.write_str("SEPARATE_REFERENCE_IMAGES")?;
22411 remaining &= !Self::SEPARATE_REFERENCE_IMAGES.0;
22412 first = false;
22413 }
22414 if remaining != 0u32 {
22415 if !first {
22416 f.write_str(" | ")?;
22417 }
22418 write!(f, "{:#x}", remaining)?;
22419 } else if first {
22420 f.write_str("(empty)")?;
22421 }
22422 Ok(())
22423 }
22424}
22425#[repr(transparent)]
22427#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22428#[doc(alias = "VkVideoChromaSubsamplingFlagBitsKHR")]
22429pub struct VideoChromaSubsamplingFlagBitsKHR(u32);
22430impl VideoChromaSubsamplingFlagBitsKHR {
22431 #[inline]
22432 pub const fn empty() -> Self {
22433 Self(0u32)
22434 }
22435 #[inline]
22436 pub const fn from_raw(value: u32) -> Self {
22437 Self(value)
22438 }
22439 #[inline]
22440 pub const fn as_raw(self) -> u32 {
22441 self.0
22442 }
22443 #[inline]
22444 pub const fn is_empty(self) -> bool {
22445 self.0 == 0u32
22446 }
22447 #[inline]
22448 pub const fn contains(self, other: Self) -> bool {
22449 (self.0 & other.0) == other.0
22450 }
22451 #[inline]
22452 pub const fn all() -> Self {
22453 Self(15u32)
22454 }
22455 pub const INVALID: Self = Self(0u32);
22456 pub const MONOCHROME: Self = Self(1u32);
22458 pub const _420: Self = Self(2u32);
22460 pub const _422: Self = Self(4u32);
22462 pub const _444: Self = Self(8u32);
22464}
22465impl core::ops::BitOr for VideoChromaSubsamplingFlagBitsKHR {
22466 type Output = Self;
22467 #[inline]
22468 fn bitor(self, rhs: Self) -> Self {
22469 Self(self.0 | rhs.0)
22470 }
22471}
22472impl core::ops::BitOrAssign for VideoChromaSubsamplingFlagBitsKHR {
22473 #[inline]
22474 fn bitor_assign(&mut self, rhs: Self) {
22475 self.0 |= rhs.0;
22476 }
22477}
22478impl core::ops::BitAnd for VideoChromaSubsamplingFlagBitsKHR {
22479 type Output = Self;
22480 #[inline]
22481 fn bitand(self, rhs: Self) -> Self {
22482 Self(self.0 & rhs.0)
22483 }
22484}
22485impl core::ops::BitAndAssign for VideoChromaSubsamplingFlagBitsKHR {
22486 #[inline]
22487 fn bitand_assign(&mut self, rhs: Self) {
22488 self.0 &= rhs.0;
22489 }
22490}
22491impl core::ops::BitXor for VideoChromaSubsamplingFlagBitsKHR {
22492 type Output = Self;
22493 #[inline]
22494 fn bitxor(self, rhs: Self) -> Self {
22495 Self(self.0 ^ rhs.0)
22496 }
22497}
22498impl core::ops::BitXorAssign for VideoChromaSubsamplingFlagBitsKHR {
22499 #[inline]
22500 fn bitxor_assign(&mut self, rhs: Self) {
22501 self.0 ^= rhs.0;
22502 }
22503}
22504impl core::ops::Not for VideoChromaSubsamplingFlagBitsKHR {
22505 type Output = Self;
22506 #[inline]
22507 fn not(self) -> Self {
22508 Self(!self.0)
22509 }
22510}
22511impl core::fmt::Debug for VideoChromaSubsamplingFlagBitsKHR {
22512 #[allow(unused_mut, unused_variables)]
22513 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22514 let mut first = true;
22515 let mut remaining = self.0;
22516 if remaining & Self::MONOCHROME.0 != 0 {
22517 if !first {
22518 f.write_str(" | ")?;
22519 }
22520 f.write_str("MONOCHROME")?;
22521 remaining &= !Self::MONOCHROME.0;
22522 first = false;
22523 }
22524 if remaining & Self::_420.0 != 0 {
22525 if !first {
22526 f.write_str(" | ")?;
22527 }
22528 f.write_str("_420")?;
22529 remaining &= !Self::_420.0;
22530 first = false;
22531 }
22532 if remaining & Self::_422.0 != 0 {
22533 if !first {
22534 f.write_str(" | ")?;
22535 }
22536 f.write_str("_422")?;
22537 remaining &= !Self::_422.0;
22538 first = false;
22539 }
22540 if remaining & Self::_444.0 != 0 {
22541 if !first {
22542 f.write_str(" | ")?;
22543 }
22544 f.write_str("_444")?;
22545 remaining &= !Self::_444.0;
22546 first = false;
22547 }
22548 if remaining != 0u32 {
22549 if !first {
22550 f.write_str(" | ")?;
22551 }
22552 write!(f, "{:#x}", remaining)?;
22553 } else if first {
22554 f.write_str("(empty)")?;
22555 }
22556 Ok(())
22557 }
22558}
22559#[repr(transparent)]
22561#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22562#[doc(alias = "VkVideoCodecOperationFlagBitsKHR")]
22563pub struct VideoCodecOperationFlagBitsKHR(u32);
22564impl VideoCodecOperationFlagBitsKHR {
22565 #[inline]
22566 pub const fn empty() -> Self {
22567 Self(0u32)
22568 }
22569 #[inline]
22570 pub const fn from_raw(value: u32) -> Self {
22571 Self(value)
22572 }
22573 #[inline]
22574 pub const fn as_raw(self) -> u32 {
22575 self.0
22576 }
22577 #[inline]
22578 pub const fn is_empty(self) -> bool {
22579 self.0 == 0u32
22580 }
22581 #[inline]
22582 pub const fn contains(self, other: Self) -> bool {
22583 (self.0 & other.0) == other.0
22584 }
22585 #[inline]
22586 pub const fn all() -> Self {
22587 Self(458767u32)
22588 }
22589 pub const NONE: Self = Self(0u32);
22590 pub const ENCODE_H264: Self = Self(65536u32);
22592 pub const ENCODE_H265: Self = Self(131072u32);
22594 pub const DECODE_H264: Self = Self(1u32);
22596 pub const DECODE_H265: Self = Self(2u32);
22598 pub const DECODE_AV1: Self = Self(4u32);
22600 pub const ENCODE_AV1: Self = Self(262144u32);
22602 pub const DECODE_VP9: Self = Self(8u32);
22604}
22605impl core::ops::BitOr for VideoCodecOperationFlagBitsKHR {
22606 type Output = Self;
22607 #[inline]
22608 fn bitor(self, rhs: Self) -> Self {
22609 Self(self.0 | rhs.0)
22610 }
22611}
22612impl core::ops::BitOrAssign for VideoCodecOperationFlagBitsKHR {
22613 #[inline]
22614 fn bitor_assign(&mut self, rhs: Self) {
22615 self.0 |= rhs.0;
22616 }
22617}
22618impl core::ops::BitAnd for VideoCodecOperationFlagBitsKHR {
22619 type Output = Self;
22620 #[inline]
22621 fn bitand(self, rhs: Self) -> Self {
22622 Self(self.0 & rhs.0)
22623 }
22624}
22625impl core::ops::BitAndAssign for VideoCodecOperationFlagBitsKHR {
22626 #[inline]
22627 fn bitand_assign(&mut self, rhs: Self) {
22628 self.0 &= rhs.0;
22629 }
22630}
22631impl core::ops::BitXor for VideoCodecOperationFlagBitsKHR {
22632 type Output = Self;
22633 #[inline]
22634 fn bitxor(self, rhs: Self) -> Self {
22635 Self(self.0 ^ rhs.0)
22636 }
22637}
22638impl core::ops::BitXorAssign for VideoCodecOperationFlagBitsKHR {
22639 #[inline]
22640 fn bitxor_assign(&mut self, rhs: Self) {
22641 self.0 ^= rhs.0;
22642 }
22643}
22644impl core::ops::Not for VideoCodecOperationFlagBitsKHR {
22645 type Output = Self;
22646 #[inline]
22647 fn not(self) -> Self {
22648 Self(!self.0)
22649 }
22650}
22651impl core::fmt::Debug for VideoCodecOperationFlagBitsKHR {
22652 #[allow(unused_mut, unused_variables)]
22653 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22654 let mut first = true;
22655 let mut remaining = self.0;
22656 if remaining & Self::ENCODE_H264.0 != 0 {
22657 if !first {
22658 f.write_str(" | ")?;
22659 }
22660 f.write_str("ENCODE_H264")?;
22661 remaining &= !Self::ENCODE_H264.0;
22662 first = false;
22663 }
22664 if remaining & Self::ENCODE_H265.0 != 0 {
22665 if !first {
22666 f.write_str(" | ")?;
22667 }
22668 f.write_str("ENCODE_H265")?;
22669 remaining &= !Self::ENCODE_H265.0;
22670 first = false;
22671 }
22672 if remaining & Self::DECODE_H264.0 != 0 {
22673 if !first {
22674 f.write_str(" | ")?;
22675 }
22676 f.write_str("DECODE_H264")?;
22677 remaining &= !Self::DECODE_H264.0;
22678 first = false;
22679 }
22680 if remaining & Self::DECODE_H265.0 != 0 {
22681 if !first {
22682 f.write_str(" | ")?;
22683 }
22684 f.write_str("DECODE_H265")?;
22685 remaining &= !Self::DECODE_H265.0;
22686 first = false;
22687 }
22688 if remaining & Self::DECODE_AV1.0 != 0 {
22689 if !first {
22690 f.write_str(" | ")?;
22691 }
22692 f.write_str("DECODE_AV1")?;
22693 remaining &= !Self::DECODE_AV1.0;
22694 first = false;
22695 }
22696 if remaining & Self::ENCODE_AV1.0 != 0 {
22697 if !first {
22698 f.write_str(" | ")?;
22699 }
22700 f.write_str("ENCODE_AV1")?;
22701 remaining &= !Self::ENCODE_AV1.0;
22702 first = false;
22703 }
22704 if remaining & Self::DECODE_VP9.0 != 0 {
22705 if !first {
22706 f.write_str(" | ")?;
22707 }
22708 f.write_str("DECODE_VP9")?;
22709 remaining &= !Self::DECODE_VP9.0;
22710 first = false;
22711 }
22712 if remaining != 0u32 {
22713 if !first {
22714 f.write_str(" | ")?;
22715 }
22716 write!(f, "{:#x}", remaining)?;
22717 } else if first {
22718 f.write_str("(empty)")?;
22719 }
22720 Ok(())
22721 }
22722}
22723#[repr(transparent)]
22725#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22726#[doc(alias = "VkVideoCodingControlFlagBitsKHR")]
22727pub struct VideoCodingControlFlagBitsKHR(u32);
22728impl VideoCodingControlFlagBitsKHR {
22729 #[inline]
22730 pub const fn empty() -> Self {
22731 Self(0u32)
22732 }
22733 #[inline]
22734 pub const fn from_raw(value: u32) -> Self {
22735 Self(value)
22736 }
22737 #[inline]
22738 pub const fn as_raw(self) -> u32 {
22739 self.0
22740 }
22741 #[inline]
22742 pub const fn is_empty(self) -> bool {
22743 self.0 == 0u32
22744 }
22745 #[inline]
22746 pub const fn contains(self, other: Self) -> bool {
22747 (self.0 & other.0) == other.0
22748 }
22749 #[inline]
22750 pub const fn all() -> Self {
22751 Self(7u32)
22752 }
22753 pub const RESET: Self = Self(1u32);
22755 pub const ENCODE_RATE_CONTROL: Self = Self(2u32);
22757 pub const ENCODE_QUALITY_LEVEL: Self = Self(4u32);
22759}
22760impl core::ops::BitOr for VideoCodingControlFlagBitsKHR {
22761 type Output = Self;
22762 #[inline]
22763 fn bitor(self, rhs: Self) -> Self {
22764 Self(self.0 | rhs.0)
22765 }
22766}
22767impl core::ops::BitOrAssign for VideoCodingControlFlagBitsKHR {
22768 #[inline]
22769 fn bitor_assign(&mut self, rhs: Self) {
22770 self.0 |= rhs.0;
22771 }
22772}
22773impl core::ops::BitAnd for VideoCodingControlFlagBitsKHR {
22774 type Output = Self;
22775 #[inline]
22776 fn bitand(self, rhs: Self) -> Self {
22777 Self(self.0 & rhs.0)
22778 }
22779}
22780impl core::ops::BitAndAssign for VideoCodingControlFlagBitsKHR {
22781 #[inline]
22782 fn bitand_assign(&mut self, rhs: Self) {
22783 self.0 &= rhs.0;
22784 }
22785}
22786impl core::ops::BitXor for VideoCodingControlFlagBitsKHR {
22787 type Output = Self;
22788 #[inline]
22789 fn bitxor(self, rhs: Self) -> Self {
22790 Self(self.0 ^ rhs.0)
22791 }
22792}
22793impl core::ops::BitXorAssign for VideoCodingControlFlagBitsKHR {
22794 #[inline]
22795 fn bitxor_assign(&mut self, rhs: Self) {
22796 self.0 ^= rhs.0;
22797 }
22798}
22799impl core::ops::Not for VideoCodingControlFlagBitsKHR {
22800 type Output = Self;
22801 #[inline]
22802 fn not(self) -> Self {
22803 Self(!self.0)
22804 }
22805}
22806impl core::fmt::Debug for VideoCodingControlFlagBitsKHR {
22807 #[allow(unused_mut, unused_variables)]
22808 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22809 let mut first = true;
22810 let mut remaining = self.0;
22811 if remaining & Self::RESET.0 != 0 {
22812 if !first {
22813 f.write_str(" | ")?;
22814 }
22815 f.write_str("RESET")?;
22816 remaining &= !Self::RESET.0;
22817 first = false;
22818 }
22819 if remaining & Self::ENCODE_RATE_CONTROL.0 != 0 {
22820 if !first {
22821 f.write_str(" | ")?;
22822 }
22823 f.write_str("ENCODE_RATE_CONTROL")?;
22824 remaining &= !Self::ENCODE_RATE_CONTROL.0;
22825 first = false;
22826 }
22827 if remaining & Self::ENCODE_QUALITY_LEVEL.0 != 0 {
22828 if !first {
22829 f.write_str(" | ")?;
22830 }
22831 f.write_str("ENCODE_QUALITY_LEVEL")?;
22832 remaining &= !Self::ENCODE_QUALITY_LEVEL.0;
22833 first = false;
22834 }
22835 if remaining != 0u32 {
22836 if !first {
22837 f.write_str(" | ")?;
22838 }
22839 write!(f, "{:#x}", remaining)?;
22840 } else if first {
22841 f.write_str("(empty)")?;
22842 }
22843 Ok(())
22844 }
22845}
22846#[repr(transparent)]
22848#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22849#[doc(alias = "VkVideoComponentBitDepthFlagBitsKHR")]
22850pub struct VideoComponentBitDepthFlagBitsKHR(u32);
22851impl VideoComponentBitDepthFlagBitsKHR {
22852 #[inline]
22853 pub const fn empty() -> Self {
22854 Self(0u32)
22855 }
22856 #[inline]
22857 pub const fn from_raw(value: u32) -> Self {
22858 Self(value)
22859 }
22860 #[inline]
22861 pub const fn as_raw(self) -> u32 {
22862 self.0
22863 }
22864 #[inline]
22865 pub const fn is_empty(self) -> bool {
22866 self.0 == 0u32
22867 }
22868 #[inline]
22869 pub const fn contains(self, other: Self) -> bool {
22870 (self.0 & other.0) == other.0
22871 }
22872 #[inline]
22873 pub const fn all() -> Self {
22874 Self(21u32)
22875 }
22876 pub const INVALID: Self = Self(0u32);
22877 pub const _8: Self = Self(1u32);
22879 pub const _10: Self = Self(4u32);
22881 pub const _12: Self = Self(16u32);
22883}
22884impl core::ops::BitOr for VideoComponentBitDepthFlagBitsKHR {
22885 type Output = Self;
22886 #[inline]
22887 fn bitor(self, rhs: Self) -> Self {
22888 Self(self.0 | rhs.0)
22889 }
22890}
22891impl core::ops::BitOrAssign for VideoComponentBitDepthFlagBitsKHR {
22892 #[inline]
22893 fn bitor_assign(&mut self, rhs: Self) {
22894 self.0 |= rhs.0;
22895 }
22896}
22897impl core::ops::BitAnd for VideoComponentBitDepthFlagBitsKHR {
22898 type Output = Self;
22899 #[inline]
22900 fn bitand(self, rhs: Self) -> Self {
22901 Self(self.0 & rhs.0)
22902 }
22903}
22904impl core::ops::BitAndAssign for VideoComponentBitDepthFlagBitsKHR {
22905 #[inline]
22906 fn bitand_assign(&mut self, rhs: Self) {
22907 self.0 &= rhs.0;
22908 }
22909}
22910impl core::ops::BitXor for VideoComponentBitDepthFlagBitsKHR {
22911 type Output = Self;
22912 #[inline]
22913 fn bitxor(self, rhs: Self) -> Self {
22914 Self(self.0 ^ rhs.0)
22915 }
22916}
22917impl core::ops::BitXorAssign for VideoComponentBitDepthFlagBitsKHR {
22918 #[inline]
22919 fn bitxor_assign(&mut self, rhs: Self) {
22920 self.0 ^= rhs.0;
22921 }
22922}
22923impl core::ops::Not for VideoComponentBitDepthFlagBitsKHR {
22924 type Output = Self;
22925 #[inline]
22926 fn not(self) -> Self {
22927 Self(!self.0)
22928 }
22929}
22930impl core::fmt::Debug for VideoComponentBitDepthFlagBitsKHR {
22931 #[allow(unused_mut, unused_variables)]
22932 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
22933 let mut first = true;
22934 let mut remaining = self.0;
22935 if remaining & Self::_8.0 != 0 {
22936 if !first {
22937 f.write_str(" | ")?;
22938 }
22939 f.write_str("_8")?;
22940 remaining &= !Self::_8.0;
22941 first = false;
22942 }
22943 if remaining & Self::_10.0 != 0 {
22944 if !first {
22945 f.write_str(" | ")?;
22946 }
22947 f.write_str("_10")?;
22948 remaining &= !Self::_10.0;
22949 first = false;
22950 }
22951 if remaining & Self::_12.0 != 0 {
22952 if !first {
22953 f.write_str(" | ")?;
22954 }
22955 f.write_str("_12")?;
22956 remaining &= !Self::_12.0;
22957 first = false;
22958 }
22959 if remaining != 0u32 {
22960 if !first {
22961 f.write_str(" | ")?;
22962 }
22963 write!(f, "{:#x}", remaining)?;
22964 } else if first {
22965 f.write_str("(empty)")?;
22966 }
22967 Ok(())
22968 }
22969}
22970#[repr(transparent)]
22972#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
22973#[doc(alias = "VkVideoDecodeCapabilityFlagBitsKHR")]
22974pub struct VideoDecodeCapabilityFlagBitsKHR(u32);
22975impl VideoDecodeCapabilityFlagBitsKHR {
22976 #[inline]
22977 pub const fn empty() -> Self {
22978 Self(0u32)
22979 }
22980 #[inline]
22981 pub const fn from_raw(value: u32) -> Self {
22982 Self(value)
22983 }
22984 #[inline]
22985 pub const fn as_raw(self) -> u32 {
22986 self.0
22987 }
22988 #[inline]
22989 pub const fn is_empty(self) -> bool {
22990 self.0 == 0u32
22991 }
22992 #[inline]
22993 pub const fn contains(self, other: Self) -> bool {
22994 (self.0 & other.0) == other.0
22995 }
22996 #[inline]
22997 pub const fn all() -> Self {
22998 Self(3u32)
22999 }
23000 pub const DPB_AND_OUTPUT_COINCIDE: Self = Self(1u32);
23002 pub const DPB_AND_OUTPUT_DISTINCT: Self = Self(2u32);
23004}
23005impl core::ops::BitOr for VideoDecodeCapabilityFlagBitsKHR {
23006 type Output = Self;
23007 #[inline]
23008 fn bitor(self, rhs: Self) -> Self {
23009 Self(self.0 | rhs.0)
23010 }
23011}
23012impl core::ops::BitOrAssign for VideoDecodeCapabilityFlagBitsKHR {
23013 #[inline]
23014 fn bitor_assign(&mut self, rhs: Self) {
23015 self.0 |= rhs.0;
23016 }
23017}
23018impl core::ops::BitAnd for VideoDecodeCapabilityFlagBitsKHR {
23019 type Output = Self;
23020 #[inline]
23021 fn bitand(self, rhs: Self) -> Self {
23022 Self(self.0 & rhs.0)
23023 }
23024}
23025impl core::ops::BitAndAssign for VideoDecodeCapabilityFlagBitsKHR {
23026 #[inline]
23027 fn bitand_assign(&mut self, rhs: Self) {
23028 self.0 &= rhs.0;
23029 }
23030}
23031impl core::ops::BitXor for VideoDecodeCapabilityFlagBitsKHR {
23032 type Output = Self;
23033 #[inline]
23034 fn bitxor(self, rhs: Self) -> Self {
23035 Self(self.0 ^ rhs.0)
23036 }
23037}
23038impl core::ops::BitXorAssign for VideoDecodeCapabilityFlagBitsKHR {
23039 #[inline]
23040 fn bitxor_assign(&mut self, rhs: Self) {
23041 self.0 ^= rhs.0;
23042 }
23043}
23044impl core::ops::Not for VideoDecodeCapabilityFlagBitsKHR {
23045 type Output = Self;
23046 #[inline]
23047 fn not(self) -> Self {
23048 Self(!self.0)
23049 }
23050}
23051impl core::fmt::Debug for VideoDecodeCapabilityFlagBitsKHR {
23052 #[allow(unused_mut, unused_variables)]
23053 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23054 let mut first = true;
23055 let mut remaining = self.0;
23056 if remaining & Self::DPB_AND_OUTPUT_COINCIDE.0 != 0 {
23057 if !first {
23058 f.write_str(" | ")?;
23059 }
23060 f.write_str("DPB_AND_OUTPUT_COINCIDE")?;
23061 remaining &= !Self::DPB_AND_OUTPUT_COINCIDE.0;
23062 first = false;
23063 }
23064 if remaining & Self::DPB_AND_OUTPUT_DISTINCT.0 != 0 {
23065 if !first {
23066 f.write_str(" | ")?;
23067 }
23068 f.write_str("DPB_AND_OUTPUT_DISTINCT")?;
23069 remaining &= !Self::DPB_AND_OUTPUT_DISTINCT.0;
23070 first = false;
23071 }
23072 if remaining != 0u32 {
23073 if !first {
23074 f.write_str(" | ")?;
23075 }
23076 write!(f, "{:#x}", remaining)?;
23077 } else if first {
23078 f.write_str("(empty)")?;
23079 }
23080 Ok(())
23081 }
23082}
23083#[repr(transparent)]
23085#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23086#[doc(alias = "VkVideoDecodeH264PictureLayoutFlagBitsKHR")]
23087pub struct VideoDecodeH264PictureLayoutFlagBitsKHR(u32);
23088impl VideoDecodeH264PictureLayoutFlagBitsKHR {
23089 #[inline]
23090 pub const fn empty() -> Self {
23091 Self(0u32)
23092 }
23093 #[inline]
23094 pub const fn from_raw(value: u32) -> Self {
23095 Self(value)
23096 }
23097 #[inline]
23098 pub const fn as_raw(self) -> u32 {
23099 self.0
23100 }
23101 #[inline]
23102 pub const fn is_empty(self) -> bool {
23103 self.0 == 0u32
23104 }
23105 #[inline]
23106 pub const fn contains(self, other: Self) -> bool {
23107 (self.0 & other.0) == other.0
23108 }
23109 #[inline]
23110 pub const fn all() -> Self {
23111 Self(3u32)
23112 }
23113 pub const PROGRESSIVE: Self = Self(0u32);
23114 pub const INTERLACED_INTERLEAVED_LINES: Self = Self(1u32);
23116 pub const INTERLACED_SEPARATE_PLANES: Self = Self(2u32);
23118}
23119impl core::ops::BitOr for VideoDecodeH264PictureLayoutFlagBitsKHR {
23120 type Output = Self;
23121 #[inline]
23122 fn bitor(self, rhs: Self) -> Self {
23123 Self(self.0 | rhs.0)
23124 }
23125}
23126impl core::ops::BitOrAssign for VideoDecodeH264PictureLayoutFlagBitsKHR {
23127 #[inline]
23128 fn bitor_assign(&mut self, rhs: Self) {
23129 self.0 |= rhs.0;
23130 }
23131}
23132impl core::ops::BitAnd for VideoDecodeH264PictureLayoutFlagBitsKHR {
23133 type Output = Self;
23134 #[inline]
23135 fn bitand(self, rhs: Self) -> Self {
23136 Self(self.0 & rhs.0)
23137 }
23138}
23139impl core::ops::BitAndAssign for VideoDecodeH264PictureLayoutFlagBitsKHR {
23140 #[inline]
23141 fn bitand_assign(&mut self, rhs: Self) {
23142 self.0 &= rhs.0;
23143 }
23144}
23145impl core::ops::BitXor for VideoDecodeH264PictureLayoutFlagBitsKHR {
23146 type Output = Self;
23147 #[inline]
23148 fn bitxor(self, rhs: Self) -> Self {
23149 Self(self.0 ^ rhs.0)
23150 }
23151}
23152impl core::ops::BitXorAssign for VideoDecodeH264PictureLayoutFlagBitsKHR {
23153 #[inline]
23154 fn bitxor_assign(&mut self, rhs: Self) {
23155 self.0 ^= rhs.0;
23156 }
23157}
23158impl core::ops::Not for VideoDecodeH264PictureLayoutFlagBitsKHR {
23159 type Output = Self;
23160 #[inline]
23161 fn not(self) -> Self {
23162 Self(!self.0)
23163 }
23164}
23165impl core::fmt::Debug for VideoDecodeH264PictureLayoutFlagBitsKHR {
23166 #[allow(unused_mut, unused_variables)]
23167 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23168 let mut first = true;
23169 let mut remaining = self.0;
23170 if remaining & Self::INTERLACED_INTERLEAVED_LINES.0 != 0 {
23171 if !first {
23172 f.write_str(" | ")?;
23173 }
23174 f.write_str("INTERLACED_INTERLEAVED_LINES")?;
23175 remaining &= !Self::INTERLACED_INTERLEAVED_LINES.0;
23176 first = false;
23177 }
23178 if remaining & Self::INTERLACED_SEPARATE_PLANES.0 != 0 {
23179 if !first {
23180 f.write_str(" | ")?;
23181 }
23182 f.write_str("INTERLACED_SEPARATE_PLANES")?;
23183 remaining &= !Self::INTERLACED_SEPARATE_PLANES.0;
23184 first = false;
23185 }
23186 if remaining != 0u32 {
23187 if !first {
23188 f.write_str(" | ")?;
23189 }
23190 write!(f, "{:#x}", remaining)?;
23191 } else if first {
23192 f.write_str("(empty)")?;
23193 }
23194 Ok(())
23195 }
23196}
23197#[repr(transparent)]
23199#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23200#[doc(alias = "VkVideoDecodeUsageFlagBitsKHR")]
23201pub struct VideoDecodeUsageFlagBitsKHR(u32);
23202impl VideoDecodeUsageFlagBitsKHR {
23203 #[inline]
23204 pub const fn empty() -> Self {
23205 Self(0u32)
23206 }
23207 #[inline]
23208 pub const fn from_raw(value: u32) -> Self {
23209 Self(value)
23210 }
23211 #[inline]
23212 pub const fn as_raw(self) -> u32 {
23213 self.0
23214 }
23215 #[inline]
23216 pub const fn is_empty(self) -> bool {
23217 self.0 == 0u32
23218 }
23219 #[inline]
23220 pub const fn contains(self, other: Self) -> bool {
23221 (self.0 & other.0) == other.0
23222 }
23223 #[inline]
23224 pub const fn all() -> Self {
23225 Self(7u32)
23226 }
23227 pub const DEFAULT: Self = Self(0u32);
23228 pub const TRANSCODING: Self = Self(1u32);
23230 pub const OFFLINE: Self = Self(2u32);
23232 pub const STREAMING: Self = Self(4u32);
23234}
23235impl core::ops::BitOr for VideoDecodeUsageFlagBitsKHR {
23236 type Output = Self;
23237 #[inline]
23238 fn bitor(self, rhs: Self) -> Self {
23239 Self(self.0 | rhs.0)
23240 }
23241}
23242impl core::ops::BitOrAssign for VideoDecodeUsageFlagBitsKHR {
23243 #[inline]
23244 fn bitor_assign(&mut self, rhs: Self) {
23245 self.0 |= rhs.0;
23246 }
23247}
23248impl core::ops::BitAnd for VideoDecodeUsageFlagBitsKHR {
23249 type Output = Self;
23250 #[inline]
23251 fn bitand(self, rhs: Self) -> Self {
23252 Self(self.0 & rhs.0)
23253 }
23254}
23255impl core::ops::BitAndAssign for VideoDecodeUsageFlagBitsKHR {
23256 #[inline]
23257 fn bitand_assign(&mut self, rhs: Self) {
23258 self.0 &= rhs.0;
23259 }
23260}
23261impl core::ops::BitXor for VideoDecodeUsageFlagBitsKHR {
23262 type Output = Self;
23263 #[inline]
23264 fn bitxor(self, rhs: Self) -> Self {
23265 Self(self.0 ^ rhs.0)
23266 }
23267}
23268impl core::ops::BitXorAssign for VideoDecodeUsageFlagBitsKHR {
23269 #[inline]
23270 fn bitxor_assign(&mut self, rhs: Self) {
23271 self.0 ^= rhs.0;
23272 }
23273}
23274impl core::ops::Not for VideoDecodeUsageFlagBitsKHR {
23275 type Output = Self;
23276 #[inline]
23277 fn not(self) -> Self {
23278 Self(!self.0)
23279 }
23280}
23281impl core::fmt::Debug for VideoDecodeUsageFlagBitsKHR {
23282 #[allow(unused_mut, unused_variables)]
23283 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23284 let mut first = true;
23285 let mut remaining = self.0;
23286 if remaining & Self::TRANSCODING.0 != 0 {
23287 if !first {
23288 f.write_str(" | ")?;
23289 }
23290 f.write_str("TRANSCODING")?;
23291 remaining &= !Self::TRANSCODING.0;
23292 first = false;
23293 }
23294 if remaining & Self::OFFLINE.0 != 0 {
23295 if !first {
23296 f.write_str(" | ")?;
23297 }
23298 f.write_str("OFFLINE")?;
23299 remaining &= !Self::OFFLINE.0;
23300 first = false;
23301 }
23302 if remaining & Self::STREAMING.0 != 0 {
23303 if !first {
23304 f.write_str(" | ")?;
23305 }
23306 f.write_str("STREAMING")?;
23307 remaining &= !Self::STREAMING.0;
23308 first = false;
23309 }
23310 if remaining != 0u32 {
23311 if !first {
23312 f.write_str(" | ")?;
23313 }
23314 write!(f, "{:#x}", remaining)?;
23315 } else if first {
23316 f.write_str("(empty)")?;
23317 }
23318 Ok(())
23319 }
23320}
23321#[repr(transparent)]
23323#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23324#[doc(alias = "VkVideoEncodeAV1CapabilityFlagBitsKHR")]
23325pub struct VideoEncodeAV1CapabilityFlagBitsKHR(u32);
23326impl VideoEncodeAV1CapabilityFlagBitsKHR {
23327 #[inline]
23328 pub const fn empty() -> Self {
23329 Self(0u32)
23330 }
23331 #[inline]
23332 pub const fn from_raw(value: u32) -> Self {
23333 Self(value)
23334 }
23335 #[inline]
23336 pub const fn as_raw(self) -> u32 {
23337 self.0
23338 }
23339 #[inline]
23340 pub const fn is_empty(self) -> bool {
23341 self.0 == 0u32
23342 }
23343 #[inline]
23344 pub const fn contains(self, other: Self) -> bool {
23345 (self.0 & other.0) == other.0
23346 }
23347 #[inline]
23348 pub const fn all() -> Self {
23349 Self(63u32)
23350 }
23351 pub const PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX: Self = Self(1u32);
23353 pub const GENERATE_OBU_EXTENSION_HEADER: Self = Self(2u32);
23355 pub const PRIMARY_REFERENCE_CDF_ONLY: Self = Self(4u32);
23357 pub const FRAME_SIZE_OVERRIDE: Self = Self(8u32);
23359 pub const MOTION_VECTOR_SCALING: Self = Self(16u32);
23361 pub const COMPOUND_PREDICTION_INTRA_REFRESH: Self = Self(32u32);
23363}
23364impl core::ops::BitOr for VideoEncodeAV1CapabilityFlagBitsKHR {
23365 type Output = Self;
23366 #[inline]
23367 fn bitor(self, rhs: Self) -> Self {
23368 Self(self.0 | rhs.0)
23369 }
23370}
23371impl core::ops::BitOrAssign for VideoEncodeAV1CapabilityFlagBitsKHR {
23372 #[inline]
23373 fn bitor_assign(&mut self, rhs: Self) {
23374 self.0 |= rhs.0;
23375 }
23376}
23377impl core::ops::BitAnd for VideoEncodeAV1CapabilityFlagBitsKHR {
23378 type Output = Self;
23379 #[inline]
23380 fn bitand(self, rhs: Self) -> Self {
23381 Self(self.0 & rhs.0)
23382 }
23383}
23384impl core::ops::BitAndAssign for VideoEncodeAV1CapabilityFlagBitsKHR {
23385 #[inline]
23386 fn bitand_assign(&mut self, rhs: Self) {
23387 self.0 &= rhs.0;
23388 }
23389}
23390impl core::ops::BitXor for VideoEncodeAV1CapabilityFlagBitsKHR {
23391 type Output = Self;
23392 #[inline]
23393 fn bitxor(self, rhs: Self) -> Self {
23394 Self(self.0 ^ rhs.0)
23395 }
23396}
23397impl core::ops::BitXorAssign for VideoEncodeAV1CapabilityFlagBitsKHR {
23398 #[inline]
23399 fn bitxor_assign(&mut self, rhs: Self) {
23400 self.0 ^= rhs.0;
23401 }
23402}
23403impl core::ops::Not for VideoEncodeAV1CapabilityFlagBitsKHR {
23404 type Output = Self;
23405 #[inline]
23406 fn not(self) -> Self {
23407 Self(!self.0)
23408 }
23409}
23410impl core::fmt::Debug for VideoEncodeAV1CapabilityFlagBitsKHR {
23411 #[allow(unused_mut, unused_variables)]
23412 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23413 let mut first = true;
23414 let mut remaining = self.0;
23415 if remaining & Self::PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX.0 != 0 {
23416 if !first {
23417 f.write_str(" | ")?;
23418 }
23419 f.write_str("PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX")?;
23420 remaining &= !Self::PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX.0;
23421 first = false;
23422 }
23423 if remaining & Self::GENERATE_OBU_EXTENSION_HEADER.0 != 0 {
23424 if !first {
23425 f.write_str(" | ")?;
23426 }
23427 f.write_str("GENERATE_OBU_EXTENSION_HEADER")?;
23428 remaining &= !Self::GENERATE_OBU_EXTENSION_HEADER.0;
23429 first = false;
23430 }
23431 if remaining & Self::PRIMARY_REFERENCE_CDF_ONLY.0 != 0 {
23432 if !first {
23433 f.write_str(" | ")?;
23434 }
23435 f.write_str("PRIMARY_REFERENCE_CDF_ONLY")?;
23436 remaining &= !Self::PRIMARY_REFERENCE_CDF_ONLY.0;
23437 first = false;
23438 }
23439 if remaining & Self::FRAME_SIZE_OVERRIDE.0 != 0 {
23440 if !first {
23441 f.write_str(" | ")?;
23442 }
23443 f.write_str("FRAME_SIZE_OVERRIDE")?;
23444 remaining &= !Self::FRAME_SIZE_OVERRIDE.0;
23445 first = false;
23446 }
23447 if remaining & Self::MOTION_VECTOR_SCALING.0 != 0 {
23448 if !first {
23449 f.write_str(" | ")?;
23450 }
23451 f.write_str("MOTION_VECTOR_SCALING")?;
23452 remaining &= !Self::MOTION_VECTOR_SCALING.0;
23453 first = false;
23454 }
23455 if remaining & Self::COMPOUND_PREDICTION_INTRA_REFRESH.0 != 0 {
23456 if !first {
23457 f.write_str(" | ")?;
23458 }
23459 f.write_str("COMPOUND_PREDICTION_INTRA_REFRESH")?;
23460 remaining &= !Self::COMPOUND_PREDICTION_INTRA_REFRESH.0;
23461 first = false;
23462 }
23463 if remaining != 0u32 {
23464 if !first {
23465 f.write_str(" | ")?;
23466 }
23467 write!(f, "{:#x}", remaining)?;
23468 } else if first {
23469 f.write_str("(empty)")?;
23470 }
23471 Ok(())
23472 }
23473}
23474#[repr(transparent)]
23476#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23477#[doc(alias = "VkVideoEncodeAV1RateControlFlagBitsKHR")]
23478pub struct VideoEncodeAV1RateControlFlagBitsKHR(u32);
23479impl VideoEncodeAV1RateControlFlagBitsKHR {
23480 #[inline]
23481 pub const fn empty() -> Self {
23482 Self(0u32)
23483 }
23484 #[inline]
23485 pub const fn from_raw(value: u32) -> Self {
23486 Self(value)
23487 }
23488 #[inline]
23489 pub const fn as_raw(self) -> u32 {
23490 self.0
23491 }
23492 #[inline]
23493 pub const fn is_empty(self) -> bool {
23494 self.0 == 0u32
23495 }
23496 #[inline]
23497 pub const fn contains(self, other: Self) -> bool {
23498 (self.0 & other.0) == other.0
23499 }
23500 #[inline]
23501 pub const fn all() -> Self {
23502 Self(15u32)
23503 }
23504 pub const REGULAR_GOP: Self = Self(1u32);
23506 pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(2u32);
23508 pub const REFERENCE_PATTERN_FLAT: Self = Self(4u32);
23510 pub const REFERENCE_PATTERN_DYADIC: Self = Self(8u32);
23512}
23513impl core::ops::BitOr for VideoEncodeAV1RateControlFlagBitsKHR {
23514 type Output = Self;
23515 #[inline]
23516 fn bitor(self, rhs: Self) -> Self {
23517 Self(self.0 | rhs.0)
23518 }
23519}
23520impl core::ops::BitOrAssign for VideoEncodeAV1RateControlFlagBitsKHR {
23521 #[inline]
23522 fn bitor_assign(&mut self, rhs: Self) {
23523 self.0 |= rhs.0;
23524 }
23525}
23526impl core::ops::BitAnd for VideoEncodeAV1RateControlFlagBitsKHR {
23527 type Output = Self;
23528 #[inline]
23529 fn bitand(self, rhs: Self) -> Self {
23530 Self(self.0 & rhs.0)
23531 }
23532}
23533impl core::ops::BitAndAssign for VideoEncodeAV1RateControlFlagBitsKHR {
23534 #[inline]
23535 fn bitand_assign(&mut self, rhs: Self) {
23536 self.0 &= rhs.0;
23537 }
23538}
23539impl core::ops::BitXor for VideoEncodeAV1RateControlFlagBitsKHR {
23540 type Output = Self;
23541 #[inline]
23542 fn bitxor(self, rhs: Self) -> Self {
23543 Self(self.0 ^ rhs.0)
23544 }
23545}
23546impl core::ops::BitXorAssign for VideoEncodeAV1RateControlFlagBitsKHR {
23547 #[inline]
23548 fn bitxor_assign(&mut self, rhs: Self) {
23549 self.0 ^= rhs.0;
23550 }
23551}
23552impl core::ops::Not for VideoEncodeAV1RateControlFlagBitsKHR {
23553 type Output = Self;
23554 #[inline]
23555 fn not(self) -> Self {
23556 Self(!self.0)
23557 }
23558}
23559impl core::fmt::Debug for VideoEncodeAV1RateControlFlagBitsKHR {
23560 #[allow(unused_mut, unused_variables)]
23561 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23562 let mut first = true;
23563 let mut remaining = self.0;
23564 if remaining & Self::REGULAR_GOP.0 != 0 {
23565 if !first {
23566 f.write_str(" | ")?;
23567 }
23568 f.write_str("REGULAR_GOP")?;
23569 remaining &= !Self::REGULAR_GOP.0;
23570 first = false;
23571 }
23572 if remaining & Self::TEMPORAL_LAYER_PATTERN_DYADIC.0 != 0 {
23573 if !first {
23574 f.write_str(" | ")?;
23575 }
23576 f.write_str("TEMPORAL_LAYER_PATTERN_DYADIC")?;
23577 remaining &= !Self::TEMPORAL_LAYER_PATTERN_DYADIC.0;
23578 first = false;
23579 }
23580 if remaining & Self::REFERENCE_PATTERN_FLAT.0 != 0 {
23581 if !first {
23582 f.write_str(" | ")?;
23583 }
23584 f.write_str("REFERENCE_PATTERN_FLAT")?;
23585 remaining &= !Self::REFERENCE_PATTERN_FLAT.0;
23586 first = false;
23587 }
23588 if remaining & Self::REFERENCE_PATTERN_DYADIC.0 != 0 {
23589 if !first {
23590 f.write_str(" | ")?;
23591 }
23592 f.write_str("REFERENCE_PATTERN_DYADIC")?;
23593 remaining &= !Self::REFERENCE_PATTERN_DYADIC.0;
23594 first = false;
23595 }
23596 if remaining != 0u32 {
23597 if !first {
23598 f.write_str(" | ")?;
23599 }
23600 write!(f, "{:#x}", remaining)?;
23601 } else if first {
23602 f.write_str("(empty)")?;
23603 }
23604 Ok(())
23605 }
23606}
23607#[repr(transparent)]
23609#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23610#[doc(alias = "VkVideoEncodeAV1StdFlagBitsKHR")]
23611pub struct VideoEncodeAV1StdFlagBitsKHR(u32);
23612impl VideoEncodeAV1StdFlagBitsKHR {
23613 #[inline]
23614 pub const fn empty() -> Self {
23615 Self(0u32)
23616 }
23617 #[inline]
23618 pub const fn from_raw(value: u32) -> Self {
23619 Self(value)
23620 }
23621 #[inline]
23622 pub const fn as_raw(self) -> u32 {
23623 self.0
23624 }
23625 #[inline]
23626 pub const fn is_empty(self) -> bool {
23627 self.0 == 0u32
23628 }
23629 #[inline]
23630 pub const fn contains(self, other: Self) -> bool {
23631 (self.0 & other.0) == other.0
23632 }
23633 #[inline]
23634 pub const fn all() -> Self {
23635 Self(15u32)
23636 }
23637 pub const UNIFORM_TILE_SPACING_FLAG_SET: Self = Self(1u32);
23639 pub const SKIP_MODE_PRESENT_UNSET: Self = Self(2u32);
23641 pub const PRIMARY_REF_FRAME: Self = Self(4u32);
23643 pub const DELTA_Q: Self = Self(8u32);
23645}
23646impl core::ops::BitOr for VideoEncodeAV1StdFlagBitsKHR {
23647 type Output = Self;
23648 #[inline]
23649 fn bitor(self, rhs: Self) -> Self {
23650 Self(self.0 | rhs.0)
23651 }
23652}
23653impl core::ops::BitOrAssign for VideoEncodeAV1StdFlagBitsKHR {
23654 #[inline]
23655 fn bitor_assign(&mut self, rhs: Self) {
23656 self.0 |= rhs.0;
23657 }
23658}
23659impl core::ops::BitAnd for VideoEncodeAV1StdFlagBitsKHR {
23660 type Output = Self;
23661 #[inline]
23662 fn bitand(self, rhs: Self) -> Self {
23663 Self(self.0 & rhs.0)
23664 }
23665}
23666impl core::ops::BitAndAssign for VideoEncodeAV1StdFlagBitsKHR {
23667 #[inline]
23668 fn bitand_assign(&mut self, rhs: Self) {
23669 self.0 &= rhs.0;
23670 }
23671}
23672impl core::ops::BitXor for VideoEncodeAV1StdFlagBitsKHR {
23673 type Output = Self;
23674 #[inline]
23675 fn bitxor(self, rhs: Self) -> Self {
23676 Self(self.0 ^ rhs.0)
23677 }
23678}
23679impl core::ops::BitXorAssign for VideoEncodeAV1StdFlagBitsKHR {
23680 #[inline]
23681 fn bitxor_assign(&mut self, rhs: Self) {
23682 self.0 ^= rhs.0;
23683 }
23684}
23685impl core::ops::Not for VideoEncodeAV1StdFlagBitsKHR {
23686 type Output = Self;
23687 #[inline]
23688 fn not(self) -> Self {
23689 Self(!self.0)
23690 }
23691}
23692impl core::fmt::Debug for VideoEncodeAV1StdFlagBitsKHR {
23693 #[allow(unused_mut, unused_variables)]
23694 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23695 let mut first = true;
23696 let mut remaining = self.0;
23697 if remaining & Self::UNIFORM_TILE_SPACING_FLAG_SET.0 != 0 {
23698 if !first {
23699 f.write_str(" | ")?;
23700 }
23701 f.write_str("UNIFORM_TILE_SPACING_FLAG_SET")?;
23702 remaining &= !Self::UNIFORM_TILE_SPACING_FLAG_SET.0;
23703 first = false;
23704 }
23705 if remaining & Self::SKIP_MODE_PRESENT_UNSET.0 != 0 {
23706 if !first {
23707 f.write_str(" | ")?;
23708 }
23709 f.write_str("SKIP_MODE_PRESENT_UNSET")?;
23710 remaining &= !Self::SKIP_MODE_PRESENT_UNSET.0;
23711 first = false;
23712 }
23713 if remaining & Self::PRIMARY_REF_FRAME.0 != 0 {
23714 if !first {
23715 f.write_str(" | ")?;
23716 }
23717 f.write_str("PRIMARY_REF_FRAME")?;
23718 remaining &= !Self::PRIMARY_REF_FRAME.0;
23719 first = false;
23720 }
23721 if remaining & Self::DELTA_Q.0 != 0 {
23722 if !first {
23723 f.write_str(" | ")?;
23724 }
23725 f.write_str("DELTA_Q")?;
23726 remaining &= !Self::DELTA_Q.0;
23727 first = false;
23728 }
23729 if remaining != 0u32 {
23730 if !first {
23731 f.write_str(" | ")?;
23732 }
23733 write!(f, "{:#x}", remaining)?;
23734 } else if first {
23735 f.write_str("(empty)")?;
23736 }
23737 Ok(())
23738 }
23739}
23740#[repr(transparent)]
23742#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23743#[doc(alias = "VkVideoEncodeAV1SuperblockSizeFlagBitsKHR")]
23744pub struct VideoEncodeAV1SuperblockSizeFlagBitsKHR(u32);
23745impl VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23746 #[inline]
23747 pub const fn empty() -> Self {
23748 Self(0u32)
23749 }
23750 #[inline]
23751 pub const fn from_raw(value: u32) -> Self {
23752 Self(value)
23753 }
23754 #[inline]
23755 pub const fn as_raw(self) -> u32 {
23756 self.0
23757 }
23758 #[inline]
23759 pub const fn is_empty(self) -> bool {
23760 self.0 == 0u32
23761 }
23762 #[inline]
23763 pub const fn contains(self, other: Self) -> bool {
23764 (self.0 & other.0) == other.0
23765 }
23766 #[inline]
23767 pub const fn all() -> Self {
23768 Self(3u32)
23769 }
23770 pub const _64: Self = Self(1u32);
23772 pub const _128: Self = Self(2u32);
23774}
23775impl core::ops::BitOr for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23776 type Output = Self;
23777 #[inline]
23778 fn bitor(self, rhs: Self) -> Self {
23779 Self(self.0 | rhs.0)
23780 }
23781}
23782impl core::ops::BitOrAssign for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23783 #[inline]
23784 fn bitor_assign(&mut self, rhs: Self) {
23785 self.0 |= rhs.0;
23786 }
23787}
23788impl core::ops::BitAnd for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23789 type Output = Self;
23790 #[inline]
23791 fn bitand(self, rhs: Self) -> Self {
23792 Self(self.0 & rhs.0)
23793 }
23794}
23795impl core::ops::BitAndAssign for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23796 #[inline]
23797 fn bitand_assign(&mut self, rhs: Self) {
23798 self.0 &= rhs.0;
23799 }
23800}
23801impl core::ops::BitXor for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23802 type Output = Self;
23803 #[inline]
23804 fn bitxor(self, rhs: Self) -> Self {
23805 Self(self.0 ^ rhs.0)
23806 }
23807}
23808impl core::ops::BitXorAssign for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23809 #[inline]
23810 fn bitxor_assign(&mut self, rhs: Self) {
23811 self.0 ^= rhs.0;
23812 }
23813}
23814impl core::ops::Not for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23815 type Output = Self;
23816 #[inline]
23817 fn not(self) -> Self {
23818 Self(!self.0)
23819 }
23820}
23821impl core::fmt::Debug for VideoEncodeAV1SuperblockSizeFlagBitsKHR {
23822 #[allow(unused_mut, unused_variables)]
23823 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23824 let mut first = true;
23825 let mut remaining = self.0;
23826 if remaining & Self::_64.0 != 0 {
23827 if !first {
23828 f.write_str(" | ")?;
23829 }
23830 f.write_str("_64")?;
23831 remaining &= !Self::_64.0;
23832 first = false;
23833 }
23834 if remaining & Self::_128.0 != 0 {
23835 if !first {
23836 f.write_str(" | ")?;
23837 }
23838 f.write_str("_128")?;
23839 remaining &= !Self::_128.0;
23840 first = false;
23841 }
23842 if remaining != 0u32 {
23843 if !first {
23844 f.write_str(" | ")?;
23845 }
23846 write!(f, "{:#x}", remaining)?;
23847 } else if first {
23848 f.write_str("(empty)")?;
23849 }
23850 Ok(())
23851 }
23852}
23853#[repr(transparent)]
23855#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23856#[doc(alias = "VkVideoEncodeCapabilityFlagBitsKHR")]
23857pub struct VideoEncodeCapabilityFlagBitsKHR(u32);
23858impl VideoEncodeCapabilityFlagBitsKHR {
23859 #[inline]
23860 pub const fn empty() -> Self {
23861 Self(0u32)
23862 }
23863 #[inline]
23864 pub const fn from_raw(value: u32) -> Self {
23865 Self(value)
23866 }
23867 #[inline]
23868 pub const fn as_raw(self) -> u32 {
23869 self.0
23870 }
23871 #[inline]
23872 pub const fn is_empty(self) -> bool {
23873 self.0 == 0u32
23874 }
23875 #[inline]
23876 pub const fn contains(self, other: Self) -> bool {
23877 (self.0 & other.0) == other.0
23878 }
23879 #[inline]
23880 pub const fn all() -> Self {
23881 Self(15u32)
23882 }
23883 pub const PRECEDING_EXTERNALLY_ENCODED_BYTES: Self = Self(1u32);
23885 pub const INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION: Self = Self(2u32);
23887 pub const QUANTIZATION_DELTA_MAP: Self = Self(4u32);
23889 pub const EMPHASIS_MAP: Self = Self(8u32);
23891}
23892impl core::ops::BitOr for VideoEncodeCapabilityFlagBitsKHR {
23893 type Output = Self;
23894 #[inline]
23895 fn bitor(self, rhs: Self) -> Self {
23896 Self(self.0 | rhs.0)
23897 }
23898}
23899impl core::ops::BitOrAssign for VideoEncodeCapabilityFlagBitsKHR {
23900 #[inline]
23901 fn bitor_assign(&mut self, rhs: Self) {
23902 self.0 |= rhs.0;
23903 }
23904}
23905impl core::ops::BitAnd for VideoEncodeCapabilityFlagBitsKHR {
23906 type Output = Self;
23907 #[inline]
23908 fn bitand(self, rhs: Self) -> Self {
23909 Self(self.0 & rhs.0)
23910 }
23911}
23912impl core::ops::BitAndAssign for VideoEncodeCapabilityFlagBitsKHR {
23913 #[inline]
23914 fn bitand_assign(&mut self, rhs: Self) {
23915 self.0 &= rhs.0;
23916 }
23917}
23918impl core::ops::BitXor for VideoEncodeCapabilityFlagBitsKHR {
23919 type Output = Self;
23920 #[inline]
23921 fn bitxor(self, rhs: Self) -> Self {
23922 Self(self.0 ^ rhs.0)
23923 }
23924}
23925impl core::ops::BitXorAssign for VideoEncodeCapabilityFlagBitsKHR {
23926 #[inline]
23927 fn bitxor_assign(&mut self, rhs: Self) {
23928 self.0 ^= rhs.0;
23929 }
23930}
23931impl core::ops::Not for VideoEncodeCapabilityFlagBitsKHR {
23932 type Output = Self;
23933 #[inline]
23934 fn not(self) -> Self {
23935 Self(!self.0)
23936 }
23937}
23938impl core::fmt::Debug for VideoEncodeCapabilityFlagBitsKHR {
23939 #[allow(unused_mut, unused_variables)]
23940 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
23941 let mut first = true;
23942 let mut remaining = self.0;
23943 if remaining & Self::PRECEDING_EXTERNALLY_ENCODED_BYTES.0 != 0 {
23944 if !first {
23945 f.write_str(" | ")?;
23946 }
23947 f.write_str("PRECEDING_EXTERNALLY_ENCODED_BYTES")?;
23948 remaining &= !Self::PRECEDING_EXTERNALLY_ENCODED_BYTES.0;
23949 first = false;
23950 }
23951 if remaining & Self::INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION.0 != 0 {
23952 if !first {
23953 f.write_str(" | ")?;
23954 }
23955 f.write_str("INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION")?;
23956 remaining &= !Self::INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION.0;
23957 first = false;
23958 }
23959 if remaining & Self::QUANTIZATION_DELTA_MAP.0 != 0 {
23960 if !first {
23961 f.write_str(" | ")?;
23962 }
23963 f.write_str("QUANTIZATION_DELTA_MAP")?;
23964 remaining &= !Self::QUANTIZATION_DELTA_MAP.0;
23965 first = false;
23966 }
23967 if remaining & Self::EMPHASIS_MAP.0 != 0 {
23968 if !first {
23969 f.write_str(" | ")?;
23970 }
23971 f.write_str("EMPHASIS_MAP")?;
23972 remaining &= !Self::EMPHASIS_MAP.0;
23973 first = false;
23974 }
23975 if remaining != 0u32 {
23976 if !first {
23977 f.write_str(" | ")?;
23978 }
23979 write!(f, "{:#x}", remaining)?;
23980 } else if first {
23981 f.write_str("(empty)")?;
23982 }
23983 Ok(())
23984 }
23985}
23986#[repr(transparent)]
23988#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
23989#[doc(alias = "VkVideoEncodeContentFlagBitsKHR")]
23990pub struct VideoEncodeContentFlagBitsKHR(u32);
23991impl VideoEncodeContentFlagBitsKHR {
23992 #[inline]
23993 pub const fn empty() -> Self {
23994 Self(0u32)
23995 }
23996 #[inline]
23997 pub const fn from_raw(value: u32) -> Self {
23998 Self(value)
23999 }
24000 #[inline]
24001 pub const fn as_raw(self) -> u32 {
24002 self.0
24003 }
24004 #[inline]
24005 pub const fn is_empty(self) -> bool {
24006 self.0 == 0u32
24007 }
24008 #[inline]
24009 pub const fn contains(self, other: Self) -> bool {
24010 (self.0 & other.0) == other.0
24011 }
24012 #[inline]
24013 pub const fn all() -> Self {
24014 Self(7u32)
24015 }
24016 pub const DEFAULT: Self = Self(0u32);
24017 pub const CAMERA: Self = Self(1u32);
24019 pub const DESKTOP: Self = Self(2u32);
24021 pub const RENDERED: Self = Self(4u32);
24023}
24024impl core::ops::BitOr for VideoEncodeContentFlagBitsKHR {
24025 type Output = Self;
24026 #[inline]
24027 fn bitor(self, rhs: Self) -> Self {
24028 Self(self.0 | rhs.0)
24029 }
24030}
24031impl core::ops::BitOrAssign for VideoEncodeContentFlagBitsKHR {
24032 #[inline]
24033 fn bitor_assign(&mut self, rhs: Self) {
24034 self.0 |= rhs.0;
24035 }
24036}
24037impl core::ops::BitAnd for VideoEncodeContentFlagBitsKHR {
24038 type Output = Self;
24039 #[inline]
24040 fn bitand(self, rhs: Self) -> Self {
24041 Self(self.0 & rhs.0)
24042 }
24043}
24044impl core::ops::BitAndAssign for VideoEncodeContentFlagBitsKHR {
24045 #[inline]
24046 fn bitand_assign(&mut self, rhs: Self) {
24047 self.0 &= rhs.0;
24048 }
24049}
24050impl core::ops::BitXor for VideoEncodeContentFlagBitsKHR {
24051 type Output = Self;
24052 #[inline]
24053 fn bitxor(self, rhs: Self) -> Self {
24054 Self(self.0 ^ rhs.0)
24055 }
24056}
24057impl core::ops::BitXorAssign for VideoEncodeContentFlagBitsKHR {
24058 #[inline]
24059 fn bitxor_assign(&mut self, rhs: Self) {
24060 self.0 ^= rhs.0;
24061 }
24062}
24063impl core::ops::Not for VideoEncodeContentFlagBitsKHR {
24064 type Output = Self;
24065 #[inline]
24066 fn not(self) -> Self {
24067 Self(!self.0)
24068 }
24069}
24070impl core::fmt::Debug for VideoEncodeContentFlagBitsKHR {
24071 #[allow(unused_mut, unused_variables)]
24072 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24073 let mut first = true;
24074 let mut remaining = self.0;
24075 if remaining & Self::CAMERA.0 != 0 {
24076 if !first {
24077 f.write_str(" | ")?;
24078 }
24079 f.write_str("CAMERA")?;
24080 remaining &= !Self::CAMERA.0;
24081 first = false;
24082 }
24083 if remaining & Self::DESKTOP.0 != 0 {
24084 if !first {
24085 f.write_str(" | ")?;
24086 }
24087 f.write_str("DESKTOP")?;
24088 remaining &= !Self::DESKTOP.0;
24089 first = false;
24090 }
24091 if remaining & Self::RENDERED.0 != 0 {
24092 if !first {
24093 f.write_str(" | ")?;
24094 }
24095 f.write_str("RENDERED")?;
24096 remaining &= !Self::RENDERED.0;
24097 first = false;
24098 }
24099 if remaining != 0u32 {
24100 if !first {
24101 f.write_str(" | ")?;
24102 }
24103 write!(f, "{:#x}", remaining)?;
24104 } else if first {
24105 f.write_str("(empty)")?;
24106 }
24107 Ok(())
24108 }
24109}
24110#[repr(transparent)]
24112#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24113#[doc(alias = "VkVideoEncodeFeedbackFlagBitsKHR")]
24114pub struct VideoEncodeFeedbackFlagBitsKHR(u32);
24115impl VideoEncodeFeedbackFlagBitsKHR {
24116 #[inline]
24117 pub const fn empty() -> Self {
24118 Self(0u32)
24119 }
24120 #[inline]
24121 pub const fn from_raw(value: u32) -> Self {
24122 Self(value)
24123 }
24124 #[inline]
24125 pub const fn as_raw(self) -> u32 {
24126 self.0
24127 }
24128 #[inline]
24129 pub const fn is_empty(self) -> bool {
24130 self.0 == 0u32
24131 }
24132 #[inline]
24133 pub const fn contains(self, other: Self) -> bool {
24134 (self.0 & other.0) == other.0
24135 }
24136 #[inline]
24137 pub const fn all() -> Self {
24138 Self(7u32)
24139 }
24140 pub const BITSTREAM_BUFFER_OFFSET: Self = Self(1u32);
24142 pub const BITSTREAM_BYTES_WRITTEN: Self = Self(2u32);
24144 pub const BITSTREAM_HAS_OVERRIDES: Self = Self(4u32);
24146}
24147impl core::ops::BitOr for VideoEncodeFeedbackFlagBitsKHR {
24148 type Output = Self;
24149 #[inline]
24150 fn bitor(self, rhs: Self) -> Self {
24151 Self(self.0 | rhs.0)
24152 }
24153}
24154impl core::ops::BitOrAssign for VideoEncodeFeedbackFlagBitsKHR {
24155 #[inline]
24156 fn bitor_assign(&mut self, rhs: Self) {
24157 self.0 |= rhs.0;
24158 }
24159}
24160impl core::ops::BitAnd for VideoEncodeFeedbackFlagBitsKHR {
24161 type Output = Self;
24162 #[inline]
24163 fn bitand(self, rhs: Self) -> Self {
24164 Self(self.0 & rhs.0)
24165 }
24166}
24167impl core::ops::BitAndAssign for VideoEncodeFeedbackFlagBitsKHR {
24168 #[inline]
24169 fn bitand_assign(&mut self, rhs: Self) {
24170 self.0 &= rhs.0;
24171 }
24172}
24173impl core::ops::BitXor for VideoEncodeFeedbackFlagBitsKHR {
24174 type Output = Self;
24175 #[inline]
24176 fn bitxor(self, rhs: Self) -> Self {
24177 Self(self.0 ^ rhs.0)
24178 }
24179}
24180impl core::ops::BitXorAssign for VideoEncodeFeedbackFlagBitsKHR {
24181 #[inline]
24182 fn bitxor_assign(&mut self, rhs: Self) {
24183 self.0 ^= rhs.0;
24184 }
24185}
24186impl core::ops::Not for VideoEncodeFeedbackFlagBitsKHR {
24187 type Output = Self;
24188 #[inline]
24189 fn not(self) -> Self {
24190 Self(!self.0)
24191 }
24192}
24193impl core::fmt::Debug for VideoEncodeFeedbackFlagBitsKHR {
24194 #[allow(unused_mut, unused_variables)]
24195 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24196 let mut first = true;
24197 let mut remaining = self.0;
24198 if remaining & Self::BITSTREAM_BUFFER_OFFSET.0 != 0 {
24199 if !first {
24200 f.write_str(" | ")?;
24201 }
24202 f.write_str("BITSTREAM_BUFFER_OFFSET")?;
24203 remaining &= !Self::BITSTREAM_BUFFER_OFFSET.0;
24204 first = false;
24205 }
24206 if remaining & Self::BITSTREAM_BYTES_WRITTEN.0 != 0 {
24207 if !first {
24208 f.write_str(" | ")?;
24209 }
24210 f.write_str("BITSTREAM_BYTES_WRITTEN")?;
24211 remaining &= !Self::BITSTREAM_BYTES_WRITTEN.0;
24212 first = false;
24213 }
24214 if remaining & Self::BITSTREAM_HAS_OVERRIDES.0 != 0 {
24215 if !first {
24216 f.write_str(" | ")?;
24217 }
24218 f.write_str("BITSTREAM_HAS_OVERRIDES")?;
24219 remaining &= !Self::BITSTREAM_HAS_OVERRIDES.0;
24220 first = false;
24221 }
24222 if remaining != 0u32 {
24223 if !first {
24224 f.write_str(" | ")?;
24225 }
24226 write!(f, "{:#x}", remaining)?;
24227 } else if first {
24228 f.write_str("(empty)")?;
24229 }
24230 Ok(())
24231 }
24232}
24233#[repr(transparent)]
24235#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24236#[doc(alias = "VkVideoEncodeFlagBitsKHR")]
24237pub struct VideoEncodeFlagBitsKHR(u32);
24238impl VideoEncodeFlagBitsKHR {
24239 #[inline]
24240 pub const fn empty() -> Self {
24241 Self(0u32)
24242 }
24243 #[inline]
24244 pub const fn from_raw(value: u32) -> Self {
24245 Self(value)
24246 }
24247 #[inline]
24248 pub const fn as_raw(self) -> u32 {
24249 self.0
24250 }
24251 #[inline]
24252 pub const fn is_empty(self) -> bool {
24253 self.0 == 0u32
24254 }
24255 #[inline]
24256 pub const fn contains(self, other: Self) -> bool {
24257 (self.0 & other.0) == other.0
24258 }
24259 #[inline]
24260 pub const fn all() -> Self {
24261 Self(7u32)
24262 }
24263 pub const INTRA_REFRESH: Self = Self(4u32);
24265 pub const WITH_QUANTIZATION_DELTA_MAP: Self = Self(1u32);
24267 pub const WITH_EMPHASIS_MAP: Self = Self(2u32);
24269}
24270impl core::ops::BitOr for VideoEncodeFlagBitsKHR {
24271 type Output = Self;
24272 #[inline]
24273 fn bitor(self, rhs: Self) -> Self {
24274 Self(self.0 | rhs.0)
24275 }
24276}
24277impl core::ops::BitOrAssign for VideoEncodeFlagBitsKHR {
24278 #[inline]
24279 fn bitor_assign(&mut self, rhs: Self) {
24280 self.0 |= rhs.0;
24281 }
24282}
24283impl core::ops::BitAnd for VideoEncodeFlagBitsKHR {
24284 type Output = Self;
24285 #[inline]
24286 fn bitand(self, rhs: Self) -> Self {
24287 Self(self.0 & rhs.0)
24288 }
24289}
24290impl core::ops::BitAndAssign for VideoEncodeFlagBitsKHR {
24291 #[inline]
24292 fn bitand_assign(&mut self, rhs: Self) {
24293 self.0 &= rhs.0;
24294 }
24295}
24296impl core::ops::BitXor for VideoEncodeFlagBitsKHR {
24297 type Output = Self;
24298 #[inline]
24299 fn bitxor(self, rhs: Self) -> Self {
24300 Self(self.0 ^ rhs.0)
24301 }
24302}
24303impl core::ops::BitXorAssign for VideoEncodeFlagBitsKHR {
24304 #[inline]
24305 fn bitxor_assign(&mut self, rhs: Self) {
24306 self.0 ^= rhs.0;
24307 }
24308}
24309impl core::ops::Not for VideoEncodeFlagBitsKHR {
24310 type Output = Self;
24311 #[inline]
24312 fn not(self) -> Self {
24313 Self(!self.0)
24314 }
24315}
24316impl core::fmt::Debug for VideoEncodeFlagBitsKHR {
24317 #[allow(unused_mut, unused_variables)]
24318 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24319 let mut first = true;
24320 let mut remaining = self.0;
24321 if remaining & Self::INTRA_REFRESH.0 != 0 {
24322 if !first {
24323 f.write_str(" | ")?;
24324 }
24325 f.write_str("INTRA_REFRESH")?;
24326 remaining &= !Self::INTRA_REFRESH.0;
24327 first = false;
24328 }
24329 if remaining & Self::WITH_QUANTIZATION_DELTA_MAP.0 != 0 {
24330 if !first {
24331 f.write_str(" | ")?;
24332 }
24333 f.write_str("WITH_QUANTIZATION_DELTA_MAP")?;
24334 remaining &= !Self::WITH_QUANTIZATION_DELTA_MAP.0;
24335 first = false;
24336 }
24337 if remaining & Self::WITH_EMPHASIS_MAP.0 != 0 {
24338 if !first {
24339 f.write_str(" | ")?;
24340 }
24341 f.write_str("WITH_EMPHASIS_MAP")?;
24342 remaining &= !Self::WITH_EMPHASIS_MAP.0;
24343 first = false;
24344 }
24345 if remaining != 0u32 {
24346 if !first {
24347 f.write_str(" | ")?;
24348 }
24349 write!(f, "{:#x}", remaining)?;
24350 } else if first {
24351 f.write_str("(empty)")?;
24352 }
24353 Ok(())
24354 }
24355}
24356#[repr(transparent)]
24358#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24359#[doc(alias = "VkVideoEncodeH264CapabilityFlagBitsKHR")]
24360pub struct VideoEncodeH264CapabilityFlagBitsKHR(u32);
24361impl VideoEncodeH264CapabilityFlagBitsKHR {
24362 #[inline]
24363 pub const fn empty() -> Self {
24364 Self(0u32)
24365 }
24366 #[inline]
24367 pub const fn from_raw(value: u32) -> Self {
24368 Self(value)
24369 }
24370 #[inline]
24371 pub const fn as_raw(self) -> u32 {
24372 self.0
24373 }
24374 #[inline]
24375 pub const fn is_empty(self) -> bool {
24376 self.0 == 0u32
24377 }
24378 #[inline]
24379 pub const fn contains(self, other: Self) -> bool {
24380 (self.0 & other.0) == other.0
24381 }
24382 #[inline]
24383 pub const fn all() -> Self {
24384 Self(2047u32)
24385 }
24386 pub const HRD_COMPLIANCE: Self = Self(1u32);
24388 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(2u32);
24390 pub const ROW_UNALIGNED_SLICE: Self = Self(4u32);
24392 pub const DIFFERENT_SLICE_TYPE: Self = Self(8u32);
24394 pub const B_FRAME_IN_L0_LIST: Self = Self(16u32);
24396 pub const B_FRAME_IN_L1_LIST: Self = Self(32u32);
24398 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(64u32);
24400 pub const PER_SLICE_CONSTANT_QP: Self = Self(128u32);
24402 pub const GENERATE_PREFIX_NALU: Self = Self(256u32);
24404 pub const B_PICTURE_INTRA_REFRESH: Self = Self(1024u32);
24406 pub const MB_QP_DIFF_WRAPAROUND: Self = Self(512u32);
24408}
24409impl core::ops::BitOr for VideoEncodeH264CapabilityFlagBitsKHR {
24410 type Output = Self;
24411 #[inline]
24412 fn bitor(self, rhs: Self) -> Self {
24413 Self(self.0 | rhs.0)
24414 }
24415}
24416impl core::ops::BitOrAssign for VideoEncodeH264CapabilityFlagBitsKHR {
24417 #[inline]
24418 fn bitor_assign(&mut self, rhs: Self) {
24419 self.0 |= rhs.0;
24420 }
24421}
24422impl core::ops::BitAnd for VideoEncodeH264CapabilityFlagBitsKHR {
24423 type Output = Self;
24424 #[inline]
24425 fn bitand(self, rhs: Self) -> Self {
24426 Self(self.0 & rhs.0)
24427 }
24428}
24429impl core::ops::BitAndAssign for VideoEncodeH264CapabilityFlagBitsKHR {
24430 #[inline]
24431 fn bitand_assign(&mut self, rhs: Self) {
24432 self.0 &= rhs.0;
24433 }
24434}
24435impl core::ops::BitXor for VideoEncodeH264CapabilityFlagBitsKHR {
24436 type Output = Self;
24437 #[inline]
24438 fn bitxor(self, rhs: Self) -> Self {
24439 Self(self.0 ^ rhs.0)
24440 }
24441}
24442impl core::ops::BitXorAssign for VideoEncodeH264CapabilityFlagBitsKHR {
24443 #[inline]
24444 fn bitxor_assign(&mut self, rhs: Self) {
24445 self.0 ^= rhs.0;
24446 }
24447}
24448impl core::ops::Not for VideoEncodeH264CapabilityFlagBitsKHR {
24449 type Output = Self;
24450 #[inline]
24451 fn not(self) -> Self {
24452 Self(!self.0)
24453 }
24454}
24455impl core::fmt::Debug for VideoEncodeH264CapabilityFlagBitsKHR {
24456 #[allow(unused_mut, unused_variables)]
24457 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24458 let mut first = true;
24459 let mut remaining = self.0;
24460 if remaining & Self::HRD_COMPLIANCE.0 != 0 {
24461 if !first {
24462 f.write_str(" | ")?;
24463 }
24464 f.write_str("HRD_COMPLIANCE")?;
24465 remaining &= !Self::HRD_COMPLIANCE.0;
24466 first = false;
24467 }
24468 if remaining & Self::PREDICTION_WEIGHT_TABLE_GENERATED.0 != 0 {
24469 if !first {
24470 f.write_str(" | ")?;
24471 }
24472 f.write_str("PREDICTION_WEIGHT_TABLE_GENERATED")?;
24473 remaining &= !Self::PREDICTION_WEIGHT_TABLE_GENERATED.0;
24474 first = false;
24475 }
24476 if remaining & Self::ROW_UNALIGNED_SLICE.0 != 0 {
24477 if !first {
24478 f.write_str(" | ")?;
24479 }
24480 f.write_str("ROW_UNALIGNED_SLICE")?;
24481 remaining &= !Self::ROW_UNALIGNED_SLICE.0;
24482 first = false;
24483 }
24484 if remaining & Self::DIFFERENT_SLICE_TYPE.0 != 0 {
24485 if !first {
24486 f.write_str(" | ")?;
24487 }
24488 f.write_str("DIFFERENT_SLICE_TYPE")?;
24489 remaining &= !Self::DIFFERENT_SLICE_TYPE.0;
24490 first = false;
24491 }
24492 if remaining & Self::B_FRAME_IN_L0_LIST.0 != 0 {
24493 if !first {
24494 f.write_str(" | ")?;
24495 }
24496 f.write_str("B_FRAME_IN_L0_LIST")?;
24497 remaining &= !Self::B_FRAME_IN_L0_LIST.0;
24498 first = false;
24499 }
24500 if remaining & Self::B_FRAME_IN_L1_LIST.0 != 0 {
24501 if !first {
24502 f.write_str(" | ")?;
24503 }
24504 f.write_str("B_FRAME_IN_L1_LIST")?;
24505 remaining &= !Self::B_FRAME_IN_L1_LIST.0;
24506 first = false;
24507 }
24508 if remaining & Self::PER_PICTURE_TYPE_MIN_MAX_QP.0 != 0 {
24509 if !first {
24510 f.write_str(" | ")?;
24511 }
24512 f.write_str("PER_PICTURE_TYPE_MIN_MAX_QP")?;
24513 remaining &= !Self::PER_PICTURE_TYPE_MIN_MAX_QP.0;
24514 first = false;
24515 }
24516 if remaining & Self::PER_SLICE_CONSTANT_QP.0 != 0 {
24517 if !first {
24518 f.write_str(" | ")?;
24519 }
24520 f.write_str("PER_SLICE_CONSTANT_QP")?;
24521 remaining &= !Self::PER_SLICE_CONSTANT_QP.0;
24522 first = false;
24523 }
24524 if remaining & Self::GENERATE_PREFIX_NALU.0 != 0 {
24525 if !first {
24526 f.write_str(" | ")?;
24527 }
24528 f.write_str("GENERATE_PREFIX_NALU")?;
24529 remaining &= !Self::GENERATE_PREFIX_NALU.0;
24530 first = false;
24531 }
24532 if remaining & Self::B_PICTURE_INTRA_REFRESH.0 != 0 {
24533 if !first {
24534 f.write_str(" | ")?;
24535 }
24536 f.write_str("B_PICTURE_INTRA_REFRESH")?;
24537 remaining &= !Self::B_PICTURE_INTRA_REFRESH.0;
24538 first = false;
24539 }
24540 if remaining & Self::MB_QP_DIFF_WRAPAROUND.0 != 0 {
24541 if !first {
24542 f.write_str(" | ")?;
24543 }
24544 f.write_str("MB_QP_DIFF_WRAPAROUND")?;
24545 remaining &= !Self::MB_QP_DIFF_WRAPAROUND.0;
24546 first = false;
24547 }
24548 if remaining != 0u32 {
24549 if !first {
24550 f.write_str(" | ")?;
24551 }
24552 write!(f, "{:#x}", remaining)?;
24553 } else if first {
24554 f.write_str("(empty)")?;
24555 }
24556 Ok(())
24557 }
24558}
24559#[repr(transparent)]
24561#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24562#[doc(alias = "VkVideoEncodeH264RateControlFlagBitsKHR")]
24563pub struct VideoEncodeH264RateControlFlagBitsKHR(u32);
24564impl VideoEncodeH264RateControlFlagBitsKHR {
24565 #[inline]
24566 pub const fn empty() -> Self {
24567 Self(0u32)
24568 }
24569 #[inline]
24570 pub const fn from_raw(value: u32) -> Self {
24571 Self(value)
24572 }
24573 #[inline]
24574 pub const fn as_raw(self) -> u32 {
24575 self.0
24576 }
24577 #[inline]
24578 pub const fn is_empty(self) -> bool {
24579 self.0 == 0u32
24580 }
24581 #[inline]
24582 pub const fn contains(self, other: Self) -> bool {
24583 (self.0 & other.0) == other.0
24584 }
24585 #[inline]
24586 pub const fn all() -> Self {
24587 Self(31u32)
24588 }
24589 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(1u32);
24591 pub const REGULAR_GOP: Self = Self(2u32);
24593 pub const REFERENCE_PATTERN_FLAT: Self = Self(4u32);
24595 pub const REFERENCE_PATTERN_DYADIC: Self = Self(8u32);
24597 pub const TEMPORAL_LAYER_PATTERN_DYADIC: Self = Self(16u32);
24599}
24600impl core::ops::BitOr for VideoEncodeH264RateControlFlagBitsKHR {
24601 type Output = Self;
24602 #[inline]
24603 fn bitor(self, rhs: Self) -> Self {
24604 Self(self.0 | rhs.0)
24605 }
24606}
24607impl core::ops::BitOrAssign for VideoEncodeH264RateControlFlagBitsKHR {
24608 #[inline]
24609 fn bitor_assign(&mut self, rhs: Self) {
24610 self.0 |= rhs.0;
24611 }
24612}
24613impl core::ops::BitAnd for VideoEncodeH264RateControlFlagBitsKHR {
24614 type Output = Self;
24615 #[inline]
24616 fn bitand(self, rhs: Self) -> Self {
24617 Self(self.0 & rhs.0)
24618 }
24619}
24620impl core::ops::BitAndAssign for VideoEncodeH264RateControlFlagBitsKHR {
24621 #[inline]
24622 fn bitand_assign(&mut self, rhs: Self) {
24623 self.0 &= rhs.0;
24624 }
24625}
24626impl core::ops::BitXor for VideoEncodeH264RateControlFlagBitsKHR {
24627 type Output = Self;
24628 #[inline]
24629 fn bitxor(self, rhs: Self) -> Self {
24630 Self(self.0 ^ rhs.0)
24631 }
24632}
24633impl core::ops::BitXorAssign for VideoEncodeH264RateControlFlagBitsKHR {
24634 #[inline]
24635 fn bitxor_assign(&mut self, rhs: Self) {
24636 self.0 ^= rhs.0;
24637 }
24638}
24639impl core::ops::Not for VideoEncodeH264RateControlFlagBitsKHR {
24640 type Output = Self;
24641 #[inline]
24642 fn not(self) -> Self {
24643 Self(!self.0)
24644 }
24645}
24646impl core::fmt::Debug for VideoEncodeH264RateControlFlagBitsKHR {
24647 #[allow(unused_mut, unused_variables)]
24648 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24649 let mut first = true;
24650 let mut remaining = self.0;
24651 if remaining & Self::ATTEMPT_HRD_COMPLIANCE.0 != 0 {
24652 if !first {
24653 f.write_str(" | ")?;
24654 }
24655 f.write_str("ATTEMPT_HRD_COMPLIANCE")?;
24656 remaining &= !Self::ATTEMPT_HRD_COMPLIANCE.0;
24657 first = false;
24658 }
24659 if remaining & Self::REGULAR_GOP.0 != 0 {
24660 if !first {
24661 f.write_str(" | ")?;
24662 }
24663 f.write_str("REGULAR_GOP")?;
24664 remaining &= !Self::REGULAR_GOP.0;
24665 first = false;
24666 }
24667 if remaining & Self::REFERENCE_PATTERN_FLAT.0 != 0 {
24668 if !first {
24669 f.write_str(" | ")?;
24670 }
24671 f.write_str("REFERENCE_PATTERN_FLAT")?;
24672 remaining &= !Self::REFERENCE_PATTERN_FLAT.0;
24673 first = false;
24674 }
24675 if remaining & Self::REFERENCE_PATTERN_DYADIC.0 != 0 {
24676 if !first {
24677 f.write_str(" | ")?;
24678 }
24679 f.write_str("REFERENCE_PATTERN_DYADIC")?;
24680 remaining &= !Self::REFERENCE_PATTERN_DYADIC.0;
24681 first = false;
24682 }
24683 if remaining & Self::TEMPORAL_LAYER_PATTERN_DYADIC.0 != 0 {
24684 if !first {
24685 f.write_str(" | ")?;
24686 }
24687 f.write_str("TEMPORAL_LAYER_PATTERN_DYADIC")?;
24688 remaining &= !Self::TEMPORAL_LAYER_PATTERN_DYADIC.0;
24689 first = false;
24690 }
24691 if remaining != 0u32 {
24692 if !first {
24693 f.write_str(" | ")?;
24694 }
24695 write!(f, "{:#x}", remaining)?;
24696 } else if first {
24697 f.write_str("(empty)")?;
24698 }
24699 Ok(())
24700 }
24701}
24702#[repr(transparent)]
24704#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24705#[doc(alias = "VkVideoEncodeH264StdFlagBitsKHR")]
24706pub struct VideoEncodeH264StdFlagBitsKHR(u32);
24707impl VideoEncodeH264StdFlagBitsKHR {
24708 #[inline]
24709 pub const fn empty() -> Self {
24710 Self(0u32)
24711 }
24712 #[inline]
24713 pub const fn from_raw(value: u32) -> Self {
24714 Self(value)
24715 }
24716 #[inline]
24717 pub const fn as_raw(self) -> u32 {
24718 self.0
24719 }
24720 #[inline]
24721 pub const fn is_empty(self) -> bool {
24722 self.0 == 0u32
24723 }
24724 #[inline]
24725 pub const fn contains(self, other: Self) -> bool {
24726 (self.0 & other.0) == other.0
24727 }
24728 #[inline]
24729 pub const fn all() -> Self {
24730 Self(1835007u32)
24731 }
24732 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(1u32);
24734 pub const QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET: Self = Self(2u32);
24736 pub const SCALING_MATRIX_PRESENT_FLAG_SET: Self = Self(4u32);
24738 pub const CHROMA_QP_INDEX_OFFSET: Self = Self(8u32);
24740 pub const SECOND_CHROMA_QP_INDEX_OFFSET: Self = Self(16u32);
24742 pub const PIC_INIT_QP_MINUS26: Self = Self(32u32);
24744 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(64u32);
24746 pub const WEIGHTED_BIPRED_IDC_EXPLICIT: Self = Self(128u32);
24748 pub const WEIGHTED_BIPRED_IDC_IMPLICIT: Self = Self(256u32);
24750 pub const TRANSFORM_8X8_MODE_FLAG_SET: Self = Self(512u32);
24752 pub const DIRECT_SPATIAL_MV_PRED_FLAG_UNSET: Self = Self(1024u32);
24754 pub const ENTROPY_CODING_MODE_FLAG_UNSET: Self = Self(2048u32);
24756 pub const ENTROPY_CODING_MODE_FLAG_SET: Self = Self(4096u32);
24758 pub const DIRECT_8X8_INFERENCE_FLAG_UNSET: Self = Self(8192u32);
24760 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(16384u32);
24762 pub const DEBLOCKING_FILTER_DISABLED: Self = Self(32768u32);
24764 pub const DEBLOCKING_FILTER_ENABLED: Self = Self(65536u32);
24766 pub const DEBLOCKING_FILTER_PARTIAL: Self = Self(131072u32);
24768 pub const SLICE_QP_DELTA: Self = Self(524288u32);
24770 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(1048576u32);
24772}
24773impl core::ops::BitOr for VideoEncodeH264StdFlagBitsKHR {
24774 type Output = Self;
24775 #[inline]
24776 fn bitor(self, rhs: Self) -> Self {
24777 Self(self.0 | rhs.0)
24778 }
24779}
24780impl core::ops::BitOrAssign for VideoEncodeH264StdFlagBitsKHR {
24781 #[inline]
24782 fn bitor_assign(&mut self, rhs: Self) {
24783 self.0 |= rhs.0;
24784 }
24785}
24786impl core::ops::BitAnd for VideoEncodeH264StdFlagBitsKHR {
24787 type Output = Self;
24788 #[inline]
24789 fn bitand(self, rhs: Self) -> Self {
24790 Self(self.0 & rhs.0)
24791 }
24792}
24793impl core::ops::BitAndAssign for VideoEncodeH264StdFlagBitsKHR {
24794 #[inline]
24795 fn bitand_assign(&mut self, rhs: Self) {
24796 self.0 &= rhs.0;
24797 }
24798}
24799impl core::ops::BitXor for VideoEncodeH264StdFlagBitsKHR {
24800 type Output = Self;
24801 #[inline]
24802 fn bitxor(self, rhs: Self) -> Self {
24803 Self(self.0 ^ rhs.0)
24804 }
24805}
24806impl core::ops::BitXorAssign for VideoEncodeH264StdFlagBitsKHR {
24807 #[inline]
24808 fn bitxor_assign(&mut self, rhs: Self) {
24809 self.0 ^= rhs.0;
24810 }
24811}
24812impl core::ops::Not for VideoEncodeH264StdFlagBitsKHR {
24813 type Output = Self;
24814 #[inline]
24815 fn not(self) -> Self {
24816 Self(!self.0)
24817 }
24818}
24819impl core::fmt::Debug for VideoEncodeH264StdFlagBitsKHR {
24820 #[allow(unused_mut, unused_variables)]
24821 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
24822 let mut first = true;
24823 let mut remaining = self.0;
24824 if remaining & Self::SEPARATE_COLOR_PLANE_FLAG_SET.0 != 0 {
24825 if !first {
24826 f.write_str(" | ")?;
24827 }
24828 f.write_str("SEPARATE_COLOR_PLANE_FLAG_SET")?;
24829 remaining &= !Self::SEPARATE_COLOR_PLANE_FLAG_SET.0;
24830 first = false;
24831 }
24832 if remaining & Self::QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET.0 != 0 {
24833 if !first {
24834 f.write_str(" | ")?;
24835 }
24836 f.write_str("QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET")?;
24837 remaining &= !Self::QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET.0;
24838 first = false;
24839 }
24840 if remaining & Self::SCALING_MATRIX_PRESENT_FLAG_SET.0 != 0 {
24841 if !first {
24842 f.write_str(" | ")?;
24843 }
24844 f.write_str("SCALING_MATRIX_PRESENT_FLAG_SET")?;
24845 remaining &= !Self::SCALING_MATRIX_PRESENT_FLAG_SET.0;
24846 first = false;
24847 }
24848 if remaining & Self::CHROMA_QP_INDEX_OFFSET.0 != 0 {
24849 if !first {
24850 f.write_str(" | ")?;
24851 }
24852 f.write_str("CHROMA_QP_INDEX_OFFSET")?;
24853 remaining &= !Self::CHROMA_QP_INDEX_OFFSET.0;
24854 first = false;
24855 }
24856 if remaining & Self::SECOND_CHROMA_QP_INDEX_OFFSET.0 != 0 {
24857 if !first {
24858 f.write_str(" | ")?;
24859 }
24860 f.write_str("SECOND_CHROMA_QP_INDEX_OFFSET")?;
24861 remaining &= !Self::SECOND_CHROMA_QP_INDEX_OFFSET.0;
24862 first = false;
24863 }
24864 if remaining & Self::PIC_INIT_QP_MINUS26.0 != 0 {
24865 if !first {
24866 f.write_str(" | ")?;
24867 }
24868 f.write_str("PIC_INIT_QP_MINUS26")?;
24869 remaining &= !Self::PIC_INIT_QP_MINUS26.0;
24870 first = false;
24871 }
24872 if remaining & Self::WEIGHTED_PRED_FLAG_SET.0 != 0 {
24873 if !first {
24874 f.write_str(" | ")?;
24875 }
24876 f.write_str("WEIGHTED_PRED_FLAG_SET")?;
24877 remaining &= !Self::WEIGHTED_PRED_FLAG_SET.0;
24878 first = false;
24879 }
24880 if remaining & Self::WEIGHTED_BIPRED_IDC_EXPLICIT.0 != 0 {
24881 if !first {
24882 f.write_str(" | ")?;
24883 }
24884 f.write_str("WEIGHTED_BIPRED_IDC_EXPLICIT")?;
24885 remaining &= !Self::WEIGHTED_BIPRED_IDC_EXPLICIT.0;
24886 first = false;
24887 }
24888 if remaining & Self::WEIGHTED_BIPRED_IDC_IMPLICIT.0 != 0 {
24889 if !first {
24890 f.write_str(" | ")?;
24891 }
24892 f.write_str("WEIGHTED_BIPRED_IDC_IMPLICIT")?;
24893 remaining &= !Self::WEIGHTED_BIPRED_IDC_IMPLICIT.0;
24894 first = false;
24895 }
24896 if remaining & Self::TRANSFORM_8X8_MODE_FLAG_SET.0 != 0 {
24897 if !first {
24898 f.write_str(" | ")?;
24899 }
24900 f.write_str("TRANSFORM_8X8_MODE_FLAG_SET")?;
24901 remaining &= !Self::TRANSFORM_8X8_MODE_FLAG_SET.0;
24902 first = false;
24903 }
24904 if remaining & Self::DIRECT_SPATIAL_MV_PRED_FLAG_UNSET.0 != 0 {
24905 if !first {
24906 f.write_str(" | ")?;
24907 }
24908 f.write_str("DIRECT_SPATIAL_MV_PRED_FLAG_UNSET")?;
24909 remaining &= !Self::DIRECT_SPATIAL_MV_PRED_FLAG_UNSET.0;
24910 first = false;
24911 }
24912 if remaining & Self::ENTROPY_CODING_MODE_FLAG_UNSET.0 != 0 {
24913 if !first {
24914 f.write_str(" | ")?;
24915 }
24916 f.write_str("ENTROPY_CODING_MODE_FLAG_UNSET")?;
24917 remaining &= !Self::ENTROPY_CODING_MODE_FLAG_UNSET.0;
24918 first = false;
24919 }
24920 if remaining & Self::ENTROPY_CODING_MODE_FLAG_SET.0 != 0 {
24921 if !first {
24922 f.write_str(" | ")?;
24923 }
24924 f.write_str("ENTROPY_CODING_MODE_FLAG_SET")?;
24925 remaining &= !Self::ENTROPY_CODING_MODE_FLAG_SET.0;
24926 first = false;
24927 }
24928 if remaining & Self::DIRECT_8X8_INFERENCE_FLAG_UNSET.0 != 0 {
24929 if !first {
24930 f.write_str(" | ")?;
24931 }
24932 f.write_str("DIRECT_8X8_INFERENCE_FLAG_UNSET")?;
24933 remaining &= !Self::DIRECT_8X8_INFERENCE_FLAG_UNSET.0;
24934 first = false;
24935 }
24936 if remaining & Self::CONSTRAINED_INTRA_PRED_FLAG_SET.0 != 0 {
24937 if !first {
24938 f.write_str(" | ")?;
24939 }
24940 f.write_str("CONSTRAINED_INTRA_PRED_FLAG_SET")?;
24941 remaining &= !Self::CONSTRAINED_INTRA_PRED_FLAG_SET.0;
24942 first = false;
24943 }
24944 if remaining & Self::DEBLOCKING_FILTER_DISABLED.0 != 0 {
24945 if !first {
24946 f.write_str(" | ")?;
24947 }
24948 f.write_str("DEBLOCKING_FILTER_DISABLED")?;
24949 remaining &= !Self::DEBLOCKING_FILTER_DISABLED.0;
24950 first = false;
24951 }
24952 if remaining & Self::DEBLOCKING_FILTER_ENABLED.0 != 0 {
24953 if !first {
24954 f.write_str(" | ")?;
24955 }
24956 f.write_str("DEBLOCKING_FILTER_ENABLED")?;
24957 remaining &= !Self::DEBLOCKING_FILTER_ENABLED.0;
24958 first = false;
24959 }
24960 if remaining & Self::DEBLOCKING_FILTER_PARTIAL.0 != 0 {
24961 if !first {
24962 f.write_str(" | ")?;
24963 }
24964 f.write_str("DEBLOCKING_FILTER_PARTIAL")?;
24965 remaining &= !Self::DEBLOCKING_FILTER_PARTIAL.0;
24966 first = false;
24967 }
24968 if remaining & Self::SLICE_QP_DELTA.0 != 0 {
24969 if !first {
24970 f.write_str(" | ")?;
24971 }
24972 f.write_str("SLICE_QP_DELTA")?;
24973 remaining &= !Self::SLICE_QP_DELTA.0;
24974 first = false;
24975 }
24976 if remaining & Self::DIFFERENT_SLICE_QP_DELTA.0 != 0 {
24977 if !first {
24978 f.write_str(" | ")?;
24979 }
24980 f.write_str("DIFFERENT_SLICE_QP_DELTA")?;
24981 remaining &= !Self::DIFFERENT_SLICE_QP_DELTA.0;
24982 first = false;
24983 }
24984 if remaining != 0u32 {
24985 if !first {
24986 f.write_str(" | ")?;
24987 }
24988 write!(f, "{:#x}", remaining)?;
24989 } else if first {
24990 f.write_str("(empty)")?;
24991 }
24992 Ok(())
24993 }
24994}
24995#[repr(transparent)]
24997#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
24998#[doc(alias = "VkVideoEncodeH265CapabilityFlagBitsKHR")]
24999pub struct VideoEncodeH265CapabilityFlagBitsKHR(u32);
25000impl VideoEncodeH265CapabilityFlagBitsKHR {
25001 #[inline]
25002 pub const fn empty() -> Self {
25003 Self(0u32)
25004 }
25005 #[inline]
25006 pub const fn from_raw(value: u32) -> Self {
25007 Self(value)
25008 }
25009 #[inline]
25010 pub const fn as_raw(self) -> u32 {
25011 self.0
25012 }
25013 #[inline]
25014 pub const fn is_empty(self) -> bool {
25015 self.0 == 0u32
25016 }
25017 #[inline]
25018 pub const fn contains(self, other: Self) -> bool {
25019 (self.0 & other.0) == other.0
25020 }
25021 #[inline]
25022 pub const fn all() -> Self {
25023 Self(4095u32)
25024 }
25025 pub const HRD_COMPLIANCE: Self = Self(1u32);
25027 pub const PREDICTION_WEIGHT_TABLE_GENERATED: Self = Self(2u32);
25029 pub const ROW_UNALIGNED_SLICE_SEGMENT: Self = Self(4u32);
25031 pub const DIFFERENT_SLICE_SEGMENT_TYPE: Self = Self(8u32);
25033 pub const B_FRAME_IN_L0_LIST: Self = Self(16u32);
25035 pub const B_FRAME_IN_L1_LIST: Self = Self(32u32);
25037 pub const PER_PICTURE_TYPE_MIN_MAX_QP: Self = Self(64u32);
25039 pub const PER_SLICE_SEGMENT_CONSTANT_QP: Self = Self(128u32);
25041 pub const MULTIPLE_TILES_PER_SLICE_SEGMENT: Self = Self(256u32);
25043 pub const MULTIPLE_SLICE_SEGMENTS_PER_TILE: Self = Self(512u32);
25045 pub const B_PICTURE_INTRA_REFRESH: Self = Self(2048u32);
25047 pub const CU_QP_DIFF_WRAPAROUND: Self = Self(1024u32);
25049}
25050impl core::ops::BitOr for VideoEncodeH265CapabilityFlagBitsKHR {
25051 type Output = Self;
25052 #[inline]
25053 fn bitor(self, rhs: Self) -> Self {
25054 Self(self.0 | rhs.0)
25055 }
25056}
25057impl core::ops::BitOrAssign for VideoEncodeH265CapabilityFlagBitsKHR {
25058 #[inline]
25059 fn bitor_assign(&mut self, rhs: Self) {
25060 self.0 |= rhs.0;
25061 }
25062}
25063impl core::ops::BitAnd for VideoEncodeH265CapabilityFlagBitsKHR {
25064 type Output = Self;
25065 #[inline]
25066 fn bitand(self, rhs: Self) -> Self {
25067 Self(self.0 & rhs.0)
25068 }
25069}
25070impl core::ops::BitAndAssign for VideoEncodeH265CapabilityFlagBitsKHR {
25071 #[inline]
25072 fn bitand_assign(&mut self, rhs: Self) {
25073 self.0 &= rhs.0;
25074 }
25075}
25076impl core::ops::BitXor for VideoEncodeH265CapabilityFlagBitsKHR {
25077 type Output = Self;
25078 #[inline]
25079 fn bitxor(self, rhs: Self) -> Self {
25080 Self(self.0 ^ rhs.0)
25081 }
25082}
25083impl core::ops::BitXorAssign for VideoEncodeH265CapabilityFlagBitsKHR {
25084 #[inline]
25085 fn bitxor_assign(&mut self, rhs: Self) {
25086 self.0 ^= rhs.0;
25087 }
25088}
25089impl core::ops::Not for VideoEncodeH265CapabilityFlagBitsKHR {
25090 type Output = Self;
25091 #[inline]
25092 fn not(self) -> Self {
25093 Self(!self.0)
25094 }
25095}
25096impl core::fmt::Debug for VideoEncodeH265CapabilityFlagBitsKHR {
25097 #[allow(unused_mut, unused_variables)]
25098 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25099 let mut first = true;
25100 let mut remaining = self.0;
25101 if remaining & Self::HRD_COMPLIANCE.0 != 0 {
25102 if !first {
25103 f.write_str(" | ")?;
25104 }
25105 f.write_str("HRD_COMPLIANCE")?;
25106 remaining &= !Self::HRD_COMPLIANCE.0;
25107 first = false;
25108 }
25109 if remaining & Self::PREDICTION_WEIGHT_TABLE_GENERATED.0 != 0 {
25110 if !first {
25111 f.write_str(" | ")?;
25112 }
25113 f.write_str("PREDICTION_WEIGHT_TABLE_GENERATED")?;
25114 remaining &= !Self::PREDICTION_WEIGHT_TABLE_GENERATED.0;
25115 first = false;
25116 }
25117 if remaining & Self::ROW_UNALIGNED_SLICE_SEGMENT.0 != 0 {
25118 if !first {
25119 f.write_str(" | ")?;
25120 }
25121 f.write_str("ROW_UNALIGNED_SLICE_SEGMENT")?;
25122 remaining &= !Self::ROW_UNALIGNED_SLICE_SEGMENT.0;
25123 first = false;
25124 }
25125 if remaining & Self::DIFFERENT_SLICE_SEGMENT_TYPE.0 != 0 {
25126 if !first {
25127 f.write_str(" | ")?;
25128 }
25129 f.write_str("DIFFERENT_SLICE_SEGMENT_TYPE")?;
25130 remaining &= !Self::DIFFERENT_SLICE_SEGMENT_TYPE.0;
25131 first = false;
25132 }
25133 if remaining & Self::B_FRAME_IN_L0_LIST.0 != 0 {
25134 if !first {
25135 f.write_str(" | ")?;
25136 }
25137 f.write_str("B_FRAME_IN_L0_LIST")?;
25138 remaining &= !Self::B_FRAME_IN_L0_LIST.0;
25139 first = false;
25140 }
25141 if remaining & Self::B_FRAME_IN_L1_LIST.0 != 0 {
25142 if !first {
25143 f.write_str(" | ")?;
25144 }
25145 f.write_str("B_FRAME_IN_L1_LIST")?;
25146 remaining &= !Self::B_FRAME_IN_L1_LIST.0;
25147 first = false;
25148 }
25149 if remaining & Self::PER_PICTURE_TYPE_MIN_MAX_QP.0 != 0 {
25150 if !first {
25151 f.write_str(" | ")?;
25152 }
25153 f.write_str("PER_PICTURE_TYPE_MIN_MAX_QP")?;
25154 remaining &= !Self::PER_PICTURE_TYPE_MIN_MAX_QP.0;
25155 first = false;
25156 }
25157 if remaining & Self::PER_SLICE_SEGMENT_CONSTANT_QP.0 != 0 {
25158 if !first {
25159 f.write_str(" | ")?;
25160 }
25161 f.write_str("PER_SLICE_SEGMENT_CONSTANT_QP")?;
25162 remaining &= !Self::PER_SLICE_SEGMENT_CONSTANT_QP.0;
25163 first = false;
25164 }
25165 if remaining & Self::MULTIPLE_TILES_PER_SLICE_SEGMENT.0 != 0 {
25166 if !first {
25167 f.write_str(" | ")?;
25168 }
25169 f.write_str("MULTIPLE_TILES_PER_SLICE_SEGMENT")?;
25170 remaining &= !Self::MULTIPLE_TILES_PER_SLICE_SEGMENT.0;
25171 first = false;
25172 }
25173 if remaining & Self::MULTIPLE_SLICE_SEGMENTS_PER_TILE.0 != 0 {
25174 if !first {
25175 f.write_str(" | ")?;
25176 }
25177 f.write_str("MULTIPLE_SLICE_SEGMENTS_PER_TILE")?;
25178 remaining &= !Self::MULTIPLE_SLICE_SEGMENTS_PER_TILE.0;
25179 first = false;
25180 }
25181 if remaining & Self::B_PICTURE_INTRA_REFRESH.0 != 0 {
25182 if !first {
25183 f.write_str(" | ")?;
25184 }
25185 f.write_str("B_PICTURE_INTRA_REFRESH")?;
25186 remaining &= !Self::B_PICTURE_INTRA_REFRESH.0;
25187 first = false;
25188 }
25189 if remaining & Self::CU_QP_DIFF_WRAPAROUND.0 != 0 {
25190 if !first {
25191 f.write_str(" | ")?;
25192 }
25193 f.write_str("CU_QP_DIFF_WRAPAROUND")?;
25194 remaining &= !Self::CU_QP_DIFF_WRAPAROUND.0;
25195 first = false;
25196 }
25197 if remaining != 0u32 {
25198 if !first {
25199 f.write_str(" | ")?;
25200 }
25201 write!(f, "{:#x}", remaining)?;
25202 } else if first {
25203 f.write_str("(empty)")?;
25204 }
25205 Ok(())
25206 }
25207}
25208#[repr(transparent)]
25210#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
25211#[doc(alias = "VkVideoEncodeH265CtbSizeFlagBitsKHR")]
25212pub struct VideoEncodeH265CtbSizeFlagBitsKHR(u32);
25213impl VideoEncodeH265CtbSizeFlagBitsKHR {
25214 #[inline]
25215 pub const fn empty() -> Self {
25216 Self(0u32)
25217 }
25218 #[inline]
25219 pub const fn from_raw(value: u32) -> Self {
25220 Self(value)
25221 }
25222 #[inline]
25223 pub const fn as_raw(self) -> u32 {
25224 self.0
25225 }
25226 #[inline]
25227 pub const fn is_empty(self) -> bool {
25228 self.0 == 0u32
25229 }
25230 #[inline]
25231 pub const fn contains(self, other: Self) -> bool {
25232 (self.0 & other.0) == other.0
25233 }
25234 #[inline]
25235 pub const fn all() -> Self {
25236 Self(7u32)
25237 }
25238 pub const _16: Self = Self(1u32);
25240 pub const _32: Self = Self(2u32);
25242 pub const _64: Self = Self(4u32);
25244}
25245impl core::ops::BitOr for VideoEncodeH265CtbSizeFlagBitsKHR {
25246 type Output = Self;
25247 #[inline]
25248 fn bitor(self, rhs: Self) -> Self {
25249 Self(self.0 | rhs.0)
25250 }
25251}
25252impl core::ops::BitOrAssign for VideoEncodeH265CtbSizeFlagBitsKHR {
25253 #[inline]
25254 fn bitor_assign(&mut self, rhs: Self) {
25255 self.0 |= rhs.0;
25256 }
25257}
25258impl core::ops::BitAnd for VideoEncodeH265CtbSizeFlagBitsKHR {
25259 type Output = Self;
25260 #[inline]
25261 fn bitand(self, rhs: Self) -> Self {
25262 Self(self.0 & rhs.0)
25263 }
25264}
25265impl core::ops::BitAndAssign for VideoEncodeH265CtbSizeFlagBitsKHR {
25266 #[inline]
25267 fn bitand_assign(&mut self, rhs: Self) {
25268 self.0 &= rhs.0;
25269 }
25270}
25271impl core::ops::BitXor for VideoEncodeH265CtbSizeFlagBitsKHR {
25272 type Output = Self;
25273 #[inline]
25274 fn bitxor(self, rhs: Self) -> Self {
25275 Self(self.0 ^ rhs.0)
25276 }
25277}
25278impl core::ops::BitXorAssign for VideoEncodeH265CtbSizeFlagBitsKHR {
25279 #[inline]
25280 fn bitxor_assign(&mut self, rhs: Self) {
25281 self.0 ^= rhs.0;
25282 }
25283}
25284impl core::ops::Not for VideoEncodeH265CtbSizeFlagBitsKHR {
25285 type Output = Self;
25286 #[inline]
25287 fn not(self) -> Self {
25288 Self(!self.0)
25289 }
25290}
25291impl core::fmt::Debug for VideoEncodeH265CtbSizeFlagBitsKHR {
25292 #[allow(unused_mut, unused_variables)]
25293 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25294 let mut first = true;
25295 let mut remaining = self.0;
25296 if remaining & Self::_16.0 != 0 {
25297 if !first {
25298 f.write_str(" | ")?;
25299 }
25300 f.write_str("_16")?;
25301 remaining &= !Self::_16.0;
25302 first = false;
25303 }
25304 if remaining & Self::_32.0 != 0 {
25305 if !first {
25306 f.write_str(" | ")?;
25307 }
25308 f.write_str("_32")?;
25309 remaining &= !Self::_32.0;
25310 first = false;
25311 }
25312 if remaining & Self::_64.0 != 0 {
25313 if !first {
25314 f.write_str(" | ")?;
25315 }
25316 f.write_str("_64")?;
25317 remaining &= !Self::_64.0;
25318 first = false;
25319 }
25320 if remaining != 0u32 {
25321 if !first {
25322 f.write_str(" | ")?;
25323 }
25324 write!(f, "{:#x}", remaining)?;
25325 } else if first {
25326 f.write_str("(empty)")?;
25327 }
25328 Ok(())
25329 }
25330}
25331#[repr(transparent)]
25333#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
25334#[doc(alias = "VkVideoEncodeH265RateControlFlagBitsKHR")]
25335pub struct VideoEncodeH265RateControlFlagBitsKHR(u32);
25336impl VideoEncodeH265RateControlFlagBitsKHR {
25337 #[inline]
25338 pub const fn empty() -> Self {
25339 Self(0u32)
25340 }
25341 #[inline]
25342 pub const fn from_raw(value: u32) -> Self {
25343 Self(value)
25344 }
25345 #[inline]
25346 pub const fn as_raw(self) -> u32 {
25347 self.0
25348 }
25349 #[inline]
25350 pub const fn is_empty(self) -> bool {
25351 self.0 == 0u32
25352 }
25353 #[inline]
25354 pub const fn contains(self, other: Self) -> bool {
25355 (self.0 & other.0) == other.0
25356 }
25357 #[inline]
25358 pub const fn all() -> Self {
25359 Self(31u32)
25360 }
25361 pub const ATTEMPT_HRD_COMPLIANCE: Self = Self(1u32);
25363 pub const REGULAR_GOP: Self = Self(2u32);
25365 pub const REFERENCE_PATTERN_FLAT: Self = Self(4u32);
25367 pub const REFERENCE_PATTERN_DYADIC: Self = Self(8u32);
25369 pub const TEMPORAL_SUB_LAYER_PATTERN_DYADIC: Self = Self(16u32);
25371}
25372impl core::ops::BitOr for VideoEncodeH265RateControlFlagBitsKHR {
25373 type Output = Self;
25374 #[inline]
25375 fn bitor(self, rhs: Self) -> Self {
25376 Self(self.0 | rhs.0)
25377 }
25378}
25379impl core::ops::BitOrAssign for VideoEncodeH265RateControlFlagBitsKHR {
25380 #[inline]
25381 fn bitor_assign(&mut self, rhs: Self) {
25382 self.0 |= rhs.0;
25383 }
25384}
25385impl core::ops::BitAnd for VideoEncodeH265RateControlFlagBitsKHR {
25386 type Output = Self;
25387 #[inline]
25388 fn bitand(self, rhs: Self) -> Self {
25389 Self(self.0 & rhs.0)
25390 }
25391}
25392impl core::ops::BitAndAssign for VideoEncodeH265RateControlFlagBitsKHR {
25393 #[inline]
25394 fn bitand_assign(&mut self, rhs: Self) {
25395 self.0 &= rhs.0;
25396 }
25397}
25398impl core::ops::BitXor for VideoEncodeH265RateControlFlagBitsKHR {
25399 type Output = Self;
25400 #[inline]
25401 fn bitxor(self, rhs: Self) -> Self {
25402 Self(self.0 ^ rhs.0)
25403 }
25404}
25405impl core::ops::BitXorAssign for VideoEncodeH265RateControlFlagBitsKHR {
25406 #[inline]
25407 fn bitxor_assign(&mut self, rhs: Self) {
25408 self.0 ^= rhs.0;
25409 }
25410}
25411impl core::ops::Not for VideoEncodeH265RateControlFlagBitsKHR {
25412 type Output = Self;
25413 #[inline]
25414 fn not(self) -> Self {
25415 Self(!self.0)
25416 }
25417}
25418impl core::fmt::Debug for VideoEncodeH265RateControlFlagBitsKHR {
25419 #[allow(unused_mut, unused_variables)]
25420 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25421 let mut first = true;
25422 let mut remaining = self.0;
25423 if remaining & Self::ATTEMPT_HRD_COMPLIANCE.0 != 0 {
25424 if !first {
25425 f.write_str(" | ")?;
25426 }
25427 f.write_str("ATTEMPT_HRD_COMPLIANCE")?;
25428 remaining &= !Self::ATTEMPT_HRD_COMPLIANCE.0;
25429 first = false;
25430 }
25431 if remaining & Self::REGULAR_GOP.0 != 0 {
25432 if !first {
25433 f.write_str(" | ")?;
25434 }
25435 f.write_str("REGULAR_GOP")?;
25436 remaining &= !Self::REGULAR_GOP.0;
25437 first = false;
25438 }
25439 if remaining & Self::REFERENCE_PATTERN_FLAT.0 != 0 {
25440 if !first {
25441 f.write_str(" | ")?;
25442 }
25443 f.write_str("REFERENCE_PATTERN_FLAT")?;
25444 remaining &= !Self::REFERENCE_PATTERN_FLAT.0;
25445 first = false;
25446 }
25447 if remaining & Self::REFERENCE_PATTERN_DYADIC.0 != 0 {
25448 if !first {
25449 f.write_str(" | ")?;
25450 }
25451 f.write_str("REFERENCE_PATTERN_DYADIC")?;
25452 remaining &= !Self::REFERENCE_PATTERN_DYADIC.0;
25453 first = false;
25454 }
25455 if remaining & Self::TEMPORAL_SUB_LAYER_PATTERN_DYADIC.0 != 0 {
25456 if !first {
25457 f.write_str(" | ")?;
25458 }
25459 f.write_str("TEMPORAL_SUB_LAYER_PATTERN_DYADIC")?;
25460 remaining &= !Self::TEMPORAL_SUB_LAYER_PATTERN_DYADIC.0;
25461 first = false;
25462 }
25463 if remaining != 0u32 {
25464 if !first {
25465 f.write_str(" | ")?;
25466 }
25467 write!(f, "{:#x}", remaining)?;
25468 } else if first {
25469 f.write_str("(empty)")?;
25470 }
25471 Ok(())
25472 }
25473}
25474#[repr(transparent)]
25476#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
25477#[doc(alias = "VkVideoEncodeH265StdFlagBitsKHR")]
25478pub struct VideoEncodeH265StdFlagBitsKHR(u32);
25479impl VideoEncodeH265StdFlagBitsKHR {
25480 #[inline]
25481 pub const fn empty() -> Self {
25482 Self(0u32)
25483 }
25484 #[inline]
25485 pub const fn from_raw(value: u32) -> Self {
25486 Self(value)
25487 }
25488 #[inline]
25489 pub const fn as_raw(self) -> u32 {
25490 self.0
25491 }
25492 #[inline]
25493 pub const fn is_empty(self) -> bool {
25494 self.0 == 0u32
25495 }
25496 #[inline]
25497 pub const fn contains(self, other: Self) -> bool {
25498 (self.0 & other.0) == other.0
25499 }
25500 #[inline]
25501 pub const fn all() -> Self {
25502 Self(2097151u32)
25503 }
25504 pub const SEPARATE_COLOR_PLANE_FLAG_SET: Self = Self(1u32);
25506 pub const SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET: Self = Self(2u32);
25508 pub const SCALING_LIST_DATA_PRESENT_FLAG_SET: Self = Self(4u32);
25510 pub const PCM_ENABLED_FLAG_SET: Self = Self(8u32);
25512 pub const SPS_TEMPORAL_MVP_ENABLED_FLAG_SET: Self = Self(16u32);
25514 pub const INIT_QP_MINUS26: Self = Self(32u32);
25516 pub const WEIGHTED_PRED_FLAG_SET: Self = Self(64u32);
25518 pub const WEIGHTED_BIPRED_FLAG_SET: Self = Self(128u32);
25520 pub const LOG2_PARALLEL_MERGE_LEVEL_MINUS2: Self = Self(256u32);
25522 pub const SIGN_DATA_HIDING_ENABLED_FLAG_SET: Self = Self(512u32);
25524 pub const TRANSFORM_SKIP_ENABLED_FLAG_SET: Self = Self(1024u32);
25526 pub const TRANSFORM_SKIP_ENABLED_FLAG_UNSET: Self = Self(2048u32);
25528 pub const PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET: Self = Self(4096u32);
25530 pub const TRANSQUANT_BYPASS_ENABLED_FLAG_SET: Self = Self(8192u32);
25532 pub const CONSTRAINED_INTRA_PRED_FLAG_SET: Self = Self(16384u32);
25534 pub const ENTROPY_CODING_SYNC_ENABLED_FLAG_SET: Self = Self(32768u32);
25536 pub const DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET: Self = Self(65536u32);
25538 pub const DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET: Self = Self(131072u32);
25540 pub const DEPENDENT_SLICE_SEGMENT_FLAG_SET: Self = Self(262144u32);
25542 pub const SLICE_QP_DELTA: Self = Self(524288u32);
25544 pub const DIFFERENT_SLICE_QP_DELTA: Self = Self(1048576u32);
25546}
25547impl core::ops::BitOr for VideoEncodeH265StdFlagBitsKHR {
25548 type Output = Self;
25549 #[inline]
25550 fn bitor(self, rhs: Self) -> Self {
25551 Self(self.0 | rhs.0)
25552 }
25553}
25554impl core::ops::BitOrAssign for VideoEncodeH265StdFlagBitsKHR {
25555 #[inline]
25556 fn bitor_assign(&mut self, rhs: Self) {
25557 self.0 |= rhs.0;
25558 }
25559}
25560impl core::ops::BitAnd for VideoEncodeH265StdFlagBitsKHR {
25561 type Output = Self;
25562 #[inline]
25563 fn bitand(self, rhs: Self) -> Self {
25564 Self(self.0 & rhs.0)
25565 }
25566}
25567impl core::ops::BitAndAssign for VideoEncodeH265StdFlagBitsKHR {
25568 #[inline]
25569 fn bitand_assign(&mut self, rhs: Self) {
25570 self.0 &= rhs.0;
25571 }
25572}
25573impl core::ops::BitXor for VideoEncodeH265StdFlagBitsKHR {
25574 type Output = Self;
25575 #[inline]
25576 fn bitxor(self, rhs: Self) -> Self {
25577 Self(self.0 ^ rhs.0)
25578 }
25579}
25580impl core::ops::BitXorAssign for VideoEncodeH265StdFlagBitsKHR {
25581 #[inline]
25582 fn bitxor_assign(&mut self, rhs: Self) {
25583 self.0 ^= rhs.0;
25584 }
25585}
25586impl core::ops::Not for VideoEncodeH265StdFlagBitsKHR {
25587 type Output = Self;
25588 #[inline]
25589 fn not(self) -> Self {
25590 Self(!self.0)
25591 }
25592}
25593impl core::fmt::Debug for VideoEncodeH265StdFlagBitsKHR {
25594 #[allow(unused_mut, unused_variables)]
25595 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25596 let mut first = true;
25597 let mut remaining = self.0;
25598 if remaining & Self::SEPARATE_COLOR_PLANE_FLAG_SET.0 != 0 {
25599 if !first {
25600 f.write_str(" | ")?;
25601 }
25602 f.write_str("SEPARATE_COLOR_PLANE_FLAG_SET")?;
25603 remaining &= !Self::SEPARATE_COLOR_PLANE_FLAG_SET.0;
25604 first = false;
25605 }
25606 if remaining & Self::SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET.0 != 0 {
25607 if !first {
25608 f.write_str(" | ")?;
25609 }
25610 f.write_str("SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET")?;
25611 remaining &= !Self::SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET.0;
25612 first = false;
25613 }
25614 if remaining & Self::SCALING_LIST_DATA_PRESENT_FLAG_SET.0 != 0 {
25615 if !first {
25616 f.write_str(" | ")?;
25617 }
25618 f.write_str("SCALING_LIST_DATA_PRESENT_FLAG_SET")?;
25619 remaining &= !Self::SCALING_LIST_DATA_PRESENT_FLAG_SET.0;
25620 first = false;
25621 }
25622 if remaining & Self::PCM_ENABLED_FLAG_SET.0 != 0 {
25623 if !first {
25624 f.write_str(" | ")?;
25625 }
25626 f.write_str("PCM_ENABLED_FLAG_SET")?;
25627 remaining &= !Self::PCM_ENABLED_FLAG_SET.0;
25628 first = false;
25629 }
25630 if remaining & Self::SPS_TEMPORAL_MVP_ENABLED_FLAG_SET.0 != 0 {
25631 if !first {
25632 f.write_str(" | ")?;
25633 }
25634 f.write_str("SPS_TEMPORAL_MVP_ENABLED_FLAG_SET")?;
25635 remaining &= !Self::SPS_TEMPORAL_MVP_ENABLED_FLAG_SET.0;
25636 first = false;
25637 }
25638 if remaining & Self::INIT_QP_MINUS26.0 != 0 {
25639 if !first {
25640 f.write_str(" | ")?;
25641 }
25642 f.write_str("INIT_QP_MINUS26")?;
25643 remaining &= !Self::INIT_QP_MINUS26.0;
25644 first = false;
25645 }
25646 if remaining & Self::WEIGHTED_PRED_FLAG_SET.0 != 0 {
25647 if !first {
25648 f.write_str(" | ")?;
25649 }
25650 f.write_str("WEIGHTED_PRED_FLAG_SET")?;
25651 remaining &= !Self::WEIGHTED_PRED_FLAG_SET.0;
25652 first = false;
25653 }
25654 if remaining & Self::WEIGHTED_BIPRED_FLAG_SET.0 != 0 {
25655 if !first {
25656 f.write_str(" | ")?;
25657 }
25658 f.write_str("WEIGHTED_BIPRED_FLAG_SET")?;
25659 remaining &= !Self::WEIGHTED_BIPRED_FLAG_SET.0;
25660 first = false;
25661 }
25662 if remaining & Self::LOG2_PARALLEL_MERGE_LEVEL_MINUS2.0 != 0 {
25663 if !first {
25664 f.write_str(" | ")?;
25665 }
25666 f.write_str("LOG2_PARALLEL_MERGE_LEVEL_MINUS2")?;
25667 remaining &= !Self::LOG2_PARALLEL_MERGE_LEVEL_MINUS2.0;
25668 first = false;
25669 }
25670 if remaining & Self::SIGN_DATA_HIDING_ENABLED_FLAG_SET.0 != 0 {
25671 if !first {
25672 f.write_str(" | ")?;
25673 }
25674 f.write_str("SIGN_DATA_HIDING_ENABLED_FLAG_SET")?;
25675 remaining &= !Self::SIGN_DATA_HIDING_ENABLED_FLAG_SET.0;
25676 first = false;
25677 }
25678 if remaining & Self::TRANSFORM_SKIP_ENABLED_FLAG_SET.0 != 0 {
25679 if !first {
25680 f.write_str(" | ")?;
25681 }
25682 f.write_str("TRANSFORM_SKIP_ENABLED_FLAG_SET")?;
25683 remaining &= !Self::TRANSFORM_SKIP_ENABLED_FLAG_SET.0;
25684 first = false;
25685 }
25686 if remaining & Self::TRANSFORM_SKIP_ENABLED_FLAG_UNSET.0 != 0 {
25687 if !first {
25688 f.write_str(" | ")?;
25689 }
25690 f.write_str("TRANSFORM_SKIP_ENABLED_FLAG_UNSET")?;
25691 remaining &= !Self::TRANSFORM_SKIP_ENABLED_FLAG_UNSET.0;
25692 first = false;
25693 }
25694 if remaining & Self::PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET.0 != 0 {
25695 if !first {
25696 f.write_str(" | ")?;
25697 }
25698 f.write_str("PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET")?;
25699 remaining &= !Self::PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET.0;
25700 first = false;
25701 }
25702 if remaining & Self::TRANSQUANT_BYPASS_ENABLED_FLAG_SET.0 != 0 {
25703 if !first {
25704 f.write_str(" | ")?;
25705 }
25706 f.write_str("TRANSQUANT_BYPASS_ENABLED_FLAG_SET")?;
25707 remaining &= !Self::TRANSQUANT_BYPASS_ENABLED_FLAG_SET.0;
25708 first = false;
25709 }
25710 if remaining & Self::CONSTRAINED_INTRA_PRED_FLAG_SET.0 != 0 {
25711 if !first {
25712 f.write_str(" | ")?;
25713 }
25714 f.write_str("CONSTRAINED_INTRA_PRED_FLAG_SET")?;
25715 remaining &= !Self::CONSTRAINED_INTRA_PRED_FLAG_SET.0;
25716 first = false;
25717 }
25718 if remaining & Self::ENTROPY_CODING_SYNC_ENABLED_FLAG_SET.0 != 0 {
25719 if !first {
25720 f.write_str(" | ")?;
25721 }
25722 f.write_str("ENTROPY_CODING_SYNC_ENABLED_FLAG_SET")?;
25723 remaining &= !Self::ENTROPY_CODING_SYNC_ENABLED_FLAG_SET.0;
25724 first = false;
25725 }
25726 if remaining & Self::DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET.0 != 0 {
25727 if !first {
25728 f.write_str(" | ")?;
25729 }
25730 f.write_str("DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET")?;
25731 remaining &= !Self::DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET.0;
25732 first = false;
25733 }
25734 if remaining & Self::DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET.0 != 0 {
25735 if !first {
25736 f.write_str(" | ")?;
25737 }
25738 f.write_str("DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET")?;
25739 remaining &= !Self::DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET.0;
25740 first = false;
25741 }
25742 if remaining & Self::DEPENDENT_SLICE_SEGMENT_FLAG_SET.0 != 0 {
25743 if !first {
25744 f.write_str(" | ")?;
25745 }
25746 f.write_str("DEPENDENT_SLICE_SEGMENT_FLAG_SET")?;
25747 remaining &= !Self::DEPENDENT_SLICE_SEGMENT_FLAG_SET.0;
25748 first = false;
25749 }
25750 if remaining & Self::SLICE_QP_DELTA.0 != 0 {
25751 if !first {
25752 f.write_str(" | ")?;
25753 }
25754 f.write_str("SLICE_QP_DELTA")?;
25755 remaining &= !Self::SLICE_QP_DELTA.0;
25756 first = false;
25757 }
25758 if remaining & Self::DIFFERENT_SLICE_QP_DELTA.0 != 0 {
25759 if !first {
25760 f.write_str(" | ")?;
25761 }
25762 f.write_str("DIFFERENT_SLICE_QP_DELTA")?;
25763 remaining &= !Self::DIFFERENT_SLICE_QP_DELTA.0;
25764 first = false;
25765 }
25766 if remaining != 0u32 {
25767 if !first {
25768 f.write_str(" | ")?;
25769 }
25770 write!(f, "{:#x}", remaining)?;
25771 } else if first {
25772 f.write_str("(empty)")?;
25773 }
25774 Ok(())
25775 }
25776}
25777#[repr(transparent)]
25779#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
25780#[doc(alias = "VkVideoEncodeH265TransformBlockSizeFlagBitsKHR")]
25781pub struct VideoEncodeH265TransformBlockSizeFlagBitsKHR(u32);
25782impl VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25783 #[inline]
25784 pub const fn empty() -> Self {
25785 Self(0u32)
25786 }
25787 #[inline]
25788 pub const fn from_raw(value: u32) -> Self {
25789 Self(value)
25790 }
25791 #[inline]
25792 pub const fn as_raw(self) -> u32 {
25793 self.0
25794 }
25795 #[inline]
25796 pub const fn is_empty(self) -> bool {
25797 self.0 == 0u32
25798 }
25799 #[inline]
25800 pub const fn contains(self, other: Self) -> bool {
25801 (self.0 & other.0) == other.0
25802 }
25803 #[inline]
25804 pub const fn all() -> Self {
25805 Self(15u32)
25806 }
25807 pub const _4: Self = Self(1u32);
25809 pub const _8: Self = Self(2u32);
25811 pub const _16: Self = Self(4u32);
25813 pub const _32: Self = Self(8u32);
25815}
25816impl core::ops::BitOr for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25817 type Output = Self;
25818 #[inline]
25819 fn bitor(self, rhs: Self) -> Self {
25820 Self(self.0 | rhs.0)
25821 }
25822}
25823impl core::ops::BitOrAssign for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25824 #[inline]
25825 fn bitor_assign(&mut self, rhs: Self) {
25826 self.0 |= rhs.0;
25827 }
25828}
25829impl core::ops::BitAnd for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25830 type Output = Self;
25831 #[inline]
25832 fn bitand(self, rhs: Self) -> Self {
25833 Self(self.0 & rhs.0)
25834 }
25835}
25836impl core::ops::BitAndAssign for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25837 #[inline]
25838 fn bitand_assign(&mut self, rhs: Self) {
25839 self.0 &= rhs.0;
25840 }
25841}
25842impl core::ops::BitXor for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25843 type Output = Self;
25844 #[inline]
25845 fn bitxor(self, rhs: Self) -> Self {
25846 Self(self.0 ^ rhs.0)
25847 }
25848}
25849impl core::ops::BitXorAssign for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25850 #[inline]
25851 fn bitxor_assign(&mut self, rhs: Self) {
25852 self.0 ^= rhs.0;
25853 }
25854}
25855impl core::ops::Not for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25856 type Output = Self;
25857 #[inline]
25858 fn not(self) -> Self {
25859 Self(!self.0)
25860 }
25861}
25862impl core::fmt::Debug for VideoEncodeH265TransformBlockSizeFlagBitsKHR {
25863 #[allow(unused_mut, unused_variables)]
25864 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25865 let mut first = true;
25866 let mut remaining = self.0;
25867 if remaining & Self::_4.0 != 0 {
25868 if !first {
25869 f.write_str(" | ")?;
25870 }
25871 f.write_str("_4")?;
25872 remaining &= !Self::_4.0;
25873 first = false;
25874 }
25875 if remaining & Self::_8.0 != 0 {
25876 if !first {
25877 f.write_str(" | ")?;
25878 }
25879 f.write_str("_8")?;
25880 remaining &= !Self::_8.0;
25881 first = false;
25882 }
25883 if remaining & Self::_16.0 != 0 {
25884 if !first {
25885 f.write_str(" | ")?;
25886 }
25887 f.write_str("_16")?;
25888 remaining &= !Self::_16.0;
25889 first = false;
25890 }
25891 if remaining & Self::_32.0 != 0 {
25892 if !first {
25893 f.write_str(" | ")?;
25894 }
25895 f.write_str("_32")?;
25896 remaining &= !Self::_32.0;
25897 first = false;
25898 }
25899 if remaining != 0u32 {
25900 if !first {
25901 f.write_str(" | ")?;
25902 }
25903 write!(f, "{:#x}", remaining)?;
25904 } else if first {
25905 f.write_str("(empty)")?;
25906 }
25907 Ok(())
25908 }
25909}
25910#[repr(transparent)]
25912#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
25913#[doc(alias = "VkVideoEncodeIntraRefreshModeFlagBitsKHR")]
25914pub struct VideoEncodeIntraRefreshModeFlagBitsKHR(u32);
25915impl VideoEncodeIntraRefreshModeFlagBitsKHR {
25916 #[inline]
25917 pub const fn empty() -> Self {
25918 Self(0u32)
25919 }
25920 #[inline]
25921 pub const fn from_raw(value: u32) -> Self {
25922 Self(value)
25923 }
25924 #[inline]
25925 pub const fn as_raw(self) -> u32 {
25926 self.0
25927 }
25928 #[inline]
25929 pub const fn is_empty(self) -> bool {
25930 self.0 == 0u32
25931 }
25932 #[inline]
25933 pub const fn contains(self, other: Self) -> bool {
25934 (self.0 & other.0) == other.0
25935 }
25936 #[inline]
25937 pub const fn all() -> Self {
25938 Self(15u32)
25939 }
25940 pub const NONE: Self = Self(0u32);
25941 pub const PER_PICTURE_PARTITION: Self = Self(1u32);
25943 pub const BLOCK_BASED: Self = Self(2u32);
25945 pub const BLOCK_ROW_BASED: Self = Self(4u32);
25947 pub const BLOCK_COLUMN_BASED: Self = Self(8u32);
25949}
25950impl core::ops::BitOr for VideoEncodeIntraRefreshModeFlagBitsKHR {
25951 type Output = Self;
25952 #[inline]
25953 fn bitor(self, rhs: Self) -> Self {
25954 Self(self.0 | rhs.0)
25955 }
25956}
25957impl core::ops::BitOrAssign for VideoEncodeIntraRefreshModeFlagBitsKHR {
25958 #[inline]
25959 fn bitor_assign(&mut self, rhs: Self) {
25960 self.0 |= rhs.0;
25961 }
25962}
25963impl core::ops::BitAnd for VideoEncodeIntraRefreshModeFlagBitsKHR {
25964 type Output = Self;
25965 #[inline]
25966 fn bitand(self, rhs: Self) -> Self {
25967 Self(self.0 & rhs.0)
25968 }
25969}
25970impl core::ops::BitAndAssign for VideoEncodeIntraRefreshModeFlagBitsKHR {
25971 #[inline]
25972 fn bitand_assign(&mut self, rhs: Self) {
25973 self.0 &= rhs.0;
25974 }
25975}
25976impl core::ops::BitXor for VideoEncodeIntraRefreshModeFlagBitsKHR {
25977 type Output = Self;
25978 #[inline]
25979 fn bitxor(self, rhs: Self) -> Self {
25980 Self(self.0 ^ rhs.0)
25981 }
25982}
25983impl core::ops::BitXorAssign for VideoEncodeIntraRefreshModeFlagBitsKHR {
25984 #[inline]
25985 fn bitxor_assign(&mut self, rhs: Self) {
25986 self.0 ^= rhs.0;
25987 }
25988}
25989impl core::ops::Not for VideoEncodeIntraRefreshModeFlagBitsKHR {
25990 type Output = Self;
25991 #[inline]
25992 fn not(self) -> Self {
25993 Self(!self.0)
25994 }
25995}
25996impl core::fmt::Debug for VideoEncodeIntraRefreshModeFlagBitsKHR {
25997 #[allow(unused_mut, unused_variables)]
25998 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
25999 let mut first = true;
26000 let mut remaining = self.0;
26001 if remaining & Self::PER_PICTURE_PARTITION.0 != 0 {
26002 if !first {
26003 f.write_str(" | ")?;
26004 }
26005 f.write_str("PER_PICTURE_PARTITION")?;
26006 remaining &= !Self::PER_PICTURE_PARTITION.0;
26007 first = false;
26008 }
26009 if remaining & Self::BLOCK_BASED.0 != 0 {
26010 if !first {
26011 f.write_str(" | ")?;
26012 }
26013 f.write_str("BLOCK_BASED")?;
26014 remaining &= !Self::BLOCK_BASED.0;
26015 first = false;
26016 }
26017 if remaining & Self::BLOCK_ROW_BASED.0 != 0 {
26018 if !first {
26019 f.write_str(" | ")?;
26020 }
26021 f.write_str("BLOCK_ROW_BASED")?;
26022 remaining &= !Self::BLOCK_ROW_BASED.0;
26023 first = false;
26024 }
26025 if remaining & Self::BLOCK_COLUMN_BASED.0 != 0 {
26026 if !first {
26027 f.write_str(" | ")?;
26028 }
26029 f.write_str("BLOCK_COLUMN_BASED")?;
26030 remaining &= !Self::BLOCK_COLUMN_BASED.0;
26031 first = false;
26032 }
26033 if remaining != 0u32 {
26034 if !first {
26035 f.write_str(" | ")?;
26036 }
26037 write!(f, "{:#x}", remaining)?;
26038 } else if first {
26039 f.write_str("(empty)")?;
26040 }
26041 Ok(())
26042 }
26043}
26044#[repr(transparent)]
26046#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26047#[doc(alias = "VkVideoEncodeRateControlModeFlagBitsKHR")]
26048pub struct VideoEncodeRateControlModeFlagBitsKHR(u32);
26049impl VideoEncodeRateControlModeFlagBitsKHR {
26050 #[inline]
26051 pub const fn empty() -> Self {
26052 Self(0u32)
26053 }
26054 #[inline]
26055 pub const fn from_raw(value: u32) -> Self {
26056 Self(value)
26057 }
26058 #[inline]
26059 pub const fn as_raw(self) -> u32 {
26060 self.0
26061 }
26062 #[inline]
26063 pub const fn is_empty(self) -> bool {
26064 self.0 == 0u32
26065 }
26066 #[inline]
26067 pub const fn contains(self, other: Self) -> bool {
26068 (self.0 & other.0) == other.0
26069 }
26070 #[inline]
26071 pub const fn all() -> Self {
26072 Self(7u32)
26073 }
26074 pub const DEFAULT: Self = Self(0u32);
26075 pub const DISABLED: Self = Self(1u32);
26077 pub const CBR: Self = Self(2u32);
26079 pub const VBR: Self = Self(4u32);
26081}
26082impl core::ops::BitOr for VideoEncodeRateControlModeFlagBitsKHR {
26083 type Output = Self;
26084 #[inline]
26085 fn bitor(self, rhs: Self) -> Self {
26086 Self(self.0 | rhs.0)
26087 }
26088}
26089impl core::ops::BitOrAssign for VideoEncodeRateControlModeFlagBitsKHR {
26090 #[inline]
26091 fn bitor_assign(&mut self, rhs: Self) {
26092 self.0 |= rhs.0;
26093 }
26094}
26095impl core::ops::BitAnd for VideoEncodeRateControlModeFlagBitsKHR {
26096 type Output = Self;
26097 #[inline]
26098 fn bitand(self, rhs: Self) -> Self {
26099 Self(self.0 & rhs.0)
26100 }
26101}
26102impl core::ops::BitAndAssign for VideoEncodeRateControlModeFlagBitsKHR {
26103 #[inline]
26104 fn bitand_assign(&mut self, rhs: Self) {
26105 self.0 &= rhs.0;
26106 }
26107}
26108impl core::ops::BitXor for VideoEncodeRateControlModeFlagBitsKHR {
26109 type Output = Self;
26110 #[inline]
26111 fn bitxor(self, rhs: Self) -> Self {
26112 Self(self.0 ^ rhs.0)
26113 }
26114}
26115impl core::ops::BitXorAssign for VideoEncodeRateControlModeFlagBitsKHR {
26116 #[inline]
26117 fn bitxor_assign(&mut self, rhs: Self) {
26118 self.0 ^= rhs.0;
26119 }
26120}
26121impl core::ops::Not for VideoEncodeRateControlModeFlagBitsKHR {
26122 type Output = Self;
26123 #[inline]
26124 fn not(self) -> Self {
26125 Self(!self.0)
26126 }
26127}
26128impl core::fmt::Debug for VideoEncodeRateControlModeFlagBitsKHR {
26129 #[allow(unused_mut, unused_variables)]
26130 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26131 let mut first = true;
26132 let mut remaining = self.0;
26133 if remaining & Self::DISABLED.0 != 0 {
26134 if !first {
26135 f.write_str(" | ")?;
26136 }
26137 f.write_str("DISABLED")?;
26138 remaining &= !Self::DISABLED.0;
26139 first = false;
26140 }
26141 if remaining & Self::CBR.0 != 0 {
26142 if !first {
26143 f.write_str(" | ")?;
26144 }
26145 f.write_str("CBR")?;
26146 remaining &= !Self::CBR.0;
26147 first = false;
26148 }
26149 if remaining & Self::VBR.0 != 0 {
26150 if !first {
26151 f.write_str(" | ")?;
26152 }
26153 f.write_str("VBR")?;
26154 remaining &= !Self::VBR.0;
26155 first = false;
26156 }
26157 if remaining != 0u32 {
26158 if !first {
26159 f.write_str(" | ")?;
26160 }
26161 write!(f, "{:#x}", remaining)?;
26162 } else if first {
26163 f.write_str("(empty)")?;
26164 }
26165 Ok(())
26166 }
26167}
26168#[repr(transparent)]
26170#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26171#[doc(alias = "VkVideoEncodeRgbChromaOffsetFlagBitsVALVE")]
26172pub struct VideoEncodeRgbChromaOffsetFlagBitsVALVE(u32);
26173impl VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26174 #[inline]
26175 pub const fn empty() -> Self {
26176 Self(0u32)
26177 }
26178 #[inline]
26179 pub const fn from_raw(value: u32) -> Self {
26180 Self(value)
26181 }
26182 #[inline]
26183 pub const fn as_raw(self) -> u32 {
26184 self.0
26185 }
26186 #[inline]
26187 pub const fn is_empty(self) -> bool {
26188 self.0 == 0u32
26189 }
26190 #[inline]
26191 pub const fn contains(self, other: Self) -> bool {
26192 (self.0 & other.0) == other.0
26193 }
26194 #[inline]
26195 pub const fn all() -> Self {
26196 Self(3u32)
26197 }
26198 pub const COSITED_EVEN_BIT: Self = Self(1u32);
26200 pub const MIDPOINT_BIT: Self = Self(2u32);
26202}
26203impl core::ops::BitOr for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26204 type Output = Self;
26205 #[inline]
26206 fn bitor(self, rhs: Self) -> Self {
26207 Self(self.0 | rhs.0)
26208 }
26209}
26210impl core::ops::BitOrAssign for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26211 #[inline]
26212 fn bitor_assign(&mut self, rhs: Self) {
26213 self.0 |= rhs.0;
26214 }
26215}
26216impl core::ops::BitAnd for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26217 type Output = Self;
26218 #[inline]
26219 fn bitand(self, rhs: Self) -> Self {
26220 Self(self.0 & rhs.0)
26221 }
26222}
26223impl core::ops::BitAndAssign for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26224 #[inline]
26225 fn bitand_assign(&mut self, rhs: Self) {
26226 self.0 &= rhs.0;
26227 }
26228}
26229impl core::ops::BitXor for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26230 type Output = Self;
26231 #[inline]
26232 fn bitxor(self, rhs: Self) -> Self {
26233 Self(self.0 ^ rhs.0)
26234 }
26235}
26236impl core::ops::BitXorAssign for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26237 #[inline]
26238 fn bitxor_assign(&mut self, rhs: Self) {
26239 self.0 ^= rhs.0;
26240 }
26241}
26242impl core::ops::Not for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26243 type Output = Self;
26244 #[inline]
26245 fn not(self) -> Self {
26246 Self(!self.0)
26247 }
26248}
26249impl core::fmt::Debug for VideoEncodeRgbChromaOffsetFlagBitsVALVE {
26250 #[allow(unused_mut, unused_variables)]
26251 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26252 let mut first = true;
26253 let mut remaining = self.0;
26254 if remaining & Self::COSITED_EVEN_BIT.0 != 0 {
26255 if !first {
26256 f.write_str(" | ")?;
26257 }
26258 f.write_str("COSITED_EVEN_BIT")?;
26259 remaining &= !Self::COSITED_EVEN_BIT.0;
26260 first = false;
26261 }
26262 if remaining & Self::MIDPOINT_BIT.0 != 0 {
26263 if !first {
26264 f.write_str(" | ")?;
26265 }
26266 f.write_str("MIDPOINT_BIT")?;
26267 remaining &= !Self::MIDPOINT_BIT.0;
26268 first = false;
26269 }
26270 if remaining != 0u32 {
26271 if !first {
26272 f.write_str(" | ")?;
26273 }
26274 write!(f, "{:#x}", remaining)?;
26275 } else if first {
26276 f.write_str("(empty)")?;
26277 }
26278 Ok(())
26279 }
26280}
26281#[repr(transparent)]
26283#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26284#[doc(alias = "VkVideoEncodeRgbModelConversionFlagBitsVALVE")]
26285pub struct VideoEncodeRgbModelConversionFlagBitsVALVE(u32);
26286impl VideoEncodeRgbModelConversionFlagBitsVALVE {
26287 #[inline]
26288 pub const fn empty() -> Self {
26289 Self(0u32)
26290 }
26291 #[inline]
26292 pub const fn from_raw(value: u32) -> Self {
26293 Self(value)
26294 }
26295 #[inline]
26296 pub const fn as_raw(self) -> u32 {
26297 self.0
26298 }
26299 #[inline]
26300 pub const fn is_empty(self) -> bool {
26301 self.0 == 0u32
26302 }
26303 #[inline]
26304 pub const fn contains(self, other: Self) -> bool {
26305 (self.0 & other.0) == other.0
26306 }
26307 #[inline]
26308 pub const fn all() -> Self {
26309 Self(31u32)
26310 }
26311 pub const RGB_IDENTITY_BIT: Self = Self(1u32);
26313 pub const YCBCR_IDENTITY_BIT: Self = Self(2u32);
26315 pub const YCBCR_709_BIT: Self = Self(4u32);
26317 pub const YCBCR_601_BIT: Self = Self(8u32);
26319 pub const YCBCR_2020_BIT: Self = Self(16u32);
26321}
26322impl core::ops::BitOr for VideoEncodeRgbModelConversionFlagBitsVALVE {
26323 type Output = Self;
26324 #[inline]
26325 fn bitor(self, rhs: Self) -> Self {
26326 Self(self.0 | rhs.0)
26327 }
26328}
26329impl core::ops::BitOrAssign for VideoEncodeRgbModelConversionFlagBitsVALVE {
26330 #[inline]
26331 fn bitor_assign(&mut self, rhs: Self) {
26332 self.0 |= rhs.0;
26333 }
26334}
26335impl core::ops::BitAnd for VideoEncodeRgbModelConversionFlagBitsVALVE {
26336 type Output = Self;
26337 #[inline]
26338 fn bitand(self, rhs: Self) -> Self {
26339 Self(self.0 & rhs.0)
26340 }
26341}
26342impl core::ops::BitAndAssign for VideoEncodeRgbModelConversionFlagBitsVALVE {
26343 #[inline]
26344 fn bitand_assign(&mut self, rhs: Self) {
26345 self.0 &= rhs.0;
26346 }
26347}
26348impl core::ops::BitXor for VideoEncodeRgbModelConversionFlagBitsVALVE {
26349 type Output = Self;
26350 #[inline]
26351 fn bitxor(self, rhs: Self) -> Self {
26352 Self(self.0 ^ rhs.0)
26353 }
26354}
26355impl core::ops::BitXorAssign for VideoEncodeRgbModelConversionFlagBitsVALVE {
26356 #[inline]
26357 fn bitxor_assign(&mut self, rhs: Self) {
26358 self.0 ^= rhs.0;
26359 }
26360}
26361impl core::ops::Not for VideoEncodeRgbModelConversionFlagBitsVALVE {
26362 type Output = Self;
26363 #[inline]
26364 fn not(self) -> Self {
26365 Self(!self.0)
26366 }
26367}
26368impl core::fmt::Debug for VideoEncodeRgbModelConversionFlagBitsVALVE {
26369 #[allow(unused_mut, unused_variables)]
26370 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26371 let mut first = true;
26372 let mut remaining = self.0;
26373 if remaining & Self::RGB_IDENTITY_BIT.0 != 0 {
26374 if !first {
26375 f.write_str(" | ")?;
26376 }
26377 f.write_str("RGB_IDENTITY_BIT")?;
26378 remaining &= !Self::RGB_IDENTITY_BIT.0;
26379 first = false;
26380 }
26381 if remaining & Self::YCBCR_IDENTITY_BIT.0 != 0 {
26382 if !first {
26383 f.write_str(" | ")?;
26384 }
26385 f.write_str("YCBCR_IDENTITY_BIT")?;
26386 remaining &= !Self::YCBCR_IDENTITY_BIT.0;
26387 first = false;
26388 }
26389 if remaining & Self::YCBCR_709_BIT.0 != 0 {
26390 if !first {
26391 f.write_str(" | ")?;
26392 }
26393 f.write_str("YCBCR_709_BIT")?;
26394 remaining &= !Self::YCBCR_709_BIT.0;
26395 first = false;
26396 }
26397 if remaining & Self::YCBCR_601_BIT.0 != 0 {
26398 if !first {
26399 f.write_str(" | ")?;
26400 }
26401 f.write_str("YCBCR_601_BIT")?;
26402 remaining &= !Self::YCBCR_601_BIT.0;
26403 first = false;
26404 }
26405 if remaining & Self::YCBCR_2020_BIT.0 != 0 {
26406 if !first {
26407 f.write_str(" | ")?;
26408 }
26409 f.write_str("YCBCR_2020_BIT")?;
26410 remaining &= !Self::YCBCR_2020_BIT.0;
26411 first = false;
26412 }
26413 if remaining != 0u32 {
26414 if !first {
26415 f.write_str(" | ")?;
26416 }
26417 write!(f, "{:#x}", remaining)?;
26418 } else if first {
26419 f.write_str("(empty)")?;
26420 }
26421 Ok(())
26422 }
26423}
26424#[repr(transparent)]
26426#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26427#[doc(alias = "VkVideoEncodeRgbRangeCompressionFlagBitsVALVE")]
26428pub struct VideoEncodeRgbRangeCompressionFlagBitsVALVE(u32);
26429impl VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26430 #[inline]
26431 pub const fn empty() -> Self {
26432 Self(0u32)
26433 }
26434 #[inline]
26435 pub const fn from_raw(value: u32) -> Self {
26436 Self(value)
26437 }
26438 #[inline]
26439 pub const fn as_raw(self) -> u32 {
26440 self.0
26441 }
26442 #[inline]
26443 pub const fn is_empty(self) -> bool {
26444 self.0 == 0u32
26445 }
26446 #[inline]
26447 pub const fn contains(self, other: Self) -> bool {
26448 (self.0 & other.0) == other.0
26449 }
26450 #[inline]
26451 pub const fn all() -> Self {
26452 Self(3u32)
26453 }
26454 pub const FULL_RANGE_BIT: Self = Self(1u32);
26456 pub const NARROW_RANGE_BIT: Self = Self(2u32);
26458}
26459impl core::ops::BitOr for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26460 type Output = Self;
26461 #[inline]
26462 fn bitor(self, rhs: Self) -> Self {
26463 Self(self.0 | rhs.0)
26464 }
26465}
26466impl core::ops::BitOrAssign for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26467 #[inline]
26468 fn bitor_assign(&mut self, rhs: Self) {
26469 self.0 |= rhs.0;
26470 }
26471}
26472impl core::ops::BitAnd for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26473 type Output = Self;
26474 #[inline]
26475 fn bitand(self, rhs: Self) -> Self {
26476 Self(self.0 & rhs.0)
26477 }
26478}
26479impl core::ops::BitAndAssign for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26480 #[inline]
26481 fn bitand_assign(&mut self, rhs: Self) {
26482 self.0 &= rhs.0;
26483 }
26484}
26485impl core::ops::BitXor for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26486 type Output = Self;
26487 #[inline]
26488 fn bitxor(self, rhs: Self) -> Self {
26489 Self(self.0 ^ rhs.0)
26490 }
26491}
26492impl core::ops::BitXorAssign for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26493 #[inline]
26494 fn bitxor_assign(&mut self, rhs: Self) {
26495 self.0 ^= rhs.0;
26496 }
26497}
26498impl core::ops::Not for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26499 type Output = Self;
26500 #[inline]
26501 fn not(self) -> Self {
26502 Self(!self.0)
26503 }
26504}
26505impl core::fmt::Debug for VideoEncodeRgbRangeCompressionFlagBitsVALVE {
26506 #[allow(unused_mut, unused_variables)]
26507 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26508 let mut first = true;
26509 let mut remaining = self.0;
26510 if remaining & Self::FULL_RANGE_BIT.0 != 0 {
26511 if !first {
26512 f.write_str(" | ")?;
26513 }
26514 f.write_str("FULL_RANGE_BIT")?;
26515 remaining &= !Self::FULL_RANGE_BIT.0;
26516 first = false;
26517 }
26518 if remaining & Self::NARROW_RANGE_BIT.0 != 0 {
26519 if !first {
26520 f.write_str(" | ")?;
26521 }
26522 f.write_str("NARROW_RANGE_BIT")?;
26523 remaining &= !Self::NARROW_RANGE_BIT.0;
26524 first = false;
26525 }
26526 if remaining != 0u32 {
26527 if !first {
26528 f.write_str(" | ")?;
26529 }
26530 write!(f, "{:#x}", remaining)?;
26531 } else if first {
26532 f.write_str("(empty)")?;
26533 }
26534 Ok(())
26535 }
26536}
26537#[repr(transparent)]
26539#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26540#[doc(alias = "VkVideoEncodeUsageFlagBitsKHR")]
26541pub struct VideoEncodeUsageFlagBitsKHR(u32);
26542impl VideoEncodeUsageFlagBitsKHR {
26543 #[inline]
26544 pub const fn empty() -> Self {
26545 Self(0u32)
26546 }
26547 #[inline]
26548 pub const fn from_raw(value: u32) -> Self {
26549 Self(value)
26550 }
26551 #[inline]
26552 pub const fn as_raw(self) -> u32 {
26553 self.0
26554 }
26555 #[inline]
26556 pub const fn is_empty(self) -> bool {
26557 self.0 == 0u32
26558 }
26559 #[inline]
26560 pub const fn contains(self, other: Self) -> bool {
26561 (self.0 & other.0) == other.0
26562 }
26563 #[inline]
26564 pub const fn all() -> Self {
26565 Self(15u32)
26566 }
26567 pub const DEFAULT: Self = Self(0u32);
26568 pub const TRANSCODING: Self = Self(1u32);
26570 pub const STREAMING: Self = Self(2u32);
26572 pub const RECORDING: Self = Self(4u32);
26574 pub const CONFERENCING: Self = Self(8u32);
26576}
26577impl core::ops::BitOr for VideoEncodeUsageFlagBitsKHR {
26578 type Output = Self;
26579 #[inline]
26580 fn bitor(self, rhs: Self) -> Self {
26581 Self(self.0 | rhs.0)
26582 }
26583}
26584impl core::ops::BitOrAssign for VideoEncodeUsageFlagBitsKHR {
26585 #[inline]
26586 fn bitor_assign(&mut self, rhs: Self) {
26587 self.0 |= rhs.0;
26588 }
26589}
26590impl core::ops::BitAnd for VideoEncodeUsageFlagBitsKHR {
26591 type Output = Self;
26592 #[inline]
26593 fn bitand(self, rhs: Self) -> Self {
26594 Self(self.0 & rhs.0)
26595 }
26596}
26597impl core::ops::BitAndAssign for VideoEncodeUsageFlagBitsKHR {
26598 #[inline]
26599 fn bitand_assign(&mut self, rhs: Self) {
26600 self.0 &= rhs.0;
26601 }
26602}
26603impl core::ops::BitXor for VideoEncodeUsageFlagBitsKHR {
26604 type Output = Self;
26605 #[inline]
26606 fn bitxor(self, rhs: Self) -> Self {
26607 Self(self.0 ^ rhs.0)
26608 }
26609}
26610impl core::ops::BitXorAssign for VideoEncodeUsageFlagBitsKHR {
26611 #[inline]
26612 fn bitxor_assign(&mut self, rhs: Self) {
26613 self.0 ^= rhs.0;
26614 }
26615}
26616impl core::ops::Not for VideoEncodeUsageFlagBitsKHR {
26617 type Output = Self;
26618 #[inline]
26619 fn not(self) -> Self {
26620 Self(!self.0)
26621 }
26622}
26623impl core::fmt::Debug for VideoEncodeUsageFlagBitsKHR {
26624 #[allow(unused_mut, unused_variables)]
26625 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26626 let mut first = true;
26627 let mut remaining = self.0;
26628 if remaining & Self::TRANSCODING.0 != 0 {
26629 if !first {
26630 f.write_str(" | ")?;
26631 }
26632 f.write_str("TRANSCODING")?;
26633 remaining &= !Self::TRANSCODING.0;
26634 first = false;
26635 }
26636 if remaining & Self::STREAMING.0 != 0 {
26637 if !first {
26638 f.write_str(" | ")?;
26639 }
26640 f.write_str("STREAMING")?;
26641 remaining &= !Self::STREAMING.0;
26642 first = false;
26643 }
26644 if remaining & Self::RECORDING.0 != 0 {
26645 if !first {
26646 f.write_str(" | ")?;
26647 }
26648 f.write_str("RECORDING")?;
26649 remaining &= !Self::RECORDING.0;
26650 first = false;
26651 }
26652 if remaining & Self::CONFERENCING.0 != 0 {
26653 if !first {
26654 f.write_str(" | ")?;
26655 }
26656 f.write_str("CONFERENCING")?;
26657 remaining &= !Self::CONFERENCING.0;
26658 first = false;
26659 }
26660 if remaining != 0u32 {
26661 if !first {
26662 f.write_str(" | ")?;
26663 }
26664 write!(f, "{:#x}", remaining)?;
26665 } else if first {
26666 f.write_str("(empty)")?;
26667 }
26668 Ok(())
26669 }
26670}
26671#[repr(transparent)]
26673#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26674#[doc(alias = "VkVideoSessionCreateFlagBitsKHR")]
26675pub struct VideoSessionCreateFlagBitsKHR(u32);
26676impl VideoSessionCreateFlagBitsKHR {
26677 #[inline]
26678 pub const fn empty() -> Self {
26679 Self(0u32)
26680 }
26681 #[inline]
26682 pub const fn from_raw(value: u32) -> Self {
26683 Self(value)
26684 }
26685 #[inline]
26686 pub const fn as_raw(self) -> u32 {
26687 self.0
26688 }
26689 #[inline]
26690 pub const fn is_empty(self) -> bool {
26691 self.0 == 0u32
26692 }
26693 #[inline]
26694 pub const fn contains(self, other: Self) -> bool {
26695 (self.0 & other.0) == other.0
26696 }
26697 #[inline]
26698 pub const fn all() -> Self {
26699 Self(63u32)
26700 }
26701 pub const PROTECTED_CONTENT: Self = Self(1u32);
26703 pub const ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS: Self = Self(2u32);
26705 pub const INLINE_QUERIES: Self = Self(4u32);
26707 pub const ALLOW_ENCODE_QUANTIZATION_DELTA_MAP: Self = Self(8u32);
26709 pub const ALLOW_ENCODE_EMPHASIS_MAP: Self = Self(16u32);
26711 pub const INLINE_SESSION_PARAMETERS: Self = Self(32u32);
26713}
26714impl core::ops::BitOr for VideoSessionCreateFlagBitsKHR {
26715 type Output = Self;
26716 #[inline]
26717 fn bitor(self, rhs: Self) -> Self {
26718 Self(self.0 | rhs.0)
26719 }
26720}
26721impl core::ops::BitOrAssign for VideoSessionCreateFlagBitsKHR {
26722 #[inline]
26723 fn bitor_assign(&mut self, rhs: Self) {
26724 self.0 |= rhs.0;
26725 }
26726}
26727impl core::ops::BitAnd for VideoSessionCreateFlagBitsKHR {
26728 type Output = Self;
26729 #[inline]
26730 fn bitand(self, rhs: Self) -> Self {
26731 Self(self.0 & rhs.0)
26732 }
26733}
26734impl core::ops::BitAndAssign for VideoSessionCreateFlagBitsKHR {
26735 #[inline]
26736 fn bitand_assign(&mut self, rhs: Self) {
26737 self.0 &= rhs.0;
26738 }
26739}
26740impl core::ops::BitXor for VideoSessionCreateFlagBitsKHR {
26741 type Output = Self;
26742 #[inline]
26743 fn bitxor(self, rhs: Self) -> Self {
26744 Self(self.0 ^ rhs.0)
26745 }
26746}
26747impl core::ops::BitXorAssign for VideoSessionCreateFlagBitsKHR {
26748 #[inline]
26749 fn bitxor_assign(&mut self, rhs: Self) {
26750 self.0 ^= rhs.0;
26751 }
26752}
26753impl core::ops::Not for VideoSessionCreateFlagBitsKHR {
26754 type Output = Self;
26755 #[inline]
26756 fn not(self) -> Self {
26757 Self(!self.0)
26758 }
26759}
26760impl core::fmt::Debug for VideoSessionCreateFlagBitsKHR {
26761 #[allow(unused_mut, unused_variables)]
26762 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26763 let mut first = true;
26764 let mut remaining = self.0;
26765 if remaining & Self::PROTECTED_CONTENT.0 != 0 {
26766 if !first {
26767 f.write_str(" | ")?;
26768 }
26769 f.write_str("PROTECTED_CONTENT")?;
26770 remaining &= !Self::PROTECTED_CONTENT.0;
26771 first = false;
26772 }
26773 if remaining & Self::ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS.0 != 0 {
26774 if !first {
26775 f.write_str(" | ")?;
26776 }
26777 f.write_str("ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS")?;
26778 remaining &= !Self::ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS.0;
26779 first = false;
26780 }
26781 if remaining & Self::INLINE_QUERIES.0 != 0 {
26782 if !first {
26783 f.write_str(" | ")?;
26784 }
26785 f.write_str("INLINE_QUERIES")?;
26786 remaining &= !Self::INLINE_QUERIES.0;
26787 first = false;
26788 }
26789 if remaining & Self::ALLOW_ENCODE_QUANTIZATION_DELTA_MAP.0 != 0 {
26790 if !first {
26791 f.write_str(" | ")?;
26792 }
26793 f.write_str("ALLOW_ENCODE_QUANTIZATION_DELTA_MAP")?;
26794 remaining &= !Self::ALLOW_ENCODE_QUANTIZATION_DELTA_MAP.0;
26795 first = false;
26796 }
26797 if remaining & Self::ALLOW_ENCODE_EMPHASIS_MAP.0 != 0 {
26798 if !first {
26799 f.write_str(" | ")?;
26800 }
26801 f.write_str("ALLOW_ENCODE_EMPHASIS_MAP")?;
26802 remaining &= !Self::ALLOW_ENCODE_EMPHASIS_MAP.0;
26803 first = false;
26804 }
26805 if remaining & Self::INLINE_SESSION_PARAMETERS.0 != 0 {
26806 if !first {
26807 f.write_str(" | ")?;
26808 }
26809 f.write_str("INLINE_SESSION_PARAMETERS")?;
26810 remaining &= !Self::INLINE_SESSION_PARAMETERS.0;
26811 first = false;
26812 }
26813 if remaining != 0u32 {
26814 if !first {
26815 f.write_str(" | ")?;
26816 }
26817 write!(f, "{:#x}", remaining)?;
26818 } else if first {
26819 f.write_str("(empty)")?;
26820 }
26821 Ok(())
26822 }
26823}
26824#[repr(transparent)]
26826#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26827#[doc(alias = "VkVideoSessionParametersCreateFlagBitsKHR")]
26828pub struct VideoSessionParametersCreateFlagBitsKHR(u32);
26829impl VideoSessionParametersCreateFlagBitsKHR {
26830 #[inline]
26831 pub const fn empty() -> Self {
26832 Self(0u32)
26833 }
26834 #[inline]
26835 pub const fn from_raw(value: u32) -> Self {
26836 Self(value)
26837 }
26838 #[inline]
26839 pub const fn as_raw(self) -> u32 {
26840 self.0
26841 }
26842 #[inline]
26843 pub const fn is_empty(self) -> bool {
26844 self.0 == 0u32
26845 }
26846 #[inline]
26847 pub const fn contains(self, other: Self) -> bool {
26848 (self.0 & other.0) == other.0
26849 }
26850 #[inline]
26851 pub const fn all() -> Self {
26852 Self(1u32)
26853 }
26854 pub const QUANTIZATION_MAP_COMPATIBLE: Self = Self(1u32);
26856}
26857impl core::ops::BitOr for VideoSessionParametersCreateFlagBitsKHR {
26858 type Output = Self;
26859 #[inline]
26860 fn bitor(self, rhs: Self) -> Self {
26861 Self(self.0 | rhs.0)
26862 }
26863}
26864impl core::ops::BitOrAssign for VideoSessionParametersCreateFlagBitsKHR {
26865 #[inline]
26866 fn bitor_assign(&mut self, rhs: Self) {
26867 self.0 |= rhs.0;
26868 }
26869}
26870impl core::ops::BitAnd for VideoSessionParametersCreateFlagBitsKHR {
26871 type Output = Self;
26872 #[inline]
26873 fn bitand(self, rhs: Self) -> Self {
26874 Self(self.0 & rhs.0)
26875 }
26876}
26877impl core::ops::BitAndAssign for VideoSessionParametersCreateFlagBitsKHR {
26878 #[inline]
26879 fn bitand_assign(&mut self, rhs: Self) {
26880 self.0 &= rhs.0;
26881 }
26882}
26883impl core::ops::BitXor for VideoSessionParametersCreateFlagBitsKHR {
26884 type Output = Self;
26885 #[inline]
26886 fn bitxor(self, rhs: Self) -> Self {
26887 Self(self.0 ^ rhs.0)
26888 }
26889}
26890impl core::ops::BitXorAssign for VideoSessionParametersCreateFlagBitsKHR {
26891 #[inline]
26892 fn bitxor_assign(&mut self, rhs: Self) {
26893 self.0 ^= rhs.0;
26894 }
26895}
26896impl core::ops::Not for VideoSessionParametersCreateFlagBitsKHR {
26897 type Output = Self;
26898 #[inline]
26899 fn not(self) -> Self {
26900 Self(!self.0)
26901 }
26902}
26903impl core::fmt::Debug for VideoSessionParametersCreateFlagBitsKHR {
26904 #[allow(unused_mut, unused_variables)]
26905 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
26906 let mut first = true;
26907 let mut remaining = self.0;
26908 if remaining & Self::QUANTIZATION_MAP_COMPATIBLE.0 != 0 {
26909 if !first {
26910 f.write_str(" | ")?;
26911 }
26912 f.write_str("QUANTIZATION_MAP_COMPATIBLE")?;
26913 remaining &= !Self::QUANTIZATION_MAP_COMPATIBLE.0;
26914 first = false;
26915 }
26916 if remaining != 0u32 {
26917 if !first {
26918 f.write_str(" | ")?;
26919 }
26920 write!(f, "{:#x}", remaining)?;
26921 } else if first {
26922 f.write_str("(empty)")?;
26923 }
26924 Ok(())
26925 }
26926}
26927#[repr(transparent)]
26929#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Default)]
26930#[doc(alias = "VkWaylandSurfaceCreateFlagBitsKHR")]
26931pub struct WaylandSurfaceCreateFlagBitsKHR(u32);
26932impl WaylandSurfaceCreateFlagBitsKHR {
26933 #[inline]
26934 pub const fn empty() -> Self {
26935 Self(0u32)
26936 }
26937 #[inline]
26938 pub const fn from_raw(value: u32) -> Self {
26939 Self(value)
26940 }
26941 #[inline]
26942 pub const fn as_raw(self) -> u32 {
26943 self.0
26944 }
26945 #[inline]
26946 pub const fn is_empty(self) -> bool {
26947 self.0 == 0u32
26948 }
26949 #[inline]
26950 pub const fn contains(self, other: Self) -> bool {
26951 (self.0 & other.0) == other.0
26952 }
26953 #[inline]
26954 pub const fn all() -> Self {
26955 Self(0u32)
26956 }
26957}
26958impl core::ops::BitOr for WaylandSurfaceCreateFlagBitsKHR {
26959 type Output = Self;
26960 #[inline]
26961 fn bitor(self, rhs: Self) -> Self {
26962 Self(self.0 | rhs.0)
26963 }
26964}
26965impl core::ops::BitOrAssign for WaylandSurfaceCreateFlagBitsKHR {
26966 #[inline]
26967 fn bitor_assign(&mut self, rhs: Self) {
26968 self.0 |= rhs.0;
26969 }
26970}
26971impl core::ops::BitAnd for WaylandSurfaceCreateFlagBitsKHR {
26972 type Output = Self;
26973 #[inline]
26974 fn bitand(self, rhs: Self) -> Self {
26975 Self(self.0 & rhs.0)
26976 }
26977}
26978impl core::ops::BitAndAssign for WaylandSurfaceCreateFlagBitsKHR {
26979 #[inline]
26980 fn bitand_assign(&mut self, rhs: Self) {
26981 self.0 &= rhs.0;
26982 }
26983}
26984impl core::ops::BitXor for WaylandSurfaceCreateFlagBitsKHR {
26985 type Output = Self;
26986 #[inline]
26987 fn bitxor(self, rhs: Self) -> Self {
26988 Self(self.0 ^ rhs.0)
26989 }
26990}
26991impl core::ops::BitXorAssign for WaylandSurfaceCreateFlagBitsKHR {
26992 #[inline]
26993 fn bitxor_assign(&mut self, rhs: Self) {
26994 self.0 ^= rhs.0;
26995 }
26996}
26997impl core::ops::Not for WaylandSurfaceCreateFlagBitsKHR {
26998 type Output = Self;
26999 #[inline]
27000 fn not(self) -> Self {
27001 Self(!self.0)
27002 }
27003}
27004impl core::fmt::Debug for WaylandSurfaceCreateFlagBitsKHR {
27005 #[allow(unused_mut, unused_variables)]
27006 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
27007 let mut first = true;
27008 let mut remaining = self.0;
27009 if remaining != 0u32 {
27010 if !first {
27011 f.write_str(" | ")?;
27012 }
27013 write!(f, "{:#x}", remaining)?;
27014 } else if first {
27015 f.write_str("(empty)")?;
27016 }
27017 Ok(())
27018 }
27019}