1use super::structs::*;
2use super::enums::*;
3use super::handles::*;
4use super::bitmasks::*;
5use super::constants::*;
6pub struct Offset2DBuilder {
8 inner: Offset2D,
9}
10impl Offset2D {
11 #[inline]
13 pub fn builder() -> Offset2DBuilder {
14 Offset2DBuilder {
15 inner: Offset2D { ..Default::default() },
16 }
17 }
18}
19impl Offset2DBuilder {
20 #[inline]
21 pub fn x(mut self, value: i32) -> Self {
22 self.inner.x = value;
23 self
24 }
25 #[inline]
26 pub fn y(mut self, value: i32) -> Self {
27 self.inner.y = value;
28 self
29 }
30}
31impl core::ops::Deref for Offset2DBuilder {
32 type Target = Offset2D;
33 #[inline]
34 fn deref(&self) -> &Self::Target {
35 &self.inner
36 }
37}
38impl core::ops::DerefMut for Offset2DBuilder {
39 #[inline]
40 fn deref_mut(&mut self) -> &mut Self::Target {
41 &mut self.inner
42 }
43}
44pub struct Offset3DBuilder {
46 inner: Offset3D,
47}
48impl Offset3D {
49 #[inline]
51 pub fn builder() -> Offset3DBuilder {
52 Offset3DBuilder {
53 inner: Offset3D { ..Default::default() },
54 }
55 }
56}
57impl Offset3DBuilder {
58 #[inline]
59 pub fn x(mut self, value: i32) -> Self {
60 self.inner.x = value;
61 self
62 }
63 #[inline]
64 pub fn y(mut self, value: i32) -> Self {
65 self.inner.y = value;
66 self
67 }
68 #[inline]
69 pub fn z(mut self, value: i32) -> Self {
70 self.inner.z = value;
71 self
72 }
73}
74impl core::ops::Deref for Offset3DBuilder {
75 type Target = Offset3D;
76 #[inline]
77 fn deref(&self) -> &Self::Target {
78 &self.inner
79 }
80}
81impl core::ops::DerefMut for Offset3DBuilder {
82 #[inline]
83 fn deref_mut(&mut self) -> &mut Self::Target {
84 &mut self.inner
85 }
86}
87pub struct Extent2DBuilder {
89 inner: Extent2D,
90}
91impl Extent2D {
92 #[inline]
94 pub fn builder() -> Extent2DBuilder {
95 Extent2DBuilder {
96 inner: Extent2D { ..Default::default() },
97 }
98 }
99}
100impl Extent2DBuilder {
101 #[inline]
102 pub fn width(mut self, value: u32) -> Self {
103 self.inner.width = value;
104 self
105 }
106 #[inline]
107 pub fn height(mut self, value: u32) -> Self {
108 self.inner.height = value;
109 self
110 }
111}
112impl core::ops::Deref for Extent2DBuilder {
113 type Target = Extent2D;
114 #[inline]
115 fn deref(&self) -> &Self::Target {
116 &self.inner
117 }
118}
119impl core::ops::DerefMut for Extent2DBuilder {
120 #[inline]
121 fn deref_mut(&mut self) -> &mut Self::Target {
122 &mut self.inner
123 }
124}
125pub struct Extent3DBuilder {
127 inner: Extent3D,
128}
129impl Extent3D {
130 #[inline]
132 pub fn builder() -> Extent3DBuilder {
133 Extent3DBuilder {
134 inner: Extent3D { ..Default::default() },
135 }
136 }
137}
138impl Extent3DBuilder {
139 #[inline]
140 pub fn width(mut self, value: u32) -> Self {
141 self.inner.width = value;
142 self
143 }
144 #[inline]
145 pub fn height(mut self, value: u32) -> Self {
146 self.inner.height = value;
147 self
148 }
149 #[inline]
150 pub fn depth(mut self, value: u32) -> Self {
151 self.inner.depth = value;
152 self
153 }
154}
155impl core::ops::Deref for Extent3DBuilder {
156 type Target = Extent3D;
157 #[inline]
158 fn deref(&self) -> &Self::Target {
159 &self.inner
160 }
161}
162impl core::ops::DerefMut for Extent3DBuilder {
163 #[inline]
164 fn deref_mut(&mut self) -> &mut Self::Target {
165 &mut self.inner
166 }
167}
168pub struct ViewportBuilder {
170 inner: Viewport,
171}
172impl Viewport {
173 #[inline]
175 pub fn builder() -> ViewportBuilder {
176 ViewportBuilder {
177 inner: Viewport { ..Default::default() },
178 }
179 }
180}
181impl ViewportBuilder {
182 #[inline]
183 pub fn x(mut self, value: f32) -> Self {
184 self.inner.x = value;
185 self
186 }
187 #[inline]
188 pub fn y(mut self, value: f32) -> Self {
189 self.inner.y = value;
190 self
191 }
192 #[inline]
193 pub fn width(mut self, value: f32) -> Self {
194 self.inner.width = value;
195 self
196 }
197 #[inline]
198 pub fn height(mut self, value: f32) -> Self {
199 self.inner.height = value;
200 self
201 }
202 #[inline]
203 pub fn min_depth(mut self, value: f32) -> Self {
204 self.inner.min_depth = value;
205 self
206 }
207 #[inline]
208 pub fn max_depth(mut self, value: f32) -> Self {
209 self.inner.max_depth = value;
210 self
211 }
212}
213impl core::ops::Deref for ViewportBuilder {
214 type Target = Viewport;
215 #[inline]
216 fn deref(&self) -> &Self::Target {
217 &self.inner
218 }
219}
220impl core::ops::DerefMut for ViewportBuilder {
221 #[inline]
222 fn deref_mut(&mut self) -> &mut Self::Target {
223 &mut self.inner
224 }
225}
226pub struct Rect2DBuilder {
228 inner: Rect2D,
229}
230impl Rect2D {
231 #[inline]
233 pub fn builder() -> Rect2DBuilder {
234 Rect2DBuilder {
235 inner: Rect2D { ..Default::default() },
236 }
237 }
238}
239impl Rect2DBuilder {
240 #[inline]
241 pub fn offset(mut self, value: Offset2D) -> Self {
242 self.inner.offset = value;
243 self
244 }
245 #[inline]
246 pub fn extent(mut self, value: Extent2D) -> Self {
247 self.inner.extent = value;
248 self
249 }
250}
251impl core::ops::Deref for Rect2DBuilder {
252 type Target = Rect2D;
253 #[inline]
254 fn deref(&self) -> &Self::Target {
255 &self.inner
256 }
257}
258impl core::ops::DerefMut for Rect2DBuilder {
259 #[inline]
260 fn deref_mut(&mut self) -> &mut Self::Target {
261 &mut self.inner
262 }
263}
264pub struct ClearRectBuilder {
266 inner: ClearRect,
267}
268impl ClearRect {
269 #[inline]
271 pub fn builder() -> ClearRectBuilder {
272 ClearRectBuilder {
273 inner: ClearRect { ..Default::default() },
274 }
275 }
276}
277impl ClearRectBuilder {
278 #[inline]
279 pub fn rect(mut self, value: Rect2D) -> Self {
280 self.inner.rect = value;
281 self
282 }
283 #[inline]
284 pub fn base_array_layer(mut self, value: u32) -> Self {
285 self.inner.base_array_layer = value;
286 self
287 }
288 #[inline]
289 pub fn layer_count(mut self, value: u32) -> Self {
290 self.inner.layer_count = value;
291 self
292 }
293}
294impl core::ops::Deref for ClearRectBuilder {
295 type Target = ClearRect;
296 #[inline]
297 fn deref(&self) -> &Self::Target {
298 &self.inner
299 }
300}
301impl core::ops::DerefMut for ClearRectBuilder {
302 #[inline]
303 fn deref_mut(&mut self) -> &mut Self::Target {
304 &mut self.inner
305 }
306}
307pub struct ComponentMappingBuilder {
309 inner: ComponentMapping,
310}
311impl ComponentMapping {
312 #[inline]
314 pub fn builder() -> ComponentMappingBuilder {
315 ComponentMappingBuilder {
316 inner: ComponentMapping {
317 ..Default::default()
318 },
319 }
320 }
321}
322impl ComponentMappingBuilder {
323 #[inline]
324 pub fn r(mut self, value: ComponentSwizzle) -> Self {
325 self.inner.r = value;
326 self
327 }
328 #[inline]
329 pub fn g(mut self, value: ComponentSwizzle) -> Self {
330 self.inner.g = value;
331 self
332 }
333 #[inline]
334 pub fn b(mut self, value: ComponentSwizzle) -> Self {
335 self.inner.b = value;
336 self
337 }
338 #[inline]
339 pub fn a(mut self, value: ComponentSwizzle) -> Self {
340 self.inner.a = value;
341 self
342 }
343}
344impl core::ops::Deref for ComponentMappingBuilder {
345 type Target = ComponentMapping;
346 #[inline]
347 fn deref(&self) -> &Self::Target {
348 &self.inner
349 }
350}
351impl core::ops::DerefMut for ComponentMappingBuilder {
352 #[inline]
353 fn deref_mut(&mut self) -> &mut Self::Target {
354 &mut self.inner
355 }
356}
357pub struct PhysicalDevicePropertiesBuilder {
359 inner: PhysicalDeviceProperties,
360}
361impl PhysicalDeviceProperties {
362 #[inline]
364 pub fn builder() -> PhysicalDevicePropertiesBuilder {
365 PhysicalDevicePropertiesBuilder {
366 inner: PhysicalDeviceProperties {
367 ..Default::default()
368 },
369 }
370 }
371}
372impl PhysicalDevicePropertiesBuilder {
373 #[inline]
374 pub fn api_version(mut self, value: u32) -> Self {
375 self.inner.api_version = value;
376 self
377 }
378 #[inline]
379 pub fn driver_version(mut self, value: u32) -> Self {
380 self.inner.driver_version = value;
381 self
382 }
383 #[inline]
384 pub fn vendor_id(mut self, value: u32) -> Self {
385 self.inner.vendor_id = value;
386 self
387 }
388 #[inline]
389 pub fn device_id(mut self, value: u32) -> Self {
390 self.inner.device_id = value;
391 self
392 }
393 #[inline]
394 pub fn device_type(mut self, value: PhysicalDeviceType) -> Self {
395 self.inner.device_type = value;
396 self
397 }
398 #[inline]
399 pub fn device_name(
400 mut self,
401 value: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
402 ) -> Self {
403 self.inner.device_name = value;
404 self
405 }
406 #[inline]
407 pub fn pipeline_cache_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
408 self.inner.pipeline_cache_uuid = value;
409 self
410 }
411 #[inline]
412 pub fn limits(mut self, value: PhysicalDeviceLimits) -> Self {
413 self.inner.limits = value;
414 self
415 }
416 #[inline]
417 pub fn sparse_properties(mut self, value: PhysicalDeviceSparseProperties) -> Self {
418 self.inner.sparse_properties = value;
419 self
420 }
421}
422impl core::ops::Deref for PhysicalDevicePropertiesBuilder {
423 type Target = PhysicalDeviceProperties;
424 #[inline]
425 fn deref(&self) -> &Self::Target {
426 &self.inner
427 }
428}
429impl core::ops::DerefMut for PhysicalDevicePropertiesBuilder {
430 #[inline]
431 fn deref_mut(&mut self) -> &mut Self::Target {
432 &mut self.inner
433 }
434}
435pub struct ExtensionPropertiesBuilder {
437 inner: ExtensionProperties,
438}
439impl ExtensionProperties {
440 #[inline]
442 pub fn builder() -> ExtensionPropertiesBuilder {
443 ExtensionPropertiesBuilder {
444 inner: ExtensionProperties {
445 ..Default::default()
446 },
447 }
448 }
449}
450impl ExtensionPropertiesBuilder {
451 #[inline]
452 pub fn extension_name(
453 mut self,
454 value: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
455 ) -> Self {
456 self.inner.extension_name = value;
457 self
458 }
459 #[inline]
460 pub fn spec_version(mut self, value: u32) -> Self {
461 self.inner.spec_version = value;
462 self
463 }
464}
465impl core::ops::Deref for ExtensionPropertiesBuilder {
466 type Target = ExtensionProperties;
467 #[inline]
468 fn deref(&self) -> &Self::Target {
469 &self.inner
470 }
471}
472impl core::ops::DerefMut for ExtensionPropertiesBuilder {
473 #[inline]
474 fn deref_mut(&mut self) -> &mut Self::Target {
475 &mut self.inner
476 }
477}
478pub struct LayerPropertiesBuilder {
480 inner: LayerProperties,
481}
482impl LayerProperties {
483 #[inline]
485 pub fn builder() -> LayerPropertiesBuilder {
486 LayerPropertiesBuilder {
487 inner: LayerProperties {
488 ..Default::default()
489 },
490 }
491 }
492}
493impl LayerPropertiesBuilder {
494 #[inline]
495 pub fn layer_name(
496 mut self,
497 value: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
498 ) -> Self {
499 self.inner.layer_name = value;
500 self
501 }
502 #[inline]
503 pub fn spec_version(mut self, value: u32) -> Self {
504 self.inner.spec_version = value;
505 self
506 }
507 #[inline]
508 pub fn implementation_version(mut self, value: u32) -> Self {
509 self.inner.implementation_version = value;
510 self
511 }
512 #[inline]
513 pub fn description(
514 mut self,
515 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
516 ) -> Self {
517 self.inner.description = value;
518 self
519 }
520}
521impl core::ops::Deref for LayerPropertiesBuilder {
522 type Target = LayerProperties;
523 #[inline]
524 fn deref(&self) -> &Self::Target {
525 &self.inner
526 }
527}
528impl core::ops::DerefMut for LayerPropertiesBuilder {
529 #[inline]
530 fn deref_mut(&mut self) -> &mut Self::Target {
531 &mut self.inner
532 }
533}
534pub struct ApplicationInfoBuilder<'a> {
536 inner: ApplicationInfo,
537 _marker: core::marker::PhantomData<&'a ()>,
538}
539impl ApplicationInfo {
540 #[inline]
542 pub fn builder<'a>() -> ApplicationInfoBuilder<'a> {
543 ApplicationInfoBuilder {
544 inner: ApplicationInfo {
545 s_type: StructureType::from_raw(0i32),
546 ..Default::default()
547 },
548 _marker: core::marker::PhantomData,
549 }
550 }
551}
552impl<'a> ApplicationInfoBuilder<'a> {
553 #[inline]
554 pub fn application_name(mut self, value: &'a core::ffi::CStr) -> Self {
555 self.inner.p_application_name = value.as_ptr();
556 self
557 }
558 #[inline]
559 pub fn application_version(mut self, value: u32) -> Self {
560 self.inner.application_version = value;
561 self
562 }
563 #[inline]
564 pub fn engine_name(mut self, value: &'a core::ffi::CStr) -> Self {
565 self.inner.p_engine_name = value.as_ptr();
566 self
567 }
568 #[inline]
569 pub fn engine_version(mut self, value: u32) -> Self {
570 self.inner.engine_version = value;
571 self
572 }
573 #[inline]
574 pub fn api_version(mut self, value: u32) -> Self {
575 self.inner.api_version = value;
576 self
577 }
578 #[inline]
580 pub fn push_next<T: ExtendsApplicationInfo>(mut self, next: &'a mut T) -> Self {
581 unsafe {
582 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
583 (*next_ptr).p_next = self.inner.p_next as *mut _;
584 self.inner.p_next = <*mut BaseOutStructure>::cast::<
585 core::ffi::c_void,
586 >(next_ptr) as *const _;
587 }
588 self
589 }
590}
591impl<'a> core::ops::Deref for ApplicationInfoBuilder<'a> {
592 type Target = ApplicationInfo;
593 #[inline]
594 fn deref(&self) -> &Self::Target {
595 &self.inner
596 }
597}
598impl<'a> core::ops::DerefMut for ApplicationInfoBuilder<'a> {
599 #[inline]
600 fn deref_mut(&mut self) -> &mut Self::Target {
601 &mut self.inner
602 }
603}
604pub struct AllocationCallbacksBuilder<'a> {
606 inner: AllocationCallbacks,
607 _marker: core::marker::PhantomData<&'a ()>,
608}
609impl AllocationCallbacks {
610 #[inline]
612 pub fn builder<'a>() -> AllocationCallbacksBuilder<'a> {
613 AllocationCallbacksBuilder {
614 inner: AllocationCallbacks {
615 ..Default::default()
616 },
617 _marker: core::marker::PhantomData,
618 }
619 }
620}
621impl<'a> AllocationCallbacksBuilder<'a> {
622 #[inline]
623 pub fn user_data(mut self, value: *mut core::ffi::c_void) -> Self {
624 self.inner.p_user_data = value;
625 self
626 }
627 #[inline]
628 pub fn pfn_allocation(mut self, value: PFN_vkAllocationFunction) -> Self {
629 self.inner.pfn_allocation = value;
630 self
631 }
632 #[inline]
633 pub fn pfn_reallocation(mut self, value: PFN_vkReallocationFunction) -> Self {
634 self.inner.pfn_reallocation = value;
635 self
636 }
637 #[inline]
638 pub fn pfn_free(mut self, value: PFN_vkFreeFunction) -> Self {
639 self.inner.pfn_free = value;
640 self
641 }
642 #[inline]
643 pub fn pfn_internal_allocation(
644 mut self,
645 value: PFN_vkInternalAllocationNotification,
646 ) -> Self {
647 self.inner.pfn_internal_allocation = value;
648 self
649 }
650 #[inline]
651 pub fn pfn_internal_free(mut self, value: PFN_vkInternalFreeNotification) -> Self {
652 self.inner.pfn_internal_free = value;
653 self
654 }
655}
656impl<'a> core::ops::Deref for AllocationCallbacksBuilder<'a> {
657 type Target = AllocationCallbacks;
658 #[inline]
659 fn deref(&self) -> &Self::Target {
660 &self.inner
661 }
662}
663impl<'a> core::ops::DerefMut for AllocationCallbacksBuilder<'a> {
664 #[inline]
665 fn deref_mut(&mut self) -> &mut Self::Target {
666 &mut self.inner
667 }
668}
669pub struct DeviceQueueCreateInfoBuilder<'a> {
671 inner: DeviceQueueCreateInfo,
672 _marker: core::marker::PhantomData<&'a ()>,
673}
674impl DeviceQueueCreateInfo {
675 #[inline]
677 pub fn builder<'a>() -> DeviceQueueCreateInfoBuilder<'a> {
678 DeviceQueueCreateInfoBuilder {
679 inner: DeviceQueueCreateInfo {
680 s_type: StructureType::from_raw(2i32),
681 ..Default::default()
682 },
683 _marker: core::marker::PhantomData,
684 }
685 }
686}
687impl<'a> DeviceQueueCreateInfoBuilder<'a> {
688 #[inline]
689 pub fn flags(mut self, value: DeviceQueueCreateFlags) -> Self {
690 self.inner.flags = value;
691 self
692 }
693 #[inline]
694 pub fn queue_family_index(mut self, value: u32) -> Self {
695 self.inner.queue_family_index = value;
696 self
697 }
698 #[inline]
699 pub fn queue_priorities(mut self, slice: &'a [f32]) -> Self {
700 self.inner.queue_count = slice.len() as u32;
701 self.inner.p_queue_priorities = slice.as_ptr();
702 self
703 }
704 #[inline]
706 pub fn push_next<T: ExtendsDeviceQueueCreateInfo>(
707 mut self,
708 next: &'a mut T,
709 ) -> Self {
710 unsafe {
711 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
712 (*next_ptr).p_next = self.inner.p_next as *mut _;
713 self.inner.p_next = <*mut BaseOutStructure>::cast::<
714 core::ffi::c_void,
715 >(next_ptr) as *const _;
716 }
717 self
718 }
719}
720impl<'a> core::ops::Deref for DeviceQueueCreateInfoBuilder<'a> {
721 type Target = DeviceQueueCreateInfo;
722 #[inline]
723 fn deref(&self) -> &Self::Target {
724 &self.inner
725 }
726}
727impl<'a> core::ops::DerefMut for DeviceQueueCreateInfoBuilder<'a> {
728 #[inline]
729 fn deref_mut(&mut self) -> &mut Self::Target {
730 &mut self.inner
731 }
732}
733pub struct DeviceCreateInfoBuilder<'a> {
735 inner: DeviceCreateInfo,
736 _marker: core::marker::PhantomData<&'a ()>,
737}
738impl DeviceCreateInfo {
739 #[inline]
741 pub fn builder<'a>() -> DeviceCreateInfoBuilder<'a> {
742 DeviceCreateInfoBuilder {
743 inner: DeviceCreateInfo {
744 s_type: StructureType::from_raw(3i32),
745 ..Default::default()
746 },
747 _marker: core::marker::PhantomData,
748 }
749 }
750}
751impl<'a> DeviceCreateInfoBuilder<'a> {
752 #[inline]
753 pub fn flags(mut self, value: DeviceCreateFlags) -> Self {
754 self.inner.flags = value;
755 self
756 }
757 #[inline]
758 pub fn queue_create_infos(mut self, slice: &'a [DeviceQueueCreateInfo]) -> Self {
759 self.inner.queue_create_info_count = slice.len() as u32;
760 self.inner.p_queue_create_infos = slice.as_ptr();
761 self
762 }
763 #[inline]
764 pub fn enabled_layer_names(mut self, slice: &'a [*const core::ffi::c_char]) -> Self {
765 self.inner.enabled_layer_count = slice.len() as u32;
766 self.inner.pp_enabled_layer_names = slice.as_ptr();
767 self
768 }
769 #[inline]
770 pub fn enabled_extension_names(
771 mut self,
772 slice: &'a [*const core::ffi::c_char],
773 ) -> Self {
774 self.inner.enabled_extension_count = slice.len() as u32;
775 self.inner.pp_enabled_extension_names = slice.as_ptr();
776 self
777 }
778 #[inline]
779 pub fn enabled_features(mut self, value: &'a PhysicalDeviceFeatures) -> Self {
780 self.inner.p_enabled_features = value;
781 self
782 }
783 #[inline]
785 pub fn push_next<T: ExtendsDeviceCreateInfo>(mut self, next: &'a mut T) -> Self {
786 unsafe {
787 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
788 (*next_ptr).p_next = self.inner.p_next as *mut _;
789 self.inner.p_next = <*mut BaseOutStructure>::cast::<
790 core::ffi::c_void,
791 >(next_ptr) as *const _;
792 }
793 self
794 }
795}
796impl<'a> core::ops::Deref for DeviceCreateInfoBuilder<'a> {
797 type Target = DeviceCreateInfo;
798 #[inline]
799 fn deref(&self) -> &Self::Target {
800 &self.inner
801 }
802}
803impl<'a> core::ops::DerefMut for DeviceCreateInfoBuilder<'a> {
804 #[inline]
805 fn deref_mut(&mut self) -> &mut Self::Target {
806 &mut self.inner
807 }
808}
809pub struct InstanceCreateInfoBuilder<'a> {
811 inner: InstanceCreateInfo,
812 _marker: core::marker::PhantomData<&'a ()>,
813}
814impl InstanceCreateInfo {
815 #[inline]
817 pub fn builder<'a>() -> InstanceCreateInfoBuilder<'a> {
818 InstanceCreateInfoBuilder {
819 inner: InstanceCreateInfo {
820 s_type: StructureType::from_raw(1i32),
821 ..Default::default()
822 },
823 _marker: core::marker::PhantomData,
824 }
825 }
826}
827impl<'a> InstanceCreateInfoBuilder<'a> {
828 #[inline]
829 pub fn flags(mut self, value: InstanceCreateFlags) -> Self {
830 self.inner.flags = value;
831 self
832 }
833 #[inline]
834 pub fn application_info(mut self, value: &'a ApplicationInfo) -> Self {
835 self.inner.p_application_info = value;
836 self
837 }
838 #[inline]
839 pub fn enabled_layer_names(mut self, slice: &'a [*const core::ffi::c_char]) -> Self {
840 self.inner.enabled_layer_count = slice.len() as u32;
841 self.inner.pp_enabled_layer_names = slice.as_ptr();
842 self
843 }
844 #[inline]
845 pub fn enabled_extension_names(
846 mut self,
847 slice: &'a [*const core::ffi::c_char],
848 ) -> Self {
849 self.inner.enabled_extension_count = slice.len() as u32;
850 self.inner.pp_enabled_extension_names = slice.as_ptr();
851 self
852 }
853 #[inline]
855 pub fn push_next<T: ExtendsInstanceCreateInfo>(mut self, next: &'a mut T) -> Self {
856 unsafe {
857 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
858 (*next_ptr).p_next = self.inner.p_next as *mut _;
859 self.inner.p_next = <*mut BaseOutStructure>::cast::<
860 core::ffi::c_void,
861 >(next_ptr) as *const _;
862 }
863 self
864 }
865}
866impl<'a> core::ops::Deref for InstanceCreateInfoBuilder<'a> {
867 type Target = InstanceCreateInfo;
868 #[inline]
869 fn deref(&self) -> &Self::Target {
870 &self.inner
871 }
872}
873impl<'a> core::ops::DerefMut for InstanceCreateInfoBuilder<'a> {
874 #[inline]
875 fn deref_mut(&mut self) -> &mut Self::Target {
876 &mut self.inner
877 }
878}
879pub struct QueueFamilyPropertiesBuilder {
881 inner: QueueFamilyProperties,
882}
883impl QueueFamilyProperties {
884 #[inline]
886 pub fn builder() -> QueueFamilyPropertiesBuilder {
887 QueueFamilyPropertiesBuilder {
888 inner: QueueFamilyProperties {
889 ..Default::default()
890 },
891 }
892 }
893}
894impl QueueFamilyPropertiesBuilder {
895 #[inline]
896 pub fn queue_flags(mut self, value: QueueFlags) -> Self {
897 self.inner.queue_flags = value;
898 self
899 }
900 #[inline]
901 pub fn queue_count(mut self, value: u32) -> Self {
902 self.inner.queue_count = value;
903 self
904 }
905 #[inline]
906 pub fn timestamp_valid_bits(mut self, value: u32) -> Self {
907 self.inner.timestamp_valid_bits = value;
908 self
909 }
910 #[inline]
911 pub fn min_image_transfer_granularity(mut self, value: Extent3D) -> Self {
912 self.inner.min_image_transfer_granularity = value;
913 self
914 }
915}
916impl core::ops::Deref for QueueFamilyPropertiesBuilder {
917 type Target = QueueFamilyProperties;
918 #[inline]
919 fn deref(&self) -> &Self::Target {
920 &self.inner
921 }
922}
923impl core::ops::DerefMut for QueueFamilyPropertiesBuilder {
924 #[inline]
925 fn deref_mut(&mut self) -> &mut Self::Target {
926 &mut self.inner
927 }
928}
929pub struct PhysicalDeviceMemoryPropertiesBuilder {
931 inner: PhysicalDeviceMemoryProperties,
932}
933impl PhysicalDeviceMemoryProperties {
934 #[inline]
936 pub fn builder() -> PhysicalDeviceMemoryPropertiesBuilder {
937 PhysicalDeviceMemoryPropertiesBuilder {
938 inner: PhysicalDeviceMemoryProperties {
939 ..Default::default()
940 },
941 }
942 }
943}
944impl PhysicalDeviceMemoryPropertiesBuilder {
945 #[inline]
946 pub fn memory_type_count(mut self, value: u32) -> Self {
947 self.inner.memory_type_count = value;
948 self
949 }
950 #[inline]
951 pub fn memory_types(
952 mut self,
953 value: [MemoryType; MAX_MEMORY_TYPES as usize],
954 ) -> Self {
955 self.inner.memory_types = value;
956 self
957 }
958 #[inline]
959 pub fn memory_heap_count(mut self, value: u32) -> Self {
960 self.inner.memory_heap_count = value;
961 self
962 }
963 #[inline]
964 pub fn memory_heaps(
965 mut self,
966 value: [MemoryHeap; MAX_MEMORY_HEAPS as usize],
967 ) -> Self {
968 self.inner.memory_heaps = value;
969 self
970 }
971}
972impl core::ops::Deref for PhysicalDeviceMemoryPropertiesBuilder {
973 type Target = PhysicalDeviceMemoryProperties;
974 #[inline]
975 fn deref(&self) -> &Self::Target {
976 &self.inner
977 }
978}
979impl core::ops::DerefMut for PhysicalDeviceMemoryPropertiesBuilder {
980 #[inline]
981 fn deref_mut(&mut self) -> &mut Self::Target {
982 &mut self.inner
983 }
984}
985pub struct MemoryAllocateInfoBuilder<'a> {
987 inner: MemoryAllocateInfo,
988 _marker: core::marker::PhantomData<&'a ()>,
989}
990impl MemoryAllocateInfo {
991 #[inline]
993 pub fn builder<'a>() -> MemoryAllocateInfoBuilder<'a> {
994 MemoryAllocateInfoBuilder {
995 inner: MemoryAllocateInfo {
996 s_type: StructureType::from_raw(5i32),
997 ..Default::default()
998 },
999 _marker: core::marker::PhantomData,
1000 }
1001 }
1002}
1003impl<'a> MemoryAllocateInfoBuilder<'a> {
1004 #[inline]
1005 pub fn allocation_size(mut self, value: u64) -> Self {
1006 self.inner.allocation_size = value;
1007 self
1008 }
1009 #[inline]
1010 pub fn memory_type_index(mut self, value: u32) -> Self {
1011 self.inner.memory_type_index = value;
1012 self
1013 }
1014 #[inline]
1016 pub fn push_next<T: ExtendsMemoryAllocateInfo>(mut self, next: &'a mut T) -> Self {
1017 unsafe {
1018 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1019 (*next_ptr).p_next = self.inner.p_next as *mut _;
1020 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1021 core::ffi::c_void,
1022 >(next_ptr) as *const _;
1023 }
1024 self
1025 }
1026}
1027impl<'a> core::ops::Deref for MemoryAllocateInfoBuilder<'a> {
1028 type Target = MemoryAllocateInfo;
1029 #[inline]
1030 fn deref(&self) -> &Self::Target {
1031 &self.inner
1032 }
1033}
1034impl<'a> core::ops::DerefMut for MemoryAllocateInfoBuilder<'a> {
1035 #[inline]
1036 fn deref_mut(&mut self) -> &mut Self::Target {
1037 &mut self.inner
1038 }
1039}
1040pub struct MemoryRequirementsBuilder {
1042 inner: MemoryRequirements,
1043}
1044impl MemoryRequirements {
1045 #[inline]
1047 pub fn builder() -> MemoryRequirementsBuilder {
1048 MemoryRequirementsBuilder {
1049 inner: MemoryRequirements {
1050 ..Default::default()
1051 },
1052 }
1053 }
1054}
1055impl MemoryRequirementsBuilder {
1056 #[inline]
1057 pub fn size(mut self, value: u64) -> Self {
1058 self.inner.size = value;
1059 self
1060 }
1061 #[inline]
1062 pub fn alignment(mut self, value: u64) -> Self {
1063 self.inner.alignment = value;
1064 self
1065 }
1066 #[inline]
1067 pub fn memory_type_bits(mut self, value: u32) -> Self {
1068 self.inner.memory_type_bits = value;
1069 self
1070 }
1071}
1072impl core::ops::Deref for MemoryRequirementsBuilder {
1073 type Target = MemoryRequirements;
1074 #[inline]
1075 fn deref(&self) -> &Self::Target {
1076 &self.inner
1077 }
1078}
1079impl core::ops::DerefMut for MemoryRequirementsBuilder {
1080 #[inline]
1081 fn deref_mut(&mut self) -> &mut Self::Target {
1082 &mut self.inner
1083 }
1084}
1085pub struct SparseImageFormatPropertiesBuilder {
1087 inner: SparseImageFormatProperties,
1088}
1089impl SparseImageFormatProperties {
1090 #[inline]
1092 pub fn builder() -> SparseImageFormatPropertiesBuilder {
1093 SparseImageFormatPropertiesBuilder {
1094 inner: SparseImageFormatProperties {
1095 ..Default::default()
1096 },
1097 }
1098 }
1099}
1100impl SparseImageFormatPropertiesBuilder {
1101 #[inline]
1102 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
1103 self.inner.aspect_mask = value;
1104 self
1105 }
1106 #[inline]
1107 pub fn image_granularity(mut self, value: Extent3D) -> Self {
1108 self.inner.image_granularity = value;
1109 self
1110 }
1111 #[inline]
1112 pub fn flags(mut self, value: SparseImageFormatFlags) -> Self {
1113 self.inner.flags = value;
1114 self
1115 }
1116}
1117impl core::ops::Deref for SparseImageFormatPropertiesBuilder {
1118 type Target = SparseImageFormatProperties;
1119 #[inline]
1120 fn deref(&self) -> &Self::Target {
1121 &self.inner
1122 }
1123}
1124impl core::ops::DerefMut for SparseImageFormatPropertiesBuilder {
1125 #[inline]
1126 fn deref_mut(&mut self) -> &mut Self::Target {
1127 &mut self.inner
1128 }
1129}
1130pub struct SparseImageMemoryRequirementsBuilder {
1132 inner: SparseImageMemoryRequirements,
1133}
1134impl SparseImageMemoryRequirements {
1135 #[inline]
1137 pub fn builder() -> SparseImageMemoryRequirementsBuilder {
1138 SparseImageMemoryRequirementsBuilder {
1139 inner: SparseImageMemoryRequirements {
1140 ..Default::default()
1141 },
1142 }
1143 }
1144}
1145impl SparseImageMemoryRequirementsBuilder {
1146 #[inline]
1147 pub fn format_properties(mut self, value: SparseImageFormatProperties) -> Self {
1148 self.inner.format_properties = value;
1149 self
1150 }
1151 #[inline]
1152 pub fn image_mip_tail_first_lod(mut self, value: u32) -> Self {
1153 self.inner.image_mip_tail_first_lod = value;
1154 self
1155 }
1156 #[inline]
1157 pub fn image_mip_tail_size(mut self, value: u64) -> Self {
1158 self.inner.image_mip_tail_size = value;
1159 self
1160 }
1161 #[inline]
1162 pub fn image_mip_tail_offset(mut self, value: u64) -> Self {
1163 self.inner.image_mip_tail_offset = value;
1164 self
1165 }
1166 #[inline]
1167 pub fn image_mip_tail_stride(mut self, value: u64) -> Self {
1168 self.inner.image_mip_tail_stride = value;
1169 self
1170 }
1171}
1172impl core::ops::Deref for SparseImageMemoryRequirementsBuilder {
1173 type Target = SparseImageMemoryRequirements;
1174 #[inline]
1175 fn deref(&self) -> &Self::Target {
1176 &self.inner
1177 }
1178}
1179impl core::ops::DerefMut for SparseImageMemoryRequirementsBuilder {
1180 #[inline]
1181 fn deref_mut(&mut self) -> &mut Self::Target {
1182 &mut self.inner
1183 }
1184}
1185pub struct MemoryTypeBuilder {
1187 inner: MemoryType,
1188}
1189impl MemoryType {
1190 #[inline]
1192 pub fn builder() -> MemoryTypeBuilder {
1193 MemoryTypeBuilder {
1194 inner: MemoryType { ..Default::default() },
1195 }
1196 }
1197}
1198impl MemoryTypeBuilder {
1199 #[inline]
1200 pub fn property_flags(mut self, value: MemoryPropertyFlags) -> Self {
1201 self.inner.property_flags = value;
1202 self
1203 }
1204 #[inline]
1205 pub fn heap_index(mut self, value: u32) -> Self {
1206 self.inner.heap_index = value;
1207 self
1208 }
1209}
1210impl core::ops::Deref for MemoryTypeBuilder {
1211 type Target = MemoryType;
1212 #[inline]
1213 fn deref(&self) -> &Self::Target {
1214 &self.inner
1215 }
1216}
1217impl core::ops::DerefMut for MemoryTypeBuilder {
1218 #[inline]
1219 fn deref_mut(&mut self) -> &mut Self::Target {
1220 &mut self.inner
1221 }
1222}
1223pub struct MemoryHeapBuilder {
1225 inner: MemoryHeap,
1226}
1227impl MemoryHeap {
1228 #[inline]
1230 pub fn builder() -> MemoryHeapBuilder {
1231 MemoryHeapBuilder {
1232 inner: MemoryHeap { ..Default::default() },
1233 }
1234 }
1235}
1236impl MemoryHeapBuilder {
1237 #[inline]
1238 pub fn size(mut self, value: u64) -> Self {
1239 self.inner.size = value;
1240 self
1241 }
1242 #[inline]
1243 pub fn flags(mut self, value: MemoryHeapFlags) -> Self {
1244 self.inner.flags = value;
1245 self
1246 }
1247}
1248impl core::ops::Deref for MemoryHeapBuilder {
1249 type Target = MemoryHeap;
1250 #[inline]
1251 fn deref(&self) -> &Self::Target {
1252 &self.inner
1253 }
1254}
1255impl core::ops::DerefMut for MemoryHeapBuilder {
1256 #[inline]
1257 fn deref_mut(&mut self) -> &mut Self::Target {
1258 &mut self.inner
1259 }
1260}
1261pub struct MappedMemoryRangeBuilder<'a> {
1263 inner: MappedMemoryRange,
1264 _marker: core::marker::PhantomData<&'a ()>,
1265}
1266impl MappedMemoryRange {
1267 #[inline]
1269 pub fn builder<'a>() -> MappedMemoryRangeBuilder<'a> {
1270 MappedMemoryRangeBuilder {
1271 inner: MappedMemoryRange {
1272 s_type: StructureType::from_raw(6i32),
1273 ..Default::default()
1274 },
1275 _marker: core::marker::PhantomData,
1276 }
1277 }
1278}
1279impl<'a> MappedMemoryRangeBuilder<'a> {
1280 #[inline]
1281 pub fn memory(mut self, value: DeviceMemory) -> Self {
1282 self.inner.memory = value;
1283 self
1284 }
1285 #[inline]
1286 pub fn offset(mut self, value: u64) -> Self {
1287 self.inner.offset = value;
1288 self
1289 }
1290 #[inline]
1291 pub fn size(mut self, value: u64) -> Self {
1292 self.inner.size = value;
1293 self
1294 }
1295 #[inline]
1297 pub fn push_next<T: ExtendsMappedMemoryRange>(mut self, next: &'a mut T) -> Self {
1298 unsafe {
1299 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1300 (*next_ptr).p_next = self.inner.p_next as *mut _;
1301 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1302 core::ffi::c_void,
1303 >(next_ptr) as *const _;
1304 }
1305 self
1306 }
1307}
1308impl<'a> core::ops::Deref for MappedMemoryRangeBuilder<'a> {
1309 type Target = MappedMemoryRange;
1310 #[inline]
1311 fn deref(&self) -> &Self::Target {
1312 &self.inner
1313 }
1314}
1315impl<'a> core::ops::DerefMut for MappedMemoryRangeBuilder<'a> {
1316 #[inline]
1317 fn deref_mut(&mut self) -> &mut Self::Target {
1318 &mut self.inner
1319 }
1320}
1321pub struct FormatPropertiesBuilder {
1323 inner: FormatProperties,
1324}
1325impl FormatProperties {
1326 #[inline]
1328 pub fn builder() -> FormatPropertiesBuilder {
1329 FormatPropertiesBuilder {
1330 inner: FormatProperties {
1331 ..Default::default()
1332 },
1333 }
1334 }
1335}
1336impl FormatPropertiesBuilder {
1337 #[inline]
1338 pub fn linear_tiling_features(mut self, value: FormatFeatureFlags) -> Self {
1339 self.inner.linear_tiling_features = value;
1340 self
1341 }
1342 #[inline]
1343 pub fn optimal_tiling_features(mut self, value: FormatFeatureFlags) -> Self {
1344 self.inner.optimal_tiling_features = value;
1345 self
1346 }
1347 #[inline]
1348 pub fn buffer_features(mut self, value: FormatFeatureFlags) -> Self {
1349 self.inner.buffer_features = value;
1350 self
1351 }
1352}
1353impl core::ops::Deref for FormatPropertiesBuilder {
1354 type Target = FormatProperties;
1355 #[inline]
1356 fn deref(&self) -> &Self::Target {
1357 &self.inner
1358 }
1359}
1360impl core::ops::DerefMut for FormatPropertiesBuilder {
1361 #[inline]
1362 fn deref_mut(&mut self) -> &mut Self::Target {
1363 &mut self.inner
1364 }
1365}
1366pub struct ImageFormatPropertiesBuilder {
1368 inner: ImageFormatProperties,
1369}
1370impl ImageFormatProperties {
1371 #[inline]
1373 pub fn builder() -> ImageFormatPropertiesBuilder {
1374 ImageFormatPropertiesBuilder {
1375 inner: ImageFormatProperties {
1376 ..Default::default()
1377 },
1378 }
1379 }
1380}
1381impl ImageFormatPropertiesBuilder {
1382 #[inline]
1383 pub fn max_extent(mut self, value: Extent3D) -> Self {
1384 self.inner.max_extent = value;
1385 self
1386 }
1387 #[inline]
1388 pub fn max_mip_levels(mut self, value: u32) -> Self {
1389 self.inner.max_mip_levels = value;
1390 self
1391 }
1392 #[inline]
1393 pub fn max_array_layers(mut self, value: u32) -> Self {
1394 self.inner.max_array_layers = value;
1395 self
1396 }
1397 #[inline]
1398 pub fn sample_counts(mut self, value: SampleCountFlags) -> Self {
1399 self.inner.sample_counts = value;
1400 self
1401 }
1402 #[inline]
1403 pub fn max_resource_size(mut self, value: u64) -> Self {
1404 self.inner.max_resource_size = value;
1405 self
1406 }
1407}
1408impl core::ops::Deref for ImageFormatPropertiesBuilder {
1409 type Target = ImageFormatProperties;
1410 #[inline]
1411 fn deref(&self) -> &Self::Target {
1412 &self.inner
1413 }
1414}
1415impl core::ops::DerefMut for ImageFormatPropertiesBuilder {
1416 #[inline]
1417 fn deref_mut(&mut self) -> &mut Self::Target {
1418 &mut self.inner
1419 }
1420}
1421pub struct DescriptorBufferInfoBuilder {
1423 inner: DescriptorBufferInfo,
1424}
1425impl DescriptorBufferInfo {
1426 #[inline]
1428 pub fn builder() -> DescriptorBufferInfoBuilder {
1429 DescriptorBufferInfoBuilder {
1430 inner: DescriptorBufferInfo {
1431 ..Default::default()
1432 },
1433 }
1434 }
1435}
1436impl DescriptorBufferInfoBuilder {
1437 #[inline]
1438 pub fn buffer(mut self, value: Buffer) -> Self {
1439 self.inner.buffer = value;
1440 self
1441 }
1442 #[inline]
1443 pub fn offset(mut self, value: u64) -> Self {
1444 self.inner.offset = value;
1445 self
1446 }
1447 #[inline]
1448 pub fn range(mut self, value: u64) -> Self {
1449 self.inner.range = value;
1450 self
1451 }
1452}
1453impl core::ops::Deref for DescriptorBufferInfoBuilder {
1454 type Target = DescriptorBufferInfo;
1455 #[inline]
1456 fn deref(&self) -> &Self::Target {
1457 &self.inner
1458 }
1459}
1460impl core::ops::DerefMut for DescriptorBufferInfoBuilder {
1461 #[inline]
1462 fn deref_mut(&mut self) -> &mut Self::Target {
1463 &mut self.inner
1464 }
1465}
1466pub struct DescriptorImageInfoBuilder {
1468 inner: DescriptorImageInfo,
1469}
1470impl DescriptorImageInfo {
1471 #[inline]
1473 pub fn builder() -> DescriptorImageInfoBuilder {
1474 DescriptorImageInfoBuilder {
1475 inner: DescriptorImageInfo {
1476 ..Default::default()
1477 },
1478 }
1479 }
1480}
1481impl DescriptorImageInfoBuilder {
1482 #[inline]
1483 pub fn sampler(mut self, value: Sampler) -> Self {
1484 self.inner.sampler = value;
1485 self
1486 }
1487 #[inline]
1488 pub fn image_view(mut self, value: ImageView) -> Self {
1489 self.inner.image_view = value;
1490 self
1491 }
1492 #[inline]
1493 pub fn image_layout(mut self, value: ImageLayout) -> Self {
1494 self.inner.image_layout = value;
1495 self
1496 }
1497}
1498impl core::ops::Deref for DescriptorImageInfoBuilder {
1499 type Target = DescriptorImageInfo;
1500 #[inline]
1501 fn deref(&self) -> &Self::Target {
1502 &self.inner
1503 }
1504}
1505impl core::ops::DerefMut for DescriptorImageInfoBuilder {
1506 #[inline]
1507 fn deref_mut(&mut self) -> &mut Self::Target {
1508 &mut self.inner
1509 }
1510}
1511pub struct WriteDescriptorSetBuilder<'a> {
1513 inner: WriteDescriptorSet,
1514 _marker: core::marker::PhantomData<&'a ()>,
1515}
1516impl WriteDescriptorSet {
1517 #[inline]
1519 pub fn builder<'a>() -> WriteDescriptorSetBuilder<'a> {
1520 WriteDescriptorSetBuilder {
1521 inner: WriteDescriptorSet {
1522 s_type: StructureType::from_raw(35i32),
1523 ..Default::default()
1524 },
1525 _marker: core::marker::PhantomData,
1526 }
1527 }
1528}
1529impl<'a> WriteDescriptorSetBuilder<'a> {
1530 #[inline]
1531 pub fn dst_set(mut self, value: DescriptorSet) -> Self {
1532 self.inner.dst_set = value;
1533 self
1534 }
1535 #[inline]
1536 pub fn dst_binding(mut self, value: u32) -> Self {
1537 self.inner.dst_binding = value;
1538 self
1539 }
1540 #[inline]
1541 pub fn dst_array_element(mut self, value: u32) -> Self {
1542 self.inner.dst_array_element = value;
1543 self
1544 }
1545 #[inline]
1546 pub fn descriptor_type(mut self, value: DescriptorType) -> Self {
1547 self.inner.descriptor_type = value;
1548 self
1549 }
1550 #[inline]
1551 pub fn image_info(mut self, slice: &'a [DescriptorImageInfo]) -> Self {
1552 self.inner.descriptor_count = slice.len() as u32;
1553 self.inner.p_image_info = slice.as_ptr();
1554 self
1555 }
1556 #[inline]
1557 pub fn buffer_info(mut self, slice: &'a [DescriptorBufferInfo]) -> Self {
1558 self.inner.descriptor_count = slice.len() as u32;
1559 self.inner.p_buffer_info = slice.as_ptr();
1560 self
1561 }
1562 #[inline]
1563 pub fn texel_buffer_view(mut self, slice: &'a [BufferView]) -> Self {
1564 self.inner.descriptor_count = slice.len() as u32;
1565 self.inner.p_texel_buffer_view = slice.as_ptr();
1566 self
1567 }
1568 #[inline]
1570 pub fn push_next<T: ExtendsWriteDescriptorSet>(mut self, next: &'a mut T) -> Self {
1571 unsafe {
1572 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1573 (*next_ptr).p_next = self.inner.p_next as *mut _;
1574 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1575 core::ffi::c_void,
1576 >(next_ptr) as *const _;
1577 }
1578 self
1579 }
1580}
1581impl<'a> core::ops::Deref for WriteDescriptorSetBuilder<'a> {
1582 type Target = WriteDescriptorSet;
1583 #[inline]
1584 fn deref(&self) -> &Self::Target {
1585 &self.inner
1586 }
1587}
1588impl<'a> core::ops::DerefMut for WriteDescriptorSetBuilder<'a> {
1589 #[inline]
1590 fn deref_mut(&mut self) -> &mut Self::Target {
1591 &mut self.inner
1592 }
1593}
1594pub struct CopyDescriptorSetBuilder<'a> {
1596 inner: CopyDescriptorSet,
1597 _marker: core::marker::PhantomData<&'a ()>,
1598}
1599impl CopyDescriptorSet {
1600 #[inline]
1602 pub fn builder<'a>() -> CopyDescriptorSetBuilder<'a> {
1603 CopyDescriptorSetBuilder {
1604 inner: CopyDescriptorSet {
1605 s_type: StructureType::from_raw(36i32),
1606 ..Default::default()
1607 },
1608 _marker: core::marker::PhantomData,
1609 }
1610 }
1611}
1612impl<'a> CopyDescriptorSetBuilder<'a> {
1613 #[inline]
1614 pub fn src_set(mut self, value: DescriptorSet) -> Self {
1615 self.inner.src_set = value;
1616 self
1617 }
1618 #[inline]
1619 pub fn src_binding(mut self, value: u32) -> Self {
1620 self.inner.src_binding = value;
1621 self
1622 }
1623 #[inline]
1624 pub fn src_array_element(mut self, value: u32) -> Self {
1625 self.inner.src_array_element = value;
1626 self
1627 }
1628 #[inline]
1629 pub fn dst_set(mut self, value: DescriptorSet) -> Self {
1630 self.inner.dst_set = value;
1631 self
1632 }
1633 #[inline]
1634 pub fn dst_binding(mut self, value: u32) -> Self {
1635 self.inner.dst_binding = value;
1636 self
1637 }
1638 #[inline]
1639 pub fn dst_array_element(mut self, value: u32) -> Self {
1640 self.inner.dst_array_element = value;
1641 self
1642 }
1643 #[inline]
1644 pub fn descriptor_count(mut self, value: u32) -> Self {
1645 self.inner.descriptor_count = value;
1646 self
1647 }
1648 #[inline]
1650 pub fn push_next<T: ExtendsCopyDescriptorSet>(mut self, next: &'a mut T) -> Self {
1651 unsafe {
1652 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1653 (*next_ptr).p_next = self.inner.p_next as *mut _;
1654 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1655 core::ffi::c_void,
1656 >(next_ptr) as *const _;
1657 }
1658 self
1659 }
1660}
1661impl<'a> core::ops::Deref for CopyDescriptorSetBuilder<'a> {
1662 type Target = CopyDescriptorSet;
1663 #[inline]
1664 fn deref(&self) -> &Self::Target {
1665 &self.inner
1666 }
1667}
1668impl<'a> core::ops::DerefMut for CopyDescriptorSetBuilder<'a> {
1669 #[inline]
1670 fn deref_mut(&mut self) -> &mut Self::Target {
1671 &mut self.inner
1672 }
1673}
1674pub struct BufferUsageFlags2CreateInfoBuilder<'a> {
1676 inner: BufferUsageFlags2CreateInfo,
1677 _marker: core::marker::PhantomData<&'a ()>,
1678}
1679impl BufferUsageFlags2CreateInfo {
1680 #[inline]
1682 pub fn builder<'a>() -> BufferUsageFlags2CreateInfoBuilder<'a> {
1683 BufferUsageFlags2CreateInfoBuilder {
1684 inner: BufferUsageFlags2CreateInfo {
1685 s_type: StructureType::from_raw(1000470006i32),
1686 ..Default::default()
1687 },
1688 _marker: core::marker::PhantomData,
1689 }
1690 }
1691}
1692impl<'a> BufferUsageFlags2CreateInfoBuilder<'a> {
1693 #[inline]
1694 pub fn usage(mut self, value: BufferUsageFlags2) -> Self {
1695 self.inner.usage = value;
1696 self
1697 }
1698 #[inline]
1700 pub fn push_next<T: ExtendsBufferUsageFlags2CreateInfo>(
1701 mut self,
1702 next: &'a mut T,
1703 ) -> Self {
1704 unsafe {
1705 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1706 (*next_ptr).p_next = self.inner.p_next as *mut _;
1707 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1708 core::ffi::c_void,
1709 >(next_ptr) as *const _;
1710 }
1711 self
1712 }
1713}
1714impl<'a> core::ops::Deref for BufferUsageFlags2CreateInfoBuilder<'a> {
1715 type Target = BufferUsageFlags2CreateInfo;
1716 #[inline]
1717 fn deref(&self) -> &Self::Target {
1718 &self.inner
1719 }
1720}
1721impl<'a> core::ops::DerefMut for BufferUsageFlags2CreateInfoBuilder<'a> {
1722 #[inline]
1723 fn deref_mut(&mut self) -> &mut Self::Target {
1724 &mut self.inner
1725 }
1726}
1727pub struct BufferCreateInfoBuilder<'a> {
1729 inner: BufferCreateInfo,
1730 _marker: core::marker::PhantomData<&'a ()>,
1731}
1732impl BufferCreateInfo {
1733 #[inline]
1735 pub fn builder<'a>() -> BufferCreateInfoBuilder<'a> {
1736 BufferCreateInfoBuilder {
1737 inner: BufferCreateInfo {
1738 s_type: StructureType::from_raw(12i32),
1739 ..Default::default()
1740 },
1741 _marker: core::marker::PhantomData,
1742 }
1743 }
1744}
1745impl<'a> BufferCreateInfoBuilder<'a> {
1746 #[inline]
1747 pub fn flags(mut self, value: BufferCreateFlags) -> Self {
1748 self.inner.flags = value;
1749 self
1750 }
1751 #[inline]
1752 pub fn size(mut self, value: u64) -> Self {
1753 self.inner.size = value;
1754 self
1755 }
1756 #[inline]
1757 pub fn usage(mut self, value: BufferUsageFlags) -> Self {
1758 self.inner.usage = value;
1759 self
1760 }
1761 #[inline]
1762 pub fn sharing_mode(mut self, value: SharingMode) -> Self {
1763 self.inner.sharing_mode = value;
1764 self
1765 }
1766 #[inline]
1767 pub fn queue_family_indices(mut self, slice: &'a [u32]) -> Self {
1768 self.inner.queue_family_index_count = slice.len() as u32;
1769 self.inner.p_queue_family_indices = slice.as_ptr();
1770 self
1771 }
1772 #[inline]
1774 pub fn push_next<T: ExtendsBufferCreateInfo>(mut self, next: &'a mut T) -> Self {
1775 unsafe {
1776 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1777 (*next_ptr).p_next = self.inner.p_next as *mut _;
1778 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1779 core::ffi::c_void,
1780 >(next_ptr) as *const _;
1781 }
1782 self
1783 }
1784}
1785impl<'a> core::ops::Deref for BufferCreateInfoBuilder<'a> {
1786 type Target = BufferCreateInfo;
1787 #[inline]
1788 fn deref(&self) -> &Self::Target {
1789 &self.inner
1790 }
1791}
1792impl<'a> core::ops::DerefMut for BufferCreateInfoBuilder<'a> {
1793 #[inline]
1794 fn deref_mut(&mut self) -> &mut Self::Target {
1795 &mut self.inner
1796 }
1797}
1798pub struct BufferViewCreateInfoBuilder<'a> {
1800 inner: BufferViewCreateInfo,
1801 _marker: core::marker::PhantomData<&'a ()>,
1802}
1803impl BufferViewCreateInfo {
1804 #[inline]
1806 pub fn builder<'a>() -> BufferViewCreateInfoBuilder<'a> {
1807 BufferViewCreateInfoBuilder {
1808 inner: BufferViewCreateInfo {
1809 s_type: StructureType::from_raw(13i32),
1810 ..Default::default()
1811 },
1812 _marker: core::marker::PhantomData,
1813 }
1814 }
1815}
1816impl<'a> BufferViewCreateInfoBuilder<'a> {
1817 #[inline]
1818 pub fn flags(mut self, value: BufferViewCreateFlags) -> Self {
1819 self.inner.flags = value;
1820 self
1821 }
1822 #[inline]
1823 pub fn buffer(mut self, value: Buffer) -> Self {
1824 self.inner.buffer = value;
1825 self
1826 }
1827 #[inline]
1828 pub fn format(mut self, value: Format) -> Self {
1829 self.inner.format = value;
1830 self
1831 }
1832 #[inline]
1833 pub fn offset(mut self, value: u64) -> Self {
1834 self.inner.offset = value;
1835 self
1836 }
1837 #[inline]
1838 pub fn range(mut self, value: u64) -> Self {
1839 self.inner.range = value;
1840 self
1841 }
1842 #[inline]
1844 pub fn push_next<T: ExtendsBufferViewCreateInfo>(mut self, next: &'a mut T) -> Self {
1845 unsafe {
1846 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
1847 (*next_ptr).p_next = self.inner.p_next as *mut _;
1848 self.inner.p_next = <*mut BaseOutStructure>::cast::<
1849 core::ffi::c_void,
1850 >(next_ptr) as *const _;
1851 }
1852 self
1853 }
1854}
1855impl<'a> core::ops::Deref for BufferViewCreateInfoBuilder<'a> {
1856 type Target = BufferViewCreateInfo;
1857 #[inline]
1858 fn deref(&self) -> &Self::Target {
1859 &self.inner
1860 }
1861}
1862impl<'a> core::ops::DerefMut for BufferViewCreateInfoBuilder<'a> {
1863 #[inline]
1864 fn deref_mut(&mut self) -> &mut Self::Target {
1865 &mut self.inner
1866 }
1867}
1868pub struct ImageSubresourceBuilder {
1870 inner: ImageSubresource,
1871}
1872impl ImageSubresource {
1873 #[inline]
1875 pub fn builder() -> ImageSubresourceBuilder {
1876 ImageSubresourceBuilder {
1877 inner: ImageSubresource {
1878 ..Default::default()
1879 },
1880 }
1881 }
1882}
1883impl ImageSubresourceBuilder {
1884 #[inline]
1885 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
1886 self.inner.aspect_mask = value;
1887 self
1888 }
1889 #[inline]
1890 pub fn mip_level(mut self, value: u32) -> Self {
1891 self.inner.mip_level = value;
1892 self
1893 }
1894 #[inline]
1895 pub fn array_layer(mut self, value: u32) -> Self {
1896 self.inner.array_layer = value;
1897 self
1898 }
1899}
1900impl core::ops::Deref for ImageSubresourceBuilder {
1901 type Target = ImageSubresource;
1902 #[inline]
1903 fn deref(&self) -> &Self::Target {
1904 &self.inner
1905 }
1906}
1907impl core::ops::DerefMut for ImageSubresourceBuilder {
1908 #[inline]
1909 fn deref_mut(&mut self) -> &mut Self::Target {
1910 &mut self.inner
1911 }
1912}
1913pub struct ImageSubresourceLayersBuilder {
1915 inner: ImageSubresourceLayers,
1916}
1917impl ImageSubresourceLayers {
1918 #[inline]
1920 pub fn builder() -> ImageSubresourceLayersBuilder {
1921 ImageSubresourceLayersBuilder {
1922 inner: ImageSubresourceLayers {
1923 ..Default::default()
1924 },
1925 }
1926 }
1927}
1928impl ImageSubresourceLayersBuilder {
1929 #[inline]
1930 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
1931 self.inner.aspect_mask = value;
1932 self
1933 }
1934 #[inline]
1935 pub fn mip_level(mut self, value: u32) -> Self {
1936 self.inner.mip_level = value;
1937 self
1938 }
1939 #[inline]
1940 pub fn base_array_layer(mut self, value: u32) -> Self {
1941 self.inner.base_array_layer = value;
1942 self
1943 }
1944 #[inline]
1945 pub fn layer_count(mut self, value: u32) -> Self {
1946 self.inner.layer_count = value;
1947 self
1948 }
1949}
1950impl core::ops::Deref for ImageSubresourceLayersBuilder {
1951 type Target = ImageSubresourceLayers;
1952 #[inline]
1953 fn deref(&self) -> &Self::Target {
1954 &self.inner
1955 }
1956}
1957impl core::ops::DerefMut for ImageSubresourceLayersBuilder {
1958 #[inline]
1959 fn deref_mut(&mut self) -> &mut Self::Target {
1960 &mut self.inner
1961 }
1962}
1963pub struct ImageSubresourceRangeBuilder {
1965 inner: ImageSubresourceRange,
1966}
1967impl ImageSubresourceRange {
1968 #[inline]
1970 pub fn builder() -> ImageSubresourceRangeBuilder {
1971 ImageSubresourceRangeBuilder {
1972 inner: ImageSubresourceRange {
1973 ..Default::default()
1974 },
1975 }
1976 }
1977}
1978impl ImageSubresourceRangeBuilder {
1979 #[inline]
1980 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
1981 self.inner.aspect_mask = value;
1982 self
1983 }
1984 #[inline]
1985 pub fn base_mip_level(mut self, value: u32) -> Self {
1986 self.inner.base_mip_level = value;
1987 self
1988 }
1989 #[inline]
1990 pub fn level_count(mut self, value: u32) -> Self {
1991 self.inner.level_count = value;
1992 self
1993 }
1994 #[inline]
1995 pub fn base_array_layer(mut self, value: u32) -> Self {
1996 self.inner.base_array_layer = value;
1997 self
1998 }
1999 #[inline]
2000 pub fn layer_count(mut self, value: u32) -> Self {
2001 self.inner.layer_count = value;
2002 self
2003 }
2004}
2005impl core::ops::Deref for ImageSubresourceRangeBuilder {
2006 type Target = ImageSubresourceRange;
2007 #[inline]
2008 fn deref(&self) -> &Self::Target {
2009 &self.inner
2010 }
2011}
2012impl core::ops::DerefMut for ImageSubresourceRangeBuilder {
2013 #[inline]
2014 fn deref_mut(&mut self) -> &mut Self::Target {
2015 &mut self.inner
2016 }
2017}
2018pub struct MemoryBarrierBuilder<'a> {
2020 inner: MemoryBarrier,
2021 _marker: core::marker::PhantomData<&'a ()>,
2022}
2023impl MemoryBarrier {
2024 #[inline]
2026 pub fn builder<'a>() -> MemoryBarrierBuilder<'a> {
2027 MemoryBarrierBuilder {
2028 inner: MemoryBarrier {
2029 s_type: StructureType::from_raw(46i32),
2030 ..Default::default()
2031 },
2032 _marker: core::marker::PhantomData,
2033 }
2034 }
2035}
2036impl<'a> MemoryBarrierBuilder<'a> {
2037 #[inline]
2038 pub fn src_access_mask(mut self, value: AccessFlags) -> Self {
2039 self.inner.src_access_mask = value;
2040 self
2041 }
2042 #[inline]
2043 pub fn dst_access_mask(mut self, value: AccessFlags) -> Self {
2044 self.inner.dst_access_mask = value;
2045 self
2046 }
2047 #[inline]
2049 pub fn push_next<T: ExtendsMemoryBarrier>(mut self, next: &'a mut T) -> Self {
2050 unsafe {
2051 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2052 (*next_ptr).p_next = self.inner.p_next as *mut _;
2053 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2054 core::ffi::c_void,
2055 >(next_ptr) as *const _;
2056 }
2057 self
2058 }
2059}
2060impl<'a> core::ops::Deref for MemoryBarrierBuilder<'a> {
2061 type Target = MemoryBarrier;
2062 #[inline]
2063 fn deref(&self) -> &Self::Target {
2064 &self.inner
2065 }
2066}
2067impl<'a> core::ops::DerefMut for MemoryBarrierBuilder<'a> {
2068 #[inline]
2069 fn deref_mut(&mut self) -> &mut Self::Target {
2070 &mut self.inner
2071 }
2072}
2073pub struct BufferMemoryBarrierBuilder<'a> {
2075 inner: BufferMemoryBarrier,
2076 _marker: core::marker::PhantomData<&'a ()>,
2077}
2078impl BufferMemoryBarrier {
2079 #[inline]
2081 pub fn builder<'a>() -> BufferMemoryBarrierBuilder<'a> {
2082 BufferMemoryBarrierBuilder {
2083 inner: BufferMemoryBarrier {
2084 s_type: StructureType::from_raw(44i32),
2085 ..Default::default()
2086 },
2087 _marker: core::marker::PhantomData,
2088 }
2089 }
2090}
2091impl<'a> BufferMemoryBarrierBuilder<'a> {
2092 #[inline]
2093 pub fn src_access_mask(mut self, value: AccessFlags) -> Self {
2094 self.inner.src_access_mask = value;
2095 self
2096 }
2097 #[inline]
2098 pub fn dst_access_mask(mut self, value: AccessFlags) -> Self {
2099 self.inner.dst_access_mask = value;
2100 self
2101 }
2102 #[inline]
2103 pub fn src_queue_family_index(mut self, value: u32) -> Self {
2104 self.inner.src_queue_family_index = value;
2105 self
2106 }
2107 #[inline]
2108 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
2109 self.inner.dst_queue_family_index = value;
2110 self
2111 }
2112 #[inline]
2113 pub fn buffer(mut self, value: Buffer) -> Self {
2114 self.inner.buffer = value;
2115 self
2116 }
2117 #[inline]
2118 pub fn offset(mut self, value: u64) -> Self {
2119 self.inner.offset = value;
2120 self
2121 }
2122 #[inline]
2123 pub fn size(mut self, value: u64) -> Self {
2124 self.inner.size = value;
2125 self
2126 }
2127 #[inline]
2129 pub fn push_next<T: ExtendsBufferMemoryBarrier>(mut self, next: &'a mut T) -> Self {
2130 unsafe {
2131 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2132 (*next_ptr).p_next = self.inner.p_next as *mut _;
2133 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2134 core::ffi::c_void,
2135 >(next_ptr) as *const _;
2136 }
2137 self
2138 }
2139}
2140impl<'a> core::ops::Deref for BufferMemoryBarrierBuilder<'a> {
2141 type Target = BufferMemoryBarrier;
2142 #[inline]
2143 fn deref(&self) -> &Self::Target {
2144 &self.inner
2145 }
2146}
2147impl<'a> core::ops::DerefMut for BufferMemoryBarrierBuilder<'a> {
2148 #[inline]
2149 fn deref_mut(&mut self) -> &mut Self::Target {
2150 &mut self.inner
2151 }
2152}
2153pub struct ImageMemoryBarrierBuilder<'a> {
2155 inner: ImageMemoryBarrier,
2156 _marker: core::marker::PhantomData<&'a ()>,
2157}
2158impl ImageMemoryBarrier {
2159 #[inline]
2161 pub fn builder<'a>() -> ImageMemoryBarrierBuilder<'a> {
2162 ImageMemoryBarrierBuilder {
2163 inner: ImageMemoryBarrier {
2164 s_type: StructureType::from_raw(45i32),
2165 ..Default::default()
2166 },
2167 _marker: core::marker::PhantomData,
2168 }
2169 }
2170}
2171impl<'a> ImageMemoryBarrierBuilder<'a> {
2172 #[inline]
2173 pub fn src_access_mask(mut self, value: AccessFlags) -> Self {
2174 self.inner.src_access_mask = value;
2175 self
2176 }
2177 #[inline]
2178 pub fn dst_access_mask(mut self, value: AccessFlags) -> Self {
2179 self.inner.dst_access_mask = value;
2180 self
2181 }
2182 #[inline]
2183 pub fn old_layout(mut self, value: ImageLayout) -> Self {
2184 self.inner.old_layout = value;
2185 self
2186 }
2187 #[inline]
2188 pub fn new_layout(mut self, value: ImageLayout) -> Self {
2189 self.inner.new_layout = value;
2190 self
2191 }
2192 #[inline]
2193 pub fn src_queue_family_index(mut self, value: u32) -> Self {
2194 self.inner.src_queue_family_index = value;
2195 self
2196 }
2197 #[inline]
2198 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
2199 self.inner.dst_queue_family_index = value;
2200 self
2201 }
2202 #[inline]
2203 pub fn image(mut self, value: Image) -> Self {
2204 self.inner.image = value;
2205 self
2206 }
2207 #[inline]
2208 pub fn subresource_range(mut self, value: ImageSubresourceRange) -> Self {
2209 self.inner.subresource_range = value;
2210 self
2211 }
2212 #[inline]
2214 pub fn push_next<T: ExtendsImageMemoryBarrier>(mut self, next: &'a mut T) -> Self {
2215 unsafe {
2216 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2217 (*next_ptr).p_next = self.inner.p_next as *mut _;
2218 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2219 core::ffi::c_void,
2220 >(next_ptr) as *const _;
2221 }
2222 self
2223 }
2224}
2225impl<'a> core::ops::Deref for ImageMemoryBarrierBuilder<'a> {
2226 type Target = ImageMemoryBarrier;
2227 #[inline]
2228 fn deref(&self) -> &Self::Target {
2229 &self.inner
2230 }
2231}
2232impl<'a> core::ops::DerefMut for ImageMemoryBarrierBuilder<'a> {
2233 #[inline]
2234 fn deref_mut(&mut self) -> &mut Self::Target {
2235 &mut self.inner
2236 }
2237}
2238pub struct ImageCreateInfoBuilder<'a> {
2240 inner: ImageCreateInfo,
2241 _marker: core::marker::PhantomData<&'a ()>,
2242}
2243impl ImageCreateInfo {
2244 #[inline]
2246 pub fn builder<'a>() -> ImageCreateInfoBuilder<'a> {
2247 ImageCreateInfoBuilder {
2248 inner: ImageCreateInfo {
2249 s_type: StructureType::from_raw(14i32),
2250 ..Default::default()
2251 },
2252 _marker: core::marker::PhantomData,
2253 }
2254 }
2255}
2256impl<'a> ImageCreateInfoBuilder<'a> {
2257 #[inline]
2258 pub fn flags(mut self, value: ImageCreateFlags) -> Self {
2259 self.inner.flags = value;
2260 self
2261 }
2262 #[inline]
2263 pub fn image_type(mut self, value: ImageType) -> Self {
2264 self.inner.image_type = value;
2265 self
2266 }
2267 #[inline]
2268 pub fn format(mut self, value: Format) -> Self {
2269 self.inner.format = value;
2270 self
2271 }
2272 #[inline]
2273 pub fn extent(mut self, value: Extent3D) -> Self {
2274 self.inner.extent = value;
2275 self
2276 }
2277 #[inline]
2278 pub fn mip_levels(mut self, value: u32) -> Self {
2279 self.inner.mip_levels = value;
2280 self
2281 }
2282 #[inline]
2283 pub fn array_layers(mut self, value: u32) -> Self {
2284 self.inner.array_layers = value;
2285 self
2286 }
2287 #[inline]
2288 pub fn samples(mut self, value: SampleCountFlagBits) -> Self {
2289 self.inner.samples = value;
2290 self
2291 }
2292 #[inline]
2293 pub fn tiling(mut self, value: ImageTiling) -> Self {
2294 self.inner.tiling = value;
2295 self
2296 }
2297 #[inline]
2298 pub fn usage(mut self, value: ImageUsageFlags) -> Self {
2299 self.inner.usage = value;
2300 self
2301 }
2302 #[inline]
2303 pub fn sharing_mode(mut self, value: SharingMode) -> Self {
2304 self.inner.sharing_mode = value;
2305 self
2306 }
2307 #[inline]
2308 pub fn queue_family_indices(mut self, slice: &'a [u32]) -> Self {
2309 self.inner.queue_family_index_count = slice.len() as u32;
2310 self.inner.p_queue_family_indices = slice.as_ptr();
2311 self
2312 }
2313 #[inline]
2314 pub fn initial_layout(mut self, value: ImageLayout) -> Self {
2315 self.inner.initial_layout = value;
2316 self
2317 }
2318 #[inline]
2320 pub fn push_next<T: ExtendsImageCreateInfo>(mut self, next: &'a mut T) -> Self {
2321 unsafe {
2322 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2323 (*next_ptr).p_next = self.inner.p_next as *mut _;
2324 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2325 core::ffi::c_void,
2326 >(next_ptr) as *const _;
2327 }
2328 self
2329 }
2330}
2331impl<'a> core::ops::Deref for ImageCreateInfoBuilder<'a> {
2332 type Target = ImageCreateInfo;
2333 #[inline]
2334 fn deref(&self) -> &Self::Target {
2335 &self.inner
2336 }
2337}
2338impl<'a> core::ops::DerefMut for ImageCreateInfoBuilder<'a> {
2339 #[inline]
2340 fn deref_mut(&mut self) -> &mut Self::Target {
2341 &mut self.inner
2342 }
2343}
2344pub struct SubresourceLayoutBuilder {
2346 inner: SubresourceLayout,
2347}
2348impl SubresourceLayout {
2349 #[inline]
2351 pub fn builder() -> SubresourceLayoutBuilder {
2352 SubresourceLayoutBuilder {
2353 inner: SubresourceLayout {
2354 ..Default::default()
2355 },
2356 }
2357 }
2358}
2359impl SubresourceLayoutBuilder {
2360 #[inline]
2361 pub fn offset(mut self, value: u64) -> Self {
2362 self.inner.offset = value;
2363 self
2364 }
2365 #[inline]
2366 pub fn size(mut self, value: u64) -> Self {
2367 self.inner.size = value;
2368 self
2369 }
2370 #[inline]
2371 pub fn row_pitch(mut self, value: u64) -> Self {
2372 self.inner.row_pitch = value;
2373 self
2374 }
2375 #[inline]
2376 pub fn array_pitch(mut self, value: u64) -> Self {
2377 self.inner.array_pitch = value;
2378 self
2379 }
2380 #[inline]
2381 pub fn depth_pitch(mut self, value: u64) -> Self {
2382 self.inner.depth_pitch = value;
2383 self
2384 }
2385}
2386impl core::ops::Deref for SubresourceLayoutBuilder {
2387 type Target = SubresourceLayout;
2388 #[inline]
2389 fn deref(&self) -> &Self::Target {
2390 &self.inner
2391 }
2392}
2393impl core::ops::DerefMut for SubresourceLayoutBuilder {
2394 #[inline]
2395 fn deref_mut(&mut self) -> &mut Self::Target {
2396 &mut self.inner
2397 }
2398}
2399pub struct ImageViewCreateInfoBuilder<'a> {
2401 inner: ImageViewCreateInfo,
2402 _marker: core::marker::PhantomData<&'a ()>,
2403}
2404impl ImageViewCreateInfo {
2405 #[inline]
2407 pub fn builder<'a>() -> ImageViewCreateInfoBuilder<'a> {
2408 ImageViewCreateInfoBuilder {
2409 inner: ImageViewCreateInfo {
2410 s_type: StructureType::from_raw(15i32),
2411 ..Default::default()
2412 },
2413 _marker: core::marker::PhantomData,
2414 }
2415 }
2416}
2417impl<'a> ImageViewCreateInfoBuilder<'a> {
2418 #[inline]
2419 pub fn flags(mut self, value: ImageViewCreateFlags) -> Self {
2420 self.inner.flags = value;
2421 self
2422 }
2423 #[inline]
2424 pub fn image(mut self, value: Image) -> Self {
2425 self.inner.image = value;
2426 self
2427 }
2428 #[inline]
2429 pub fn view_type(mut self, value: ImageViewType) -> Self {
2430 self.inner.view_type = value;
2431 self
2432 }
2433 #[inline]
2434 pub fn format(mut self, value: Format) -> Self {
2435 self.inner.format = value;
2436 self
2437 }
2438 #[inline]
2439 pub fn components(mut self, value: ComponentMapping) -> Self {
2440 self.inner.components = value;
2441 self
2442 }
2443 #[inline]
2444 pub fn subresource_range(mut self, value: ImageSubresourceRange) -> Self {
2445 self.inner.subresource_range = value;
2446 self
2447 }
2448 #[inline]
2450 pub fn push_next<T: ExtendsImageViewCreateInfo>(mut self, next: &'a mut T) -> Self {
2451 unsafe {
2452 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2453 (*next_ptr).p_next = self.inner.p_next as *mut _;
2454 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2455 core::ffi::c_void,
2456 >(next_ptr) as *const _;
2457 }
2458 self
2459 }
2460}
2461impl<'a> core::ops::Deref for ImageViewCreateInfoBuilder<'a> {
2462 type Target = ImageViewCreateInfo;
2463 #[inline]
2464 fn deref(&self) -> &Self::Target {
2465 &self.inner
2466 }
2467}
2468impl<'a> core::ops::DerefMut for ImageViewCreateInfoBuilder<'a> {
2469 #[inline]
2470 fn deref_mut(&mut self) -> &mut Self::Target {
2471 &mut self.inner
2472 }
2473}
2474pub struct BufferCopyBuilder {
2476 inner: BufferCopy,
2477}
2478impl BufferCopy {
2479 #[inline]
2481 pub fn builder() -> BufferCopyBuilder {
2482 BufferCopyBuilder {
2483 inner: BufferCopy { ..Default::default() },
2484 }
2485 }
2486}
2487impl BufferCopyBuilder {
2488 #[inline]
2489 pub fn src_offset(mut self, value: u64) -> Self {
2490 self.inner.src_offset = value;
2491 self
2492 }
2493 #[inline]
2494 pub fn dst_offset(mut self, value: u64) -> Self {
2495 self.inner.dst_offset = value;
2496 self
2497 }
2498 #[inline]
2499 pub fn size(mut self, value: u64) -> Self {
2500 self.inner.size = value;
2501 self
2502 }
2503}
2504impl core::ops::Deref for BufferCopyBuilder {
2505 type Target = BufferCopy;
2506 #[inline]
2507 fn deref(&self) -> &Self::Target {
2508 &self.inner
2509 }
2510}
2511impl core::ops::DerefMut for BufferCopyBuilder {
2512 #[inline]
2513 fn deref_mut(&mut self) -> &mut Self::Target {
2514 &mut self.inner
2515 }
2516}
2517pub struct SparseMemoryBindBuilder {
2519 inner: SparseMemoryBind,
2520}
2521impl SparseMemoryBind {
2522 #[inline]
2524 pub fn builder() -> SparseMemoryBindBuilder {
2525 SparseMemoryBindBuilder {
2526 inner: SparseMemoryBind {
2527 ..Default::default()
2528 },
2529 }
2530 }
2531}
2532impl SparseMemoryBindBuilder {
2533 #[inline]
2534 pub fn resource_offset(mut self, value: u64) -> Self {
2535 self.inner.resource_offset = value;
2536 self
2537 }
2538 #[inline]
2539 pub fn size(mut self, value: u64) -> Self {
2540 self.inner.size = value;
2541 self
2542 }
2543 #[inline]
2544 pub fn memory(mut self, value: DeviceMemory) -> Self {
2545 self.inner.memory = value;
2546 self
2547 }
2548 #[inline]
2549 pub fn memory_offset(mut self, value: u64) -> Self {
2550 self.inner.memory_offset = value;
2551 self
2552 }
2553 #[inline]
2554 pub fn flags(mut self, value: SparseMemoryBindFlags) -> Self {
2555 self.inner.flags = value;
2556 self
2557 }
2558}
2559impl core::ops::Deref for SparseMemoryBindBuilder {
2560 type Target = SparseMemoryBind;
2561 #[inline]
2562 fn deref(&self) -> &Self::Target {
2563 &self.inner
2564 }
2565}
2566impl core::ops::DerefMut for SparseMemoryBindBuilder {
2567 #[inline]
2568 fn deref_mut(&mut self) -> &mut Self::Target {
2569 &mut self.inner
2570 }
2571}
2572pub struct SparseImageMemoryBindBuilder {
2574 inner: SparseImageMemoryBind,
2575}
2576impl SparseImageMemoryBind {
2577 #[inline]
2579 pub fn builder() -> SparseImageMemoryBindBuilder {
2580 SparseImageMemoryBindBuilder {
2581 inner: SparseImageMemoryBind {
2582 ..Default::default()
2583 },
2584 }
2585 }
2586}
2587impl SparseImageMemoryBindBuilder {
2588 #[inline]
2589 pub fn subresource(mut self, value: ImageSubresource) -> Self {
2590 self.inner.subresource = value;
2591 self
2592 }
2593 #[inline]
2594 pub fn offset(mut self, value: Offset3D) -> Self {
2595 self.inner.offset = value;
2596 self
2597 }
2598 #[inline]
2599 pub fn extent(mut self, value: Extent3D) -> Self {
2600 self.inner.extent = value;
2601 self
2602 }
2603 #[inline]
2604 pub fn memory(mut self, value: DeviceMemory) -> Self {
2605 self.inner.memory = value;
2606 self
2607 }
2608 #[inline]
2609 pub fn memory_offset(mut self, value: u64) -> Self {
2610 self.inner.memory_offset = value;
2611 self
2612 }
2613 #[inline]
2614 pub fn flags(mut self, value: SparseMemoryBindFlags) -> Self {
2615 self.inner.flags = value;
2616 self
2617 }
2618}
2619impl core::ops::Deref for SparseImageMemoryBindBuilder {
2620 type Target = SparseImageMemoryBind;
2621 #[inline]
2622 fn deref(&self) -> &Self::Target {
2623 &self.inner
2624 }
2625}
2626impl core::ops::DerefMut for SparseImageMemoryBindBuilder {
2627 #[inline]
2628 fn deref_mut(&mut self) -> &mut Self::Target {
2629 &mut self.inner
2630 }
2631}
2632pub struct SparseBufferMemoryBindInfoBuilder<'a> {
2634 inner: SparseBufferMemoryBindInfo,
2635 _marker: core::marker::PhantomData<&'a ()>,
2636}
2637impl SparseBufferMemoryBindInfo {
2638 #[inline]
2640 pub fn builder<'a>() -> SparseBufferMemoryBindInfoBuilder<'a> {
2641 SparseBufferMemoryBindInfoBuilder {
2642 inner: SparseBufferMemoryBindInfo {
2643 ..Default::default()
2644 },
2645 _marker: core::marker::PhantomData,
2646 }
2647 }
2648}
2649impl<'a> SparseBufferMemoryBindInfoBuilder<'a> {
2650 #[inline]
2651 pub fn buffer(mut self, value: Buffer) -> Self {
2652 self.inner.buffer = value;
2653 self
2654 }
2655 #[inline]
2656 pub fn binds(mut self, slice: &'a [SparseMemoryBind]) -> Self {
2657 self.inner.bind_count = slice.len() as u32;
2658 self.inner.p_binds = slice.as_ptr();
2659 self
2660 }
2661}
2662impl<'a> core::ops::Deref for SparseBufferMemoryBindInfoBuilder<'a> {
2663 type Target = SparseBufferMemoryBindInfo;
2664 #[inline]
2665 fn deref(&self) -> &Self::Target {
2666 &self.inner
2667 }
2668}
2669impl<'a> core::ops::DerefMut for SparseBufferMemoryBindInfoBuilder<'a> {
2670 #[inline]
2671 fn deref_mut(&mut self) -> &mut Self::Target {
2672 &mut self.inner
2673 }
2674}
2675pub struct SparseImageOpaqueMemoryBindInfoBuilder<'a> {
2677 inner: SparseImageOpaqueMemoryBindInfo,
2678 _marker: core::marker::PhantomData<&'a ()>,
2679}
2680impl SparseImageOpaqueMemoryBindInfo {
2681 #[inline]
2683 pub fn builder<'a>() -> SparseImageOpaqueMemoryBindInfoBuilder<'a> {
2684 SparseImageOpaqueMemoryBindInfoBuilder {
2685 inner: SparseImageOpaqueMemoryBindInfo {
2686 ..Default::default()
2687 },
2688 _marker: core::marker::PhantomData,
2689 }
2690 }
2691}
2692impl<'a> SparseImageOpaqueMemoryBindInfoBuilder<'a> {
2693 #[inline]
2694 pub fn image(mut self, value: Image) -> Self {
2695 self.inner.image = value;
2696 self
2697 }
2698 #[inline]
2699 pub fn binds(mut self, slice: &'a [SparseMemoryBind]) -> Self {
2700 self.inner.bind_count = slice.len() as u32;
2701 self.inner.p_binds = slice.as_ptr();
2702 self
2703 }
2704}
2705impl<'a> core::ops::Deref for SparseImageOpaqueMemoryBindInfoBuilder<'a> {
2706 type Target = SparseImageOpaqueMemoryBindInfo;
2707 #[inline]
2708 fn deref(&self) -> &Self::Target {
2709 &self.inner
2710 }
2711}
2712impl<'a> core::ops::DerefMut for SparseImageOpaqueMemoryBindInfoBuilder<'a> {
2713 #[inline]
2714 fn deref_mut(&mut self) -> &mut Self::Target {
2715 &mut self.inner
2716 }
2717}
2718pub struct SparseImageMemoryBindInfoBuilder<'a> {
2720 inner: SparseImageMemoryBindInfo,
2721 _marker: core::marker::PhantomData<&'a ()>,
2722}
2723impl SparseImageMemoryBindInfo {
2724 #[inline]
2726 pub fn builder<'a>() -> SparseImageMemoryBindInfoBuilder<'a> {
2727 SparseImageMemoryBindInfoBuilder {
2728 inner: SparseImageMemoryBindInfo {
2729 ..Default::default()
2730 },
2731 _marker: core::marker::PhantomData,
2732 }
2733 }
2734}
2735impl<'a> SparseImageMemoryBindInfoBuilder<'a> {
2736 #[inline]
2737 pub fn image(mut self, value: Image) -> Self {
2738 self.inner.image = value;
2739 self
2740 }
2741 #[inline]
2742 pub fn binds(mut self, slice: &'a [SparseImageMemoryBind]) -> Self {
2743 self.inner.bind_count = slice.len() as u32;
2744 self.inner.p_binds = slice.as_ptr();
2745 self
2746 }
2747}
2748impl<'a> core::ops::Deref for SparseImageMemoryBindInfoBuilder<'a> {
2749 type Target = SparseImageMemoryBindInfo;
2750 #[inline]
2751 fn deref(&self) -> &Self::Target {
2752 &self.inner
2753 }
2754}
2755impl<'a> core::ops::DerefMut for SparseImageMemoryBindInfoBuilder<'a> {
2756 #[inline]
2757 fn deref_mut(&mut self) -> &mut Self::Target {
2758 &mut self.inner
2759 }
2760}
2761pub struct BindSparseInfoBuilder<'a> {
2763 inner: BindSparseInfo,
2764 _marker: core::marker::PhantomData<&'a ()>,
2765}
2766impl BindSparseInfo {
2767 #[inline]
2769 pub fn builder<'a>() -> BindSparseInfoBuilder<'a> {
2770 BindSparseInfoBuilder {
2771 inner: BindSparseInfo {
2772 s_type: StructureType::from_raw(7i32),
2773 ..Default::default()
2774 },
2775 _marker: core::marker::PhantomData,
2776 }
2777 }
2778}
2779impl<'a> BindSparseInfoBuilder<'a> {
2780 #[inline]
2781 pub fn wait_semaphores(mut self, slice: &'a [Semaphore]) -> Self {
2782 self.inner.wait_semaphore_count = slice.len() as u32;
2783 self.inner.p_wait_semaphores = slice.as_ptr();
2784 self
2785 }
2786 #[inline]
2787 pub fn buffer_binds(mut self, slice: &'a [SparseBufferMemoryBindInfo]) -> Self {
2788 self.inner.buffer_bind_count = slice.len() as u32;
2789 self.inner.p_buffer_binds = slice.as_ptr();
2790 self
2791 }
2792 #[inline]
2793 pub fn image_opaque_binds(
2794 mut self,
2795 slice: &'a [SparseImageOpaqueMemoryBindInfo],
2796 ) -> Self {
2797 self.inner.image_opaque_bind_count = slice.len() as u32;
2798 self.inner.p_image_opaque_binds = slice.as_ptr();
2799 self
2800 }
2801 #[inline]
2802 pub fn image_binds(mut self, slice: &'a [SparseImageMemoryBindInfo]) -> Self {
2803 self.inner.image_bind_count = slice.len() as u32;
2804 self.inner.p_image_binds = slice.as_ptr();
2805 self
2806 }
2807 #[inline]
2808 pub fn signal_semaphores(mut self, slice: &'a [Semaphore]) -> Self {
2809 self.inner.signal_semaphore_count = slice.len() as u32;
2810 self.inner.p_signal_semaphores = slice.as_ptr();
2811 self
2812 }
2813 #[inline]
2815 pub fn push_next<T: ExtendsBindSparseInfo>(mut self, next: &'a mut T) -> Self {
2816 unsafe {
2817 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
2818 (*next_ptr).p_next = self.inner.p_next as *mut _;
2819 self.inner.p_next = <*mut BaseOutStructure>::cast::<
2820 core::ffi::c_void,
2821 >(next_ptr) as *const _;
2822 }
2823 self
2824 }
2825}
2826impl<'a> core::ops::Deref for BindSparseInfoBuilder<'a> {
2827 type Target = BindSparseInfo;
2828 #[inline]
2829 fn deref(&self) -> &Self::Target {
2830 &self.inner
2831 }
2832}
2833impl<'a> core::ops::DerefMut for BindSparseInfoBuilder<'a> {
2834 #[inline]
2835 fn deref_mut(&mut self) -> &mut Self::Target {
2836 &mut self.inner
2837 }
2838}
2839pub struct ImageCopyBuilder {
2841 inner: ImageCopy,
2842}
2843impl ImageCopy {
2844 #[inline]
2846 pub fn builder() -> ImageCopyBuilder {
2847 ImageCopyBuilder {
2848 inner: ImageCopy { ..Default::default() },
2849 }
2850 }
2851}
2852impl ImageCopyBuilder {
2853 #[inline]
2854 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
2855 self.inner.src_subresource = value;
2856 self
2857 }
2858 #[inline]
2859 pub fn src_offset(mut self, value: Offset3D) -> Self {
2860 self.inner.src_offset = value;
2861 self
2862 }
2863 #[inline]
2864 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
2865 self.inner.dst_subresource = value;
2866 self
2867 }
2868 #[inline]
2869 pub fn dst_offset(mut self, value: Offset3D) -> Self {
2870 self.inner.dst_offset = value;
2871 self
2872 }
2873 #[inline]
2874 pub fn extent(mut self, value: Extent3D) -> Self {
2875 self.inner.extent = value;
2876 self
2877 }
2878}
2879impl core::ops::Deref for ImageCopyBuilder {
2880 type Target = ImageCopy;
2881 #[inline]
2882 fn deref(&self) -> &Self::Target {
2883 &self.inner
2884 }
2885}
2886impl core::ops::DerefMut for ImageCopyBuilder {
2887 #[inline]
2888 fn deref_mut(&mut self) -> &mut Self::Target {
2889 &mut self.inner
2890 }
2891}
2892pub struct ImageBlitBuilder {
2894 inner: ImageBlit,
2895}
2896impl ImageBlit {
2897 #[inline]
2899 pub fn builder() -> ImageBlitBuilder {
2900 ImageBlitBuilder {
2901 inner: ImageBlit { ..Default::default() },
2902 }
2903 }
2904}
2905impl ImageBlitBuilder {
2906 #[inline]
2907 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
2908 self.inner.src_subresource = value;
2909 self
2910 }
2911 #[inline]
2912 pub fn src_offsets(mut self, value: [Offset3D; 2usize]) -> Self {
2913 self.inner.src_offsets = value;
2914 self
2915 }
2916 #[inline]
2917 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
2918 self.inner.dst_subresource = value;
2919 self
2920 }
2921 #[inline]
2922 pub fn dst_offsets(mut self, value: [Offset3D; 2usize]) -> Self {
2923 self.inner.dst_offsets = value;
2924 self
2925 }
2926}
2927impl core::ops::Deref for ImageBlitBuilder {
2928 type Target = ImageBlit;
2929 #[inline]
2930 fn deref(&self) -> &Self::Target {
2931 &self.inner
2932 }
2933}
2934impl core::ops::DerefMut for ImageBlitBuilder {
2935 #[inline]
2936 fn deref_mut(&mut self) -> &mut Self::Target {
2937 &mut self.inner
2938 }
2939}
2940pub struct BufferImageCopyBuilder {
2942 inner: BufferImageCopy,
2943}
2944impl BufferImageCopy {
2945 #[inline]
2947 pub fn builder() -> BufferImageCopyBuilder {
2948 BufferImageCopyBuilder {
2949 inner: BufferImageCopy {
2950 ..Default::default()
2951 },
2952 }
2953 }
2954}
2955impl BufferImageCopyBuilder {
2956 #[inline]
2957 pub fn buffer_offset(mut self, value: u64) -> Self {
2958 self.inner.buffer_offset = value;
2959 self
2960 }
2961 #[inline]
2962 pub fn buffer_row_length(mut self, value: u32) -> Self {
2963 self.inner.buffer_row_length = value;
2964 self
2965 }
2966 #[inline]
2967 pub fn buffer_image_height(mut self, value: u32) -> Self {
2968 self.inner.buffer_image_height = value;
2969 self
2970 }
2971 #[inline]
2972 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
2973 self.inner.image_subresource = value;
2974 self
2975 }
2976 #[inline]
2977 pub fn image_offset(mut self, value: Offset3D) -> Self {
2978 self.inner.image_offset = value;
2979 self
2980 }
2981 #[inline]
2982 pub fn image_extent(mut self, value: Extent3D) -> Self {
2983 self.inner.image_extent = value;
2984 self
2985 }
2986}
2987impl core::ops::Deref for BufferImageCopyBuilder {
2988 type Target = BufferImageCopy;
2989 #[inline]
2990 fn deref(&self) -> &Self::Target {
2991 &self.inner
2992 }
2993}
2994impl core::ops::DerefMut for BufferImageCopyBuilder {
2995 #[inline]
2996 fn deref_mut(&mut self) -> &mut Self::Target {
2997 &mut self.inner
2998 }
2999}
3000pub struct StridedDeviceAddressRangeKHRBuilder {
3002 inner: StridedDeviceAddressRangeKHR,
3003}
3004impl StridedDeviceAddressRangeKHR {
3005 #[inline]
3007 pub fn builder() -> StridedDeviceAddressRangeKHRBuilder {
3008 StridedDeviceAddressRangeKHRBuilder {
3009 inner: StridedDeviceAddressRangeKHR {
3010 ..Default::default()
3011 },
3012 }
3013 }
3014}
3015impl StridedDeviceAddressRangeKHRBuilder {
3016 #[inline]
3017 pub fn address(mut self, value: u64) -> Self {
3018 self.inner.address = value;
3019 self
3020 }
3021 #[inline]
3022 pub fn size(mut self, value: u64) -> Self {
3023 self.inner.size = value;
3024 self
3025 }
3026 #[inline]
3027 pub fn stride(mut self, value: u64) -> Self {
3028 self.inner.stride = value;
3029 self
3030 }
3031}
3032impl core::ops::Deref for StridedDeviceAddressRangeKHRBuilder {
3033 type Target = StridedDeviceAddressRangeKHR;
3034 #[inline]
3035 fn deref(&self) -> &Self::Target {
3036 &self.inner
3037 }
3038}
3039impl core::ops::DerefMut for StridedDeviceAddressRangeKHRBuilder {
3040 #[inline]
3041 fn deref_mut(&mut self) -> &mut Self::Target {
3042 &mut self.inner
3043 }
3044}
3045pub struct CopyMemoryIndirectCommandKHRBuilder {
3047 inner: CopyMemoryIndirectCommandKHR,
3048}
3049impl CopyMemoryIndirectCommandKHR {
3050 #[inline]
3052 pub fn builder() -> CopyMemoryIndirectCommandKHRBuilder {
3053 CopyMemoryIndirectCommandKHRBuilder {
3054 inner: CopyMemoryIndirectCommandKHR {
3055 ..Default::default()
3056 },
3057 }
3058 }
3059}
3060impl CopyMemoryIndirectCommandKHRBuilder {
3061 #[inline]
3062 pub fn src_address(mut self, value: u64) -> Self {
3063 self.inner.src_address = value;
3064 self
3065 }
3066 #[inline]
3067 pub fn dst_address(mut self, value: u64) -> Self {
3068 self.inner.dst_address = value;
3069 self
3070 }
3071 #[inline]
3072 pub fn size(mut self, value: u64) -> Self {
3073 self.inner.size = value;
3074 self
3075 }
3076}
3077impl core::ops::Deref for CopyMemoryIndirectCommandKHRBuilder {
3078 type Target = CopyMemoryIndirectCommandKHR;
3079 #[inline]
3080 fn deref(&self) -> &Self::Target {
3081 &self.inner
3082 }
3083}
3084impl core::ops::DerefMut for CopyMemoryIndirectCommandKHRBuilder {
3085 #[inline]
3086 fn deref_mut(&mut self) -> &mut Self::Target {
3087 &mut self.inner
3088 }
3089}
3090pub struct CopyMemoryIndirectInfoKHRBuilder<'a> {
3092 inner: CopyMemoryIndirectInfoKHR,
3093 _marker: core::marker::PhantomData<&'a ()>,
3094}
3095impl CopyMemoryIndirectInfoKHR {
3096 #[inline]
3098 pub fn builder<'a>() -> CopyMemoryIndirectInfoKHRBuilder<'a> {
3099 CopyMemoryIndirectInfoKHRBuilder {
3100 inner: CopyMemoryIndirectInfoKHR {
3101 s_type: StructureType::from_raw(1000549002i32),
3102 ..Default::default()
3103 },
3104 _marker: core::marker::PhantomData,
3105 }
3106 }
3107}
3108impl<'a> CopyMemoryIndirectInfoKHRBuilder<'a> {
3109 #[inline]
3110 pub fn src_copy_flags(mut self, value: AddressCopyFlagsKHR) -> Self {
3111 self.inner.src_copy_flags = value;
3112 self
3113 }
3114 #[inline]
3115 pub fn dst_copy_flags(mut self, value: AddressCopyFlagsKHR) -> Self {
3116 self.inner.dst_copy_flags = value;
3117 self
3118 }
3119 #[inline]
3120 pub fn copy_count(mut self, value: u32) -> Self {
3121 self.inner.copy_count = value;
3122 self
3123 }
3124 #[inline]
3125 pub fn copy_address_range(mut self, value: StridedDeviceAddressRangeKHR) -> Self {
3126 self.inner.copy_address_range = value;
3127 self
3128 }
3129 #[inline]
3131 pub fn push_next<T: ExtendsCopyMemoryIndirectInfoKHR>(
3132 mut self,
3133 next: &'a mut T,
3134 ) -> Self {
3135 unsafe {
3136 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3137 (*next_ptr).p_next = self.inner.p_next as *mut _;
3138 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3139 core::ffi::c_void,
3140 >(next_ptr) as *const _;
3141 }
3142 self
3143 }
3144}
3145impl<'a> core::ops::Deref for CopyMemoryIndirectInfoKHRBuilder<'a> {
3146 type Target = CopyMemoryIndirectInfoKHR;
3147 #[inline]
3148 fn deref(&self) -> &Self::Target {
3149 &self.inner
3150 }
3151}
3152impl<'a> core::ops::DerefMut for CopyMemoryIndirectInfoKHRBuilder<'a> {
3153 #[inline]
3154 fn deref_mut(&mut self) -> &mut Self::Target {
3155 &mut self.inner
3156 }
3157}
3158pub struct CopyMemoryToImageIndirectCommandKHRBuilder {
3160 inner: CopyMemoryToImageIndirectCommandKHR,
3161}
3162impl CopyMemoryToImageIndirectCommandKHR {
3163 #[inline]
3165 pub fn builder() -> CopyMemoryToImageIndirectCommandKHRBuilder {
3166 CopyMemoryToImageIndirectCommandKHRBuilder {
3167 inner: CopyMemoryToImageIndirectCommandKHR {
3168 ..Default::default()
3169 },
3170 }
3171 }
3172}
3173impl CopyMemoryToImageIndirectCommandKHRBuilder {
3174 #[inline]
3175 pub fn src_address(mut self, value: u64) -> Self {
3176 self.inner.src_address = value;
3177 self
3178 }
3179 #[inline]
3180 pub fn buffer_row_length(mut self, value: u32) -> Self {
3181 self.inner.buffer_row_length = value;
3182 self
3183 }
3184 #[inline]
3185 pub fn buffer_image_height(mut self, value: u32) -> Self {
3186 self.inner.buffer_image_height = value;
3187 self
3188 }
3189 #[inline]
3190 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
3191 self.inner.image_subresource = value;
3192 self
3193 }
3194 #[inline]
3195 pub fn image_offset(mut self, value: Offset3D) -> Self {
3196 self.inner.image_offset = value;
3197 self
3198 }
3199 #[inline]
3200 pub fn image_extent(mut self, value: Extent3D) -> Self {
3201 self.inner.image_extent = value;
3202 self
3203 }
3204}
3205impl core::ops::Deref for CopyMemoryToImageIndirectCommandKHRBuilder {
3206 type Target = CopyMemoryToImageIndirectCommandKHR;
3207 #[inline]
3208 fn deref(&self) -> &Self::Target {
3209 &self.inner
3210 }
3211}
3212impl core::ops::DerefMut for CopyMemoryToImageIndirectCommandKHRBuilder {
3213 #[inline]
3214 fn deref_mut(&mut self) -> &mut Self::Target {
3215 &mut self.inner
3216 }
3217}
3218pub struct CopyMemoryToImageIndirectInfoKHRBuilder<'a> {
3220 inner: CopyMemoryToImageIndirectInfoKHR,
3221 _marker: core::marker::PhantomData<&'a ()>,
3222}
3223impl CopyMemoryToImageIndirectInfoKHR {
3224 #[inline]
3226 pub fn builder<'a>() -> CopyMemoryToImageIndirectInfoKHRBuilder<'a> {
3227 CopyMemoryToImageIndirectInfoKHRBuilder {
3228 inner: CopyMemoryToImageIndirectInfoKHR {
3229 s_type: StructureType::from_raw(1000549003i32),
3230 ..Default::default()
3231 },
3232 _marker: core::marker::PhantomData,
3233 }
3234 }
3235}
3236impl<'a> CopyMemoryToImageIndirectInfoKHRBuilder<'a> {
3237 #[inline]
3238 pub fn src_copy_flags(mut self, value: AddressCopyFlagsKHR) -> Self {
3239 self.inner.src_copy_flags = value;
3240 self
3241 }
3242 #[inline]
3243 pub fn copy_address_range(mut self, value: StridedDeviceAddressRangeKHR) -> Self {
3244 self.inner.copy_address_range = value;
3245 self
3246 }
3247 #[inline]
3248 pub fn dst_image(mut self, value: Image) -> Self {
3249 self.inner.dst_image = value;
3250 self
3251 }
3252 #[inline]
3253 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
3254 self.inner.dst_image_layout = value;
3255 self
3256 }
3257 #[inline]
3258 pub fn image_subresources(mut self, slice: &'a [ImageSubresourceLayers]) -> Self {
3259 self.inner.copy_count = slice.len() as u32;
3260 self.inner.p_image_subresources = slice.as_ptr();
3261 self
3262 }
3263 #[inline]
3265 pub fn push_next<T: ExtendsCopyMemoryToImageIndirectInfoKHR>(
3266 mut self,
3267 next: &'a mut T,
3268 ) -> Self {
3269 unsafe {
3270 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3271 (*next_ptr).p_next = self.inner.p_next as *mut _;
3272 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3273 core::ffi::c_void,
3274 >(next_ptr) as *const _;
3275 }
3276 self
3277 }
3278}
3279impl<'a> core::ops::Deref for CopyMemoryToImageIndirectInfoKHRBuilder<'a> {
3280 type Target = CopyMemoryToImageIndirectInfoKHR;
3281 #[inline]
3282 fn deref(&self) -> &Self::Target {
3283 &self.inner
3284 }
3285}
3286impl<'a> core::ops::DerefMut for CopyMemoryToImageIndirectInfoKHRBuilder<'a> {
3287 #[inline]
3288 fn deref_mut(&mut self) -> &mut Self::Target {
3289 &mut self.inner
3290 }
3291}
3292pub struct ImageResolveBuilder {
3294 inner: ImageResolve,
3295}
3296impl ImageResolve {
3297 #[inline]
3299 pub fn builder() -> ImageResolveBuilder {
3300 ImageResolveBuilder {
3301 inner: ImageResolve {
3302 ..Default::default()
3303 },
3304 }
3305 }
3306}
3307impl ImageResolveBuilder {
3308 #[inline]
3309 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
3310 self.inner.src_subresource = value;
3311 self
3312 }
3313 #[inline]
3314 pub fn src_offset(mut self, value: Offset3D) -> Self {
3315 self.inner.src_offset = value;
3316 self
3317 }
3318 #[inline]
3319 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
3320 self.inner.dst_subresource = value;
3321 self
3322 }
3323 #[inline]
3324 pub fn dst_offset(mut self, value: Offset3D) -> Self {
3325 self.inner.dst_offset = value;
3326 self
3327 }
3328 #[inline]
3329 pub fn extent(mut self, value: Extent3D) -> Self {
3330 self.inner.extent = value;
3331 self
3332 }
3333}
3334impl core::ops::Deref for ImageResolveBuilder {
3335 type Target = ImageResolve;
3336 #[inline]
3337 fn deref(&self) -> &Self::Target {
3338 &self.inner
3339 }
3340}
3341impl core::ops::DerefMut for ImageResolveBuilder {
3342 #[inline]
3343 fn deref_mut(&mut self) -> &mut Self::Target {
3344 &mut self.inner
3345 }
3346}
3347pub struct ShaderModuleCreateInfoBuilder<'a> {
3349 inner: ShaderModuleCreateInfo,
3350 _marker: core::marker::PhantomData<&'a ()>,
3351}
3352impl ShaderModuleCreateInfo {
3353 #[inline]
3355 pub fn builder<'a>() -> ShaderModuleCreateInfoBuilder<'a> {
3356 ShaderModuleCreateInfoBuilder {
3357 inner: ShaderModuleCreateInfo {
3358 s_type: StructureType::from_raw(16i32),
3359 ..Default::default()
3360 },
3361 _marker: core::marker::PhantomData,
3362 }
3363 }
3364}
3365impl<'a> ShaderModuleCreateInfoBuilder<'a> {
3366 #[inline]
3367 pub fn flags(mut self, value: ShaderModuleCreateFlags) -> Self {
3368 self.inner.flags = value;
3369 self
3370 }
3371 #[inline]
3372 pub fn code(mut self, slice: &'a [u32]) -> Self {
3373 self.inner.code_size = core::mem::size_of_val(slice);
3374 self.inner.p_code = slice.as_ptr();
3375 self
3376 }
3377 #[inline]
3379 pub fn push_next<T: ExtendsShaderModuleCreateInfo>(
3380 mut self,
3381 next: &'a mut T,
3382 ) -> Self {
3383 unsafe {
3384 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3385 (*next_ptr).p_next = self.inner.p_next as *mut _;
3386 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3387 core::ffi::c_void,
3388 >(next_ptr) as *const _;
3389 }
3390 self
3391 }
3392}
3393impl<'a> core::ops::Deref for ShaderModuleCreateInfoBuilder<'a> {
3394 type Target = ShaderModuleCreateInfo;
3395 #[inline]
3396 fn deref(&self) -> &Self::Target {
3397 &self.inner
3398 }
3399}
3400impl<'a> core::ops::DerefMut for ShaderModuleCreateInfoBuilder<'a> {
3401 #[inline]
3402 fn deref_mut(&mut self) -> &mut Self::Target {
3403 &mut self.inner
3404 }
3405}
3406pub struct DescriptorSetLayoutBindingBuilder<'a> {
3408 inner: DescriptorSetLayoutBinding,
3409 _marker: core::marker::PhantomData<&'a ()>,
3410}
3411impl DescriptorSetLayoutBinding {
3412 #[inline]
3414 pub fn builder<'a>() -> DescriptorSetLayoutBindingBuilder<'a> {
3415 DescriptorSetLayoutBindingBuilder {
3416 inner: DescriptorSetLayoutBinding {
3417 ..Default::default()
3418 },
3419 _marker: core::marker::PhantomData,
3420 }
3421 }
3422}
3423impl<'a> DescriptorSetLayoutBindingBuilder<'a> {
3424 #[inline]
3425 pub fn binding(mut self, value: u32) -> Self {
3426 self.inner.binding = value;
3427 self
3428 }
3429 #[inline]
3430 pub fn descriptor_type(mut self, value: DescriptorType) -> Self {
3431 self.inner.descriptor_type = value;
3432 self
3433 }
3434 #[inline]
3435 pub fn descriptor_count(mut self, value: u32) -> Self {
3436 self.inner.descriptor_count = value;
3437 self
3438 }
3439 #[inline]
3440 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
3441 self.inner.stage_flags = value;
3442 self
3443 }
3444 #[inline]
3445 pub fn immutable_samplers(mut self, slice: &'a [Sampler]) -> Self {
3446 self.inner.descriptor_count = slice.len() as u32;
3447 self.inner.p_immutable_samplers = slice.as_ptr();
3448 self
3449 }
3450}
3451impl<'a> core::ops::Deref for DescriptorSetLayoutBindingBuilder<'a> {
3452 type Target = DescriptorSetLayoutBinding;
3453 #[inline]
3454 fn deref(&self) -> &Self::Target {
3455 &self.inner
3456 }
3457}
3458impl<'a> core::ops::DerefMut for DescriptorSetLayoutBindingBuilder<'a> {
3459 #[inline]
3460 fn deref_mut(&mut self) -> &mut Self::Target {
3461 &mut self.inner
3462 }
3463}
3464pub struct DescriptorSetLayoutCreateInfoBuilder<'a> {
3466 inner: DescriptorSetLayoutCreateInfo,
3467 _marker: core::marker::PhantomData<&'a ()>,
3468}
3469impl DescriptorSetLayoutCreateInfo {
3470 #[inline]
3472 pub fn builder<'a>() -> DescriptorSetLayoutCreateInfoBuilder<'a> {
3473 DescriptorSetLayoutCreateInfoBuilder {
3474 inner: DescriptorSetLayoutCreateInfo {
3475 s_type: StructureType::from_raw(32i32),
3476 ..Default::default()
3477 },
3478 _marker: core::marker::PhantomData,
3479 }
3480 }
3481}
3482impl<'a> DescriptorSetLayoutCreateInfoBuilder<'a> {
3483 #[inline]
3484 pub fn flags(mut self, value: DescriptorSetLayoutCreateFlags) -> Self {
3485 self.inner.flags = value;
3486 self
3487 }
3488 #[inline]
3489 pub fn bindings(mut self, slice: &'a [DescriptorSetLayoutBinding]) -> Self {
3490 self.inner.binding_count = slice.len() as u32;
3491 self.inner.p_bindings = slice.as_ptr();
3492 self
3493 }
3494 #[inline]
3496 pub fn push_next<T: ExtendsDescriptorSetLayoutCreateInfo>(
3497 mut self,
3498 next: &'a mut T,
3499 ) -> Self {
3500 unsafe {
3501 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3502 (*next_ptr).p_next = self.inner.p_next as *mut _;
3503 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3504 core::ffi::c_void,
3505 >(next_ptr) as *const _;
3506 }
3507 self
3508 }
3509}
3510impl<'a> core::ops::Deref for DescriptorSetLayoutCreateInfoBuilder<'a> {
3511 type Target = DescriptorSetLayoutCreateInfo;
3512 #[inline]
3513 fn deref(&self) -> &Self::Target {
3514 &self.inner
3515 }
3516}
3517impl<'a> core::ops::DerefMut for DescriptorSetLayoutCreateInfoBuilder<'a> {
3518 #[inline]
3519 fn deref_mut(&mut self) -> &mut Self::Target {
3520 &mut self.inner
3521 }
3522}
3523pub struct DescriptorPoolSizeBuilder {
3525 inner: DescriptorPoolSize,
3526}
3527impl DescriptorPoolSize {
3528 #[inline]
3530 pub fn builder() -> DescriptorPoolSizeBuilder {
3531 DescriptorPoolSizeBuilder {
3532 inner: DescriptorPoolSize {
3533 ..Default::default()
3534 },
3535 }
3536 }
3537}
3538impl DescriptorPoolSizeBuilder {
3539 #[inline]
3540 pub fn r#type(mut self, value: DescriptorType) -> Self {
3541 self.inner.r#type = value;
3542 self
3543 }
3544 #[inline]
3545 pub fn descriptor_count(mut self, value: u32) -> Self {
3546 self.inner.descriptor_count = value;
3547 self
3548 }
3549}
3550impl core::ops::Deref for DescriptorPoolSizeBuilder {
3551 type Target = DescriptorPoolSize;
3552 #[inline]
3553 fn deref(&self) -> &Self::Target {
3554 &self.inner
3555 }
3556}
3557impl core::ops::DerefMut for DescriptorPoolSizeBuilder {
3558 #[inline]
3559 fn deref_mut(&mut self) -> &mut Self::Target {
3560 &mut self.inner
3561 }
3562}
3563pub struct DescriptorPoolCreateInfoBuilder<'a> {
3565 inner: DescriptorPoolCreateInfo,
3566 _marker: core::marker::PhantomData<&'a ()>,
3567}
3568impl DescriptorPoolCreateInfo {
3569 #[inline]
3571 pub fn builder<'a>() -> DescriptorPoolCreateInfoBuilder<'a> {
3572 DescriptorPoolCreateInfoBuilder {
3573 inner: DescriptorPoolCreateInfo {
3574 s_type: StructureType::from_raw(33i32),
3575 ..Default::default()
3576 },
3577 _marker: core::marker::PhantomData,
3578 }
3579 }
3580}
3581impl<'a> DescriptorPoolCreateInfoBuilder<'a> {
3582 #[inline]
3583 pub fn flags(mut self, value: DescriptorPoolCreateFlags) -> Self {
3584 self.inner.flags = value;
3585 self
3586 }
3587 #[inline]
3588 pub fn max_sets(mut self, value: u32) -> Self {
3589 self.inner.max_sets = value;
3590 self
3591 }
3592 #[inline]
3593 pub fn pool_sizes(mut self, slice: &'a [DescriptorPoolSize]) -> Self {
3594 self.inner.pool_size_count = slice.len() as u32;
3595 self.inner.p_pool_sizes = slice.as_ptr();
3596 self
3597 }
3598 #[inline]
3600 pub fn push_next<T: ExtendsDescriptorPoolCreateInfo>(
3601 mut self,
3602 next: &'a mut T,
3603 ) -> Self {
3604 unsafe {
3605 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3606 (*next_ptr).p_next = self.inner.p_next as *mut _;
3607 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3608 core::ffi::c_void,
3609 >(next_ptr) as *const _;
3610 }
3611 self
3612 }
3613}
3614impl<'a> core::ops::Deref for DescriptorPoolCreateInfoBuilder<'a> {
3615 type Target = DescriptorPoolCreateInfo;
3616 #[inline]
3617 fn deref(&self) -> &Self::Target {
3618 &self.inner
3619 }
3620}
3621impl<'a> core::ops::DerefMut for DescriptorPoolCreateInfoBuilder<'a> {
3622 #[inline]
3623 fn deref_mut(&mut self) -> &mut Self::Target {
3624 &mut self.inner
3625 }
3626}
3627pub struct DescriptorSetAllocateInfoBuilder<'a> {
3629 inner: DescriptorSetAllocateInfo,
3630 _marker: core::marker::PhantomData<&'a ()>,
3631}
3632impl DescriptorSetAllocateInfo {
3633 #[inline]
3635 pub fn builder<'a>() -> DescriptorSetAllocateInfoBuilder<'a> {
3636 DescriptorSetAllocateInfoBuilder {
3637 inner: DescriptorSetAllocateInfo {
3638 s_type: StructureType::from_raw(34i32),
3639 ..Default::default()
3640 },
3641 _marker: core::marker::PhantomData,
3642 }
3643 }
3644}
3645impl<'a> DescriptorSetAllocateInfoBuilder<'a> {
3646 #[inline]
3647 pub fn descriptor_pool(mut self, value: DescriptorPool) -> Self {
3648 self.inner.descriptor_pool = value;
3649 self
3650 }
3651 #[inline]
3652 pub fn set_layouts(mut self, slice: &'a [DescriptorSetLayout]) -> Self {
3653 self.inner.descriptor_set_count = slice.len() as u32;
3654 self.inner.p_set_layouts = slice.as_ptr();
3655 self
3656 }
3657 #[inline]
3659 pub fn push_next<T: ExtendsDescriptorSetAllocateInfo>(
3660 mut self,
3661 next: &'a mut T,
3662 ) -> Self {
3663 unsafe {
3664 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3665 (*next_ptr).p_next = self.inner.p_next as *mut _;
3666 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3667 core::ffi::c_void,
3668 >(next_ptr) as *const _;
3669 }
3670 self
3671 }
3672}
3673impl<'a> core::ops::Deref for DescriptorSetAllocateInfoBuilder<'a> {
3674 type Target = DescriptorSetAllocateInfo;
3675 #[inline]
3676 fn deref(&self) -> &Self::Target {
3677 &self.inner
3678 }
3679}
3680impl<'a> core::ops::DerefMut for DescriptorSetAllocateInfoBuilder<'a> {
3681 #[inline]
3682 fn deref_mut(&mut self) -> &mut Self::Target {
3683 &mut self.inner
3684 }
3685}
3686pub struct SpecializationMapEntryBuilder {
3688 inner: SpecializationMapEntry,
3689}
3690impl SpecializationMapEntry {
3691 #[inline]
3693 pub fn builder() -> SpecializationMapEntryBuilder {
3694 SpecializationMapEntryBuilder {
3695 inner: SpecializationMapEntry {
3696 ..Default::default()
3697 },
3698 }
3699 }
3700}
3701impl SpecializationMapEntryBuilder {
3702 #[inline]
3703 pub fn constant_id(mut self, value: u32) -> Self {
3704 self.inner.constant_id = value;
3705 self
3706 }
3707 #[inline]
3708 pub fn offset(mut self, value: u32) -> Self {
3709 self.inner.offset = value;
3710 self
3711 }
3712 #[inline]
3713 pub fn size(mut self, value: usize) -> Self {
3714 self.inner.size = value;
3715 self
3716 }
3717}
3718impl core::ops::Deref for SpecializationMapEntryBuilder {
3719 type Target = SpecializationMapEntry;
3720 #[inline]
3721 fn deref(&self) -> &Self::Target {
3722 &self.inner
3723 }
3724}
3725impl core::ops::DerefMut for SpecializationMapEntryBuilder {
3726 #[inline]
3727 fn deref_mut(&mut self) -> &mut Self::Target {
3728 &mut self.inner
3729 }
3730}
3731pub struct SpecializationInfoBuilder<'a> {
3733 inner: SpecializationInfo,
3734 _marker: core::marker::PhantomData<&'a ()>,
3735}
3736impl SpecializationInfo {
3737 #[inline]
3739 pub fn builder<'a>() -> SpecializationInfoBuilder<'a> {
3740 SpecializationInfoBuilder {
3741 inner: SpecializationInfo {
3742 ..Default::default()
3743 },
3744 _marker: core::marker::PhantomData,
3745 }
3746 }
3747}
3748impl<'a> SpecializationInfoBuilder<'a> {
3749 #[inline]
3750 pub fn map_entries(mut self, slice: &'a [SpecializationMapEntry]) -> Self {
3751 self.inner.map_entry_count = slice.len() as u32;
3752 self.inner.p_map_entries = slice.as_ptr();
3753 self
3754 }
3755 #[inline]
3756 pub fn data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
3757 self.inner.data_size = slice.len();
3758 self.inner.p_data = slice.as_ptr();
3759 self
3760 }
3761}
3762impl<'a> core::ops::Deref for SpecializationInfoBuilder<'a> {
3763 type Target = SpecializationInfo;
3764 #[inline]
3765 fn deref(&self) -> &Self::Target {
3766 &self.inner
3767 }
3768}
3769impl<'a> core::ops::DerefMut for SpecializationInfoBuilder<'a> {
3770 #[inline]
3771 fn deref_mut(&mut self) -> &mut Self::Target {
3772 &mut self.inner
3773 }
3774}
3775pub struct PipelineShaderStageCreateInfoBuilder<'a> {
3777 inner: PipelineShaderStageCreateInfo,
3778 _marker: core::marker::PhantomData<&'a ()>,
3779}
3780impl PipelineShaderStageCreateInfo {
3781 #[inline]
3783 pub fn builder<'a>() -> PipelineShaderStageCreateInfoBuilder<'a> {
3784 PipelineShaderStageCreateInfoBuilder {
3785 inner: PipelineShaderStageCreateInfo {
3786 s_type: StructureType::from_raw(18i32),
3787 ..Default::default()
3788 },
3789 _marker: core::marker::PhantomData,
3790 }
3791 }
3792}
3793impl<'a> PipelineShaderStageCreateInfoBuilder<'a> {
3794 #[inline]
3795 pub fn flags(mut self, value: PipelineShaderStageCreateFlags) -> Self {
3796 self.inner.flags = value;
3797 self
3798 }
3799 #[inline]
3800 pub fn stage(mut self, value: ShaderStageFlagBits) -> Self {
3801 self.inner.stage = value;
3802 self
3803 }
3804 #[inline]
3805 pub fn module(mut self, value: ShaderModule) -> Self {
3806 self.inner.module = value;
3807 self
3808 }
3809 #[inline]
3810 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
3811 self.inner.p_name = value.as_ptr();
3812 self
3813 }
3814 #[inline]
3815 pub fn specialization_info(mut self, value: &'a SpecializationInfo) -> Self {
3816 self.inner.p_specialization_info = value;
3817 self
3818 }
3819 #[inline]
3821 pub fn push_next<T: ExtendsPipelineShaderStageCreateInfo>(
3822 mut self,
3823 next: &'a mut T,
3824 ) -> Self {
3825 unsafe {
3826 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3827 (*next_ptr).p_next = self.inner.p_next as *mut _;
3828 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3829 core::ffi::c_void,
3830 >(next_ptr) as *const _;
3831 }
3832 self
3833 }
3834}
3835impl<'a> core::ops::Deref for PipelineShaderStageCreateInfoBuilder<'a> {
3836 type Target = PipelineShaderStageCreateInfo;
3837 #[inline]
3838 fn deref(&self) -> &Self::Target {
3839 &self.inner
3840 }
3841}
3842impl<'a> core::ops::DerefMut for PipelineShaderStageCreateInfoBuilder<'a> {
3843 #[inline]
3844 fn deref_mut(&mut self) -> &mut Self::Target {
3845 &mut self.inner
3846 }
3847}
3848pub struct ComputePipelineCreateInfoBuilder<'a> {
3850 inner: ComputePipelineCreateInfo,
3851 _marker: core::marker::PhantomData<&'a ()>,
3852}
3853impl ComputePipelineCreateInfo {
3854 #[inline]
3856 pub fn builder<'a>() -> ComputePipelineCreateInfoBuilder<'a> {
3857 ComputePipelineCreateInfoBuilder {
3858 inner: ComputePipelineCreateInfo {
3859 s_type: StructureType::from_raw(29i32),
3860 ..Default::default()
3861 },
3862 _marker: core::marker::PhantomData,
3863 }
3864 }
3865}
3866impl<'a> ComputePipelineCreateInfoBuilder<'a> {
3867 #[inline]
3868 pub fn flags(mut self, value: PipelineCreateFlags) -> Self {
3869 self.inner.flags = value;
3870 self
3871 }
3872 #[inline]
3873 pub fn stage(mut self, value: PipelineShaderStageCreateInfo) -> Self {
3874 self.inner.stage = value;
3875 self
3876 }
3877 #[inline]
3878 pub fn layout(mut self, value: PipelineLayout) -> Self {
3879 self.inner.layout = value;
3880 self
3881 }
3882 #[inline]
3883 pub fn base_pipeline_handle(mut self, value: Pipeline) -> Self {
3884 self.inner.base_pipeline_handle = value;
3885 self
3886 }
3887 #[inline]
3888 pub fn base_pipeline_index(mut self, value: i32) -> Self {
3889 self.inner.base_pipeline_index = value;
3890 self
3891 }
3892 #[inline]
3894 pub fn push_next<T: ExtendsComputePipelineCreateInfo>(
3895 mut self,
3896 next: &'a mut T,
3897 ) -> Self {
3898 unsafe {
3899 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3900 (*next_ptr).p_next = self.inner.p_next as *mut _;
3901 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3902 core::ffi::c_void,
3903 >(next_ptr) as *const _;
3904 }
3905 self
3906 }
3907}
3908impl<'a> core::ops::Deref for ComputePipelineCreateInfoBuilder<'a> {
3909 type Target = ComputePipelineCreateInfo;
3910 #[inline]
3911 fn deref(&self) -> &Self::Target {
3912 &self.inner
3913 }
3914}
3915impl<'a> core::ops::DerefMut for ComputePipelineCreateInfoBuilder<'a> {
3916 #[inline]
3917 fn deref_mut(&mut self) -> &mut Self::Target {
3918 &mut self.inner
3919 }
3920}
3921pub struct ComputePipelineIndirectBufferInfoNVBuilder<'a> {
3923 inner: ComputePipelineIndirectBufferInfoNV,
3924 _marker: core::marker::PhantomData<&'a ()>,
3925}
3926impl ComputePipelineIndirectBufferInfoNV {
3927 #[inline]
3929 pub fn builder<'a>() -> ComputePipelineIndirectBufferInfoNVBuilder<'a> {
3930 ComputePipelineIndirectBufferInfoNVBuilder {
3931 inner: ComputePipelineIndirectBufferInfoNV {
3932 s_type: StructureType::from_raw(1000428001i32),
3933 ..Default::default()
3934 },
3935 _marker: core::marker::PhantomData,
3936 }
3937 }
3938}
3939impl<'a> ComputePipelineIndirectBufferInfoNVBuilder<'a> {
3940 #[inline]
3941 pub fn device_address(mut self, value: u64) -> Self {
3942 self.inner.device_address = value;
3943 self
3944 }
3945 #[inline]
3946 pub fn size(mut self, value: u64) -> Self {
3947 self.inner.size = value;
3948 self
3949 }
3950 #[inline]
3951 pub fn pipeline_device_address_capture_replay(mut self, value: u64) -> Self {
3952 self.inner.pipeline_device_address_capture_replay = value;
3953 self
3954 }
3955 #[inline]
3957 pub fn push_next<T: ExtendsComputePipelineIndirectBufferInfoNV>(
3958 mut self,
3959 next: &'a mut T,
3960 ) -> Self {
3961 unsafe {
3962 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
3963 (*next_ptr).p_next = self.inner.p_next as *mut _;
3964 self.inner.p_next = <*mut BaseOutStructure>::cast::<
3965 core::ffi::c_void,
3966 >(next_ptr) as *const _;
3967 }
3968 self
3969 }
3970}
3971impl<'a> core::ops::Deref for ComputePipelineIndirectBufferInfoNVBuilder<'a> {
3972 type Target = ComputePipelineIndirectBufferInfoNV;
3973 #[inline]
3974 fn deref(&self) -> &Self::Target {
3975 &self.inner
3976 }
3977}
3978impl<'a> core::ops::DerefMut for ComputePipelineIndirectBufferInfoNVBuilder<'a> {
3979 #[inline]
3980 fn deref_mut(&mut self) -> &mut Self::Target {
3981 &mut self.inner
3982 }
3983}
3984pub struct PipelineCreateFlags2CreateInfoBuilder<'a> {
3986 inner: PipelineCreateFlags2CreateInfo,
3987 _marker: core::marker::PhantomData<&'a ()>,
3988}
3989impl PipelineCreateFlags2CreateInfo {
3990 #[inline]
3992 pub fn builder<'a>() -> PipelineCreateFlags2CreateInfoBuilder<'a> {
3993 PipelineCreateFlags2CreateInfoBuilder {
3994 inner: PipelineCreateFlags2CreateInfo {
3995 s_type: StructureType::from_raw(1000470005i32),
3996 ..Default::default()
3997 },
3998 _marker: core::marker::PhantomData,
3999 }
4000 }
4001}
4002impl<'a> PipelineCreateFlags2CreateInfoBuilder<'a> {
4003 #[inline]
4004 pub fn flags(mut self, value: PipelineCreateFlags2) -> Self {
4005 self.inner.flags = value;
4006 self
4007 }
4008 #[inline]
4010 pub fn push_next<T: ExtendsPipelineCreateFlags2CreateInfo>(
4011 mut self,
4012 next: &'a mut T,
4013 ) -> Self {
4014 unsafe {
4015 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4016 (*next_ptr).p_next = self.inner.p_next as *mut _;
4017 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4018 core::ffi::c_void,
4019 >(next_ptr) as *const _;
4020 }
4021 self
4022 }
4023}
4024impl<'a> core::ops::Deref for PipelineCreateFlags2CreateInfoBuilder<'a> {
4025 type Target = PipelineCreateFlags2CreateInfo;
4026 #[inline]
4027 fn deref(&self) -> &Self::Target {
4028 &self.inner
4029 }
4030}
4031impl<'a> core::ops::DerefMut for PipelineCreateFlags2CreateInfoBuilder<'a> {
4032 #[inline]
4033 fn deref_mut(&mut self) -> &mut Self::Target {
4034 &mut self.inner
4035 }
4036}
4037pub struct VertexInputBindingDescriptionBuilder {
4039 inner: VertexInputBindingDescription,
4040}
4041impl VertexInputBindingDescription {
4042 #[inline]
4044 pub fn builder() -> VertexInputBindingDescriptionBuilder {
4045 VertexInputBindingDescriptionBuilder {
4046 inner: VertexInputBindingDescription {
4047 ..Default::default()
4048 },
4049 }
4050 }
4051}
4052impl VertexInputBindingDescriptionBuilder {
4053 #[inline]
4054 pub fn binding(mut self, value: u32) -> Self {
4055 self.inner.binding = value;
4056 self
4057 }
4058 #[inline]
4059 pub fn stride(mut self, value: u32) -> Self {
4060 self.inner.stride = value;
4061 self
4062 }
4063 #[inline]
4064 pub fn input_rate(mut self, value: VertexInputRate) -> Self {
4065 self.inner.input_rate = value;
4066 self
4067 }
4068}
4069impl core::ops::Deref for VertexInputBindingDescriptionBuilder {
4070 type Target = VertexInputBindingDescription;
4071 #[inline]
4072 fn deref(&self) -> &Self::Target {
4073 &self.inner
4074 }
4075}
4076impl core::ops::DerefMut for VertexInputBindingDescriptionBuilder {
4077 #[inline]
4078 fn deref_mut(&mut self) -> &mut Self::Target {
4079 &mut self.inner
4080 }
4081}
4082pub struct VertexInputAttributeDescriptionBuilder {
4084 inner: VertexInputAttributeDescription,
4085}
4086impl VertexInputAttributeDescription {
4087 #[inline]
4089 pub fn builder() -> VertexInputAttributeDescriptionBuilder {
4090 VertexInputAttributeDescriptionBuilder {
4091 inner: VertexInputAttributeDescription {
4092 ..Default::default()
4093 },
4094 }
4095 }
4096}
4097impl VertexInputAttributeDescriptionBuilder {
4098 #[inline]
4099 pub fn location(mut self, value: u32) -> Self {
4100 self.inner.location = value;
4101 self
4102 }
4103 #[inline]
4104 pub fn binding(mut self, value: u32) -> Self {
4105 self.inner.binding = value;
4106 self
4107 }
4108 #[inline]
4109 pub fn format(mut self, value: Format) -> Self {
4110 self.inner.format = value;
4111 self
4112 }
4113 #[inline]
4114 pub fn offset(mut self, value: u32) -> Self {
4115 self.inner.offset = value;
4116 self
4117 }
4118}
4119impl core::ops::Deref for VertexInputAttributeDescriptionBuilder {
4120 type Target = VertexInputAttributeDescription;
4121 #[inline]
4122 fn deref(&self) -> &Self::Target {
4123 &self.inner
4124 }
4125}
4126impl core::ops::DerefMut for VertexInputAttributeDescriptionBuilder {
4127 #[inline]
4128 fn deref_mut(&mut self) -> &mut Self::Target {
4129 &mut self.inner
4130 }
4131}
4132pub struct PipelineVertexInputStateCreateInfoBuilder<'a> {
4134 inner: PipelineVertexInputStateCreateInfo,
4135 _marker: core::marker::PhantomData<&'a ()>,
4136}
4137impl PipelineVertexInputStateCreateInfo {
4138 #[inline]
4140 pub fn builder<'a>() -> PipelineVertexInputStateCreateInfoBuilder<'a> {
4141 PipelineVertexInputStateCreateInfoBuilder {
4142 inner: PipelineVertexInputStateCreateInfo {
4143 s_type: StructureType::from_raw(19i32),
4144 ..Default::default()
4145 },
4146 _marker: core::marker::PhantomData,
4147 }
4148 }
4149}
4150impl<'a> PipelineVertexInputStateCreateInfoBuilder<'a> {
4151 #[inline]
4152 pub fn flags(mut self, value: PipelineVertexInputStateCreateFlags) -> Self {
4153 self.inner.flags = value;
4154 self
4155 }
4156 #[inline]
4157 pub fn vertex_binding_descriptions(
4158 mut self,
4159 slice: &'a [VertexInputBindingDescription],
4160 ) -> Self {
4161 self.inner.vertex_binding_description_count = slice.len() as u32;
4162 self.inner.p_vertex_binding_descriptions = slice.as_ptr();
4163 self
4164 }
4165 #[inline]
4166 pub fn vertex_attribute_descriptions(
4167 mut self,
4168 slice: &'a [VertexInputAttributeDescription],
4169 ) -> Self {
4170 self.inner.vertex_attribute_description_count = slice.len() as u32;
4171 self.inner.p_vertex_attribute_descriptions = slice.as_ptr();
4172 self
4173 }
4174 #[inline]
4176 pub fn push_next<T: ExtendsPipelineVertexInputStateCreateInfo>(
4177 mut self,
4178 next: &'a mut T,
4179 ) -> Self {
4180 unsafe {
4181 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4182 (*next_ptr).p_next = self.inner.p_next as *mut _;
4183 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4184 core::ffi::c_void,
4185 >(next_ptr) as *const _;
4186 }
4187 self
4188 }
4189}
4190impl<'a> core::ops::Deref for PipelineVertexInputStateCreateInfoBuilder<'a> {
4191 type Target = PipelineVertexInputStateCreateInfo;
4192 #[inline]
4193 fn deref(&self) -> &Self::Target {
4194 &self.inner
4195 }
4196}
4197impl<'a> core::ops::DerefMut for PipelineVertexInputStateCreateInfoBuilder<'a> {
4198 #[inline]
4199 fn deref_mut(&mut self) -> &mut Self::Target {
4200 &mut self.inner
4201 }
4202}
4203pub struct PipelineInputAssemblyStateCreateInfoBuilder<'a> {
4205 inner: PipelineInputAssemblyStateCreateInfo,
4206 _marker: core::marker::PhantomData<&'a ()>,
4207}
4208impl PipelineInputAssemblyStateCreateInfo {
4209 #[inline]
4211 pub fn builder<'a>() -> PipelineInputAssemblyStateCreateInfoBuilder<'a> {
4212 PipelineInputAssemblyStateCreateInfoBuilder {
4213 inner: PipelineInputAssemblyStateCreateInfo {
4214 s_type: StructureType::from_raw(20i32),
4215 ..Default::default()
4216 },
4217 _marker: core::marker::PhantomData,
4218 }
4219 }
4220}
4221impl<'a> PipelineInputAssemblyStateCreateInfoBuilder<'a> {
4222 #[inline]
4223 pub fn flags(mut self, value: PipelineInputAssemblyStateCreateFlags) -> Self {
4224 self.inner.flags = value;
4225 self
4226 }
4227 #[inline]
4228 pub fn topology(mut self, value: PrimitiveTopology) -> Self {
4229 self.inner.topology = value;
4230 self
4231 }
4232 #[inline]
4233 pub fn primitive_restart_enable(mut self, value: bool) -> Self {
4234 self.inner.primitive_restart_enable = value as u32;
4235 self
4236 }
4237 #[inline]
4239 pub fn push_next<T: ExtendsPipelineInputAssemblyStateCreateInfo>(
4240 mut self,
4241 next: &'a mut T,
4242 ) -> Self {
4243 unsafe {
4244 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4245 (*next_ptr).p_next = self.inner.p_next as *mut _;
4246 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4247 core::ffi::c_void,
4248 >(next_ptr) as *const _;
4249 }
4250 self
4251 }
4252}
4253impl<'a> core::ops::Deref for PipelineInputAssemblyStateCreateInfoBuilder<'a> {
4254 type Target = PipelineInputAssemblyStateCreateInfo;
4255 #[inline]
4256 fn deref(&self) -> &Self::Target {
4257 &self.inner
4258 }
4259}
4260impl<'a> core::ops::DerefMut for PipelineInputAssemblyStateCreateInfoBuilder<'a> {
4261 #[inline]
4262 fn deref_mut(&mut self) -> &mut Self::Target {
4263 &mut self.inner
4264 }
4265}
4266pub struct PipelineTessellationStateCreateInfoBuilder<'a> {
4268 inner: PipelineTessellationStateCreateInfo,
4269 _marker: core::marker::PhantomData<&'a ()>,
4270}
4271impl PipelineTessellationStateCreateInfo {
4272 #[inline]
4274 pub fn builder<'a>() -> PipelineTessellationStateCreateInfoBuilder<'a> {
4275 PipelineTessellationStateCreateInfoBuilder {
4276 inner: PipelineTessellationStateCreateInfo {
4277 s_type: StructureType::from_raw(21i32),
4278 ..Default::default()
4279 },
4280 _marker: core::marker::PhantomData,
4281 }
4282 }
4283}
4284impl<'a> PipelineTessellationStateCreateInfoBuilder<'a> {
4285 #[inline]
4286 pub fn flags(mut self, value: PipelineTessellationStateCreateFlags) -> Self {
4287 self.inner.flags = value;
4288 self
4289 }
4290 #[inline]
4291 pub fn patch_control_points(mut self, value: u32) -> Self {
4292 self.inner.patch_control_points = value;
4293 self
4294 }
4295 #[inline]
4297 pub fn push_next<T: ExtendsPipelineTessellationStateCreateInfo>(
4298 mut self,
4299 next: &'a mut T,
4300 ) -> Self {
4301 unsafe {
4302 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4303 (*next_ptr).p_next = self.inner.p_next as *mut _;
4304 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4305 core::ffi::c_void,
4306 >(next_ptr) as *const _;
4307 }
4308 self
4309 }
4310}
4311impl<'a> core::ops::Deref for PipelineTessellationStateCreateInfoBuilder<'a> {
4312 type Target = PipelineTessellationStateCreateInfo;
4313 #[inline]
4314 fn deref(&self) -> &Self::Target {
4315 &self.inner
4316 }
4317}
4318impl<'a> core::ops::DerefMut for PipelineTessellationStateCreateInfoBuilder<'a> {
4319 #[inline]
4320 fn deref_mut(&mut self) -> &mut Self::Target {
4321 &mut self.inner
4322 }
4323}
4324pub struct PipelineViewportStateCreateInfoBuilder<'a> {
4326 inner: PipelineViewportStateCreateInfo,
4327 _marker: core::marker::PhantomData<&'a ()>,
4328}
4329impl PipelineViewportStateCreateInfo {
4330 #[inline]
4332 pub fn builder<'a>() -> PipelineViewportStateCreateInfoBuilder<'a> {
4333 PipelineViewportStateCreateInfoBuilder {
4334 inner: PipelineViewportStateCreateInfo {
4335 s_type: StructureType::from_raw(22i32),
4336 ..Default::default()
4337 },
4338 _marker: core::marker::PhantomData,
4339 }
4340 }
4341}
4342impl<'a> PipelineViewportStateCreateInfoBuilder<'a> {
4343 #[inline]
4344 pub fn flags(mut self, value: PipelineViewportStateCreateFlags) -> Self {
4345 self.inner.flags = value;
4346 self
4347 }
4348 #[inline]
4349 pub fn viewport_count(mut self, value: u32) -> Self {
4350 self.inner.viewport_count = value;
4351 self
4352 }
4353 #[inline]
4354 pub fn viewports(mut self, slice: &'a [Viewport]) -> Self {
4355 self.inner.viewport_count = slice.len() as u32;
4356 self.inner.p_viewports = slice.as_ptr();
4357 self
4358 }
4359 #[inline]
4360 pub fn scissor_count(mut self, value: u32) -> Self {
4361 self.inner.scissor_count = value;
4362 self
4363 }
4364 #[inline]
4365 pub fn scissors(mut self, slice: &'a [Rect2D]) -> Self {
4366 self.inner.scissor_count = slice.len() as u32;
4367 self.inner.p_scissors = slice.as_ptr();
4368 self
4369 }
4370 #[inline]
4372 pub fn push_next<T: ExtendsPipelineViewportStateCreateInfo>(
4373 mut self,
4374 next: &'a mut T,
4375 ) -> Self {
4376 unsafe {
4377 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4378 (*next_ptr).p_next = self.inner.p_next as *mut _;
4379 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4380 core::ffi::c_void,
4381 >(next_ptr) as *const _;
4382 }
4383 self
4384 }
4385}
4386impl<'a> core::ops::Deref for PipelineViewportStateCreateInfoBuilder<'a> {
4387 type Target = PipelineViewportStateCreateInfo;
4388 #[inline]
4389 fn deref(&self) -> &Self::Target {
4390 &self.inner
4391 }
4392}
4393impl<'a> core::ops::DerefMut for PipelineViewportStateCreateInfoBuilder<'a> {
4394 #[inline]
4395 fn deref_mut(&mut self) -> &mut Self::Target {
4396 &mut self.inner
4397 }
4398}
4399pub struct PipelineRasterizationStateCreateInfoBuilder<'a> {
4401 inner: PipelineRasterizationStateCreateInfo,
4402 _marker: core::marker::PhantomData<&'a ()>,
4403}
4404impl PipelineRasterizationStateCreateInfo {
4405 #[inline]
4407 pub fn builder<'a>() -> PipelineRasterizationStateCreateInfoBuilder<'a> {
4408 PipelineRasterizationStateCreateInfoBuilder {
4409 inner: PipelineRasterizationStateCreateInfo {
4410 s_type: StructureType::from_raw(23i32),
4411 ..Default::default()
4412 },
4413 _marker: core::marker::PhantomData,
4414 }
4415 }
4416}
4417impl<'a> PipelineRasterizationStateCreateInfoBuilder<'a> {
4418 #[inline]
4419 pub fn flags(mut self, value: PipelineRasterizationStateCreateFlags) -> Self {
4420 self.inner.flags = value;
4421 self
4422 }
4423 #[inline]
4424 pub fn depth_clamp_enable(mut self, value: bool) -> Self {
4425 self.inner.depth_clamp_enable = value as u32;
4426 self
4427 }
4428 #[inline]
4429 pub fn rasterizer_discard_enable(mut self, value: bool) -> Self {
4430 self.inner.rasterizer_discard_enable = value as u32;
4431 self
4432 }
4433 #[inline]
4434 pub fn polygon_mode(mut self, value: PolygonMode) -> Self {
4435 self.inner.polygon_mode = value;
4436 self
4437 }
4438 #[inline]
4439 pub fn cull_mode(mut self, value: CullModeFlags) -> Self {
4440 self.inner.cull_mode = value;
4441 self
4442 }
4443 #[inline]
4444 pub fn front_face(mut self, value: FrontFace) -> Self {
4445 self.inner.front_face = value;
4446 self
4447 }
4448 #[inline]
4449 pub fn depth_bias_enable(mut self, value: bool) -> Self {
4450 self.inner.depth_bias_enable = value as u32;
4451 self
4452 }
4453 #[inline]
4454 pub fn depth_bias_constant_factor(mut self, value: f32) -> Self {
4455 self.inner.depth_bias_constant_factor = value;
4456 self
4457 }
4458 #[inline]
4459 pub fn depth_bias_clamp(mut self, value: f32) -> Self {
4460 self.inner.depth_bias_clamp = value;
4461 self
4462 }
4463 #[inline]
4464 pub fn depth_bias_slope_factor(mut self, value: f32) -> Self {
4465 self.inner.depth_bias_slope_factor = value;
4466 self
4467 }
4468 #[inline]
4469 pub fn line_width(mut self, value: f32) -> Self {
4470 self.inner.line_width = value;
4471 self
4472 }
4473 #[inline]
4475 pub fn push_next<T: ExtendsPipelineRasterizationStateCreateInfo>(
4476 mut self,
4477 next: &'a mut T,
4478 ) -> Self {
4479 unsafe {
4480 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4481 (*next_ptr).p_next = self.inner.p_next as *mut _;
4482 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4483 core::ffi::c_void,
4484 >(next_ptr) as *const _;
4485 }
4486 self
4487 }
4488}
4489impl<'a> core::ops::Deref for PipelineRasterizationStateCreateInfoBuilder<'a> {
4490 type Target = PipelineRasterizationStateCreateInfo;
4491 #[inline]
4492 fn deref(&self) -> &Self::Target {
4493 &self.inner
4494 }
4495}
4496impl<'a> core::ops::DerefMut for PipelineRasterizationStateCreateInfoBuilder<'a> {
4497 #[inline]
4498 fn deref_mut(&mut self) -> &mut Self::Target {
4499 &mut self.inner
4500 }
4501}
4502pub struct PipelineMultisampleStateCreateInfoBuilder<'a> {
4504 inner: PipelineMultisampleStateCreateInfo,
4505 _marker: core::marker::PhantomData<&'a ()>,
4506}
4507impl PipelineMultisampleStateCreateInfo {
4508 #[inline]
4510 pub fn builder<'a>() -> PipelineMultisampleStateCreateInfoBuilder<'a> {
4511 PipelineMultisampleStateCreateInfoBuilder {
4512 inner: PipelineMultisampleStateCreateInfo {
4513 s_type: StructureType::from_raw(24i32),
4514 ..Default::default()
4515 },
4516 _marker: core::marker::PhantomData,
4517 }
4518 }
4519}
4520impl<'a> PipelineMultisampleStateCreateInfoBuilder<'a> {
4521 #[inline]
4522 pub fn flags(mut self, value: PipelineMultisampleStateCreateFlags) -> Self {
4523 self.inner.flags = value;
4524 self
4525 }
4526 #[inline]
4527 pub fn rasterization_samples(mut self, value: SampleCountFlagBits) -> Self {
4528 self.inner.rasterization_samples = value;
4529 self
4530 }
4531 #[inline]
4532 pub fn sample_shading_enable(mut self, value: bool) -> Self {
4533 self.inner.sample_shading_enable = value as u32;
4534 self
4535 }
4536 #[inline]
4537 pub fn min_sample_shading(mut self, value: f32) -> Self {
4538 self.inner.min_sample_shading = value;
4539 self
4540 }
4541 #[inline]
4542 pub fn sample_mask(mut self, value: &'a u32) -> Self {
4543 self.inner.p_sample_mask = value;
4544 self
4545 }
4546 #[inline]
4547 pub fn alpha_to_coverage_enable(mut self, value: bool) -> Self {
4548 self.inner.alpha_to_coverage_enable = value as u32;
4549 self
4550 }
4551 #[inline]
4552 pub fn alpha_to_one_enable(mut self, value: bool) -> Self {
4553 self.inner.alpha_to_one_enable = value as u32;
4554 self
4555 }
4556 #[inline]
4558 pub fn push_next<T: ExtendsPipelineMultisampleStateCreateInfo>(
4559 mut self,
4560 next: &'a mut T,
4561 ) -> Self {
4562 unsafe {
4563 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4564 (*next_ptr).p_next = self.inner.p_next as *mut _;
4565 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4566 core::ffi::c_void,
4567 >(next_ptr) as *const _;
4568 }
4569 self
4570 }
4571}
4572impl<'a> core::ops::Deref for PipelineMultisampleStateCreateInfoBuilder<'a> {
4573 type Target = PipelineMultisampleStateCreateInfo;
4574 #[inline]
4575 fn deref(&self) -> &Self::Target {
4576 &self.inner
4577 }
4578}
4579impl<'a> core::ops::DerefMut for PipelineMultisampleStateCreateInfoBuilder<'a> {
4580 #[inline]
4581 fn deref_mut(&mut self) -> &mut Self::Target {
4582 &mut self.inner
4583 }
4584}
4585pub struct PipelineColorBlendAttachmentStateBuilder {
4587 inner: PipelineColorBlendAttachmentState,
4588}
4589impl PipelineColorBlendAttachmentState {
4590 #[inline]
4592 pub fn builder() -> PipelineColorBlendAttachmentStateBuilder {
4593 PipelineColorBlendAttachmentStateBuilder {
4594 inner: PipelineColorBlendAttachmentState {
4595 ..Default::default()
4596 },
4597 }
4598 }
4599}
4600impl PipelineColorBlendAttachmentStateBuilder {
4601 #[inline]
4602 pub fn blend_enable(mut self, value: bool) -> Self {
4603 self.inner.blend_enable = value as u32;
4604 self
4605 }
4606 #[inline]
4607 pub fn src_color_blend_factor(mut self, value: BlendFactor) -> Self {
4608 self.inner.src_color_blend_factor = value;
4609 self
4610 }
4611 #[inline]
4612 pub fn dst_color_blend_factor(mut self, value: BlendFactor) -> Self {
4613 self.inner.dst_color_blend_factor = value;
4614 self
4615 }
4616 #[inline]
4617 pub fn color_blend_op(mut self, value: BlendOp) -> Self {
4618 self.inner.color_blend_op = value;
4619 self
4620 }
4621 #[inline]
4622 pub fn src_alpha_blend_factor(mut self, value: BlendFactor) -> Self {
4623 self.inner.src_alpha_blend_factor = value;
4624 self
4625 }
4626 #[inline]
4627 pub fn dst_alpha_blend_factor(mut self, value: BlendFactor) -> Self {
4628 self.inner.dst_alpha_blend_factor = value;
4629 self
4630 }
4631 #[inline]
4632 pub fn alpha_blend_op(mut self, value: BlendOp) -> Self {
4633 self.inner.alpha_blend_op = value;
4634 self
4635 }
4636 #[inline]
4637 pub fn color_write_mask(mut self, value: ColorComponentFlags) -> Self {
4638 self.inner.color_write_mask = value;
4639 self
4640 }
4641}
4642impl core::ops::Deref for PipelineColorBlendAttachmentStateBuilder {
4643 type Target = PipelineColorBlendAttachmentState;
4644 #[inline]
4645 fn deref(&self) -> &Self::Target {
4646 &self.inner
4647 }
4648}
4649impl core::ops::DerefMut for PipelineColorBlendAttachmentStateBuilder {
4650 #[inline]
4651 fn deref_mut(&mut self) -> &mut Self::Target {
4652 &mut self.inner
4653 }
4654}
4655pub struct PipelineColorBlendStateCreateInfoBuilder<'a> {
4657 inner: PipelineColorBlendStateCreateInfo,
4658 _marker: core::marker::PhantomData<&'a ()>,
4659}
4660impl PipelineColorBlendStateCreateInfo {
4661 #[inline]
4663 pub fn builder<'a>() -> PipelineColorBlendStateCreateInfoBuilder<'a> {
4664 PipelineColorBlendStateCreateInfoBuilder {
4665 inner: PipelineColorBlendStateCreateInfo {
4666 s_type: StructureType::from_raw(26i32),
4667 ..Default::default()
4668 },
4669 _marker: core::marker::PhantomData,
4670 }
4671 }
4672}
4673impl<'a> PipelineColorBlendStateCreateInfoBuilder<'a> {
4674 #[inline]
4675 pub fn flags(mut self, value: PipelineColorBlendStateCreateFlags) -> Self {
4676 self.inner.flags = value;
4677 self
4678 }
4679 #[inline]
4680 pub fn logic_op_enable(mut self, value: bool) -> Self {
4681 self.inner.logic_op_enable = value as u32;
4682 self
4683 }
4684 #[inline]
4685 pub fn logic_op(mut self, value: LogicOp) -> Self {
4686 self.inner.logic_op = value;
4687 self
4688 }
4689 #[inline]
4690 pub fn attachment_count(mut self, value: u32) -> Self {
4691 self.inner.attachment_count = value;
4692 self
4693 }
4694 #[inline]
4695 pub fn attachments(
4696 mut self,
4697 slice: &'a [PipelineColorBlendAttachmentState],
4698 ) -> Self {
4699 self.inner.attachment_count = slice.len() as u32;
4700 self.inner.p_attachments = slice.as_ptr();
4701 self
4702 }
4703 #[inline]
4704 pub fn blend_constants(mut self, value: [f32; 4usize]) -> Self {
4705 self.inner.blend_constants = value;
4706 self
4707 }
4708 #[inline]
4710 pub fn push_next<T: ExtendsPipelineColorBlendStateCreateInfo>(
4711 mut self,
4712 next: &'a mut T,
4713 ) -> Self {
4714 unsafe {
4715 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4716 (*next_ptr).p_next = self.inner.p_next as *mut _;
4717 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4718 core::ffi::c_void,
4719 >(next_ptr) as *const _;
4720 }
4721 self
4722 }
4723}
4724impl<'a> core::ops::Deref for PipelineColorBlendStateCreateInfoBuilder<'a> {
4725 type Target = PipelineColorBlendStateCreateInfo;
4726 #[inline]
4727 fn deref(&self) -> &Self::Target {
4728 &self.inner
4729 }
4730}
4731impl<'a> core::ops::DerefMut for PipelineColorBlendStateCreateInfoBuilder<'a> {
4732 #[inline]
4733 fn deref_mut(&mut self) -> &mut Self::Target {
4734 &mut self.inner
4735 }
4736}
4737pub struct PipelineDynamicStateCreateInfoBuilder<'a> {
4739 inner: PipelineDynamicStateCreateInfo,
4740 _marker: core::marker::PhantomData<&'a ()>,
4741}
4742impl PipelineDynamicStateCreateInfo {
4743 #[inline]
4745 pub fn builder<'a>() -> PipelineDynamicStateCreateInfoBuilder<'a> {
4746 PipelineDynamicStateCreateInfoBuilder {
4747 inner: PipelineDynamicStateCreateInfo {
4748 s_type: StructureType::from_raw(27i32),
4749 ..Default::default()
4750 },
4751 _marker: core::marker::PhantomData,
4752 }
4753 }
4754}
4755impl<'a> PipelineDynamicStateCreateInfoBuilder<'a> {
4756 #[inline]
4757 pub fn flags(mut self, value: PipelineDynamicStateCreateFlags) -> Self {
4758 self.inner.flags = value;
4759 self
4760 }
4761 #[inline]
4762 pub fn dynamic_states(mut self, slice: &'a [DynamicState]) -> Self {
4763 self.inner.dynamic_state_count = slice.len() as u32;
4764 self.inner.p_dynamic_states = slice.as_ptr();
4765 self
4766 }
4767 #[inline]
4769 pub fn push_next<T: ExtendsPipelineDynamicStateCreateInfo>(
4770 mut self,
4771 next: &'a mut T,
4772 ) -> Self {
4773 unsafe {
4774 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4775 (*next_ptr).p_next = self.inner.p_next as *mut _;
4776 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4777 core::ffi::c_void,
4778 >(next_ptr) as *const _;
4779 }
4780 self
4781 }
4782}
4783impl<'a> core::ops::Deref for PipelineDynamicStateCreateInfoBuilder<'a> {
4784 type Target = PipelineDynamicStateCreateInfo;
4785 #[inline]
4786 fn deref(&self) -> &Self::Target {
4787 &self.inner
4788 }
4789}
4790impl<'a> core::ops::DerefMut for PipelineDynamicStateCreateInfoBuilder<'a> {
4791 #[inline]
4792 fn deref_mut(&mut self) -> &mut Self::Target {
4793 &mut self.inner
4794 }
4795}
4796pub struct StencilOpStateBuilder {
4798 inner: StencilOpState,
4799}
4800impl StencilOpState {
4801 #[inline]
4803 pub fn builder() -> StencilOpStateBuilder {
4804 StencilOpStateBuilder {
4805 inner: StencilOpState {
4806 ..Default::default()
4807 },
4808 }
4809 }
4810}
4811impl StencilOpStateBuilder {
4812 #[inline]
4813 pub fn fail_op(mut self, value: StencilOp) -> Self {
4814 self.inner.fail_op = value;
4815 self
4816 }
4817 #[inline]
4818 pub fn pass_op(mut self, value: StencilOp) -> Self {
4819 self.inner.pass_op = value;
4820 self
4821 }
4822 #[inline]
4823 pub fn depth_fail_op(mut self, value: StencilOp) -> Self {
4824 self.inner.depth_fail_op = value;
4825 self
4826 }
4827 #[inline]
4828 pub fn compare_op(mut self, value: CompareOp) -> Self {
4829 self.inner.compare_op = value;
4830 self
4831 }
4832 #[inline]
4833 pub fn compare_mask(mut self, value: u32) -> Self {
4834 self.inner.compare_mask = value;
4835 self
4836 }
4837 #[inline]
4838 pub fn write_mask(mut self, value: u32) -> Self {
4839 self.inner.write_mask = value;
4840 self
4841 }
4842 #[inline]
4843 pub fn reference(mut self, value: u32) -> Self {
4844 self.inner.reference = value;
4845 self
4846 }
4847}
4848impl core::ops::Deref for StencilOpStateBuilder {
4849 type Target = StencilOpState;
4850 #[inline]
4851 fn deref(&self) -> &Self::Target {
4852 &self.inner
4853 }
4854}
4855impl core::ops::DerefMut for StencilOpStateBuilder {
4856 #[inline]
4857 fn deref_mut(&mut self) -> &mut Self::Target {
4858 &mut self.inner
4859 }
4860}
4861pub struct PipelineDepthStencilStateCreateInfoBuilder<'a> {
4863 inner: PipelineDepthStencilStateCreateInfo,
4864 _marker: core::marker::PhantomData<&'a ()>,
4865}
4866impl PipelineDepthStencilStateCreateInfo {
4867 #[inline]
4869 pub fn builder<'a>() -> PipelineDepthStencilStateCreateInfoBuilder<'a> {
4870 PipelineDepthStencilStateCreateInfoBuilder {
4871 inner: PipelineDepthStencilStateCreateInfo {
4872 s_type: StructureType::from_raw(25i32),
4873 ..Default::default()
4874 },
4875 _marker: core::marker::PhantomData,
4876 }
4877 }
4878}
4879impl<'a> PipelineDepthStencilStateCreateInfoBuilder<'a> {
4880 #[inline]
4881 pub fn flags(mut self, value: PipelineDepthStencilStateCreateFlags) -> Self {
4882 self.inner.flags = value;
4883 self
4884 }
4885 #[inline]
4886 pub fn depth_test_enable(mut self, value: bool) -> Self {
4887 self.inner.depth_test_enable = value as u32;
4888 self
4889 }
4890 #[inline]
4891 pub fn depth_write_enable(mut self, value: bool) -> Self {
4892 self.inner.depth_write_enable = value as u32;
4893 self
4894 }
4895 #[inline]
4896 pub fn depth_compare_op(mut self, value: CompareOp) -> Self {
4897 self.inner.depth_compare_op = value;
4898 self
4899 }
4900 #[inline]
4901 pub fn depth_bounds_test_enable(mut self, value: bool) -> Self {
4902 self.inner.depth_bounds_test_enable = value as u32;
4903 self
4904 }
4905 #[inline]
4906 pub fn stencil_test_enable(mut self, value: bool) -> Self {
4907 self.inner.stencil_test_enable = value as u32;
4908 self
4909 }
4910 #[inline]
4911 pub fn front(mut self, value: StencilOpState) -> Self {
4912 self.inner.front = value;
4913 self
4914 }
4915 #[inline]
4916 pub fn back(mut self, value: StencilOpState) -> Self {
4917 self.inner.back = value;
4918 self
4919 }
4920 #[inline]
4921 pub fn min_depth_bounds(mut self, value: f32) -> Self {
4922 self.inner.min_depth_bounds = value;
4923 self
4924 }
4925 #[inline]
4926 pub fn max_depth_bounds(mut self, value: f32) -> Self {
4927 self.inner.max_depth_bounds = value;
4928 self
4929 }
4930 #[inline]
4932 pub fn push_next<T: ExtendsPipelineDepthStencilStateCreateInfo>(
4933 mut self,
4934 next: &'a mut T,
4935 ) -> Self {
4936 unsafe {
4937 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
4938 (*next_ptr).p_next = self.inner.p_next as *mut _;
4939 self.inner.p_next = <*mut BaseOutStructure>::cast::<
4940 core::ffi::c_void,
4941 >(next_ptr) as *const _;
4942 }
4943 self
4944 }
4945}
4946impl<'a> core::ops::Deref for PipelineDepthStencilStateCreateInfoBuilder<'a> {
4947 type Target = PipelineDepthStencilStateCreateInfo;
4948 #[inline]
4949 fn deref(&self) -> &Self::Target {
4950 &self.inner
4951 }
4952}
4953impl<'a> core::ops::DerefMut for PipelineDepthStencilStateCreateInfoBuilder<'a> {
4954 #[inline]
4955 fn deref_mut(&mut self) -> &mut Self::Target {
4956 &mut self.inner
4957 }
4958}
4959pub struct GraphicsPipelineCreateInfoBuilder<'a> {
4961 inner: GraphicsPipelineCreateInfo,
4962 _marker: core::marker::PhantomData<&'a ()>,
4963}
4964impl GraphicsPipelineCreateInfo {
4965 #[inline]
4967 pub fn builder<'a>() -> GraphicsPipelineCreateInfoBuilder<'a> {
4968 GraphicsPipelineCreateInfoBuilder {
4969 inner: GraphicsPipelineCreateInfo {
4970 s_type: StructureType::from_raw(28i32),
4971 ..Default::default()
4972 },
4973 _marker: core::marker::PhantomData,
4974 }
4975 }
4976}
4977impl<'a> GraphicsPipelineCreateInfoBuilder<'a> {
4978 #[inline]
4979 pub fn flags(mut self, value: PipelineCreateFlags) -> Self {
4980 self.inner.flags = value;
4981 self
4982 }
4983 #[inline]
4984 pub fn stages(mut self, slice: &'a [PipelineShaderStageCreateInfo]) -> Self {
4985 self.inner.stage_count = slice.len() as u32;
4986 self.inner.p_stages = slice.as_ptr();
4987 self
4988 }
4989 #[inline]
4990 pub fn vertex_input_state(
4991 mut self,
4992 value: &'a PipelineVertexInputStateCreateInfo,
4993 ) -> Self {
4994 self.inner.p_vertex_input_state = value;
4995 self
4996 }
4997 #[inline]
4998 pub fn input_assembly_state(
4999 mut self,
5000 value: &'a PipelineInputAssemblyStateCreateInfo,
5001 ) -> Self {
5002 self.inner.p_input_assembly_state = value;
5003 self
5004 }
5005 #[inline]
5006 pub fn tessellation_state(
5007 mut self,
5008 value: &'a PipelineTessellationStateCreateInfo,
5009 ) -> Self {
5010 self.inner.p_tessellation_state = value;
5011 self
5012 }
5013 #[inline]
5014 pub fn viewport_state(mut self, value: &'a PipelineViewportStateCreateInfo) -> Self {
5015 self.inner.p_viewport_state = value;
5016 self
5017 }
5018 #[inline]
5019 pub fn rasterization_state(
5020 mut self,
5021 value: &'a PipelineRasterizationStateCreateInfo,
5022 ) -> Self {
5023 self.inner.p_rasterization_state = value;
5024 self
5025 }
5026 #[inline]
5027 pub fn multisample_state(
5028 mut self,
5029 value: &'a PipelineMultisampleStateCreateInfo,
5030 ) -> Self {
5031 self.inner.p_multisample_state = value;
5032 self
5033 }
5034 #[inline]
5035 pub fn depth_stencil_state(
5036 mut self,
5037 value: &'a PipelineDepthStencilStateCreateInfo,
5038 ) -> Self {
5039 self.inner.p_depth_stencil_state = value;
5040 self
5041 }
5042 #[inline]
5043 pub fn color_blend_state(
5044 mut self,
5045 value: &'a PipelineColorBlendStateCreateInfo,
5046 ) -> Self {
5047 self.inner.p_color_blend_state = value;
5048 self
5049 }
5050 #[inline]
5051 pub fn dynamic_state(mut self, value: &'a PipelineDynamicStateCreateInfo) -> Self {
5052 self.inner.p_dynamic_state = value;
5053 self
5054 }
5055 #[inline]
5056 pub fn layout(mut self, value: PipelineLayout) -> Self {
5057 self.inner.layout = value;
5058 self
5059 }
5060 #[inline]
5061 pub fn render_pass(mut self, value: RenderPass) -> Self {
5062 self.inner.render_pass = value;
5063 self
5064 }
5065 #[inline]
5066 pub fn subpass(mut self, value: u32) -> Self {
5067 self.inner.subpass = value;
5068 self
5069 }
5070 #[inline]
5071 pub fn base_pipeline_handle(mut self, value: Pipeline) -> Self {
5072 self.inner.base_pipeline_handle = value;
5073 self
5074 }
5075 #[inline]
5076 pub fn base_pipeline_index(mut self, value: i32) -> Self {
5077 self.inner.base_pipeline_index = value;
5078 self
5079 }
5080 #[inline]
5082 pub fn push_next<T: ExtendsGraphicsPipelineCreateInfo>(
5083 mut self,
5084 next: &'a mut T,
5085 ) -> Self {
5086 unsafe {
5087 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5088 (*next_ptr).p_next = self.inner.p_next as *mut _;
5089 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5090 core::ffi::c_void,
5091 >(next_ptr) as *const _;
5092 }
5093 self
5094 }
5095}
5096impl<'a> core::ops::Deref for GraphicsPipelineCreateInfoBuilder<'a> {
5097 type Target = GraphicsPipelineCreateInfo;
5098 #[inline]
5099 fn deref(&self) -> &Self::Target {
5100 &self.inner
5101 }
5102}
5103impl<'a> core::ops::DerefMut for GraphicsPipelineCreateInfoBuilder<'a> {
5104 #[inline]
5105 fn deref_mut(&mut self) -> &mut Self::Target {
5106 &mut self.inner
5107 }
5108}
5109pub struct PipelineCacheCreateInfoBuilder<'a> {
5111 inner: PipelineCacheCreateInfo,
5112 _marker: core::marker::PhantomData<&'a ()>,
5113}
5114impl PipelineCacheCreateInfo {
5115 #[inline]
5117 pub fn builder<'a>() -> PipelineCacheCreateInfoBuilder<'a> {
5118 PipelineCacheCreateInfoBuilder {
5119 inner: PipelineCacheCreateInfo {
5120 s_type: StructureType::from_raw(17i32),
5121 ..Default::default()
5122 },
5123 _marker: core::marker::PhantomData,
5124 }
5125 }
5126}
5127impl<'a> PipelineCacheCreateInfoBuilder<'a> {
5128 #[inline]
5129 pub fn flags(mut self, value: PipelineCacheCreateFlags) -> Self {
5130 self.inner.flags = value;
5131 self
5132 }
5133 #[inline]
5134 pub fn initial_data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
5135 self.inner.initial_data_size = slice.len();
5136 self.inner.p_initial_data = slice.as_ptr();
5137 self
5138 }
5139 #[inline]
5141 pub fn push_next<T: ExtendsPipelineCacheCreateInfo>(
5142 mut self,
5143 next: &'a mut T,
5144 ) -> Self {
5145 unsafe {
5146 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5147 (*next_ptr).p_next = self.inner.p_next as *mut _;
5148 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5149 core::ffi::c_void,
5150 >(next_ptr) as *const _;
5151 }
5152 self
5153 }
5154}
5155impl<'a> core::ops::Deref for PipelineCacheCreateInfoBuilder<'a> {
5156 type Target = PipelineCacheCreateInfo;
5157 #[inline]
5158 fn deref(&self) -> &Self::Target {
5159 &self.inner
5160 }
5161}
5162impl<'a> core::ops::DerefMut for PipelineCacheCreateInfoBuilder<'a> {
5163 #[inline]
5164 fn deref_mut(&mut self) -> &mut Self::Target {
5165 &mut self.inner
5166 }
5167}
5168pub struct PipelineCacheHeaderVersionOneBuilder {
5170 inner: PipelineCacheHeaderVersionOne,
5171}
5172impl PipelineCacheHeaderVersionOne {
5173 #[inline]
5175 pub fn builder() -> PipelineCacheHeaderVersionOneBuilder {
5176 PipelineCacheHeaderVersionOneBuilder {
5177 inner: PipelineCacheHeaderVersionOne {
5178 ..Default::default()
5179 },
5180 }
5181 }
5182}
5183impl PipelineCacheHeaderVersionOneBuilder {
5184 #[inline]
5185 pub fn header_size(mut self, value: u32) -> Self {
5186 self.inner.header_size = value;
5187 self
5188 }
5189 #[inline]
5190 pub fn header_version(mut self, value: PipelineCacheHeaderVersion) -> Self {
5191 self.inner.header_version = value;
5192 self
5193 }
5194 #[inline]
5195 pub fn vendor_id(mut self, value: u32) -> Self {
5196 self.inner.vendor_id = value;
5197 self
5198 }
5199 #[inline]
5200 pub fn device_id(mut self, value: u32) -> Self {
5201 self.inner.device_id = value;
5202 self
5203 }
5204 #[inline]
5205 pub fn pipeline_cache_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
5206 self.inner.pipeline_cache_uuid = value;
5207 self
5208 }
5209}
5210impl core::ops::Deref for PipelineCacheHeaderVersionOneBuilder {
5211 type Target = PipelineCacheHeaderVersionOne;
5212 #[inline]
5213 fn deref(&self) -> &Self::Target {
5214 &self.inner
5215 }
5216}
5217impl core::ops::DerefMut for PipelineCacheHeaderVersionOneBuilder {
5218 #[inline]
5219 fn deref_mut(&mut self) -> &mut Self::Target {
5220 &mut self.inner
5221 }
5222}
5223pub struct PipelineCacheStageValidationIndexEntryBuilder {
5225 inner: PipelineCacheStageValidationIndexEntry,
5226}
5227impl PipelineCacheStageValidationIndexEntry {
5228 #[inline]
5230 pub fn builder() -> PipelineCacheStageValidationIndexEntryBuilder {
5231 PipelineCacheStageValidationIndexEntryBuilder {
5232 inner: PipelineCacheStageValidationIndexEntry {
5233 ..Default::default()
5234 },
5235 }
5236 }
5237}
5238impl PipelineCacheStageValidationIndexEntryBuilder {
5239 #[inline]
5240 pub fn code_size(mut self, value: u64) -> Self {
5241 self.inner.code_size = value;
5242 self
5243 }
5244 #[inline]
5245 pub fn code_offset(mut self, value: u64) -> Self {
5246 self.inner.code_offset = value;
5247 self
5248 }
5249}
5250impl core::ops::Deref for PipelineCacheStageValidationIndexEntryBuilder {
5251 type Target = PipelineCacheStageValidationIndexEntry;
5252 #[inline]
5253 fn deref(&self) -> &Self::Target {
5254 &self.inner
5255 }
5256}
5257impl core::ops::DerefMut for PipelineCacheStageValidationIndexEntryBuilder {
5258 #[inline]
5259 fn deref_mut(&mut self) -> &mut Self::Target {
5260 &mut self.inner
5261 }
5262}
5263pub struct PipelineCacheSafetyCriticalIndexEntryBuilder {
5265 inner: PipelineCacheSafetyCriticalIndexEntry,
5266}
5267impl PipelineCacheSafetyCriticalIndexEntry {
5268 #[inline]
5270 pub fn builder() -> PipelineCacheSafetyCriticalIndexEntryBuilder {
5271 PipelineCacheSafetyCriticalIndexEntryBuilder {
5272 inner: PipelineCacheSafetyCriticalIndexEntry {
5273 ..Default::default()
5274 },
5275 }
5276 }
5277}
5278impl PipelineCacheSafetyCriticalIndexEntryBuilder {
5279 #[inline]
5280 pub fn pipeline_identifier(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
5281 self.inner.pipeline_identifier = value;
5282 self
5283 }
5284 #[inline]
5285 pub fn pipeline_memory_size(mut self, value: u64) -> Self {
5286 self.inner.pipeline_memory_size = value;
5287 self
5288 }
5289 #[inline]
5290 pub fn json_size(mut self, value: u64) -> Self {
5291 self.inner.json_size = value;
5292 self
5293 }
5294 #[inline]
5295 pub fn json_offset(mut self, value: u64) -> Self {
5296 self.inner.json_offset = value;
5297 self
5298 }
5299 #[inline]
5300 pub fn stage_index_count(mut self, value: u32) -> Self {
5301 self.inner.stage_index_count = value;
5302 self
5303 }
5304 #[inline]
5305 pub fn stage_index_stride(mut self, value: u32) -> Self {
5306 self.inner.stage_index_stride = value;
5307 self
5308 }
5309 #[inline]
5310 pub fn stage_index_offset(mut self, value: u64) -> Self {
5311 self.inner.stage_index_offset = value;
5312 self
5313 }
5314}
5315impl core::ops::Deref for PipelineCacheSafetyCriticalIndexEntryBuilder {
5316 type Target = PipelineCacheSafetyCriticalIndexEntry;
5317 #[inline]
5318 fn deref(&self) -> &Self::Target {
5319 &self.inner
5320 }
5321}
5322impl core::ops::DerefMut for PipelineCacheSafetyCriticalIndexEntryBuilder {
5323 #[inline]
5324 fn deref_mut(&mut self) -> &mut Self::Target {
5325 &mut self.inner
5326 }
5327}
5328pub struct PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5330 inner: PipelineCacheHeaderVersionSafetyCriticalOne,
5331}
5332impl PipelineCacheHeaderVersionSafetyCriticalOne {
5333 #[inline]
5335 pub fn builder() -> PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5336 PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5337 inner: PipelineCacheHeaderVersionSafetyCriticalOne {
5338 ..Default::default()
5339 },
5340 }
5341 }
5342}
5343impl PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5344 #[inline]
5345 pub fn header_version_one(mut self, value: PipelineCacheHeaderVersionOne) -> Self {
5346 self.inner.header_version_one = value;
5347 self
5348 }
5349 #[inline]
5350 pub fn validation_version(mut self, value: PipelineCacheValidationVersion) -> Self {
5351 self.inner.validation_version = value;
5352 self
5353 }
5354 #[inline]
5355 pub fn implementation_data(mut self, value: u32) -> Self {
5356 self.inner.implementation_data = value;
5357 self
5358 }
5359 #[inline]
5360 pub fn pipeline_index_count(mut self, value: u32) -> Self {
5361 self.inner.pipeline_index_count = value;
5362 self
5363 }
5364 #[inline]
5365 pub fn pipeline_index_stride(mut self, value: u32) -> Self {
5366 self.inner.pipeline_index_stride = value;
5367 self
5368 }
5369 #[inline]
5370 pub fn pipeline_index_offset(mut self, value: u64) -> Self {
5371 self.inner.pipeline_index_offset = value;
5372 self
5373 }
5374}
5375impl core::ops::Deref for PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5376 type Target = PipelineCacheHeaderVersionSafetyCriticalOne;
5377 #[inline]
5378 fn deref(&self) -> &Self::Target {
5379 &self.inner
5380 }
5381}
5382impl core::ops::DerefMut for PipelineCacheHeaderVersionSafetyCriticalOneBuilder {
5383 #[inline]
5384 fn deref_mut(&mut self) -> &mut Self::Target {
5385 &mut self.inner
5386 }
5387}
5388pub struct PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5390 inner: PipelineCacheHeaderVersionDataGraphQCOM,
5391}
5392impl PipelineCacheHeaderVersionDataGraphQCOM {
5393 #[inline]
5395 pub fn builder() -> PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5396 PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5397 inner: PipelineCacheHeaderVersionDataGraphQCOM {
5398 ..Default::default()
5399 },
5400 }
5401 }
5402}
5403impl PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5404 #[inline]
5405 pub fn header_size(mut self, value: u32) -> Self {
5406 self.inner.header_size = value;
5407 self
5408 }
5409 #[inline]
5410 pub fn header_version(mut self, value: PipelineCacheHeaderVersion) -> Self {
5411 self.inner.header_version = value;
5412 self
5413 }
5414 #[inline]
5415 pub fn cache_type(mut self, value: DataGraphModelCacheTypeQCOM) -> Self {
5416 self.inner.cache_type = value;
5417 self
5418 }
5419 #[inline]
5420 pub fn cache_version(mut self, value: u32) -> Self {
5421 self.inner.cache_version = value;
5422 self
5423 }
5424 #[inline]
5425 pub fn toolchain_version(
5426 mut self,
5427 value: [u32; DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM as usize],
5428 ) -> Self {
5429 self.inner.toolchain_version = value;
5430 self
5431 }
5432}
5433impl core::ops::Deref for PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5434 type Target = PipelineCacheHeaderVersionDataGraphQCOM;
5435 #[inline]
5436 fn deref(&self) -> &Self::Target {
5437 &self.inner
5438 }
5439}
5440impl core::ops::DerefMut for PipelineCacheHeaderVersionDataGraphQCOMBuilder {
5441 #[inline]
5442 fn deref_mut(&mut self) -> &mut Self::Target {
5443 &mut self.inner
5444 }
5445}
5446pub struct PushConstantRangeBuilder {
5448 inner: PushConstantRange,
5449}
5450impl PushConstantRange {
5451 #[inline]
5453 pub fn builder() -> PushConstantRangeBuilder {
5454 PushConstantRangeBuilder {
5455 inner: PushConstantRange {
5456 ..Default::default()
5457 },
5458 }
5459 }
5460}
5461impl PushConstantRangeBuilder {
5462 #[inline]
5463 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
5464 self.inner.stage_flags = value;
5465 self
5466 }
5467 #[inline]
5468 pub fn offset(mut self, value: u32) -> Self {
5469 self.inner.offset = value;
5470 self
5471 }
5472 #[inline]
5473 pub fn size(mut self, value: u32) -> Self {
5474 self.inner.size = value;
5475 self
5476 }
5477}
5478impl core::ops::Deref for PushConstantRangeBuilder {
5479 type Target = PushConstantRange;
5480 #[inline]
5481 fn deref(&self) -> &Self::Target {
5482 &self.inner
5483 }
5484}
5485impl core::ops::DerefMut for PushConstantRangeBuilder {
5486 #[inline]
5487 fn deref_mut(&mut self) -> &mut Self::Target {
5488 &mut self.inner
5489 }
5490}
5491pub struct PipelineBinaryCreateInfoKHRBuilder<'a> {
5493 inner: PipelineBinaryCreateInfoKHR,
5494 _marker: core::marker::PhantomData<&'a ()>,
5495}
5496impl PipelineBinaryCreateInfoKHR {
5497 #[inline]
5499 pub fn builder<'a>() -> PipelineBinaryCreateInfoKHRBuilder<'a> {
5500 PipelineBinaryCreateInfoKHRBuilder {
5501 inner: PipelineBinaryCreateInfoKHR {
5502 s_type: StructureType::from_raw(1000483001i32),
5503 ..Default::default()
5504 },
5505 _marker: core::marker::PhantomData,
5506 }
5507 }
5508}
5509impl<'a> PipelineBinaryCreateInfoKHRBuilder<'a> {
5510 #[inline]
5511 pub fn keys_and_data_info(
5512 mut self,
5513 value: &'a PipelineBinaryKeysAndDataKHR,
5514 ) -> Self {
5515 self.inner.p_keys_and_data_info = value;
5516 self
5517 }
5518 #[inline]
5519 pub fn pipeline(mut self, value: Pipeline) -> Self {
5520 self.inner.pipeline = value;
5521 self
5522 }
5523 #[inline]
5524 pub fn pipeline_create_info(mut self, value: &'a PipelineCreateInfoKHR) -> Self {
5525 self.inner.p_pipeline_create_info = value;
5526 self
5527 }
5528 #[inline]
5530 pub fn push_next<T: ExtendsPipelineBinaryCreateInfoKHR>(
5531 mut self,
5532 next: &'a mut T,
5533 ) -> Self {
5534 unsafe {
5535 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5536 (*next_ptr).p_next = self.inner.p_next as *mut _;
5537 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5538 core::ffi::c_void,
5539 >(next_ptr) as *const _;
5540 }
5541 self
5542 }
5543}
5544impl<'a> core::ops::Deref for PipelineBinaryCreateInfoKHRBuilder<'a> {
5545 type Target = PipelineBinaryCreateInfoKHR;
5546 #[inline]
5547 fn deref(&self) -> &Self::Target {
5548 &self.inner
5549 }
5550}
5551impl<'a> core::ops::DerefMut for PipelineBinaryCreateInfoKHRBuilder<'a> {
5552 #[inline]
5553 fn deref_mut(&mut self) -> &mut Self::Target {
5554 &mut self.inner
5555 }
5556}
5557pub struct PipelineBinaryHandlesInfoKHRBuilder<'a> {
5559 inner: PipelineBinaryHandlesInfoKHR,
5560 _marker: core::marker::PhantomData<&'a ()>,
5561}
5562impl PipelineBinaryHandlesInfoKHR {
5563 #[inline]
5565 pub fn builder<'a>() -> PipelineBinaryHandlesInfoKHRBuilder<'a> {
5566 PipelineBinaryHandlesInfoKHRBuilder {
5567 inner: PipelineBinaryHandlesInfoKHR {
5568 s_type: StructureType::from_raw(1000483009i32),
5569 ..Default::default()
5570 },
5571 _marker: core::marker::PhantomData,
5572 }
5573 }
5574}
5575impl<'a> PipelineBinaryHandlesInfoKHRBuilder<'a> {
5576 #[inline]
5577 pub fn pipeline_binary_count(mut self, value: u32) -> Self {
5578 self.inner.pipeline_binary_count = value;
5579 self
5580 }
5581 #[inline]
5582 pub fn pipeline_binaries(mut self, slice: &'a mut [PipelineBinaryKHR]) -> Self {
5583 self.inner.pipeline_binary_count = slice.len() as u32;
5584 self.inner.p_pipeline_binaries = slice.as_mut_ptr();
5585 self
5586 }
5587 #[inline]
5589 pub fn push_next<T: ExtendsPipelineBinaryHandlesInfoKHR>(
5590 mut self,
5591 next: &'a mut T,
5592 ) -> Self {
5593 unsafe {
5594 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5595 (*next_ptr).p_next = self.inner.p_next as *mut _;
5596 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5597 core::ffi::c_void,
5598 >(next_ptr) as *const _;
5599 }
5600 self
5601 }
5602}
5603impl<'a> core::ops::Deref for PipelineBinaryHandlesInfoKHRBuilder<'a> {
5604 type Target = PipelineBinaryHandlesInfoKHR;
5605 #[inline]
5606 fn deref(&self) -> &Self::Target {
5607 &self.inner
5608 }
5609}
5610impl<'a> core::ops::DerefMut for PipelineBinaryHandlesInfoKHRBuilder<'a> {
5611 #[inline]
5612 fn deref_mut(&mut self) -> &mut Self::Target {
5613 &mut self.inner
5614 }
5615}
5616pub struct PipelineBinaryDataKHRBuilder<'a> {
5618 inner: PipelineBinaryDataKHR,
5619 _marker: core::marker::PhantomData<&'a ()>,
5620}
5621impl PipelineBinaryDataKHR {
5622 #[inline]
5624 pub fn builder<'a>() -> PipelineBinaryDataKHRBuilder<'a> {
5625 PipelineBinaryDataKHRBuilder {
5626 inner: PipelineBinaryDataKHR {
5627 ..Default::default()
5628 },
5629 _marker: core::marker::PhantomData,
5630 }
5631 }
5632}
5633impl<'a> PipelineBinaryDataKHRBuilder<'a> {
5634 #[inline]
5635 pub fn data(mut self, slice: &'a mut [core::ffi::c_void]) -> Self {
5636 self.inner.data_size = slice.len();
5637 self.inner.p_data = slice.as_mut_ptr();
5638 self
5639 }
5640}
5641impl<'a> core::ops::Deref for PipelineBinaryDataKHRBuilder<'a> {
5642 type Target = PipelineBinaryDataKHR;
5643 #[inline]
5644 fn deref(&self) -> &Self::Target {
5645 &self.inner
5646 }
5647}
5648impl<'a> core::ops::DerefMut for PipelineBinaryDataKHRBuilder<'a> {
5649 #[inline]
5650 fn deref_mut(&mut self) -> &mut Self::Target {
5651 &mut self.inner
5652 }
5653}
5654pub struct PipelineBinaryKeysAndDataKHRBuilder<'a> {
5656 inner: PipelineBinaryKeysAndDataKHR,
5657 _marker: core::marker::PhantomData<&'a ()>,
5658}
5659impl PipelineBinaryKeysAndDataKHR {
5660 #[inline]
5662 pub fn builder<'a>() -> PipelineBinaryKeysAndDataKHRBuilder<'a> {
5663 PipelineBinaryKeysAndDataKHRBuilder {
5664 inner: PipelineBinaryKeysAndDataKHR {
5665 ..Default::default()
5666 },
5667 _marker: core::marker::PhantomData,
5668 }
5669 }
5670}
5671impl<'a> PipelineBinaryKeysAndDataKHRBuilder<'a> {
5672 #[inline]
5673 pub fn pipeline_binary_keys(mut self, slice: &'a [PipelineBinaryKeyKHR]) -> Self {
5674 self.inner.binary_count = slice.len() as u32;
5675 self.inner.p_pipeline_binary_keys = slice.as_ptr();
5676 self
5677 }
5678 #[inline]
5679 pub fn pipeline_binary_data(mut self, slice: &'a [PipelineBinaryDataKHR]) -> Self {
5680 self.inner.binary_count = slice.len() as u32;
5681 self.inner.p_pipeline_binary_data = slice.as_ptr();
5682 self
5683 }
5684}
5685impl<'a> core::ops::Deref for PipelineBinaryKeysAndDataKHRBuilder<'a> {
5686 type Target = PipelineBinaryKeysAndDataKHR;
5687 #[inline]
5688 fn deref(&self) -> &Self::Target {
5689 &self.inner
5690 }
5691}
5692impl<'a> core::ops::DerefMut for PipelineBinaryKeysAndDataKHRBuilder<'a> {
5693 #[inline]
5694 fn deref_mut(&mut self) -> &mut Self::Target {
5695 &mut self.inner
5696 }
5697}
5698pub struct PipelineBinaryKeyKHRBuilder<'a> {
5700 inner: PipelineBinaryKeyKHR,
5701 _marker: core::marker::PhantomData<&'a ()>,
5702}
5703impl PipelineBinaryKeyKHR {
5704 #[inline]
5706 pub fn builder<'a>() -> PipelineBinaryKeyKHRBuilder<'a> {
5707 PipelineBinaryKeyKHRBuilder {
5708 inner: PipelineBinaryKeyKHR {
5709 s_type: StructureType::from_raw(1000483003i32),
5710 ..Default::default()
5711 },
5712 _marker: core::marker::PhantomData,
5713 }
5714 }
5715}
5716impl<'a> PipelineBinaryKeyKHRBuilder<'a> {
5717 #[inline]
5718 pub fn key_size(mut self, value: u32) -> Self {
5719 self.inner.key_size = value;
5720 self
5721 }
5722 #[inline]
5723 pub fn key(
5724 mut self,
5725 value: [u8; MAX_PIPELINE_BINARY_KEY_SIZE_KHR as usize],
5726 ) -> Self {
5727 self.inner.key = value;
5728 self
5729 }
5730 #[inline]
5732 pub fn push_next<T: ExtendsPipelineBinaryKeyKHR>(mut self, next: &'a mut T) -> Self {
5733 unsafe {
5734 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5735 (*next_ptr).p_next = self.inner.p_next as *mut _;
5736 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5737 core::ffi::c_void,
5738 >(next_ptr);
5739 }
5740 self
5741 }
5742}
5743impl<'a> core::ops::Deref for PipelineBinaryKeyKHRBuilder<'a> {
5744 type Target = PipelineBinaryKeyKHR;
5745 #[inline]
5746 fn deref(&self) -> &Self::Target {
5747 &self.inner
5748 }
5749}
5750impl<'a> core::ops::DerefMut for PipelineBinaryKeyKHRBuilder<'a> {
5751 #[inline]
5752 fn deref_mut(&mut self) -> &mut Self::Target {
5753 &mut self.inner
5754 }
5755}
5756pub struct PipelineBinaryInfoKHRBuilder<'a> {
5758 inner: PipelineBinaryInfoKHR,
5759 _marker: core::marker::PhantomData<&'a ()>,
5760}
5761impl PipelineBinaryInfoKHR {
5762 #[inline]
5764 pub fn builder<'a>() -> PipelineBinaryInfoKHRBuilder<'a> {
5765 PipelineBinaryInfoKHRBuilder {
5766 inner: PipelineBinaryInfoKHR {
5767 s_type: StructureType::from_raw(1000483002i32),
5768 ..Default::default()
5769 },
5770 _marker: core::marker::PhantomData,
5771 }
5772 }
5773}
5774impl<'a> PipelineBinaryInfoKHRBuilder<'a> {
5775 #[inline]
5776 pub fn pipeline_binaries(mut self, slice: &'a [PipelineBinaryKHR]) -> Self {
5777 self.inner.binary_count = slice.len() as u32;
5778 self.inner.p_pipeline_binaries = slice.as_ptr();
5779 self
5780 }
5781 #[inline]
5783 pub fn push_next<T: ExtendsPipelineBinaryInfoKHR>(
5784 mut self,
5785 next: &'a mut T,
5786 ) -> Self {
5787 unsafe {
5788 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5789 (*next_ptr).p_next = self.inner.p_next as *mut _;
5790 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5791 core::ffi::c_void,
5792 >(next_ptr) as *const _;
5793 }
5794 self
5795 }
5796}
5797impl<'a> core::ops::Deref for PipelineBinaryInfoKHRBuilder<'a> {
5798 type Target = PipelineBinaryInfoKHR;
5799 #[inline]
5800 fn deref(&self) -> &Self::Target {
5801 &self.inner
5802 }
5803}
5804impl<'a> core::ops::DerefMut for PipelineBinaryInfoKHRBuilder<'a> {
5805 #[inline]
5806 fn deref_mut(&mut self) -> &mut Self::Target {
5807 &mut self.inner
5808 }
5809}
5810pub struct ReleaseCapturedPipelineDataInfoKHRBuilder<'a> {
5812 inner: ReleaseCapturedPipelineDataInfoKHR,
5813 _marker: core::marker::PhantomData<&'a ()>,
5814}
5815impl ReleaseCapturedPipelineDataInfoKHR {
5816 #[inline]
5818 pub fn builder<'a>() -> ReleaseCapturedPipelineDataInfoKHRBuilder<'a> {
5819 ReleaseCapturedPipelineDataInfoKHRBuilder {
5820 inner: ReleaseCapturedPipelineDataInfoKHR {
5821 s_type: StructureType::from_raw(1000483005i32),
5822 ..Default::default()
5823 },
5824 _marker: core::marker::PhantomData,
5825 }
5826 }
5827}
5828impl<'a> ReleaseCapturedPipelineDataInfoKHRBuilder<'a> {
5829 #[inline]
5830 pub fn pipeline(mut self, value: Pipeline) -> Self {
5831 self.inner.pipeline = value;
5832 self
5833 }
5834 #[inline]
5836 pub fn push_next<T: ExtendsReleaseCapturedPipelineDataInfoKHR>(
5837 mut self,
5838 next: &'a mut T,
5839 ) -> Self {
5840 unsafe {
5841 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5842 (*next_ptr).p_next = self.inner.p_next as *mut _;
5843 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5844 core::ffi::c_void,
5845 >(next_ptr);
5846 }
5847 self
5848 }
5849}
5850impl<'a> core::ops::Deref for ReleaseCapturedPipelineDataInfoKHRBuilder<'a> {
5851 type Target = ReleaseCapturedPipelineDataInfoKHR;
5852 #[inline]
5853 fn deref(&self) -> &Self::Target {
5854 &self.inner
5855 }
5856}
5857impl<'a> core::ops::DerefMut for ReleaseCapturedPipelineDataInfoKHRBuilder<'a> {
5858 #[inline]
5859 fn deref_mut(&mut self) -> &mut Self::Target {
5860 &mut self.inner
5861 }
5862}
5863pub struct PipelineBinaryDataInfoKHRBuilder<'a> {
5865 inner: PipelineBinaryDataInfoKHR,
5866 _marker: core::marker::PhantomData<&'a ()>,
5867}
5868impl PipelineBinaryDataInfoKHR {
5869 #[inline]
5871 pub fn builder<'a>() -> PipelineBinaryDataInfoKHRBuilder<'a> {
5872 PipelineBinaryDataInfoKHRBuilder {
5873 inner: PipelineBinaryDataInfoKHR {
5874 s_type: StructureType::from_raw(1000483006i32),
5875 ..Default::default()
5876 },
5877 _marker: core::marker::PhantomData,
5878 }
5879 }
5880}
5881impl<'a> PipelineBinaryDataInfoKHRBuilder<'a> {
5882 #[inline]
5883 pub fn pipeline_binary(mut self, value: PipelineBinaryKHR) -> Self {
5884 self.inner.pipeline_binary = value;
5885 self
5886 }
5887 #[inline]
5889 pub fn push_next<T: ExtendsPipelineBinaryDataInfoKHR>(
5890 mut self,
5891 next: &'a mut T,
5892 ) -> Self {
5893 unsafe {
5894 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5895 (*next_ptr).p_next = self.inner.p_next as *mut _;
5896 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5897 core::ffi::c_void,
5898 >(next_ptr);
5899 }
5900 self
5901 }
5902}
5903impl<'a> core::ops::Deref for PipelineBinaryDataInfoKHRBuilder<'a> {
5904 type Target = PipelineBinaryDataInfoKHR;
5905 #[inline]
5906 fn deref(&self) -> &Self::Target {
5907 &self.inner
5908 }
5909}
5910impl<'a> core::ops::DerefMut for PipelineBinaryDataInfoKHRBuilder<'a> {
5911 #[inline]
5912 fn deref_mut(&mut self) -> &mut Self::Target {
5913 &mut self.inner
5914 }
5915}
5916pub struct PipelineCreateInfoKHRBuilder<'a> {
5918 inner: PipelineCreateInfoKHR,
5919 _marker: core::marker::PhantomData<&'a ()>,
5920}
5921impl PipelineCreateInfoKHR {
5922 #[inline]
5924 pub fn builder<'a>() -> PipelineCreateInfoKHRBuilder<'a> {
5925 PipelineCreateInfoKHRBuilder {
5926 inner: PipelineCreateInfoKHR {
5927 s_type: StructureType::from_raw(1000483007i32),
5928 ..Default::default()
5929 },
5930 _marker: core::marker::PhantomData,
5931 }
5932 }
5933}
5934impl<'a> PipelineCreateInfoKHRBuilder<'a> {
5935 #[inline]
5937 pub fn push_next<T: ExtendsPipelineCreateInfoKHR>(
5938 mut self,
5939 next: &'a mut T,
5940 ) -> Self {
5941 unsafe {
5942 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
5943 (*next_ptr).p_next = self.inner.p_next as *mut _;
5944 self.inner.p_next = <*mut BaseOutStructure>::cast::<
5945 core::ffi::c_void,
5946 >(next_ptr);
5947 }
5948 self
5949 }
5950}
5951impl<'a> core::ops::Deref for PipelineCreateInfoKHRBuilder<'a> {
5952 type Target = PipelineCreateInfoKHR;
5953 #[inline]
5954 fn deref(&self) -> &Self::Target {
5955 &self.inner
5956 }
5957}
5958impl<'a> core::ops::DerefMut for PipelineCreateInfoKHRBuilder<'a> {
5959 #[inline]
5960 fn deref_mut(&mut self) -> &mut Self::Target {
5961 &mut self.inner
5962 }
5963}
5964pub struct PipelineLayoutCreateInfoBuilder<'a> {
5966 inner: PipelineLayoutCreateInfo,
5967 _marker: core::marker::PhantomData<&'a ()>,
5968}
5969impl PipelineLayoutCreateInfo {
5970 #[inline]
5972 pub fn builder<'a>() -> PipelineLayoutCreateInfoBuilder<'a> {
5973 PipelineLayoutCreateInfoBuilder {
5974 inner: PipelineLayoutCreateInfo {
5975 s_type: StructureType::from_raw(30i32),
5976 ..Default::default()
5977 },
5978 _marker: core::marker::PhantomData,
5979 }
5980 }
5981}
5982impl<'a> PipelineLayoutCreateInfoBuilder<'a> {
5983 #[inline]
5984 pub fn flags(mut self, value: PipelineLayoutCreateFlags) -> Self {
5985 self.inner.flags = value;
5986 self
5987 }
5988 #[inline]
5989 pub fn set_layout_count(mut self, value: u32) -> Self {
5990 self.inner.set_layout_count = value;
5991 self
5992 }
5993 #[inline]
5994 pub fn set_layouts(mut self, slice: &'a [DescriptorSetLayout]) -> Self {
5995 self.inner.set_layout_count = slice.len() as u32;
5996 self.inner.p_set_layouts = slice.as_ptr();
5997 self
5998 }
5999 #[inline]
6000 pub fn push_constant_ranges(mut self, slice: &'a [PushConstantRange]) -> Self {
6001 self.inner.push_constant_range_count = slice.len() as u32;
6002 self.inner.p_push_constant_ranges = slice.as_ptr();
6003 self
6004 }
6005 #[inline]
6007 pub fn push_next<T: ExtendsPipelineLayoutCreateInfo>(
6008 mut self,
6009 next: &'a mut T,
6010 ) -> Self {
6011 unsafe {
6012 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6013 (*next_ptr).p_next = self.inner.p_next as *mut _;
6014 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6015 core::ffi::c_void,
6016 >(next_ptr) as *const _;
6017 }
6018 self
6019 }
6020}
6021impl<'a> core::ops::Deref for PipelineLayoutCreateInfoBuilder<'a> {
6022 type Target = PipelineLayoutCreateInfo;
6023 #[inline]
6024 fn deref(&self) -> &Self::Target {
6025 &self.inner
6026 }
6027}
6028impl<'a> core::ops::DerefMut for PipelineLayoutCreateInfoBuilder<'a> {
6029 #[inline]
6030 fn deref_mut(&mut self) -> &mut Self::Target {
6031 &mut self.inner
6032 }
6033}
6034pub struct SamplerCreateInfoBuilder<'a> {
6036 inner: SamplerCreateInfo,
6037 _marker: core::marker::PhantomData<&'a ()>,
6038}
6039impl SamplerCreateInfo {
6040 #[inline]
6042 pub fn builder<'a>() -> SamplerCreateInfoBuilder<'a> {
6043 SamplerCreateInfoBuilder {
6044 inner: SamplerCreateInfo {
6045 s_type: StructureType::from_raw(31i32),
6046 ..Default::default()
6047 },
6048 _marker: core::marker::PhantomData,
6049 }
6050 }
6051}
6052impl<'a> SamplerCreateInfoBuilder<'a> {
6053 #[inline]
6054 pub fn flags(mut self, value: SamplerCreateFlags) -> Self {
6055 self.inner.flags = value;
6056 self
6057 }
6058 #[inline]
6059 pub fn mag_filter(mut self, value: Filter) -> Self {
6060 self.inner.mag_filter = value;
6061 self
6062 }
6063 #[inline]
6064 pub fn min_filter(mut self, value: Filter) -> Self {
6065 self.inner.min_filter = value;
6066 self
6067 }
6068 #[inline]
6069 pub fn mipmap_mode(mut self, value: SamplerMipmapMode) -> Self {
6070 self.inner.mipmap_mode = value;
6071 self
6072 }
6073 #[inline]
6074 pub fn address_mode_u(mut self, value: SamplerAddressMode) -> Self {
6075 self.inner.address_mode_u = value;
6076 self
6077 }
6078 #[inline]
6079 pub fn address_mode_v(mut self, value: SamplerAddressMode) -> Self {
6080 self.inner.address_mode_v = value;
6081 self
6082 }
6083 #[inline]
6084 pub fn address_mode_w(mut self, value: SamplerAddressMode) -> Self {
6085 self.inner.address_mode_w = value;
6086 self
6087 }
6088 #[inline]
6089 pub fn mip_lod_bias(mut self, value: f32) -> Self {
6090 self.inner.mip_lod_bias = value;
6091 self
6092 }
6093 #[inline]
6094 pub fn anisotropy_enable(mut self, value: bool) -> Self {
6095 self.inner.anisotropy_enable = value as u32;
6096 self
6097 }
6098 #[inline]
6099 pub fn max_anisotropy(mut self, value: f32) -> Self {
6100 self.inner.max_anisotropy = value;
6101 self
6102 }
6103 #[inline]
6104 pub fn compare_enable(mut self, value: bool) -> Self {
6105 self.inner.compare_enable = value as u32;
6106 self
6107 }
6108 #[inline]
6109 pub fn compare_op(mut self, value: CompareOp) -> Self {
6110 self.inner.compare_op = value;
6111 self
6112 }
6113 #[inline]
6114 pub fn min_lod(mut self, value: f32) -> Self {
6115 self.inner.min_lod = value;
6116 self
6117 }
6118 #[inline]
6119 pub fn max_lod(mut self, value: f32) -> Self {
6120 self.inner.max_lod = value;
6121 self
6122 }
6123 #[inline]
6124 pub fn border_color(mut self, value: BorderColor) -> Self {
6125 self.inner.border_color = value;
6126 self
6127 }
6128 #[inline]
6129 pub fn unnormalized_coordinates(mut self, value: bool) -> Self {
6130 self.inner.unnormalized_coordinates = value as u32;
6131 self
6132 }
6133 #[inline]
6135 pub fn push_next<T: ExtendsSamplerCreateInfo>(mut self, next: &'a mut T) -> Self {
6136 unsafe {
6137 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6138 (*next_ptr).p_next = self.inner.p_next as *mut _;
6139 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6140 core::ffi::c_void,
6141 >(next_ptr) as *const _;
6142 }
6143 self
6144 }
6145}
6146impl<'a> core::ops::Deref for SamplerCreateInfoBuilder<'a> {
6147 type Target = SamplerCreateInfo;
6148 #[inline]
6149 fn deref(&self) -> &Self::Target {
6150 &self.inner
6151 }
6152}
6153impl<'a> core::ops::DerefMut for SamplerCreateInfoBuilder<'a> {
6154 #[inline]
6155 fn deref_mut(&mut self) -> &mut Self::Target {
6156 &mut self.inner
6157 }
6158}
6159pub struct CommandPoolCreateInfoBuilder<'a> {
6161 inner: CommandPoolCreateInfo,
6162 _marker: core::marker::PhantomData<&'a ()>,
6163}
6164impl CommandPoolCreateInfo {
6165 #[inline]
6167 pub fn builder<'a>() -> CommandPoolCreateInfoBuilder<'a> {
6168 CommandPoolCreateInfoBuilder {
6169 inner: CommandPoolCreateInfo {
6170 s_type: StructureType::from_raw(39i32),
6171 ..Default::default()
6172 },
6173 _marker: core::marker::PhantomData,
6174 }
6175 }
6176}
6177impl<'a> CommandPoolCreateInfoBuilder<'a> {
6178 #[inline]
6179 pub fn flags(mut self, value: CommandPoolCreateFlags) -> Self {
6180 self.inner.flags = value;
6181 self
6182 }
6183 #[inline]
6184 pub fn queue_family_index(mut self, value: u32) -> Self {
6185 self.inner.queue_family_index = value;
6186 self
6187 }
6188 #[inline]
6190 pub fn push_next<T: ExtendsCommandPoolCreateInfo>(
6191 mut self,
6192 next: &'a mut T,
6193 ) -> Self {
6194 unsafe {
6195 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6196 (*next_ptr).p_next = self.inner.p_next as *mut _;
6197 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6198 core::ffi::c_void,
6199 >(next_ptr) as *const _;
6200 }
6201 self
6202 }
6203}
6204impl<'a> core::ops::Deref for CommandPoolCreateInfoBuilder<'a> {
6205 type Target = CommandPoolCreateInfo;
6206 #[inline]
6207 fn deref(&self) -> &Self::Target {
6208 &self.inner
6209 }
6210}
6211impl<'a> core::ops::DerefMut for CommandPoolCreateInfoBuilder<'a> {
6212 #[inline]
6213 fn deref_mut(&mut self) -> &mut Self::Target {
6214 &mut self.inner
6215 }
6216}
6217pub struct CommandBufferAllocateInfoBuilder<'a> {
6219 inner: CommandBufferAllocateInfo,
6220 _marker: core::marker::PhantomData<&'a ()>,
6221}
6222impl CommandBufferAllocateInfo {
6223 #[inline]
6225 pub fn builder<'a>() -> CommandBufferAllocateInfoBuilder<'a> {
6226 CommandBufferAllocateInfoBuilder {
6227 inner: CommandBufferAllocateInfo {
6228 s_type: StructureType::from_raw(40i32),
6229 ..Default::default()
6230 },
6231 _marker: core::marker::PhantomData,
6232 }
6233 }
6234}
6235impl<'a> CommandBufferAllocateInfoBuilder<'a> {
6236 #[inline]
6237 pub fn command_pool(mut self, value: CommandPool) -> Self {
6238 self.inner.command_pool = value;
6239 self
6240 }
6241 #[inline]
6242 pub fn level(mut self, value: CommandBufferLevel) -> Self {
6243 self.inner.level = value;
6244 self
6245 }
6246 #[inline]
6247 pub fn command_buffer_count(mut self, value: u32) -> Self {
6248 self.inner.command_buffer_count = value;
6249 self
6250 }
6251 #[inline]
6253 pub fn push_next<T: ExtendsCommandBufferAllocateInfo>(
6254 mut self,
6255 next: &'a mut T,
6256 ) -> Self {
6257 unsafe {
6258 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6259 (*next_ptr).p_next = self.inner.p_next as *mut _;
6260 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6261 core::ffi::c_void,
6262 >(next_ptr) as *const _;
6263 }
6264 self
6265 }
6266}
6267impl<'a> core::ops::Deref for CommandBufferAllocateInfoBuilder<'a> {
6268 type Target = CommandBufferAllocateInfo;
6269 #[inline]
6270 fn deref(&self) -> &Self::Target {
6271 &self.inner
6272 }
6273}
6274impl<'a> core::ops::DerefMut for CommandBufferAllocateInfoBuilder<'a> {
6275 #[inline]
6276 fn deref_mut(&mut self) -> &mut Self::Target {
6277 &mut self.inner
6278 }
6279}
6280pub struct CommandBufferInheritanceInfoBuilder<'a> {
6282 inner: CommandBufferInheritanceInfo,
6283 _marker: core::marker::PhantomData<&'a ()>,
6284}
6285impl CommandBufferInheritanceInfo {
6286 #[inline]
6288 pub fn builder<'a>() -> CommandBufferInheritanceInfoBuilder<'a> {
6289 CommandBufferInheritanceInfoBuilder {
6290 inner: CommandBufferInheritanceInfo {
6291 s_type: StructureType::from_raw(41i32),
6292 ..Default::default()
6293 },
6294 _marker: core::marker::PhantomData,
6295 }
6296 }
6297}
6298impl<'a> CommandBufferInheritanceInfoBuilder<'a> {
6299 #[inline]
6300 pub fn render_pass(mut self, value: RenderPass) -> Self {
6301 self.inner.render_pass = value;
6302 self
6303 }
6304 #[inline]
6305 pub fn subpass(mut self, value: u32) -> Self {
6306 self.inner.subpass = value;
6307 self
6308 }
6309 #[inline]
6310 pub fn framebuffer(mut self, value: Framebuffer) -> Self {
6311 self.inner.framebuffer = value;
6312 self
6313 }
6314 #[inline]
6315 pub fn occlusion_query_enable(mut self, value: bool) -> Self {
6316 self.inner.occlusion_query_enable = value as u32;
6317 self
6318 }
6319 #[inline]
6320 pub fn query_flags(mut self, value: QueryControlFlags) -> Self {
6321 self.inner.query_flags = value;
6322 self
6323 }
6324 #[inline]
6325 pub fn pipeline_statistics(mut self, value: QueryPipelineStatisticFlags) -> Self {
6326 self.inner.pipeline_statistics = value;
6327 self
6328 }
6329 #[inline]
6331 pub fn push_next<T: ExtendsCommandBufferInheritanceInfo>(
6332 mut self,
6333 next: &'a mut T,
6334 ) -> Self {
6335 unsafe {
6336 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6337 (*next_ptr).p_next = self.inner.p_next as *mut _;
6338 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6339 core::ffi::c_void,
6340 >(next_ptr) as *const _;
6341 }
6342 self
6343 }
6344}
6345impl<'a> core::ops::Deref for CommandBufferInheritanceInfoBuilder<'a> {
6346 type Target = CommandBufferInheritanceInfo;
6347 #[inline]
6348 fn deref(&self) -> &Self::Target {
6349 &self.inner
6350 }
6351}
6352impl<'a> core::ops::DerefMut for CommandBufferInheritanceInfoBuilder<'a> {
6353 #[inline]
6354 fn deref_mut(&mut self) -> &mut Self::Target {
6355 &mut self.inner
6356 }
6357}
6358pub struct CommandBufferBeginInfoBuilder<'a> {
6360 inner: CommandBufferBeginInfo,
6361 _marker: core::marker::PhantomData<&'a ()>,
6362}
6363impl CommandBufferBeginInfo {
6364 #[inline]
6366 pub fn builder<'a>() -> CommandBufferBeginInfoBuilder<'a> {
6367 CommandBufferBeginInfoBuilder {
6368 inner: CommandBufferBeginInfo {
6369 s_type: StructureType::from_raw(42i32),
6370 ..Default::default()
6371 },
6372 _marker: core::marker::PhantomData,
6373 }
6374 }
6375}
6376impl<'a> CommandBufferBeginInfoBuilder<'a> {
6377 #[inline]
6378 pub fn flags(mut self, value: CommandBufferUsageFlags) -> Self {
6379 self.inner.flags = value;
6380 self
6381 }
6382 #[inline]
6383 pub fn inheritance_info(mut self, value: &'a CommandBufferInheritanceInfo) -> Self {
6384 self.inner.p_inheritance_info = value;
6385 self
6386 }
6387 #[inline]
6389 pub fn push_next<T: ExtendsCommandBufferBeginInfo>(
6390 mut self,
6391 next: &'a mut T,
6392 ) -> Self {
6393 unsafe {
6394 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6395 (*next_ptr).p_next = self.inner.p_next as *mut _;
6396 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6397 core::ffi::c_void,
6398 >(next_ptr) as *const _;
6399 }
6400 self
6401 }
6402}
6403impl<'a> core::ops::Deref for CommandBufferBeginInfoBuilder<'a> {
6404 type Target = CommandBufferBeginInfo;
6405 #[inline]
6406 fn deref(&self) -> &Self::Target {
6407 &self.inner
6408 }
6409}
6410impl<'a> core::ops::DerefMut for CommandBufferBeginInfoBuilder<'a> {
6411 #[inline]
6412 fn deref_mut(&mut self) -> &mut Self::Target {
6413 &mut self.inner
6414 }
6415}
6416pub struct RenderPassBeginInfoBuilder<'a> {
6418 inner: RenderPassBeginInfo,
6419 _marker: core::marker::PhantomData<&'a ()>,
6420}
6421impl RenderPassBeginInfo {
6422 #[inline]
6424 pub fn builder<'a>() -> RenderPassBeginInfoBuilder<'a> {
6425 RenderPassBeginInfoBuilder {
6426 inner: RenderPassBeginInfo {
6427 s_type: StructureType::from_raw(43i32),
6428 ..Default::default()
6429 },
6430 _marker: core::marker::PhantomData,
6431 }
6432 }
6433}
6434impl<'a> RenderPassBeginInfoBuilder<'a> {
6435 #[inline]
6436 pub fn render_pass(mut self, value: RenderPass) -> Self {
6437 self.inner.render_pass = value;
6438 self
6439 }
6440 #[inline]
6441 pub fn framebuffer(mut self, value: Framebuffer) -> Self {
6442 self.inner.framebuffer = value;
6443 self
6444 }
6445 #[inline]
6446 pub fn render_area(mut self, value: Rect2D) -> Self {
6447 self.inner.render_area = value;
6448 self
6449 }
6450 #[inline]
6451 pub fn clear_values(mut self, slice: &'a [ClearValue]) -> Self {
6452 self.inner.clear_value_count = slice.len() as u32;
6453 self.inner.p_clear_values = slice.as_ptr();
6454 self
6455 }
6456 #[inline]
6458 pub fn push_next<T: ExtendsRenderPassBeginInfo>(mut self, next: &'a mut T) -> Self {
6459 unsafe {
6460 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6461 (*next_ptr).p_next = self.inner.p_next as *mut _;
6462 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6463 core::ffi::c_void,
6464 >(next_ptr) as *const _;
6465 }
6466 self
6467 }
6468}
6469impl<'a> core::ops::Deref for RenderPassBeginInfoBuilder<'a> {
6470 type Target = RenderPassBeginInfo;
6471 #[inline]
6472 fn deref(&self) -> &Self::Target {
6473 &self.inner
6474 }
6475}
6476impl<'a> core::ops::DerefMut for RenderPassBeginInfoBuilder<'a> {
6477 #[inline]
6478 fn deref_mut(&mut self) -> &mut Self::Target {
6479 &mut self.inner
6480 }
6481}
6482pub struct ClearDepthStencilValueBuilder {
6484 inner: ClearDepthStencilValue,
6485}
6486impl ClearDepthStencilValue {
6487 #[inline]
6489 pub fn builder() -> ClearDepthStencilValueBuilder {
6490 ClearDepthStencilValueBuilder {
6491 inner: ClearDepthStencilValue {
6492 ..Default::default()
6493 },
6494 }
6495 }
6496}
6497impl ClearDepthStencilValueBuilder {
6498 #[inline]
6499 pub fn depth(mut self, value: f32) -> Self {
6500 self.inner.depth = value;
6501 self
6502 }
6503 #[inline]
6504 pub fn stencil(mut self, value: u32) -> Self {
6505 self.inner.stencil = value;
6506 self
6507 }
6508}
6509impl core::ops::Deref for ClearDepthStencilValueBuilder {
6510 type Target = ClearDepthStencilValue;
6511 #[inline]
6512 fn deref(&self) -> &Self::Target {
6513 &self.inner
6514 }
6515}
6516impl core::ops::DerefMut for ClearDepthStencilValueBuilder {
6517 #[inline]
6518 fn deref_mut(&mut self) -> &mut Self::Target {
6519 &mut self.inner
6520 }
6521}
6522pub struct ClearAttachmentBuilder {
6524 inner: ClearAttachment,
6525}
6526impl ClearAttachment {
6527 #[inline]
6529 pub fn builder() -> ClearAttachmentBuilder {
6530 ClearAttachmentBuilder {
6531 inner: ClearAttachment {
6532 ..Default::default()
6533 },
6534 }
6535 }
6536}
6537impl ClearAttachmentBuilder {
6538 #[inline]
6539 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
6540 self.inner.aspect_mask = value;
6541 self
6542 }
6543 #[inline]
6544 pub fn color_attachment(mut self, value: u32) -> Self {
6545 self.inner.color_attachment = value;
6546 self
6547 }
6548 #[inline]
6549 pub fn clear_value(mut self, value: ClearValue) -> Self {
6550 self.inner.clear_value = value;
6551 self
6552 }
6553}
6554impl core::ops::Deref for ClearAttachmentBuilder {
6555 type Target = ClearAttachment;
6556 #[inline]
6557 fn deref(&self) -> &Self::Target {
6558 &self.inner
6559 }
6560}
6561impl core::ops::DerefMut for ClearAttachmentBuilder {
6562 #[inline]
6563 fn deref_mut(&mut self) -> &mut Self::Target {
6564 &mut self.inner
6565 }
6566}
6567pub struct AttachmentDescriptionBuilder {
6569 inner: AttachmentDescription,
6570}
6571impl AttachmentDescription {
6572 #[inline]
6574 pub fn builder() -> AttachmentDescriptionBuilder {
6575 AttachmentDescriptionBuilder {
6576 inner: AttachmentDescription {
6577 ..Default::default()
6578 },
6579 }
6580 }
6581}
6582impl AttachmentDescriptionBuilder {
6583 #[inline]
6584 pub fn flags(mut self, value: AttachmentDescriptionFlags) -> Self {
6585 self.inner.flags = value;
6586 self
6587 }
6588 #[inline]
6589 pub fn format(mut self, value: Format) -> Self {
6590 self.inner.format = value;
6591 self
6592 }
6593 #[inline]
6594 pub fn samples(mut self, value: SampleCountFlagBits) -> Self {
6595 self.inner.samples = value;
6596 self
6597 }
6598 #[inline]
6599 pub fn load_op(mut self, value: AttachmentLoadOp) -> Self {
6600 self.inner.load_op = value;
6601 self
6602 }
6603 #[inline]
6604 pub fn store_op(mut self, value: AttachmentStoreOp) -> Self {
6605 self.inner.store_op = value;
6606 self
6607 }
6608 #[inline]
6609 pub fn stencil_load_op(mut self, value: AttachmentLoadOp) -> Self {
6610 self.inner.stencil_load_op = value;
6611 self
6612 }
6613 #[inline]
6614 pub fn stencil_store_op(mut self, value: AttachmentStoreOp) -> Self {
6615 self.inner.stencil_store_op = value;
6616 self
6617 }
6618 #[inline]
6619 pub fn initial_layout(mut self, value: ImageLayout) -> Self {
6620 self.inner.initial_layout = value;
6621 self
6622 }
6623 #[inline]
6624 pub fn final_layout(mut self, value: ImageLayout) -> Self {
6625 self.inner.final_layout = value;
6626 self
6627 }
6628}
6629impl core::ops::Deref for AttachmentDescriptionBuilder {
6630 type Target = AttachmentDescription;
6631 #[inline]
6632 fn deref(&self) -> &Self::Target {
6633 &self.inner
6634 }
6635}
6636impl core::ops::DerefMut for AttachmentDescriptionBuilder {
6637 #[inline]
6638 fn deref_mut(&mut self) -> &mut Self::Target {
6639 &mut self.inner
6640 }
6641}
6642pub struct AttachmentReferenceBuilder {
6644 inner: AttachmentReference,
6645}
6646impl AttachmentReference {
6647 #[inline]
6649 pub fn builder() -> AttachmentReferenceBuilder {
6650 AttachmentReferenceBuilder {
6651 inner: AttachmentReference {
6652 ..Default::default()
6653 },
6654 }
6655 }
6656}
6657impl AttachmentReferenceBuilder {
6658 #[inline]
6659 pub fn attachment(mut self, value: u32) -> Self {
6660 self.inner.attachment = value;
6661 self
6662 }
6663 #[inline]
6664 pub fn layout(mut self, value: ImageLayout) -> Self {
6665 self.inner.layout = value;
6666 self
6667 }
6668}
6669impl core::ops::Deref for AttachmentReferenceBuilder {
6670 type Target = AttachmentReference;
6671 #[inline]
6672 fn deref(&self) -> &Self::Target {
6673 &self.inner
6674 }
6675}
6676impl core::ops::DerefMut for AttachmentReferenceBuilder {
6677 #[inline]
6678 fn deref_mut(&mut self) -> &mut Self::Target {
6679 &mut self.inner
6680 }
6681}
6682pub struct SubpassDescriptionBuilder<'a> {
6684 inner: SubpassDescription,
6685 _marker: core::marker::PhantomData<&'a ()>,
6686}
6687impl SubpassDescription {
6688 #[inline]
6690 pub fn builder<'a>() -> SubpassDescriptionBuilder<'a> {
6691 SubpassDescriptionBuilder {
6692 inner: SubpassDescription {
6693 ..Default::default()
6694 },
6695 _marker: core::marker::PhantomData,
6696 }
6697 }
6698}
6699impl<'a> SubpassDescriptionBuilder<'a> {
6700 #[inline]
6701 pub fn flags(mut self, value: SubpassDescriptionFlags) -> Self {
6702 self.inner.flags = value;
6703 self
6704 }
6705 #[inline]
6706 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
6707 self.inner.pipeline_bind_point = value;
6708 self
6709 }
6710 #[inline]
6711 pub fn input_attachments(mut self, slice: &'a [AttachmentReference]) -> Self {
6712 self.inner.input_attachment_count = slice.len() as u32;
6713 self.inner.p_input_attachments = slice.as_ptr();
6714 self
6715 }
6716 #[inline]
6717 pub fn color_attachments(mut self, slice: &'a [AttachmentReference]) -> Self {
6718 self.inner.color_attachment_count = slice.len() as u32;
6719 self.inner.p_color_attachments = slice.as_ptr();
6720 self
6721 }
6722 #[inline]
6723 pub fn resolve_attachments(mut self, slice: &'a [AttachmentReference]) -> Self {
6724 self.inner.color_attachment_count = slice.len() as u32;
6725 self.inner.p_resolve_attachments = slice.as_ptr();
6726 self
6727 }
6728 #[inline]
6729 pub fn depth_stencil_attachment(mut self, value: &'a AttachmentReference) -> Self {
6730 self.inner.p_depth_stencil_attachment = value;
6731 self
6732 }
6733 #[inline]
6734 pub fn preserve_attachments(mut self, slice: &'a [u32]) -> Self {
6735 self.inner.preserve_attachment_count = slice.len() as u32;
6736 self.inner.p_preserve_attachments = slice.as_ptr();
6737 self
6738 }
6739}
6740impl<'a> core::ops::Deref for SubpassDescriptionBuilder<'a> {
6741 type Target = SubpassDescription;
6742 #[inline]
6743 fn deref(&self) -> &Self::Target {
6744 &self.inner
6745 }
6746}
6747impl<'a> core::ops::DerefMut for SubpassDescriptionBuilder<'a> {
6748 #[inline]
6749 fn deref_mut(&mut self) -> &mut Self::Target {
6750 &mut self.inner
6751 }
6752}
6753pub struct SubpassDependencyBuilder {
6755 inner: SubpassDependency,
6756}
6757impl SubpassDependency {
6758 #[inline]
6760 pub fn builder() -> SubpassDependencyBuilder {
6761 SubpassDependencyBuilder {
6762 inner: SubpassDependency {
6763 ..Default::default()
6764 },
6765 }
6766 }
6767}
6768impl SubpassDependencyBuilder {
6769 #[inline]
6770 pub fn src_subpass(mut self, value: u32) -> Self {
6771 self.inner.src_subpass = value;
6772 self
6773 }
6774 #[inline]
6775 pub fn dst_subpass(mut self, value: u32) -> Self {
6776 self.inner.dst_subpass = value;
6777 self
6778 }
6779 #[inline]
6780 pub fn src_stage_mask(mut self, value: PipelineStageFlags) -> Self {
6781 self.inner.src_stage_mask = value;
6782 self
6783 }
6784 #[inline]
6785 pub fn dst_stage_mask(mut self, value: PipelineStageFlags) -> Self {
6786 self.inner.dst_stage_mask = value;
6787 self
6788 }
6789 #[inline]
6790 pub fn src_access_mask(mut self, value: AccessFlags) -> Self {
6791 self.inner.src_access_mask = value;
6792 self
6793 }
6794 #[inline]
6795 pub fn dst_access_mask(mut self, value: AccessFlags) -> Self {
6796 self.inner.dst_access_mask = value;
6797 self
6798 }
6799 #[inline]
6800 pub fn dependency_flags(mut self, value: DependencyFlags) -> Self {
6801 self.inner.dependency_flags = value;
6802 self
6803 }
6804}
6805impl core::ops::Deref for SubpassDependencyBuilder {
6806 type Target = SubpassDependency;
6807 #[inline]
6808 fn deref(&self) -> &Self::Target {
6809 &self.inner
6810 }
6811}
6812impl core::ops::DerefMut for SubpassDependencyBuilder {
6813 #[inline]
6814 fn deref_mut(&mut self) -> &mut Self::Target {
6815 &mut self.inner
6816 }
6817}
6818pub struct RenderPassCreateInfoBuilder<'a> {
6820 inner: RenderPassCreateInfo,
6821 _marker: core::marker::PhantomData<&'a ()>,
6822}
6823impl RenderPassCreateInfo {
6824 #[inline]
6826 pub fn builder<'a>() -> RenderPassCreateInfoBuilder<'a> {
6827 RenderPassCreateInfoBuilder {
6828 inner: RenderPassCreateInfo {
6829 s_type: StructureType::from_raw(38i32),
6830 ..Default::default()
6831 },
6832 _marker: core::marker::PhantomData,
6833 }
6834 }
6835}
6836impl<'a> RenderPassCreateInfoBuilder<'a> {
6837 #[inline]
6838 pub fn flags(mut self, value: RenderPassCreateFlags) -> Self {
6839 self.inner.flags = value;
6840 self
6841 }
6842 #[inline]
6843 pub fn attachments(mut self, slice: &'a [AttachmentDescription]) -> Self {
6844 self.inner.attachment_count = slice.len() as u32;
6845 self.inner.p_attachments = slice.as_ptr();
6846 self
6847 }
6848 #[inline]
6849 pub fn subpasses(mut self, slice: &'a [SubpassDescription]) -> Self {
6850 self.inner.subpass_count = slice.len() as u32;
6851 self.inner.p_subpasses = slice.as_ptr();
6852 self
6853 }
6854 #[inline]
6855 pub fn dependencies(mut self, slice: &'a [SubpassDependency]) -> Self {
6856 self.inner.dependency_count = slice.len() as u32;
6857 self.inner.p_dependencies = slice.as_ptr();
6858 self
6859 }
6860 #[inline]
6862 pub fn push_next<T: ExtendsRenderPassCreateInfo>(mut self, next: &'a mut T) -> Self {
6863 unsafe {
6864 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6865 (*next_ptr).p_next = self.inner.p_next as *mut _;
6866 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6867 core::ffi::c_void,
6868 >(next_ptr) as *const _;
6869 }
6870 self
6871 }
6872}
6873impl<'a> core::ops::Deref for RenderPassCreateInfoBuilder<'a> {
6874 type Target = RenderPassCreateInfo;
6875 #[inline]
6876 fn deref(&self) -> &Self::Target {
6877 &self.inner
6878 }
6879}
6880impl<'a> core::ops::DerefMut for RenderPassCreateInfoBuilder<'a> {
6881 #[inline]
6882 fn deref_mut(&mut self) -> &mut Self::Target {
6883 &mut self.inner
6884 }
6885}
6886pub struct EventCreateInfoBuilder<'a> {
6888 inner: EventCreateInfo,
6889 _marker: core::marker::PhantomData<&'a ()>,
6890}
6891impl EventCreateInfo {
6892 #[inline]
6894 pub fn builder<'a>() -> EventCreateInfoBuilder<'a> {
6895 EventCreateInfoBuilder {
6896 inner: EventCreateInfo {
6897 s_type: StructureType::from_raw(10i32),
6898 ..Default::default()
6899 },
6900 _marker: core::marker::PhantomData,
6901 }
6902 }
6903}
6904impl<'a> EventCreateInfoBuilder<'a> {
6905 #[inline]
6906 pub fn flags(mut self, value: EventCreateFlags) -> Self {
6907 self.inner.flags = value;
6908 self
6909 }
6910 #[inline]
6912 pub fn push_next<T: ExtendsEventCreateInfo>(mut self, next: &'a mut T) -> Self {
6913 unsafe {
6914 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6915 (*next_ptr).p_next = self.inner.p_next as *mut _;
6916 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6917 core::ffi::c_void,
6918 >(next_ptr) as *const _;
6919 }
6920 self
6921 }
6922}
6923impl<'a> core::ops::Deref for EventCreateInfoBuilder<'a> {
6924 type Target = EventCreateInfo;
6925 #[inline]
6926 fn deref(&self) -> &Self::Target {
6927 &self.inner
6928 }
6929}
6930impl<'a> core::ops::DerefMut for EventCreateInfoBuilder<'a> {
6931 #[inline]
6932 fn deref_mut(&mut self) -> &mut Self::Target {
6933 &mut self.inner
6934 }
6935}
6936pub struct FenceCreateInfoBuilder<'a> {
6938 inner: FenceCreateInfo,
6939 _marker: core::marker::PhantomData<&'a ()>,
6940}
6941impl FenceCreateInfo {
6942 #[inline]
6944 pub fn builder<'a>() -> FenceCreateInfoBuilder<'a> {
6945 FenceCreateInfoBuilder {
6946 inner: FenceCreateInfo {
6947 s_type: StructureType::from_raw(8i32),
6948 ..Default::default()
6949 },
6950 _marker: core::marker::PhantomData,
6951 }
6952 }
6953}
6954impl<'a> FenceCreateInfoBuilder<'a> {
6955 #[inline]
6956 pub fn flags(mut self, value: FenceCreateFlags) -> Self {
6957 self.inner.flags = value;
6958 self
6959 }
6960 #[inline]
6962 pub fn push_next<T: ExtendsFenceCreateInfo>(mut self, next: &'a mut T) -> Self {
6963 unsafe {
6964 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
6965 (*next_ptr).p_next = self.inner.p_next as *mut _;
6966 self.inner.p_next = <*mut BaseOutStructure>::cast::<
6967 core::ffi::c_void,
6968 >(next_ptr) as *const _;
6969 }
6970 self
6971 }
6972}
6973impl<'a> core::ops::Deref for FenceCreateInfoBuilder<'a> {
6974 type Target = FenceCreateInfo;
6975 #[inline]
6976 fn deref(&self) -> &Self::Target {
6977 &self.inner
6978 }
6979}
6980impl<'a> core::ops::DerefMut for FenceCreateInfoBuilder<'a> {
6981 #[inline]
6982 fn deref_mut(&mut self) -> &mut Self::Target {
6983 &mut self.inner
6984 }
6985}
6986pub struct PhysicalDeviceFeaturesBuilder {
6988 inner: PhysicalDeviceFeatures,
6989}
6990impl PhysicalDeviceFeatures {
6991 #[inline]
6993 pub fn builder() -> PhysicalDeviceFeaturesBuilder {
6994 PhysicalDeviceFeaturesBuilder {
6995 inner: PhysicalDeviceFeatures {
6996 ..Default::default()
6997 },
6998 }
6999 }
7000}
7001impl PhysicalDeviceFeaturesBuilder {
7002 #[inline]
7003 pub fn robust_buffer_access(mut self, value: bool) -> Self {
7004 self.inner.robust_buffer_access = value as u32;
7005 self
7006 }
7007 #[inline]
7008 pub fn full_draw_index_uint32(mut self, value: bool) -> Self {
7009 self.inner.full_draw_index_uint32 = value as u32;
7010 self
7011 }
7012 #[inline]
7013 pub fn image_cube_array(mut self, value: bool) -> Self {
7014 self.inner.image_cube_array = value as u32;
7015 self
7016 }
7017 #[inline]
7018 pub fn independent_blend(mut self, value: bool) -> Self {
7019 self.inner.independent_blend = value as u32;
7020 self
7021 }
7022 #[inline]
7023 pub fn geometry_shader(mut self, value: bool) -> Self {
7024 self.inner.geometry_shader = value as u32;
7025 self
7026 }
7027 #[inline]
7028 pub fn tessellation_shader(mut self, value: bool) -> Self {
7029 self.inner.tessellation_shader = value as u32;
7030 self
7031 }
7032 #[inline]
7033 pub fn sample_rate_shading(mut self, value: bool) -> Self {
7034 self.inner.sample_rate_shading = value as u32;
7035 self
7036 }
7037 #[inline]
7038 pub fn dual_src_blend(mut self, value: bool) -> Self {
7039 self.inner.dual_src_blend = value as u32;
7040 self
7041 }
7042 #[inline]
7043 pub fn logic_op(mut self, value: bool) -> Self {
7044 self.inner.logic_op = value as u32;
7045 self
7046 }
7047 #[inline]
7048 pub fn multi_draw_indirect(mut self, value: bool) -> Self {
7049 self.inner.multi_draw_indirect = value as u32;
7050 self
7051 }
7052 #[inline]
7053 pub fn draw_indirect_first_instance(mut self, value: bool) -> Self {
7054 self.inner.draw_indirect_first_instance = value as u32;
7055 self
7056 }
7057 #[inline]
7058 pub fn depth_clamp(mut self, value: bool) -> Self {
7059 self.inner.depth_clamp = value as u32;
7060 self
7061 }
7062 #[inline]
7063 pub fn depth_bias_clamp(mut self, value: bool) -> Self {
7064 self.inner.depth_bias_clamp = value as u32;
7065 self
7066 }
7067 #[inline]
7068 pub fn fill_mode_non_solid(mut self, value: bool) -> Self {
7069 self.inner.fill_mode_non_solid = value as u32;
7070 self
7071 }
7072 #[inline]
7073 pub fn depth_bounds(mut self, value: bool) -> Self {
7074 self.inner.depth_bounds = value as u32;
7075 self
7076 }
7077 #[inline]
7078 pub fn wide_lines(mut self, value: bool) -> Self {
7079 self.inner.wide_lines = value as u32;
7080 self
7081 }
7082 #[inline]
7083 pub fn large_points(mut self, value: bool) -> Self {
7084 self.inner.large_points = value as u32;
7085 self
7086 }
7087 #[inline]
7088 pub fn alpha_to_one(mut self, value: bool) -> Self {
7089 self.inner.alpha_to_one = value as u32;
7090 self
7091 }
7092 #[inline]
7093 pub fn multi_viewport(mut self, value: bool) -> Self {
7094 self.inner.multi_viewport = value as u32;
7095 self
7096 }
7097 #[inline]
7098 pub fn sampler_anisotropy(mut self, value: bool) -> Self {
7099 self.inner.sampler_anisotropy = value as u32;
7100 self
7101 }
7102 #[inline]
7103 pub fn texture_compression_etc2(mut self, value: bool) -> Self {
7104 self.inner.texture_compression_etc2 = value as u32;
7105 self
7106 }
7107 #[inline]
7108 pub fn texture_compression_astc_ldr(mut self, value: bool) -> Self {
7109 self.inner.texture_compression_astc_ldr = value as u32;
7110 self
7111 }
7112 #[inline]
7113 pub fn texture_compression_bc(mut self, value: bool) -> Self {
7114 self.inner.texture_compression_bc = value as u32;
7115 self
7116 }
7117 #[inline]
7118 pub fn occlusion_query_precise(mut self, value: bool) -> Self {
7119 self.inner.occlusion_query_precise = value as u32;
7120 self
7121 }
7122 #[inline]
7123 pub fn pipeline_statistics_query(mut self, value: bool) -> Self {
7124 self.inner.pipeline_statistics_query = value as u32;
7125 self
7126 }
7127 #[inline]
7128 pub fn vertex_pipeline_stores_and_atomics(mut self, value: bool) -> Self {
7129 self.inner.vertex_pipeline_stores_and_atomics = value as u32;
7130 self
7131 }
7132 #[inline]
7133 pub fn fragment_stores_and_atomics(mut self, value: bool) -> Self {
7134 self.inner.fragment_stores_and_atomics = value as u32;
7135 self
7136 }
7137 #[inline]
7138 pub fn shader_tessellation_and_geometry_point_size(mut self, value: bool) -> Self {
7139 self.inner.shader_tessellation_and_geometry_point_size = value as u32;
7140 self
7141 }
7142 #[inline]
7143 pub fn shader_image_gather_extended(mut self, value: bool) -> Self {
7144 self.inner.shader_image_gather_extended = value as u32;
7145 self
7146 }
7147 #[inline]
7148 pub fn shader_storage_image_extended_formats(mut self, value: bool) -> Self {
7149 self.inner.shader_storage_image_extended_formats = value as u32;
7150 self
7151 }
7152 #[inline]
7153 pub fn shader_storage_image_multisample(mut self, value: bool) -> Self {
7154 self.inner.shader_storage_image_multisample = value as u32;
7155 self
7156 }
7157 #[inline]
7158 pub fn shader_storage_image_read_without_format(mut self, value: bool) -> Self {
7159 self.inner.shader_storage_image_read_without_format = value as u32;
7160 self
7161 }
7162 #[inline]
7163 pub fn shader_storage_image_write_without_format(mut self, value: bool) -> Self {
7164 self.inner.shader_storage_image_write_without_format = value as u32;
7165 self
7166 }
7167 #[inline]
7168 pub fn shader_uniform_buffer_array_dynamic_indexing(mut self, value: bool) -> Self {
7169 self.inner.shader_uniform_buffer_array_dynamic_indexing = value as u32;
7170 self
7171 }
7172 #[inline]
7173 pub fn shader_sampled_image_array_dynamic_indexing(mut self, value: bool) -> Self {
7174 self.inner.shader_sampled_image_array_dynamic_indexing = value as u32;
7175 self
7176 }
7177 #[inline]
7178 pub fn shader_storage_buffer_array_dynamic_indexing(mut self, value: bool) -> Self {
7179 self.inner.shader_storage_buffer_array_dynamic_indexing = value as u32;
7180 self
7181 }
7182 #[inline]
7183 pub fn shader_storage_image_array_dynamic_indexing(mut self, value: bool) -> Self {
7184 self.inner.shader_storage_image_array_dynamic_indexing = value as u32;
7185 self
7186 }
7187 #[inline]
7188 pub fn shader_clip_distance(mut self, value: bool) -> Self {
7189 self.inner.shader_clip_distance = value as u32;
7190 self
7191 }
7192 #[inline]
7193 pub fn shader_cull_distance(mut self, value: bool) -> Self {
7194 self.inner.shader_cull_distance = value as u32;
7195 self
7196 }
7197 #[inline]
7198 pub fn shader_float64(mut self, value: bool) -> Self {
7199 self.inner.shader_float64 = value as u32;
7200 self
7201 }
7202 #[inline]
7203 pub fn shader_int64(mut self, value: bool) -> Self {
7204 self.inner.shader_int64 = value as u32;
7205 self
7206 }
7207 #[inline]
7208 pub fn shader_int16(mut self, value: bool) -> Self {
7209 self.inner.shader_int16 = value as u32;
7210 self
7211 }
7212 #[inline]
7213 pub fn shader_resource_residency(mut self, value: bool) -> Self {
7214 self.inner.shader_resource_residency = value as u32;
7215 self
7216 }
7217 #[inline]
7218 pub fn shader_resource_min_lod(mut self, value: bool) -> Self {
7219 self.inner.shader_resource_min_lod = value as u32;
7220 self
7221 }
7222 #[inline]
7223 pub fn sparse_binding(mut self, value: bool) -> Self {
7224 self.inner.sparse_binding = value as u32;
7225 self
7226 }
7227 #[inline]
7228 pub fn sparse_residency_buffer(mut self, value: bool) -> Self {
7229 self.inner.sparse_residency_buffer = value as u32;
7230 self
7231 }
7232 #[inline]
7233 pub fn sparse_residency_image2_d(mut self, value: bool) -> Self {
7234 self.inner.sparse_residency_image2_d = value as u32;
7235 self
7236 }
7237 #[inline]
7238 pub fn sparse_residency_image3_d(mut self, value: bool) -> Self {
7239 self.inner.sparse_residency_image3_d = value as u32;
7240 self
7241 }
7242 #[inline]
7243 pub fn sparse_residency2_samples(mut self, value: bool) -> Self {
7244 self.inner.sparse_residency2_samples = value as u32;
7245 self
7246 }
7247 #[inline]
7248 pub fn sparse_residency4_samples(mut self, value: bool) -> Self {
7249 self.inner.sparse_residency4_samples = value as u32;
7250 self
7251 }
7252 #[inline]
7253 pub fn sparse_residency8_samples(mut self, value: bool) -> Self {
7254 self.inner.sparse_residency8_samples = value as u32;
7255 self
7256 }
7257 #[inline]
7258 pub fn sparse_residency16_samples(mut self, value: bool) -> Self {
7259 self.inner.sparse_residency16_samples = value as u32;
7260 self
7261 }
7262 #[inline]
7263 pub fn sparse_residency_aliased(mut self, value: bool) -> Self {
7264 self.inner.sparse_residency_aliased = value as u32;
7265 self
7266 }
7267 #[inline]
7268 pub fn variable_multisample_rate(mut self, value: bool) -> Self {
7269 self.inner.variable_multisample_rate = value as u32;
7270 self
7271 }
7272 #[inline]
7273 pub fn inherited_queries(mut self, value: bool) -> Self {
7274 self.inner.inherited_queries = value as u32;
7275 self
7276 }
7277}
7278impl core::ops::Deref for PhysicalDeviceFeaturesBuilder {
7279 type Target = PhysicalDeviceFeatures;
7280 #[inline]
7281 fn deref(&self) -> &Self::Target {
7282 &self.inner
7283 }
7284}
7285impl core::ops::DerefMut for PhysicalDeviceFeaturesBuilder {
7286 #[inline]
7287 fn deref_mut(&mut self) -> &mut Self::Target {
7288 &mut self.inner
7289 }
7290}
7291pub struct PhysicalDeviceSparsePropertiesBuilder {
7293 inner: PhysicalDeviceSparseProperties,
7294}
7295impl PhysicalDeviceSparseProperties {
7296 #[inline]
7298 pub fn builder() -> PhysicalDeviceSparsePropertiesBuilder {
7299 PhysicalDeviceSparsePropertiesBuilder {
7300 inner: PhysicalDeviceSparseProperties {
7301 ..Default::default()
7302 },
7303 }
7304 }
7305}
7306impl PhysicalDeviceSparsePropertiesBuilder {
7307 #[inline]
7308 pub fn residency_standard2_d_block_shape(mut self, value: bool) -> Self {
7309 self.inner.residency_standard2_d_block_shape = value as u32;
7310 self
7311 }
7312 #[inline]
7313 pub fn residency_standard2_d_multisample_block_shape(mut self, value: bool) -> Self {
7314 self.inner.residency_standard2_d_multisample_block_shape = value as u32;
7315 self
7316 }
7317 #[inline]
7318 pub fn residency_standard3_d_block_shape(mut self, value: bool) -> Self {
7319 self.inner.residency_standard3_d_block_shape = value as u32;
7320 self
7321 }
7322 #[inline]
7323 pub fn residency_aligned_mip_size(mut self, value: bool) -> Self {
7324 self.inner.residency_aligned_mip_size = value as u32;
7325 self
7326 }
7327 #[inline]
7328 pub fn residency_non_resident_strict(mut self, value: bool) -> Self {
7329 self.inner.residency_non_resident_strict = value as u32;
7330 self
7331 }
7332}
7333impl core::ops::Deref for PhysicalDeviceSparsePropertiesBuilder {
7334 type Target = PhysicalDeviceSparseProperties;
7335 #[inline]
7336 fn deref(&self) -> &Self::Target {
7337 &self.inner
7338 }
7339}
7340impl core::ops::DerefMut for PhysicalDeviceSparsePropertiesBuilder {
7341 #[inline]
7342 fn deref_mut(&mut self) -> &mut Self::Target {
7343 &mut self.inner
7344 }
7345}
7346pub struct PhysicalDeviceLimitsBuilder {
7348 inner: PhysicalDeviceLimits,
7349}
7350impl PhysicalDeviceLimits {
7351 #[inline]
7353 pub fn builder() -> PhysicalDeviceLimitsBuilder {
7354 PhysicalDeviceLimitsBuilder {
7355 inner: PhysicalDeviceLimits {
7356 ..Default::default()
7357 },
7358 }
7359 }
7360}
7361impl PhysicalDeviceLimitsBuilder {
7362 #[inline]
7363 pub fn max_image_dimension1_d(mut self, value: u32) -> Self {
7364 self.inner.max_image_dimension1_d = value;
7365 self
7366 }
7367 #[inline]
7368 pub fn max_image_dimension2_d(mut self, value: u32) -> Self {
7369 self.inner.max_image_dimension2_d = value;
7370 self
7371 }
7372 #[inline]
7373 pub fn max_image_dimension3_d(mut self, value: u32) -> Self {
7374 self.inner.max_image_dimension3_d = value;
7375 self
7376 }
7377 #[inline]
7378 pub fn max_image_dimension_cube(mut self, value: u32) -> Self {
7379 self.inner.max_image_dimension_cube = value;
7380 self
7381 }
7382 #[inline]
7383 pub fn max_image_array_layers(mut self, value: u32) -> Self {
7384 self.inner.max_image_array_layers = value;
7385 self
7386 }
7387 #[inline]
7388 pub fn max_texel_buffer_elements(mut self, value: u32) -> Self {
7389 self.inner.max_texel_buffer_elements = value;
7390 self
7391 }
7392 #[inline]
7393 pub fn max_uniform_buffer_range(mut self, value: u32) -> Self {
7394 self.inner.max_uniform_buffer_range = value;
7395 self
7396 }
7397 #[inline]
7398 pub fn max_storage_buffer_range(mut self, value: u32) -> Self {
7399 self.inner.max_storage_buffer_range = value;
7400 self
7401 }
7402 #[inline]
7403 pub fn max_push_constants_size(mut self, value: u32) -> Self {
7404 self.inner.max_push_constants_size = value;
7405 self
7406 }
7407 #[inline]
7408 pub fn max_memory_allocation_count(mut self, value: u32) -> Self {
7409 self.inner.max_memory_allocation_count = value;
7410 self
7411 }
7412 #[inline]
7413 pub fn max_sampler_allocation_count(mut self, value: u32) -> Self {
7414 self.inner.max_sampler_allocation_count = value;
7415 self
7416 }
7417 #[inline]
7418 pub fn buffer_image_granularity(mut self, value: u64) -> Self {
7419 self.inner.buffer_image_granularity = value;
7420 self
7421 }
7422 #[inline]
7423 pub fn sparse_address_space_size(mut self, value: u64) -> Self {
7424 self.inner.sparse_address_space_size = value;
7425 self
7426 }
7427 #[inline]
7428 pub fn max_bound_descriptor_sets(mut self, value: u32) -> Self {
7429 self.inner.max_bound_descriptor_sets = value;
7430 self
7431 }
7432 #[inline]
7433 pub fn max_per_stage_descriptor_samplers(mut self, value: u32) -> Self {
7434 self.inner.max_per_stage_descriptor_samplers = value;
7435 self
7436 }
7437 #[inline]
7438 pub fn max_per_stage_descriptor_uniform_buffers(mut self, value: u32) -> Self {
7439 self.inner.max_per_stage_descriptor_uniform_buffers = value;
7440 self
7441 }
7442 #[inline]
7443 pub fn max_per_stage_descriptor_storage_buffers(mut self, value: u32) -> Self {
7444 self.inner.max_per_stage_descriptor_storage_buffers = value;
7445 self
7446 }
7447 #[inline]
7448 pub fn max_per_stage_descriptor_sampled_images(mut self, value: u32) -> Self {
7449 self.inner.max_per_stage_descriptor_sampled_images = value;
7450 self
7451 }
7452 #[inline]
7453 pub fn max_per_stage_descriptor_storage_images(mut self, value: u32) -> Self {
7454 self.inner.max_per_stage_descriptor_storage_images = value;
7455 self
7456 }
7457 #[inline]
7458 pub fn max_per_stage_descriptor_input_attachments(mut self, value: u32) -> Self {
7459 self.inner.max_per_stage_descriptor_input_attachments = value;
7460 self
7461 }
7462 #[inline]
7463 pub fn max_per_stage_resources(mut self, value: u32) -> Self {
7464 self.inner.max_per_stage_resources = value;
7465 self
7466 }
7467 #[inline]
7468 pub fn max_descriptor_set_samplers(mut self, value: u32) -> Self {
7469 self.inner.max_descriptor_set_samplers = value;
7470 self
7471 }
7472 #[inline]
7473 pub fn max_descriptor_set_uniform_buffers(mut self, value: u32) -> Self {
7474 self.inner.max_descriptor_set_uniform_buffers = value;
7475 self
7476 }
7477 #[inline]
7478 pub fn max_descriptor_set_uniform_buffers_dynamic(mut self, value: u32) -> Self {
7479 self.inner.max_descriptor_set_uniform_buffers_dynamic = value;
7480 self
7481 }
7482 #[inline]
7483 pub fn max_descriptor_set_storage_buffers(mut self, value: u32) -> Self {
7484 self.inner.max_descriptor_set_storage_buffers = value;
7485 self
7486 }
7487 #[inline]
7488 pub fn max_descriptor_set_storage_buffers_dynamic(mut self, value: u32) -> Self {
7489 self.inner.max_descriptor_set_storage_buffers_dynamic = value;
7490 self
7491 }
7492 #[inline]
7493 pub fn max_descriptor_set_sampled_images(mut self, value: u32) -> Self {
7494 self.inner.max_descriptor_set_sampled_images = value;
7495 self
7496 }
7497 #[inline]
7498 pub fn max_descriptor_set_storage_images(mut self, value: u32) -> Self {
7499 self.inner.max_descriptor_set_storage_images = value;
7500 self
7501 }
7502 #[inline]
7503 pub fn max_descriptor_set_input_attachments(mut self, value: u32) -> Self {
7504 self.inner.max_descriptor_set_input_attachments = value;
7505 self
7506 }
7507 #[inline]
7508 pub fn max_vertex_input_attributes(mut self, value: u32) -> Self {
7509 self.inner.max_vertex_input_attributes = value;
7510 self
7511 }
7512 #[inline]
7513 pub fn max_vertex_input_bindings(mut self, value: u32) -> Self {
7514 self.inner.max_vertex_input_bindings = value;
7515 self
7516 }
7517 #[inline]
7518 pub fn max_vertex_input_attribute_offset(mut self, value: u32) -> Self {
7519 self.inner.max_vertex_input_attribute_offset = value;
7520 self
7521 }
7522 #[inline]
7523 pub fn max_vertex_input_binding_stride(mut self, value: u32) -> Self {
7524 self.inner.max_vertex_input_binding_stride = value;
7525 self
7526 }
7527 #[inline]
7528 pub fn max_vertex_output_components(mut self, value: u32) -> Self {
7529 self.inner.max_vertex_output_components = value;
7530 self
7531 }
7532 #[inline]
7533 pub fn max_tessellation_generation_level(mut self, value: u32) -> Self {
7534 self.inner.max_tessellation_generation_level = value;
7535 self
7536 }
7537 #[inline]
7538 pub fn max_tessellation_patch_size(mut self, value: u32) -> Self {
7539 self.inner.max_tessellation_patch_size = value;
7540 self
7541 }
7542 #[inline]
7543 pub fn max_tessellation_control_per_vertex_input_components(
7544 mut self,
7545 value: u32,
7546 ) -> Self {
7547 self.inner.max_tessellation_control_per_vertex_input_components = value;
7548 self
7549 }
7550 #[inline]
7551 pub fn max_tessellation_control_per_vertex_output_components(
7552 mut self,
7553 value: u32,
7554 ) -> Self {
7555 self.inner.max_tessellation_control_per_vertex_output_components = value;
7556 self
7557 }
7558 #[inline]
7559 pub fn max_tessellation_control_per_patch_output_components(
7560 mut self,
7561 value: u32,
7562 ) -> Self {
7563 self.inner.max_tessellation_control_per_patch_output_components = value;
7564 self
7565 }
7566 #[inline]
7567 pub fn max_tessellation_control_total_output_components(
7568 mut self,
7569 value: u32,
7570 ) -> Self {
7571 self.inner.max_tessellation_control_total_output_components = value;
7572 self
7573 }
7574 #[inline]
7575 pub fn max_tessellation_evaluation_input_components(mut self, value: u32) -> Self {
7576 self.inner.max_tessellation_evaluation_input_components = value;
7577 self
7578 }
7579 #[inline]
7580 pub fn max_tessellation_evaluation_output_components(mut self, value: u32) -> Self {
7581 self.inner.max_tessellation_evaluation_output_components = value;
7582 self
7583 }
7584 #[inline]
7585 pub fn max_geometry_shader_invocations(mut self, value: u32) -> Self {
7586 self.inner.max_geometry_shader_invocations = value;
7587 self
7588 }
7589 #[inline]
7590 pub fn max_geometry_input_components(mut self, value: u32) -> Self {
7591 self.inner.max_geometry_input_components = value;
7592 self
7593 }
7594 #[inline]
7595 pub fn max_geometry_output_components(mut self, value: u32) -> Self {
7596 self.inner.max_geometry_output_components = value;
7597 self
7598 }
7599 #[inline]
7600 pub fn max_geometry_output_vertices(mut self, value: u32) -> Self {
7601 self.inner.max_geometry_output_vertices = value;
7602 self
7603 }
7604 #[inline]
7605 pub fn max_geometry_total_output_components(mut self, value: u32) -> Self {
7606 self.inner.max_geometry_total_output_components = value;
7607 self
7608 }
7609 #[inline]
7610 pub fn max_fragment_input_components(mut self, value: u32) -> Self {
7611 self.inner.max_fragment_input_components = value;
7612 self
7613 }
7614 #[inline]
7615 pub fn max_fragment_output_attachments(mut self, value: u32) -> Self {
7616 self.inner.max_fragment_output_attachments = value;
7617 self
7618 }
7619 #[inline]
7620 pub fn max_fragment_dual_src_attachments(mut self, value: u32) -> Self {
7621 self.inner.max_fragment_dual_src_attachments = value;
7622 self
7623 }
7624 #[inline]
7625 pub fn max_fragment_combined_output_resources(mut self, value: u32) -> Self {
7626 self.inner.max_fragment_combined_output_resources = value;
7627 self
7628 }
7629 #[inline]
7630 pub fn max_compute_shared_memory_size(mut self, value: u32) -> Self {
7631 self.inner.max_compute_shared_memory_size = value;
7632 self
7633 }
7634 #[inline]
7635 pub fn max_compute_work_group_count(mut self, value: [u32; 3usize]) -> Self {
7636 self.inner.max_compute_work_group_count = value;
7637 self
7638 }
7639 #[inline]
7640 pub fn max_compute_work_group_invocations(mut self, value: u32) -> Self {
7641 self.inner.max_compute_work_group_invocations = value;
7642 self
7643 }
7644 #[inline]
7645 pub fn max_compute_work_group_size(mut self, value: [u32; 3usize]) -> Self {
7646 self.inner.max_compute_work_group_size = value;
7647 self
7648 }
7649 #[inline]
7650 pub fn sub_pixel_precision_bits(mut self, value: u32) -> Self {
7651 self.inner.sub_pixel_precision_bits = value;
7652 self
7653 }
7654 #[inline]
7655 pub fn sub_texel_precision_bits(mut self, value: u32) -> Self {
7656 self.inner.sub_texel_precision_bits = value;
7657 self
7658 }
7659 #[inline]
7660 pub fn mipmap_precision_bits(mut self, value: u32) -> Self {
7661 self.inner.mipmap_precision_bits = value;
7662 self
7663 }
7664 #[inline]
7665 pub fn max_draw_indexed_index_value(mut self, value: u32) -> Self {
7666 self.inner.max_draw_indexed_index_value = value;
7667 self
7668 }
7669 #[inline]
7670 pub fn max_draw_indirect_count(mut self, value: u32) -> Self {
7671 self.inner.max_draw_indirect_count = value;
7672 self
7673 }
7674 #[inline]
7675 pub fn max_sampler_lod_bias(mut self, value: f32) -> Self {
7676 self.inner.max_sampler_lod_bias = value;
7677 self
7678 }
7679 #[inline]
7680 pub fn max_sampler_anisotropy(mut self, value: f32) -> Self {
7681 self.inner.max_sampler_anisotropy = value;
7682 self
7683 }
7684 #[inline]
7685 pub fn max_viewports(mut self, value: u32) -> Self {
7686 self.inner.max_viewports = value;
7687 self
7688 }
7689 #[inline]
7690 pub fn max_viewport_dimensions(mut self, value: [u32; 2usize]) -> Self {
7691 self.inner.max_viewport_dimensions = value;
7692 self
7693 }
7694 #[inline]
7695 pub fn viewport_bounds_range(mut self, value: [f32; 2usize]) -> Self {
7696 self.inner.viewport_bounds_range = value;
7697 self
7698 }
7699 #[inline]
7700 pub fn viewport_sub_pixel_bits(mut self, value: u32) -> Self {
7701 self.inner.viewport_sub_pixel_bits = value;
7702 self
7703 }
7704 #[inline]
7705 pub fn min_memory_map_alignment(mut self, value: usize) -> Self {
7706 self.inner.min_memory_map_alignment = value;
7707 self
7708 }
7709 #[inline]
7710 pub fn min_texel_buffer_offset_alignment(mut self, value: u64) -> Self {
7711 self.inner.min_texel_buffer_offset_alignment = value;
7712 self
7713 }
7714 #[inline]
7715 pub fn min_uniform_buffer_offset_alignment(mut self, value: u64) -> Self {
7716 self.inner.min_uniform_buffer_offset_alignment = value;
7717 self
7718 }
7719 #[inline]
7720 pub fn min_storage_buffer_offset_alignment(mut self, value: u64) -> Self {
7721 self.inner.min_storage_buffer_offset_alignment = value;
7722 self
7723 }
7724 #[inline]
7725 pub fn min_texel_offset(mut self, value: i32) -> Self {
7726 self.inner.min_texel_offset = value;
7727 self
7728 }
7729 #[inline]
7730 pub fn max_texel_offset(mut self, value: u32) -> Self {
7731 self.inner.max_texel_offset = value;
7732 self
7733 }
7734 #[inline]
7735 pub fn min_texel_gather_offset(mut self, value: i32) -> Self {
7736 self.inner.min_texel_gather_offset = value;
7737 self
7738 }
7739 #[inline]
7740 pub fn max_texel_gather_offset(mut self, value: u32) -> Self {
7741 self.inner.max_texel_gather_offset = value;
7742 self
7743 }
7744 #[inline]
7745 pub fn min_interpolation_offset(mut self, value: f32) -> Self {
7746 self.inner.min_interpolation_offset = value;
7747 self
7748 }
7749 #[inline]
7750 pub fn max_interpolation_offset(mut self, value: f32) -> Self {
7751 self.inner.max_interpolation_offset = value;
7752 self
7753 }
7754 #[inline]
7755 pub fn sub_pixel_interpolation_offset_bits(mut self, value: u32) -> Self {
7756 self.inner.sub_pixel_interpolation_offset_bits = value;
7757 self
7758 }
7759 #[inline]
7760 pub fn max_framebuffer_width(mut self, value: u32) -> Self {
7761 self.inner.max_framebuffer_width = value;
7762 self
7763 }
7764 #[inline]
7765 pub fn max_framebuffer_height(mut self, value: u32) -> Self {
7766 self.inner.max_framebuffer_height = value;
7767 self
7768 }
7769 #[inline]
7770 pub fn max_framebuffer_layers(mut self, value: u32) -> Self {
7771 self.inner.max_framebuffer_layers = value;
7772 self
7773 }
7774 #[inline]
7775 pub fn framebuffer_color_sample_counts(mut self, value: SampleCountFlags) -> Self {
7776 self.inner.framebuffer_color_sample_counts = value;
7777 self
7778 }
7779 #[inline]
7780 pub fn framebuffer_depth_sample_counts(mut self, value: SampleCountFlags) -> Self {
7781 self.inner.framebuffer_depth_sample_counts = value;
7782 self
7783 }
7784 #[inline]
7785 pub fn framebuffer_stencil_sample_counts(mut self, value: SampleCountFlags) -> Self {
7786 self.inner.framebuffer_stencil_sample_counts = value;
7787 self
7788 }
7789 #[inline]
7790 pub fn framebuffer_no_attachments_sample_counts(
7791 mut self,
7792 value: SampleCountFlags,
7793 ) -> Self {
7794 self.inner.framebuffer_no_attachments_sample_counts = value;
7795 self
7796 }
7797 #[inline]
7798 pub fn max_color_attachments(mut self, value: u32) -> Self {
7799 self.inner.max_color_attachments = value;
7800 self
7801 }
7802 #[inline]
7803 pub fn sampled_image_color_sample_counts(mut self, value: SampleCountFlags) -> Self {
7804 self.inner.sampled_image_color_sample_counts = value;
7805 self
7806 }
7807 #[inline]
7808 pub fn sampled_image_integer_sample_counts(
7809 mut self,
7810 value: SampleCountFlags,
7811 ) -> Self {
7812 self.inner.sampled_image_integer_sample_counts = value;
7813 self
7814 }
7815 #[inline]
7816 pub fn sampled_image_depth_sample_counts(mut self, value: SampleCountFlags) -> Self {
7817 self.inner.sampled_image_depth_sample_counts = value;
7818 self
7819 }
7820 #[inline]
7821 pub fn sampled_image_stencil_sample_counts(
7822 mut self,
7823 value: SampleCountFlags,
7824 ) -> Self {
7825 self.inner.sampled_image_stencil_sample_counts = value;
7826 self
7827 }
7828 #[inline]
7829 pub fn storage_image_sample_counts(mut self, value: SampleCountFlags) -> Self {
7830 self.inner.storage_image_sample_counts = value;
7831 self
7832 }
7833 #[inline]
7834 pub fn max_sample_mask_words(mut self, value: u32) -> Self {
7835 self.inner.max_sample_mask_words = value;
7836 self
7837 }
7838 #[inline]
7839 pub fn timestamp_compute_and_graphics(mut self, value: bool) -> Self {
7840 self.inner.timestamp_compute_and_graphics = value as u32;
7841 self
7842 }
7843 #[inline]
7844 pub fn timestamp_period(mut self, value: f32) -> Self {
7845 self.inner.timestamp_period = value;
7846 self
7847 }
7848 #[inline]
7849 pub fn max_clip_distances(mut self, value: u32) -> Self {
7850 self.inner.max_clip_distances = value;
7851 self
7852 }
7853 #[inline]
7854 pub fn max_cull_distances(mut self, value: u32) -> Self {
7855 self.inner.max_cull_distances = value;
7856 self
7857 }
7858 #[inline]
7859 pub fn max_combined_clip_and_cull_distances(mut self, value: u32) -> Self {
7860 self.inner.max_combined_clip_and_cull_distances = value;
7861 self
7862 }
7863 #[inline]
7864 pub fn discrete_queue_priorities(mut self, value: u32) -> Self {
7865 self.inner.discrete_queue_priorities = value;
7866 self
7867 }
7868 #[inline]
7869 pub fn point_size_range(mut self, value: [f32; 2usize]) -> Self {
7870 self.inner.point_size_range = value;
7871 self
7872 }
7873 #[inline]
7874 pub fn line_width_range(mut self, value: [f32; 2usize]) -> Self {
7875 self.inner.line_width_range = value;
7876 self
7877 }
7878 #[inline]
7879 pub fn point_size_granularity(mut self, value: f32) -> Self {
7880 self.inner.point_size_granularity = value;
7881 self
7882 }
7883 #[inline]
7884 pub fn line_width_granularity(mut self, value: f32) -> Self {
7885 self.inner.line_width_granularity = value;
7886 self
7887 }
7888 #[inline]
7889 pub fn strict_lines(mut self, value: bool) -> Self {
7890 self.inner.strict_lines = value as u32;
7891 self
7892 }
7893 #[inline]
7894 pub fn standard_sample_locations(mut self, value: bool) -> Self {
7895 self.inner.standard_sample_locations = value as u32;
7896 self
7897 }
7898 #[inline]
7899 pub fn optimal_buffer_copy_offset_alignment(mut self, value: u64) -> Self {
7900 self.inner.optimal_buffer_copy_offset_alignment = value;
7901 self
7902 }
7903 #[inline]
7904 pub fn optimal_buffer_copy_row_pitch_alignment(mut self, value: u64) -> Self {
7905 self.inner.optimal_buffer_copy_row_pitch_alignment = value;
7906 self
7907 }
7908 #[inline]
7909 pub fn non_coherent_atom_size(mut self, value: u64) -> Self {
7910 self.inner.non_coherent_atom_size = value;
7911 self
7912 }
7913}
7914impl core::ops::Deref for PhysicalDeviceLimitsBuilder {
7915 type Target = PhysicalDeviceLimits;
7916 #[inline]
7917 fn deref(&self) -> &Self::Target {
7918 &self.inner
7919 }
7920}
7921impl core::ops::DerefMut for PhysicalDeviceLimitsBuilder {
7922 #[inline]
7923 fn deref_mut(&mut self) -> &mut Self::Target {
7924 &mut self.inner
7925 }
7926}
7927pub struct SemaphoreCreateInfoBuilder<'a> {
7929 inner: SemaphoreCreateInfo,
7930 _marker: core::marker::PhantomData<&'a ()>,
7931}
7932impl SemaphoreCreateInfo {
7933 #[inline]
7935 pub fn builder<'a>() -> SemaphoreCreateInfoBuilder<'a> {
7936 SemaphoreCreateInfoBuilder {
7937 inner: SemaphoreCreateInfo {
7938 s_type: StructureType::from_raw(9i32),
7939 ..Default::default()
7940 },
7941 _marker: core::marker::PhantomData,
7942 }
7943 }
7944}
7945impl<'a> SemaphoreCreateInfoBuilder<'a> {
7946 #[inline]
7947 pub fn flags(mut self, value: SemaphoreCreateFlags) -> Self {
7948 self.inner.flags = value;
7949 self
7950 }
7951 #[inline]
7953 pub fn push_next<T: ExtendsSemaphoreCreateInfo>(mut self, next: &'a mut T) -> Self {
7954 unsafe {
7955 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
7956 (*next_ptr).p_next = self.inner.p_next as *mut _;
7957 self.inner.p_next = <*mut BaseOutStructure>::cast::<
7958 core::ffi::c_void,
7959 >(next_ptr) as *const _;
7960 }
7961 self
7962 }
7963}
7964impl<'a> core::ops::Deref for SemaphoreCreateInfoBuilder<'a> {
7965 type Target = SemaphoreCreateInfo;
7966 #[inline]
7967 fn deref(&self) -> &Self::Target {
7968 &self.inner
7969 }
7970}
7971impl<'a> core::ops::DerefMut for SemaphoreCreateInfoBuilder<'a> {
7972 #[inline]
7973 fn deref_mut(&mut self) -> &mut Self::Target {
7974 &mut self.inner
7975 }
7976}
7977pub struct QueryPoolCreateInfoBuilder<'a> {
7979 inner: QueryPoolCreateInfo,
7980 _marker: core::marker::PhantomData<&'a ()>,
7981}
7982impl QueryPoolCreateInfo {
7983 #[inline]
7985 pub fn builder<'a>() -> QueryPoolCreateInfoBuilder<'a> {
7986 QueryPoolCreateInfoBuilder {
7987 inner: QueryPoolCreateInfo {
7988 s_type: StructureType::from_raw(11i32),
7989 ..Default::default()
7990 },
7991 _marker: core::marker::PhantomData,
7992 }
7993 }
7994}
7995impl<'a> QueryPoolCreateInfoBuilder<'a> {
7996 #[inline]
7997 pub fn flags(mut self, value: QueryPoolCreateFlags) -> Self {
7998 self.inner.flags = value;
7999 self
8000 }
8001 #[inline]
8002 pub fn query_type(mut self, value: QueryType) -> Self {
8003 self.inner.query_type = value;
8004 self
8005 }
8006 #[inline]
8007 pub fn query_count(mut self, value: u32) -> Self {
8008 self.inner.query_count = value;
8009 self
8010 }
8011 #[inline]
8012 pub fn pipeline_statistics(mut self, value: QueryPipelineStatisticFlags) -> Self {
8013 self.inner.pipeline_statistics = value;
8014 self
8015 }
8016 #[inline]
8018 pub fn push_next<T: ExtendsQueryPoolCreateInfo>(mut self, next: &'a mut T) -> Self {
8019 unsafe {
8020 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8021 (*next_ptr).p_next = self.inner.p_next as *mut _;
8022 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8023 core::ffi::c_void,
8024 >(next_ptr) as *const _;
8025 }
8026 self
8027 }
8028}
8029impl<'a> core::ops::Deref for QueryPoolCreateInfoBuilder<'a> {
8030 type Target = QueryPoolCreateInfo;
8031 #[inline]
8032 fn deref(&self) -> &Self::Target {
8033 &self.inner
8034 }
8035}
8036impl<'a> core::ops::DerefMut for QueryPoolCreateInfoBuilder<'a> {
8037 #[inline]
8038 fn deref_mut(&mut self) -> &mut Self::Target {
8039 &mut self.inner
8040 }
8041}
8042pub struct FramebufferCreateInfoBuilder<'a> {
8044 inner: FramebufferCreateInfo,
8045 _marker: core::marker::PhantomData<&'a ()>,
8046}
8047impl FramebufferCreateInfo {
8048 #[inline]
8050 pub fn builder<'a>() -> FramebufferCreateInfoBuilder<'a> {
8051 FramebufferCreateInfoBuilder {
8052 inner: FramebufferCreateInfo {
8053 s_type: StructureType::from_raw(37i32),
8054 ..Default::default()
8055 },
8056 _marker: core::marker::PhantomData,
8057 }
8058 }
8059}
8060impl<'a> FramebufferCreateInfoBuilder<'a> {
8061 #[inline]
8062 pub fn flags(mut self, value: FramebufferCreateFlags) -> Self {
8063 self.inner.flags = value;
8064 self
8065 }
8066 #[inline]
8067 pub fn render_pass(mut self, value: RenderPass) -> Self {
8068 self.inner.render_pass = value;
8069 self
8070 }
8071 #[inline]
8072 pub fn attachments(mut self, slice: &'a [ImageView]) -> Self {
8073 self.inner.attachment_count = slice.len() as u32;
8074 self.inner.p_attachments = slice.as_ptr();
8075 self
8076 }
8077 #[inline]
8078 pub fn width(mut self, value: u32) -> Self {
8079 self.inner.width = value;
8080 self
8081 }
8082 #[inline]
8083 pub fn height(mut self, value: u32) -> Self {
8084 self.inner.height = value;
8085 self
8086 }
8087 #[inline]
8088 pub fn layers(mut self, value: u32) -> Self {
8089 self.inner.layers = value;
8090 self
8091 }
8092 #[inline]
8094 pub fn push_next<T: ExtendsFramebufferCreateInfo>(
8095 mut self,
8096 next: &'a mut T,
8097 ) -> Self {
8098 unsafe {
8099 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8100 (*next_ptr).p_next = self.inner.p_next as *mut _;
8101 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8102 core::ffi::c_void,
8103 >(next_ptr) as *const _;
8104 }
8105 self
8106 }
8107}
8108impl<'a> core::ops::Deref for FramebufferCreateInfoBuilder<'a> {
8109 type Target = FramebufferCreateInfo;
8110 #[inline]
8111 fn deref(&self) -> &Self::Target {
8112 &self.inner
8113 }
8114}
8115impl<'a> core::ops::DerefMut for FramebufferCreateInfoBuilder<'a> {
8116 #[inline]
8117 fn deref_mut(&mut self) -> &mut Self::Target {
8118 &mut self.inner
8119 }
8120}
8121pub struct DrawIndirectCommandBuilder {
8123 inner: DrawIndirectCommand,
8124}
8125impl DrawIndirectCommand {
8126 #[inline]
8128 pub fn builder() -> DrawIndirectCommandBuilder {
8129 DrawIndirectCommandBuilder {
8130 inner: DrawIndirectCommand {
8131 ..Default::default()
8132 },
8133 }
8134 }
8135}
8136impl DrawIndirectCommandBuilder {
8137 #[inline]
8138 pub fn vertex_count(mut self, value: u32) -> Self {
8139 self.inner.vertex_count = value;
8140 self
8141 }
8142 #[inline]
8143 pub fn instance_count(mut self, value: u32) -> Self {
8144 self.inner.instance_count = value;
8145 self
8146 }
8147 #[inline]
8148 pub fn first_vertex(mut self, value: u32) -> Self {
8149 self.inner.first_vertex = value;
8150 self
8151 }
8152 #[inline]
8153 pub fn first_instance(mut self, value: u32) -> Self {
8154 self.inner.first_instance = value;
8155 self
8156 }
8157}
8158impl core::ops::Deref for DrawIndirectCommandBuilder {
8159 type Target = DrawIndirectCommand;
8160 #[inline]
8161 fn deref(&self) -> &Self::Target {
8162 &self.inner
8163 }
8164}
8165impl core::ops::DerefMut for DrawIndirectCommandBuilder {
8166 #[inline]
8167 fn deref_mut(&mut self) -> &mut Self::Target {
8168 &mut self.inner
8169 }
8170}
8171pub struct DrawIndexedIndirectCommandBuilder {
8173 inner: DrawIndexedIndirectCommand,
8174}
8175impl DrawIndexedIndirectCommand {
8176 #[inline]
8178 pub fn builder() -> DrawIndexedIndirectCommandBuilder {
8179 DrawIndexedIndirectCommandBuilder {
8180 inner: DrawIndexedIndirectCommand {
8181 ..Default::default()
8182 },
8183 }
8184 }
8185}
8186impl DrawIndexedIndirectCommandBuilder {
8187 #[inline]
8188 pub fn index_count(mut self, value: u32) -> Self {
8189 self.inner.index_count = value;
8190 self
8191 }
8192 #[inline]
8193 pub fn instance_count(mut self, value: u32) -> Self {
8194 self.inner.instance_count = value;
8195 self
8196 }
8197 #[inline]
8198 pub fn first_index(mut self, value: u32) -> Self {
8199 self.inner.first_index = value;
8200 self
8201 }
8202 #[inline]
8203 pub fn vertex_offset(mut self, value: i32) -> Self {
8204 self.inner.vertex_offset = value;
8205 self
8206 }
8207 #[inline]
8208 pub fn first_instance(mut self, value: u32) -> Self {
8209 self.inner.first_instance = value;
8210 self
8211 }
8212}
8213impl core::ops::Deref for DrawIndexedIndirectCommandBuilder {
8214 type Target = DrawIndexedIndirectCommand;
8215 #[inline]
8216 fn deref(&self) -> &Self::Target {
8217 &self.inner
8218 }
8219}
8220impl core::ops::DerefMut for DrawIndexedIndirectCommandBuilder {
8221 #[inline]
8222 fn deref_mut(&mut self) -> &mut Self::Target {
8223 &mut self.inner
8224 }
8225}
8226pub struct DispatchIndirectCommandBuilder {
8228 inner: DispatchIndirectCommand,
8229}
8230impl DispatchIndirectCommand {
8231 #[inline]
8233 pub fn builder() -> DispatchIndirectCommandBuilder {
8234 DispatchIndirectCommandBuilder {
8235 inner: DispatchIndirectCommand {
8236 ..Default::default()
8237 },
8238 }
8239 }
8240}
8241impl DispatchIndirectCommandBuilder {
8242 #[inline]
8243 pub fn x(mut self, value: u32) -> Self {
8244 self.inner.x = value;
8245 self
8246 }
8247 #[inline]
8248 pub fn y(mut self, value: u32) -> Self {
8249 self.inner.y = value;
8250 self
8251 }
8252 #[inline]
8253 pub fn z(mut self, value: u32) -> Self {
8254 self.inner.z = value;
8255 self
8256 }
8257}
8258impl core::ops::Deref for DispatchIndirectCommandBuilder {
8259 type Target = DispatchIndirectCommand;
8260 #[inline]
8261 fn deref(&self) -> &Self::Target {
8262 &self.inner
8263 }
8264}
8265impl core::ops::DerefMut for DispatchIndirectCommandBuilder {
8266 #[inline]
8267 fn deref_mut(&mut self) -> &mut Self::Target {
8268 &mut self.inner
8269 }
8270}
8271pub struct MultiDrawInfoEXTBuilder {
8273 inner: MultiDrawInfoEXT,
8274}
8275impl MultiDrawInfoEXT {
8276 #[inline]
8278 pub fn builder() -> MultiDrawInfoEXTBuilder {
8279 MultiDrawInfoEXTBuilder {
8280 inner: MultiDrawInfoEXT {
8281 ..Default::default()
8282 },
8283 }
8284 }
8285}
8286impl MultiDrawInfoEXTBuilder {
8287 #[inline]
8288 pub fn first_vertex(mut self, value: u32) -> Self {
8289 self.inner.first_vertex = value;
8290 self
8291 }
8292 #[inline]
8293 pub fn vertex_count(mut self, value: u32) -> Self {
8294 self.inner.vertex_count = value;
8295 self
8296 }
8297}
8298impl core::ops::Deref for MultiDrawInfoEXTBuilder {
8299 type Target = MultiDrawInfoEXT;
8300 #[inline]
8301 fn deref(&self) -> &Self::Target {
8302 &self.inner
8303 }
8304}
8305impl core::ops::DerefMut for MultiDrawInfoEXTBuilder {
8306 #[inline]
8307 fn deref_mut(&mut self) -> &mut Self::Target {
8308 &mut self.inner
8309 }
8310}
8311pub struct MultiDrawIndexedInfoEXTBuilder {
8313 inner: MultiDrawIndexedInfoEXT,
8314}
8315impl MultiDrawIndexedInfoEXT {
8316 #[inline]
8318 pub fn builder() -> MultiDrawIndexedInfoEXTBuilder {
8319 MultiDrawIndexedInfoEXTBuilder {
8320 inner: MultiDrawIndexedInfoEXT {
8321 ..Default::default()
8322 },
8323 }
8324 }
8325}
8326impl MultiDrawIndexedInfoEXTBuilder {
8327 #[inline]
8328 pub fn first_index(mut self, value: u32) -> Self {
8329 self.inner.first_index = value;
8330 self
8331 }
8332 #[inline]
8333 pub fn index_count(mut self, value: u32) -> Self {
8334 self.inner.index_count = value;
8335 self
8336 }
8337 #[inline]
8338 pub fn vertex_offset(mut self, value: i32) -> Self {
8339 self.inner.vertex_offset = value;
8340 self
8341 }
8342}
8343impl core::ops::Deref for MultiDrawIndexedInfoEXTBuilder {
8344 type Target = MultiDrawIndexedInfoEXT;
8345 #[inline]
8346 fn deref(&self) -> &Self::Target {
8347 &self.inner
8348 }
8349}
8350impl core::ops::DerefMut for MultiDrawIndexedInfoEXTBuilder {
8351 #[inline]
8352 fn deref_mut(&mut self) -> &mut Self::Target {
8353 &mut self.inner
8354 }
8355}
8356pub struct SubmitInfoBuilder<'a> {
8358 inner: SubmitInfo,
8359 _marker: core::marker::PhantomData<&'a ()>,
8360}
8361impl SubmitInfo {
8362 #[inline]
8364 pub fn builder<'a>() -> SubmitInfoBuilder<'a> {
8365 SubmitInfoBuilder {
8366 inner: SubmitInfo {
8367 s_type: StructureType::from_raw(4i32),
8368 ..Default::default()
8369 },
8370 _marker: core::marker::PhantomData,
8371 }
8372 }
8373}
8374impl<'a> SubmitInfoBuilder<'a> {
8375 #[inline]
8376 pub fn wait_semaphores(mut self, slice: &'a [Semaphore]) -> Self {
8377 self.inner.wait_semaphore_count = slice.len() as u32;
8378 self.inner.p_wait_semaphores = slice.as_ptr();
8379 self
8380 }
8381 #[inline]
8382 pub fn wait_dst_stage_mask(mut self, slice: &'a [PipelineStageFlags]) -> Self {
8383 self.inner.wait_semaphore_count = slice.len() as u32;
8384 self.inner.p_wait_dst_stage_mask = slice.as_ptr();
8385 self
8386 }
8387 #[inline]
8388 pub fn command_buffers(mut self, slice: &'a [CommandBuffer]) -> Self {
8389 self.inner.command_buffer_count = slice.len() as u32;
8390 self.inner.p_command_buffers = slice.as_ptr();
8391 self
8392 }
8393 #[inline]
8394 pub fn signal_semaphores(mut self, slice: &'a [Semaphore]) -> Self {
8395 self.inner.signal_semaphore_count = slice.len() as u32;
8396 self.inner.p_signal_semaphores = slice.as_ptr();
8397 self
8398 }
8399 #[inline]
8401 pub fn push_next<T: ExtendsSubmitInfo>(mut self, next: &'a mut T) -> Self {
8402 unsafe {
8403 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8404 (*next_ptr).p_next = self.inner.p_next as *mut _;
8405 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8406 core::ffi::c_void,
8407 >(next_ptr) as *const _;
8408 }
8409 self
8410 }
8411}
8412impl<'a> core::ops::Deref for SubmitInfoBuilder<'a> {
8413 type Target = SubmitInfo;
8414 #[inline]
8415 fn deref(&self) -> &Self::Target {
8416 &self.inner
8417 }
8418}
8419impl<'a> core::ops::DerefMut for SubmitInfoBuilder<'a> {
8420 #[inline]
8421 fn deref_mut(&mut self) -> &mut Self::Target {
8422 &mut self.inner
8423 }
8424}
8425pub struct DisplayPropertiesKHRBuilder<'a> {
8427 inner: DisplayPropertiesKHR,
8428 _marker: core::marker::PhantomData<&'a ()>,
8429}
8430impl DisplayPropertiesKHR {
8431 #[inline]
8433 pub fn builder<'a>() -> DisplayPropertiesKHRBuilder<'a> {
8434 DisplayPropertiesKHRBuilder {
8435 inner: DisplayPropertiesKHR {
8436 ..Default::default()
8437 },
8438 _marker: core::marker::PhantomData,
8439 }
8440 }
8441}
8442impl<'a> DisplayPropertiesKHRBuilder<'a> {
8443 #[inline]
8444 pub fn display(mut self, value: DisplayKHR) -> Self {
8445 self.inner.display = value;
8446 self
8447 }
8448 #[inline]
8449 pub fn display_name(mut self, value: &'a core::ffi::CStr) -> Self {
8450 self.inner.display_name = value.as_ptr();
8451 self
8452 }
8453 #[inline]
8454 pub fn physical_dimensions(mut self, value: Extent2D) -> Self {
8455 self.inner.physical_dimensions = value;
8456 self
8457 }
8458 #[inline]
8459 pub fn physical_resolution(mut self, value: Extent2D) -> Self {
8460 self.inner.physical_resolution = value;
8461 self
8462 }
8463 #[inline]
8464 pub fn supported_transforms(mut self, value: SurfaceTransformFlagsKHR) -> Self {
8465 self.inner.supported_transforms = value;
8466 self
8467 }
8468 #[inline]
8469 pub fn plane_reorder_possible(mut self, value: bool) -> Self {
8470 self.inner.plane_reorder_possible = value as u32;
8471 self
8472 }
8473 #[inline]
8474 pub fn persistent_content(mut self, value: bool) -> Self {
8475 self.inner.persistent_content = value as u32;
8476 self
8477 }
8478}
8479impl<'a> core::ops::Deref for DisplayPropertiesKHRBuilder<'a> {
8480 type Target = DisplayPropertiesKHR;
8481 #[inline]
8482 fn deref(&self) -> &Self::Target {
8483 &self.inner
8484 }
8485}
8486impl<'a> core::ops::DerefMut for DisplayPropertiesKHRBuilder<'a> {
8487 #[inline]
8488 fn deref_mut(&mut self) -> &mut Self::Target {
8489 &mut self.inner
8490 }
8491}
8492pub struct DisplayPlanePropertiesKHRBuilder {
8494 inner: DisplayPlanePropertiesKHR,
8495}
8496impl DisplayPlanePropertiesKHR {
8497 #[inline]
8499 pub fn builder() -> DisplayPlanePropertiesKHRBuilder {
8500 DisplayPlanePropertiesKHRBuilder {
8501 inner: DisplayPlanePropertiesKHR {
8502 ..Default::default()
8503 },
8504 }
8505 }
8506}
8507impl DisplayPlanePropertiesKHRBuilder {
8508 #[inline]
8509 pub fn current_display(mut self, value: DisplayKHR) -> Self {
8510 self.inner.current_display = value;
8511 self
8512 }
8513 #[inline]
8514 pub fn current_stack_index(mut self, value: u32) -> Self {
8515 self.inner.current_stack_index = value;
8516 self
8517 }
8518}
8519impl core::ops::Deref for DisplayPlanePropertiesKHRBuilder {
8520 type Target = DisplayPlanePropertiesKHR;
8521 #[inline]
8522 fn deref(&self) -> &Self::Target {
8523 &self.inner
8524 }
8525}
8526impl core::ops::DerefMut for DisplayPlanePropertiesKHRBuilder {
8527 #[inline]
8528 fn deref_mut(&mut self) -> &mut Self::Target {
8529 &mut self.inner
8530 }
8531}
8532pub struct DisplayModeParametersKHRBuilder {
8534 inner: DisplayModeParametersKHR,
8535}
8536impl DisplayModeParametersKHR {
8537 #[inline]
8539 pub fn builder() -> DisplayModeParametersKHRBuilder {
8540 DisplayModeParametersKHRBuilder {
8541 inner: DisplayModeParametersKHR {
8542 ..Default::default()
8543 },
8544 }
8545 }
8546}
8547impl DisplayModeParametersKHRBuilder {
8548 #[inline]
8549 pub fn visible_region(mut self, value: Extent2D) -> Self {
8550 self.inner.visible_region = value;
8551 self
8552 }
8553 #[inline]
8554 pub fn refresh_rate(mut self, value: u32) -> Self {
8555 self.inner.refresh_rate = value;
8556 self
8557 }
8558}
8559impl core::ops::Deref for DisplayModeParametersKHRBuilder {
8560 type Target = DisplayModeParametersKHR;
8561 #[inline]
8562 fn deref(&self) -> &Self::Target {
8563 &self.inner
8564 }
8565}
8566impl core::ops::DerefMut for DisplayModeParametersKHRBuilder {
8567 #[inline]
8568 fn deref_mut(&mut self) -> &mut Self::Target {
8569 &mut self.inner
8570 }
8571}
8572pub struct DisplayModePropertiesKHRBuilder {
8574 inner: DisplayModePropertiesKHR,
8575}
8576impl DisplayModePropertiesKHR {
8577 #[inline]
8579 pub fn builder() -> DisplayModePropertiesKHRBuilder {
8580 DisplayModePropertiesKHRBuilder {
8581 inner: DisplayModePropertiesKHR {
8582 ..Default::default()
8583 },
8584 }
8585 }
8586}
8587impl DisplayModePropertiesKHRBuilder {
8588 #[inline]
8589 pub fn display_mode(mut self, value: DisplayModeKHR) -> Self {
8590 self.inner.display_mode = value;
8591 self
8592 }
8593 #[inline]
8594 pub fn parameters(mut self, value: DisplayModeParametersKHR) -> Self {
8595 self.inner.parameters = value;
8596 self
8597 }
8598}
8599impl core::ops::Deref for DisplayModePropertiesKHRBuilder {
8600 type Target = DisplayModePropertiesKHR;
8601 #[inline]
8602 fn deref(&self) -> &Self::Target {
8603 &self.inner
8604 }
8605}
8606impl core::ops::DerefMut for DisplayModePropertiesKHRBuilder {
8607 #[inline]
8608 fn deref_mut(&mut self) -> &mut Self::Target {
8609 &mut self.inner
8610 }
8611}
8612pub struct DisplayModeCreateInfoKHRBuilder<'a> {
8614 inner: DisplayModeCreateInfoKHR,
8615 _marker: core::marker::PhantomData<&'a ()>,
8616}
8617impl DisplayModeCreateInfoKHR {
8618 #[inline]
8620 pub fn builder<'a>() -> DisplayModeCreateInfoKHRBuilder<'a> {
8621 DisplayModeCreateInfoKHRBuilder {
8622 inner: DisplayModeCreateInfoKHR {
8623 s_type: StructureType::from_raw(1000002000i32),
8624 ..Default::default()
8625 },
8626 _marker: core::marker::PhantomData,
8627 }
8628 }
8629}
8630impl<'a> DisplayModeCreateInfoKHRBuilder<'a> {
8631 #[inline]
8632 pub fn flags(mut self, value: DisplayModeCreateFlagsKHR) -> Self {
8633 self.inner.flags = value;
8634 self
8635 }
8636 #[inline]
8637 pub fn parameters(mut self, value: DisplayModeParametersKHR) -> Self {
8638 self.inner.parameters = value;
8639 self
8640 }
8641 #[inline]
8643 pub fn push_next<T: ExtendsDisplayModeCreateInfoKHR>(
8644 mut self,
8645 next: &'a mut T,
8646 ) -> Self {
8647 unsafe {
8648 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8649 (*next_ptr).p_next = self.inner.p_next as *mut _;
8650 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8651 core::ffi::c_void,
8652 >(next_ptr) as *const _;
8653 }
8654 self
8655 }
8656}
8657impl<'a> core::ops::Deref for DisplayModeCreateInfoKHRBuilder<'a> {
8658 type Target = DisplayModeCreateInfoKHR;
8659 #[inline]
8660 fn deref(&self) -> &Self::Target {
8661 &self.inner
8662 }
8663}
8664impl<'a> core::ops::DerefMut for DisplayModeCreateInfoKHRBuilder<'a> {
8665 #[inline]
8666 fn deref_mut(&mut self) -> &mut Self::Target {
8667 &mut self.inner
8668 }
8669}
8670pub struct DisplayPlaneCapabilitiesKHRBuilder {
8672 inner: DisplayPlaneCapabilitiesKHR,
8673}
8674impl DisplayPlaneCapabilitiesKHR {
8675 #[inline]
8677 pub fn builder() -> DisplayPlaneCapabilitiesKHRBuilder {
8678 DisplayPlaneCapabilitiesKHRBuilder {
8679 inner: DisplayPlaneCapabilitiesKHR {
8680 ..Default::default()
8681 },
8682 }
8683 }
8684}
8685impl DisplayPlaneCapabilitiesKHRBuilder {
8686 #[inline]
8687 pub fn supported_alpha(mut self, value: DisplayPlaneAlphaFlagsKHR) -> Self {
8688 self.inner.supported_alpha = value;
8689 self
8690 }
8691 #[inline]
8692 pub fn min_src_position(mut self, value: Offset2D) -> Self {
8693 self.inner.min_src_position = value;
8694 self
8695 }
8696 #[inline]
8697 pub fn max_src_position(mut self, value: Offset2D) -> Self {
8698 self.inner.max_src_position = value;
8699 self
8700 }
8701 #[inline]
8702 pub fn min_src_extent(mut self, value: Extent2D) -> Self {
8703 self.inner.min_src_extent = value;
8704 self
8705 }
8706 #[inline]
8707 pub fn max_src_extent(mut self, value: Extent2D) -> Self {
8708 self.inner.max_src_extent = value;
8709 self
8710 }
8711 #[inline]
8712 pub fn min_dst_position(mut self, value: Offset2D) -> Self {
8713 self.inner.min_dst_position = value;
8714 self
8715 }
8716 #[inline]
8717 pub fn max_dst_position(mut self, value: Offset2D) -> Self {
8718 self.inner.max_dst_position = value;
8719 self
8720 }
8721 #[inline]
8722 pub fn min_dst_extent(mut self, value: Extent2D) -> Self {
8723 self.inner.min_dst_extent = value;
8724 self
8725 }
8726 #[inline]
8727 pub fn max_dst_extent(mut self, value: Extent2D) -> Self {
8728 self.inner.max_dst_extent = value;
8729 self
8730 }
8731}
8732impl core::ops::Deref for DisplayPlaneCapabilitiesKHRBuilder {
8733 type Target = DisplayPlaneCapabilitiesKHR;
8734 #[inline]
8735 fn deref(&self) -> &Self::Target {
8736 &self.inner
8737 }
8738}
8739impl core::ops::DerefMut for DisplayPlaneCapabilitiesKHRBuilder {
8740 #[inline]
8741 fn deref_mut(&mut self) -> &mut Self::Target {
8742 &mut self.inner
8743 }
8744}
8745pub struct DisplaySurfaceCreateInfoKHRBuilder<'a> {
8747 inner: DisplaySurfaceCreateInfoKHR,
8748 _marker: core::marker::PhantomData<&'a ()>,
8749}
8750impl DisplaySurfaceCreateInfoKHR {
8751 #[inline]
8753 pub fn builder<'a>() -> DisplaySurfaceCreateInfoKHRBuilder<'a> {
8754 DisplaySurfaceCreateInfoKHRBuilder {
8755 inner: DisplaySurfaceCreateInfoKHR {
8756 s_type: StructureType::from_raw(1000002001i32),
8757 ..Default::default()
8758 },
8759 _marker: core::marker::PhantomData,
8760 }
8761 }
8762}
8763impl<'a> DisplaySurfaceCreateInfoKHRBuilder<'a> {
8764 #[inline]
8765 pub fn flags(mut self, value: DisplaySurfaceCreateFlagsKHR) -> Self {
8766 self.inner.flags = value;
8767 self
8768 }
8769 #[inline]
8770 pub fn display_mode(mut self, value: DisplayModeKHR) -> Self {
8771 self.inner.display_mode = value;
8772 self
8773 }
8774 #[inline]
8775 pub fn plane_index(mut self, value: u32) -> Self {
8776 self.inner.plane_index = value;
8777 self
8778 }
8779 #[inline]
8780 pub fn plane_stack_index(mut self, value: u32) -> Self {
8781 self.inner.plane_stack_index = value;
8782 self
8783 }
8784 #[inline]
8785 pub fn transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
8786 self.inner.transform = value;
8787 self
8788 }
8789 #[inline]
8790 pub fn global_alpha(mut self, value: f32) -> Self {
8791 self.inner.global_alpha = value;
8792 self
8793 }
8794 #[inline]
8795 pub fn alpha_mode(mut self, value: DisplayPlaneAlphaFlagBitsKHR) -> Self {
8796 self.inner.alpha_mode = value;
8797 self
8798 }
8799 #[inline]
8800 pub fn image_extent(mut self, value: Extent2D) -> Self {
8801 self.inner.image_extent = value;
8802 self
8803 }
8804 #[inline]
8806 pub fn push_next<T: ExtendsDisplaySurfaceCreateInfoKHR>(
8807 mut self,
8808 next: &'a mut T,
8809 ) -> Self {
8810 unsafe {
8811 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8812 (*next_ptr).p_next = self.inner.p_next as *mut _;
8813 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8814 core::ffi::c_void,
8815 >(next_ptr) as *const _;
8816 }
8817 self
8818 }
8819}
8820impl<'a> core::ops::Deref for DisplaySurfaceCreateInfoKHRBuilder<'a> {
8821 type Target = DisplaySurfaceCreateInfoKHR;
8822 #[inline]
8823 fn deref(&self) -> &Self::Target {
8824 &self.inner
8825 }
8826}
8827impl<'a> core::ops::DerefMut for DisplaySurfaceCreateInfoKHRBuilder<'a> {
8828 #[inline]
8829 fn deref_mut(&mut self) -> &mut Self::Target {
8830 &mut self.inner
8831 }
8832}
8833pub struct DisplaySurfaceStereoCreateInfoNVBuilder<'a> {
8835 inner: DisplaySurfaceStereoCreateInfoNV,
8836 _marker: core::marker::PhantomData<&'a ()>,
8837}
8838impl DisplaySurfaceStereoCreateInfoNV {
8839 #[inline]
8841 pub fn builder<'a>() -> DisplaySurfaceStereoCreateInfoNVBuilder<'a> {
8842 DisplaySurfaceStereoCreateInfoNVBuilder {
8843 inner: DisplaySurfaceStereoCreateInfoNV {
8844 s_type: StructureType::from_raw(1000551000i32),
8845 ..Default::default()
8846 },
8847 _marker: core::marker::PhantomData,
8848 }
8849 }
8850}
8851impl<'a> DisplaySurfaceStereoCreateInfoNVBuilder<'a> {
8852 #[inline]
8853 pub fn stereo_type(mut self, value: DisplaySurfaceStereoTypeNV) -> Self {
8854 self.inner.stereo_type = value;
8855 self
8856 }
8857 #[inline]
8859 pub fn push_next<T: ExtendsDisplaySurfaceStereoCreateInfoNV>(
8860 mut self,
8861 next: &'a mut T,
8862 ) -> Self {
8863 unsafe {
8864 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8865 (*next_ptr).p_next = self.inner.p_next as *mut _;
8866 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8867 core::ffi::c_void,
8868 >(next_ptr) as *const _;
8869 }
8870 self
8871 }
8872}
8873impl<'a> core::ops::Deref for DisplaySurfaceStereoCreateInfoNVBuilder<'a> {
8874 type Target = DisplaySurfaceStereoCreateInfoNV;
8875 #[inline]
8876 fn deref(&self) -> &Self::Target {
8877 &self.inner
8878 }
8879}
8880impl<'a> core::ops::DerefMut for DisplaySurfaceStereoCreateInfoNVBuilder<'a> {
8881 #[inline]
8882 fn deref_mut(&mut self) -> &mut Self::Target {
8883 &mut self.inner
8884 }
8885}
8886pub struct DisplayPresentInfoKHRBuilder<'a> {
8888 inner: DisplayPresentInfoKHR,
8889 _marker: core::marker::PhantomData<&'a ()>,
8890}
8891impl DisplayPresentInfoKHR {
8892 #[inline]
8894 pub fn builder<'a>() -> DisplayPresentInfoKHRBuilder<'a> {
8895 DisplayPresentInfoKHRBuilder {
8896 inner: DisplayPresentInfoKHR {
8897 s_type: StructureType::from_raw(1000003000i32),
8898 ..Default::default()
8899 },
8900 _marker: core::marker::PhantomData,
8901 }
8902 }
8903}
8904impl<'a> DisplayPresentInfoKHRBuilder<'a> {
8905 #[inline]
8906 pub fn src_rect(mut self, value: Rect2D) -> Self {
8907 self.inner.src_rect = value;
8908 self
8909 }
8910 #[inline]
8911 pub fn dst_rect(mut self, value: Rect2D) -> Self {
8912 self.inner.dst_rect = value;
8913 self
8914 }
8915 #[inline]
8916 pub fn persistent(mut self, value: bool) -> Self {
8917 self.inner.persistent = value as u32;
8918 self
8919 }
8920 #[inline]
8922 pub fn push_next<T: ExtendsDisplayPresentInfoKHR>(
8923 mut self,
8924 next: &'a mut T,
8925 ) -> Self {
8926 unsafe {
8927 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
8928 (*next_ptr).p_next = self.inner.p_next as *mut _;
8929 self.inner.p_next = <*mut BaseOutStructure>::cast::<
8930 core::ffi::c_void,
8931 >(next_ptr) as *const _;
8932 }
8933 self
8934 }
8935}
8936impl<'a> core::ops::Deref for DisplayPresentInfoKHRBuilder<'a> {
8937 type Target = DisplayPresentInfoKHR;
8938 #[inline]
8939 fn deref(&self) -> &Self::Target {
8940 &self.inner
8941 }
8942}
8943impl<'a> core::ops::DerefMut for DisplayPresentInfoKHRBuilder<'a> {
8944 #[inline]
8945 fn deref_mut(&mut self) -> &mut Self::Target {
8946 &mut self.inner
8947 }
8948}
8949pub struct SurfaceCapabilitiesKHRBuilder {
8951 inner: SurfaceCapabilitiesKHR,
8952}
8953impl SurfaceCapabilitiesKHR {
8954 #[inline]
8956 pub fn builder() -> SurfaceCapabilitiesKHRBuilder {
8957 SurfaceCapabilitiesKHRBuilder {
8958 inner: SurfaceCapabilitiesKHR {
8959 ..Default::default()
8960 },
8961 }
8962 }
8963}
8964impl SurfaceCapabilitiesKHRBuilder {
8965 #[inline]
8966 pub fn min_image_count(mut self, value: u32) -> Self {
8967 self.inner.min_image_count = value;
8968 self
8969 }
8970 #[inline]
8971 pub fn max_image_count(mut self, value: u32) -> Self {
8972 self.inner.max_image_count = value;
8973 self
8974 }
8975 #[inline]
8976 pub fn current_extent(mut self, value: Extent2D) -> Self {
8977 self.inner.current_extent = value;
8978 self
8979 }
8980 #[inline]
8981 pub fn min_image_extent(mut self, value: Extent2D) -> Self {
8982 self.inner.min_image_extent = value;
8983 self
8984 }
8985 #[inline]
8986 pub fn max_image_extent(mut self, value: Extent2D) -> Self {
8987 self.inner.max_image_extent = value;
8988 self
8989 }
8990 #[inline]
8991 pub fn max_image_array_layers(mut self, value: u32) -> Self {
8992 self.inner.max_image_array_layers = value;
8993 self
8994 }
8995 #[inline]
8996 pub fn supported_transforms(mut self, value: SurfaceTransformFlagsKHR) -> Self {
8997 self.inner.supported_transforms = value;
8998 self
8999 }
9000 #[inline]
9001 pub fn current_transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
9002 self.inner.current_transform = value;
9003 self
9004 }
9005 #[inline]
9006 pub fn supported_composite_alpha(mut self, value: CompositeAlphaFlagsKHR) -> Self {
9007 self.inner.supported_composite_alpha = value;
9008 self
9009 }
9010 #[inline]
9011 pub fn supported_usage_flags(mut self, value: ImageUsageFlags) -> Self {
9012 self.inner.supported_usage_flags = value;
9013 self
9014 }
9015}
9016impl core::ops::Deref for SurfaceCapabilitiesKHRBuilder {
9017 type Target = SurfaceCapabilitiesKHR;
9018 #[inline]
9019 fn deref(&self) -> &Self::Target {
9020 &self.inner
9021 }
9022}
9023impl core::ops::DerefMut for SurfaceCapabilitiesKHRBuilder {
9024 #[inline]
9025 fn deref_mut(&mut self) -> &mut Self::Target {
9026 &mut self.inner
9027 }
9028}
9029pub struct AndroidSurfaceCreateInfoKHRBuilder<'a> {
9031 inner: AndroidSurfaceCreateInfoKHR,
9032 _marker: core::marker::PhantomData<&'a ()>,
9033}
9034impl AndroidSurfaceCreateInfoKHR {
9035 #[inline]
9037 pub fn builder<'a>() -> AndroidSurfaceCreateInfoKHRBuilder<'a> {
9038 AndroidSurfaceCreateInfoKHRBuilder {
9039 inner: AndroidSurfaceCreateInfoKHR {
9040 s_type: StructureType::from_raw(1000008000i32),
9041 ..Default::default()
9042 },
9043 _marker: core::marker::PhantomData,
9044 }
9045 }
9046}
9047impl<'a> AndroidSurfaceCreateInfoKHRBuilder<'a> {
9048 #[inline]
9049 pub fn flags(mut self, value: AndroidSurfaceCreateFlagsKHR) -> Self {
9050 self.inner.flags = value;
9051 self
9052 }
9053 #[inline]
9054 pub fn window(mut self, value: *mut core::ffi::c_void) -> Self {
9055 self.inner.window = value;
9056 self
9057 }
9058 #[inline]
9060 pub fn push_next<T: ExtendsAndroidSurfaceCreateInfoKHR>(
9061 mut self,
9062 next: &'a mut T,
9063 ) -> Self {
9064 unsafe {
9065 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9066 (*next_ptr).p_next = self.inner.p_next as *mut _;
9067 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9068 core::ffi::c_void,
9069 >(next_ptr) as *const _;
9070 }
9071 self
9072 }
9073}
9074impl<'a> core::ops::Deref for AndroidSurfaceCreateInfoKHRBuilder<'a> {
9075 type Target = AndroidSurfaceCreateInfoKHR;
9076 #[inline]
9077 fn deref(&self) -> &Self::Target {
9078 &self.inner
9079 }
9080}
9081impl<'a> core::ops::DerefMut for AndroidSurfaceCreateInfoKHRBuilder<'a> {
9082 #[inline]
9083 fn deref_mut(&mut self) -> &mut Self::Target {
9084 &mut self.inner
9085 }
9086}
9087pub struct ViSurfaceCreateInfoNNBuilder<'a> {
9089 inner: ViSurfaceCreateInfoNN,
9090 _marker: core::marker::PhantomData<&'a ()>,
9091}
9092impl ViSurfaceCreateInfoNN {
9093 #[inline]
9095 pub fn builder<'a>() -> ViSurfaceCreateInfoNNBuilder<'a> {
9096 ViSurfaceCreateInfoNNBuilder {
9097 inner: ViSurfaceCreateInfoNN {
9098 s_type: StructureType::from_raw(1000062000i32),
9099 ..Default::default()
9100 },
9101 _marker: core::marker::PhantomData,
9102 }
9103 }
9104}
9105impl<'a> ViSurfaceCreateInfoNNBuilder<'a> {
9106 #[inline]
9107 pub fn flags(mut self, value: ViSurfaceCreateFlagsNN) -> Self {
9108 self.inner.flags = value;
9109 self
9110 }
9111 #[inline]
9112 pub fn window(mut self, value: *mut core::ffi::c_void) -> Self {
9113 self.inner.window = value;
9114 self
9115 }
9116 #[inline]
9118 pub fn push_next<T: ExtendsViSurfaceCreateInfoNN>(
9119 mut self,
9120 next: &'a mut T,
9121 ) -> Self {
9122 unsafe {
9123 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9124 (*next_ptr).p_next = self.inner.p_next as *mut _;
9125 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9126 core::ffi::c_void,
9127 >(next_ptr) as *const _;
9128 }
9129 self
9130 }
9131}
9132impl<'a> core::ops::Deref for ViSurfaceCreateInfoNNBuilder<'a> {
9133 type Target = ViSurfaceCreateInfoNN;
9134 #[inline]
9135 fn deref(&self) -> &Self::Target {
9136 &self.inner
9137 }
9138}
9139impl<'a> core::ops::DerefMut for ViSurfaceCreateInfoNNBuilder<'a> {
9140 #[inline]
9141 fn deref_mut(&mut self) -> &mut Self::Target {
9142 &mut self.inner
9143 }
9144}
9145pub struct WaylandSurfaceCreateInfoKHRBuilder<'a> {
9147 inner: WaylandSurfaceCreateInfoKHR,
9148 _marker: core::marker::PhantomData<&'a ()>,
9149}
9150impl WaylandSurfaceCreateInfoKHR {
9151 #[inline]
9153 pub fn builder<'a>() -> WaylandSurfaceCreateInfoKHRBuilder<'a> {
9154 WaylandSurfaceCreateInfoKHRBuilder {
9155 inner: WaylandSurfaceCreateInfoKHR {
9156 s_type: StructureType::from_raw(1000006000i32),
9157 ..Default::default()
9158 },
9159 _marker: core::marker::PhantomData,
9160 }
9161 }
9162}
9163impl<'a> WaylandSurfaceCreateInfoKHRBuilder<'a> {
9164 #[inline]
9165 pub fn flags(mut self, value: WaylandSurfaceCreateFlagsKHR) -> Self {
9166 self.inner.flags = value;
9167 self
9168 }
9169 #[inline]
9170 pub fn display(mut self, value: *mut core::ffi::c_void) -> Self {
9171 self.inner.display = value;
9172 self
9173 }
9174 #[inline]
9175 pub fn surface(mut self, value: *mut core::ffi::c_void) -> Self {
9176 self.inner.surface = value;
9177 self
9178 }
9179 #[inline]
9181 pub fn push_next<T: ExtendsWaylandSurfaceCreateInfoKHR>(
9182 mut self,
9183 next: &'a mut T,
9184 ) -> Self {
9185 unsafe {
9186 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9187 (*next_ptr).p_next = self.inner.p_next as *mut _;
9188 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9189 core::ffi::c_void,
9190 >(next_ptr) as *const _;
9191 }
9192 self
9193 }
9194}
9195impl<'a> core::ops::Deref for WaylandSurfaceCreateInfoKHRBuilder<'a> {
9196 type Target = WaylandSurfaceCreateInfoKHR;
9197 #[inline]
9198 fn deref(&self) -> &Self::Target {
9199 &self.inner
9200 }
9201}
9202impl<'a> core::ops::DerefMut for WaylandSurfaceCreateInfoKHRBuilder<'a> {
9203 #[inline]
9204 fn deref_mut(&mut self) -> &mut Self::Target {
9205 &mut self.inner
9206 }
9207}
9208pub struct UbmSurfaceCreateInfoSECBuilder<'a> {
9210 inner: UbmSurfaceCreateInfoSEC,
9211 _marker: core::marker::PhantomData<&'a ()>,
9212}
9213impl UbmSurfaceCreateInfoSEC {
9214 #[inline]
9216 pub fn builder<'a>() -> UbmSurfaceCreateInfoSECBuilder<'a> {
9217 UbmSurfaceCreateInfoSECBuilder {
9218 inner: UbmSurfaceCreateInfoSEC {
9219 s_type: StructureType::from_raw(1000664000i32),
9220 ..Default::default()
9221 },
9222 _marker: core::marker::PhantomData,
9223 }
9224 }
9225}
9226impl<'a> UbmSurfaceCreateInfoSECBuilder<'a> {
9227 #[inline]
9228 pub fn flags(mut self, value: UbmSurfaceCreateFlagsSEC) -> Self {
9229 self.inner.flags = value;
9230 self
9231 }
9232 #[inline]
9233 pub fn device(mut self, value: *mut core::ffi::c_void) -> Self {
9234 self.inner.device = value;
9235 self
9236 }
9237 #[inline]
9238 pub fn surface(mut self, value: *mut core::ffi::c_void) -> Self {
9239 self.inner.surface = value;
9240 self
9241 }
9242 #[inline]
9244 pub fn push_next<T: ExtendsUbmSurfaceCreateInfoSEC>(
9245 mut self,
9246 next: &'a mut T,
9247 ) -> Self {
9248 unsafe {
9249 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9250 (*next_ptr).p_next = self.inner.p_next as *mut _;
9251 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9252 core::ffi::c_void,
9253 >(next_ptr) as *const _;
9254 }
9255 self
9256 }
9257}
9258impl<'a> core::ops::Deref for UbmSurfaceCreateInfoSECBuilder<'a> {
9259 type Target = UbmSurfaceCreateInfoSEC;
9260 #[inline]
9261 fn deref(&self) -> &Self::Target {
9262 &self.inner
9263 }
9264}
9265impl<'a> core::ops::DerefMut for UbmSurfaceCreateInfoSECBuilder<'a> {
9266 #[inline]
9267 fn deref_mut(&mut self) -> &mut Self::Target {
9268 &mut self.inner
9269 }
9270}
9271pub struct Win32SurfaceCreateInfoKHRBuilder<'a> {
9273 inner: Win32SurfaceCreateInfoKHR,
9274 _marker: core::marker::PhantomData<&'a ()>,
9275}
9276impl Win32SurfaceCreateInfoKHR {
9277 #[inline]
9279 pub fn builder<'a>() -> Win32SurfaceCreateInfoKHRBuilder<'a> {
9280 Win32SurfaceCreateInfoKHRBuilder {
9281 inner: Win32SurfaceCreateInfoKHR {
9282 s_type: StructureType::from_raw(1000009000i32),
9283 ..Default::default()
9284 },
9285 _marker: core::marker::PhantomData,
9286 }
9287 }
9288}
9289impl<'a> Win32SurfaceCreateInfoKHRBuilder<'a> {
9290 #[inline]
9291 pub fn flags(mut self, value: Win32SurfaceCreateFlagsKHR) -> Self {
9292 self.inner.flags = value;
9293 self
9294 }
9295 #[inline]
9296 pub fn hinstance(mut self, value: isize) -> Self {
9297 self.inner.hinstance = value;
9298 self
9299 }
9300 #[inline]
9301 pub fn hwnd(mut self, value: isize) -> Self {
9302 self.inner.hwnd = value;
9303 self
9304 }
9305 #[inline]
9307 pub fn push_next<T: ExtendsWin32SurfaceCreateInfoKHR>(
9308 mut self,
9309 next: &'a mut T,
9310 ) -> Self {
9311 unsafe {
9312 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9313 (*next_ptr).p_next = self.inner.p_next as *mut _;
9314 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9315 core::ffi::c_void,
9316 >(next_ptr) as *const _;
9317 }
9318 self
9319 }
9320}
9321impl<'a> core::ops::Deref for Win32SurfaceCreateInfoKHRBuilder<'a> {
9322 type Target = Win32SurfaceCreateInfoKHR;
9323 #[inline]
9324 fn deref(&self) -> &Self::Target {
9325 &self.inner
9326 }
9327}
9328impl<'a> core::ops::DerefMut for Win32SurfaceCreateInfoKHRBuilder<'a> {
9329 #[inline]
9330 fn deref_mut(&mut self) -> &mut Self::Target {
9331 &mut self.inner
9332 }
9333}
9334pub struct XlibSurfaceCreateInfoKHRBuilder<'a> {
9336 inner: XlibSurfaceCreateInfoKHR,
9337 _marker: core::marker::PhantomData<&'a ()>,
9338}
9339impl XlibSurfaceCreateInfoKHR {
9340 #[inline]
9342 pub fn builder<'a>() -> XlibSurfaceCreateInfoKHRBuilder<'a> {
9343 XlibSurfaceCreateInfoKHRBuilder {
9344 inner: XlibSurfaceCreateInfoKHR {
9345 s_type: StructureType::from_raw(1000004000i32),
9346 ..Default::default()
9347 },
9348 _marker: core::marker::PhantomData,
9349 }
9350 }
9351}
9352impl<'a> XlibSurfaceCreateInfoKHRBuilder<'a> {
9353 #[inline]
9354 pub fn flags(mut self, value: XlibSurfaceCreateFlagsKHR) -> Self {
9355 self.inner.flags = value;
9356 self
9357 }
9358 #[inline]
9359 pub fn dpy(mut self, value: *mut core::ffi::c_void) -> Self {
9360 self.inner.dpy = value;
9361 self
9362 }
9363 #[inline]
9364 pub fn window(mut self, value: core::ffi::c_ulong) -> Self {
9365 self.inner.window = value;
9366 self
9367 }
9368 #[inline]
9370 pub fn push_next<T: ExtendsXlibSurfaceCreateInfoKHR>(
9371 mut self,
9372 next: &'a mut T,
9373 ) -> Self {
9374 unsafe {
9375 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9376 (*next_ptr).p_next = self.inner.p_next as *mut _;
9377 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9378 core::ffi::c_void,
9379 >(next_ptr) as *const _;
9380 }
9381 self
9382 }
9383}
9384impl<'a> core::ops::Deref for XlibSurfaceCreateInfoKHRBuilder<'a> {
9385 type Target = XlibSurfaceCreateInfoKHR;
9386 #[inline]
9387 fn deref(&self) -> &Self::Target {
9388 &self.inner
9389 }
9390}
9391impl<'a> core::ops::DerefMut for XlibSurfaceCreateInfoKHRBuilder<'a> {
9392 #[inline]
9393 fn deref_mut(&mut self) -> &mut Self::Target {
9394 &mut self.inner
9395 }
9396}
9397pub struct XcbSurfaceCreateInfoKHRBuilder<'a> {
9399 inner: XcbSurfaceCreateInfoKHR,
9400 _marker: core::marker::PhantomData<&'a ()>,
9401}
9402impl XcbSurfaceCreateInfoKHR {
9403 #[inline]
9405 pub fn builder<'a>() -> XcbSurfaceCreateInfoKHRBuilder<'a> {
9406 XcbSurfaceCreateInfoKHRBuilder {
9407 inner: XcbSurfaceCreateInfoKHR {
9408 s_type: StructureType::from_raw(1000005000i32),
9409 ..Default::default()
9410 },
9411 _marker: core::marker::PhantomData,
9412 }
9413 }
9414}
9415impl<'a> XcbSurfaceCreateInfoKHRBuilder<'a> {
9416 #[inline]
9417 pub fn flags(mut self, value: XcbSurfaceCreateFlagsKHR) -> Self {
9418 self.inner.flags = value;
9419 self
9420 }
9421 #[inline]
9422 pub fn connection(mut self, value: *mut core::ffi::c_void) -> Self {
9423 self.inner.connection = value;
9424 self
9425 }
9426 #[inline]
9427 pub fn window(mut self, value: u32) -> Self {
9428 self.inner.window = value;
9429 self
9430 }
9431 #[inline]
9433 pub fn push_next<T: ExtendsXcbSurfaceCreateInfoKHR>(
9434 mut self,
9435 next: &'a mut T,
9436 ) -> Self {
9437 unsafe {
9438 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9439 (*next_ptr).p_next = self.inner.p_next as *mut _;
9440 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9441 core::ffi::c_void,
9442 >(next_ptr) as *const _;
9443 }
9444 self
9445 }
9446}
9447impl<'a> core::ops::Deref for XcbSurfaceCreateInfoKHRBuilder<'a> {
9448 type Target = XcbSurfaceCreateInfoKHR;
9449 #[inline]
9450 fn deref(&self) -> &Self::Target {
9451 &self.inner
9452 }
9453}
9454impl<'a> core::ops::DerefMut for XcbSurfaceCreateInfoKHRBuilder<'a> {
9455 #[inline]
9456 fn deref_mut(&mut self) -> &mut Self::Target {
9457 &mut self.inner
9458 }
9459}
9460pub struct DirectFBSurfaceCreateInfoEXTBuilder<'a> {
9462 inner: DirectFBSurfaceCreateInfoEXT,
9463 _marker: core::marker::PhantomData<&'a ()>,
9464}
9465impl DirectFBSurfaceCreateInfoEXT {
9466 #[inline]
9468 pub fn builder<'a>() -> DirectFBSurfaceCreateInfoEXTBuilder<'a> {
9469 DirectFBSurfaceCreateInfoEXTBuilder {
9470 inner: DirectFBSurfaceCreateInfoEXT {
9471 s_type: StructureType::from_raw(1000346000i32),
9472 ..Default::default()
9473 },
9474 _marker: core::marker::PhantomData,
9475 }
9476 }
9477}
9478impl<'a> DirectFBSurfaceCreateInfoEXTBuilder<'a> {
9479 #[inline]
9480 pub fn flags(mut self, value: DirectFBSurfaceCreateFlagsEXT) -> Self {
9481 self.inner.flags = value;
9482 self
9483 }
9484 #[inline]
9485 pub fn dfb(mut self, value: *mut core::ffi::c_void) -> Self {
9486 self.inner.dfb = value;
9487 self
9488 }
9489 #[inline]
9490 pub fn surface(mut self, value: *mut core::ffi::c_void) -> Self {
9491 self.inner.surface = value;
9492 self
9493 }
9494 #[inline]
9496 pub fn push_next<T: ExtendsDirectFBSurfaceCreateInfoEXT>(
9497 mut self,
9498 next: &'a mut T,
9499 ) -> Self {
9500 unsafe {
9501 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9502 (*next_ptr).p_next = self.inner.p_next as *mut _;
9503 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9504 core::ffi::c_void,
9505 >(next_ptr) as *const _;
9506 }
9507 self
9508 }
9509}
9510impl<'a> core::ops::Deref for DirectFBSurfaceCreateInfoEXTBuilder<'a> {
9511 type Target = DirectFBSurfaceCreateInfoEXT;
9512 #[inline]
9513 fn deref(&self) -> &Self::Target {
9514 &self.inner
9515 }
9516}
9517impl<'a> core::ops::DerefMut for DirectFBSurfaceCreateInfoEXTBuilder<'a> {
9518 #[inline]
9519 fn deref_mut(&mut self) -> &mut Self::Target {
9520 &mut self.inner
9521 }
9522}
9523pub struct ImagePipeSurfaceCreateInfoFUCHSIABuilder<'a> {
9525 inner: ImagePipeSurfaceCreateInfoFUCHSIA,
9526 _marker: core::marker::PhantomData<&'a ()>,
9527}
9528impl ImagePipeSurfaceCreateInfoFUCHSIA {
9529 #[inline]
9531 pub fn builder<'a>() -> ImagePipeSurfaceCreateInfoFUCHSIABuilder<'a> {
9532 ImagePipeSurfaceCreateInfoFUCHSIABuilder {
9533 inner: ImagePipeSurfaceCreateInfoFUCHSIA {
9534 s_type: StructureType::from_raw(1000214000i32),
9535 ..Default::default()
9536 },
9537 _marker: core::marker::PhantomData,
9538 }
9539 }
9540}
9541impl<'a> ImagePipeSurfaceCreateInfoFUCHSIABuilder<'a> {
9542 #[inline]
9543 pub fn flags(mut self, value: ImagePipeSurfaceCreateFlagsFUCHSIA) -> Self {
9544 self.inner.flags = value;
9545 self
9546 }
9547 #[inline]
9548 pub fn image_pipe_handle(mut self, value: u32) -> Self {
9549 self.inner.image_pipe_handle = value;
9550 self
9551 }
9552 #[inline]
9554 pub fn push_next<T: ExtendsImagePipeSurfaceCreateInfoFUCHSIA>(
9555 mut self,
9556 next: &'a mut T,
9557 ) -> Self {
9558 unsafe {
9559 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9560 (*next_ptr).p_next = self.inner.p_next as *mut _;
9561 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9562 core::ffi::c_void,
9563 >(next_ptr) as *const _;
9564 }
9565 self
9566 }
9567}
9568impl<'a> core::ops::Deref for ImagePipeSurfaceCreateInfoFUCHSIABuilder<'a> {
9569 type Target = ImagePipeSurfaceCreateInfoFUCHSIA;
9570 #[inline]
9571 fn deref(&self) -> &Self::Target {
9572 &self.inner
9573 }
9574}
9575impl<'a> core::ops::DerefMut for ImagePipeSurfaceCreateInfoFUCHSIABuilder<'a> {
9576 #[inline]
9577 fn deref_mut(&mut self) -> &mut Self::Target {
9578 &mut self.inner
9579 }
9580}
9581pub struct StreamDescriptorSurfaceCreateInfoGGPBuilder<'a> {
9583 inner: StreamDescriptorSurfaceCreateInfoGGP,
9584 _marker: core::marker::PhantomData<&'a ()>,
9585}
9586impl StreamDescriptorSurfaceCreateInfoGGP {
9587 #[inline]
9589 pub fn builder<'a>() -> StreamDescriptorSurfaceCreateInfoGGPBuilder<'a> {
9590 StreamDescriptorSurfaceCreateInfoGGPBuilder {
9591 inner: StreamDescriptorSurfaceCreateInfoGGP {
9592 s_type: StructureType::from_raw(1000049000i32),
9593 ..Default::default()
9594 },
9595 _marker: core::marker::PhantomData,
9596 }
9597 }
9598}
9599impl<'a> StreamDescriptorSurfaceCreateInfoGGPBuilder<'a> {
9600 #[inline]
9601 pub fn flags(mut self, value: StreamDescriptorSurfaceCreateFlagsGGP) -> Self {
9602 self.inner.flags = value;
9603 self
9604 }
9605 #[inline]
9606 pub fn stream_descriptor(mut self, value: u32) -> Self {
9607 self.inner.stream_descriptor = value;
9608 self
9609 }
9610 #[inline]
9612 pub fn push_next<T: ExtendsStreamDescriptorSurfaceCreateInfoGGP>(
9613 mut self,
9614 next: &'a mut T,
9615 ) -> Self {
9616 unsafe {
9617 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9618 (*next_ptr).p_next = self.inner.p_next as *mut _;
9619 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9620 core::ffi::c_void,
9621 >(next_ptr) as *const _;
9622 }
9623 self
9624 }
9625}
9626impl<'a> core::ops::Deref for StreamDescriptorSurfaceCreateInfoGGPBuilder<'a> {
9627 type Target = StreamDescriptorSurfaceCreateInfoGGP;
9628 #[inline]
9629 fn deref(&self) -> &Self::Target {
9630 &self.inner
9631 }
9632}
9633impl<'a> core::ops::DerefMut for StreamDescriptorSurfaceCreateInfoGGPBuilder<'a> {
9634 #[inline]
9635 fn deref_mut(&mut self) -> &mut Self::Target {
9636 &mut self.inner
9637 }
9638}
9639pub struct ScreenSurfaceCreateInfoQNXBuilder<'a> {
9641 inner: ScreenSurfaceCreateInfoQNX,
9642 _marker: core::marker::PhantomData<&'a ()>,
9643}
9644impl ScreenSurfaceCreateInfoQNX {
9645 #[inline]
9647 pub fn builder<'a>() -> ScreenSurfaceCreateInfoQNXBuilder<'a> {
9648 ScreenSurfaceCreateInfoQNXBuilder {
9649 inner: ScreenSurfaceCreateInfoQNX {
9650 s_type: StructureType::from_raw(1000378000i32),
9651 ..Default::default()
9652 },
9653 _marker: core::marker::PhantomData,
9654 }
9655 }
9656}
9657impl<'a> ScreenSurfaceCreateInfoQNXBuilder<'a> {
9658 #[inline]
9659 pub fn flags(mut self, value: ScreenSurfaceCreateFlagsQNX) -> Self {
9660 self.inner.flags = value;
9661 self
9662 }
9663 #[inline]
9664 pub fn context(mut self, value: *mut core::ffi::c_void) -> Self {
9665 self.inner.context = value;
9666 self
9667 }
9668 #[inline]
9669 pub fn window(mut self, value: *mut core::ffi::c_void) -> Self {
9670 self.inner.window = value;
9671 self
9672 }
9673 #[inline]
9675 pub fn push_next<T: ExtendsScreenSurfaceCreateInfoQNX>(
9676 mut self,
9677 next: &'a mut T,
9678 ) -> Self {
9679 unsafe {
9680 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9681 (*next_ptr).p_next = self.inner.p_next as *mut _;
9682 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9683 core::ffi::c_void,
9684 >(next_ptr) as *const _;
9685 }
9686 self
9687 }
9688}
9689impl<'a> core::ops::Deref for ScreenSurfaceCreateInfoQNXBuilder<'a> {
9690 type Target = ScreenSurfaceCreateInfoQNX;
9691 #[inline]
9692 fn deref(&self) -> &Self::Target {
9693 &self.inner
9694 }
9695}
9696impl<'a> core::ops::DerefMut for ScreenSurfaceCreateInfoQNXBuilder<'a> {
9697 #[inline]
9698 fn deref_mut(&mut self) -> &mut Self::Target {
9699 &mut self.inner
9700 }
9701}
9702pub struct SurfaceFormatKHRBuilder {
9704 inner: SurfaceFormatKHR,
9705}
9706impl SurfaceFormatKHR {
9707 #[inline]
9709 pub fn builder() -> SurfaceFormatKHRBuilder {
9710 SurfaceFormatKHRBuilder {
9711 inner: SurfaceFormatKHR {
9712 ..Default::default()
9713 },
9714 }
9715 }
9716}
9717impl SurfaceFormatKHRBuilder {
9718 #[inline]
9719 pub fn format(mut self, value: Format) -> Self {
9720 self.inner.format = value;
9721 self
9722 }
9723 #[inline]
9724 pub fn color_space(mut self, value: ColorSpaceKHR) -> Self {
9725 self.inner.color_space = value;
9726 self
9727 }
9728}
9729impl core::ops::Deref for SurfaceFormatKHRBuilder {
9730 type Target = SurfaceFormatKHR;
9731 #[inline]
9732 fn deref(&self) -> &Self::Target {
9733 &self.inner
9734 }
9735}
9736impl core::ops::DerefMut for SurfaceFormatKHRBuilder {
9737 #[inline]
9738 fn deref_mut(&mut self) -> &mut Self::Target {
9739 &mut self.inner
9740 }
9741}
9742pub struct SwapchainCreateInfoKHRBuilder<'a> {
9744 inner: SwapchainCreateInfoKHR,
9745 _marker: core::marker::PhantomData<&'a ()>,
9746}
9747impl SwapchainCreateInfoKHR {
9748 #[inline]
9750 pub fn builder<'a>() -> SwapchainCreateInfoKHRBuilder<'a> {
9751 SwapchainCreateInfoKHRBuilder {
9752 inner: SwapchainCreateInfoKHR {
9753 s_type: StructureType::from_raw(1000001000i32),
9754 ..Default::default()
9755 },
9756 _marker: core::marker::PhantomData,
9757 }
9758 }
9759}
9760impl<'a> SwapchainCreateInfoKHRBuilder<'a> {
9761 #[inline]
9762 pub fn flags(mut self, value: SwapchainCreateFlagsKHR) -> Self {
9763 self.inner.flags = value;
9764 self
9765 }
9766 #[inline]
9767 pub fn surface(mut self, value: SurfaceKHR) -> Self {
9768 self.inner.surface = value;
9769 self
9770 }
9771 #[inline]
9772 pub fn min_image_count(mut self, value: u32) -> Self {
9773 self.inner.min_image_count = value;
9774 self
9775 }
9776 #[inline]
9777 pub fn image_format(mut self, value: Format) -> Self {
9778 self.inner.image_format = value;
9779 self
9780 }
9781 #[inline]
9782 pub fn image_color_space(mut self, value: ColorSpaceKHR) -> Self {
9783 self.inner.image_color_space = value;
9784 self
9785 }
9786 #[inline]
9787 pub fn image_extent(mut self, value: Extent2D) -> Self {
9788 self.inner.image_extent = value;
9789 self
9790 }
9791 #[inline]
9792 pub fn image_array_layers(mut self, value: u32) -> Self {
9793 self.inner.image_array_layers = value;
9794 self
9795 }
9796 #[inline]
9797 pub fn image_usage(mut self, value: ImageUsageFlags) -> Self {
9798 self.inner.image_usage = value;
9799 self
9800 }
9801 #[inline]
9802 pub fn image_sharing_mode(mut self, value: SharingMode) -> Self {
9803 self.inner.image_sharing_mode = value;
9804 self
9805 }
9806 #[inline]
9807 pub fn queue_family_indices(mut self, slice: &'a [u32]) -> Self {
9808 self.inner.queue_family_index_count = slice.len() as u32;
9809 self.inner.p_queue_family_indices = slice.as_ptr();
9810 self
9811 }
9812 #[inline]
9813 pub fn pre_transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
9814 self.inner.pre_transform = value;
9815 self
9816 }
9817 #[inline]
9818 pub fn composite_alpha(mut self, value: CompositeAlphaFlagBitsKHR) -> Self {
9819 self.inner.composite_alpha = value;
9820 self
9821 }
9822 #[inline]
9823 pub fn present_mode(mut self, value: PresentModeKHR) -> Self {
9824 self.inner.present_mode = value;
9825 self
9826 }
9827 #[inline]
9828 pub fn clipped(mut self, value: bool) -> Self {
9829 self.inner.clipped = value as u32;
9830 self
9831 }
9832 #[inline]
9833 pub fn old_swapchain(mut self, value: SwapchainKHR) -> Self {
9834 self.inner.old_swapchain = value;
9835 self
9836 }
9837 #[inline]
9839 pub fn push_next<T: ExtendsSwapchainCreateInfoKHR>(
9840 mut self,
9841 next: &'a mut T,
9842 ) -> Self {
9843 unsafe {
9844 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9845 (*next_ptr).p_next = self.inner.p_next as *mut _;
9846 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9847 core::ffi::c_void,
9848 >(next_ptr) as *const _;
9849 }
9850 self
9851 }
9852}
9853impl<'a> core::ops::Deref for SwapchainCreateInfoKHRBuilder<'a> {
9854 type Target = SwapchainCreateInfoKHR;
9855 #[inline]
9856 fn deref(&self) -> &Self::Target {
9857 &self.inner
9858 }
9859}
9860impl<'a> core::ops::DerefMut for SwapchainCreateInfoKHRBuilder<'a> {
9861 #[inline]
9862 fn deref_mut(&mut self) -> &mut Self::Target {
9863 &mut self.inner
9864 }
9865}
9866pub struct PresentInfoKHRBuilder<'a> {
9868 inner: PresentInfoKHR,
9869 _marker: core::marker::PhantomData<&'a ()>,
9870}
9871impl PresentInfoKHR {
9872 #[inline]
9874 pub fn builder<'a>() -> PresentInfoKHRBuilder<'a> {
9875 PresentInfoKHRBuilder {
9876 inner: PresentInfoKHR {
9877 s_type: StructureType::from_raw(1000001001i32),
9878 ..Default::default()
9879 },
9880 _marker: core::marker::PhantomData,
9881 }
9882 }
9883}
9884impl<'a> PresentInfoKHRBuilder<'a> {
9885 #[inline]
9886 pub fn wait_semaphores(mut self, slice: &'a [Semaphore]) -> Self {
9887 self.inner.wait_semaphore_count = slice.len() as u32;
9888 self.inner.p_wait_semaphores = slice.as_ptr();
9889 self
9890 }
9891 #[inline]
9892 pub fn swapchains(mut self, slice: &'a [SwapchainKHR]) -> Self {
9893 self.inner.swapchain_count = slice.len() as u32;
9894 self.inner.p_swapchains = slice.as_ptr();
9895 self
9896 }
9897 #[inline]
9898 pub fn image_indices(mut self, slice: &'a [u32]) -> Self {
9899 self.inner.swapchain_count = slice.len() as u32;
9900 self.inner.p_image_indices = slice.as_ptr();
9901 self
9902 }
9903 #[inline]
9904 pub fn results(mut self, slice: &'a mut [Result]) -> Self {
9905 self.inner.swapchain_count = slice.len() as u32;
9906 self.inner.p_results = slice.as_mut_ptr();
9907 self
9908 }
9909 #[inline]
9911 pub fn push_next<T: ExtendsPresentInfoKHR>(mut self, next: &'a mut T) -> Self {
9912 unsafe {
9913 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9914 (*next_ptr).p_next = self.inner.p_next as *mut _;
9915 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9916 core::ffi::c_void,
9917 >(next_ptr) as *const _;
9918 }
9919 self
9920 }
9921}
9922impl<'a> core::ops::Deref for PresentInfoKHRBuilder<'a> {
9923 type Target = PresentInfoKHR;
9924 #[inline]
9925 fn deref(&self) -> &Self::Target {
9926 &self.inner
9927 }
9928}
9929impl<'a> core::ops::DerefMut for PresentInfoKHRBuilder<'a> {
9930 #[inline]
9931 fn deref_mut(&mut self) -> &mut Self::Target {
9932 &mut self.inner
9933 }
9934}
9935pub struct DebugReportCallbackCreateInfoEXTBuilder<'a> {
9937 inner: DebugReportCallbackCreateInfoEXT,
9938 _marker: core::marker::PhantomData<&'a ()>,
9939}
9940impl DebugReportCallbackCreateInfoEXT {
9941 #[inline]
9943 pub fn builder<'a>() -> DebugReportCallbackCreateInfoEXTBuilder<'a> {
9944 DebugReportCallbackCreateInfoEXTBuilder {
9945 inner: DebugReportCallbackCreateInfoEXT {
9946 s_type: StructureType::from_raw(1000011000i32),
9947 ..Default::default()
9948 },
9949 _marker: core::marker::PhantomData,
9950 }
9951 }
9952}
9953impl<'a> DebugReportCallbackCreateInfoEXTBuilder<'a> {
9954 #[inline]
9955 pub fn flags(mut self, value: DebugReportFlagsEXT) -> Self {
9956 self.inner.flags = value;
9957 self
9958 }
9959 #[inline]
9960 pub fn pfn_callback(mut self, value: PFN_vkDebugReportCallbackEXT) -> Self {
9961 self.inner.pfn_callback = value;
9962 self
9963 }
9964 #[inline]
9965 pub fn user_data(mut self, value: *mut core::ffi::c_void) -> Self {
9966 self.inner.p_user_data = value;
9967 self
9968 }
9969 #[inline]
9971 pub fn push_next<T: ExtendsDebugReportCallbackCreateInfoEXT>(
9972 mut self,
9973 next: &'a mut T,
9974 ) -> Self {
9975 unsafe {
9976 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
9977 (*next_ptr).p_next = self.inner.p_next as *mut _;
9978 self.inner.p_next = <*mut BaseOutStructure>::cast::<
9979 core::ffi::c_void,
9980 >(next_ptr) as *const _;
9981 }
9982 self
9983 }
9984}
9985impl<'a> core::ops::Deref for DebugReportCallbackCreateInfoEXTBuilder<'a> {
9986 type Target = DebugReportCallbackCreateInfoEXT;
9987 #[inline]
9988 fn deref(&self) -> &Self::Target {
9989 &self.inner
9990 }
9991}
9992impl<'a> core::ops::DerefMut for DebugReportCallbackCreateInfoEXTBuilder<'a> {
9993 #[inline]
9994 fn deref_mut(&mut self) -> &mut Self::Target {
9995 &mut self.inner
9996 }
9997}
9998pub struct ValidationFlagsEXTBuilder<'a> {
10000 inner: ValidationFlagsEXT,
10001 _marker: core::marker::PhantomData<&'a ()>,
10002}
10003impl ValidationFlagsEXT {
10004 #[inline]
10006 pub fn builder<'a>() -> ValidationFlagsEXTBuilder<'a> {
10007 ValidationFlagsEXTBuilder {
10008 inner: ValidationFlagsEXT {
10009 s_type: StructureType::from_raw(1000061000i32),
10010 ..Default::default()
10011 },
10012 _marker: core::marker::PhantomData,
10013 }
10014 }
10015}
10016impl<'a> ValidationFlagsEXTBuilder<'a> {
10017 #[inline]
10018 pub fn disabled_validation_checks(
10019 mut self,
10020 slice: &'a [ValidationCheckEXT],
10021 ) -> Self {
10022 self.inner.disabled_validation_check_count = slice.len() as u32;
10023 self.inner.p_disabled_validation_checks = slice.as_ptr();
10024 self
10025 }
10026 #[inline]
10028 pub fn push_next<T: ExtendsValidationFlagsEXT>(mut self, next: &'a mut T) -> Self {
10029 unsafe {
10030 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10031 (*next_ptr).p_next = self.inner.p_next as *mut _;
10032 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10033 core::ffi::c_void,
10034 >(next_ptr) as *const _;
10035 }
10036 self
10037 }
10038}
10039impl<'a> core::ops::Deref for ValidationFlagsEXTBuilder<'a> {
10040 type Target = ValidationFlagsEXT;
10041 #[inline]
10042 fn deref(&self) -> &Self::Target {
10043 &self.inner
10044 }
10045}
10046impl<'a> core::ops::DerefMut for ValidationFlagsEXTBuilder<'a> {
10047 #[inline]
10048 fn deref_mut(&mut self) -> &mut Self::Target {
10049 &mut self.inner
10050 }
10051}
10052pub struct ValidationFeaturesEXTBuilder<'a> {
10054 inner: ValidationFeaturesEXT,
10055 _marker: core::marker::PhantomData<&'a ()>,
10056}
10057impl ValidationFeaturesEXT {
10058 #[inline]
10060 pub fn builder<'a>() -> ValidationFeaturesEXTBuilder<'a> {
10061 ValidationFeaturesEXTBuilder {
10062 inner: ValidationFeaturesEXT {
10063 s_type: StructureType::from_raw(1000247000i32),
10064 ..Default::default()
10065 },
10066 _marker: core::marker::PhantomData,
10067 }
10068 }
10069}
10070impl<'a> ValidationFeaturesEXTBuilder<'a> {
10071 #[inline]
10072 pub fn enabled_validation_features(
10073 mut self,
10074 slice: &'a [ValidationFeatureEnableEXT],
10075 ) -> Self {
10076 self.inner.enabled_validation_feature_count = slice.len() as u32;
10077 self.inner.p_enabled_validation_features = slice.as_ptr();
10078 self
10079 }
10080 #[inline]
10081 pub fn disabled_validation_features(
10082 mut self,
10083 slice: &'a [ValidationFeatureDisableEXT],
10084 ) -> Self {
10085 self.inner.disabled_validation_feature_count = slice.len() as u32;
10086 self.inner.p_disabled_validation_features = slice.as_ptr();
10087 self
10088 }
10089 #[inline]
10091 pub fn push_next<T: ExtendsValidationFeaturesEXT>(
10092 mut self,
10093 next: &'a mut T,
10094 ) -> Self {
10095 unsafe {
10096 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10097 (*next_ptr).p_next = self.inner.p_next as *mut _;
10098 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10099 core::ffi::c_void,
10100 >(next_ptr) as *const _;
10101 }
10102 self
10103 }
10104}
10105impl<'a> core::ops::Deref for ValidationFeaturesEXTBuilder<'a> {
10106 type Target = ValidationFeaturesEXT;
10107 #[inline]
10108 fn deref(&self) -> &Self::Target {
10109 &self.inner
10110 }
10111}
10112impl<'a> core::ops::DerefMut for ValidationFeaturesEXTBuilder<'a> {
10113 #[inline]
10114 fn deref_mut(&mut self) -> &mut Self::Target {
10115 &mut self.inner
10116 }
10117}
10118pub struct LayerSettingsCreateInfoEXTBuilder<'a> {
10120 inner: LayerSettingsCreateInfoEXT,
10121 _marker: core::marker::PhantomData<&'a ()>,
10122}
10123impl LayerSettingsCreateInfoEXT {
10124 #[inline]
10126 pub fn builder<'a>() -> LayerSettingsCreateInfoEXTBuilder<'a> {
10127 LayerSettingsCreateInfoEXTBuilder {
10128 inner: LayerSettingsCreateInfoEXT {
10129 s_type: StructureType::from_raw(1000496000i32),
10130 ..Default::default()
10131 },
10132 _marker: core::marker::PhantomData,
10133 }
10134 }
10135}
10136impl<'a> LayerSettingsCreateInfoEXTBuilder<'a> {
10137 #[inline]
10138 pub fn settings(mut self, slice: &'a [LayerSettingEXT]) -> Self {
10139 self.inner.setting_count = slice.len() as u32;
10140 self.inner.p_settings = slice.as_ptr();
10141 self
10142 }
10143 #[inline]
10145 pub fn push_next<T: ExtendsLayerSettingsCreateInfoEXT>(
10146 mut self,
10147 next: &'a mut T,
10148 ) -> Self {
10149 unsafe {
10150 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10151 (*next_ptr).p_next = self.inner.p_next as *mut _;
10152 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10153 core::ffi::c_void,
10154 >(next_ptr) as *const _;
10155 }
10156 self
10157 }
10158}
10159impl<'a> core::ops::Deref for LayerSettingsCreateInfoEXTBuilder<'a> {
10160 type Target = LayerSettingsCreateInfoEXT;
10161 #[inline]
10162 fn deref(&self) -> &Self::Target {
10163 &self.inner
10164 }
10165}
10166impl<'a> core::ops::DerefMut for LayerSettingsCreateInfoEXTBuilder<'a> {
10167 #[inline]
10168 fn deref_mut(&mut self) -> &mut Self::Target {
10169 &mut self.inner
10170 }
10171}
10172pub struct LayerSettingEXTBuilder<'a> {
10174 inner: LayerSettingEXT,
10175 _marker: core::marker::PhantomData<&'a ()>,
10176}
10177impl LayerSettingEXT {
10178 #[inline]
10180 pub fn builder<'a>() -> LayerSettingEXTBuilder<'a> {
10181 LayerSettingEXTBuilder {
10182 inner: LayerSettingEXT {
10183 ..Default::default()
10184 },
10185 _marker: core::marker::PhantomData,
10186 }
10187 }
10188}
10189impl<'a> LayerSettingEXTBuilder<'a> {
10190 #[inline]
10191 pub fn layer_name(mut self, value: &'a core::ffi::CStr) -> Self {
10192 self.inner.p_layer_name = value.as_ptr();
10193 self
10194 }
10195 #[inline]
10196 pub fn setting_name(mut self, value: &'a core::ffi::CStr) -> Self {
10197 self.inner.p_setting_name = value.as_ptr();
10198 self
10199 }
10200 #[inline]
10201 pub fn r#type(mut self, value: LayerSettingTypeEXT) -> Self {
10202 self.inner.r#type = value;
10203 self
10204 }
10205 #[inline]
10206 pub fn values(mut self, slice: &'a [core::ffi::c_void]) -> Self {
10207 self.inner.value_count = slice.len() as u32;
10208 self.inner.p_values = slice.as_ptr();
10209 self
10210 }
10211}
10212impl<'a> core::ops::Deref for LayerSettingEXTBuilder<'a> {
10213 type Target = LayerSettingEXT;
10214 #[inline]
10215 fn deref(&self) -> &Self::Target {
10216 &self.inner
10217 }
10218}
10219impl<'a> core::ops::DerefMut for LayerSettingEXTBuilder<'a> {
10220 #[inline]
10221 fn deref_mut(&mut self) -> &mut Self::Target {
10222 &mut self.inner
10223 }
10224}
10225pub struct ApplicationParametersEXTBuilder<'a> {
10227 inner: ApplicationParametersEXT,
10228 _marker: core::marker::PhantomData<&'a ()>,
10229}
10230impl ApplicationParametersEXT {
10231 #[inline]
10233 pub fn builder<'a>() -> ApplicationParametersEXTBuilder<'a> {
10234 ApplicationParametersEXTBuilder {
10235 inner: ApplicationParametersEXT {
10236 s_type: Default::default(),
10237 ..Default::default()
10238 },
10239 _marker: core::marker::PhantomData,
10240 }
10241 }
10242}
10243impl<'a> ApplicationParametersEXTBuilder<'a> {
10244 #[inline]
10245 pub fn vendor_id(mut self, value: u32) -> Self {
10246 self.inner.vendor_id = value;
10247 self
10248 }
10249 #[inline]
10250 pub fn device_id(mut self, value: u32) -> Self {
10251 self.inner.device_id = value;
10252 self
10253 }
10254 #[inline]
10255 pub fn key(mut self, value: u32) -> Self {
10256 self.inner.key = value;
10257 self
10258 }
10259 #[inline]
10260 pub fn value(mut self, value: u64) -> Self {
10261 self.inner.value = value;
10262 self
10263 }
10264 #[inline]
10266 pub fn push_next<T: ExtendsApplicationParametersEXT>(
10267 mut self,
10268 next: &'a mut T,
10269 ) -> Self {
10270 unsafe {
10271 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10272 (*next_ptr).p_next = self.inner.p_next as *mut _;
10273 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10274 core::ffi::c_void,
10275 >(next_ptr) as *const _;
10276 }
10277 self
10278 }
10279}
10280impl<'a> core::ops::Deref for ApplicationParametersEXTBuilder<'a> {
10281 type Target = ApplicationParametersEXT;
10282 #[inline]
10283 fn deref(&self) -> &Self::Target {
10284 &self.inner
10285 }
10286}
10287impl<'a> core::ops::DerefMut for ApplicationParametersEXTBuilder<'a> {
10288 #[inline]
10289 fn deref_mut(&mut self) -> &mut Self::Target {
10290 &mut self.inner
10291 }
10292}
10293pub struct PipelineRasterizationStateRasterizationOrderAMDBuilder<'a> {
10295 inner: PipelineRasterizationStateRasterizationOrderAMD,
10296 _marker: core::marker::PhantomData<&'a ()>,
10297}
10298impl PipelineRasterizationStateRasterizationOrderAMD {
10299 #[inline]
10301 pub fn builder<'a>() -> PipelineRasterizationStateRasterizationOrderAMDBuilder<'a> {
10302 PipelineRasterizationStateRasterizationOrderAMDBuilder {
10303 inner: PipelineRasterizationStateRasterizationOrderAMD {
10304 s_type: StructureType::from_raw(1000018000i32),
10305 ..Default::default()
10306 },
10307 _marker: core::marker::PhantomData,
10308 }
10309 }
10310}
10311impl<'a> PipelineRasterizationStateRasterizationOrderAMDBuilder<'a> {
10312 #[inline]
10313 pub fn rasterization_order(mut self, value: RasterizationOrderAMD) -> Self {
10314 self.inner.rasterization_order = value;
10315 self
10316 }
10317 #[inline]
10319 pub fn push_next<T: ExtendsPipelineRasterizationStateRasterizationOrderAMD>(
10320 mut self,
10321 next: &'a mut T,
10322 ) -> Self {
10323 unsafe {
10324 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10325 (*next_ptr).p_next = self.inner.p_next as *mut _;
10326 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10327 core::ffi::c_void,
10328 >(next_ptr) as *const _;
10329 }
10330 self
10331 }
10332}
10333impl<'a> core::ops::Deref
10334for PipelineRasterizationStateRasterizationOrderAMDBuilder<'a> {
10335 type Target = PipelineRasterizationStateRasterizationOrderAMD;
10336 #[inline]
10337 fn deref(&self) -> &Self::Target {
10338 &self.inner
10339 }
10340}
10341impl<'a> core::ops::DerefMut
10342for PipelineRasterizationStateRasterizationOrderAMDBuilder<'a> {
10343 #[inline]
10344 fn deref_mut(&mut self) -> &mut Self::Target {
10345 &mut self.inner
10346 }
10347}
10348pub struct DebugMarkerObjectNameInfoEXTBuilder<'a> {
10350 inner: DebugMarkerObjectNameInfoEXT,
10351 _marker: core::marker::PhantomData<&'a ()>,
10352}
10353impl DebugMarkerObjectNameInfoEXT {
10354 #[inline]
10356 pub fn builder<'a>() -> DebugMarkerObjectNameInfoEXTBuilder<'a> {
10357 DebugMarkerObjectNameInfoEXTBuilder {
10358 inner: DebugMarkerObjectNameInfoEXT {
10359 s_type: StructureType::from_raw(1000022000i32),
10360 ..Default::default()
10361 },
10362 _marker: core::marker::PhantomData,
10363 }
10364 }
10365}
10366impl<'a> DebugMarkerObjectNameInfoEXTBuilder<'a> {
10367 #[inline]
10368 pub fn object_type(mut self, value: DebugReportObjectTypeEXT) -> Self {
10369 self.inner.object_type = value;
10370 self
10371 }
10372 #[inline]
10373 pub fn object(mut self, value: u64) -> Self {
10374 self.inner.object = value;
10375 self
10376 }
10377 #[inline]
10378 pub fn object_name(mut self, value: &'a core::ffi::CStr) -> Self {
10379 self.inner.p_object_name = value.as_ptr();
10380 self
10381 }
10382 #[inline]
10384 pub fn push_next<T: ExtendsDebugMarkerObjectNameInfoEXT>(
10385 mut self,
10386 next: &'a mut T,
10387 ) -> Self {
10388 unsafe {
10389 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10390 (*next_ptr).p_next = self.inner.p_next as *mut _;
10391 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10392 core::ffi::c_void,
10393 >(next_ptr) as *const _;
10394 }
10395 self
10396 }
10397}
10398impl<'a> core::ops::Deref for DebugMarkerObjectNameInfoEXTBuilder<'a> {
10399 type Target = DebugMarkerObjectNameInfoEXT;
10400 #[inline]
10401 fn deref(&self) -> &Self::Target {
10402 &self.inner
10403 }
10404}
10405impl<'a> core::ops::DerefMut for DebugMarkerObjectNameInfoEXTBuilder<'a> {
10406 #[inline]
10407 fn deref_mut(&mut self) -> &mut Self::Target {
10408 &mut self.inner
10409 }
10410}
10411pub struct DebugMarkerObjectTagInfoEXTBuilder<'a> {
10413 inner: DebugMarkerObjectTagInfoEXT,
10414 _marker: core::marker::PhantomData<&'a ()>,
10415}
10416impl DebugMarkerObjectTagInfoEXT {
10417 #[inline]
10419 pub fn builder<'a>() -> DebugMarkerObjectTagInfoEXTBuilder<'a> {
10420 DebugMarkerObjectTagInfoEXTBuilder {
10421 inner: DebugMarkerObjectTagInfoEXT {
10422 s_type: StructureType::from_raw(1000022001i32),
10423 ..Default::default()
10424 },
10425 _marker: core::marker::PhantomData,
10426 }
10427 }
10428}
10429impl<'a> DebugMarkerObjectTagInfoEXTBuilder<'a> {
10430 #[inline]
10431 pub fn object_type(mut self, value: DebugReportObjectTypeEXT) -> Self {
10432 self.inner.object_type = value;
10433 self
10434 }
10435 #[inline]
10436 pub fn object(mut self, value: u64) -> Self {
10437 self.inner.object = value;
10438 self
10439 }
10440 #[inline]
10441 pub fn tag_name(mut self, value: u64) -> Self {
10442 self.inner.tag_name = value;
10443 self
10444 }
10445 #[inline]
10446 pub fn tag(mut self, slice: &'a [core::ffi::c_void]) -> Self {
10447 self.inner.tag_size = slice.len();
10448 self.inner.p_tag = slice.as_ptr();
10449 self
10450 }
10451 #[inline]
10453 pub fn push_next<T: ExtendsDebugMarkerObjectTagInfoEXT>(
10454 mut self,
10455 next: &'a mut T,
10456 ) -> Self {
10457 unsafe {
10458 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10459 (*next_ptr).p_next = self.inner.p_next as *mut _;
10460 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10461 core::ffi::c_void,
10462 >(next_ptr) as *const _;
10463 }
10464 self
10465 }
10466}
10467impl<'a> core::ops::Deref for DebugMarkerObjectTagInfoEXTBuilder<'a> {
10468 type Target = DebugMarkerObjectTagInfoEXT;
10469 #[inline]
10470 fn deref(&self) -> &Self::Target {
10471 &self.inner
10472 }
10473}
10474impl<'a> core::ops::DerefMut for DebugMarkerObjectTagInfoEXTBuilder<'a> {
10475 #[inline]
10476 fn deref_mut(&mut self) -> &mut Self::Target {
10477 &mut self.inner
10478 }
10479}
10480pub struct DebugMarkerMarkerInfoEXTBuilder<'a> {
10482 inner: DebugMarkerMarkerInfoEXT,
10483 _marker: core::marker::PhantomData<&'a ()>,
10484}
10485impl DebugMarkerMarkerInfoEXT {
10486 #[inline]
10488 pub fn builder<'a>() -> DebugMarkerMarkerInfoEXTBuilder<'a> {
10489 DebugMarkerMarkerInfoEXTBuilder {
10490 inner: DebugMarkerMarkerInfoEXT {
10491 s_type: StructureType::from_raw(1000022002i32),
10492 ..Default::default()
10493 },
10494 _marker: core::marker::PhantomData,
10495 }
10496 }
10497}
10498impl<'a> DebugMarkerMarkerInfoEXTBuilder<'a> {
10499 #[inline]
10500 pub fn marker_name(mut self, value: &'a core::ffi::CStr) -> Self {
10501 self.inner.p_marker_name = value.as_ptr();
10502 self
10503 }
10504 #[inline]
10505 pub fn color(mut self, value: [f32; 4usize]) -> Self {
10506 self.inner.color = value;
10507 self
10508 }
10509 #[inline]
10511 pub fn push_next<T: ExtendsDebugMarkerMarkerInfoEXT>(
10512 mut self,
10513 next: &'a mut T,
10514 ) -> Self {
10515 unsafe {
10516 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10517 (*next_ptr).p_next = self.inner.p_next as *mut _;
10518 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10519 core::ffi::c_void,
10520 >(next_ptr) as *const _;
10521 }
10522 self
10523 }
10524}
10525impl<'a> core::ops::Deref for DebugMarkerMarkerInfoEXTBuilder<'a> {
10526 type Target = DebugMarkerMarkerInfoEXT;
10527 #[inline]
10528 fn deref(&self) -> &Self::Target {
10529 &self.inner
10530 }
10531}
10532impl<'a> core::ops::DerefMut for DebugMarkerMarkerInfoEXTBuilder<'a> {
10533 #[inline]
10534 fn deref_mut(&mut self) -> &mut Self::Target {
10535 &mut self.inner
10536 }
10537}
10538pub struct DedicatedAllocationImageCreateInfoNVBuilder<'a> {
10540 inner: DedicatedAllocationImageCreateInfoNV,
10541 _marker: core::marker::PhantomData<&'a ()>,
10542}
10543impl DedicatedAllocationImageCreateInfoNV {
10544 #[inline]
10546 pub fn builder<'a>() -> DedicatedAllocationImageCreateInfoNVBuilder<'a> {
10547 DedicatedAllocationImageCreateInfoNVBuilder {
10548 inner: DedicatedAllocationImageCreateInfoNV {
10549 s_type: StructureType::from_raw(1000026000i32),
10550 ..Default::default()
10551 },
10552 _marker: core::marker::PhantomData,
10553 }
10554 }
10555}
10556impl<'a> DedicatedAllocationImageCreateInfoNVBuilder<'a> {
10557 #[inline]
10558 pub fn dedicated_allocation(mut self, value: bool) -> Self {
10559 self.inner.dedicated_allocation = value as u32;
10560 self
10561 }
10562 #[inline]
10564 pub fn push_next<T: ExtendsDedicatedAllocationImageCreateInfoNV>(
10565 mut self,
10566 next: &'a mut T,
10567 ) -> Self {
10568 unsafe {
10569 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10570 (*next_ptr).p_next = self.inner.p_next as *mut _;
10571 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10572 core::ffi::c_void,
10573 >(next_ptr) as *const _;
10574 }
10575 self
10576 }
10577}
10578impl<'a> core::ops::Deref for DedicatedAllocationImageCreateInfoNVBuilder<'a> {
10579 type Target = DedicatedAllocationImageCreateInfoNV;
10580 #[inline]
10581 fn deref(&self) -> &Self::Target {
10582 &self.inner
10583 }
10584}
10585impl<'a> core::ops::DerefMut for DedicatedAllocationImageCreateInfoNVBuilder<'a> {
10586 #[inline]
10587 fn deref_mut(&mut self) -> &mut Self::Target {
10588 &mut self.inner
10589 }
10590}
10591pub struct DedicatedAllocationBufferCreateInfoNVBuilder<'a> {
10593 inner: DedicatedAllocationBufferCreateInfoNV,
10594 _marker: core::marker::PhantomData<&'a ()>,
10595}
10596impl DedicatedAllocationBufferCreateInfoNV {
10597 #[inline]
10599 pub fn builder<'a>() -> DedicatedAllocationBufferCreateInfoNVBuilder<'a> {
10600 DedicatedAllocationBufferCreateInfoNVBuilder {
10601 inner: DedicatedAllocationBufferCreateInfoNV {
10602 s_type: StructureType::from_raw(1000026001i32),
10603 ..Default::default()
10604 },
10605 _marker: core::marker::PhantomData,
10606 }
10607 }
10608}
10609impl<'a> DedicatedAllocationBufferCreateInfoNVBuilder<'a> {
10610 #[inline]
10611 pub fn dedicated_allocation(mut self, value: bool) -> Self {
10612 self.inner.dedicated_allocation = value as u32;
10613 self
10614 }
10615 #[inline]
10617 pub fn push_next<T: ExtendsDedicatedAllocationBufferCreateInfoNV>(
10618 mut self,
10619 next: &'a mut T,
10620 ) -> Self {
10621 unsafe {
10622 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10623 (*next_ptr).p_next = self.inner.p_next as *mut _;
10624 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10625 core::ffi::c_void,
10626 >(next_ptr) as *const _;
10627 }
10628 self
10629 }
10630}
10631impl<'a> core::ops::Deref for DedicatedAllocationBufferCreateInfoNVBuilder<'a> {
10632 type Target = DedicatedAllocationBufferCreateInfoNV;
10633 #[inline]
10634 fn deref(&self) -> &Self::Target {
10635 &self.inner
10636 }
10637}
10638impl<'a> core::ops::DerefMut for DedicatedAllocationBufferCreateInfoNVBuilder<'a> {
10639 #[inline]
10640 fn deref_mut(&mut self) -> &mut Self::Target {
10641 &mut self.inner
10642 }
10643}
10644pub struct DedicatedAllocationMemoryAllocateInfoNVBuilder<'a> {
10646 inner: DedicatedAllocationMemoryAllocateInfoNV,
10647 _marker: core::marker::PhantomData<&'a ()>,
10648}
10649impl DedicatedAllocationMemoryAllocateInfoNV {
10650 #[inline]
10652 pub fn builder<'a>() -> DedicatedAllocationMemoryAllocateInfoNVBuilder<'a> {
10653 DedicatedAllocationMemoryAllocateInfoNVBuilder {
10654 inner: DedicatedAllocationMemoryAllocateInfoNV {
10655 s_type: StructureType::from_raw(1000026002i32),
10656 ..Default::default()
10657 },
10658 _marker: core::marker::PhantomData,
10659 }
10660 }
10661}
10662impl<'a> DedicatedAllocationMemoryAllocateInfoNVBuilder<'a> {
10663 #[inline]
10664 pub fn image(mut self, value: Image) -> Self {
10665 self.inner.image = value;
10666 self
10667 }
10668 #[inline]
10669 pub fn buffer(mut self, value: Buffer) -> Self {
10670 self.inner.buffer = value;
10671 self
10672 }
10673 #[inline]
10675 pub fn push_next<T: ExtendsDedicatedAllocationMemoryAllocateInfoNV>(
10676 mut self,
10677 next: &'a mut T,
10678 ) -> Self {
10679 unsafe {
10680 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10681 (*next_ptr).p_next = self.inner.p_next as *mut _;
10682 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10683 core::ffi::c_void,
10684 >(next_ptr) as *const _;
10685 }
10686 self
10687 }
10688}
10689impl<'a> core::ops::Deref for DedicatedAllocationMemoryAllocateInfoNVBuilder<'a> {
10690 type Target = DedicatedAllocationMemoryAllocateInfoNV;
10691 #[inline]
10692 fn deref(&self) -> &Self::Target {
10693 &self.inner
10694 }
10695}
10696impl<'a> core::ops::DerefMut for DedicatedAllocationMemoryAllocateInfoNVBuilder<'a> {
10697 #[inline]
10698 fn deref_mut(&mut self) -> &mut Self::Target {
10699 &mut self.inner
10700 }
10701}
10702pub struct ExternalImageFormatPropertiesNVBuilder {
10704 inner: ExternalImageFormatPropertiesNV,
10705}
10706impl ExternalImageFormatPropertiesNV {
10707 #[inline]
10709 pub fn builder() -> ExternalImageFormatPropertiesNVBuilder {
10710 ExternalImageFormatPropertiesNVBuilder {
10711 inner: ExternalImageFormatPropertiesNV {
10712 ..Default::default()
10713 },
10714 }
10715 }
10716}
10717impl ExternalImageFormatPropertiesNVBuilder {
10718 #[inline]
10719 pub fn image_format_properties(mut self, value: ImageFormatProperties) -> Self {
10720 self.inner.image_format_properties = value;
10721 self
10722 }
10723 #[inline]
10724 pub fn external_memory_features(
10725 mut self,
10726 value: ExternalMemoryFeatureFlagsNV,
10727 ) -> Self {
10728 self.inner.external_memory_features = value;
10729 self
10730 }
10731 #[inline]
10732 pub fn export_from_imported_handle_types(
10733 mut self,
10734 value: ExternalMemoryHandleTypeFlagsNV,
10735 ) -> Self {
10736 self.inner.export_from_imported_handle_types = value;
10737 self
10738 }
10739 #[inline]
10740 pub fn compatible_handle_types(
10741 mut self,
10742 value: ExternalMemoryHandleTypeFlagsNV,
10743 ) -> Self {
10744 self.inner.compatible_handle_types = value;
10745 self
10746 }
10747}
10748impl core::ops::Deref for ExternalImageFormatPropertiesNVBuilder {
10749 type Target = ExternalImageFormatPropertiesNV;
10750 #[inline]
10751 fn deref(&self) -> &Self::Target {
10752 &self.inner
10753 }
10754}
10755impl core::ops::DerefMut for ExternalImageFormatPropertiesNVBuilder {
10756 #[inline]
10757 fn deref_mut(&mut self) -> &mut Self::Target {
10758 &mut self.inner
10759 }
10760}
10761pub struct ExternalMemoryImageCreateInfoNVBuilder<'a> {
10763 inner: ExternalMemoryImageCreateInfoNV,
10764 _marker: core::marker::PhantomData<&'a ()>,
10765}
10766impl ExternalMemoryImageCreateInfoNV {
10767 #[inline]
10769 pub fn builder<'a>() -> ExternalMemoryImageCreateInfoNVBuilder<'a> {
10770 ExternalMemoryImageCreateInfoNVBuilder {
10771 inner: ExternalMemoryImageCreateInfoNV {
10772 s_type: StructureType::from_raw(1000056000i32),
10773 ..Default::default()
10774 },
10775 _marker: core::marker::PhantomData,
10776 }
10777 }
10778}
10779impl<'a> ExternalMemoryImageCreateInfoNVBuilder<'a> {
10780 #[inline]
10781 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlagsNV) -> Self {
10782 self.inner.handle_types = value;
10783 self
10784 }
10785 #[inline]
10787 pub fn push_next<T: ExtendsExternalMemoryImageCreateInfoNV>(
10788 mut self,
10789 next: &'a mut T,
10790 ) -> Self {
10791 unsafe {
10792 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10793 (*next_ptr).p_next = self.inner.p_next as *mut _;
10794 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10795 core::ffi::c_void,
10796 >(next_ptr) as *const _;
10797 }
10798 self
10799 }
10800}
10801impl<'a> core::ops::Deref for ExternalMemoryImageCreateInfoNVBuilder<'a> {
10802 type Target = ExternalMemoryImageCreateInfoNV;
10803 #[inline]
10804 fn deref(&self) -> &Self::Target {
10805 &self.inner
10806 }
10807}
10808impl<'a> core::ops::DerefMut for ExternalMemoryImageCreateInfoNVBuilder<'a> {
10809 #[inline]
10810 fn deref_mut(&mut self) -> &mut Self::Target {
10811 &mut self.inner
10812 }
10813}
10814pub struct ExportMemoryAllocateInfoNVBuilder<'a> {
10816 inner: ExportMemoryAllocateInfoNV,
10817 _marker: core::marker::PhantomData<&'a ()>,
10818}
10819impl ExportMemoryAllocateInfoNV {
10820 #[inline]
10822 pub fn builder<'a>() -> ExportMemoryAllocateInfoNVBuilder<'a> {
10823 ExportMemoryAllocateInfoNVBuilder {
10824 inner: ExportMemoryAllocateInfoNV {
10825 s_type: StructureType::from_raw(1000056001i32),
10826 ..Default::default()
10827 },
10828 _marker: core::marker::PhantomData,
10829 }
10830 }
10831}
10832impl<'a> ExportMemoryAllocateInfoNVBuilder<'a> {
10833 #[inline]
10834 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlagsNV) -> Self {
10835 self.inner.handle_types = value;
10836 self
10837 }
10838 #[inline]
10840 pub fn push_next<T: ExtendsExportMemoryAllocateInfoNV>(
10841 mut self,
10842 next: &'a mut T,
10843 ) -> Self {
10844 unsafe {
10845 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10846 (*next_ptr).p_next = self.inner.p_next as *mut _;
10847 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10848 core::ffi::c_void,
10849 >(next_ptr) as *const _;
10850 }
10851 self
10852 }
10853}
10854impl<'a> core::ops::Deref for ExportMemoryAllocateInfoNVBuilder<'a> {
10855 type Target = ExportMemoryAllocateInfoNV;
10856 #[inline]
10857 fn deref(&self) -> &Self::Target {
10858 &self.inner
10859 }
10860}
10861impl<'a> core::ops::DerefMut for ExportMemoryAllocateInfoNVBuilder<'a> {
10862 #[inline]
10863 fn deref_mut(&mut self) -> &mut Self::Target {
10864 &mut self.inner
10865 }
10866}
10867pub struct ImportMemoryWin32HandleInfoNVBuilder<'a> {
10869 inner: ImportMemoryWin32HandleInfoNV,
10870 _marker: core::marker::PhantomData<&'a ()>,
10871}
10872impl ImportMemoryWin32HandleInfoNV {
10873 #[inline]
10875 pub fn builder<'a>() -> ImportMemoryWin32HandleInfoNVBuilder<'a> {
10876 ImportMemoryWin32HandleInfoNVBuilder {
10877 inner: ImportMemoryWin32HandleInfoNV {
10878 s_type: StructureType::from_raw(1000057000i32),
10879 ..Default::default()
10880 },
10881 _marker: core::marker::PhantomData,
10882 }
10883 }
10884}
10885impl<'a> ImportMemoryWin32HandleInfoNVBuilder<'a> {
10886 #[inline]
10887 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagsNV) -> Self {
10888 self.inner.handle_type = value;
10889 self
10890 }
10891 #[inline]
10892 pub fn handle(mut self, value: isize) -> Self {
10893 self.inner.handle = value;
10894 self
10895 }
10896 #[inline]
10898 pub fn push_next<T: ExtendsImportMemoryWin32HandleInfoNV>(
10899 mut self,
10900 next: &'a mut T,
10901 ) -> Self {
10902 unsafe {
10903 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10904 (*next_ptr).p_next = self.inner.p_next as *mut _;
10905 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10906 core::ffi::c_void,
10907 >(next_ptr) as *const _;
10908 }
10909 self
10910 }
10911}
10912impl<'a> core::ops::Deref for ImportMemoryWin32HandleInfoNVBuilder<'a> {
10913 type Target = ImportMemoryWin32HandleInfoNV;
10914 #[inline]
10915 fn deref(&self) -> &Self::Target {
10916 &self.inner
10917 }
10918}
10919impl<'a> core::ops::DerefMut for ImportMemoryWin32HandleInfoNVBuilder<'a> {
10920 #[inline]
10921 fn deref_mut(&mut self) -> &mut Self::Target {
10922 &mut self.inner
10923 }
10924}
10925pub struct ExportMemoryWin32HandleInfoNVBuilder<'a> {
10927 inner: ExportMemoryWin32HandleInfoNV,
10928 _marker: core::marker::PhantomData<&'a ()>,
10929}
10930impl ExportMemoryWin32HandleInfoNV {
10931 #[inline]
10933 pub fn builder<'a>() -> ExportMemoryWin32HandleInfoNVBuilder<'a> {
10934 ExportMemoryWin32HandleInfoNVBuilder {
10935 inner: ExportMemoryWin32HandleInfoNV {
10936 s_type: StructureType::from_raw(1000057001i32),
10937 ..Default::default()
10938 },
10939 _marker: core::marker::PhantomData,
10940 }
10941 }
10942}
10943impl<'a> ExportMemoryWin32HandleInfoNVBuilder<'a> {
10944 #[inline]
10945 pub fn attributes(mut self, value: *const core::ffi::c_void) -> Self {
10946 self.inner.p_attributes = value;
10947 self
10948 }
10949 #[inline]
10950 pub fn dw_access(mut self, value: u32) -> Self {
10951 self.inner.dw_access = value;
10952 self
10953 }
10954 #[inline]
10956 pub fn push_next<T: ExtendsExportMemoryWin32HandleInfoNV>(
10957 mut self,
10958 next: &'a mut T,
10959 ) -> Self {
10960 unsafe {
10961 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
10962 (*next_ptr).p_next = self.inner.p_next as *mut _;
10963 self.inner.p_next = <*mut BaseOutStructure>::cast::<
10964 core::ffi::c_void,
10965 >(next_ptr) as *const _;
10966 }
10967 self
10968 }
10969}
10970impl<'a> core::ops::Deref for ExportMemoryWin32HandleInfoNVBuilder<'a> {
10971 type Target = ExportMemoryWin32HandleInfoNV;
10972 #[inline]
10973 fn deref(&self) -> &Self::Target {
10974 &self.inner
10975 }
10976}
10977impl<'a> core::ops::DerefMut for ExportMemoryWin32HandleInfoNVBuilder<'a> {
10978 #[inline]
10979 fn deref_mut(&mut self) -> &mut Self::Target {
10980 &mut self.inner
10981 }
10982}
10983pub struct ExportMemorySciBufInfoNVBuilder<'a> {
10985 inner: ExportMemorySciBufInfoNV,
10986 _marker: core::marker::PhantomData<&'a ()>,
10987}
10988impl ExportMemorySciBufInfoNV {
10989 #[inline]
10991 pub fn builder<'a>() -> ExportMemorySciBufInfoNVBuilder<'a> {
10992 ExportMemorySciBufInfoNVBuilder {
10993 inner: ExportMemorySciBufInfoNV {
10994 s_type: Default::default(),
10995 ..Default::default()
10996 },
10997 _marker: core::marker::PhantomData,
10998 }
10999 }
11000}
11001impl<'a> ExportMemorySciBufInfoNVBuilder<'a> {
11002 #[inline]
11003 pub fn p_attributes(mut self, value: *const core::ffi::c_void) -> Self {
11004 self.inner.p_attributes = value;
11005 self
11006 }
11007 #[inline]
11009 pub fn push_next<T: ExtendsExportMemorySciBufInfoNV>(
11010 mut self,
11011 next: &'a mut T,
11012 ) -> Self {
11013 unsafe {
11014 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11015 (*next_ptr).p_next = self.inner.p_next as *mut _;
11016 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11017 core::ffi::c_void,
11018 >(next_ptr) as *const _;
11019 }
11020 self
11021 }
11022}
11023impl<'a> core::ops::Deref for ExportMemorySciBufInfoNVBuilder<'a> {
11024 type Target = ExportMemorySciBufInfoNV;
11025 #[inline]
11026 fn deref(&self) -> &Self::Target {
11027 &self.inner
11028 }
11029}
11030impl<'a> core::ops::DerefMut for ExportMemorySciBufInfoNVBuilder<'a> {
11031 #[inline]
11032 fn deref_mut(&mut self) -> &mut Self::Target {
11033 &mut self.inner
11034 }
11035}
11036pub struct ImportMemorySciBufInfoNVBuilder<'a> {
11038 inner: ImportMemorySciBufInfoNV,
11039 _marker: core::marker::PhantomData<&'a ()>,
11040}
11041impl ImportMemorySciBufInfoNV {
11042 #[inline]
11044 pub fn builder<'a>() -> ImportMemorySciBufInfoNVBuilder<'a> {
11045 ImportMemorySciBufInfoNVBuilder {
11046 inner: ImportMemorySciBufInfoNV {
11047 s_type: Default::default(),
11048 ..Default::default()
11049 },
11050 _marker: core::marker::PhantomData,
11051 }
11052 }
11053}
11054impl<'a> ImportMemorySciBufInfoNVBuilder<'a> {
11055 #[inline]
11056 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
11057 self.inner.handle_type = value;
11058 self
11059 }
11060 #[inline]
11061 pub fn handle(mut self, value: *const core::ffi::c_void) -> Self {
11062 self.inner.handle = value;
11063 self
11064 }
11065 #[inline]
11067 pub fn push_next<T: ExtendsImportMemorySciBufInfoNV>(
11068 mut self,
11069 next: &'a mut T,
11070 ) -> Self {
11071 unsafe {
11072 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11073 (*next_ptr).p_next = self.inner.p_next as *mut _;
11074 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11075 core::ffi::c_void,
11076 >(next_ptr) as *const _;
11077 }
11078 self
11079 }
11080}
11081impl<'a> core::ops::Deref for ImportMemorySciBufInfoNVBuilder<'a> {
11082 type Target = ImportMemorySciBufInfoNV;
11083 #[inline]
11084 fn deref(&self) -> &Self::Target {
11085 &self.inner
11086 }
11087}
11088impl<'a> core::ops::DerefMut for ImportMemorySciBufInfoNVBuilder<'a> {
11089 #[inline]
11090 fn deref_mut(&mut self) -> &mut Self::Target {
11091 &mut self.inner
11092 }
11093}
11094pub struct MemoryGetSciBufInfoNVBuilder<'a> {
11096 inner: MemoryGetSciBufInfoNV,
11097 _marker: core::marker::PhantomData<&'a ()>,
11098}
11099impl MemoryGetSciBufInfoNV {
11100 #[inline]
11102 pub fn builder<'a>() -> MemoryGetSciBufInfoNVBuilder<'a> {
11103 MemoryGetSciBufInfoNVBuilder {
11104 inner: MemoryGetSciBufInfoNV {
11105 s_type: Default::default(),
11106 ..Default::default()
11107 },
11108 _marker: core::marker::PhantomData,
11109 }
11110 }
11111}
11112impl<'a> MemoryGetSciBufInfoNVBuilder<'a> {
11113 #[inline]
11114 pub fn memory(mut self, value: DeviceMemory) -> Self {
11115 self.inner.memory = value;
11116 self
11117 }
11118 #[inline]
11119 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
11120 self.inner.handle_type = value;
11121 self
11122 }
11123 #[inline]
11125 pub fn push_next<T: ExtendsMemoryGetSciBufInfoNV>(
11126 mut self,
11127 next: &'a mut T,
11128 ) -> Self {
11129 unsafe {
11130 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11131 (*next_ptr).p_next = self.inner.p_next as *mut _;
11132 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11133 core::ffi::c_void,
11134 >(next_ptr) as *const _;
11135 }
11136 self
11137 }
11138}
11139impl<'a> core::ops::Deref for MemoryGetSciBufInfoNVBuilder<'a> {
11140 type Target = MemoryGetSciBufInfoNV;
11141 #[inline]
11142 fn deref(&self) -> &Self::Target {
11143 &self.inner
11144 }
11145}
11146impl<'a> core::ops::DerefMut for MemoryGetSciBufInfoNVBuilder<'a> {
11147 #[inline]
11148 fn deref_mut(&mut self) -> &mut Self::Target {
11149 &mut self.inner
11150 }
11151}
11152pub struct MemorySciBufPropertiesNVBuilder<'a> {
11154 inner: MemorySciBufPropertiesNV,
11155 _marker: core::marker::PhantomData<&'a ()>,
11156}
11157impl MemorySciBufPropertiesNV {
11158 #[inline]
11160 pub fn builder<'a>() -> MemorySciBufPropertiesNVBuilder<'a> {
11161 MemorySciBufPropertiesNVBuilder {
11162 inner: MemorySciBufPropertiesNV {
11163 s_type: Default::default(),
11164 ..Default::default()
11165 },
11166 _marker: core::marker::PhantomData,
11167 }
11168 }
11169}
11170impl<'a> MemorySciBufPropertiesNVBuilder<'a> {
11171 #[inline]
11172 pub fn memory_type_bits(mut self, value: u32) -> Self {
11173 self.inner.memory_type_bits = value;
11174 self
11175 }
11176 #[inline]
11178 pub fn push_next<T: ExtendsMemorySciBufPropertiesNV>(
11179 mut self,
11180 next: &'a mut T,
11181 ) -> Self {
11182 unsafe {
11183 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11184 (*next_ptr).p_next = self.inner.p_next as *mut _;
11185 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11186 core::ffi::c_void,
11187 >(next_ptr) as *const _;
11188 }
11189 self
11190 }
11191}
11192impl<'a> core::ops::Deref for MemorySciBufPropertiesNVBuilder<'a> {
11193 type Target = MemorySciBufPropertiesNV;
11194 #[inline]
11195 fn deref(&self) -> &Self::Target {
11196 &self.inner
11197 }
11198}
11199impl<'a> core::ops::DerefMut for MemorySciBufPropertiesNVBuilder<'a> {
11200 #[inline]
11201 fn deref_mut(&mut self) -> &mut Self::Target {
11202 &mut self.inner
11203 }
11204}
11205pub struct PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder<'a> {
11207 inner: PhysicalDeviceExternalMemorySciBufFeaturesNV,
11208 _marker: core::marker::PhantomData<&'a ()>,
11209}
11210impl PhysicalDeviceExternalMemorySciBufFeaturesNV {
11211 #[inline]
11213 pub fn builder<'a>() -> PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder<'a> {
11214 PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder {
11215 inner: PhysicalDeviceExternalMemorySciBufFeaturesNV {
11216 s_type: Default::default(),
11217 ..Default::default()
11218 },
11219 _marker: core::marker::PhantomData,
11220 }
11221 }
11222}
11223impl<'a> PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder<'a> {
11224 #[inline]
11225 pub fn sci_buf_import(mut self, value: bool) -> Self {
11226 self.inner.sci_buf_import = value as u32;
11227 self
11228 }
11229 #[inline]
11230 pub fn sci_buf_export(mut self, value: bool) -> Self {
11231 self.inner.sci_buf_export = value as u32;
11232 self
11233 }
11234 #[inline]
11236 pub fn push_next<T: ExtendsPhysicalDeviceExternalMemorySciBufFeaturesNV>(
11237 mut self,
11238 next: &'a mut T,
11239 ) -> Self {
11240 unsafe {
11241 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11242 (*next_ptr).p_next = self.inner.p_next as *mut _;
11243 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11244 core::ffi::c_void,
11245 >(next_ptr);
11246 }
11247 self
11248 }
11249}
11250impl<'a> core::ops::Deref for PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder<'a> {
11251 type Target = PhysicalDeviceExternalMemorySciBufFeaturesNV;
11252 #[inline]
11253 fn deref(&self) -> &Self::Target {
11254 &self.inner
11255 }
11256}
11257impl<'a> core::ops::DerefMut
11258for PhysicalDeviceExternalMemorySciBufFeaturesNVBuilder<'a> {
11259 #[inline]
11260 fn deref_mut(&mut self) -> &mut Self::Target {
11261 &mut self.inner
11262 }
11263}
11264pub struct Win32KeyedMutexAcquireReleaseInfoNVBuilder<'a> {
11266 inner: Win32KeyedMutexAcquireReleaseInfoNV,
11267 _marker: core::marker::PhantomData<&'a ()>,
11268}
11269impl Win32KeyedMutexAcquireReleaseInfoNV {
11270 #[inline]
11272 pub fn builder<'a>() -> Win32KeyedMutexAcquireReleaseInfoNVBuilder<'a> {
11273 Win32KeyedMutexAcquireReleaseInfoNVBuilder {
11274 inner: Win32KeyedMutexAcquireReleaseInfoNV {
11275 s_type: StructureType::from_raw(1000058000i32),
11276 ..Default::default()
11277 },
11278 _marker: core::marker::PhantomData,
11279 }
11280 }
11281}
11282impl<'a> Win32KeyedMutexAcquireReleaseInfoNVBuilder<'a> {
11283 #[inline]
11284 pub fn acquire_syncs(mut self, slice: &'a [DeviceMemory]) -> Self {
11285 self.inner.acquire_count = slice.len() as u32;
11286 self.inner.p_acquire_syncs = slice.as_ptr();
11287 self
11288 }
11289 #[inline]
11290 pub fn acquire_keys(mut self, slice: &'a [u64]) -> Self {
11291 self.inner.acquire_count = slice.len() as u32;
11292 self.inner.p_acquire_keys = slice.as_ptr();
11293 self
11294 }
11295 #[inline]
11296 pub fn acquire_timeout_milliseconds(mut self, slice: &'a [u32]) -> Self {
11297 self.inner.acquire_count = slice.len() as u32;
11298 self.inner.p_acquire_timeout_milliseconds = slice.as_ptr();
11299 self
11300 }
11301 #[inline]
11302 pub fn release_syncs(mut self, slice: &'a [DeviceMemory]) -> Self {
11303 self.inner.release_count = slice.len() as u32;
11304 self.inner.p_release_syncs = slice.as_ptr();
11305 self
11306 }
11307 #[inline]
11308 pub fn release_keys(mut self, slice: &'a [u64]) -> Self {
11309 self.inner.release_count = slice.len() as u32;
11310 self.inner.p_release_keys = slice.as_ptr();
11311 self
11312 }
11313 #[inline]
11315 pub fn push_next<T: ExtendsWin32KeyedMutexAcquireReleaseInfoNV>(
11316 mut self,
11317 next: &'a mut T,
11318 ) -> Self {
11319 unsafe {
11320 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11321 (*next_ptr).p_next = self.inner.p_next as *mut _;
11322 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11323 core::ffi::c_void,
11324 >(next_ptr) as *const _;
11325 }
11326 self
11327 }
11328}
11329impl<'a> core::ops::Deref for Win32KeyedMutexAcquireReleaseInfoNVBuilder<'a> {
11330 type Target = Win32KeyedMutexAcquireReleaseInfoNV;
11331 #[inline]
11332 fn deref(&self) -> &Self::Target {
11333 &self.inner
11334 }
11335}
11336impl<'a> core::ops::DerefMut for Win32KeyedMutexAcquireReleaseInfoNVBuilder<'a> {
11337 #[inline]
11338 fn deref_mut(&mut self) -> &mut Self::Target {
11339 &mut self.inner
11340 }
11341}
11342pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder<'a> {
11344 inner: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV,
11345 _marker: core::marker::PhantomData<&'a ()>,
11346}
11347impl PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
11348 #[inline]
11350 pub fn builder<'a>() -> PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder<'a> {
11351 PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder {
11352 inner: PhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
11353 s_type: StructureType::from_raw(1000277007i32),
11354 ..Default::default()
11355 },
11356 _marker: core::marker::PhantomData,
11357 }
11358 }
11359}
11360impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder<'a> {
11361 #[inline]
11362 pub fn device_generated_commands(mut self, value: bool) -> Self {
11363 self.inner.device_generated_commands = value as u32;
11364 self
11365 }
11366 #[inline]
11368 pub fn push_next<T: ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesNV>(
11369 mut self,
11370 next: &'a mut T,
11371 ) -> Self {
11372 unsafe {
11373 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11374 (*next_ptr).p_next = self.inner.p_next as *mut _;
11375 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11376 core::ffi::c_void,
11377 >(next_ptr);
11378 }
11379 self
11380 }
11381}
11382impl<'a> core::ops::Deref
11383for PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder<'a> {
11384 type Target = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
11385 #[inline]
11386 fn deref(&self) -> &Self::Target {
11387 &self.inner
11388 }
11389}
11390impl<'a> core::ops::DerefMut
11391for PhysicalDeviceDeviceGeneratedCommandsFeaturesNVBuilder<'a> {
11392 #[inline]
11393 fn deref_mut(&mut self) -> &mut Self::Target {
11394 &mut self.inner
11395 }
11396}
11397pub struct PushConstantBankInfoNVBuilder<'a> {
11399 inner: PushConstantBankInfoNV,
11400 _marker: core::marker::PhantomData<&'a ()>,
11401}
11402impl PushConstantBankInfoNV {
11403 #[inline]
11405 pub fn builder<'a>() -> PushConstantBankInfoNVBuilder<'a> {
11406 PushConstantBankInfoNVBuilder {
11407 inner: PushConstantBankInfoNV {
11408 s_type: StructureType::from_raw(1000580000i32),
11409 ..Default::default()
11410 },
11411 _marker: core::marker::PhantomData,
11412 }
11413 }
11414}
11415impl<'a> PushConstantBankInfoNVBuilder<'a> {
11416 #[inline]
11417 pub fn bank(mut self, value: u32) -> Self {
11418 self.inner.bank = value;
11419 self
11420 }
11421 #[inline]
11423 pub fn push_next<T: ExtendsPushConstantBankInfoNV>(
11424 mut self,
11425 next: &'a mut T,
11426 ) -> Self {
11427 unsafe {
11428 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11429 (*next_ptr).p_next = self.inner.p_next as *mut _;
11430 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11431 core::ffi::c_void,
11432 >(next_ptr) as *const _;
11433 }
11434 self
11435 }
11436}
11437impl<'a> core::ops::Deref for PushConstantBankInfoNVBuilder<'a> {
11438 type Target = PushConstantBankInfoNV;
11439 #[inline]
11440 fn deref(&self) -> &Self::Target {
11441 &self.inner
11442 }
11443}
11444impl<'a> core::ops::DerefMut for PushConstantBankInfoNVBuilder<'a> {
11445 #[inline]
11446 fn deref_mut(&mut self) -> &mut Self::Target {
11447 &mut self.inner
11448 }
11449}
11450pub struct PhysicalDevicePushConstantBankFeaturesNVBuilder<'a> {
11452 inner: PhysicalDevicePushConstantBankFeaturesNV,
11453 _marker: core::marker::PhantomData<&'a ()>,
11454}
11455impl PhysicalDevicePushConstantBankFeaturesNV {
11456 #[inline]
11458 pub fn builder<'a>() -> PhysicalDevicePushConstantBankFeaturesNVBuilder<'a> {
11459 PhysicalDevicePushConstantBankFeaturesNVBuilder {
11460 inner: PhysicalDevicePushConstantBankFeaturesNV {
11461 s_type: StructureType::from_raw(1000580001i32),
11462 ..Default::default()
11463 },
11464 _marker: core::marker::PhantomData,
11465 }
11466 }
11467}
11468impl<'a> PhysicalDevicePushConstantBankFeaturesNVBuilder<'a> {
11469 #[inline]
11470 pub fn push_constant_bank(mut self, value: bool) -> Self {
11471 self.inner.push_constant_bank = value as u32;
11472 self
11473 }
11474 #[inline]
11476 pub fn push_next<T: ExtendsPhysicalDevicePushConstantBankFeaturesNV>(
11477 mut self,
11478 next: &'a mut T,
11479 ) -> Self {
11480 unsafe {
11481 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11482 (*next_ptr).p_next = self.inner.p_next as *mut _;
11483 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11484 core::ffi::c_void,
11485 >(next_ptr);
11486 }
11487 self
11488 }
11489}
11490impl<'a> core::ops::Deref for PhysicalDevicePushConstantBankFeaturesNVBuilder<'a> {
11491 type Target = PhysicalDevicePushConstantBankFeaturesNV;
11492 #[inline]
11493 fn deref(&self) -> &Self::Target {
11494 &self.inner
11495 }
11496}
11497impl<'a> core::ops::DerefMut for PhysicalDevicePushConstantBankFeaturesNVBuilder<'a> {
11498 #[inline]
11499 fn deref_mut(&mut self) -> &mut Self::Target {
11500 &mut self.inner
11501 }
11502}
11503pub struct PhysicalDevicePushConstantBankPropertiesNVBuilder<'a> {
11505 inner: PhysicalDevicePushConstantBankPropertiesNV,
11506 _marker: core::marker::PhantomData<&'a ()>,
11507}
11508impl PhysicalDevicePushConstantBankPropertiesNV {
11509 #[inline]
11511 pub fn builder<'a>() -> PhysicalDevicePushConstantBankPropertiesNVBuilder<'a> {
11512 PhysicalDevicePushConstantBankPropertiesNVBuilder {
11513 inner: PhysicalDevicePushConstantBankPropertiesNV {
11514 s_type: StructureType::from_raw(1000580002i32),
11515 ..Default::default()
11516 },
11517 _marker: core::marker::PhantomData,
11518 }
11519 }
11520}
11521impl<'a> PhysicalDevicePushConstantBankPropertiesNVBuilder<'a> {
11522 #[inline]
11523 pub fn max_graphics_push_constant_banks(mut self, value: u32) -> Self {
11524 self.inner.max_graphics_push_constant_banks = value;
11525 self
11526 }
11527 #[inline]
11528 pub fn max_compute_push_constant_banks(mut self, value: u32) -> Self {
11529 self.inner.max_compute_push_constant_banks = value;
11530 self
11531 }
11532 #[inline]
11533 pub fn max_graphics_push_data_banks(mut self, value: u32) -> Self {
11534 self.inner.max_graphics_push_data_banks = value;
11535 self
11536 }
11537 #[inline]
11538 pub fn max_compute_push_data_banks(mut self, value: u32) -> Self {
11539 self.inner.max_compute_push_data_banks = value;
11540 self
11541 }
11542}
11543impl<'a> core::ops::Deref for PhysicalDevicePushConstantBankPropertiesNVBuilder<'a> {
11544 type Target = PhysicalDevicePushConstantBankPropertiesNV;
11545 #[inline]
11546 fn deref(&self) -> &Self::Target {
11547 &self.inner
11548 }
11549}
11550impl<'a> core::ops::DerefMut for PhysicalDevicePushConstantBankPropertiesNVBuilder<'a> {
11551 #[inline]
11552 fn deref_mut(&mut self) -> &mut Self::Target {
11553 &mut self.inner
11554 }
11555}
11556pub struct PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder<'a> {
11558 inner: PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV,
11559 _marker: core::marker::PhantomData<&'a ()>,
11560}
11561impl PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
11562 #[inline]
11564 pub fn builder<'a>() -> PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder<
11565 'a,
11566 > {
11567 PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder {
11568 inner: PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
11569 s_type: StructureType::from_raw(1000428000i32),
11570 ..Default::default()
11571 },
11572 _marker: core::marker::PhantomData,
11573 }
11574 }
11575}
11576impl<'a> PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder<'a> {
11577 #[inline]
11578 pub fn device_generated_compute(mut self, value: bool) -> Self {
11579 self.inner.device_generated_compute = value as u32;
11580 self
11581 }
11582 #[inline]
11583 pub fn device_generated_compute_pipelines(mut self, value: bool) -> Self {
11584 self.inner.device_generated_compute_pipelines = value as u32;
11585 self
11586 }
11587 #[inline]
11588 pub fn device_generated_compute_capture_replay(mut self, value: bool) -> Self {
11589 self.inner.device_generated_compute_capture_replay = value as u32;
11590 self
11591 }
11592 #[inline]
11594 pub fn push_next<T: ExtendsPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>(
11595 mut self,
11596 next: &'a mut T,
11597 ) -> Self {
11598 unsafe {
11599 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11600 (*next_ptr).p_next = self.inner.p_next as *mut _;
11601 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11602 core::ffi::c_void,
11603 >(next_ptr);
11604 }
11605 self
11606 }
11607}
11608impl<'a> core::ops::Deref
11609for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder<'a> {
11610 type Target = PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
11611 #[inline]
11612 fn deref(&self) -> &Self::Target {
11613 &self.inner
11614 }
11615}
11616impl<'a> core::ops::DerefMut
11617for PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNVBuilder<'a> {
11618 #[inline]
11619 fn deref_mut(&mut self) -> &mut Self::Target {
11620 &mut self.inner
11621 }
11622}
11623pub struct DevicePrivateDataCreateInfoBuilder<'a> {
11625 inner: DevicePrivateDataCreateInfo,
11626 _marker: core::marker::PhantomData<&'a ()>,
11627}
11628impl DevicePrivateDataCreateInfo {
11629 #[inline]
11631 pub fn builder<'a>() -> DevicePrivateDataCreateInfoBuilder<'a> {
11632 DevicePrivateDataCreateInfoBuilder {
11633 inner: DevicePrivateDataCreateInfo {
11634 s_type: StructureType::from_raw(1000295001i32),
11635 ..Default::default()
11636 },
11637 _marker: core::marker::PhantomData,
11638 }
11639 }
11640}
11641impl<'a> DevicePrivateDataCreateInfoBuilder<'a> {
11642 #[inline]
11643 pub fn private_data_slot_request_count(mut self, value: u32) -> Self {
11644 self.inner.private_data_slot_request_count = value;
11645 self
11646 }
11647 #[inline]
11649 pub fn push_next<T: ExtendsDevicePrivateDataCreateInfo>(
11650 mut self,
11651 next: &'a mut T,
11652 ) -> Self {
11653 unsafe {
11654 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11655 (*next_ptr).p_next = self.inner.p_next as *mut _;
11656 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11657 core::ffi::c_void,
11658 >(next_ptr) as *const _;
11659 }
11660 self
11661 }
11662}
11663impl<'a> core::ops::Deref for DevicePrivateDataCreateInfoBuilder<'a> {
11664 type Target = DevicePrivateDataCreateInfo;
11665 #[inline]
11666 fn deref(&self) -> &Self::Target {
11667 &self.inner
11668 }
11669}
11670impl<'a> core::ops::DerefMut for DevicePrivateDataCreateInfoBuilder<'a> {
11671 #[inline]
11672 fn deref_mut(&mut self) -> &mut Self::Target {
11673 &mut self.inner
11674 }
11675}
11676pub struct PrivateDataSlotCreateInfoBuilder<'a> {
11678 inner: PrivateDataSlotCreateInfo,
11679 _marker: core::marker::PhantomData<&'a ()>,
11680}
11681impl PrivateDataSlotCreateInfo {
11682 #[inline]
11684 pub fn builder<'a>() -> PrivateDataSlotCreateInfoBuilder<'a> {
11685 PrivateDataSlotCreateInfoBuilder {
11686 inner: PrivateDataSlotCreateInfo {
11687 s_type: StructureType::from_raw(1000295002i32),
11688 ..Default::default()
11689 },
11690 _marker: core::marker::PhantomData,
11691 }
11692 }
11693}
11694impl<'a> PrivateDataSlotCreateInfoBuilder<'a> {
11695 #[inline]
11696 pub fn flags(mut self, value: PrivateDataSlotCreateFlags) -> Self {
11697 self.inner.flags = value;
11698 self
11699 }
11700 #[inline]
11702 pub fn push_next<T: ExtendsPrivateDataSlotCreateInfo>(
11703 mut self,
11704 next: &'a mut T,
11705 ) -> Self {
11706 unsafe {
11707 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11708 (*next_ptr).p_next = self.inner.p_next as *mut _;
11709 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11710 core::ffi::c_void,
11711 >(next_ptr) as *const _;
11712 }
11713 self
11714 }
11715}
11716impl<'a> core::ops::Deref for PrivateDataSlotCreateInfoBuilder<'a> {
11717 type Target = PrivateDataSlotCreateInfo;
11718 #[inline]
11719 fn deref(&self) -> &Self::Target {
11720 &self.inner
11721 }
11722}
11723impl<'a> core::ops::DerefMut for PrivateDataSlotCreateInfoBuilder<'a> {
11724 #[inline]
11725 fn deref_mut(&mut self) -> &mut Self::Target {
11726 &mut self.inner
11727 }
11728}
11729pub struct PhysicalDevicePrivateDataFeaturesBuilder<'a> {
11731 inner: PhysicalDevicePrivateDataFeatures,
11732 _marker: core::marker::PhantomData<&'a ()>,
11733}
11734impl PhysicalDevicePrivateDataFeatures {
11735 #[inline]
11737 pub fn builder<'a>() -> PhysicalDevicePrivateDataFeaturesBuilder<'a> {
11738 PhysicalDevicePrivateDataFeaturesBuilder {
11739 inner: PhysicalDevicePrivateDataFeatures {
11740 s_type: StructureType::from_raw(1000295000i32),
11741 ..Default::default()
11742 },
11743 _marker: core::marker::PhantomData,
11744 }
11745 }
11746}
11747impl<'a> PhysicalDevicePrivateDataFeaturesBuilder<'a> {
11748 #[inline]
11749 pub fn private_data(mut self, value: bool) -> Self {
11750 self.inner.private_data = value as u32;
11751 self
11752 }
11753 #[inline]
11755 pub fn push_next<T: ExtendsPhysicalDevicePrivateDataFeatures>(
11756 mut self,
11757 next: &'a mut T,
11758 ) -> Self {
11759 unsafe {
11760 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11761 (*next_ptr).p_next = self.inner.p_next as *mut _;
11762 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11763 core::ffi::c_void,
11764 >(next_ptr);
11765 }
11766 self
11767 }
11768}
11769impl<'a> core::ops::Deref for PhysicalDevicePrivateDataFeaturesBuilder<'a> {
11770 type Target = PhysicalDevicePrivateDataFeatures;
11771 #[inline]
11772 fn deref(&self) -> &Self::Target {
11773 &self.inner
11774 }
11775}
11776impl<'a> core::ops::DerefMut for PhysicalDevicePrivateDataFeaturesBuilder<'a> {
11777 #[inline]
11778 fn deref_mut(&mut self) -> &mut Self::Target {
11779 &mut self.inner
11780 }
11781}
11782pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder<'a> {
11784 inner: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV,
11785 _marker: core::marker::PhantomData<&'a ()>,
11786}
11787impl PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
11788 #[inline]
11790 pub fn builder<'a>() -> PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder<
11791 'a,
11792 > {
11793 PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder {
11794 inner: PhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
11795 s_type: StructureType::from_raw(1000277000i32),
11796 ..Default::default()
11797 },
11798 _marker: core::marker::PhantomData,
11799 }
11800 }
11801}
11802impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder<'a> {
11803 #[inline]
11804 pub fn max_graphics_shader_group_count(mut self, value: u32) -> Self {
11805 self.inner.max_graphics_shader_group_count = value;
11806 self
11807 }
11808 #[inline]
11809 pub fn max_indirect_sequence_count(mut self, value: u32) -> Self {
11810 self.inner.max_indirect_sequence_count = value;
11811 self
11812 }
11813 #[inline]
11814 pub fn max_indirect_commands_token_count(mut self, value: u32) -> Self {
11815 self.inner.max_indirect_commands_token_count = value;
11816 self
11817 }
11818 #[inline]
11819 pub fn max_indirect_commands_stream_count(mut self, value: u32) -> Self {
11820 self.inner.max_indirect_commands_stream_count = value;
11821 self
11822 }
11823 #[inline]
11824 pub fn max_indirect_commands_token_offset(mut self, value: u32) -> Self {
11825 self.inner.max_indirect_commands_token_offset = value;
11826 self
11827 }
11828 #[inline]
11829 pub fn max_indirect_commands_stream_stride(mut self, value: u32) -> Self {
11830 self.inner.max_indirect_commands_stream_stride = value;
11831 self
11832 }
11833 #[inline]
11834 pub fn min_sequences_count_buffer_offset_alignment(mut self, value: u32) -> Self {
11835 self.inner.min_sequences_count_buffer_offset_alignment = value;
11836 self
11837 }
11838 #[inline]
11839 pub fn min_sequences_index_buffer_offset_alignment(mut self, value: u32) -> Self {
11840 self.inner.min_sequences_index_buffer_offset_alignment = value;
11841 self
11842 }
11843 #[inline]
11844 pub fn min_indirect_commands_buffer_offset_alignment(mut self, value: u32) -> Self {
11845 self.inner.min_indirect_commands_buffer_offset_alignment = value;
11846 self
11847 }
11848}
11849impl<'a> core::ops::Deref
11850for PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder<'a> {
11851 type Target = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
11852 #[inline]
11853 fn deref(&self) -> &Self::Target {
11854 &self.inner
11855 }
11856}
11857impl<'a> core::ops::DerefMut
11858for PhysicalDeviceDeviceGeneratedCommandsPropertiesNVBuilder<'a> {
11859 #[inline]
11860 fn deref_mut(&mut self) -> &mut Self::Target {
11861 &mut self.inner
11862 }
11863}
11864pub struct PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder<'a> {
11866 inner: PhysicalDeviceClusterAccelerationStructureFeaturesNV,
11867 _marker: core::marker::PhantomData<&'a ()>,
11868}
11869impl PhysicalDeviceClusterAccelerationStructureFeaturesNV {
11870 #[inline]
11872 pub fn builder<'a>() -> PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder<
11873 'a,
11874 > {
11875 PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder {
11876 inner: PhysicalDeviceClusterAccelerationStructureFeaturesNV {
11877 s_type: StructureType::from_raw(1000569000i32),
11878 ..Default::default()
11879 },
11880 _marker: core::marker::PhantomData,
11881 }
11882 }
11883}
11884impl<'a> PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder<'a> {
11885 #[inline]
11886 pub fn cluster_acceleration_structure(mut self, value: bool) -> Self {
11887 self.inner.cluster_acceleration_structure = value as u32;
11888 self
11889 }
11890 #[inline]
11892 pub fn push_next<T: ExtendsPhysicalDeviceClusterAccelerationStructureFeaturesNV>(
11893 mut self,
11894 next: &'a mut T,
11895 ) -> Self {
11896 unsafe {
11897 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
11898 (*next_ptr).p_next = self.inner.p_next as *mut _;
11899 self.inner.p_next = <*mut BaseOutStructure>::cast::<
11900 core::ffi::c_void,
11901 >(next_ptr);
11902 }
11903 self
11904 }
11905}
11906impl<'a> core::ops::Deref
11907for PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder<'a> {
11908 type Target = PhysicalDeviceClusterAccelerationStructureFeaturesNV;
11909 #[inline]
11910 fn deref(&self) -> &Self::Target {
11911 &self.inner
11912 }
11913}
11914impl<'a> core::ops::DerefMut
11915for PhysicalDeviceClusterAccelerationStructureFeaturesNVBuilder<'a> {
11916 #[inline]
11917 fn deref_mut(&mut self) -> &mut Self::Target {
11918 &mut self.inner
11919 }
11920}
11921pub struct PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder<'a> {
11923 inner: PhysicalDeviceClusterAccelerationStructurePropertiesNV,
11924 _marker: core::marker::PhantomData<&'a ()>,
11925}
11926impl PhysicalDeviceClusterAccelerationStructurePropertiesNV {
11927 #[inline]
11929 pub fn builder<'a>() -> PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder<
11930 'a,
11931 > {
11932 PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder {
11933 inner: PhysicalDeviceClusterAccelerationStructurePropertiesNV {
11934 s_type: StructureType::from_raw(1000569001i32),
11935 ..Default::default()
11936 },
11937 _marker: core::marker::PhantomData,
11938 }
11939 }
11940}
11941impl<'a> PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder<'a> {
11942 #[inline]
11943 pub fn max_vertices_per_cluster(mut self, value: u32) -> Self {
11944 self.inner.max_vertices_per_cluster = value;
11945 self
11946 }
11947 #[inline]
11948 pub fn max_triangles_per_cluster(mut self, value: u32) -> Self {
11949 self.inner.max_triangles_per_cluster = value;
11950 self
11951 }
11952 #[inline]
11953 pub fn cluster_scratch_byte_alignment(mut self, value: u32) -> Self {
11954 self.inner.cluster_scratch_byte_alignment = value;
11955 self
11956 }
11957 #[inline]
11958 pub fn cluster_byte_alignment(mut self, value: u32) -> Self {
11959 self.inner.cluster_byte_alignment = value;
11960 self
11961 }
11962 #[inline]
11963 pub fn cluster_template_byte_alignment(mut self, value: u32) -> Self {
11964 self.inner.cluster_template_byte_alignment = value;
11965 self
11966 }
11967 #[inline]
11968 pub fn cluster_bottom_level_byte_alignment(mut self, value: u32) -> Self {
11969 self.inner.cluster_bottom_level_byte_alignment = value;
11970 self
11971 }
11972 #[inline]
11973 pub fn cluster_template_bounds_byte_alignment(mut self, value: u32) -> Self {
11974 self.inner.cluster_template_bounds_byte_alignment = value;
11975 self
11976 }
11977 #[inline]
11978 pub fn max_cluster_geometry_index(mut self, value: u32) -> Self {
11979 self.inner.max_cluster_geometry_index = value;
11980 self
11981 }
11982}
11983impl<'a> core::ops::Deref
11984for PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder<'a> {
11985 type Target = PhysicalDeviceClusterAccelerationStructurePropertiesNV;
11986 #[inline]
11987 fn deref(&self) -> &Self::Target {
11988 &self.inner
11989 }
11990}
11991impl<'a> core::ops::DerefMut
11992for PhysicalDeviceClusterAccelerationStructurePropertiesNVBuilder<'a> {
11993 #[inline]
11994 fn deref_mut(&mut self) -> &mut Self::Target {
11995 &mut self.inner
11996 }
11997}
11998pub struct StridedDeviceAddressNVBuilder {
12000 inner: StridedDeviceAddressNV,
12001}
12002impl StridedDeviceAddressNV {
12003 #[inline]
12005 pub fn builder() -> StridedDeviceAddressNVBuilder {
12006 StridedDeviceAddressNVBuilder {
12007 inner: StridedDeviceAddressNV {
12008 ..Default::default()
12009 },
12010 }
12011 }
12012}
12013impl StridedDeviceAddressNVBuilder {
12014 #[inline]
12015 pub fn start_address(mut self, value: u64) -> Self {
12016 self.inner.start_address = value;
12017 self
12018 }
12019 #[inline]
12020 pub fn stride_in_bytes(mut self, value: u64) -> Self {
12021 self.inner.stride_in_bytes = value;
12022 self
12023 }
12024}
12025impl core::ops::Deref for StridedDeviceAddressNVBuilder {
12026 type Target = StridedDeviceAddressNV;
12027 #[inline]
12028 fn deref(&self) -> &Self::Target {
12029 &self.inner
12030 }
12031}
12032impl core::ops::DerefMut for StridedDeviceAddressNVBuilder {
12033 #[inline]
12034 fn deref_mut(&mut self) -> &mut Self::Target {
12035 &mut self.inner
12036 }
12037}
12038pub struct RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder<'a> {
12040 inner: RayTracingPipelineClusterAccelerationStructureCreateInfoNV,
12041 _marker: core::marker::PhantomData<&'a ()>,
12042}
12043impl RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
12044 #[inline]
12046 pub fn builder<'a>() -> RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder<
12047 'a,
12048 > {
12049 RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder {
12050 inner: RayTracingPipelineClusterAccelerationStructureCreateInfoNV {
12051 s_type: StructureType::from_raw(1000569007i32),
12052 ..Default::default()
12053 },
12054 _marker: core::marker::PhantomData,
12055 }
12056 }
12057}
12058impl<'a> RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder<'a> {
12059 #[inline]
12060 pub fn allow_cluster_acceleration_structure(mut self, value: bool) -> Self {
12061 self.inner.allow_cluster_acceleration_structure = value as u32;
12062 self
12063 }
12064 #[inline]
12066 pub fn push_next<
12067 T: ExtendsRayTracingPipelineClusterAccelerationStructureCreateInfoNV,
12068 >(mut self, next: &'a mut T) -> Self {
12069 unsafe {
12070 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12071 (*next_ptr).p_next = self.inner.p_next as *mut _;
12072 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12073 core::ffi::c_void,
12074 >(next_ptr);
12075 }
12076 self
12077 }
12078}
12079impl<'a> core::ops::Deref
12080for RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder<'a> {
12081 type Target = RayTracingPipelineClusterAccelerationStructureCreateInfoNV;
12082 #[inline]
12083 fn deref(&self) -> &Self::Target {
12084 &self.inner
12085 }
12086}
12087impl<'a> core::ops::DerefMut
12088for RayTracingPipelineClusterAccelerationStructureCreateInfoNVBuilder<'a> {
12089 #[inline]
12090 fn deref_mut(&mut self) -> &mut Self::Target {
12091 &mut self.inner
12092 }
12093}
12094pub struct ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12096 inner: ClusterAccelerationStructureMoveObjectsInfoNV,
12097}
12098impl ClusterAccelerationStructureMoveObjectsInfoNV {
12099 #[inline]
12101 pub fn builder() -> ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12102 ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12103 inner: ClusterAccelerationStructureMoveObjectsInfoNV {
12104 ..Default::default()
12105 },
12106 }
12107 }
12108}
12109impl ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12110 #[inline]
12111 pub fn src_acceleration_structure(mut self, value: u64) -> Self {
12112 self.inner.src_acceleration_structure = value;
12113 self
12114 }
12115}
12116impl core::ops::Deref for ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12117 type Target = ClusterAccelerationStructureMoveObjectsInfoNV;
12118 #[inline]
12119 fn deref(&self) -> &Self::Target {
12120 &self.inner
12121 }
12122}
12123impl core::ops::DerefMut for ClusterAccelerationStructureMoveObjectsInfoNVBuilder {
12124 #[inline]
12125 fn deref_mut(&mut self) -> &mut Self::Target {
12126 &mut self.inner
12127 }
12128}
12129pub struct ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12131 inner: ClusterAccelerationStructureBuildClustersBottomLevelInfoNV,
12132}
12133impl ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
12134 #[inline]
12136 pub fn builder() -> ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12137 ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12138 inner: ClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
12139 ..Default::default()
12140 },
12141 }
12142 }
12143}
12144impl ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12145 #[inline]
12146 pub fn cluster_references_count(mut self, value: u32) -> Self {
12147 self.inner.cluster_references_count = value;
12148 self
12149 }
12150 #[inline]
12151 pub fn cluster_references_stride(mut self, value: u32) -> Self {
12152 self.inner.cluster_references_stride = value;
12153 self
12154 }
12155 #[inline]
12156 pub fn cluster_references(mut self, value: u64) -> Self {
12157 self.inner.cluster_references = value;
12158 self
12159 }
12160}
12161impl core::ops::Deref
12162for ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12163 type Target = ClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
12164 #[inline]
12165 fn deref(&self) -> &Self::Target {
12166 &self.inner
12167 }
12168}
12169impl core::ops::DerefMut
12170for ClusterAccelerationStructureBuildClustersBottomLevelInfoNVBuilder {
12171 #[inline]
12172 fn deref_mut(&mut self) -> &mut Self::Target {
12173 &mut self.inner
12174 }
12175}
12176pub struct ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12178 inner: ClusterAccelerationStructureGetTemplateIndicesInfoNV,
12179}
12180impl ClusterAccelerationStructureGetTemplateIndicesInfoNV {
12181 #[inline]
12183 pub fn builder() -> ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12184 ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12185 inner: ClusterAccelerationStructureGetTemplateIndicesInfoNV {
12186 ..Default::default()
12187 },
12188 }
12189 }
12190}
12191impl ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12192 #[inline]
12193 pub fn cluster_template_address(mut self, value: u64) -> Self {
12194 self.inner.cluster_template_address = value;
12195 self
12196 }
12197}
12198impl core::ops::Deref for ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12199 type Target = ClusterAccelerationStructureGetTemplateIndicesInfoNV;
12200 #[inline]
12201 fn deref(&self) -> &Self::Target {
12202 &self.inner
12203 }
12204}
12205impl core::ops::DerefMut
12206for ClusterAccelerationStructureGetTemplateIndicesInfoNVBuilder {
12207 #[inline]
12208 fn deref_mut(&mut self) -> &mut Self::Target {
12209 &mut self.inner
12210 }
12211}
12212pub struct ClusterAccelerationStructureClustersBottomLevelInputNVBuilder<'a> {
12214 inner: ClusterAccelerationStructureClustersBottomLevelInputNV,
12215 _marker: core::marker::PhantomData<&'a ()>,
12216}
12217impl ClusterAccelerationStructureClustersBottomLevelInputNV {
12218 #[inline]
12220 pub fn builder<'a>() -> ClusterAccelerationStructureClustersBottomLevelInputNVBuilder<
12221 'a,
12222 > {
12223 ClusterAccelerationStructureClustersBottomLevelInputNVBuilder {
12224 inner: ClusterAccelerationStructureClustersBottomLevelInputNV {
12225 s_type: StructureType::from_raw(1000569002i32),
12226 ..Default::default()
12227 },
12228 _marker: core::marker::PhantomData,
12229 }
12230 }
12231}
12232impl<'a> ClusterAccelerationStructureClustersBottomLevelInputNVBuilder<'a> {
12233 #[inline]
12234 pub fn max_total_cluster_count(mut self, value: u32) -> Self {
12235 self.inner.max_total_cluster_count = value;
12236 self
12237 }
12238 #[inline]
12239 pub fn max_cluster_count_per_acceleration_structure(mut self, value: u32) -> Self {
12240 self.inner.max_cluster_count_per_acceleration_structure = value;
12241 self
12242 }
12243 #[inline]
12245 pub fn push_next<T: ExtendsClusterAccelerationStructureClustersBottomLevelInputNV>(
12246 mut self,
12247 next: &'a mut T,
12248 ) -> Self {
12249 unsafe {
12250 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12251 (*next_ptr).p_next = self.inner.p_next as *mut _;
12252 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12253 core::ffi::c_void,
12254 >(next_ptr);
12255 }
12256 self
12257 }
12258}
12259impl<'a> core::ops::Deref
12260for ClusterAccelerationStructureClustersBottomLevelInputNVBuilder<'a> {
12261 type Target = ClusterAccelerationStructureClustersBottomLevelInputNV;
12262 #[inline]
12263 fn deref(&self) -> &Self::Target {
12264 &self.inner
12265 }
12266}
12267impl<'a> core::ops::DerefMut
12268for ClusterAccelerationStructureClustersBottomLevelInputNVBuilder<'a> {
12269 #[inline]
12270 fn deref_mut(&mut self) -> &mut Self::Target {
12271 &mut self.inner
12272 }
12273}
12274pub struct ClusterAccelerationStructureTriangleClusterInputNVBuilder<'a> {
12276 inner: ClusterAccelerationStructureTriangleClusterInputNV,
12277 _marker: core::marker::PhantomData<&'a ()>,
12278}
12279impl ClusterAccelerationStructureTriangleClusterInputNV {
12280 #[inline]
12282 pub fn builder<'a>() -> ClusterAccelerationStructureTriangleClusterInputNVBuilder<
12283 'a,
12284 > {
12285 ClusterAccelerationStructureTriangleClusterInputNVBuilder {
12286 inner: ClusterAccelerationStructureTriangleClusterInputNV {
12287 s_type: StructureType::from_raw(1000569003i32),
12288 ..Default::default()
12289 },
12290 _marker: core::marker::PhantomData,
12291 }
12292 }
12293}
12294impl<'a> ClusterAccelerationStructureTriangleClusterInputNVBuilder<'a> {
12295 #[inline]
12296 pub fn vertex_format(mut self, value: Format) -> Self {
12297 self.inner.vertex_format = value;
12298 self
12299 }
12300 #[inline]
12301 pub fn max_geometry_index_value(mut self, value: u32) -> Self {
12302 self.inner.max_geometry_index_value = value;
12303 self
12304 }
12305 #[inline]
12306 pub fn max_cluster_unique_geometry_count(mut self, value: u32) -> Self {
12307 self.inner.max_cluster_unique_geometry_count = value;
12308 self
12309 }
12310 #[inline]
12311 pub fn max_cluster_triangle_count(mut self, value: u32) -> Self {
12312 self.inner.max_cluster_triangle_count = value;
12313 self
12314 }
12315 #[inline]
12316 pub fn max_cluster_vertex_count(mut self, value: u32) -> Self {
12317 self.inner.max_cluster_vertex_count = value;
12318 self
12319 }
12320 #[inline]
12321 pub fn max_total_triangle_count(mut self, value: u32) -> Self {
12322 self.inner.max_total_triangle_count = value;
12323 self
12324 }
12325 #[inline]
12326 pub fn max_total_vertex_count(mut self, value: u32) -> Self {
12327 self.inner.max_total_vertex_count = value;
12328 self
12329 }
12330 #[inline]
12331 pub fn min_position_truncate_bit_count(mut self, value: u32) -> Self {
12332 self.inner.min_position_truncate_bit_count = value;
12333 self
12334 }
12335 #[inline]
12337 pub fn push_next<T: ExtendsClusterAccelerationStructureTriangleClusterInputNV>(
12338 mut self,
12339 next: &'a mut T,
12340 ) -> Self {
12341 unsafe {
12342 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12343 (*next_ptr).p_next = self.inner.p_next as *mut _;
12344 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12345 core::ffi::c_void,
12346 >(next_ptr);
12347 }
12348 self
12349 }
12350}
12351impl<'a> core::ops::Deref
12352for ClusterAccelerationStructureTriangleClusterInputNVBuilder<'a> {
12353 type Target = ClusterAccelerationStructureTriangleClusterInputNV;
12354 #[inline]
12355 fn deref(&self) -> &Self::Target {
12356 &self.inner
12357 }
12358}
12359impl<'a> core::ops::DerefMut
12360for ClusterAccelerationStructureTriangleClusterInputNVBuilder<'a> {
12361 #[inline]
12362 fn deref_mut(&mut self) -> &mut Self::Target {
12363 &mut self.inner
12364 }
12365}
12366pub struct ClusterAccelerationStructureMoveObjectsInputNVBuilder<'a> {
12368 inner: ClusterAccelerationStructureMoveObjectsInputNV,
12369 _marker: core::marker::PhantomData<&'a ()>,
12370}
12371impl ClusterAccelerationStructureMoveObjectsInputNV {
12372 #[inline]
12374 pub fn builder<'a>() -> ClusterAccelerationStructureMoveObjectsInputNVBuilder<'a> {
12375 ClusterAccelerationStructureMoveObjectsInputNVBuilder {
12376 inner: ClusterAccelerationStructureMoveObjectsInputNV {
12377 s_type: StructureType::from_raw(1000569004i32),
12378 ..Default::default()
12379 },
12380 _marker: core::marker::PhantomData,
12381 }
12382 }
12383}
12384impl<'a> ClusterAccelerationStructureMoveObjectsInputNVBuilder<'a> {
12385 #[inline]
12386 pub fn r#type(mut self, value: ClusterAccelerationStructureTypeNV) -> Self {
12387 self.inner.r#type = value;
12388 self
12389 }
12390 #[inline]
12391 pub fn no_move_overlap(mut self, value: bool) -> Self {
12392 self.inner.no_move_overlap = value as u32;
12393 self
12394 }
12395 #[inline]
12396 pub fn max_moved_bytes(mut self, value: u64) -> Self {
12397 self.inner.max_moved_bytes = value;
12398 self
12399 }
12400 #[inline]
12402 pub fn push_next<T: ExtendsClusterAccelerationStructureMoveObjectsInputNV>(
12403 mut self,
12404 next: &'a mut T,
12405 ) -> Self {
12406 unsafe {
12407 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12408 (*next_ptr).p_next = self.inner.p_next as *mut _;
12409 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12410 core::ffi::c_void,
12411 >(next_ptr);
12412 }
12413 self
12414 }
12415}
12416impl<'a> core::ops::Deref for ClusterAccelerationStructureMoveObjectsInputNVBuilder<'a> {
12417 type Target = ClusterAccelerationStructureMoveObjectsInputNV;
12418 #[inline]
12419 fn deref(&self) -> &Self::Target {
12420 &self.inner
12421 }
12422}
12423impl<'a> core::ops::DerefMut
12424for ClusterAccelerationStructureMoveObjectsInputNVBuilder<'a> {
12425 #[inline]
12426 fn deref_mut(&mut self) -> &mut Self::Target {
12427 &mut self.inner
12428 }
12429}
12430pub struct ClusterAccelerationStructureInputInfoNVBuilder<'a> {
12432 inner: ClusterAccelerationStructureInputInfoNV,
12433 _marker: core::marker::PhantomData<&'a ()>,
12434}
12435impl ClusterAccelerationStructureInputInfoNV {
12436 #[inline]
12438 pub fn builder<'a>() -> ClusterAccelerationStructureInputInfoNVBuilder<'a> {
12439 ClusterAccelerationStructureInputInfoNVBuilder {
12440 inner: ClusterAccelerationStructureInputInfoNV {
12441 s_type: StructureType::from_raw(1000569005i32),
12442 ..Default::default()
12443 },
12444 _marker: core::marker::PhantomData,
12445 }
12446 }
12447}
12448impl<'a> ClusterAccelerationStructureInputInfoNVBuilder<'a> {
12449 #[inline]
12450 pub fn max_acceleration_structure_count(mut self, value: u32) -> Self {
12451 self.inner.max_acceleration_structure_count = value;
12452 self
12453 }
12454 #[inline]
12455 pub fn flags(mut self, value: BuildAccelerationStructureFlagsKHR) -> Self {
12456 self.inner.flags = value;
12457 self
12458 }
12459 #[inline]
12460 pub fn op_type(mut self, value: ClusterAccelerationStructureOpTypeNV) -> Self {
12461 self.inner.op_type = value;
12462 self
12463 }
12464 #[inline]
12465 pub fn op_mode(mut self, value: ClusterAccelerationStructureOpModeNV) -> Self {
12466 self.inner.op_mode = value;
12467 self
12468 }
12469 #[inline]
12470 pub fn op_input(mut self, value: ClusterAccelerationStructureOpInputNV) -> Self {
12471 self.inner.op_input = value;
12472 self
12473 }
12474 #[inline]
12476 pub fn push_next<T: ExtendsClusterAccelerationStructureInputInfoNV>(
12477 mut self,
12478 next: &'a mut T,
12479 ) -> Self {
12480 unsafe {
12481 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12482 (*next_ptr).p_next = self.inner.p_next as *mut _;
12483 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12484 core::ffi::c_void,
12485 >(next_ptr);
12486 }
12487 self
12488 }
12489}
12490impl<'a> core::ops::Deref for ClusterAccelerationStructureInputInfoNVBuilder<'a> {
12491 type Target = ClusterAccelerationStructureInputInfoNV;
12492 #[inline]
12493 fn deref(&self) -> &Self::Target {
12494 &self.inner
12495 }
12496}
12497impl<'a> core::ops::DerefMut for ClusterAccelerationStructureInputInfoNVBuilder<'a> {
12498 #[inline]
12499 fn deref_mut(&mut self) -> &mut Self::Target {
12500 &mut self.inner
12501 }
12502}
12503pub struct ClusterAccelerationStructureCommandsInfoNVBuilder<'a> {
12505 inner: ClusterAccelerationStructureCommandsInfoNV,
12506 _marker: core::marker::PhantomData<&'a ()>,
12507}
12508impl ClusterAccelerationStructureCommandsInfoNV {
12509 #[inline]
12511 pub fn builder<'a>() -> ClusterAccelerationStructureCommandsInfoNVBuilder<'a> {
12512 ClusterAccelerationStructureCommandsInfoNVBuilder {
12513 inner: ClusterAccelerationStructureCommandsInfoNV {
12514 s_type: StructureType::from_raw(1000569006i32),
12515 ..Default::default()
12516 },
12517 _marker: core::marker::PhantomData,
12518 }
12519 }
12520}
12521impl<'a> ClusterAccelerationStructureCommandsInfoNVBuilder<'a> {
12522 #[inline]
12523 pub fn input(mut self, value: ClusterAccelerationStructureInputInfoNV) -> Self {
12524 self.inner.input = value;
12525 self
12526 }
12527 #[inline]
12528 pub fn dst_implicit_data(mut self, value: u64) -> Self {
12529 self.inner.dst_implicit_data = value;
12530 self
12531 }
12532 #[inline]
12533 pub fn scratch_data(mut self, value: u64) -> Self {
12534 self.inner.scratch_data = value;
12535 self
12536 }
12537 #[inline]
12538 pub fn dst_addresses_array(mut self, value: StridedDeviceAddressRegionKHR) -> Self {
12539 self.inner.dst_addresses_array = value;
12540 self
12541 }
12542 #[inline]
12543 pub fn dst_sizes_array(mut self, value: StridedDeviceAddressRegionKHR) -> Self {
12544 self.inner.dst_sizes_array = value;
12545 self
12546 }
12547 #[inline]
12548 pub fn src_infos_array(mut self, value: StridedDeviceAddressRegionKHR) -> Self {
12549 self.inner.src_infos_array = value;
12550 self
12551 }
12552 #[inline]
12553 pub fn src_infos_count(mut self, value: u64) -> Self {
12554 self.inner.src_infos_count = value;
12555 self
12556 }
12557 #[inline]
12558 pub fn address_resolution_flags(
12559 mut self,
12560 value: ClusterAccelerationStructureAddressResolutionFlagsNV,
12561 ) -> Self {
12562 self.inner.address_resolution_flags = value;
12563 self
12564 }
12565 #[inline]
12567 pub fn push_next<T: ExtendsClusterAccelerationStructureCommandsInfoNV>(
12568 mut self,
12569 next: &'a mut T,
12570 ) -> Self {
12571 unsafe {
12572 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12573 (*next_ptr).p_next = self.inner.p_next as *mut _;
12574 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12575 core::ffi::c_void,
12576 >(next_ptr);
12577 }
12578 self
12579 }
12580}
12581impl<'a> core::ops::Deref for ClusterAccelerationStructureCommandsInfoNVBuilder<'a> {
12582 type Target = ClusterAccelerationStructureCommandsInfoNV;
12583 #[inline]
12584 fn deref(&self) -> &Self::Target {
12585 &self.inner
12586 }
12587}
12588impl<'a> core::ops::DerefMut for ClusterAccelerationStructureCommandsInfoNVBuilder<'a> {
12589 #[inline]
12590 fn deref_mut(&mut self) -> &mut Self::Target {
12591 &mut self.inner
12592 }
12593}
12594pub struct PhysicalDeviceMultiDrawPropertiesEXTBuilder<'a> {
12596 inner: PhysicalDeviceMultiDrawPropertiesEXT,
12597 _marker: core::marker::PhantomData<&'a ()>,
12598}
12599impl PhysicalDeviceMultiDrawPropertiesEXT {
12600 #[inline]
12602 pub fn builder<'a>() -> PhysicalDeviceMultiDrawPropertiesEXTBuilder<'a> {
12603 PhysicalDeviceMultiDrawPropertiesEXTBuilder {
12604 inner: PhysicalDeviceMultiDrawPropertiesEXT {
12605 s_type: StructureType::from_raw(1000392001i32),
12606 ..Default::default()
12607 },
12608 _marker: core::marker::PhantomData,
12609 }
12610 }
12611}
12612impl<'a> PhysicalDeviceMultiDrawPropertiesEXTBuilder<'a> {
12613 #[inline]
12614 pub fn max_multi_draw_count(mut self, value: u32) -> Self {
12615 self.inner.max_multi_draw_count = value;
12616 self
12617 }
12618}
12619impl<'a> core::ops::Deref for PhysicalDeviceMultiDrawPropertiesEXTBuilder<'a> {
12620 type Target = PhysicalDeviceMultiDrawPropertiesEXT;
12621 #[inline]
12622 fn deref(&self) -> &Self::Target {
12623 &self.inner
12624 }
12625}
12626impl<'a> core::ops::DerefMut for PhysicalDeviceMultiDrawPropertiesEXTBuilder<'a> {
12627 #[inline]
12628 fn deref_mut(&mut self) -> &mut Self::Target {
12629 &mut self.inner
12630 }
12631}
12632pub struct GraphicsShaderGroupCreateInfoNVBuilder<'a> {
12634 inner: GraphicsShaderGroupCreateInfoNV,
12635 _marker: core::marker::PhantomData<&'a ()>,
12636}
12637impl GraphicsShaderGroupCreateInfoNV {
12638 #[inline]
12640 pub fn builder<'a>() -> GraphicsShaderGroupCreateInfoNVBuilder<'a> {
12641 GraphicsShaderGroupCreateInfoNVBuilder {
12642 inner: GraphicsShaderGroupCreateInfoNV {
12643 s_type: StructureType::from_raw(1000277001i32),
12644 ..Default::default()
12645 },
12646 _marker: core::marker::PhantomData,
12647 }
12648 }
12649}
12650impl<'a> GraphicsShaderGroupCreateInfoNVBuilder<'a> {
12651 #[inline]
12652 pub fn stages(mut self, slice: &'a [PipelineShaderStageCreateInfo]) -> Self {
12653 self.inner.stage_count = slice.len() as u32;
12654 self.inner.p_stages = slice.as_ptr();
12655 self
12656 }
12657 #[inline]
12658 pub fn vertex_input_state(
12659 mut self,
12660 value: &'a PipelineVertexInputStateCreateInfo,
12661 ) -> Self {
12662 self.inner.p_vertex_input_state = value;
12663 self
12664 }
12665 #[inline]
12666 pub fn tessellation_state(
12667 mut self,
12668 value: &'a PipelineTessellationStateCreateInfo,
12669 ) -> Self {
12670 self.inner.p_tessellation_state = value;
12671 self
12672 }
12673 #[inline]
12675 pub fn push_next<T: ExtendsGraphicsShaderGroupCreateInfoNV>(
12676 mut self,
12677 next: &'a mut T,
12678 ) -> Self {
12679 unsafe {
12680 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12681 (*next_ptr).p_next = self.inner.p_next as *mut _;
12682 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12683 core::ffi::c_void,
12684 >(next_ptr) as *const _;
12685 }
12686 self
12687 }
12688}
12689impl<'a> core::ops::Deref for GraphicsShaderGroupCreateInfoNVBuilder<'a> {
12690 type Target = GraphicsShaderGroupCreateInfoNV;
12691 #[inline]
12692 fn deref(&self) -> &Self::Target {
12693 &self.inner
12694 }
12695}
12696impl<'a> core::ops::DerefMut for GraphicsShaderGroupCreateInfoNVBuilder<'a> {
12697 #[inline]
12698 fn deref_mut(&mut self) -> &mut Self::Target {
12699 &mut self.inner
12700 }
12701}
12702pub struct GraphicsPipelineShaderGroupsCreateInfoNVBuilder<'a> {
12704 inner: GraphicsPipelineShaderGroupsCreateInfoNV,
12705 _marker: core::marker::PhantomData<&'a ()>,
12706}
12707impl GraphicsPipelineShaderGroupsCreateInfoNV {
12708 #[inline]
12710 pub fn builder<'a>() -> GraphicsPipelineShaderGroupsCreateInfoNVBuilder<'a> {
12711 GraphicsPipelineShaderGroupsCreateInfoNVBuilder {
12712 inner: GraphicsPipelineShaderGroupsCreateInfoNV {
12713 s_type: StructureType::from_raw(1000277002i32),
12714 ..Default::default()
12715 },
12716 _marker: core::marker::PhantomData,
12717 }
12718 }
12719}
12720impl<'a> GraphicsPipelineShaderGroupsCreateInfoNVBuilder<'a> {
12721 #[inline]
12722 pub fn groups(mut self, slice: &'a [GraphicsShaderGroupCreateInfoNV]) -> Self {
12723 self.inner.group_count = slice.len() as u32;
12724 self.inner.p_groups = slice.as_ptr();
12725 self
12726 }
12727 #[inline]
12728 pub fn pipelines(mut self, slice: &'a [Pipeline]) -> Self {
12729 self.inner.pipeline_count = slice.len() as u32;
12730 self.inner.p_pipelines = slice.as_ptr();
12731 self
12732 }
12733 #[inline]
12735 pub fn push_next<T: ExtendsGraphicsPipelineShaderGroupsCreateInfoNV>(
12736 mut self,
12737 next: &'a mut T,
12738 ) -> Self {
12739 unsafe {
12740 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
12741 (*next_ptr).p_next = self.inner.p_next as *mut _;
12742 self.inner.p_next = <*mut BaseOutStructure>::cast::<
12743 core::ffi::c_void,
12744 >(next_ptr) as *const _;
12745 }
12746 self
12747 }
12748}
12749impl<'a> core::ops::Deref for GraphicsPipelineShaderGroupsCreateInfoNVBuilder<'a> {
12750 type Target = GraphicsPipelineShaderGroupsCreateInfoNV;
12751 #[inline]
12752 fn deref(&self) -> &Self::Target {
12753 &self.inner
12754 }
12755}
12756impl<'a> core::ops::DerefMut for GraphicsPipelineShaderGroupsCreateInfoNVBuilder<'a> {
12757 #[inline]
12758 fn deref_mut(&mut self) -> &mut Self::Target {
12759 &mut self.inner
12760 }
12761}
12762pub struct BindShaderGroupIndirectCommandNVBuilder {
12764 inner: BindShaderGroupIndirectCommandNV,
12765}
12766impl BindShaderGroupIndirectCommandNV {
12767 #[inline]
12769 pub fn builder() -> BindShaderGroupIndirectCommandNVBuilder {
12770 BindShaderGroupIndirectCommandNVBuilder {
12771 inner: BindShaderGroupIndirectCommandNV {
12772 ..Default::default()
12773 },
12774 }
12775 }
12776}
12777impl BindShaderGroupIndirectCommandNVBuilder {
12778 #[inline]
12779 pub fn group_index(mut self, value: u32) -> Self {
12780 self.inner.group_index = value;
12781 self
12782 }
12783}
12784impl core::ops::Deref for BindShaderGroupIndirectCommandNVBuilder {
12785 type Target = BindShaderGroupIndirectCommandNV;
12786 #[inline]
12787 fn deref(&self) -> &Self::Target {
12788 &self.inner
12789 }
12790}
12791impl core::ops::DerefMut for BindShaderGroupIndirectCommandNVBuilder {
12792 #[inline]
12793 fn deref_mut(&mut self) -> &mut Self::Target {
12794 &mut self.inner
12795 }
12796}
12797pub struct BindIndexBufferIndirectCommandNVBuilder {
12799 inner: BindIndexBufferIndirectCommandNV,
12800}
12801impl BindIndexBufferIndirectCommandNV {
12802 #[inline]
12804 pub fn builder() -> BindIndexBufferIndirectCommandNVBuilder {
12805 BindIndexBufferIndirectCommandNVBuilder {
12806 inner: BindIndexBufferIndirectCommandNV {
12807 ..Default::default()
12808 },
12809 }
12810 }
12811}
12812impl BindIndexBufferIndirectCommandNVBuilder {
12813 #[inline]
12814 pub fn buffer_address(mut self, value: u64) -> Self {
12815 self.inner.buffer_address = value;
12816 self
12817 }
12818 #[inline]
12819 pub fn size(mut self, value: u32) -> Self {
12820 self.inner.size = value;
12821 self
12822 }
12823 #[inline]
12824 pub fn index_type(mut self, value: IndexType) -> Self {
12825 self.inner.index_type = value;
12826 self
12827 }
12828}
12829impl core::ops::Deref for BindIndexBufferIndirectCommandNVBuilder {
12830 type Target = BindIndexBufferIndirectCommandNV;
12831 #[inline]
12832 fn deref(&self) -> &Self::Target {
12833 &self.inner
12834 }
12835}
12836impl core::ops::DerefMut for BindIndexBufferIndirectCommandNVBuilder {
12837 #[inline]
12838 fn deref_mut(&mut self) -> &mut Self::Target {
12839 &mut self.inner
12840 }
12841}
12842pub struct BindVertexBufferIndirectCommandNVBuilder {
12844 inner: BindVertexBufferIndirectCommandNV,
12845}
12846impl BindVertexBufferIndirectCommandNV {
12847 #[inline]
12849 pub fn builder() -> BindVertexBufferIndirectCommandNVBuilder {
12850 BindVertexBufferIndirectCommandNVBuilder {
12851 inner: BindVertexBufferIndirectCommandNV {
12852 ..Default::default()
12853 },
12854 }
12855 }
12856}
12857impl BindVertexBufferIndirectCommandNVBuilder {
12858 #[inline]
12859 pub fn buffer_address(mut self, value: u64) -> Self {
12860 self.inner.buffer_address = value;
12861 self
12862 }
12863 #[inline]
12864 pub fn size(mut self, value: u32) -> Self {
12865 self.inner.size = value;
12866 self
12867 }
12868 #[inline]
12869 pub fn stride(mut self, value: u32) -> Self {
12870 self.inner.stride = value;
12871 self
12872 }
12873}
12874impl core::ops::Deref for BindVertexBufferIndirectCommandNVBuilder {
12875 type Target = BindVertexBufferIndirectCommandNV;
12876 #[inline]
12877 fn deref(&self) -> &Self::Target {
12878 &self.inner
12879 }
12880}
12881impl core::ops::DerefMut for BindVertexBufferIndirectCommandNVBuilder {
12882 #[inline]
12883 fn deref_mut(&mut self) -> &mut Self::Target {
12884 &mut self.inner
12885 }
12886}
12887pub struct SetStateFlagsIndirectCommandNVBuilder {
12889 inner: SetStateFlagsIndirectCommandNV,
12890}
12891impl SetStateFlagsIndirectCommandNV {
12892 #[inline]
12894 pub fn builder() -> SetStateFlagsIndirectCommandNVBuilder {
12895 SetStateFlagsIndirectCommandNVBuilder {
12896 inner: SetStateFlagsIndirectCommandNV {
12897 ..Default::default()
12898 },
12899 }
12900 }
12901}
12902impl SetStateFlagsIndirectCommandNVBuilder {
12903 #[inline]
12904 pub fn data(mut self, value: u32) -> Self {
12905 self.inner.data = value;
12906 self
12907 }
12908}
12909impl core::ops::Deref for SetStateFlagsIndirectCommandNVBuilder {
12910 type Target = SetStateFlagsIndirectCommandNV;
12911 #[inline]
12912 fn deref(&self) -> &Self::Target {
12913 &self.inner
12914 }
12915}
12916impl core::ops::DerefMut for SetStateFlagsIndirectCommandNVBuilder {
12917 #[inline]
12918 fn deref_mut(&mut self) -> &mut Self::Target {
12919 &mut self.inner
12920 }
12921}
12922pub struct IndirectCommandsStreamNVBuilder {
12924 inner: IndirectCommandsStreamNV,
12925}
12926impl IndirectCommandsStreamNV {
12927 #[inline]
12929 pub fn builder() -> IndirectCommandsStreamNVBuilder {
12930 IndirectCommandsStreamNVBuilder {
12931 inner: IndirectCommandsStreamNV {
12932 ..Default::default()
12933 },
12934 }
12935 }
12936}
12937impl IndirectCommandsStreamNVBuilder {
12938 #[inline]
12939 pub fn buffer(mut self, value: Buffer) -> Self {
12940 self.inner.buffer = value;
12941 self
12942 }
12943 #[inline]
12944 pub fn offset(mut self, value: u64) -> Self {
12945 self.inner.offset = value;
12946 self
12947 }
12948}
12949impl core::ops::Deref for IndirectCommandsStreamNVBuilder {
12950 type Target = IndirectCommandsStreamNV;
12951 #[inline]
12952 fn deref(&self) -> &Self::Target {
12953 &self.inner
12954 }
12955}
12956impl core::ops::DerefMut for IndirectCommandsStreamNVBuilder {
12957 #[inline]
12958 fn deref_mut(&mut self) -> &mut Self::Target {
12959 &mut self.inner
12960 }
12961}
12962pub struct IndirectCommandsLayoutTokenNVBuilder<'a> {
12964 inner: IndirectCommandsLayoutTokenNV,
12965 _marker: core::marker::PhantomData<&'a ()>,
12966}
12967impl IndirectCommandsLayoutTokenNV {
12968 #[inline]
12970 pub fn builder<'a>() -> IndirectCommandsLayoutTokenNVBuilder<'a> {
12971 IndirectCommandsLayoutTokenNVBuilder {
12972 inner: IndirectCommandsLayoutTokenNV {
12973 s_type: StructureType::from_raw(1000277003i32),
12974 ..Default::default()
12975 },
12976 _marker: core::marker::PhantomData,
12977 }
12978 }
12979}
12980impl<'a> IndirectCommandsLayoutTokenNVBuilder<'a> {
12981 #[inline]
12982 pub fn token_type(mut self, value: IndirectCommandsTokenTypeNV) -> Self {
12983 self.inner.token_type = value;
12984 self
12985 }
12986 #[inline]
12987 pub fn stream(mut self, value: u32) -> Self {
12988 self.inner.stream = value;
12989 self
12990 }
12991 #[inline]
12992 pub fn offset(mut self, value: u32) -> Self {
12993 self.inner.offset = value;
12994 self
12995 }
12996 #[inline]
12997 pub fn vertex_binding_unit(mut self, value: u32) -> Self {
12998 self.inner.vertex_binding_unit = value;
12999 self
13000 }
13001 #[inline]
13002 pub fn vertex_dynamic_stride(mut self, value: bool) -> Self {
13003 self.inner.vertex_dynamic_stride = value as u32;
13004 self
13005 }
13006 #[inline]
13007 pub fn pushconstant_pipeline_layout(mut self, value: PipelineLayout) -> Self {
13008 self.inner.pushconstant_pipeline_layout = value;
13009 self
13010 }
13011 #[inline]
13012 pub fn pushconstant_shader_stage_flags(mut self, value: ShaderStageFlags) -> Self {
13013 self.inner.pushconstant_shader_stage_flags = value;
13014 self
13015 }
13016 #[inline]
13017 pub fn pushconstant_offset(mut self, value: u32) -> Self {
13018 self.inner.pushconstant_offset = value;
13019 self
13020 }
13021 #[inline]
13022 pub fn pushconstant_size(mut self, value: u32) -> Self {
13023 self.inner.pushconstant_size = value;
13024 self
13025 }
13026 #[inline]
13027 pub fn indirect_state_flags(mut self, value: IndirectStateFlagsNV) -> Self {
13028 self.inner.indirect_state_flags = value;
13029 self
13030 }
13031 #[inline]
13032 pub fn index_types(mut self, slice: &'a [IndexType]) -> Self {
13033 self.inner.index_type_count = slice.len() as u32;
13034 self.inner.p_index_types = slice.as_ptr();
13035 self
13036 }
13037 #[inline]
13038 pub fn index_type_values(mut self, slice: &'a [u32]) -> Self {
13039 self.inner.index_type_count = slice.len() as u32;
13040 self.inner.p_index_type_values = slice.as_ptr();
13041 self
13042 }
13043 #[inline]
13045 pub fn push_next<T: ExtendsIndirectCommandsLayoutTokenNV>(
13046 mut self,
13047 next: &'a mut T,
13048 ) -> Self {
13049 unsafe {
13050 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13051 (*next_ptr).p_next = self.inner.p_next as *mut _;
13052 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13053 core::ffi::c_void,
13054 >(next_ptr) as *const _;
13055 }
13056 self
13057 }
13058}
13059impl<'a> core::ops::Deref for IndirectCommandsLayoutTokenNVBuilder<'a> {
13060 type Target = IndirectCommandsLayoutTokenNV;
13061 #[inline]
13062 fn deref(&self) -> &Self::Target {
13063 &self.inner
13064 }
13065}
13066impl<'a> core::ops::DerefMut for IndirectCommandsLayoutTokenNVBuilder<'a> {
13067 #[inline]
13068 fn deref_mut(&mut self) -> &mut Self::Target {
13069 &mut self.inner
13070 }
13071}
13072pub struct IndirectCommandsLayoutCreateInfoNVBuilder<'a> {
13074 inner: IndirectCommandsLayoutCreateInfoNV,
13075 _marker: core::marker::PhantomData<&'a ()>,
13076}
13077impl IndirectCommandsLayoutCreateInfoNV {
13078 #[inline]
13080 pub fn builder<'a>() -> IndirectCommandsLayoutCreateInfoNVBuilder<'a> {
13081 IndirectCommandsLayoutCreateInfoNVBuilder {
13082 inner: IndirectCommandsLayoutCreateInfoNV {
13083 s_type: StructureType::from_raw(1000277004i32),
13084 ..Default::default()
13085 },
13086 _marker: core::marker::PhantomData,
13087 }
13088 }
13089}
13090impl<'a> IndirectCommandsLayoutCreateInfoNVBuilder<'a> {
13091 #[inline]
13092 pub fn flags(mut self, value: IndirectCommandsLayoutUsageFlagsNV) -> Self {
13093 self.inner.flags = value;
13094 self
13095 }
13096 #[inline]
13097 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
13098 self.inner.pipeline_bind_point = value;
13099 self
13100 }
13101 #[inline]
13102 pub fn tokens(mut self, slice: &'a [IndirectCommandsLayoutTokenNV]) -> Self {
13103 self.inner.token_count = slice.len() as u32;
13104 self.inner.p_tokens = slice.as_ptr();
13105 self
13106 }
13107 #[inline]
13108 pub fn stream_strides(mut self, slice: &'a [u32]) -> Self {
13109 self.inner.stream_count = slice.len() as u32;
13110 self.inner.p_stream_strides = slice.as_ptr();
13111 self
13112 }
13113 #[inline]
13115 pub fn push_next<T: ExtendsIndirectCommandsLayoutCreateInfoNV>(
13116 mut self,
13117 next: &'a mut T,
13118 ) -> Self {
13119 unsafe {
13120 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13121 (*next_ptr).p_next = self.inner.p_next as *mut _;
13122 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13123 core::ffi::c_void,
13124 >(next_ptr) as *const _;
13125 }
13126 self
13127 }
13128}
13129impl<'a> core::ops::Deref for IndirectCommandsLayoutCreateInfoNVBuilder<'a> {
13130 type Target = IndirectCommandsLayoutCreateInfoNV;
13131 #[inline]
13132 fn deref(&self) -> &Self::Target {
13133 &self.inner
13134 }
13135}
13136impl<'a> core::ops::DerefMut for IndirectCommandsLayoutCreateInfoNVBuilder<'a> {
13137 #[inline]
13138 fn deref_mut(&mut self) -> &mut Self::Target {
13139 &mut self.inner
13140 }
13141}
13142pub struct GeneratedCommandsInfoNVBuilder<'a> {
13144 inner: GeneratedCommandsInfoNV,
13145 _marker: core::marker::PhantomData<&'a ()>,
13146}
13147impl GeneratedCommandsInfoNV {
13148 #[inline]
13150 pub fn builder<'a>() -> GeneratedCommandsInfoNVBuilder<'a> {
13151 GeneratedCommandsInfoNVBuilder {
13152 inner: GeneratedCommandsInfoNV {
13153 s_type: StructureType::from_raw(1000277005i32),
13154 ..Default::default()
13155 },
13156 _marker: core::marker::PhantomData,
13157 }
13158 }
13159}
13160impl<'a> GeneratedCommandsInfoNVBuilder<'a> {
13161 #[inline]
13162 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
13163 self.inner.pipeline_bind_point = value;
13164 self
13165 }
13166 #[inline]
13167 pub fn pipeline(mut self, value: Pipeline) -> Self {
13168 self.inner.pipeline = value;
13169 self
13170 }
13171 #[inline]
13172 pub fn indirect_commands_layout(mut self, value: IndirectCommandsLayoutNV) -> Self {
13173 self.inner.indirect_commands_layout = value;
13174 self
13175 }
13176 #[inline]
13177 pub fn streams(mut self, slice: &'a [IndirectCommandsStreamNV]) -> Self {
13178 self.inner.stream_count = slice.len() as u32;
13179 self.inner.p_streams = slice.as_ptr();
13180 self
13181 }
13182 #[inline]
13183 pub fn sequences_count(mut self, value: u32) -> Self {
13184 self.inner.sequences_count = value;
13185 self
13186 }
13187 #[inline]
13188 pub fn preprocess_buffer(mut self, value: Buffer) -> Self {
13189 self.inner.preprocess_buffer = value;
13190 self
13191 }
13192 #[inline]
13193 pub fn preprocess_offset(mut self, value: u64) -> Self {
13194 self.inner.preprocess_offset = value;
13195 self
13196 }
13197 #[inline]
13198 pub fn preprocess_size(mut self, value: u64) -> Self {
13199 self.inner.preprocess_size = value;
13200 self
13201 }
13202 #[inline]
13203 pub fn sequences_count_buffer(mut self, value: Buffer) -> Self {
13204 self.inner.sequences_count_buffer = value;
13205 self
13206 }
13207 #[inline]
13208 pub fn sequences_count_offset(mut self, value: u64) -> Self {
13209 self.inner.sequences_count_offset = value;
13210 self
13211 }
13212 #[inline]
13213 pub fn sequences_index_buffer(mut self, value: Buffer) -> Self {
13214 self.inner.sequences_index_buffer = value;
13215 self
13216 }
13217 #[inline]
13218 pub fn sequences_index_offset(mut self, value: u64) -> Self {
13219 self.inner.sequences_index_offset = value;
13220 self
13221 }
13222 #[inline]
13224 pub fn push_next<T: ExtendsGeneratedCommandsInfoNV>(
13225 mut self,
13226 next: &'a mut T,
13227 ) -> Self {
13228 unsafe {
13229 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13230 (*next_ptr).p_next = self.inner.p_next as *mut _;
13231 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13232 core::ffi::c_void,
13233 >(next_ptr) as *const _;
13234 }
13235 self
13236 }
13237}
13238impl<'a> core::ops::Deref for GeneratedCommandsInfoNVBuilder<'a> {
13239 type Target = GeneratedCommandsInfoNV;
13240 #[inline]
13241 fn deref(&self) -> &Self::Target {
13242 &self.inner
13243 }
13244}
13245impl<'a> core::ops::DerefMut for GeneratedCommandsInfoNVBuilder<'a> {
13246 #[inline]
13247 fn deref_mut(&mut self) -> &mut Self::Target {
13248 &mut self.inner
13249 }
13250}
13251pub struct GeneratedCommandsMemoryRequirementsInfoNVBuilder<'a> {
13253 inner: GeneratedCommandsMemoryRequirementsInfoNV,
13254 _marker: core::marker::PhantomData<&'a ()>,
13255}
13256impl GeneratedCommandsMemoryRequirementsInfoNV {
13257 #[inline]
13259 pub fn builder<'a>() -> GeneratedCommandsMemoryRequirementsInfoNVBuilder<'a> {
13260 GeneratedCommandsMemoryRequirementsInfoNVBuilder {
13261 inner: GeneratedCommandsMemoryRequirementsInfoNV {
13262 s_type: StructureType::from_raw(1000277006i32),
13263 ..Default::default()
13264 },
13265 _marker: core::marker::PhantomData,
13266 }
13267 }
13268}
13269impl<'a> GeneratedCommandsMemoryRequirementsInfoNVBuilder<'a> {
13270 #[inline]
13271 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
13272 self.inner.pipeline_bind_point = value;
13273 self
13274 }
13275 #[inline]
13276 pub fn pipeline(mut self, value: Pipeline) -> Self {
13277 self.inner.pipeline = value;
13278 self
13279 }
13280 #[inline]
13281 pub fn indirect_commands_layout(mut self, value: IndirectCommandsLayoutNV) -> Self {
13282 self.inner.indirect_commands_layout = value;
13283 self
13284 }
13285 #[inline]
13286 pub fn max_sequences_count(mut self, value: u32) -> Self {
13287 self.inner.max_sequences_count = value;
13288 self
13289 }
13290 #[inline]
13292 pub fn push_next<T: ExtendsGeneratedCommandsMemoryRequirementsInfoNV>(
13293 mut self,
13294 next: &'a mut T,
13295 ) -> Self {
13296 unsafe {
13297 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13298 (*next_ptr).p_next = self.inner.p_next as *mut _;
13299 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13300 core::ffi::c_void,
13301 >(next_ptr) as *const _;
13302 }
13303 self
13304 }
13305}
13306impl<'a> core::ops::Deref for GeneratedCommandsMemoryRequirementsInfoNVBuilder<'a> {
13307 type Target = GeneratedCommandsMemoryRequirementsInfoNV;
13308 #[inline]
13309 fn deref(&self) -> &Self::Target {
13310 &self.inner
13311 }
13312}
13313impl<'a> core::ops::DerefMut for GeneratedCommandsMemoryRequirementsInfoNVBuilder<'a> {
13314 #[inline]
13315 fn deref_mut(&mut self) -> &mut Self::Target {
13316 &mut self.inner
13317 }
13318}
13319pub struct PipelineIndirectDeviceAddressInfoNVBuilder<'a> {
13321 inner: PipelineIndirectDeviceAddressInfoNV,
13322 _marker: core::marker::PhantomData<&'a ()>,
13323}
13324impl PipelineIndirectDeviceAddressInfoNV {
13325 #[inline]
13327 pub fn builder<'a>() -> PipelineIndirectDeviceAddressInfoNVBuilder<'a> {
13328 PipelineIndirectDeviceAddressInfoNVBuilder {
13329 inner: PipelineIndirectDeviceAddressInfoNV {
13330 s_type: StructureType::from_raw(1000428002i32),
13331 ..Default::default()
13332 },
13333 _marker: core::marker::PhantomData,
13334 }
13335 }
13336}
13337impl<'a> PipelineIndirectDeviceAddressInfoNVBuilder<'a> {
13338 #[inline]
13339 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
13340 self.inner.pipeline_bind_point = value;
13341 self
13342 }
13343 #[inline]
13344 pub fn pipeline(mut self, value: Pipeline) -> Self {
13345 self.inner.pipeline = value;
13346 self
13347 }
13348 #[inline]
13350 pub fn push_next<T: ExtendsPipelineIndirectDeviceAddressInfoNV>(
13351 mut self,
13352 next: &'a mut T,
13353 ) -> Self {
13354 unsafe {
13355 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13356 (*next_ptr).p_next = self.inner.p_next as *mut _;
13357 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13358 core::ffi::c_void,
13359 >(next_ptr) as *const _;
13360 }
13361 self
13362 }
13363}
13364impl<'a> core::ops::Deref for PipelineIndirectDeviceAddressInfoNVBuilder<'a> {
13365 type Target = PipelineIndirectDeviceAddressInfoNV;
13366 #[inline]
13367 fn deref(&self) -> &Self::Target {
13368 &self.inner
13369 }
13370}
13371impl<'a> core::ops::DerefMut for PipelineIndirectDeviceAddressInfoNVBuilder<'a> {
13372 #[inline]
13373 fn deref_mut(&mut self) -> &mut Self::Target {
13374 &mut self.inner
13375 }
13376}
13377pub struct BindPipelineIndirectCommandNVBuilder {
13379 inner: BindPipelineIndirectCommandNV,
13380}
13381impl BindPipelineIndirectCommandNV {
13382 #[inline]
13384 pub fn builder() -> BindPipelineIndirectCommandNVBuilder {
13385 BindPipelineIndirectCommandNVBuilder {
13386 inner: BindPipelineIndirectCommandNV {
13387 ..Default::default()
13388 },
13389 }
13390 }
13391}
13392impl BindPipelineIndirectCommandNVBuilder {
13393 #[inline]
13394 pub fn pipeline_address(mut self, value: u64) -> Self {
13395 self.inner.pipeline_address = value;
13396 self
13397 }
13398}
13399impl core::ops::Deref for BindPipelineIndirectCommandNVBuilder {
13400 type Target = BindPipelineIndirectCommandNV;
13401 #[inline]
13402 fn deref(&self) -> &Self::Target {
13403 &self.inner
13404 }
13405}
13406impl core::ops::DerefMut for BindPipelineIndirectCommandNVBuilder {
13407 #[inline]
13408 fn deref_mut(&mut self) -> &mut Self::Target {
13409 &mut self.inner
13410 }
13411}
13412pub struct PhysicalDeviceFeatures2Builder<'a> {
13414 inner: PhysicalDeviceFeatures2,
13415 _marker: core::marker::PhantomData<&'a ()>,
13416}
13417impl PhysicalDeviceFeatures2 {
13418 #[inline]
13420 pub fn builder<'a>() -> PhysicalDeviceFeatures2Builder<'a> {
13421 PhysicalDeviceFeatures2Builder {
13422 inner: PhysicalDeviceFeatures2 {
13423 s_type: StructureType::from_raw(1000059000i32),
13424 ..Default::default()
13425 },
13426 _marker: core::marker::PhantomData,
13427 }
13428 }
13429}
13430impl<'a> PhysicalDeviceFeatures2Builder<'a> {
13431 #[inline]
13432 pub fn features(mut self, value: PhysicalDeviceFeatures) -> Self {
13433 self.inner.features = value;
13434 self
13435 }
13436 #[inline]
13438 pub fn push_next<T: ExtendsPhysicalDeviceFeatures2>(
13439 mut self,
13440 next: &'a mut T,
13441 ) -> Self {
13442 unsafe {
13443 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13444 (*next_ptr).p_next = self.inner.p_next as *mut _;
13445 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13446 core::ffi::c_void,
13447 >(next_ptr);
13448 }
13449 self
13450 }
13451}
13452impl<'a> core::ops::Deref for PhysicalDeviceFeatures2Builder<'a> {
13453 type Target = PhysicalDeviceFeatures2;
13454 #[inline]
13455 fn deref(&self) -> &Self::Target {
13456 &self.inner
13457 }
13458}
13459impl<'a> core::ops::DerefMut for PhysicalDeviceFeatures2Builder<'a> {
13460 #[inline]
13461 fn deref_mut(&mut self) -> &mut Self::Target {
13462 &mut self.inner
13463 }
13464}
13465pub struct PhysicalDeviceProperties2Builder<'a> {
13467 inner: PhysicalDeviceProperties2,
13468 _marker: core::marker::PhantomData<&'a ()>,
13469}
13470impl PhysicalDeviceProperties2 {
13471 #[inline]
13473 pub fn builder<'a>() -> PhysicalDeviceProperties2Builder<'a> {
13474 PhysicalDeviceProperties2Builder {
13475 inner: PhysicalDeviceProperties2 {
13476 s_type: StructureType::from_raw(1000059001i32),
13477 ..Default::default()
13478 },
13479 _marker: core::marker::PhantomData,
13480 }
13481 }
13482}
13483impl<'a> PhysicalDeviceProperties2Builder<'a> {
13484 #[inline]
13485 pub fn properties(mut self, value: PhysicalDeviceProperties) -> Self {
13486 self.inner.properties = value;
13487 self
13488 }
13489}
13490impl<'a> core::ops::Deref for PhysicalDeviceProperties2Builder<'a> {
13491 type Target = PhysicalDeviceProperties2;
13492 #[inline]
13493 fn deref(&self) -> &Self::Target {
13494 &self.inner
13495 }
13496}
13497impl<'a> core::ops::DerefMut for PhysicalDeviceProperties2Builder<'a> {
13498 #[inline]
13499 fn deref_mut(&mut self) -> &mut Self::Target {
13500 &mut self.inner
13501 }
13502}
13503pub struct FormatProperties2Builder<'a> {
13505 inner: FormatProperties2,
13506 _marker: core::marker::PhantomData<&'a ()>,
13507}
13508impl FormatProperties2 {
13509 #[inline]
13511 pub fn builder<'a>() -> FormatProperties2Builder<'a> {
13512 FormatProperties2Builder {
13513 inner: FormatProperties2 {
13514 s_type: StructureType::from_raw(1000059002i32),
13515 ..Default::default()
13516 },
13517 _marker: core::marker::PhantomData,
13518 }
13519 }
13520}
13521impl<'a> FormatProperties2Builder<'a> {
13522 #[inline]
13523 pub fn format_properties(mut self, value: FormatProperties) -> Self {
13524 self.inner.format_properties = value;
13525 self
13526 }
13527}
13528impl<'a> core::ops::Deref for FormatProperties2Builder<'a> {
13529 type Target = FormatProperties2;
13530 #[inline]
13531 fn deref(&self) -> &Self::Target {
13532 &self.inner
13533 }
13534}
13535impl<'a> core::ops::DerefMut for FormatProperties2Builder<'a> {
13536 #[inline]
13537 fn deref_mut(&mut self) -> &mut Self::Target {
13538 &mut self.inner
13539 }
13540}
13541pub struct ImageFormatProperties2Builder<'a> {
13543 inner: ImageFormatProperties2,
13544 _marker: core::marker::PhantomData<&'a ()>,
13545}
13546impl ImageFormatProperties2 {
13547 #[inline]
13549 pub fn builder<'a>() -> ImageFormatProperties2Builder<'a> {
13550 ImageFormatProperties2Builder {
13551 inner: ImageFormatProperties2 {
13552 s_type: StructureType::from_raw(1000059003i32),
13553 ..Default::default()
13554 },
13555 _marker: core::marker::PhantomData,
13556 }
13557 }
13558}
13559impl<'a> ImageFormatProperties2Builder<'a> {
13560 #[inline]
13561 pub fn image_format_properties(mut self, value: ImageFormatProperties) -> Self {
13562 self.inner.image_format_properties = value;
13563 self
13564 }
13565}
13566impl<'a> core::ops::Deref for ImageFormatProperties2Builder<'a> {
13567 type Target = ImageFormatProperties2;
13568 #[inline]
13569 fn deref(&self) -> &Self::Target {
13570 &self.inner
13571 }
13572}
13573impl<'a> core::ops::DerefMut for ImageFormatProperties2Builder<'a> {
13574 #[inline]
13575 fn deref_mut(&mut self) -> &mut Self::Target {
13576 &mut self.inner
13577 }
13578}
13579pub struct PhysicalDeviceImageFormatInfo2Builder<'a> {
13581 inner: PhysicalDeviceImageFormatInfo2,
13582 _marker: core::marker::PhantomData<&'a ()>,
13583}
13584impl PhysicalDeviceImageFormatInfo2 {
13585 #[inline]
13587 pub fn builder<'a>() -> PhysicalDeviceImageFormatInfo2Builder<'a> {
13588 PhysicalDeviceImageFormatInfo2Builder {
13589 inner: PhysicalDeviceImageFormatInfo2 {
13590 s_type: StructureType::from_raw(1000059004i32),
13591 ..Default::default()
13592 },
13593 _marker: core::marker::PhantomData,
13594 }
13595 }
13596}
13597impl<'a> PhysicalDeviceImageFormatInfo2Builder<'a> {
13598 #[inline]
13599 pub fn format(mut self, value: Format) -> Self {
13600 self.inner.format = value;
13601 self
13602 }
13603 #[inline]
13604 pub fn r#type(mut self, value: ImageType) -> Self {
13605 self.inner.r#type = value;
13606 self
13607 }
13608 #[inline]
13609 pub fn tiling(mut self, value: ImageTiling) -> Self {
13610 self.inner.tiling = value;
13611 self
13612 }
13613 #[inline]
13614 pub fn usage(mut self, value: ImageUsageFlags) -> Self {
13615 self.inner.usage = value;
13616 self
13617 }
13618 #[inline]
13619 pub fn flags(mut self, value: ImageCreateFlags) -> Self {
13620 self.inner.flags = value;
13621 self
13622 }
13623 #[inline]
13625 pub fn push_next<T: ExtendsPhysicalDeviceImageFormatInfo2>(
13626 mut self,
13627 next: &'a mut T,
13628 ) -> Self {
13629 unsafe {
13630 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13631 (*next_ptr).p_next = self.inner.p_next as *mut _;
13632 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13633 core::ffi::c_void,
13634 >(next_ptr) as *const _;
13635 }
13636 self
13637 }
13638}
13639impl<'a> core::ops::Deref for PhysicalDeviceImageFormatInfo2Builder<'a> {
13640 type Target = PhysicalDeviceImageFormatInfo2;
13641 #[inline]
13642 fn deref(&self) -> &Self::Target {
13643 &self.inner
13644 }
13645}
13646impl<'a> core::ops::DerefMut for PhysicalDeviceImageFormatInfo2Builder<'a> {
13647 #[inline]
13648 fn deref_mut(&mut self) -> &mut Self::Target {
13649 &mut self.inner
13650 }
13651}
13652pub struct QueueFamilyProperties2Builder<'a> {
13654 inner: QueueFamilyProperties2,
13655 _marker: core::marker::PhantomData<&'a ()>,
13656}
13657impl QueueFamilyProperties2 {
13658 #[inline]
13660 pub fn builder<'a>() -> QueueFamilyProperties2Builder<'a> {
13661 QueueFamilyProperties2Builder {
13662 inner: QueueFamilyProperties2 {
13663 s_type: StructureType::from_raw(1000059005i32),
13664 ..Default::default()
13665 },
13666 _marker: core::marker::PhantomData,
13667 }
13668 }
13669}
13670impl<'a> QueueFamilyProperties2Builder<'a> {
13671 #[inline]
13672 pub fn queue_family_properties(mut self, value: QueueFamilyProperties) -> Self {
13673 self.inner.queue_family_properties = value;
13674 self
13675 }
13676}
13677impl<'a> core::ops::Deref for QueueFamilyProperties2Builder<'a> {
13678 type Target = QueueFamilyProperties2;
13679 #[inline]
13680 fn deref(&self) -> &Self::Target {
13681 &self.inner
13682 }
13683}
13684impl<'a> core::ops::DerefMut for QueueFamilyProperties2Builder<'a> {
13685 #[inline]
13686 fn deref_mut(&mut self) -> &mut Self::Target {
13687 &mut self.inner
13688 }
13689}
13690pub struct PhysicalDeviceMemoryProperties2Builder<'a> {
13692 inner: PhysicalDeviceMemoryProperties2,
13693 _marker: core::marker::PhantomData<&'a ()>,
13694}
13695impl PhysicalDeviceMemoryProperties2 {
13696 #[inline]
13698 pub fn builder<'a>() -> PhysicalDeviceMemoryProperties2Builder<'a> {
13699 PhysicalDeviceMemoryProperties2Builder {
13700 inner: PhysicalDeviceMemoryProperties2 {
13701 s_type: StructureType::from_raw(1000059006i32),
13702 ..Default::default()
13703 },
13704 _marker: core::marker::PhantomData,
13705 }
13706 }
13707}
13708impl<'a> PhysicalDeviceMemoryProperties2Builder<'a> {
13709 #[inline]
13710 pub fn memory_properties(mut self, value: PhysicalDeviceMemoryProperties) -> Self {
13711 self.inner.memory_properties = value;
13712 self
13713 }
13714}
13715impl<'a> core::ops::Deref for PhysicalDeviceMemoryProperties2Builder<'a> {
13716 type Target = PhysicalDeviceMemoryProperties2;
13717 #[inline]
13718 fn deref(&self) -> &Self::Target {
13719 &self.inner
13720 }
13721}
13722impl<'a> core::ops::DerefMut for PhysicalDeviceMemoryProperties2Builder<'a> {
13723 #[inline]
13724 fn deref_mut(&mut self) -> &mut Self::Target {
13725 &mut self.inner
13726 }
13727}
13728pub struct SparseImageFormatProperties2Builder<'a> {
13730 inner: SparseImageFormatProperties2,
13731 _marker: core::marker::PhantomData<&'a ()>,
13732}
13733impl SparseImageFormatProperties2 {
13734 #[inline]
13736 pub fn builder<'a>() -> SparseImageFormatProperties2Builder<'a> {
13737 SparseImageFormatProperties2Builder {
13738 inner: SparseImageFormatProperties2 {
13739 s_type: StructureType::from_raw(1000059007i32),
13740 ..Default::default()
13741 },
13742 _marker: core::marker::PhantomData,
13743 }
13744 }
13745}
13746impl<'a> SparseImageFormatProperties2Builder<'a> {
13747 #[inline]
13748 pub fn properties(mut self, value: SparseImageFormatProperties) -> Self {
13749 self.inner.properties = value;
13750 self
13751 }
13752}
13753impl<'a> core::ops::Deref for SparseImageFormatProperties2Builder<'a> {
13754 type Target = SparseImageFormatProperties2;
13755 #[inline]
13756 fn deref(&self) -> &Self::Target {
13757 &self.inner
13758 }
13759}
13760impl<'a> core::ops::DerefMut for SparseImageFormatProperties2Builder<'a> {
13761 #[inline]
13762 fn deref_mut(&mut self) -> &mut Self::Target {
13763 &mut self.inner
13764 }
13765}
13766pub struct PhysicalDeviceSparseImageFormatInfo2Builder<'a> {
13768 inner: PhysicalDeviceSparseImageFormatInfo2,
13769 _marker: core::marker::PhantomData<&'a ()>,
13770}
13771impl PhysicalDeviceSparseImageFormatInfo2 {
13772 #[inline]
13774 pub fn builder<'a>() -> PhysicalDeviceSparseImageFormatInfo2Builder<'a> {
13775 PhysicalDeviceSparseImageFormatInfo2Builder {
13776 inner: PhysicalDeviceSparseImageFormatInfo2 {
13777 s_type: StructureType::from_raw(1000059008i32),
13778 ..Default::default()
13779 },
13780 _marker: core::marker::PhantomData,
13781 }
13782 }
13783}
13784impl<'a> PhysicalDeviceSparseImageFormatInfo2Builder<'a> {
13785 #[inline]
13786 pub fn format(mut self, value: Format) -> Self {
13787 self.inner.format = value;
13788 self
13789 }
13790 #[inline]
13791 pub fn r#type(mut self, value: ImageType) -> Self {
13792 self.inner.r#type = value;
13793 self
13794 }
13795 #[inline]
13796 pub fn samples(mut self, value: SampleCountFlagBits) -> Self {
13797 self.inner.samples = value;
13798 self
13799 }
13800 #[inline]
13801 pub fn usage(mut self, value: ImageUsageFlags) -> Self {
13802 self.inner.usage = value;
13803 self
13804 }
13805 #[inline]
13806 pub fn tiling(mut self, value: ImageTiling) -> Self {
13807 self.inner.tiling = value;
13808 self
13809 }
13810 #[inline]
13812 pub fn push_next<T: ExtendsPhysicalDeviceSparseImageFormatInfo2>(
13813 mut self,
13814 next: &'a mut T,
13815 ) -> Self {
13816 unsafe {
13817 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
13818 (*next_ptr).p_next = self.inner.p_next as *mut _;
13819 self.inner.p_next = <*mut BaseOutStructure>::cast::<
13820 core::ffi::c_void,
13821 >(next_ptr) as *const _;
13822 }
13823 self
13824 }
13825}
13826impl<'a> core::ops::Deref for PhysicalDeviceSparseImageFormatInfo2Builder<'a> {
13827 type Target = PhysicalDeviceSparseImageFormatInfo2;
13828 #[inline]
13829 fn deref(&self) -> &Self::Target {
13830 &self.inner
13831 }
13832}
13833impl<'a> core::ops::DerefMut for PhysicalDeviceSparseImageFormatInfo2Builder<'a> {
13834 #[inline]
13835 fn deref_mut(&mut self) -> &mut Self::Target {
13836 &mut self.inner
13837 }
13838}
13839pub struct PhysicalDevicePushDescriptorPropertiesBuilder<'a> {
13841 inner: PhysicalDevicePushDescriptorProperties,
13842 _marker: core::marker::PhantomData<&'a ()>,
13843}
13844impl PhysicalDevicePushDescriptorProperties {
13845 #[inline]
13847 pub fn builder<'a>() -> PhysicalDevicePushDescriptorPropertiesBuilder<'a> {
13848 PhysicalDevicePushDescriptorPropertiesBuilder {
13849 inner: PhysicalDevicePushDescriptorProperties {
13850 s_type: StructureType::from_raw(1000080000i32),
13851 ..Default::default()
13852 },
13853 _marker: core::marker::PhantomData,
13854 }
13855 }
13856}
13857impl<'a> PhysicalDevicePushDescriptorPropertiesBuilder<'a> {
13858 #[inline]
13859 pub fn max_push_descriptors(mut self, value: u32) -> Self {
13860 self.inner.max_push_descriptors = value;
13861 self
13862 }
13863}
13864impl<'a> core::ops::Deref for PhysicalDevicePushDescriptorPropertiesBuilder<'a> {
13865 type Target = PhysicalDevicePushDescriptorProperties;
13866 #[inline]
13867 fn deref(&self) -> &Self::Target {
13868 &self.inner
13869 }
13870}
13871impl<'a> core::ops::DerefMut for PhysicalDevicePushDescriptorPropertiesBuilder<'a> {
13872 #[inline]
13873 fn deref_mut(&mut self) -> &mut Self::Target {
13874 &mut self.inner
13875 }
13876}
13877pub struct ConformanceVersionBuilder {
13879 inner: ConformanceVersion,
13880}
13881impl ConformanceVersion {
13882 #[inline]
13884 pub fn builder() -> ConformanceVersionBuilder {
13885 ConformanceVersionBuilder {
13886 inner: ConformanceVersion {
13887 ..Default::default()
13888 },
13889 }
13890 }
13891}
13892impl ConformanceVersionBuilder {
13893 #[inline]
13894 pub fn major(mut self, value: u8) -> Self {
13895 self.inner.major = value;
13896 self
13897 }
13898 #[inline]
13899 pub fn minor(mut self, value: u8) -> Self {
13900 self.inner.minor = value;
13901 self
13902 }
13903 #[inline]
13904 pub fn subminor(mut self, value: u8) -> Self {
13905 self.inner.subminor = value;
13906 self
13907 }
13908 #[inline]
13909 pub fn patch(mut self, value: u8) -> Self {
13910 self.inner.patch = value;
13911 self
13912 }
13913}
13914impl core::ops::Deref for ConformanceVersionBuilder {
13915 type Target = ConformanceVersion;
13916 #[inline]
13917 fn deref(&self) -> &Self::Target {
13918 &self.inner
13919 }
13920}
13921impl core::ops::DerefMut for ConformanceVersionBuilder {
13922 #[inline]
13923 fn deref_mut(&mut self) -> &mut Self::Target {
13924 &mut self.inner
13925 }
13926}
13927pub struct PhysicalDeviceDriverPropertiesBuilder<'a> {
13929 inner: PhysicalDeviceDriverProperties,
13930 _marker: core::marker::PhantomData<&'a ()>,
13931}
13932impl PhysicalDeviceDriverProperties {
13933 #[inline]
13935 pub fn builder<'a>() -> PhysicalDeviceDriverPropertiesBuilder<'a> {
13936 PhysicalDeviceDriverPropertiesBuilder {
13937 inner: PhysicalDeviceDriverProperties {
13938 s_type: StructureType::from_raw(1000196000i32),
13939 ..Default::default()
13940 },
13941 _marker: core::marker::PhantomData,
13942 }
13943 }
13944}
13945impl<'a> PhysicalDeviceDriverPropertiesBuilder<'a> {
13946 #[inline]
13947 pub fn driver_id(mut self, value: DriverId) -> Self {
13948 self.inner.driver_id = value;
13949 self
13950 }
13951 #[inline]
13952 pub fn driver_name(
13953 mut self,
13954 value: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
13955 ) -> Self {
13956 self.inner.driver_name = value;
13957 self
13958 }
13959 #[inline]
13960 pub fn driver_info(
13961 mut self,
13962 value: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
13963 ) -> Self {
13964 self.inner.driver_info = value;
13965 self
13966 }
13967 #[inline]
13968 pub fn conformance_version(mut self, value: ConformanceVersion) -> Self {
13969 self.inner.conformance_version = value;
13970 self
13971 }
13972}
13973impl<'a> core::ops::Deref for PhysicalDeviceDriverPropertiesBuilder<'a> {
13974 type Target = PhysicalDeviceDriverProperties;
13975 #[inline]
13976 fn deref(&self) -> &Self::Target {
13977 &self.inner
13978 }
13979}
13980impl<'a> core::ops::DerefMut for PhysicalDeviceDriverPropertiesBuilder<'a> {
13981 #[inline]
13982 fn deref_mut(&mut self) -> &mut Self::Target {
13983 &mut self.inner
13984 }
13985}
13986pub struct PresentRegionsKHRBuilder<'a> {
13988 inner: PresentRegionsKHR,
13989 _marker: core::marker::PhantomData<&'a ()>,
13990}
13991impl PresentRegionsKHR {
13992 #[inline]
13994 pub fn builder<'a>() -> PresentRegionsKHRBuilder<'a> {
13995 PresentRegionsKHRBuilder {
13996 inner: PresentRegionsKHR {
13997 s_type: StructureType::from_raw(1000084000i32),
13998 ..Default::default()
13999 },
14000 _marker: core::marker::PhantomData,
14001 }
14002 }
14003}
14004impl<'a> PresentRegionsKHRBuilder<'a> {
14005 #[inline]
14006 pub fn swapchain_count(mut self, value: u32) -> Self {
14007 self.inner.swapchain_count = value;
14008 self
14009 }
14010 #[inline]
14011 pub fn regions(mut self, slice: &'a [PresentRegionKHR]) -> Self {
14012 self.inner.swapchain_count = slice.len() as u32;
14013 self.inner.p_regions = slice.as_ptr();
14014 self
14015 }
14016 #[inline]
14018 pub fn push_next<T: ExtendsPresentRegionsKHR>(mut self, next: &'a mut T) -> Self {
14019 unsafe {
14020 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14021 (*next_ptr).p_next = self.inner.p_next as *mut _;
14022 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14023 core::ffi::c_void,
14024 >(next_ptr) as *const _;
14025 }
14026 self
14027 }
14028}
14029impl<'a> core::ops::Deref for PresentRegionsKHRBuilder<'a> {
14030 type Target = PresentRegionsKHR;
14031 #[inline]
14032 fn deref(&self) -> &Self::Target {
14033 &self.inner
14034 }
14035}
14036impl<'a> core::ops::DerefMut for PresentRegionsKHRBuilder<'a> {
14037 #[inline]
14038 fn deref_mut(&mut self) -> &mut Self::Target {
14039 &mut self.inner
14040 }
14041}
14042pub struct PresentRegionKHRBuilder<'a> {
14044 inner: PresentRegionKHR,
14045 _marker: core::marker::PhantomData<&'a ()>,
14046}
14047impl PresentRegionKHR {
14048 #[inline]
14050 pub fn builder<'a>() -> PresentRegionKHRBuilder<'a> {
14051 PresentRegionKHRBuilder {
14052 inner: PresentRegionKHR {
14053 ..Default::default()
14054 },
14055 _marker: core::marker::PhantomData,
14056 }
14057 }
14058}
14059impl<'a> PresentRegionKHRBuilder<'a> {
14060 #[inline]
14061 pub fn rectangle_count(mut self, value: u32) -> Self {
14062 self.inner.rectangle_count = value;
14063 self
14064 }
14065 #[inline]
14066 pub fn rectangles(mut self, slice: &'a [RectLayerKHR]) -> Self {
14067 self.inner.rectangle_count = slice.len() as u32;
14068 self.inner.p_rectangles = slice.as_ptr();
14069 self
14070 }
14071}
14072impl<'a> core::ops::Deref for PresentRegionKHRBuilder<'a> {
14073 type Target = PresentRegionKHR;
14074 #[inline]
14075 fn deref(&self) -> &Self::Target {
14076 &self.inner
14077 }
14078}
14079impl<'a> core::ops::DerefMut for PresentRegionKHRBuilder<'a> {
14080 #[inline]
14081 fn deref_mut(&mut self) -> &mut Self::Target {
14082 &mut self.inner
14083 }
14084}
14085pub struct RectLayerKHRBuilder {
14087 inner: RectLayerKHR,
14088}
14089impl RectLayerKHR {
14090 #[inline]
14092 pub fn builder() -> RectLayerKHRBuilder {
14093 RectLayerKHRBuilder {
14094 inner: RectLayerKHR {
14095 ..Default::default()
14096 },
14097 }
14098 }
14099}
14100impl RectLayerKHRBuilder {
14101 #[inline]
14102 pub fn offset(mut self, value: Offset2D) -> Self {
14103 self.inner.offset = value;
14104 self
14105 }
14106 #[inline]
14107 pub fn extent(mut self, value: Extent2D) -> Self {
14108 self.inner.extent = value;
14109 self
14110 }
14111 #[inline]
14112 pub fn layer(mut self, value: u32) -> Self {
14113 self.inner.layer = value;
14114 self
14115 }
14116}
14117impl core::ops::Deref for RectLayerKHRBuilder {
14118 type Target = RectLayerKHR;
14119 #[inline]
14120 fn deref(&self) -> &Self::Target {
14121 &self.inner
14122 }
14123}
14124impl core::ops::DerefMut for RectLayerKHRBuilder {
14125 #[inline]
14126 fn deref_mut(&mut self) -> &mut Self::Target {
14127 &mut self.inner
14128 }
14129}
14130pub struct PhysicalDeviceVariablePointersFeaturesBuilder<'a> {
14132 inner: PhysicalDeviceVariablePointersFeatures,
14133 _marker: core::marker::PhantomData<&'a ()>,
14134}
14135impl PhysicalDeviceVariablePointersFeatures {
14136 #[inline]
14138 pub fn builder<'a>() -> PhysicalDeviceVariablePointersFeaturesBuilder<'a> {
14139 PhysicalDeviceVariablePointersFeaturesBuilder {
14140 inner: PhysicalDeviceVariablePointersFeatures {
14141 s_type: StructureType::from_raw(1000120000i32),
14142 ..Default::default()
14143 },
14144 _marker: core::marker::PhantomData,
14145 }
14146 }
14147}
14148impl<'a> PhysicalDeviceVariablePointersFeaturesBuilder<'a> {
14149 #[inline]
14150 pub fn variable_pointers_storage_buffer(mut self, value: bool) -> Self {
14151 self.inner.variable_pointers_storage_buffer = value as u32;
14152 self
14153 }
14154 #[inline]
14155 pub fn variable_pointers(mut self, value: bool) -> Self {
14156 self.inner.variable_pointers = value as u32;
14157 self
14158 }
14159 #[inline]
14161 pub fn push_next<T: ExtendsPhysicalDeviceVariablePointersFeatures>(
14162 mut self,
14163 next: &'a mut T,
14164 ) -> Self {
14165 unsafe {
14166 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14167 (*next_ptr).p_next = self.inner.p_next as *mut _;
14168 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14169 core::ffi::c_void,
14170 >(next_ptr);
14171 }
14172 self
14173 }
14174}
14175impl<'a> core::ops::Deref for PhysicalDeviceVariablePointersFeaturesBuilder<'a> {
14176 type Target = PhysicalDeviceVariablePointersFeatures;
14177 #[inline]
14178 fn deref(&self) -> &Self::Target {
14179 &self.inner
14180 }
14181}
14182impl<'a> core::ops::DerefMut for PhysicalDeviceVariablePointersFeaturesBuilder<'a> {
14183 #[inline]
14184 fn deref_mut(&mut self) -> &mut Self::Target {
14185 &mut self.inner
14186 }
14187}
14188pub struct ExternalMemoryPropertiesBuilder {
14190 inner: ExternalMemoryProperties,
14191}
14192impl ExternalMemoryProperties {
14193 #[inline]
14195 pub fn builder() -> ExternalMemoryPropertiesBuilder {
14196 ExternalMemoryPropertiesBuilder {
14197 inner: ExternalMemoryProperties {
14198 ..Default::default()
14199 },
14200 }
14201 }
14202}
14203impl ExternalMemoryPropertiesBuilder {
14204 #[inline]
14205 pub fn external_memory_features(
14206 mut self,
14207 value: ExternalMemoryFeatureFlags,
14208 ) -> Self {
14209 self.inner.external_memory_features = value;
14210 self
14211 }
14212 #[inline]
14213 pub fn export_from_imported_handle_types(
14214 mut self,
14215 value: ExternalMemoryHandleTypeFlags,
14216 ) -> Self {
14217 self.inner.export_from_imported_handle_types = value;
14218 self
14219 }
14220 #[inline]
14221 pub fn compatible_handle_types(
14222 mut self,
14223 value: ExternalMemoryHandleTypeFlags,
14224 ) -> Self {
14225 self.inner.compatible_handle_types = value;
14226 self
14227 }
14228}
14229impl core::ops::Deref for ExternalMemoryPropertiesBuilder {
14230 type Target = ExternalMemoryProperties;
14231 #[inline]
14232 fn deref(&self) -> &Self::Target {
14233 &self.inner
14234 }
14235}
14236impl core::ops::DerefMut for ExternalMemoryPropertiesBuilder {
14237 #[inline]
14238 fn deref_mut(&mut self) -> &mut Self::Target {
14239 &mut self.inner
14240 }
14241}
14242pub struct PhysicalDeviceExternalImageFormatInfoBuilder<'a> {
14244 inner: PhysicalDeviceExternalImageFormatInfo,
14245 _marker: core::marker::PhantomData<&'a ()>,
14246}
14247impl PhysicalDeviceExternalImageFormatInfo {
14248 #[inline]
14250 pub fn builder<'a>() -> PhysicalDeviceExternalImageFormatInfoBuilder<'a> {
14251 PhysicalDeviceExternalImageFormatInfoBuilder {
14252 inner: PhysicalDeviceExternalImageFormatInfo {
14253 s_type: StructureType::from_raw(1000071000i32),
14254 ..Default::default()
14255 },
14256 _marker: core::marker::PhantomData,
14257 }
14258 }
14259}
14260impl<'a> PhysicalDeviceExternalImageFormatInfoBuilder<'a> {
14261 #[inline]
14262 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
14263 self.inner.handle_type = value;
14264 self
14265 }
14266 #[inline]
14268 pub fn push_next<T: ExtendsPhysicalDeviceExternalImageFormatInfo>(
14269 mut self,
14270 next: &'a mut T,
14271 ) -> Self {
14272 unsafe {
14273 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14274 (*next_ptr).p_next = self.inner.p_next as *mut _;
14275 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14276 core::ffi::c_void,
14277 >(next_ptr) as *const _;
14278 }
14279 self
14280 }
14281}
14282impl<'a> core::ops::Deref for PhysicalDeviceExternalImageFormatInfoBuilder<'a> {
14283 type Target = PhysicalDeviceExternalImageFormatInfo;
14284 #[inline]
14285 fn deref(&self) -> &Self::Target {
14286 &self.inner
14287 }
14288}
14289impl<'a> core::ops::DerefMut for PhysicalDeviceExternalImageFormatInfoBuilder<'a> {
14290 #[inline]
14291 fn deref_mut(&mut self) -> &mut Self::Target {
14292 &mut self.inner
14293 }
14294}
14295pub struct ExternalImageFormatPropertiesBuilder<'a> {
14297 inner: ExternalImageFormatProperties,
14298 _marker: core::marker::PhantomData<&'a ()>,
14299}
14300impl ExternalImageFormatProperties {
14301 #[inline]
14303 pub fn builder<'a>() -> ExternalImageFormatPropertiesBuilder<'a> {
14304 ExternalImageFormatPropertiesBuilder {
14305 inner: ExternalImageFormatProperties {
14306 s_type: StructureType::from_raw(1000071001i32),
14307 ..Default::default()
14308 },
14309 _marker: core::marker::PhantomData,
14310 }
14311 }
14312}
14313impl<'a> ExternalImageFormatPropertiesBuilder<'a> {
14314 #[inline]
14315 pub fn external_memory_properties(
14316 mut self,
14317 value: ExternalMemoryProperties,
14318 ) -> Self {
14319 self.inner.external_memory_properties = value;
14320 self
14321 }
14322}
14323impl<'a> core::ops::Deref for ExternalImageFormatPropertiesBuilder<'a> {
14324 type Target = ExternalImageFormatProperties;
14325 #[inline]
14326 fn deref(&self) -> &Self::Target {
14327 &self.inner
14328 }
14329}
14330impl<'a> core::ops::DerefMut for ExternalImageFormatPropertiesBuilder<'a> {
14331 #[inline]
14332 fn deref_mut(&mut self) -> &mut Self::Target {
14333 &mut self.inner
14334 }
14335}
14336pub struct PhysicalDeviceExternalBufferInfoBuilder<'a> {
14338 inner: PhysicalDeviceExternalBufferInfo,
14339 _marker: core::marker::PhantomData<&'a ()>,
14340}
14341impl PhysicalDeviceExternalBufferInfo {
14342 #[inline]
14344 pub fn builder<'a>() -> PhysicalDeviceExternalBufferInfoBuilder<'a> {
14345 PhysicalDeviceExternalBufferInfoBuilder {
14346 inner: PhysicalDeviceExternalBufferInfo {
14347 s_type: StructureType::from_raw(1000071002i32),
14348 ..Default::default()
14349 },
14350 _marker: core::marker::PhantomData,
14351 }
14352 }
14353}
14354impl<'a> PhysicalDeviceExternalBufferInfoBuilder<'a> {
14355 #[inline]
14356 pub fn flags(mut self, value: BufferCreateFlags) -> Self {
14357 self.inner.flags = value;
14358 self
14359 }
14360 #[inline]
14361 pub fn usage(mut self, value: BufferUsageFlags) -> Self {
14362 self.inner.usage = value;
14363 self
14364 }
14365 #[inline]
14366 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
14367 self.inner.handle_type = value;
14368 self
14369 }
14370 #[inline]
14372 pub fn push_next<T: ExtendsPhysicalDeviceExternalBufferInfo>(
14373 mut self,
14374 next: &'a mut T,
14375 ) -> Self {
14376 unsafe {
14377 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14378 (*next_ptr).p_next = self.inner.p_next as *mut _;
14379 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14380 core::ffi::c_void,
14381 >(next_ptr) as *const _;
14382 }
14383 self
14384 }
14385}
14386impl<'a> core::ops::Deref for PhysicalDeviceExternalBufferInfoBuilder<'a> {
14387 type Target = PhysicalDeviceExternalBufferInfo;
14388 #[inline]
14389 fn deref(&self) -> &Self::Target {
14390 &self.inner
14391 }
14392}
14393impl<'a> core::ops::DerefMut for PhysicalDeviceExternalBufferInfoBuilder<'a> {
14394 #[inline]
14395 fn deref_mut(&mut self) -> &mut Self::Target {
14396 &mut self.inner
14397 }
14398}
14399pub struct ExternalBufferPropertiesBuilder<'a> {
14401 inner: ExternalBufferProperties,
14402 _marker: core::marker::PhantomData<&'a ()>,
14403}
14404impl ExternalBufferProperties {
14405 #[inline]
14407 pub fn builder<'a>() -> ExternalBufferPropertiesBuilder<'a> {
14408 ExternalBufferPropertiesBuilder {
14409 inner: ExternalBufferProperties {
14410 s_type: StructureType::from_raw(1000071003i32),
14411 ..Default::default()
14412 },
14413 _marker: core::marker::PhantomData,
14414 }
14415 }
14416}
14417impl<'a> ExternalBufferPropertiesBuilder<'a> {
14418 #[inline]
14419 pub fn external_memory_properties(
14420 mut self,
14421 value: ExternalMemoryProperties,
14422 ) -> Self {
14423 self.inner.external_memory_properties = value;
14424 self
14425 }
14426}
14427impl<'a> core::ops::Deref for ExternalBufferPropertiesBuilder<'a> {
14428 type Target = ExternalBufferProperties;
14429 #[inline]
14430 fn deref(&self) -> &Self::Target {
14431 &self.inner
14432 }
14433}
14434impl<'a> core::ops::DerefMut for ExternalBufferPropertiesBuilder<'a> {
14435 #[inline]
14436 fn deref_mut(&mut self) -> &mut Self::Target {
14437 &mut self.inner
14438 }
14439}
14440pub struct PhysicalDeviceIDPropertiesBuilder<'a> {
14442 inner: PhysicalDeviceIDProperties,
14443 _marker: core::marker::PhantomData<&'a ()>,
14444}
14445impl PhysicalDeviceIDProperties {
14446 #[inline]
14448 pub fn builder<'a>() -> PhysicalDeviceIDPropertiesBuilder<'a> {
14449 PhysicalDeviceIDPropertiesBuilder {
14450 inner: PhysicalDeviceIDProperties {
14451 s_type: StructureType::from_raw(1000071004i32),
14452 ..Default::default()
14453 },
14454 _marker: core::marker::PhantomData,
14455 }
14456 }
14457}
14458impl<'a> PhysicalDeviceIDPropertiesBuilder<'a> {
14459 #[inline]
14460 pub fn device_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
14461 self.inner.device_uuid = value;
14462 self
14463 }
14464 #[inline]
14465 pub fn driver_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
14466 self.inner.driver_uuid = value;
14467 self
14468 }
14469 #[inline]
14470 pub fn device_luid(mut self, value: [u8; LUID_SIZE as usize]) -> Self {
14471 self.inner.device_luid = value;
14472 self
14473 }
14474 #[inline]
14475 pub fn device_node_mask(mut self, value: u32) -> Self {
14476 self.inner.device_node_mask = value;
14477 self
14478 }
14479 #[inline]
14480 pub fn device_luid_valid(mut self, value: bool) -> Self {
14481 self.inner.device_luid_valid = value as u32;
14482 self
14483 }
14484}
14485impl<'a> core::ops::Deref for PhysicalDeviceIDPropertiesBuilder<'a> {
14486 type Target = PhysicalDeviceIDProperties;
14487 #[inline]
14488 fn deref(&self) -> &Self::Target {
14489 &self.inner
14490 }
14491}
14492impl<'a> core::ops::DerefMut for PhysicalDeviceIDPropertiesBuilder<'a> {
14493 #[inline]
14494 fn deref_mut(&mut self) -> &mut Self::Target {
14495 &mut self.inner
14496 }
14497}
14498pub struct ExternalMemoryImageCreateInfoBuilder<'a> {
14500 inner: ExternalMemoryImageCreateInfo,
14501 _marker: core::marker::PhantomData<&'a ()>,
14502}
14503impl ExternalMemoryImageCreateInfo {
14504 #[inline]
14506 pub fn builder<'a>() -> ExternalMemoryImageCreateInfoBuilder<'a> {
14507 ExternalMemoryImageCreateInfoBuilder {
14508 inner: ExternalMemoryImageCreateInfo {
14509 s_type: StructureType::from_raw(1000072001i32),
14510 ..Default::default()
14511 },
14512 _marker: core::marker::PhantomData,
14513 }
14514 }
14515}
14516impl<'a> ExternalMemoryImageCreateInfoBuilder<'a> {
14517 #[inline]
14518 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlags) -> Self {
14519 self.inner.handle_types = value;
14520 self
14521 }
14522 #[inline]
14524 pub fn push_next<T: ExtendsExternalMemoryImageCreateInfo>(
14525 mut self,
14526 next: &'a mut T,
14527 ) -> Self {
14528 unsafe {
14529 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14530 (*next_ptr).p_next = self.inner.p_next as *mut _;
14531 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14532 core::ffi::c_void,
14533 >(next_ptr) as *const _;
14534 }
14535 self
14536 }
14537}
14538impl<'a> core::ops::Deref for ExternalMemoryImageCreateInfoBuilder<'a> {
14539 type Target = ExternalMemoryImageCreateInfo;
14540 #[inline]
14541 fn deref(&self) -> &Self::Target {
14542 &self.inner
14543 }
14544}
14545impl<'a> core::ops::DerefMut for ExternalMemoryImageCreateInfoBuilder<'a> {
14546 #[inline]
14547 fn deref_mut(&mut self) -> &mut Self::Target {
14548 &mut self.inner
14549 }
14550}
14551pub struct ExternalMemoryBufferCreateInfoBuilder<'a> {
14553 inner: ExternalMemoryBufferCreateInfo,
14554 _marker: core::marker::PhantomData<&'a ()>,
14555}
14556impl ExternalMemoryBufferCreateInfo {
14557 #[inline]
14559 pub fn builder<'a>() -> ExternalMemoryBufferCreateInfoBuilder<'a> {
14560 ExternalMemoryBufferCreateInfoBuilder {
14561 inner: ExternalMemoryBufferCreateInfo {
14562 s_type: StructureType::from_raw(1000072000i32),
14563 ..Default::default()
14564 },
14565 _marker: core::marker::PhantomData,
14566 }
14567 }
14568}
14569impl<'a> ExternalMemoryBufferCreateInfoBuilder<'a> {
14570 #[inline]
14571 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlags) -> Self {
14572 self.inner.handle_types = value;
14573 self
14574 }
14575 #[inline]
14577 pub fn push_next<T: ExtendsExternalMemoryBufferCreateInfo>(
14578 mut self,
14579 next: &'a mut T,
14580 ) -> Self {
14581 unsafe {
14582 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14583 (*next_ptr).p_next = self.inner.p_next as *mut _;
14584 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14585 core::ffi::c_void,
14586 >(next_ptr) as *const _;
14587 }
14588 self
14589 }
14590}
14591impl<'a> core::ops::Deref for ExternalMemoryBufferCreateInfoBuilder<'a> {
14592 type Target = ExternalMemoryBufferCreateInfo;
14593 #[inline]
14594 fn deref(&self) -> &Self::Target {
14595 &self.inner
14596 }
14597}
14598impl<'a> core::ops::DerefMut for ExternalMemoryBufferCreateInfoBuilder<'a> {
14599 #[inline]
14600 fn deref_mut(&mut self) -> &mut Self::Target {
14601 &mut self.inner
14602 }
14603}
14604pub struct ExportMemoryAllocateInfoBuilder<'a> {
14606 inner: ExportMemoryAllocateInfo,
14607 _marker: core::marker::PhantomData<&'a ()>,
14608}
14609impl ExportMemoryAllocateInfo {
14610 #[inline]
14612 pub fn builder<'a>() -> ExportMemoryAllocateInfoBuilder<'a> {
14613 ExportMemoryAllocateInfoBuilder {
14614 inner: ExportMemoryAllocateInfo {
14615 s_type: StructureType::from_raw(1000072002i32),
14616 ..Default::default()
14617 },
14618 _marker: core::marker::PhantomData,
14619 }
14620 }
14621}
14622impl<'a> ExportMemoryAllocateInfoBuilder<'a> {
14623 #[inline]
14624 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlags) -> Self {
14625 self.inner.handle_types = value;
14626 self
14627 }
14628 #[inline]
14630 pub fn push_next<T: ExtendsExportMemoryAllocateInfo>(
14631 mut self,
14632 next: &'a mut T,
14633 ) -> Self {
14634 unsafe {
14635 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14636 (*next_ptr).p_next = self.inner.p_next as *mut _;
14637 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14638 core::ffi::c_void,
14639 >(next_ptr) as *const _;
14640 }
14641 self
14642 }
14643}
14644impl<'a> core::ops::Deref for ExportMemoryAllocateInfoBuilder<'a> {
14645 type Target = ExportMemoryAllocateInfo;
14646 #[inline]
14647 fn deref(&self) -> &Self::Target {
14648 &self.inner
14649 }
14650}
14651impl<'a> core::ops::DerefMut for ExportMemoryAllocateInfoBuilder<'a> {
14652 #[inline]
14653 fn deref_mut(&mut self) -> &mut Self::Target {
14654 &mut self.inner
14655 }
14656}
14657pub struct ImportMemoryWin32HandleInfoKHRBuilder<'a> {
14659 inner: ImportMemoryWin32HandleInfoKHR,
14660 _marker: core::marker::PhantomData<&'a ()>,
14661}
14662impl ImportMemoryWin32HandleInfoKHR {
14663 #[inline]
14665 pub fn builder<'a>() -> ImportMemoryWin32HandleInfoKHRBuilder<'a> {
14666 ImportMemoryWin32HandleInfoKHRBuilder {
14667 inner: ImportMemoryWin32HandleInfoKHR {
14668 s_type: StructureType::from_raw(1000073000i32),
14669 ..Default::default()
14670 },
14671 _marker: core::marker::PhantomData,
14672 }
14673 }
14674}
14675impl<'a> ImportMemoryWin32HandleInfoKHRBuilder<'a> {
14676 #[inline]
14677 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
14678 self.inner.handle_type = value;
14679 self
14680 }
14681 #[inline]
14682 pub fn handle(mut self, value: isize) -> Self {
14683 self.inner.handle = value;
14684 self
14685 }
14686 #[inline]
14687 pub fn name(mut self, value: *const u16) -> Self {
14688 self.inner.name = value;
14689 self
14690 }
14691 #[inline]
14693 pub fn push_next<T: ExtendsImportMemoryWin32HandleInfoKHR>(
14694 mut self,
14695 next: &'a mut T,
14696 ) -> Self {
14697 unsafe {
14698 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14699 (*next_ptr).p_next = self.inner.p_next as *mut _;
14700 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14701 core::ffi::c_void,
14702 >(next_ptr) as *const _;
14703 }
14704 self
14705 }
14706}
14707impl<'a> core::ops::Deref for ImportMemoryWin32HandleInfoKHRBuilder<'a> {
14708 type Target = ImportMemoryWin32HandleInfoKHR;
14709 #[inline]
14710 fn deref(&self) -> &Self::Target {
14711 &self.inner
14712 }
14713}
14714impl<'a> core::ops::DerefMut for ImportMemoryWin32HandleInfoKHRBuilder<'a> {
14715 #[inline]
14716 fn deref_mut(&mut self) -> &mut Self::Target {
14717 &mut self.inner
14718 }
14719}
14720pub struct ExportMemoryWin32HandleInfoKHRBuilder<'a> {
14722 inner: ExportMemoryWin32HandleInfoKHR,
14723 _marker: core::marker::PhantomData<&'a ()>,
14724}
14725impl ExportMemoryWin32HandleInfoKHR {
14726 #[inline]
14728 pub fn builder<'a>() -> ExportMemoryWin32HandleInfoKHRBuilder<'a> {
14729 ExportMemoryWin32HandleInfoKHRBuilder {
14730 inner: ExportMemoryWin32HandleInfoKHR {
14731 s_type: StructureType::from_raw(1000073001i32),
14732 ..Default::default()
14733 },
14734 _marker: core::marker::PhantomData,
14735 }
14736 }
14737}
14738impl<'a> ExportMemoryWin32HandleInfoKHRBuilder<'a> {
14739 #[inline]
14740 pub fn attributes(mut self, value: *const core::ffi::c_void) -> Self {
14741 self.inner.p_attributes = value;
14742 self
14743 }
14744 #[inline]
14745 pub fn dw_access(mut self, value: u32) -> Self {
14746 self.inner.dw_access = value;
14747 self
14748 }
14749 #[inline]
14750 pub fn name(mut self, value: *const u16) -> Self {
14751 self.inner.name = value;
14752 self
14753 }
14754 #[inline]
14756 pub fn push_next<T: ExtendsExportMemoryWin32HandleInfoKHR>(
14757 mut self,
14758 next: &'a mut T,
14759 ) -> Self {
14760 unsafe {
14761 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14762 (*next_ptr).p_next = self.inner.p_next as *mut _;
14763 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14764 core::ffi::c_void,
14765 >(next_ptr) as *const _;
14766 }
14767 self
14768 }
14769}
14770impl<'a> core::ops::Deref for ExportMemoryWin32HandleInfoKHRBuilder<'a> {
14771 type Target = ExportMemoryWin32HandleInfoKHR;
14772 #[inline]
14773 fn deref(&self) -> &Self::Target {
14774 &self.inner
14775 }
14776}
14777impl<'a> core::ops::DerefMut for ExportMemoryWin32HandleInfoKHRBuilder<'a> {
14778 #[inline]
14779 fn deref_mut(&mut self) -> &mut Self::Target {
14780 &mut self.inner
14781 }
14782}
14783pub struct ImportMemoryZirconHandleInfoFUCHSIABuilder<'a> {
14785 inner: ImportMemoryZirconHandleInfoFUCHSIA,
14786 _marker: core::marker::PhantomData<&'a ()>,
14787}
14788impl ImportMemoryZirconHandleInfoFUCHSIA {
14789 #[inline]
14791 pub fn builder<'a>() -> ImportMemoryZirconHandleInfoFUCHSIABuilder<'a> {
14792 ImportMemoryZirconHandleInfoFUCHSIABuilder {
14793 inner: ImportMemoryZirconHandleInfoFUCHSIA {
14794 s_type: StructureType::from_raw(1000364000i32),
14795 ..Default::default()
14796 },
14797 _marker: core::marker::PhantomData,
14798 }
14799 }
14800}
14801impl<'a> ImportMemoryZirconHandleInfoFUCHSIABuilder<'a> {
14802 #[inline]
14803 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
14804 self.inner.handle_type = value;
14805 self
14806 }
14807 #[inline]
14808 pub fn handle(mut self, value: u32) -> Self {
14809 self.inner.handle = value;
14810 self
14811 }
14812 #[inline]
14814 pub fn push_next<T: ExtendsImportMemoryZirconHandleInfoFUCHSIA>(
14815 mut self,
14816 next: &'a mut T,
14817 ) -> Self {
14818 unsafe {
14819 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14820 (*next_ptr).p_next = self.inner.p_next as *mut _;
14821 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14822 core::ffi::c_void,
14823 >(next_ptr) as *const _;
14824 }
14825 self
14826 }
14827}
14828impl<'a> core::ops::Deref for ImportMemoryZirconHandleInfoFUCHSIABuilder<'a> {
14829 type Target = ImportMemoryZirconHandleInfoFUCHSIA;
14830 #[inline]
14831 fn deref(&self) -> &Self::Target {
14832 &self.inner
14833 }
14834}
14835impl<'a> core::ops::DerefMut for ImportMemoryZirconHandleInfoFUCHSIABuilder<'a> {
14836 #[inline]
14837 fn deref_mut(&mut self) -> &mut Self::Target {
14838 &mut self.inner
14839 }
14840}
14841pub struct MemoryZirconHandlePropertiesFUCHSIABuilder<'a> {
14843 inner: MemoryZirconHandlePropertiesFUCHSIA,
14844 _marker: core::marker::PhantomData<&'a ()>,
14845}
14846impl MemoryZirconHandlePropertiesFUCHSIA {
14847 #[inline]
14849 pub fn builder<'a>() -> MemoryZirconHandlePropertiesFUCHSIABuilder<'a> {
14850 MemoryZirconHandlePropertiesFUCHSIABuilder {
14851 inner: MemoryZirconHandlePropertiesFUCHSIA {
14852 s_type: StructureType::from_raw(1000364001i32),
14853 ..Default::default()
14854 },
14855 _marker: core::marker::PhantomData,
14856 }
14857 }
14858}
14859impl<'a> MemoryZirconHandlePropertiesFUCHSIABuilder<'a> {
14860 #[inline]
14861 pub fn memory_type_bits(mut self, value: u32) -> Self {
14862 self.inner.memory_type_bits = value;
14863 self
14864 }
14865}
14866impl<'a> core::ops::Deref for MemoryZirconHandlePropertiesFUCHSIABuilder<'a> {
14867 type Target = MemoryZirconHandlePropertiesFUCHSIA;
14868 #[inline]
14869 fn deref(&self) -> &Self::Target {
14870 &self.inner
14871 }
14872}
14873impl<'a> core::ops::DerefMut for MemoryZirconHandlePropertiesFUCHSIABuilder<'a> {
14874 #[inline]
14875 fn deref_mut(&mut self) -> &mut Self::Target {
14876 &mut self.inner
14877 }
14878}
14879pub struct MemoryGetZirconHandleInfoFUCHSIABuilder<'a> {
14881 inner: MemoryGetZirconHandleInfoFUCHSIA,
14882 _marker: core::marker::PhantomData<&'a ()>,
14883}
14884impl MemoryGetZirconHandleInfoFUCHSIA {
14885 #[inline]
14887 pub fn builder<'a>() -> MemoryGetZirconHandleInfoFUCHSIABuilder<'a> {
14888 MemoryGetZirconHandleInfoFUCHSIABuilder {
14889 inner: MemoryGetZirconHandleInfoFUCHSIA {
14890 s_type: StructureType::from_raw(1000364002i32),
14891 ..Default::default()
14892 },
14893 _marker: core::marker::PhantomData,
14894 }
14895 }
14896}
14897impl<'a> MemoryGetZirconHandleInfoFUCHSIABuilder<'a> {
14898 #[inline]
14899 pub fn memory(mut self, value: DeviceMemory) -> Self {
14900 self.inner.memory = value;
14901 self
14902 }
14903 #[inline]
14904 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
14905 self.inner.handle_type = value;
14906 self
14907 }
14908 #[inline]
14910 pub fn push_next<T: ExtendsMemoryGetZirconHandleInfoFUCHSIA>(
14911 mut self,
14912 next: &'a mut T,
14913 ) -> Self {
14914 unsafe {
14915 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
14916 (*next_ptr).p_next = self.inner.p_next as *mut _;
14917 self.inner.p_next = <*mut BaseOutStructure>::cast::<
14918 core::ffi::c_void,
14919 >(next_ptr) as *const _;
14920 }
14921 self
14922 }
14923}
14924impl<'a> core::ops::Deref for MemoryGetZirconHandleInfoFUCHSIABuilder<'a> {
14925 type Target = MemoryGetZirconHandleInfoFUCHSIA;
14926 #[inline]
14927 fn deref(&self) -> &Self::Target {
14928 &self.inner
14929 }
14930}
14931impl<'a> core::ops::DerefMut for MemoryGetZirconHandleInfoFUCHSIABuilder<'a> {
14932 #[inline]
14933 fn deref_mut(&mut self) -> &mut Self::Target {
14934 &mut self.inner
14935 }
14936}
14937pub struct MemoryWin32HandlePropertiesKHRBuilder<'a> {
14939 inner: MemoryWin32HandlePropertiesKHR,
14940 _marker: core::marker::PhantomData<&'a ()>,
14941}
14942impl MemoryWin32HandlePropertiesKHR {
14943 #[inline]
14945 pub fn builder<'a>() -> MemoryWin32HandlePropertiesKHRBuilder<'a> {
14946 MemoryWin32HandlePropertiesKHRBuilder {
14947 inner: MemoryWin32HandlePropertiesKHR {
14948 s_type: StructureType::from_raw(1000073002i32),
14949 ..Default::default()
14950 },
14951 _marker: core::marker::PhantomData,
14952 }
14953 }
14954}
14955impl<'a> MemoryWin32HandlePropertiesKHRBuilder<'a> {
14956 #[inline]
14957 pub fn memory_type_bits(mut self, value: u32) -> Self {
14958 self.inner.memory_type_bits = value;
14959 self
14960 }
14961}
14962impl<'a> core::ops::Deref for MemoryWin32HandlePropertiesKHRBuilder<'a> {
14963 type Target = MemoryWin32HandlePropertiesKHR;
14964 #[inline]
14965 fn deref(&self) -> &Self::Target {
14966 &self.inner
14967 }
14968}
14969impl<'a> core::ops::DerefMut for MemoryWin32HandlePropertiesKHRBuilder<'a> {
14970 #[inline]
14971 fn deref_mut(&mut self) -> &mut Self::Target {
14972 &mut self.inner
14973 }
14974}
14975pub struct MemoryGetWin32HandleInfoKHRBuilder<'a> {
14977 inner: MemoryGetWin32HandleInfoKHR,
14978 _marker: core::marker::PhantomData<&'a ()>,
14979}
14980impl MemoryGetWin32HandleInfoKHR {
14981 #[inline]
14983 pub fn builder<'a>() -> MemoryGetWin32HandleInfoKHRBuilder<'a> {
14984 MemoryGetWin32HandleInfoKHRBuilder {
14985 inner: MemoryGetWin32HandleInfoKHR {
14986 s_type: StructureType::from_raw(1000073003i32),
14987 ..Default::default()
14988 },
14989 _marker: core::marker::PhantomData,
14990 }
14991 }
14992}
14993impl<'a> MemoryGetWin32HandleInfoKHRBuilder<'a> {
14994 #[inline]
14995 pub fn memory(mut self, value: DeviceMemory) -> Self {
14996 self.inner.memory = value;
14997 self
14998 }
14999 #[inline]
15000 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
15001 self.inner.handle_type = value;
15002 self
15003 }
15004 #[inline]
15006 pub fn push_next<T: ExtendsMemoryGetWin32HandleInfoKHR>(
15007 mut self,
15008 next: &'a mut T,
15009 ) -> Self {
15010 unsafe {
15011 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15012 (*next_ptr).p_next = self.inner.p_next as *mut _;
15013 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15014 core::ffi::c_void,
15015 >(next_ptr) as *const _;
15016 }
15017 self
15018 }
15019}
15020impl<'a> core::ops::Deref for MemoryGetWin32HandleInfoKHRBuilder<'a> {
15021 type Target = MemoryGetWin32HandleInfoKHR;
15022 #[inline]
15023 fn deref(&self) -> &Self::Target {
15024 &self.inner
15025 }
15026}
15027impl<'a> core::ops::DerefMut for MemoryGetWin32HandleInfoKHRBuilder<'a> {
15028 #[inline]
15029 fn deref_mut(&mut self) -> &mut Self::Target {
15030 &mut self.inner
15031 }
15032}
15033pub struct ImportMemoryFdInfoKHRBuilder<'a> {
15035 inner: ImportMemoryFdInfoKHR,
15036 _marker: core::marker::PhantomData<&'a ()>,
15037}
15038impl ImportMemoryFdInfoKHR {
15039 #[inline]
15041 pub fn builder<'a>() -> ImportMemoryFdInfoKHRBuilder<'a> {
15042 ImportMemoryFdInfoKHRBuilder {
15043 inner: ImportMemoryFdInfoKHR {
15044 s_type: StructureType::from_raw(1000074000i32),
15045 ..Default::default()
15046 },
15047 _marker: core::marker::PhantomData,
15048 }
15049 }
15050}
15051impl<'a> ImportMemoryFdInfoKHRBuilder<'a> {
15052 #[inline]
15053 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
15054 self.inner.handle_type = value;
15055 self
15056 }
15057 #[inline]
15058 pub fn fd(mut self, value: core::ffi::c_int) -> Self {
15059 self.inner.fd = value;
15060 self
15061 }
15062 #[inline]
15064 pub fn push_next<T: ExtendsImportMemoryFdInfoKHR>(
15065 mut self,
15066 next: &'a mut T,
15067 ) -> Self {
15068 unsafe {
15069 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15070 (*next_ptr).p_next = self.inner.p_next as *mut _;
15071 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15072 core::ffi::c_void,
15073 >(next_ptr) as *const _;
15074 }
15075 self
15076 }
15077}
15078impl<'a> core::ops::Deref for ImportMemoryFdInfoKHRBuilder<'a> {
15079 type Target = ImportMemoryFdInfoKHR;
15080 #[inline]
15081 fn deref(&self) -> &Self::Target {
15082 &self.inner
15083 }
15084}
15085impl<'a> core::ops::DerefMut for ImportMemoryFdInfoKHRBuilder<'a> {
15086 #[inline]
15087 fn deref_mut(&mut self) -> &mut Self::Target {
15088 &mut self.inner
15089 }
15090}
15091pub struct MemoryFdPropertiesKHRBuilder<'a> {
15093 inner: MemoryFdPropertiesKHR,
15094 _marker: core::marker::PhantomData<&'a ()>,
15095}
15096impl MemoryFdPropertiesKHR {
15097 #[inline]
15099 pub fn builder<'a>() -> MemoryFdPropertiesKHRBuilder<'a> {
15100 MemoryFdPropertiesKHRBuilder {
15101 inner: MemoryFdPropertiesKHR {
15102 s_type: StructureType::from_raw(1000074001i32),
15103 ..Default::default()
15104 },
15105 _marker: core::marker::PhantomData,
15106 }
15107 }
15108}
15109impl<'a> MemoryFdPropertiesKHRBuilder<'a> {
15110 #[inline]
15111 pub fn memory_type_bits(mut self, value: u32) -> Self {
15112 self.inner.memory_type_bits = value;
15113 self
15114 }
15115}
15116impl<'a> core::ops::Deref for MemoryFdPropertiesKHRBuilder<'a> {
15117 type Target = MemoryFdPropertiesKHR;
15118 #[inline]
15119 fn deref(&self) -> &Self::Target {
15120 &self.inner
15121 }
15122}
15123impl<'a> core::ops::DerefMut for MemoryFdPropertiesKHRBuilder<'a> {
15124 #[inline]
15125 fn deref_mut(&mut self) -> &mut Self::Target {
15126 &mut self.inner
15127 }
15128}
15129pub struct MemoryGetFdInfoKHRBuilder<'a> {
15131 inner: MemoryGetFdInfoKHR,
15132 _marker: core::marker::PhantomData<&'a ()>,
15133}
15134impl MemoryGetFdInfoKHR {
15135 #[inline]
15137 pub fn builder<'a>() -> MemoryGetFdInfoKHRBuilder<'a> {
15138 MemoryGetFdInfoKHRBuilder {
15139 inner: MemoryGetFdInfoKHR {
15140 s_type: StructureType::from_raw(1000074002i32),
15141 ..Default::default()
15142 },
15143 _marker: core::marker::PhantomData,
15144 }
15145 }
15146}
15147impl<'a> MemoryGetFdInfoKHRBuilder<'a> {
15148 #[inline]
15149 pub fn memory(mut self, value: DeviceMemory) -> Self {
15150 self.inner.memory = value;
15151 self
15152 }
15153 #[inline]
15154 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
15155 self.inner.handle_type = value;
15156 self
15157 }
15158 #[inline]
15160 pub fn push_next<T: ExtendsMemoryGetFdInfoKHR>(mut self, next: &'a mut T) -> Self {
15161 unsafe {
15162 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15163 (*next_ptr).p_next = self.inner.p_next as *mut _;
15164 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15165 core::ffi::c_void,
15166 >(next_ptr) as *const _;
15167 }
15168 self
15169 }
15170}
15171impl<'a> core::ops::Deref for MemoryGetFdInfoKHRBuilder<'a> {
15172 type Target = MemoryGetFdInfoKHR;
15173 #[inline]
15174 fn deref(&self) -> &Self::Target {
15175 &self.inner
15176 }
15177}
15178impl<'a> core::ops::DerefMut for MemoryGetFdInfoKHRBuilder<'a> {
15179 #[inline]
15180 fn deref_mut(&mut self) -> &mut Self::Target {
15181 &mut self.inner
15182 }
15183}
15184pub struct Win32KeyedMutexAcquireReleaseInfoKHRBuilder<'a> {
15186 inner: Win32KeyedMutexAcquireReleaseInfoKHR,
15187 _marker: core::marker::PhantomData<&'a ()>,
15188}
15189impl Win32KeyedMutexAcquireReleaseInfoKHR {
15190 #[inline]
15192 pub fn builder<'a>() -> Win32KeyedMutexAcquireReleaseInfoKHRBuilder<'a> {
15193 Win32KeyedMutexAcquireReleaseInfoKHRBuilder {
15194 inner: Win32KeyedMutexAcquireReleaseInfoKHR {
15195 s_type: StructureType::from_raw(1000075000i32),
15196 ..Default::default()
15197 },
15198 _marker: core::marker::PhantomData,
15199 }
15200 }
15201}
15202impl<'a> Win32KeyedMutexAcquireReleaseInfoKHRBuilder<'a> {
15203 #[inline]
15204 pub fn acquire_syncs(mut self, slice: &'a [DeviceMemory]) -> Self {
15205 self.inner.acquire_count = slice.len() as u32;
15206 self.inner.p_acquire_syncs = slice.as_ptr();
15207 self
15208 }
15209 #[inline]
15210 pub fn acquire_keys(mut self, slice: &'a [u64]) -> Self {
15211 self.inner.acquire_count = slice.len() as u32;
15212 self.inner.p_acquire_keys = slice.as_ptr();
15213 self
15214 }
15215 #[inline]
15216 pub fn acquire_timeouts(mut self, slice: &'a [u32]) -> Self {
15217 self.inner.acquire_count = slice.len() as u32;
15218 self.inner.p_acquire_timeouts = slice.as_ptr();
15219 self
15220 }
15221 #[inline]
15222 pub fn release_syncs(mut self, slice: &'a [DeviceMemory]) -> Self {
15223 self.inner.release_count = slice.len() as u32;
15224 self.inner.p_release_syncs = slice.as_ptr();
15225 self
15226 }
15227 #[inline]
15228 pub fn release_keys(mut self, slice: &'a [u64]) -> Self {
15229 self.inner.release_count = slice.len() as u32;
15230 self.inner.p_release_keys = slice.as_ptr();
15231 self
15232 }
15233 #[inline]
15235 pub fn push_next<T: ExtendsWin32KeyedMutexAcquireReleaseInfoKHR>(
15236 mut self,
15237 next: &'a mut T,
15238 ) -> Self {
15239 unsafe {
15240 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15241 (*next_ptr).p_next = self.inner.p_next as *mut _;
15242 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15243 core::ffi::c_void,
15244 >(next_ptr) as *const _;
15245 }
15246 self
15247 }
15248}
15249impl<'a> core::ops::Deref for Win32KeyedMutexAcquireReleaseInfoKHRBuilder<'a> {
15250 type Target = Win32KeyedMutexAcquireReleaseInfoKHR;
15251 #[inline]
15252 fn deref(&self) -> &Self::Target {
15253 &self.inner
15254 }
15255}
15256impl<'a> core::ops::DerefMut for Win32KeyedMutexAcquireReleaseInfoKHRBuilder<'a> {
15257 #[inline]
15258 fn deref_mut(&mut self) -> &mut Self::Target {
15259 &mut self.inner
15260 }
15261}
15262pub struct ImportMemoryMetalHandleInfoEXTBuilder<'a> {
15264 inner: ImportMemoryMetalHandleInfoEXT,
15265 _marker: core::marker::PhantomData<&'a ()>,
15266}
15267impl ImportMemoryMetalHandleInfoEXT {
15268 #[inline]
15270 pub fn builder<'a>() -> ImportMemoryMetalHandleInfoEXTBuilder<'a> {
15271 ImportMemoryMetalHandleInfoEXTBuilder {
15272 inner: ImportMemoryMetalHandleInfoEXT {
15273 s_type: StructureType::from_raw(1000602000i32),
15274 ..Default::default()
15275 },
15276 _marker: core::marker::PhantomData,
15277 }
15278 }
15279}
15280impl<'a> ImportMemoryMetalHandleInfoEXTBuilder<'a> {
15281 #[inline]
15282 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
15283 self.inner.handle_type = value;
15284 self
15285 }
15286 #[inline]
15287 pub fn handle(mut self, value: *mut core::ffi::c_void) -> Self {
15288 self.inner.handle = value;
15289 self
15290 }
15291 #[inline]
15293 pub fn push_next<T: ExtendsImportMemoryMetalHandleInfoEXT>(
15294 mut self,
15295 next: &'a mut T,
15296 ) -> Self {
15297 unsafe {
15298 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15299 (*next_ptr).p_next = self.inner.p_next as *mut _;
15300 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15301 core::ffi::c_void,
15302 >(next_ptr) as *const _;
15303 }
15304 self
15305 }
15306}
15307impl<'a> core::ops::Deref for ImportMemoryMetalHandleInfoEXTBuilder<'a> {
15308 type Target = ImportMemoryMetalHandleInfoEXT;
15309 #[inline]
15310 fn deref(&self) -> &Self::Target {
15311 &self.inner
15312 }
15313}
15314impl<'a> core::ops::DerefMut for ImportMemoryMetalHandleInfoEXTBuilder<'a> {
15315 #[inline]
15316 fn deref_mut(&mut self) -> &mut Self::Target {
15317 &mut self.inner
15318 }
15319}
15320pub struct MemoryMetalHandlePropertiesEXTBuilder<'a> {
15322 inner: MemoryMetalHandlePropertiesEXT,
15323 _marker: core::marker::PhantomData<&'a ()>,
15324}
15325impl MemoryMetalHandlePropertiesEXT {
15326 #[inline]
15328 pub fn builder<'a>() -> MemoryMetalHandlePropertiesEXTBuilder<'a> {
15329 MemoryMetalHandlePropertiesEXTBuilder {
15330 inner: MemoryMetalHandlePropertiesEXT {
15331 s_type: StructureType::from_raw(1000602001i32),
15332 ..Default::default()
15333 },
15334 _marker: core::marker::PhantomData,
15335 }
15336 }
15337}
15338impl<'a> MemoryMetalHandlePropertiesEXTBuilder<'a> {
15339 #[inline]
15340 pub fn memory_type_bits(mut self, value: u32) -> Self {
15341 self.inner.memory_type_bits = value;
15342 self
15343 }
15344}
15345impl<'a> core::ops::Deref for MemoryMetalHandlePropertiesEXTBuilder<'a> {
15346 type Target = MemoryMetalHandlePropertiesEXT;
15347 #[inline]
15348 fn deref(&self) -> &Self::Target {
15349 &self.inner
15350 }
15351}
15352impl<'a> core::ops::DerefMut for MemoryMetalHandlePropertiesEXTBuilder<'a> {
15353 #[inline]
15354 fn deref_mut(&mut self) -> &mut Self::Target {
15355 &mut self.inner
15356 }
15357}
15358pub struct MemoryGetMetalHandleInfoEXTBuilder<'a> {
15360 inner: MemoryGetMetalHandleInfoEXT,
15361 _marker: core::marker::PhantomData<&'a ()>,
15362}
15363impl MemoryGetMetalHandleInfoEXT {
15364 #[inline]
15366 pub fn builder<'a>() -> MemoryGetMetalHandleInfoEXTBuilder<'a> {
15367 MemoryGetMetalHandleInfoEXTBuilder {
15368 inner: MemoryGetMetalHandleInfoEXT {
15369 s_type: StructureType::from_raw(1000602002i32),
15370 ..Default::default()
15371 },
15372 _marker: core::marker::PhantomData,
15373 }
15374 }
15375}
15376impl<'a> MemoryGetMetalHandleInfoEXTBuilder<'a> {
15377 #[inline]
15378 pub fn memory(mut self, value: DeviceMemory) -> Self {
15379 self.inner.memory = value;
15380 self
15381 }
15382 #[inline]
15383 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
15384 self.inner.handle_type = value;
15385 self
15386 }
15387 #[inline]
15389 pub fn push_next<T: ExtendsMemoryGetMetalHandleInfoEXT>(
15390 mut self,
15391 next: &'a mut T,
15392 ) -> Self {
15393 unsafe {
15394 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15395 (*next_ptr).p_next = self.inner.p_next as *mut _;
15396 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15397 core::ffi::c_void,
15398 >(next_ptr) as *const _;
15399 }
15400 self
15401 }
15402}
15403impl<'a> core::ops::Deref for MemoryGetMetalHandleInfoEXTBuilder<'a> {
15404 type Target = MemoryGetMetalHandleInfoEXT;
15405 #[inline]
15406 fn deref(&self) -> &Self::Target {
15407 &self.inner
15408 }
15409}
15410impl<'a> core::ops::DerefMut for MemoryGetMetalHandleInfoEXTBuilder<'a> {
15411 #[inline]
15412 fn deref_mut(&mut self) -> &mut Self::Target {
15413 &mut self.inner
15414 }
15415}
15416pub struct PhysicalDeviceExternalSemaphoreInfoBuilder<'a> {
15418 inner: PhysicalDeviceExternalSemaphoreInfo,
15419 _marker: core::marker::PhantomData<&'a ()>,
15420}
15421impl PhysicalDeviceExternalSemaphoreInfo {
15422 #[inline]
15424 pub fn builder<'a>() -> PhysicalDeviceExternalSemaphoreInfoBuilder<'a> {
15425 PhysicalDeviceExternalSemaphoreInfoBuilder {
15426 inner: PhysicalDeviceExternalSemaphoreInfo {
15427 s_type: StructureType::from_raw(1000076000i32),
15428 ..Default::default()
15429 },
15430 _marker: core::marker::PhantomData,
15431 }
15432 }
15433}
15434impl<'a> PhysicalDeviceExternalSemaphoreInfoBuilder<'a> {
15435 #[inline]
15436 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
15437 self.inner.handle_type = value;
15438 self
15439 }
15440 #[inline]
15442 pub fn push_next<T: ExtendsPhysicalDeviceExternalSemaphoreInfo>(
15443 mut self,
15444 next: &'a mut T,
15445 ) -> Self {
15446 unsafe {
15447 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15448 (*next_ptr).p_next = self.inner.p_next as *mut _;
15449 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15450 core::ffi::c_void,
15451 >(next_ptr) as *const _;
15452 }
15453 self
15454 }
15455}
15456impl<'a> core::ops::Deref for PhysicalDeviceExternalSemaphoreInfoBuilder<'a> {
15457 type Target = PhysicalDeviceExternalSemaphoreInfo;
15458 #[inline]
15459 fn deref(&self) -> &Self::Target {
15460 &self.inner
15461 }
15462}
15463impl<'a> core::ops::DerefMut for PhysicalDeviceExternalSemaphoreInfoBuilder<'a> {
15464 #[inline]
15465 fn deref_mut(&mut self) -> &mut Self::Target {
15466 &mut self.inner
15467 }
15468}
15469pub struct ExternalSemaphorePropertiesBuilder<'a> {
15471 inner: ExternalSemaphoreProperties,
15472 _marker: core::marker::PhantomData<&'a ()>,
15473}
15474impl ExternalSemaphoreProperties {
15475 #[inline]
15477 pub fn builder<'a>() -> ExternalSemaphorePropertiesBuilder<'a> {
15478 ExternalSemaphorePropertiesBuilder {
15479 inner: ExternalSemaphoreProperties {
15480 s_type: StructureType::from_raw(1000076001i32),
15481 ..Default::default()
15482 },
15483 _marker: core::marker::PhantomData,
15484 }
15485 }
15486}
15487impl<'a> ExternalSemaphorePropertiesBuilder<'a> {
15488 #[inline]
15489 pub fn export_from_imported_handle_types(
15490 mut self,
15491 value: ExternalSemaphoreHandleTypeFlags,
15492 ) -> Self {
15493 self.inner.export_from_imported_handle_types = value;
15494 self
15495 }
15496 #[inline]
15497 pub fn compatible_handle_types(
15498 mut self,
15499 value: ExternalSemaphoreHandleTypeFlags,
15500 ) -> Self {
15501 self.inner.compatible_handle_types = value;
15502 self
15503 }
15504 #[inline]
15505 pub fn external_semaphore_features(
15506 mut self,
15507 value: ExternalSemaphoreFeatureFlags,
15508 ) -> Self {
15509 self.inner.external_semaphore_features = value;
15510 self
15511 }
15512}
15513impl<'a> core::ops::Deref for ExternalSemaphorePropertiesBuilder<'a> {
15514 type Target = ExternalSemaphoreProperties;
15515 #[inline]
15516 fn deref(&self) -> &Self::Target {
15517 &self.inner
15518 }
15519}
15520impl<'a> core::ops::DerefMut for ExternalSemaphorePropertiesBuilder<'a> {
15521 #[inline]
15522 fn deref_mut(&mut self) -> &mut Self::Target {
15523 &mut self.inner
15524 }
15525}
15526pub struct ExportSemaphoreCreateInfoBuilder<'a> {
15528 inner: ExportSemaphoreCreateInfo,
15529 _marker: core::marker::PhantomData<&'a ()>,
15530}
15531impl ExportSemaphoreCreateInfo {
15532 #[inline]
15534 pub fn builder<'a>() -> ExportSemaphoreCreateInfoBuilder<'a> {
15535 ExportSemaphoreCreateInfoBuilder {
15536 inner: ExportSemaphoreCreateInfo {
15537 s_type: StructureType::from_raw(1000077000i32),
15538 ..Default::default()
15539 },
15540 _marker: core::marker::PhantomData,
15541 }
15542 }
15543}
15544impl<'a> ExportSemaphoreCreateInfoBuilder<'a> {
15545 #[inline]
15546 pub fn handle_types(mut self, value: ExternalSemaphoreHandleTypeFlags) -> Self {
15547 self.inner.handle_types = value;
15548 self
15549 }
15550 #[inline]
15552 pub fn push_next<T: ExtendsExportSemaphoreCreateInfo>(
15553 mut self,
15554 next: &'a mut T,
15555 ) -> Self {
15556 unsafe {
15557 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15558 (*next_ptr).p_next = self.inner.p_next as *mut _;
15559 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15560 core::ffi::c_void,
15561 >(next_ptr) as *const _;
15562 }
15563 self
15564 }
15565}
15566impl<'a> core::ops::Deref for ExportSemaphoreCreateInfoBuilder<'a> {
15567 type Target = ExportSemaphoreCreateInfo;
15568 #[inline]
15569 fn deref(&self) -> &Self::Target {
15570 &self.inner
15571 }
15572}
15573impl<'a> core::ops::DerefMut for ExportSemaphoreCreateInfoBuilder<'a> {
15574 #[inline]
15575 fn deref_mut(&mut self) -> &mut Self::Target {
15576 &mut self.inner
15577 }
15578}
15579pub struct ImportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15581 inner: ImportSemaphoreWin32HandleInfoKHR,
15582 _marker: core::marker::PhantomData<&'a ()>,
15583}
15584impl ImportSemaphoreWin32HandleInfoKHR {
15585 #[inline]
15587 pub fn builder<'a>() -> ImportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15588 ImportSemaphoreWin32HandleInfoKHRBuilder {
15589 inner: ImportSemaphoreWin32HandleInfoKHR {
15590 s_type: StructureType::from_raw(1000078000i32),
15591 ..Default::default()
15592 },
15593 _marker: core::marker::PhantomData,
15594 }
15595 }
15596}
15597impl<'a> ImportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15598 #[inline]
15599 pub fn semaphore(mut self, value: Semaphore) -> Self {
15600 self.inner.semaphore = value;
15601 self
15602 }
15603 #[inline]
15604 pub fn flags(mut self, value: SemaphoreImportFlags) -> Self {
15605 self.inner.flags = value;
15606 self
15607 }
15608 #[inline]
15609 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
15610 self.inner.handle_type = value;
15611 self
15612 }
15613 #[inline]
15614 pub fn handle(mut self, value: isize) -> Self {
15615 self.inner.handle = value;
15616 self
15617 }
15618 #[inline]
15619 pub fn name(mut self, value: *const u16) -> Self {
15620 self.inner.name = value;
15621 self
15622 }
15623 #[inline]
15625 pub fn push_next<T: ExtendsImportSemaphoreWin32HandleInfoKHR>(
15626 mut self,
15627 next: &'a mut T,
15628 ) -> Self {
15629 unsafe {
15630 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15631 (*next_ptr).p_next = self.inner.p_next as *mut _;
15632 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15633 core::ffi::c_void,
15634 >(next_ptr) as *const _;
15635 }
15636 self
15637 }
15638}
15639impl<'a> core::ops::Deref for ImportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15640 type Target = ImportSemaphoreWin32HandleInfoKHR;
15641 #[inline]
15642 fn deref(&self) -> &Self::Target {
15643 &self.inner
15644 }
15645}
15646impl<'a> core::ops::DerefMut for ImportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15647 #[inline]
15648 fn deref_mut(&mut self) -> &mut Self::Target {
15649 &mut self.inner
15650 }
15651}
15652pub struct ExportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15654 inner: ExportSemaphoreWin32HandleInfoKHR,
15655 _marker: core::marker::PhantomData<&'a ()>,
15656}
15657impl ExportSemaphoreWin32HandleInfoKHR {
15658 #[inline]
15660 pub fn builder<'a>() -> ExportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15661 ExportSemaphoreWin32HandleInfoKHRBuilder {
15662 inner: ExportSemaphoreWin32HandleInfoKHR {
15663 s_type: StructureType::from_raw(1000078001i32),
15664 ..Default::default()
15665 },
15666 _marker: core::marker::PhantomData,
15667 }
15668 }
15669}
15670impl<'a> ExportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15671 #[inline]
15672 pub fn attributes(mut self, value: *const core::ffi::c_void) -> Self {
15673 self.inner.p_attributes = value;
15674 self
15675 }
15676 #[inline]
15677 pub fn dw_access(mut self, value: u32) -> Self {
15678 self.inner.dw_access = value;
15679 self
15680 }
15681 #[inline]
15682 pub fn name(mut self, value: *const u16) -> Self {
15683 self.inner.name = value;
15684 self
15685 }
15686 #[inline]
15688 pub fn push_next<T: ExtendsExportSemaphoreWin32HandleInfoKHR>(
15689 mut self,
15690 next: &'a mut T,
15691 ) -> Self {
15692 unsafe {
15693 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15694 (*next_ptr).p_next = self.inner.p_next as *mut _;
15695 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15696 core::ffi::c_void,
15697 >(next_ptr) as *const _;
15698 }
15699 self
15700 }
15701}
15702impl<'a> core::ops::Deref for ExportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15703 type Target = ExportSemaphoreWin32HandleInfoKHR;
15704 #[inline]
15705 fn deref(&self) -> &Self::Target {
15706 &self.inner
15707 }
15708}
15709impl<'a> core::ops::DerefMut for ExportSemaphoreWin32HandleInfoKHRBuilder<'a> {
15710 #[inline]
15711 fn deref_mut(&mut self) -> &mut Self::Target {
15712 &mut self.inner
15713 }
15714}
15715pub struct D3D12FenceSubmitInfoKHRBuilder<'a> {
15717 inner: D3D12FenceSubmitInfoKHR,
15718 _marker: core::marker::PhantomData<&'a ()>,
15719}
15720impl D3D12FenceSubmitInfoKHR {
15721 #[inline]
15723 pub fn builder<'a>() -> D3D12FenceSubmitInfoKHRBuilder<'a> {
15724 D3D12FenceSubmitInfoKHRBuilder {
15725 inner: D3D12FenceSubmitInfoKHR {
15726 s_type: StructureType::from_raw(1000078002i32),
15727 ..Default::default()
15728 },
15729 _marker: core::marker::PhantomData,
15730 }
15731 }
15732}
15733impl<'a> D3D12FenceSubmitInfoKHRBuilder<'a> {
15734 #[inline]
15735 pub fn wait_semaphore_values_count(mut self, value: u32) -> Self {
15736 self.inner.wait_semaphore_values_count = value;
15737 self
15738 }
15739 #[inline]
15740 pub fn wait_semaphore_values(mut self, slice: &'a [u64]) -> Self {
15741 self.inner.wait_semaphore_values_count = slice.len() as u32;
15742 self.inner.p_wait_semaphore_values = slice.as_ptr();
15743 self
15744 }
15745 #[inline]
15746 pub fn signal_semaphore_values_count(mut self, value: u32) -> Self {
15747 self.inner.signal_semaphore_values_count = value;
15748 self
15749 }
15750 #[inline]
15751 pub fn signal_semaphore_values(mut self, slice: &'a [u64]) -> Self {
15752 self.inner.signal_semaphore_values_count = slice.len() as u32;
15753 self.inner.p_signal_semaphore_values = slice.as_ptr();
15754 self
15755 }
15756 #[inline]
15758 pub fn push_next<T: ExtendsD3D12FenceSubmitInfoKHR>(
15759 mut self,
15760 next: &'a mut T,
15761 ) -> Self {
15762 unsafe {
15763 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15764 (*next_ptr).p_next = self.inner.p_next as *mut _;
15765 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15766 core::ffi::c_void,
15767 >(next_ptr) as *const _;
15768 }
15769 self
15770 }
15771}
15772impl<'a> core::ops::Deref for D3D12FenceSubmitInfoKHRBuilder<'a> {
15773 type Target = D3D12FenceSubmitInfoKHR;
15774 #[inline]
15775 fn deref(&self) -> &Self::Target {
15776 &self.inner
15777 }
15778}
15779impl<'a> core::ops::DerefMut for D3D12FenceSubmitInfoKHRBuilder<'a> {
15780 #[inline]
15781 fn deref_mut(&mut self) -> &mut Self::Target {
15782 &mut self.inner
15783 }
15784}
15785pub struct SemaphoreGetWin32HandleInfoKHRBuilder<'a> {
15787 inner: SemaphoreGetWin32HandleInfoKHR,
15788 _marker: core::marker::PhantomData<&'a ()>,
15789}
15790impl SemaphoreGetWin32HandleInfoKHR {
15791 #[inline]
15793 pub fn builder<'a>() -> SemaphoreGetWin32HandleInfoKHRBuilder<'a> {
15794 SemaphoreGetWin32HandleInfoKHRBuilder {
15795 inner: SemaphoreGetWin32HandleInfoKHR {
15796 s_type: StructureType::from_raw(1000078003i32),
15797 ..Default::default()
15798 },
15799 _marker: core::marker::PhantomData,
15800 }
15801 }
15802}
15803impl<'a> SemaphoreGetWin32HandleInfoKHRBuilder<'a> {
15804 #[inline]
15805 pub fn semaphore(mut self, value: Semaphore) -> Self {
15806 self.inner.semaphore = value;
15807 self
15808 }
15809 #[inline]
15810 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
15811 self.inner.handle_type = value;
15812 self
15813 }
15814 #[inline]
15816 pub fn push_next<T: ExtendsSemaphoreGetWin32HandleInfoKHR>(
15817 mut self,
15818 next: &'a mut T,
15819 ) -> Self {
15820 unsafe {
15821 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15822 (*next_ptr).p_next = self.inner.p_next as *mut _;
15823 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15824 core::ffi::c_void,
15825 >(next_ptr) as *const _;
15826 }
15827 self
15828 }
15829}
15830impl<'a> core::ops::Deref for SemaphoreGetWin32HandleInfoKHRBuilder<'a> {
15831 type Target = SemaphoreGetWin32HandleInfoKHR;
15832 #[inline]
15833 fn deref(&self) -> &Self::Target {
15834 &self.inner
15835 }
15836}
15837impl<'a> core::ops::DerefMut for SemaphoreGetWin32HandleInfoKHRBuilder<'a> {
15838 #[inline]
15839 fn deref_mut(&mut self) -> &mut Self::Target {
15840 &mut self.inner
15841 }
15842}
15843pub struct ImportSemaphoreFdInfoKHRBuilder<'a> {
15845 inner: ImportSemaphoreFdInfoKHR,
15846 _marker: core::marker::PhantomData<&'a ()>,
15847}
15848impl ImportSemaphoreFdInfoKHR {
15849 #[inline]
15851 pub fn builder<'a>() -> ImportSemaphoreFdInfoKHRBuilder<'a> {
15852 ImportSemaphoreFdInfoKHRBuilder {
15853 inner: ImportSemaphoreFdInfoKHR {
15854 s_type: StructureType::from_raw(1000079000i32),
15855 ..Default::default()
15856 },
15857 _marker: core::marker::PhantomData,
15858 }
15859 }
15860}
15861impl<'a> ImportSemaphoreFdInfoKHRBuilder<'a> {
15862 #[inline]
15863 pub fn semaphore(mut self, value: Semaphore) -> Self {
15864 self.inner.semaphore = value;
15865 self
15866 }
15867 #[inline]
15868 pub fn flags(mut self, value: SemaphoreImportFlags) -> Self {
15869 self.inner.flags = value;
15870 self
15871 }
15872 #[inline]
15873 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
15874 self.inner.handle_type = value;
15875 self
15876 }
15877 #[inline]
15878 pub fn fd(mut self, value: core::ffi::c_int) -> Self {
15879 self.inner.fd = value;
15880 self
15881 }
15882 #[inline]
15884 pub fn push_next<T: ExtendsImportSemaphoreFdInfoKHR>(
15885 mut self,
15886 next: &'a mut T,
15887 ) -> Self {
15888 unsafe {
15889 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15890 (*next_ptr).p_next = self.inner.p_next as *mut _;
15891 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15892 core::ffi::c_void,
15893 >(next_ptr) as *const _;
15894 }
15895 self
15896 }
15897}
15898impl<'a> core::ops::Deref for ImportSemaphoreFdInfoKHRBuilder<'a> {
15899 type Target = ImportSemaphoreFdInfoKHR;
15900 #[inline]
15901 fn deref(&self) -> &Self::Target {
15902 &self.inner
15903 }
15904}
15905impl<'a> core::ops::DerefMut for ImportSemaphoreFdInfoKHRBuilder<'a> {
15906 #[inline]
15907 fn deref_mut(&mut self) -> &mut Self::Target {
15908 &mut self.inner
15909 }
15910}
15911pub struct SemaphoreGetFdInfoKHRBuilder<'a> {
15913 inner: SemaphoreGetFdInfoKHR,
15914 _marker: core::marker::PhantomData<&'a ()>,
15915}
15916impl SemaphoreGetFdInfoKHR {
15917 #[inline]
15919 pub fn builder<'a>() -> SemaphoreGetFdInfoKHRBuilder<'a> {
15920 SemaphoreGetFdInfoKHRBuilder {
15921 inner: SemaphoreGetFdInfoKHR {
15922 s_type: StructureType::from_raw(1000079001i32),
15923 ..Default::default()
15924 },
15925 _marker: core::marker::PhantomData,
15926 }
15927 }
15928}
15929impl<'a> SemaphoreGetFdInfoKHRBuilder<'a> {
15930 #[inline]
15931 pub fn semaphore(mut self, value: Semaphore) -> Self {
15932 self.inner.semaphore = value;
15933 self
15934 }
15935 #[inline]
15936 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
15937 self.inner.handle_type = value;
15938 self
15939 }
15940 #[inline]
15942 pub fn push_next<T: ExtendsSemaphoreGetFdInfoKHR>(
15943 mut self,
15944 next: &'a mut T,
15945 ) -> Self {
15946 unsafe {
15947 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
15948 (*next_ptr).p_next = self.inner.p_next as *mut _;
15949 self.inner.p_next = <*mut BaseOutStructure>::cast::<
15950 core::ffi::c_void,
15951 >(next_ptr) as *const _;
15952 }
15953 self
15954 }
15955}
15956impl<'a> core::ops::Deref for SemaphoreGetFdInfoKHRBuilder<'a> {
15957 type Target = SemaphoreGetFdInfoKHR;
15958 #[inline]
15959 fn deref(&self) -> &Self::Target {
15960 &self.inner
15961 }
15962}
15963impl<'a> core::ops::DerefMut for SemaphoreGetFdInfoKHRBuilder<'a> {
15964 #[inline]
15965 fn deref_mut(&mut self) -> &mut Self::Target {
15966 &mut self.inner
15967 }
15968}
15969pub struct ImportSemaphoreZirconHandleInfoFUCHSIABuilder<'a> {
15971 inner: ImportSemaphoreZirconHandleInfoFUCHSIA,
15972 _marker: core::marker::PhantomData<&'a ()>,
15973}
15974impl ImportSemaphoreZirconHandleInfoFUCHSIA {
15975 #[inline]
15977 pub fn builder<'a>() -> ImportSemaphoreZirconHandleInfoFUCHSIABuilder<'a> {
15978 ImportSemaphoreZirconHandleInfoFUCHSIABuilder {
15979 inner: ImportSemaphoreZirconHandleInfoFUCHSIA {
15980 s_type: StructureType::from_raw(1000365000i32),
15981 ..Default::default()
15982 },
15983 _marker: core::marker::PhantomData,
15984 }
15985 }
15986}
15987impl<'a> ImportSemaphoreZirconHandleInfoFUCHSIABuilder<'a> {
15988 #[inline]
15989 pub fn semaphore(mut self, value: Semaphore) -> Self {
15990 self.inner.semaphore = value;
15991 self
15992 }
15993 #[inline]
15994 pub fn flags(mut self, value: SemaphoreImportFlags) -> Self {
15995 self.inner.flags = value;
15996 self
15997 }
15998 #[inline]
15999 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
16000 self.inner.handle_type = value;
16001 self
16002 }
16003 #[inline]
16004 pub fn zircon_handle(mut self, value: u32) -> Self {
16005 self.inner.zircon_handle = value;
16006 self
16007 }
16008 #[inline]
16010 pub fn push_next<T: ExtendsImportSemaphoreZirconHandleInfoFUCHSIA>(
16011 mut self,
16012 next: &'a mut T,
16013 ) -> Self {
16014 unsafe {
16015 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16016 (*next_ptr).p_next = self.inner.p_next as *mut _;
16017 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16018 core::ffi::c_void,
16019 >(next_ptr) as *const _;
16020 }
16021 self
16022 }
16023}
16024impl<'a> core::ops::Deref for ImportSemaphoreZirconHandleInfoFUCHSIABuilder<'a> {
16025 type Target = ImportSemaphoreZirconHandleInfoFUCHSIA;
16026 #[inline]
16027 fn deref(&self) -> &Self::Target {
16028 &self.inner
16029 }
16030}
16031impl<'a> core::ops::DerefMut for ImportSemaphoreZirconHandleInfoFUCHSIABuilder<'a> {
16032 #[inline]
16033 fn deref_mut(&mut self) -> &mut Self::Target {
16034 &mut self.inner
16035 }
16036}
16037pub struct SemaphoreGetZirconHandleInfoFUCHSIABuilder<'a> {
16039 inner: SemaphoreGetZirconHandleInfoFUCHSIA,
16040 _marker: core::marker::PhantomData<&'a ()>,
16041}
16042impl SemaphoreGetZirconHandleInfoFUCHSIA {
16043 #[inline]
16045 pub fn builder<'a>() -> SemaphoreGetZirconHandleInfoFUCHSIABuilder<'a> {
16046 SemaphoreGetZirconHandleInfoFUCHSIABuilder {
16047 inner: SemaphoreGetZirconHandleInfoFUCHSIA {
16048 s_type: StructureType::from_raw(1000365001i32),
16049 ..Default::default()
16050 },
16051 _marker: core::marker::PhantomData,
16052 }
16053 }
16054}
16055impl<'a> SemaphoreGetZirconHandleInfoFUCHSIABuilder<'a> {
16056 #[inline]
16057 pub fn semaphore(mut self, value: Semaphore) -> Self {
16058 self.inner.semaphore = value;
16059 self
16060 }
16061 #[inline]
16062 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
16063 self.inner.handle_type = value;
16064 self
16065 }
16066 #[inline]
16068 pub fn push_next<T: ExtendsSemaphoreGetZirconHandleInfoFUCHSIA>(
16069 mut self,
16070 next: &'a mut T,
16071 ) -> Self {
16072 unsafe {
16073 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16074 (*next_ptr).p_next = self.inner.p_next as *mut _;
16075 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16076 core::ffi::c_void,
16077 >(next_ptr) as *const _;
16078 }
16079 self
16080 }
16081}
16082impl<'a> core::ops::Deref for SemaphoreGetZirconHandleInfoFUCHSIABuilder<'a> {
16083 type Target = SemaphoreGetZirconHandleInfoFUCHSIA;
16084 #[inline]
16085 fn deref(&self) -> &Self::Target {
16086 &self.inner
16087 }
16088}
16089impl<'a> core::ops::DerefMut for SemaphoreGetZirconHandleInfoFUCHSIABuilder<'a> {
16090 #[inline]
16091 fn deref_mut(&mut self) -> &mut Self::Target {
16092 &mut self.inner
16093 }
16094}
16095pub struct PhysicalDeviceExternalFenceInfoBuilder<'a> {
16097 inner: PhysicalDeviceExternalFenceInfo,
16098 _marker: core::marker::PhantomData<&'a ()>,
16099}
16100impl PhysicalDeviceExternalFenceInfo {
16101 #[inline]
16103 pub fn builder<'a>() -> PhysicalDeviceExternalFenceInfoBuilder<'a> {
16104 PhysicalDeviceExternalFenceInfoBuilder {
16105 inner: PhysicalDeviceExternalFenceInfo {
16106 s_type: StructureType::from_raw(1000112000i32),
16107 ..Default::default()
16108 },
16109 _marker: core::marker::PhantomData,
16110 }
16111 }
16112}
16113impl<'a> PhysicalDeviceExternalFenceInfoBuilder<'a> {
16114 #[inline]
16115 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16116 self.inner.handle_type = value;
16117 self
16118 }
16119 #[inline]
16121 pub fn push_next<T: ExtendsPhysicalDeviceExternalFenceInfo>(
16122 mut self,
16123 next: &'a mut T,
16124 ) -> Self {
16125 unsafe {
16126 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16127 (*next_ptr).p_next = self.inner.p_next as *mut _;
16128 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16129 core::ffi::c_void,
16130 >(next_ptr) as *const _;
16131 }
16132 self
16133 }
16134}
16135impl<'a> core::ops::Deref for PhysicalDeviceExternalFenceInfoBuilder<'a> {
16136 type Target = PhysicalDeviceExternalFenceInfo;
16137 #[inline]
16138 fn deref(&self) -> &Self::Target {
16139 &self.inner
16140 }
16141}
16142impl<'a> core::ops::DerefMut for PhysicalDeviceExternalFenceInfoBuilder<'a> {
16143 #[inline]
16144 fn deref_mut(&mut self) -> &mut Self::Target {
16145 &mut self.inner
16146 }
16147}
16148pub struct ExternalFencePropertiesBuilder<'a> {
16150 inner: ExternalFenceProperties,
16151 _marker: core::marker::PhantomData<&'a ()>,
16152}
16153impl ExternalFenceProperties {
16154 #[inline]
16156 pub fn builder<'a>() -> ExternalFencePropertiesBuilder<'a> {
16157 ExternalFencePropertiesBuilder {
16158 inner: ExternalFenceProperties {
16159 s_type: StructureType::from_raw(1000112001i32),
16160 ..Default::default()
16161 },
16162 _marker: core::marker::PhantomData,
16163 }
16164 }
16165}
16166impl<'a> ExternalFencePropertiesBuilder<'a> {
16167 #[inline]
16168 pub fn export_from_imported_handle_types(
16169 mut self,
16170 value: ExternalFenceHandleTypeFlags,
16171 ) -> Self {
16172 self.inner.export_from_imported_handle_types = value;
16173 self
16174 }
16175 #[inline]
16176 pub fn compatible_handle_types(
16177 mut self,
16178 value: ExternalFenceHandleTypeFlags,
16179 ) -> Self {
16180 self.inner.compatible_handle_types = value;
16181 self
16182 }
16183 #[inline]
16184 pub fn external_fence_features(mut self, value: ExternalFenceFeatureFlags) -> Self {
16185 self.inner.external_fence_features = value;
16186 self
16187 }
16188}
16189impl<'a> core::ops::Deref for ExternalFencePropertiesBuilder<'a> {
16190 type Target = ExternalFenceProperties;
16191 #[inline]
16192 fn deref(&self) -> &Self::Target {
16193 &self.inner
16194 }
16195}
16196impl<'a> core::ops::DerefMut for ExternalFencePropertiesBuilder<'a> {
16197 #[inline]
16198 fn deref_mut(&mut self) -> &mut Self::Target {
16199 &mut self.inner
16200 }
16201}
16202pub struct ExportFenceCreateInfoBuilder<'a> {
16204 inner: ExportFenceCreateInfo,
16205 _marker: core::marker::PhantomData<&'a ()>,
16206}
16207impl ExportFenceCreateInfo {
16208 #[inline]
16210 pub fn builder<'a>() -> ExportFenceCreateInfoBuilder<'a> {
16211 ExportFenceCreateInfoBuilder {
16212 inner: ExportFenceCreateInfo {
16213 s_type: StructureType::from_raw(1000113000i32),
16214 ..Default::default()
16215 },
16216 _marker: core::marker::PhantomData,
16217 }
16218 }
16219}
16220impl<'a> ExportFenceCreateInfoBuilder<'a> {
16221 #[inline]
16222 pub fn handle_types(mut self, value: ExternalFenceHandleTypeFlags) -> Self {
16223 self.inner.handle_types = value;
16224 self
16225 }
16226 #[inline]
16228 pub fn push_next<T: ExtendsExportFenceCreateInfo>(
16229 mut self,
16230 next: &'a mut T,
16231 ) -> Self {
16232 unsafe {
16233 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16234 (*next_ptr).p_next = self.inner.p_next as *mut _;
16235 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16236 core::ffi::c_void,
16237 >(next_ptr) as *const _;
16238 }
16239 self
16240 }
16241}
16242impl<'a> core::ops::Deref for ExportFenceCreateInfoBuilder<'a> {
16243 type Target = ExportFenceCreateInfo;
16244 #[inline]
16245 fn deref(&self) -> &Self::Target {
16246 &self.inner
16247 }
16248}
16249impl<'a> core::ops::DerefMut for ExportFenceCreateInfoBuilder<'a> {
16250 #[inline]
16251 fn deref_mut(&mut self) -> &mut Self::Target {
16252 &mut self.inner
16253 }
16254}
16255pub struct ImportFenceWin32HandleInfoKHRBuilder<'a> {
16257 inner: ImportFenceWin32HandleInfoKHR,
16258 _marker: core::marker::PhantomData<&'a ()>,
16259}
16260impl ImportFenceWin32HandleInfoKHR {
16261 #[inline]
16263 pub fn builder<'a>() -> ImportFenceWin32HandleInfoKHRBuilder<'a> {
16264 ImportFenceWin32HandleInfoKHRBuilder {
16265 inner: ImportFenceWin32HandleInfoKHR {
16266 s_type: StructureType::from_raw(1000114000i32),
16267 ..Default::default()
16268 },
16269 _marker: core::marker::PhantomData,
16270 }
16271 }
16272}
16273impl<'a> ImportFenceWin32HandleInfoKHRBuilder<'a> {
16274 #[inline]
16275 pub fn fence(mut self, value: Fence) -> Self {
16276 self.inner.fence = value;
16277 self
16278 }
16279 #[inline]
16280 pub fn flags(mut self, value: FenceImportFlags) -> Self {
16281 self.inner.flags = value;
16282 self
16283 }
16284 #[inline]
16285 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16286 self.inner.handle_type = value;
16287 self
16288 }
16289 #[inline]
16290 pub fn handle(mut self, value: isize) -> Self {
16291 self.inner.handle = value;
16292 self
16293 }
16294 #[inline]
16295 pub fn name(mut self, value: *const u16) -> Self {
16296 self.inner.name = value;
16297 self
16298 }
16299 #[inline]
16301 pub fn push_next<T: ExtendsImportFenceWin32HandleInfoKHR>(
16302 mut self,
16303 next: &'a mut T,
16304 ) -> Self {
16305 unsafe {
16306 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16307 (*next_ptr).p_next = self.inner.p_next as *mut _;
16308 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16309 core::ffi::c_void,
16310 >(next_ptr) as *const _;
16311 }
16312 self
16313 }
16314}
16315impl<'a> core::ops::Deref for ImportFenceWin32HandleInfoKHRBuilder<'a> {
16316 type Target = ImportFenceWin32HandleInfoKHR;
16317 #[inline]
16318 fn deref(&self) -> &Self::Target {
16319 &self.inner
16320 }
16321}
16322impl<'a> core::ops::DerefMut for ImportFenceWin32HandleInfoKHRBuilder<'a> {
16323 #[inline]
16324 fn deref_mut(&mut self) -> &mut Self::Target {
16325 &mut self.inner
16326 }
16327}
16328pub struct ExportFenceWin32HandleInfoKHRBuilder<'a> {
16330 inner: ExportFenceWin32HandleInfoKHR,
16331 _marker: core::marker::PhantomData<&'a ()>,
16332}
16333impl ExportFenceWin32HandleInfoKHR {
16334 #[inline]
16336 pub fn builder<'a>() -> ExportFenceWin32HandleInfoKHRBuilder<'a> {
16337 ExportFenceWin32HandleInfoKHRBuilder {
16338 inner: ExportFenceWin32HandleInfoKHR {
16339 s_type: StructureType::from_raw(1000114001i32),
16340 ..Default::default()
16341 },
16342 _marker: core::marker::PhantomData,
16343 }
16344 }
16345}
16346impl<'a> ExportFenceWin32HandleInfoKHRBuilder<'a> {
16347 #[inline]
16348 pub fn attributes(mut self, value: *const core::ffi::c_void) -> Self {
16349 self.inner.p_attributes = value;
16350 self
16351 }
16352 #[inline]
16353 pub fn dw_access(mut self, value: u32) -> Self {
16354 self.inner.dw_access = value;
16355 self
16356 }
16357 #[inline]
16358 pub fn name(mut self, value: *const u16) -> Self {
16359 self.inner.name = value;
16360 self
16361 }
16362 #[inline]
16364 pub fn push_next<T: ExtendsExportFenceWin32HandleInfoKHR>(
16365 mut self,
16366 next: &'a mut T,
16367 ) -> Self {
16368 unsafe {
16369 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16370 (*next_ptr).p_next = self.inner.p_next as *mut _;
16371 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16372 core::ffi::c_void,
16373 >(next_ptr) as *const _;
16374 }
16375 self
16376 }
16377}
16378impl<'a> core::ops::Deref for ExportFenceWin32HandleInfoKHRBuilder<'a> {
16379 type Target = ExportFenceWin32HandleInfoKHR;
16380 #[inline]
16381 fn deref(&self) -> &Self::Target {
16382 &self.inner
16383 }
16384}
16385impl<'a> core::ops::DerefMut for ExportFenceWin32HandleInfoKHRBuilder<'a> {
16386 #[inline]
16387 fn deref_mut(&mut self) -> &mut Self::Target {
16388 &mut self.inner
16389 }
16390}
16391pub struct FenceGetWin32HandleInfoKHRBuilder<'a> {
16393 inner: FenceGetWin32HandleInfoKHR,
16394 _marker: core::marker::PhantomData<&'a ()>,
16395}
16396impl FenceGetWin32HandleInfoKHR {
16397 #[inline]
16399 pub fn builder<'a>() -> FenceGetWin32HandleInfoKHRBuilder<'a> {
16400 FenceGetWin32HandleInfoKHRBuilder {
16401 inner: FenceGetWin32HandleInfoKHR {
16402 s_type: StructureType::from_raw(1000114002i32),
16403 ..Default::default()
16404 },
16405 _marker: core::marker::PhantomData,
16406 }
16407 }
16408}
16409impl<'a> FenceGetWin32HandleInfoKHRBuilder<'a> {
16410 #[inline]
16411 pub fn fence(mut self, value: Fence) -> Self {
16412 self.inner.fence = value;
16413 self
16414 }
16415 #[inline]
16416 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16417 self.inner.handle_type = value;
16418 self
16419 }
16420 #[inline]
16422 pub fn push_next<T: ExtendsFenceGetWin32HandleInfoKHR>(
16423 mut self,
16424 next: &'a mut T,
16425 ) -> Self {
16426 unsafe {
16427 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16428 (*next_ptr).p_next = self.inner.p_next as *mut _;
16429 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16430 core::ffi::c_void,
16431 >(next_ptr) as *const _;
16432 }
16433 self
16434 }
16435}
16436impl<'a> core::ops::Deref for FenceGetWin32HandleInfoKHRBuilder<'a> {
16437 type Target = FenceGetWin32HandleInfoKHR;
16438 #[inline]
16439 fn deref(&self) -> &Self::Target {
16440 &self.inner
16441 }
16442}
16443impl<'a> core::ops::DerefMut for FenceGetWin32HandleInfoKHRBuilder<'a> {
16444 #[inline]
16445 fn deref_mut(&mut self) -> &mut Self::Target {
16446 &mut self.inner
16447 }
16448}
16449pub struct ImportFenceFdInfoKHRBuilder<'a> {
16451 inner: ImportFenceFdInfoKHR,
16452 _marker: core::marker::PhantomData<&'a ()>,
16453}
16454impl ImportFenceFdInfoKHR {
16455 #[inline]
16457 pub fn builder<'a>() -> ImportFenceFdInfoKHRBuilder<'a> {
16458 ImportFenceFdInfoKHRBuilder {
16459 inner: ImportFenceFdInfoKHR {
16460 s_type: StructureType::from_raw(1000115000i32),
16461 ..Default::default()
16462 },
16463 _marker: core::marker::PhantomData,
16464 }
16465 }
16466}
16467impl<'a> ImportFenceFdInfoKHRBuilder<'a> {
16468 #[inline]
16469 pub fn fence(mut self, value: Fence) -> Self {
16470 self.inner.fence = value;
16471 self
16472 }
16473 #[inline]
16474 pub fn flags(mut self, value: FenceImportFlags) -> Self {
16475 self.inner.flags = value;
16476 self
16477 }
16478 #[inline]
16479 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16480 self.inner.handle_type = value;
16481 self
16482 }
16483 #[inline]
16484 pub fn fd(mut self, value: core::ffi::c_int) -> Self {
16485 self.inner.fd = value;
16486 self
16487 }
16488 #[inline]
16490 pub fn push_next<T: ExtendsImportFenceFdInfoKHR>(mut self, next: &'a mut T) -> Self {
16491 unsafe {
16492 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16493 (*next_ptr).p_next = self.inner.p_next as *mut _;
16494 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16495 core::ffi::c_void,
16496 >(next_ptr) as *const _;
16497 }
16498 self
16499 }
16500}
16501impl<'a> core::ops::Deref for ImportFenceFdInfoKHRBuilder<'a> {
16502 type Target = ImportFenceFdInfoKHR;
16503 #[inline]
16504 fn deref(&self) -> &Self::Target {
16505 &self.inner
16506 }
16507}
16508impl<'a> core::ops::DerefMut for ImportFenceFdInfoKHRBuilder<'a> {
16509 #[inline]
16510 fn deref_mut(&mut self) -> &mut Self::Target {
16511 &mut self.inner
16512 }
16513}
16514pub struct FenceGetFdInfoKHRBuilder<'a> {
16516 inner: FenceGetFdInfoKHR,
16517 _marker: core::marker::PhantomData<&'a ()>,
16518}
16519impl FenceGetFdInfoKHR {
16520 #[inline]
16522 pub fn builder<'a>() -> FenceGetFdInfoKHRBuilder<'a> {
16523 FenceGetFdInfoKHRBuilder {
16524 inner: FenceGetFdInfoKHR {
16525 s_type: StructureType::from_raw(1000115001i32),
16526 ..Default::default()
16527 },
16528 _marker: core::marker::PhantomData,
16529 }
16530 }
16531}
16532impl<'a> FenceGetFdInfoKHRBuilder<'a> {
16533 #[inline]
16534 pub fn fence(mut self, value: Fence) -> Self {
16535 self.inner.fence = value;
16536 self
16537 }
16538 #[inline]
16539 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16540 self.inner.handle_type = value;
16541 self
16542 }
16543 #[inline]
16545 pub fn push_next<T: ExtendsFenceGetFdInfoKHR>(mut self, next: &'a mut T) -> Self {
16546 unsafe {
16547 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16548 (*next_ptr).p_next = self.inner.p_next as *mut _;
16549 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16550 core::ffi::c_void,
16551 >(next_ptr) as *const _;
16552 }
16553 self
16554 }
16555}
16556impl<'a> core::ops::Deref for FenceGetFdInfoKHRBuilder<'a> {
16557 type Target = FenceGetFdInfoKHR;
16558 #[inline]
16559 fn deref(&self) -> &Self::Target {
16560 &self.inner
16561 }
16562}
16563impl<'a> core::ops::DerefMut for FenceGetFdInfoKHRBuilder<'a> {
16564 #[inline]
16565 fn deref_mut(&mut self) -> &mut Self::Target {
16566 &mut self.inner
16567 }
16568}
16569pub struct ExportFenceSciSyncInfoNVBuilder<'a> {
16571 inner: ExportFenceSciSyncInfoNV,
16572 _marker: core::marker::PhantomData<&'a ()>,
16573}
16574impl ExportFenceSciSyncInfoNV {
16575 #[inline]
16577 pub fn builder<'a>() -> ExportFenceSciSyncInfoNVBuilder<'a> {
16578 ExportFenceSciSyncInfoNVBuilder {
16579 inner: ExportFenceSciSyncInfoNV {
16580 s_type: Default::default(),
16581 ..Default::default()
16582 },
16583 _marker: core::marker::PhantomData,
16584 }
16585 }
16586}
16587impl<'a> ExportFenceSciSyncInfoNVBuilder<'a> {
16588 #[inline]
16589 pub fn p_attributes(mut self, value: *const core::ffi::c_void) -> Self {
16590 self.inner.p_attributes = value;
16591 self
16592 }
16593 #[inline]
16595 pub fn push_next<T: ExtendsExportFenceSciSyncInfoNV>(
16596 mut self,
16597 next: &'a mut T,
16598 ) -> Self {
16599 unsafe {
16600 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16601 (*next_ptr).p_next = self.inner.p_next as *mut _;
16602 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16603 core::ffi::c_void,
16604 >(next_ptr) as *const _;
16605 }
16606 self
16607 }
16608}
16609impl<'a> core::ops::Deref for ExportFenceSciSyncInfoNVBuilder<'a> {
16610 type Target = ExportFenceSciSyncInfoNV;
16611 #[inline]
16612 fn deref(&self) -> &Self::Target {
16613 &self.inner
16614 }
16615}
16616impl<'a> core::ops::DerefMut for ExportFenceSciSyncInfoNVBuilder<'a> {
16617 #[inline]
16618 fn deref_mut(&mut self) -> &mut Self::Target {
16619 &mut self.inner
16620 }
16621}
16622pub struct ImportFenceSciSyncInfoNVBuilder<'a> {
16624 inner: ImportFenceSciSyncInfoNV,
16625 _marker: core::marker::PhantomData<&'a ()>,
16626}
16627impl ImportFenceSciSyncInfoNV {
16628 #[inline]
16630 pub fn builder<'a>() -> ImportFenceSciSyncInfoNVBuilder<'a> {
16631 ImportFenceSciSyncInfoNVBuilder {
16632 inner: ImportFenceSciSyncInfoNV {
16633 s_type: Default::default(),
16634 ..Default::default()
16635 },
16636 _marker: core::marker::PhantomData,
16637 }
16638 }
16639}
16640impl<'a> ImportFenceSciSyncInfoNVBuilder<'a> {
16641 #[inline]
16642 pub fn fence(mut self, value: Fence) -> Self {
16643 self.inner.fence = value;
16644 self
16645 }
16646 #[inline]
16647 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16648 self.inner.handle_type = value;
16649 self
16650 }
16651 #[inline]
16652 pub fn handle(mut self, value: *mut core::ffi::c_void) -> Self {
16653 self.inner.handle = value;
16654 self
16655 }
16656 #[inline]
16658 pub fn push_next<T: ExtendsImportFenceSciSyncInfoNV>(
16659 mut self,
16660 next: &'a mut T,
16661 ) -> Self {
16662 unsafe {
16663 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16664 (*next_ptr).p_next = self.inner.p_next as *mut _;
16665 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16666 core::ffi::c_void,
16667 >(next_ptr) as *const _;
16668 }
16669 self
16670 }
16671}
16672impl<'a> core::ops::Deref for ImportFenceSciSyncInfoNVBuilder<'a> {
16673 type Target = ImportFenceSciSyncInfoNV;
16674 #[inline]
16675 fn deref(&self) -> &Self::Target {
16676 &self.inner
16677 }
16678}
16679impl<'a> core::ops::DerefMut for ImportFenceSciSyncInfoNVBuilder<'a> {
16680 #[inline]
16681 fn deref_mut(&mut self) -> &mut Self::Target {
16682 &mut self.inner
16683 }
16684}
16685pub struct FenceGetSciSyncInfoNVBuilder<'a> {
16687 inner: FenceGetSciSyncInfoNV,
16688 _marker: core::marker::PhantomData<&'a ()>,
16689}
16690impl FenceGetSciSyncInfoNV {
16691 #[inline]
16693 pub fn builder<'a>() -> FenceGetSciSyncInfoNVBuilder<'a> {
16694 FenceGetSciSyncInfoNVBuilder {
16695 inner: FenceGetSciSyncInfoNV {
16696 s_type: Default::default(),
16697 ..Default::default()
16698 },
16699 _marker: core::marker::PhantomData,
16700 }
16701 }
16702}
16703impl<'a> FenceGetSciSyncInfoNVBuilder<'a> {
16704 #[inline]
16705 pub fn fence(mut self, value: Fence) -> Self {
16706 self.inner.fence = value;
16707 self
16708 }
16709 #[inline]
16710 pub fn handle_type(mut self, value: ExternalFenceHandleTypeFlagBits) -> Self {
16711 self.inner.handle_type = value;
16712 self
16713 }
16714 #[inline]
16716 pub fn push_next<T: ExtendsFenceGetSciSyncInfoNV>(
16717 mut self,
16718 next: &'a mut T,
16719 ) -> Self {
16720 unsafe {
16721 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16722 (*next_ptr).p_next = self.inner.p_next as *mut _;
16723 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16724 core::ffi::c_void,
16725 >(next_ptr) as *const _;
16726 }
16727 self
16728 }
16729}
16730impl<'a> core::ops::Deref for FenceGetSciSyncInfoNVBuilder<'a> {
16731 type Target = FenceGetSciSyncInfoNV;
16732 #[inline]
16733 fn deref(&self) -> &Self::Target {
16734 &self.inner
16735 }
16736}
16737impl<'a> core::ops::DerefMut for FenceGetSciSyncInfoNVBuilder<'a> {
16738 #[inline]
16739 fn deref_mut(&mut self) -> &mut Self::Target {
16740 &mut self.inner
16741 }
16742}
16743pub struct ExportSemaphoreSciSyncInfoNVBuilder<'a> {
16745 inner: ExportSemaphoreSciSyncInfoNV,
16746 _marker: core::marker::PhantomData<&'a ()>,
16747}
16748impl ExportSemaphoreSciSyncInfoNV {
16749 #[inline]
16751 pub fn builder<'a>() -> ExportSemaphoreSciSyncInfoNVBuilder<'a> {
16752 ExportSemaphoreSciSyncInfoNVBuilder {
16753 inner: ExportSemaphoreSciSyncInfoNV {
16754 s_type: Default::default(),
16755 ..Default::default()
16756 },
16757 _marker: core::marker::PhantomData,
16758 }
16759 }
16760}
16761impl<'a> ExportSemaphoreSciSyncInfoNVBuilder<'a> {
16762 #[inline]
16763 pub fn p_attributes(mut self, value: *const core::ffi::c_void) -> Self {
16764 self.inner.p_attributes = value;
16765 self
16766 }
16767 #[inline]
16769 pub fn push_next<T: ExtendsExportSemaphoreSciSyncInfoNV>(
16770 mut self,
16771 next: &'a mut T,
16772 ) -> Self {
16773 unsafe {
16774 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16775 (*next_ptr).p_next = self.inner.p_next as *mut _;
16776 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16777 core::ffi::c_void,
16778 >(next_ptr) as *const _;
16779 }
16780 self
16781 }
16782}
16783impl<'a> core::ops::Deref for ExportSemaphoreSciSyncInfoNVBuilder<'a> {
16784 type Target = ExportSemaphoreSciSyncInfoNV;
16785 #[inline]
16786 fn deref(&self) -> &Self::Target {
16787 &self.inner
16788 }
16789}
16790impl<'a> core::ops::DerefMut for ExportSemaphoreSciSyncInfoNVBuilder<'a> {
16791 #[inline]
16792 fn deref_mut(&mut self) -> &mut Self::Target {
16793 &mut self.inner
16794 }
16795}
16796pub struct ImportSemaphoreSciSyncInfoNVBuilder<'a> {
16798 inner: ImportSemaphoreSciSyncInfoNV,
16799 _marker: core::marker::PhantomData<&'a ()>,
16800}
16801impl ImportSemaphoreSciSyncInfoNV {
16802 #[inline]
16804 pub fn builder<'a>() -> ImportSemaphoreSciSyncInfoNVBuilder<'a> {
16805 ImportSemaphoreSciSyncInfoNVBuilder {
16806 inner: ImportSemaphoreSciSyncInfoNV {
16807 s_type: Default::default(),
16808 ..Default::default()
16809 },
16810 _marker: core::marker::PhantomData,
16811 }
16812 }
16813}
16814impl<'a> ImportSemaphoreSciSyncInfoNVBuilder<'a> {
16815 #[inline]
16816 pub fn semaphore(mut self, value: Semaphore) -> Self {
16817 self.inner.semaphore = value;
16818 self
16819 }
16820 #[inline]
16821 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
16822 self.inner.handle_type = value;
16823 self
16824 }
16825 #[inline]
16826 pub fn handle(mut self, value: *mut core::ffi::c_void) -> Self {
16827 self.inner.handle = value;
16828 self
16829 }
16830 #[inline]
16832 pub fn push_next<T: ExtendsImportSemaphoreSciSyncInfoNV>(
16833 mut self,
16834 next: &'a mut T,
16835 ) -> Self {
16836 unsafe {
16837 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16838 (*next_ptr).p_next = self.inner.p_next as *mut _;
16839 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16840 core::ffi::c_void,
16841 >(next_ptr) as *const _;
16842 }
16843 self
16844 }
16845}
16846impl<'a> core::ops::Deref for ImportSemaphoreSciSyncInfoNVBuilder<'a> {
16847 type Target = ImportSemaphoreSciSyncInfoNV;
16848 #[inline]
16849 fn deref(&self) -> &Self::Target {
16850 &self.inner
16851 }
16852}
16853impl<'a> core::ops::DerefMut for ImportSemaphoreSciSyncInfoNVBuilder<'a> {
16854 #[inline]
16855 fn deref_mut(&mut self) -> &mut Self::Target {
16856 &mut self.inner
16857 }
16858}
16859pub struct SemaphoreGetSciSyncInfoNVBuilder<'a> {
16861 inner: SemaphoreGetSciSyncInfoNV,
16862 _marker: core::marker::PhantomData<&'a ()>,
16863}
16864impl SemaphoreGetSciSyncInfoNV {
16865 #[inline]
16867 pub fn builder<'a>() -> SemaphoreGetSciSyncInfoNVBuilder<'a> {
16868 SemaphoreGetSciSyncInfoNVBuilder {
16869 inner: SemaphoreGetSciSyncInfoNV {
16870 s_type: Default::default(),
16871 ..Default::default()
16872 },
16873 _marker: core::marker::PhantomData,
16874 }
16875 }
16876}
16877impl<'a> SemaphoreGetSciSyncInfoNVBuilder<'a> {
16878 #[inline]
16879 pub fn semaphore(mut self, value: Semaphore) -> Self {
16880 self.inner.semaphore = value;
16881 self
16882 }
16883 #[inline]
16884 pub fn handle_type(mut self, value: ExternalSemaphoreHandleTypeFlagBits) -> Self {
16885 self.inner.handle_type = value;
16886 self
16887 }
16888 #[inline]
16890 pub fn push_next<T: ExtendsSemaphoreGetSciSyncInfoNV>(
16891 mut self,
16892 next: &'a mut T,
16893 ) -> Self {
16894 unsafe {
16895 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16896 (*next_ptr).p_next = self.inner.p_next as *mut _;
16897 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16898 core::ffi::c_void,
16899 >(next_ptr) as *const _;
16900 }
16901 self
16902 }
16903}
16904impl<'a> core::ops::Deref for SemaphoreGetSciSyncInfoNVBuilder<'a> {
16905 type Target = SemaphoreGetSciSyncInfoNV;
16906 #[inline]
16907 fn deref(&self) -> &Self::Target {
16908 &self.inner
16909 }
16910}
16911impl<'a> core::ops::DerefMut for SemaphoreGetSciSyncInfoNVBuilder<'a> {
16912 #[inline]
16913 fn deref_mut(&mut self) -> &mut Self::Target {
16914 &mut self.inner
16915 }
16916}
16917pub struct SciSyncAttributesInfoNVBuilder<'a> {
16919 inner: SciSyncAttributesInfoNV,
16920 _marker: core::marker::PhantomData<&'a ()>,
16921}
16922impl SciSyncAttributesInfoNV {
16923 #[inline]
16925 pub fn builder<'a>() -> SciSyncAttributesInfoNVBuilder<'a> {
16926 SciSyncAttributesInfoNVBuilder {
16927 inner: SciSyncAttributesInfoNV {
16928 s_type: Default::default(),
16929 ..Default::default()
16930 },
16931 _marker: core::marker::PhantomData,
16932 }
16933 }
16934}
16935impl<'a> SciSyncAttributesInfoNVBuilder<'a> {
16936 #[inline]
16937 pub fn client_type(mut self, value: SciSyncClientTypeNV) -> Self {
16938 self.inner.client_type = value;
16939 self
16940 }
16941 #[inline]
16942 pub fn primitive_type(mut self, value: SciSyncPrimitiveTypeNV) -> Self {
16943 self.inner.primitive_type = value;
16944 self
16945 }
16946 #[inline]
16948 pub fn push_next<T: ExtendsSciSyncAttributesInfoNV>(
16949 mut self,
16950 next: &'a mut T,
16951 ) -> Self {
16952 unsafe {
16953 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
16954 (*next_ptr).p_next = self.inner.p_next as *mut _;
16955 self.inner.p_next = <*mut BaseOutStructure>::cast::<
16956 core::ffi::c_void,
16957 >(next_ptr) as *const _;
16958 }
16959 self
16960 }
16961}
16962impl<'a> core::ops::Deref for SciSyncAttributesInfoNVBuilder<'a> {
16963 type Target = SciSyncAttributesInfoNV;
16964 #[inline]
16965 fn deref(&self) -> &Self::Target {
16966 &self.inner
16967 }
16968}
16969impl<'a> core::ops::DerefMut for SciSyncAttributesInfoNVBuilder<'a> {
16970 #[inline]
16971 fn deref_mut(&mut self) -> &mut Self::Target {
16972 &mut self.inner
16973 }
16974}
16975pub struct PhysicalDeviceExternalSciSyncFeaturesNVBuilder<'a> {
16977 inner: PhysicalDeviceExternalSciSyncFeaturesNV,
16978 _marker: core::marker::PhantomData<&'a ()>,
16979}
16980impl PhysicalDeviceExternalSciSyncFeaturesNV {
16981 #[inline]
16983 pub fn builder<'a>() -> PhysicalDeviceExternalSciSyncFeaturesNVBuilder<'a> {
16984 PhysicalDeviceExternalSciSyncFeaturesNVBuilder {
16985 inner: PhysicalDeviceExternalSciSyncFeaturesNV {
16986 s_type: Default::default(),
16987 ..Default::default()
16988 },
16989 _marker: core::marker::PhantomData,
16990 }
16991 }
16992}
16993impl<'a> PhysicalDeviceExternalSciSyncFeaturesNVBuilder<'a> {
16994 #[inline]
16995 pub fn sci_sync_fence(mut self, value: bool) -> Self {
16996 self.inner.sci_sync_fence = value as u32;
16997 self
16998 }
16999 #[inline]
17000 pub fn sci_sync_semaphore(mut self, value: bool) -> Self {
17001 self.inner.sci_sync_semaphore = value as u32;
17002 self
17003 }
17004 #[inline]
17005 pub fn sci_sync_import(mut self, value: bool) -> Self {
17006 self.inner.sci_sync_import = value as u32;
17007 self
17008 }
17009 #[inline]
17010 pub fn sci_sync_export(mut self, value: bool) -> Self {
17011 self.inner.sci_sync_export = value as u32;
17012 self
17013 }
17014 #[inline]
17016 pub fn push_next<T: ExtendsPhysicalDeviceExternalSciSyncFeaturesNV>(
17017 mut self,
17018 next: &'a mut T,
17019 ) -> Self {
17020 unsafe {
17021 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17022 (*next_ptr).p_next = self.inner.p_next as *mut _;
17023 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17024 core::ffi::c_void,
17025 >(next_ptr);
17026 }
17027 self
17028 }
17029}
17030impl<'a> core::ops::Deref for PhysicalDeviceExternalSciSyncFeaturesNVBuilder<'a> {
17031 type Target = PhysicalDeviceExternalSciSyncFeaturesNV;
17032 #[inline]
17033 fn deref(&self) -> &Self::Target {
17034 &self.inner
17035 }
17036}
17037impl<'a> core::ops::DerefMut for PhysicalDeviceExternalSciSyncFeaturesNVBuilder<'a> {
17038 #[inline]
17039 fn deref_mut(&mut self) -> &mut Self::Target {
17040 &mut self.inner
17041 }
17042}
17043pub struct PhysicalDeviceExternalSciSync2FeaturesNVBuilder<'a> {
17045 inner: PhysicalDeviceExternalSciSync2FeaturesNV,
17046 _marker: core::marker::PhantomData<&'a ()>,
17047}
17048impl PhysicalDeviceExternalSciSync2FeaturesNV {
17049 #[inline]
17051 pub fn builder<'a>() -> PhysicalDeviceExternalSciSync2FeaturesNVBuilder<'a> {
17052 PhysicalDeviceExternalSciSync2FeaturesNVBuilder {
17053 inner: PhysicalDeviceExternalSciSync2FeaturesNV {
17054 s_type: Default::default(),
17055 ..Default::default()
17056 },
17057 _marker: core::marker::PhantomData,
17058 }
17059 }
17060}
17061impl<'a> PhysicalDeviceExternalSciSync2FeaturesNVBuilder<'a> {
17062 #[inline]
17063 pub fn sci_sync_fence(mut self, value: bool) -> Self {
17064 self.inner.sci_sync_fence = value as u32;
17065 self
17066 }
17067 #[inline]
17068 pub fn sci_sync_semaphore2(mut self, value: bool) -> Self {
17069 self.inner.sci_sync_semaphore2 = value as u32;
17070 self
17071 }
17072 #[inline]
17073 pub fn sci_sync_import(mut self, value: bool) -> Self {
17074 self.inner.sci_sync_import = value as u32;
17075 self
17076 }
17077 #[inline]
17078 pub fn sci_sync_export(mut self, value: bool) -> Self {
17079 self.inner.sci_sync_export = value as u32;
17080 self
17081 }
17082 #[inline]
17084 pub fn push_next<T: ExtendsPhysicalDeviceExternalSciSync2FeaturesNV>(
17085 mut self,
17086 next: &'a mut T,
17087 ) -> Self {
17088 unsafe {
17089 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17090 (*next_ptr).p_next = self.inner.p_next as *mut _;
17091 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17092 core::ffi::c_void,
17093 >(next_ptr);
17094 }
17095 self
17096 }
17097}
17098impl<'a> core::ops::Deref for PhysicalDeviceExternalSciSync2FeaturesNVBuilder<'a> {
17099 type Target = PhysicalDeviceExternalSciSync2FeaturesNV;
17100 #[inline]
17101 fn deref(&self) -> &Self::Target {
17102 &self.inner
17103 }
17104}
17105impl<'a> core::ops::DerefMut for PhysicalDeviceExternalSciSync2FeaturesNVBuilder<'a> {
17106 #[inline]
17107 fn deref_mut(&mut self) -> &mut Self::Target {
17108 &mut self.inner
17109 }
17110}
17111pub struct SemaphoreSciSyncPoolCreateInfoNVBuilder<'a> {
17113 inner: SemaphoreSciSyncPoolCreateInfoNV,
17114 _marker: core::marker::PhantomData<&'a ()>,
17115}
17116impl SemaphoreSciSyncPoolCreateInfoNV {
17117 #[inline]
17119 pub fn builder<'a>() -> SemaphoreSciSyncPoolCreateInfoNVBuilder<'a> {
17120 SemaphoreSciSyncPoolCreateInfoNVBuilder {
17121 inner: SemaphoreSciSyncPoolCreateInfoNV {
17122 s_type: Default::default(),
17123 ..Default::default()
17124 },
17125 _marker: core::marker::PhantomData,
17126 }
17127 }
17128}
17129impl<'a> SemaphoreSciSyncPoolCreateInfoNVBuilder<'a> {
17130 #[inline]
17131 pub fn handle(mut self, value: *const core::ffi::c_void) -> Self {
17132 self.inner.handle = value;
17133 self
17134 }
17135 #[inline]
17137 pub fn push_next<T: ExtendsSemaphoreSciSyncPoolCreateInfoNV>(
17138 mut self,
17139 next: &'a mut T,
17140 ) -> Self {
17141 unsafe {
17142 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17143 (*next_ptr).p_next = self.inner.p_next as *mut _;
17144 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17145 core::ffi::c_void,
17146 >(next_ptr) as *const _;
17147 }
17148 self
17149 }
17150}
17151impl<'a> core::ops::Deref for SemaphoreSciSyncPoolCreateInfoNVBuilder<'a> {
17152 type Target = SemaphoreSciSyncPoolCreateInfoNV;
17153 #[inline]
17154 fn deref(&self) -> &Self::Target {
17155 &self.inner
17156 }
17157}
17158impl<'a> core::ops::DerefMut for SemaphoreSciSyncPoolCreateInfoNVBuilder<'a> {
17159 #[inline]
17160 fn deref_mut(&mut self) -> &mut Self::Target {
17161 &mut self.inner
17162 }
17163}
17164pub struct SemaphoreSciSyncCreateInfoNVBuilder<'a> {
17166 inner: SemaphoreSciSyncCreateInfoNV,
17167 _marker: core::marker::PhantomData<&'a ()>,
17168}
17169impl SemaphoreSciSyncCreateInfoNV {
17170 #[inline]
17172 pub fn builder<'a>() -> SemaphoreSciSyncCreateInfoNVBuilder<'a> {
17173 SemaphoreSciSyncCreateInfoNVBuilder {
17174 inner: SemaphoreSciSyncCreateInfoNV {
17175 s_type: Default::default(),
17176 ..Default::default()
17177 },
17178 _marker: core::marker::PhantomData,
17179 }
17180 }
17181}
17182impl<'a> SemaphoreSciSyncCreateInfoNVBuilder<'a> {
17183 #[inline]
17184 pub fn semaphore_pool(mut self, value: SemaphoreSciSyncPoolNV) -> Self {
17185 self.inner.semaphore_pool = value;
17186 self
17187 }
17188 #[inline]
17189 pub fn fence(mut self, value: *const core::ffi::c_void) -> Self {
17190 self.inner.p_fence = value;
17191 self
17192 }
17193 #[inline]
17195 pub fn push_next<T: ExtendsSemaphoreSciSyncCreateInfoNV>(
17196 mut self,
17197 next: &'a mut T,
17198 ) -> Self {
17199 unsafe {
17200 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17201 (*next_ptr).p_next = self.inner.p_next as *mut _;
17202 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17203 core::ffi::c_void,
17204 >(next_ptr) as *const _;
17205 }
17206 self
17207 }
17208}
17209impl<'a> core::ops::Deref for SemaphoreSciSyncCreateInfoNVBuilder<'a> {
17210 type Target = SemaphoreSciSyncCreateInfoNV;
17211 #[inline]
17212 fn deref(&self) -> &Self::Target {
17213 &self.inner
17214 }
17215}
17216impl<'a> core::ops::DerefMut for SemaphoreSciSyncCreateInfoNVBuilder<'a> {
17217 #[inline]
17218 fn deref_mut(&mut self) -> &mut Self::Target {
17219 &mut self.inner
17220 }
17221}
17222pub struct DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder<'a> {
17224 inner: DeviceSemaphoreSciSyncPoolReservationCreateInfoNV,
17225 _marker: core::marker::PhantomData<&'a ()>,
17226}
17227impl DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
17228 #[inline]
17230 pub fn builder<'a>() -> DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder<
17231 'a,
17232 > {
17233 DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder {
17234 inner: DeviceSemaphoreSciSyncPoolReservationCreateInfoNV {
17235 s_type: Default::default(),
17236 ..Default::default()
17237 },
17238 _marker: core::marker::PhantomData,
17239 }
17240 }
17241}
17242impl<'a> DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder<'a> {
17243 #[inline]
17244 pub fn semaphore_sci_sync_pool_request_count(mut self, value: u32) -> Self {
17245 self.inner.semaphore_sci_sync_pool_request_count = value;
17246 self
17247 }
17248 #[inline]
17250 pub fn push_next<T: ExtendsDeviceSemaphoreSciSyncPoolReservationCreateInfoNV>(
17251 mut self,
17252 next: &'a mut T,
17253 ) -> Self {
17254 unsafe {
17255 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17256 (*next_ptr).p_next = self.inner.p_next as *mut _;
17257 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17258 core::ffi::c_void,
17259 >(next_ptr) as *const _;
17260 }
17261 self
17262 }
17263}
17264impl<'a> core::ops::Deref
17265for DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder<'a> {
17266 type Target = DeviceSemaphoreSciSyncPoolReservationCreateInfoNV;
17267 #[inline]
17268 fn deref(&self) -> &Self::Target {
17269 &self.inner
17270 }
17271}
17272impl<'a> core::ops::DerefMut
17273for DeviceSemaphoreSciSyncPoolReservationCreateInfoNVBuilder<'a> {
17274 #[inline]
17275 fn deref_mut(&mut self) -> &mut Self::Target {
17276 &mut self.inner
17277 }
17278}
17279pub struct PhysicalDeviceMultiviewFeaturesBuilder<'a> {
17281 inner: PhysicalDeviceMultiviewFeatures,
17282 _marker: core::marker::PhantomData<&'a ()>,
17283}
17284impl PhysicalDeviceMultiviewFeatures {
17285 #[inline]
17287 pub fn builder<'a>() -> PhysicalDeviceMultiviewFeaturesBuilder<'a> {
17288 PhysicalDeviceMultiviewFeaturesBuilder {
17289 inner: PhysicalDeviceMultiviewFeatures {
17290 s_type: StructureType::from_raw(1000053001i32),
17291 ..Default::default()
17292 },
17293 _marker: core::marker::PhantomData,
17294 }
17295 }
17296}
17297impl<'a> PhysicalDeviceMultiviewFeaturesBuilder<'a> {
17298 #[inline]
17299 pub fn multiview(mut self, value: bool) -> Self {
17300 self.inner.multiview = value as u32;
17301 self
17302 }
17303 #[inline]
17304 pub fn multiview_geometry_shader(mut self, value: bool) -> Self {
17305 self.inner.multiview_geometry_shader = value as u32;
17306 self
17307 }
17308 #[inline]
17309 pub fn multiview_tessellation_shader(mut self, value: bool) -> Self {
17310 self.inner.multiview_tessellation_shader = value as u32;
17311 self
17312 }
17313 #[inline]
17315 pub fn push_next<T: ExtendsPhysicalDeviceMultiviewFeatures>(
17316 mut self,
17317 next: &'a mut T,
17318 ) -> Self {
17319 unsafe {
17320 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17321 (*next_ptr).p_next = self.inner.p_next as *mut _;
17322 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17323 core::ffi::c_void,
17324 >(next_ptr);
17325 }
17326 self
17327 }
17328}
17329impl<'a> core::ops::Deref for PhysicalDeviceMultiviewFeaturesBuilder<'a> {
17330 type Target = PhysicalDeviceMultiviewFeatures;
17331 #[inline]
17332 fn deref(&self) -> &Self::Target {
17333 &self.inner
17334 }
17335}
17336impl<'a> core::ops::DerefMut for PhysicalDeviceMultiviewFeaturesBuilder<'a> {
17337 #[inline]
17338 fn deref_mut(&mut self) -> &mut Self::Target {
17339 &mut self.inner
17340 }
17341}
17342pub struct PhysicalDeviceMultiviewPropertiesBuilder<'a> {
17344 inner: PhysicalDeviceMultiviewProperties,
17345 _marker: core::marker::PhantomData<&'a ()>,
17346}
17347impl PhysicalDeviceMultiviewProperties {
17348 #[inline]
17350 pub fn builder<'a>() -> PhysicalDeviceMultiviewPropertiesBuilder<'a> {
17351 PhysicalDeviceMultiviewPropertiesBuilder {
17352 inner: PhysicalDeviceMultiviewProperties {
17353 s_type: StructureType::from_raw(1000053002i32),
17354 ..Default::default()
17355 },
17356 _marker: core::marker::PhantomData,
17357 }
17358 }
17359}
17360impl<'a> PhysicalDeviceMultiviewPropertiesBuilder<'a> {
17361 #[inline]
17362 pub fn max_multiview_view_count(mut self, value: u32) -> Self {
17363 self.inner.max_multiview_view_count = value;
17364 self
17365 }
17366 #[inline]
17367 pub fn max_multiview_instance_index(mut self, value: u32) -> Self {
17368 self.inner.max_multiview_instance_index = value;
17369 self
17370 }
17371}
17372impl<'a> core::ops::Deref for PhysicalDeviceMultiviewPropertiesBuilder<'a> {
17373 type Target = PhysicalDeviceMultiviewProperties;
17374 #[inline]
17375 fn deref(&self) -> &Self::Target {
17376 &self.inner
17377 }
17378}
17379impl<'a> core::ops::DerefMut for PhysicalDeviceMultiviewPropertiesBuilder<'a> {
17380 #[inline]
17381 fn deref_mut(&mut self) -> &mut Self::Target {
17382 &mut self.inner
17383 }
17384}
17385pub struct RenderPassMultiviewCreateInfoBuilder<'a> {
17387 inner: RenderPassMultiviewCreateInfo,
17388 _marker: core::marker::PhantomData<&'a ()>,
17389}
17390impl RenderPassMultiviewCreateInfo {
17391 #[inline]
17393 pub fn builder<'a>() -> RenderPassMultiviewCreateInfoBuilder<'a> {
17394 RenderPassMultiviewCreateInfoBuilder {
17395 inner: RenderPassMultiviewCreateInfo {
17396 s_type: StructureType::from_raw(1000053000i32),
17397 ..Default::default()
17398 },
17399 _marker: core::marker::PhantomData,
17400 }
17401 }
17402}
17403impl<'a> RenderPassMultiviewCreateInfoBuilder<'a> {
17404 #[inline]
17405 pub fn view_masks(mut self, slice: &'a [u32]) -> Self {
17406 self.inner.subpass_count = slice.len() as u32;
17407 self.inner.p_view_masks = slice.as_ptr();
17408 self
17409 }
17410 #[inline]
17411 pub fn view_offsets(mut self, slice: &'a [i32]) -> Self {
17412 self.inner.dependency_count = slice.len() as u32;
17413 self.inner.p_view_offsets = slice.as_ptr();
17414 self
17415 }
17416 #[inline]
17417 pub fn correlation_masks(mut self, slice: &'a [u32]) -> Self {
17418 self.inner.correlation_mask_count = slice.len() as u32;
17419 self.inner.p_correlation_masks = slice.as_ptr();
17420 self
17421 }
17422 #[inline]
17424 pub fn push_next<T: ExtendsRenderPassMultiviewCreateInfo>(
17425 mut self,
17426 next: &'a mut T,
17427 ) -> Self {
17428 unsafe {
17429 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17430 (*next_ptr).p_next = self.inner.p_next as *mut _;
17431 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17432 core::ffi::c_void,
17433 >(next_ptr) as *const _;
17434 }
17435 self
17436 }
17437}
17438impl<'a> core::ops::Deref for RenderPassMultiviewCreateInfoBuilder<'a> {
17439 type Target = RenderPassMultiviewCreateInfo;
17440 #[inline]
17441 fn deref(&self) -> &Self::Target {
17442 &self.inner
17443 }
17444}
17445impl<'a> core::ops::DerefMut for RenderPassMultiviewCreateInfoBuilder<'a> {
17446 #[inline]
17447 fn deref_mut(&mut self) -> &mut Self::Target {
17448 &mut self.inner
17449 }
17450}
17451pub struct SurfaceCapabilities2EXTBuilder<'a> {
17453 inner: SurfaceCapabilities2EXT,
17454 _marker: core::marker::PhantomData<&'a ()>,
17455}
17456impl SurfaceCapabilities2EXT {
17457 #[inline]
17459 pub fn builder<'a>() -> SurfaceCapabilities2EXTBuilder<'a> {
17460 SurfaceCapabilities2EXTBuilder {
17461 inner: SurfaceCapabilities2EXT {
17462 s_type: StructureType::from_raw(1000090000i32),
17463 ..Default::default()
17464 },
17465 _marker: core::marker::PhantomData,
17466 }
17467 }
17468}
17469impl<'a> SurfaceCapabilities2EXTBuilder<'a> {
17470 #[inline]
17471 pub fn min_image_count(mut self, value: u32) -> Self {
17472 self.inner.min_image_count = value;
17473 self
17474 }
17475 #[inline]
17476 pub fn max_image_count(mut self, value: u32) -> Self {
17477 self.inner.max_image_count = value;
17478 self
17479 }
17480 #[inline]
17481 pub fn current_extent(mut self, value: Extent2D) -> Self {
17482 self.inner.current_extent = value;
17483 self
17484 }
17485 #[inline]
17486 pub fn min_image_extent(mut self, value: Extent2D) -> Self {
17487 self.inner.min_image_extent = value;
17488 self
17489 }
17490 #[inline]
17491 pub fn max_image_extent(mut self, value: Extent2D) -> Self {
17492 self.inner.max_image_extent = value;
17493 self
17494 }
17495 #[inline]
17496 pub fn max_image_array_layers(mut self, value: u32) -> Self {
17497 self.inner.max_image_array_layers = value;
17498 self
17499 }
17500 #[inline]
17501 pub fn supported_transforms(mut self, value: SurfaceTransformFlagsKHR) -> Self {
17502 self.inner.supported_transforms = value;
17503 self
17504 }
17505 #[inline]
17506 pub fn current_transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
17507 self.inner.current_transform = value;
17508 self
17509 }
17510 #[inline]
17511 pub fn supported_composite_alpha(mut self, value: CompositeAlphaFlagsKHR) -> Self {
17512 self.inner.supported_composite_alpha = value;
17513 self
17514 }
17515 #[inline]
17516 pub fn supported_usage_flags(mut self, value: ImageUsageFlags) -> Self {
17517 self.inner.supported_usage_flags = value;
17518 self
17519 }
17520 #[inline]
17521 pub fn supported_surface_counters(mut self, value: SurfaceCounterFlagsEXT) -> Self {
17522 self.inner.supported_surface_counters = value;
17523 self
17524 }
17525}
17526impl<'a> core::ops::Deref for SurfaceCapabilities2EXTBuilder<'a> {
17527 type Target = SurfaceCapabilities2EXT;
17528 #[inline]
17529 fn deref(&self) -> &Self::Target {
17530 &self.inner
17531 }
17532}
17533impl<'a> core::ops::DerefMut for SurfaceCapabilities2EXTBuilder<'a> {
17534 #[inline]
17535 fn deref_mut(&mut self) -> &mut Self::Target {
17536 &mut self.inner
17537 }
17538}
17539pub struct DisplayPowerInfoEXTBuilder<'a> {
17541 inner: DisplayPowerInfoEXT,
17542 _marker: core::marker::PhantomData<&'a ()>,
17543}
17544impl DisplayPowerInfoEXT {
17545 #[inline]
17547 pub fn builder<'a>() -> DisplayPowerInfoEXTBuilder<'a> {
17548 DisplayPowerInfoEXTBuilder {
17549 inner: DisplayPowerInfoEXT {
17550 s_type: StructureType::from_raw(1000091000i32),
17551 ..Default::default()
17552 },
17553 _marker: core::marker::PhantomData,
17554 }
17555 }
17556}
17557impl<'a> DisplayPowerInfoEXTBuilder<'a> {
17558 #[inline]
17559 pub fn power_state(mut self, value: DisplayPowerStateEXT) -> Self {
17560 self.inner.power_state = value;
17561 self
17562 }
17563 #[inline]
17565 pub fn push_next<T: ExtendsDisplayPowerInfoEXT>(mut self, next: &'a mut T) -> Self {
17566 unsafe {
17567 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17568 (*next_ptr).p_next = self.inner.p_next as *mut _;
17569 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17570 core::ffi::c_void,
17571 >(next_ptr) as *const _;
17572 }
17573 self
17574 }
17575}
17576impl<'a> core::ops::Deref for DisplayPowerInfoEXTBuilder<'a> {
17577 type Target = DisplayPowerInfoEXT;
17578 #[inline]
17579 fn deref(&self) -> &Self::Target {
17580 &self.inner
17581 }
17582}
17583impl<'a> core::ops::DerefMut for DisplayPowerInfoEXTBuilder<'a> {
17584 #[inline]
17585 fn deref_mut(&mut self) -> &mut Self::Target {
17586 &mut self.inner
17587 }
17588}
17589pub struct DeviceEventInfoEXTBuilder<'a> {
17591 inner: DeviceEventInfoEXT,
17592 _marker: core::marker::PhantomData<&'a ()>,
17593}
17594impl DeviceEventInfoEXT {
17595 #[inline]
17597 pub fn builder<'a>() -> DeviceEventInfoEXTBuilder<'a> {
17598 DeviceEventInfoEXTBuilder {
17599 inner: DeviceEventInfoEXT {
17600 s_type: StructureType::from_raw(1000091001i32),
17601 ..Default::default()
17602 },
17603 _marker: core::marker::PhantomData,
17604 }
17605 }
17606}
17607impl<'a> DeviceEventInfoEXTBuilder<'a> {
17608 #[inline]
17609 pub fn device_event(mut self, value: DeviceEventTypeEXT) -> Self {
17610 self.inner.device_event = value;
17611 self
17612 }
17613 #[inline]
17615 pub fn push_next<T: ExtendsDeviceEventInfoEXT>(mut self, next: &'a mut T) -> Self {
17616 unsafe {
17617 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17618 (*next_ptr).p_next = self.inner.p_next as *mut _;
17619 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17620 core::ffi::c_void,
17621 >(next_ptr) as *const _;
17622 }
17623 self
17624 }
17625}
17626impl<'a> core::ops::Deref for DeviceEventInfoEXTBuilder<'a> {
17627 type Target = DeviceEventInfoEXT;
17628 #[inline]
17629 fn deref(&self) -> &Self::Target {
17630 &self.inner
17631 }
17632}
17633impl<'a> core::ops::DerefMut for DeviceEventInfoEXTBuilder<'a> {
17634 #[inline]
17635 fn deref_mut(&mut self) -> &mut Self::Target {
17636 &mut self.inner
17637 }
17638}
17639pub struct DisplayEventInfoEXTBuilder<'a> {
17641 inner: DisplayEventInfoEXT,
17642 _marker: core::marker::PhantomData<&'a ()>,
17643}
17644impl DisplayEventInfoEXT {
17645 #[inline]
17647 pub fn builder<'a>() -> DisplayEventInfoEXTBuilder<'a> {
17648 DisplayEventInfoEXTBuilder {
17649 inner: DisplayEventInfoEXT {
17650 s_type: StructureType::from_raw(1000091002i32),
17651 ..Default::default()
17652 },
17653 _marker: core::marker::PhantomData,
17654 }
17655 }
17656}
17657impl<'a> DisplayEventInfoEXTBuilder<'a> {
17658 #[inline]
17659 pub fn display_event(mut self, value: DisplayEventTypeEXT) -> Self {
17660 self.inner.display_event = value;
17661 self
17662 }
17663 #[inline]
17665 pub fn push_next<T: ExtendsDisplayEventInfoEXT>(mut self, next: &'a mut T) -> Self {
17666 unsafe {
17667 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17668 (*next_ptr).p_next = self.inner.p_next as *mut _;
17669 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17670 core::ffi::c_void,
17671 >(next_ptr) as *const _;
17672 }
17673 self
17674 }
17675}
17676impl<'a> core::ops::Deref for DisplayEventInfoEXTBuilder<'a> {
17677 type Target = DisplayEventInfoEXT;
17678 #[inline]
17679 fn deref(&self) -> &Self::Target {
17680 &self.inner
17681 }
17682}
17683impl<'a> core::ops::DerefMut for DisplayEventInfoEXTBuilder<'a> {
17684 #[inline]
17685 fn deref_mut(&mut self) -> &mut Self::Target {
17686 &mut self.inner
17687 }
17688}
17689pub struct SwapchainCounterCreateInfoEXTBuilder<'a> {
17691 inner: SwapchainCounterCreateInfoEXT,
17692 _marker: core::marker::PhantomData<&'a ()>,
17693}
17694impl SwapchainCounterCreateInfoEXT {
17695 #[inline]
17697 pub fn builder<'a>() -> SwapchainCounterCreateInfoEXTBuilder<'a> {
17698 SwapchainCounterCreateInfoEXTBuilder {
17699 inner: SwapchainCounterCreateInfoEXT {
17700 s_type: StructureType::from_raw(1000091003i32),
17701 ..Default::default()
17702 },
17703 _marker: core::marker::PhantomData,
17704 }
17705 }
17706}
17707impl<'a> SwapchainCounterCreateInfoEXTBuilder<'a> {
17708 #[inline]
17709 pub fn surface_counters(mut self, value: SurfaceCounterFlagsEXT) -> Self {
17710 self.inner.surface_counters = value;
17711 self
17712 }
17713 #[inline]
17715 pub fn push_next<T: ExtendsSwapchainCounterCreateInfoEXT>(
17716 mut self,
17717 next: &'a mut T,
17718 ) -> Self {
17719 unsafe {
17720 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17721 (*next_ptr).p_next = self.inner.p_next as *mut _;
17722 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17723 core::ffi::c_void,
17724 >(next_ptr) as *const _;
17725 }
17726 self
17727 }
17728}
17729impl<'a> core::ops::Deref for SwapchainCounterCreateInfoEXTBuilder<'a> {
17730 type Target = SwapchainCounterCreateInfoEXT;
17731 #[inline]
17732 fn deref(&self) -> &Self::Target {
17733 &self.inner
17734 }
17735}
17736impl<'a> core::ops::DerefMut for SwapchainCounterCreateInfoEXTBuilder<'a> {
17737 #[inline]
17738 fn deref_mut(&mut self) -> &mut Self::Target {
17739 &mut self.inner
17740 }
17741}
17742pub struct PhysicalDeviceGroupPropertiesBuilder<'a> {
17744 inner: PhysicalDeviceGroupProperties,
17745 _marker: core::marker::PhantomData<&'a ()>,
17746}
17747impl PhysicalDeviceGroupProperties {
17748 #[inline]
17750 pub fn builder<'a>() -> PhysicalDeviceGroupPropertiesBuilder<'a> {
17751 PhysicalDeviceGroupPropertiesBuilder {
17752 inner: PhysicalDeviceGroupProperties {
17753 s_type: StructureType::from_raw(1000070000i32),
17754 ..Default::default()
17755 },
17756 _marker: core::marker::PhantomData,
17757 }
17758 }
17759}
17760impl<'a> PhysicalDeviceGroupPropertiesBuilder<'a> {
17761 #[inline]
17762 pub fn physical_device_count(mut self, value: u32) -> Self {
17763 self.inner.physical_device_count = value;
17764 self
17765 }
17766 #[inline]
17767 pub fn physical_devices(
17768 mut self,
17769 value: [PhysicalDevice; MAX_DEVICE_GROUP_SIZE as usize],
17770 ) -> Self {
17771 self.inner.physical_devices = value;
17772 self
17773 }
17774 #[inline]
17775 pub fn subset_allocation(mut self, value: bool) -> Self {
17776 self.inner.subset_allocation = value as u32;
17777 self
17778 }
17779}
17780impl<'a> core::ops::Deref for PhysicalDeviceGroupPropertiesBuilder<'a> {
17781 type Target = PhysicalDeviceGroupProperties;
17782 #[inline]
17783 fn deref(&self) -> &Self::Target {
17784 &self.inner
17785 }
17786}
17787impl<'a> core::ops::DerefMut for PhysicalDeviceGroupPropertiesBuilder<'a> {
17788 #[inline]
17789 fn deref_mut(&mut self) -> &mut Self::Target {
17790 &mut self.inner
17791 }
17792}
17793pub struct MemoryAllocateFlagsInfoBuilder<'a> {
17795 inner: MemoryAllocateFlagsInfo,
17796 _marker: core::marker::PhantomData<&'a ()>,
17797}
17798impl MemoryAllocateFlagsInfo {
17799 #[inline]
17801 pub fn builder<'a>() -> MemoryAllocateFlagsInfoBuilder<'a> {
17802 MemoryAllocateFlagsInfoBuilder {
17803 inner: MemoryAllocateFlagsInfo {
17804 s_type: StructureType::from_raw(1000060000i32),
17805 ..Default::default()
17806 },
17807 _marker: core::marker::PhantomData,
17808 }
17809 }
17810}
17811impl<'a> MemoryAllocateFlagsInfoBuilder<'a> {
17812 #[inline]
17813 pub fn flags(mut self, value: MemoryAllocateFlags) -> Self {
17814 self.inner.flags = value;
17815 self
17816 }
17817 #[inline]
17818 pub fn device_mask(mut self, value: u32) -> Self {
17819 self.inner.device_mask = value;
17820 self
17821 }
17822 #[inline]
17824 pub fn push_next<T: ExtendsMemoryAllocateFlagsInfo>(
17825 mut self,
17826 next: &'a mut T,
17827 ) -> Self {
17828 unsafe {
17829 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17830 (*next_ptr).p_next = self.inner.p_next as *mut _;
17831 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17832 core::ffi::c_void,
17833 >(next_ptr) as *const _;
17834 }
17835 self
17836 }
17837}
17838impl<'a> core::ops::Deref for MemoryAllocateFlagsInfoBuilder<'a> {
17839 type Target = MemoryAllocateFlagsInfo;
17840 #[inline]
17841 fn deref(&self) -> &Self::Target {
17842 &self.inner
17843 }
17844}
17845impl<'a> core::ops::DerefMut for MemoryAllocateFlagsInfoBuilder<'a> {
17846 #[inline]
17847 fn deref_mut(&mut self) -> &mut Self::Target {
17848 &mut self.inner
17849 }
17850}
17851pub struct BindBufferMemoryInfoBuilder<'a> {
17853 inner: BindBufferMemoryInfo,
17854 _marker: core::marker::PhantomData<&'a ()>,
17855}
17856impl BindBufferMemoryInfo {
17857 #[inline]
17859 pub fn builder<'a>() -> BindBufferMemoryInfoBuilder<'a> {
17860 BindBufferMemoryInfoBuilder {
17861 inner: BindBufferMemoryInfo {
17862 s_type: StructureType::from_raw(1000157000i32),
17863 ..Default::default()
17864 },
17865 _marker: core::marker::PhantomData,
17866 }
17867 }
17868}
17869impl<'a> BindBufferMemoryInfoBuilder<'a> {
17870 #[inline]
17871 pub fn buffer(mut self, value: Buffer) -> Self {
17872 self.inner.buffer = value;
17873 self
17874 }
17875 #[inline]
17876 pub fn memory(mut self, value: DeviceMemory) -> Self {
17877 self.inner.memory = value;
17878 self
17879 }
17880 #[inline]
17881 pub fn memory_offset(mut self, value: u64) -> Self {
17882 self.inner.memory_offset = value;
17883 self
17884 }
17885 #[inline]
17887 pub fn push_next<T: ExtendsBindBufferMemoryInfo>(mut self, next: &'a mut T) -> Self {
17888 unsafe {
17889 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17890 (*next_ptr).p_next = self.inner.p_next as *mut _;
17891 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17892 core::ffi::c_void,
17893 >(next_ptr) as *const _;
17894 }
17895 self
17896 }
17897}
17898impl<'a> core::ops::Deref for BindBufferMemoryInfoBuilder<'a> {
17899 type Target = BindBufferMemoryInfo;
17900 #[inline]
17901 fn deref(&self) -> &Self::Target {
17902 &self.inner
17903 }
17904}
17905impl<'a> core::ops::DerefMut for BindBufferMemoryInfoBuilder<'a> {
17906 #[inline]
17907 fn deref_mut(&mut self) -> &mut Self::Target {
17908 &mut self.inner
17909 }
17910}
17911pub struct BindBufferMemoryDeviceGroupInfoBuilder<'a> {
17913 inner: BindBufferMemoryDeviceGroupInfo,
17914 _marker: core::marker::PhantomData<&'a ()>,
17915}
17916impl BindBufferMemoryDeviceGroupInfo {
17917 #[inline]
17919 pub fn builder<'a>() -> BindBufferMemoryDeviceGroupInfoBuilder<'a> {
17920 BindBufferMemoryDeviceGroupInfoBuilder {
17921 inner: BindBufferMemoryDeviceGroupInfo {
17922 s_type: StructureType::from_raw(1000060013i32),
17923 ..Default::default()
17924 },
17925 _marker: core::marker::PhantomData,
17926 }
17927 }
17928}
17929impl<'a> BindBufferMemoryDeviceGroupInfoBuilder<'a> {
17930 #[inline]
17931 pub fn device_indices(mut self, slice: &'a [u32]) -> Self {
17932 self.inner.device_index_count = slice.len() as u32;
17933 self.inner.p_device_indices = slice.as_ptr();
17934 self
17935 }
17936 #[inline]
17938 pub fn push_next<T: ExtendsBindBufferMemoryDeviceGroupInfo>(
17939 mut self,
17940 next: &'a mut T,
17941 ) -> Self {
17942 unsafe {
17943 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
17944 (*next_ptr).p_next = self.inner.p_next as *mut _;
17945 self.inner.p_next = <*mut BaseOutStructure>::cast::<
17946 core::ffi::c_void,
17947 >(next_ptr) as *const _;
17948 }
17949 self
17950 }
17951}
17952impl<'a> core::ops::Deref for BindBufferMemoryDeviceGroupInfoBuilder<'a> {
17953 type Target = BindBufferMemoryDeviceGroupInfo;
17954 #[inline]
17955 fn deref(&self) -> &Self::Target {
17956 &self.inner
17957 }
17958}
17959impl<'a> core::ops::DerefMut for BindBufferMemoryDeviceGroupInfoBuilder<'a> {
17960 #[inline]
17961 fn deref_mut(&mut self) -> &mut Self::Target {
17962 &mut self.inner
17963 }
17964}
17965pub struct BindImageMemoryInfoBuilder<'a> {
17967 inner: BindImageMemoryInfo,
17968 _marker: core::marker::PhantomData<&'a ()>,
17969}
17970impl BindImageMemoryInfo {
17971 #[inline]
17973 pub fn builder<'a>() -> BindImageMemoryInfoBuilder<'a> {
17974 BindImageMemoryInfoBuilder {
17975 inner: BindImageMemoryInfo {
17976 s_type: StructureType::from_raw(1000157001i32),
17977 ..Default::default()
17978 },
17979 _marker: core::marker::PhantomData,
17980 }
17981 }
17982}
17983impl<'a> BindImageMemoryInfoBuilder<'a> {
17984 #[inline]
17985 pub fn image(mut self, value: Image) -> Self {
17986 self.inner.image = value;
17987 self
17988 }
17989 #[inline]
17990 pub fn memory(mut self, value: DeviceMemory) -> Self {
17991 self.inner.memory = value;
17992 self
17993 }
17994 #[inline]
17995 pub fn memory_offset(mut self, value: u64) -> Self {
17996 self.inner.memory_offset = value;
17997 self
17998 }
17999 #[inline]
18001 pub fn push_next<T: ExtendsBindImageMemoryInfo>(mut self, next: &'a mut T) -> Self {
18002 unsafe {
18003 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18004 (*next_ptr).p_next = self.inner.p_next as *mut _;
18005 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18006 core::ffi::c_void,
18007 >(next_ptr) as *const _;
18008 }
18009 self
18010 }
18011}
18012impl<'a> core::ops::Deref for BindImageMemoryInfoBuilder<'a> {
18013 type Target = BindImageMemoryInfo;
18014 #[inline]
18015 fn deref(&self) -> &Self::Target {
18016 &self.inner
18017 }
18018}
18019impl<'a> core::ops::DerefMut for BindImageMemoryInfoBuilder<'a> {
18020 #[inline]
18021 fn deref_mut(&mut self) -> &mut Self::Target {
18022 &mut self.inner
18023 }
18024}
18025pub struct BindImageMemoryDeviceGroupInfoBuilder<'a> {
18027 inner: BindImageMemoryDeviceGroupInfo,
18028 _marker: core::marker::PhantomData<&'a ()>,
18029}
18030impl BindImageMemoryDeviceGroupInfo {
18031 #[inline]
18033 pub fn builder<'a>() -> BindImageMemoryDeviceGroupInfoBuilder<'a> {
18034 BindImageMemoryDeviceGroupInfoBuilder {
18035 inner: BindImageMemoryDeviceGroupInfo {
18036 s_type: StructureType::from_raw(1000060014i32),
18037 ..Default::default()
18038 },
18039 _marker: core::marker::PhantomData,
18040 }
18041 }
18042}
18043impl<'a> BindImageMemoryDeviceGroupInfoBuilder<'a> {
18044 #[inline]
18045 pub fn device_indices(mut self, slice: &'a [u32]) -> Self {
18046 self.inner.device_index_count = slice.len() as u32;
18047 self.inner.p_device_indices = slice.as_ptr();
18048 self
18049 }
18050 #[inline]
18051 pub fn split_instance_bind_regions(mut self, slice: &'a [Rect2D]) -> Self {
18052 self.inner.split_instance_bind_region_count = slice.len() as u32;
18053 self.inner.p_split_instance_bind_regions = slice.as_ptr();
18054 self
18055 }
18056 #[inline]
18058 pub fn push_next<T: ExtendsBindImageMemoryDeviceGroupInfo>(
18059 mut self,
18060 next: &'a mut T,
18061 ) -> Self {
18062 unsafe {
18063 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18064 (*next_ptr).p_next = self.inner.p_next as *mut _;
18065 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18066 core::ffi::c_void,
18067 >(next_ptr) as *const _;
18068 }
18069 self
18070 }
18071}
18072impl<'a> core::ops::Deref for BindImageMemoryDeviceGroupInfoBuilder<'a> {
18073 type Target = BindImageMemoryDeviceGroupInfo;
18074 #[inline]
18075 fn deref(&self) -> &Self::Target {
18076 &self.inner
18077 }
18078}
18079impl<'a> core::ops::DerefMut for BindImageMemoryDeviceGroupInfoBuilder<'a> {
18080 #[inline]
18081 fn deref_mut(&mut self) -> &mut Self::Target {
18082 &mut self.inner
18083 }
18084}
18085pub struct DeviceGroupRenderPassBeginInfoBuilder<'a> {
18087 inner: DeviceGroupRenderPassBeginInfo,
18088 _marker: core::marker::PhantomData<&'a ()>,
18089}
18090impl DeviceGroupRenderPassBeginInfo {
18091 #[inline]
18093 pub fn builder<'a>() -> DeviceGroupRenderPassBeginInfoBuilder<'a> {
18094 DeviceGroupRenderPassBeginInfoBuilder {
18095 inner: DeviceGroupRenderPassBeginInfo {
18096 s_type: StructureType::from_raw(1000060003i32),
18097 ..Default::default()
18098 },
18099 _marker: core::marker::PhantomData,
18100 }
18101 }
18102}
18103impl<'a> DeviceGroupRenderPassBeginInfoBuilder<'a> {
18104 #[inline]
18105 pub fn device_mask(mut self, value: u32) -> Self {
18106 self.inner.device_mask = value;
18107 self
18108 }
18109 #[inline]
18110 pub fn device_render_areas(mut self, slice: &'a [Rect2D]) -> Self {
18111 self.inner.device_render_area_count = slice.len() as u32;
18112 self.inner.p_device_render_areas = slice.as_ptr();
18113 self
18114 }
18115 #[inline]
18117 pub fn push_next<T: ExtendsDeviceGroupRenderPassBeginInfo>(
18118 mut self,
18119 next: &'a mut T,
18120 ) -> Self {
18121 unsafe {
18122 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18123 (*next_ptr).p_next = self.inner.p_next as *mut _;
18124 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18125 core::ffi::c_void,
18126 >(next_ptr) as *const _;
18127 }
18128 self
18129 }
18130}
18131impl<'a> core::ops::Deref for DeviceGroupRenderPassBeginInfoBuilder<'a> {
18132 type Target = DeviceGroupRenderPassBeginInfo;
18133 #[inline]
18134 fn deref(&self) -> &Self::Target {
18135 &self.inner
18136 }
18137}
18138impl<'a> core::ops::DerefMut for DeviceGroupRenderPassBeginInfoBuilder<'a> {
18139 #[inline]
18140 fn deref_mut(&mut self) -> &mut Self::Target {
18141 &mut self.inner
18142 }
18143}
18144pub struct DeviceGroupCommandBufferBeginInfoBuilder<'a> {
18146 inner: DeviceGroupCommandBufferBeginInfo,
18147 _marker: core::marker::PhantomData<&'a ()>,
18148}
18149impl DeviceGroupCommandBufferBeginInfo {
18150 #[inline]
18152 pub fn builder<'a>() -> DeviceGroupCommandBufferBeginInfoBuilder<'a> {
18153 DeviceGroupCommandBufferBeginInfoBuilder {
18154 inner: DeviceGroupCommandBufferBeginInfo {
18155 s_type: StructureType::from_raw(1000060004i32),
18156 ..Default::default()
18157 },
18158 _marker: core::marker::PhantomData,
18159 }
18160 }
18161}
18162impl<'a> DeviceGroupCommandBufferBeginInfoBuilder<'a> {
18163 #[inline]
18164 pub fn device_mask(mut self, value: u32) -> Self {
18165 self.inner.device_mask = value;
18166 self
18167 }
18168 #[inline]
18170 pub fn push_next<T: ExtendsDeviceGroupCommandBufferBeginInfo>(
18171 mut self,
18172 next: &'a mut T,
18173 ) -> Self {
18174 unsafe {
18175 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18176 (*next_ptr).p_next = self.inner.p_next as *mut _;
18177 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18178 core::ffi::c_void,
18179 >(next_ptr) as *const _;
18180 }
18181 self
18182 }
18183}
18184impl<'a> core::ops::Deref for DeviceGroupCommandBufferBeginInfoBuilder<'a> {
18185 type Target = DeviceGroupCommandBufferBeginInfo;
18186 #[inline]
18187 fn deref(&self) -> &Self::Target {
18188 &self.inner
18189 }
18190}
18191impl<'a> core::ops::DerefMut for DeviceGroupCommandBufferBeginInfoBuilder<'a> {
18192 #[inline]
18193 fn deref_mut(&mut self) -> &mut Self::Target {
18194 &mut self.inner
18195 }
18196}
18197pub struct DeviceGroupSubmitInfoBuilder<'a> {
18199 inner: DeviceGroupSubmitInfo,
18200 _marker: core::marker::PhantomData<&'a ()>,
18201}
18202impl DeviceGroupSubmitInfo {
18203 #[inline]
18205 pub fn builder<'a>() -> DeviceGroupSubmitInfoBuilder<'a> {
18206 DeviceGroupSubmitInfoBuilder {
18207 inner: DeviceGroupSubmitInfo {
18208 s_type: StructureType::from_raw(1000060005i32),
18209 ..Default::default()
18210 },
18211 _marker: core::marker::PhantomData,
18212 }
18213 }
18214}
18215impl<'a> DeviceGroupSubmitInfoBuilder<'a> {
18216 #[inline]
18217 pub fn wait_semaphore_device_indices(mut self, slice: &'a [u32]) -> Self {
18218 self.inner.wait_semaphore_count = slice.len() as u32;
18219 self.inner.p_wait_semaphore_device_indices = slice.as_ptr();
18220 self
18221 }
18222 #[inline]
18223 pub fn command_buffer_device_masks(mut self, slice: &'a [u32]) -> Self {
18224 self.inner.command_buffer_count = slice.len() as u32;
18225 self.inner.p_command_buffer_device_masks = slice.as_ptr();
18226 self
18227 }
18228 #[inline]
18229 pub fn signal_semaphore_device_indices(mut self, slice: &'a [u32]) -> Self {
18230 self.inner.signal_semaphore_count = slice.len() as u32;
18231 self.inner.p_signal_semaphore_device_indices = slice.as_ptr();
18232 self
18233 }
18234 #[inline]
18236 pub fn push_next<T: ExtendsDeviceGroupSubmitInfo>(
18237 mut self,
18238 next: &'a mut T,
18239 ) -> Self {
18240 unsafe {
18241 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18242 (*next_ptr).p_next = self.inner.p_next as *mut _;
18243 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18244 core::ffi::c_void,
18245 >(next_ptr) as *const _;
18246 }
18247 self
18248 }
18249}
18250impl<'a> core::ops::Deref for DeviceGroupSubmitInfoBuilder<'a> {
18251 type Target = DeviceGroupSubmitInfo;
18252 #[inline]
18253 fn deref(&self) -> &Self::Target {
18254 &self.inner
18255 }
18256}
18257impl<'a> core::ops::DerefMut for DeviceGroupSubmitInfoBuilder<'a> {
18258 #[inline]
18259 fn deref_mut(&mut self) -> &mut Self::Target {
18260 &mut self.inner
18261 }
18262}
18263pub struct DeviceGroupBindSparseInfoBuilder<'a> {
18265 inner: DeviceGroupBindSparseInfo,
18266 _marker: core::marker::PhantomData<&'a ()>,
18267}
18268impl DeviceGroupBindSparseInfo {
18269 #[inline]
18271 pub fn builder<'a>() -> DeviceGroupBindSparseInfoBuilder<'a> {
18272 DeviceGroupBindSparseInfoBuilder {
18273 inner: DeviceGroupBindSparseInfo {
18274 s_type: StructureType::from_raw(1000060006i32),
18275 ..Default::default()
18276 },
18277 _marker: core::marker::PhantomData,
18278 }
18279 }
18280}
18281impl<'a> DeviceGroupBindSparseInfoBuilder<'a> {
18282 #[inline]
18283 pub fn resource_device_index(mut self, value: u32) -> Self {
18284 self.inner.resource_device_index = value;
18285 self
18286 }
18287 #[inline]
18288 pub fn memory_device_index(mut self, value: u32) -> Self {
18289 self.inner.memory_device_index = value;
18290 self
18291 }
18292 #[inline]
18294 pub fn push_next<T: ExtendsDeviceGroupBindSparseInfo>(
18295 mut self,
18296 next: &'a mut T,
18297 ) -> Self {
18298 unsafe {
18299 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18300 (*next_ptr).p_next = self.inner.p_next as *mut _;
18301 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18302 core::ffi::c_void,
18303 >(next_ptr) as *const _;
18304 }
18305 self
18306 }
18307}
18308impl<'a> core::ops::Deref for DeviceGroupBindSparseInfoBuilder<'a> {
18309 type Target = DeviceGroupBindSparseInfo;
18310 #[inline]
18311 fn deref(&self) -> &Self::Target {
18312 &self.inner
18313 }
18314}
18315impl<'a> core::ops::DerefMut for DeviceGroupBindSparseInfoBuilder<'a> {
18316 #[inline]
18317 fn deref_mut(&mut self) -> &mut Self::Target {
18318 &mut self.inner
18319 }
18320}
18321pub struct DeviceGroupPresentCapabilitiesKHRBuilder<'a> {
18323 inner: DeviceGroupPresentCapabilitiesKHR,
18324 _marker: core::marker::PhantomData<&'a ()>,
18325}
18326impl DeviceGroupPresentCapabilitiesKHR {
18327 #[inline]
18329 pub fn builder<'a>() -> DeviceGroupPresentCapabilitiesKHRBuilder<'a> {
18330 DeviceGroupPresentCapabilitiesKHRBuilder {
18331 inner: DeviceGroupPresentCapabilitiesKHR {
18332 s_type: StructureType::from_raw(1000060007i32),
18333 ..Default::default()
18334 },
18335 _marker: core::marker::PhantomData,
18336 }
18337 }
18338}
18339impl<'a> DeviceGroupPresentCapabilitiesKHRBuilder<'a> {
18340 #[inline]
18341 pub fn present_mask(mut self, value: [u32; MAX_DEVICE_GROUP_SIZE as usize]) -> Self {
18342 self.inner.present_mask = value;
18343 self
18344 }
18345 #[inline]
18346 pub fn modes(mut self, value: DeviceGroupPresentModeFlagsKHR) -> Self {
18347 self.inner.modes = value;
18348 self
18349 }
18350}
18351impl<'a> core::ops::Deref for DeviceGroupPresentCapabilitiesKHRBuilder<'a> {
18352 type Target = DeviceGroupPresentCapabilitiesKHR;
18353 #[inline]
18354 fn deref(&self) -> &Self::Target {
18355 &self.inner
18356 }
18357}
18358impl<'a> core::ops::DerefMut for DeviceGroupPresentCapabilitiesKHRBuilder<'a> {
18359 #[inline]
18360 fn deref_mut(&mut self) -> &mut Self::Target {
18361 &mut self.inner
18362 }
18363}
18364pub struct ImageSwapchainCreateInfoKHRBuilder<'a> {
18366 inner: ImageSwapchainCreateInfoKHR,
18367 _marker: core::marker::PhantomData<&'a ()>,
18368}
18369impl ImageSwapchainCreateInfoKHR {
18370 #[inline]
18372 pub fn builder<'a>() -> ImageSwapchainCreateInfoKHRBuilder<'a> {
18373 ImageSwapchainCreateInfoKHRBuilder {
18374 inner: ImageSwapchainCreateInfoKHR {
18375 s_type: StructureType::from_raw(1000060008i32),
18376 ..Default::default()
18377 },
18378 _marker: core::marker::PhantomData,
18379 }
18380 }
18381}
18382impl<'a> ImageSwapchainCreateInfoKHRBuilder<'a> {
18383 #[inline]
18384 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
18385 self.inner.swapchain = value;
18386 self
18387 }
18388 #[inline]
18390 pub fn push_next<T: ExtendsImageSwapchainCreateInfoKHR>(
18391 mut self,
18392 next: &'a mut T,
18393 ) -> Self {
18394 unsafe {
18395 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18396 (*next_ptr).p_next = self.inner.p_next as *mut _;
18397 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18398 core::ffi::c_void,
18399 >(next_ptr) as *const _;
18400 }
18401 self
18402 }
18403}
18404impl<'a> core::ops::Deref for ImageSwapchainCreateInfoKHRBuilder<'a> {
18405 type Target = ImageSwapchainCreateInfoKHR;
18406 #[inline]
18407 fn deref(&self) -> &Self::Target {
18408 &self.inner
18409 }
18410}
18411impl<'a> core::ops::DerefMut for ImageSwapchainCreateInfoKHRBuilder<'a> {
18412 #[inline]
18413 fn deref_mut(&mut self) -> &mut Self::Target {
18414 &mut self.inner
18415 }
18416}
18417pub struct BindImageMemorySwapchainInfoKHRBuilder<'a> {
18419 inner: BindImageMemorySwapchainInfoKHR,
18420 _marker: core::marker::PhantomData<&'a ()>,
18421}
18422impl BindImageMemorySwapchainInfoKHR {
18423 #[inline]
18425 pub fn builder<'a>() -> BindImageMemorySwapchainInfoKHRBuilder<'a> {
18426 BindImageMemorySwapchainInfoKHRBuilder {
18427 inner: BindImageMemorySwapchainInfoKHR {
18428 s_type: StructureType::from_raw(1000060009i32),
18429 ..Default::default()
18430 },
18431 _marker: core::marker::PhantomData,
18432 }
18433 }
18434}
18435impl<'a> BindImageMemorySwapchainInfoKHRBuilder<'a> {
18436 #[inline]
18437 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
18438 self.inner.swapchain = value;
18439 self
18440 }
18441 #[inline]
18442 pub fn image_index(mut self, value: u32) -> Self {
18443 self.inner.image_index = value;
18444 self
18445 }
18446 #[inline]
18448 pub fn push_next<T: ExtendsBindImageMemorySwapchainInfoKHR>(
18449 mut self,
18450 next: &'a mut T,
18451 ) -> Self {
18452 unsafe {
18453 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18454 (*next_ptr).p_next = self.inner.p_next as *mut _;
18455 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18456 core::ffi::c_void,
18457 >(next_ptr) as *const _;
18458 }
18459 self
18460 }
18461}
18462impl<'a> core::ops::Deref for BindImageMemorySwapchainInfoKHRBuilder<'a> {
18463 type Target = BindImageMemorySwapchainInfoKHR;
18464 #[inline]
18465 fn deref(&self) -> &Self::Target {
18466 &self.inner
18467 }
18468}
18469impl<'a> core::ops::DerefMut for BindImageMemorySwapchainInfoKHRBuilder<'a> {
18470 #[inline]
18471 fn deref_mut(&mut self) -> &mut Self::Target {
18472 &mut self.inner
18473 }
18474}
18475pub struct AcquireNextImageInfoKHRBuilder<'a> {
18477 inner: AcquireNextImageInfoKHR,
18478 _marker: core::marker::PhantomData<&'a ()>,
18479}
18480impl AcquireNextImageInfoKHR {
18481 #[inline]
18483 pub fn builder<'a>() -> AcquireNextImageInfoKHRBuilder<'a> {
18484 AcquireNextImageInfoKHRBuilder {
18485 inner: AcquireNextImageInfoKHR {
18486 s_type: StructureType::from_raw(1000060010i32),
18487 ..Default::default()
18488 },
18489 _marker: core::marker::PhantomData,
18490 }
18491 }
18492}
18493impl<'a> AcquireNextImageInfoKHRBuilder<'a> {
18494 #[inline]
18495 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
18496 self.inner.swapchain = value;
18497 self
18498 }
18499 #[inline]
18500 pub fn timeout(mut self, value: u64) -> Self {
18501 self.inner.timeout = value;
18502 self
18503 }
18504 #[inline]
18505 pub fn semaphore(mut self, value: Semaphore) -> Self {
18506 self.inner.semaphore = value;
18507 self
18508 }
18509 #[inline]
18510 pub fn fence(mut self, value: Fence) -> Self {
18511 self.inner.fence = value;
18512 self
18513 }
18514 #[inline]
18515 pub fn device_mask(mut self, value: u32) -> Self {
18516 self.inner.device_mask = value;
18517 self
18518 }
18519 #[inline]
18521 pub fn push_next<T: ExtendsAcquireNextImageInfoKHR>(
18522 mut self,
18523 next: &'a mut T,
18524 ) -> Self {
18525 unsafe {
18526 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18527 (*next_ptr).p_next = self.inner.p_next as *mut _;
18528 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18529 core::ffi::c_void,
18530 >(next_ptr) as *const _;
18531 }
18532 self
18533 }
18534}
18535impl<'a> core::ops::Deref for AcquireNextImageInfoKHRBuilder<'a> {
18536 type Target = AcquireNextImageInfoKHR;
18537 #[inline]
18538 fn deref(&self) -> &Self::Target {
18539 &self.inner
18540 }
18541}
18542impl<'a> core::ops::DerefMut for AcquireNextImageInfoKHRBuilder<'a> {
18543 #[inline]
18544 fn deref_mut(&mut self) -> &mut Self::Target {
18545 &mut self.inner
18546 }
18547}
18548pub struct DeviceGroupPresentInfoKHRBuilder<'a> {
18550 inner: DeviceGroupPresentInfoKHR,
18551 _marker: core::marker::PhantomData<&'a ()>,
18552}
18553impl DeviceGroupPresentInfoKHR {
18554 #[inline]
18556 pub fn builder<'a>() -> DeviceGroupPresentInfoKHRBuilder<'a> {
18557 DeviceGroupPresentInfoKHRBuilder {
18558 inner: DeviceGroupPresentInfoKHR {
18559 s_type: StructureType::from_raw(1000060011i32),
18560 ..Default::default()
18561 },
18562 _marker: core::marker::PhantomData,
18563 }
18564 }
18565}
18566impl<'a> DeviceGroupPresentInfoKHRBuilder<'a> {
18567 #[inline]
18568 pub fn device_masks(mut self, slice: &'a [u32]) -> Self {
18569 self.inner.swapchain_count = slice.len() as u32;
18570 self.inner.p_device_masks = slice.as_ptr();
18571 self
18572 }
18573 #[inline]
18574 pub fn mode(mut self, value: DeviceGroupPresentModeFlagBitsKHR) -> Self {
18575 self.inner.mode = value;
18576 self
18577 }
18578 #[inline]
18580 pub fn push_next<T: ExtendsDeviceGroupPresentInfoKHR>(
18581 mut self,
18582 next: &'a mut T,
18583 ) -> Self {
18584 unsafe {
18585 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18586 (*next_ptr).p_next = self.inner.p_next as *mut _;
18587 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18588 core::ffi::c_void,
18589 >(next_ptr) as *const _;
18590 }
18591 self
18592 }
18593}
18594impl<'a> core::ops::Deref for DeviceGroupPresentInfoKHRBuilder<'a> {
18595 type Target = DeviceGroupPresentInfoKHR;
18596 #[inline]
18597 fn deref(&self) -> &Self::Target {
18598 &self.inner
18599 }
18600}
18601impl<'a> core::ops::DerefMut for DeviceGroupPresentInfoKHRBuilder<'a> {
18602 #[inline]
18603 fn deref_mut(&mut self) -> &mut Self::Target {
18604 &mut self.inner
18605 }
18606}
18607pub struct DeviceGroupDeviceCreateInfoBuilder<'a> {
18609 inner: DeviceGroupDeviceCreateInfo,
18610 _marker: core::marker::PhantomData<&'a ()>,
18611}
18612impl DeviceGroupDeviceCreateInfo {
18613 #[inline]
18615 pub fn builder<'a>() -> DeviceGroupDeviceCreateInfoBuilder<'a> {
18616 DeviceGroupDeviceCreateInfoBuilder {
18617 inner: DeviceGroupDeviceCreateInfo {
18618 s_type: StructureType::from_raw(1000070001i32),
18619 ..Default::default()
18620 },
18621 _marker: core::marker::PhantomData,
18622 }
18623 }
18624}
18625impl<'a> DeviceGroupDeviceCreateInfoBuilder<'a> {
18626 #[inline]
18627 pub fn physical_devices(mut self, slice: &'a [PhysicalDevice]) -> Self {
18628 self.inner.physical_device_count = slice.len() as u32;
18629 self.inner.p_physical_devices = slice.as_ptr();
18630 self
18631 }
18632 #[inline]
18634 pub fn push_next<T: ExtendsDeviceGroupDeviceCreateInfo>(
18635 mut self,
18636 next: &'a mut T,
18637 ) -> Self {
18638 unsafe {
18639 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18640 (*next_ptr).p_next = self.inner.p_next as *mut _;
18641 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18642 core::ffi::c_void,
18643 >(next_ptr) as *const _;
18644 }
18645 self
18646 }
18647}
18648impl<'a> core::ops::Deref for DeviceGroupDeviceCreateInfoBuilder<'a> {
18649 type Target = DeviceGroupDeviceCreateInfo;
18650 #[inline]
18651 fn deref(&self) -> &Self::Target {
18652 &self.inner
18653 }
18654}
18655impl<'a> core::ops::DerefMut for DeviceGroupDeviceCreateInfoBuilder<'a> {
18656 #[inline]
18657 fn deref_mut(&mut self) -> &mut Self::Target {
18658 &mut self.inner
18659 }
18660}
18661pub struct DeviceGroupSwapchainCreateInfoKHRBuilder<'a> {
18663 inner: DeviceGroupSwapchainCreateInfoKHR,
18664 _marker: core::marker::PhantomData<&'a ()>,
18665}
18666impl DeviceGroupSwapchainCreateInfoKHR {
18667 #[inline]
18669 pub fn builder<'a>() -> DeviceGroupSwapchainCreateInfoKHRBuilder<'a> {
18670 DeviceGroupSwapchainCreateInfoKHRBuilder {
18671 inner: DeviceGroupSwapchainCreateInfoKHR {
18672 s_type: StructureType::from_raw(1000060012i32),
18673 ..Default::default()
18674 },
18675 _marker: core::marker::PhantomData,
18676 }
18677 }
18678}
18679impl<'a> DeviceGroupSwapchainCreateInfoKHRBuilder<'a> {
18680 #[inline]
18681 pub fn modes(mut self, value: DeviceGroupPresentModeFlagsKHR) -> Self {
18682 self.inner.modes = value;
18683 self
18684 }
18685 #[inline]
18687 pub fn push_next<T: ExtendsDeviceGroupSwapchainCreateInfoKHR>(
18688 mut self,
18689 next: &'a mut T,
18690 ) -> Self {
18691 unsafe {
18692 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18693 (*next_ptr).p_next = self.inner.p_next as *mut _;
18694 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18695 core::ffi::c_void,
18696 >(next_ptr) as *const _;
18697 }
18698 self
18699 }
18700}
18701impl<'a> core::ops::Deref for DeviceGroupSwapchainCreateInfoKHRBuilder<'a> {
18702 type Target = DeviceGroupSwapchainCreateInfoKHR;
18703 #[inline]
18704 fn deref(&self) -> &Self::Target {
18705 &self.inner
18706 }
18707}
18708impl<'a> core::ops::DerefMut for DeviceGroupSwapchainCreateInfoKHRBuilder<'a> {
18709 #[inline]
18710 fn deref_mut(&mut self) -> &mut Self::Target {
18711 &mut self.inner
18712 }
18713}
18714pub struct DescriptorUpdateTemplateEntryBuilder {
18716 inner: DescriptorUpdateTemplateEntry,
18717}
18718impl DescriptorUpdateTemplateEntry {
18719 #[inline]
18721 pub fn builder() -> DescriptorUpdateTemplateEntryBuilder {
18722 DescriptorUpdateTemplateEntryBuilder {
18723 inner: DescriptorUpdateTemplateEntry {
18724 ..Default::default()
18725 },
18726 }
18727 }
18728}
18729impl DescriptorUpdateTemplateEntryBuilder {
18730 #[inline]
18731 pub fn dst_binding(mut self, value: u32) -> Self {
18732 self.inner.dst_binding = value;
18733 self
18734 }
18735 #[inline]
18736 pub fn dst_array_element(mut self, value: u32) -> Self {
18737 self.inner.dst_array_element = value;
18738 self
18739 }
18740 #[inline]
18741 pub fn descriptor_count(mut self, value: u32) -> Self {
18742 self.inner.descriptor_count = value;
18743 self
18744 }
18745 #[inline]
18746 pub fn descriptor_type(mut self, value: DescriptorType) -> Self {
18747 self.inner.descriptor_type = value;
18748 self
18749 }
18750 #[inline]
18751 pub fn offset(mut self, value: usize) -> Self {
18752 self.inner.offset = value;
18753 self
18754 }
18755 #[inline]
18756 pub fn stride(mut self, value: usize) -> Self {
18757 self.inner.stride = value;
18758 self
18759 }
18760}
18761impl core::ops::Deref for DescriptorUpdateTemplateEntryBuilder {
18762 type Target = DescriptorUpdateTemplateEntry;
18763 #[inline]
18764 fn deref(&self) -> &Self::Target {
18765 &self.inner
18766 }
18767}
18768impl core::ops::DerefMut for DescriptorUpdateTemplateEntryBuilder {
18769 #[inline]
18770 fn deref_mut(&mut self) -> &mut Self::Target {
18771 &mut self.inner
18772 }
18773}
18774pub struct DescriptorUpdateTemplateCreateInfoBuilder<'a> {
18776 inner: DescriptorUpdateTemplateCreateInfo,
18777 _marker: core::marker::PhantomData<&'a ()>,
18778}
18779impl DescriptorUpdateTemplateCreateInfo {
18780 #[inline]
18782 pub fn builder<'a>() -> DescriptorUpdateTemplateCreateInfoBuilder<'a> {
18783 DescriptorUpdateTemplateCreateInfoBuilder {
18784 inner: DescriptorUpdateTemplateCreateInfo {
18785 s_type: StructureType::from_raw(1000085000i32),
18786 ..Default::default()
18787 },
18788 _marker: core::marker::PhantomData,
18789 }
18790 }
18791}
18792impl<'a> DescriptorUpdateTemplateCreateInfoBuilder<'a> {
18793 #[inline]
18794 pub fn flags(mut self, value: DescriptorUpdateTemplateCreateFlags) -> Self {
18795 self.inner.flags = value;
18796 self
18797 }
18798 #[inline]
18799 pub fn descriptor_update_entries(
18800 mut self,
18801 slice: &'a [DescriptorUpdateTemplateEntry],
18802 ) -> Self {
18803 self.inner.descriptor_update_entry_count = slice.len() as u32;
18804 self.inner.p_descriptor_update_entries = slice.as_ptr();
18805 self
18806 }
18807 #[inline]
18808 pub fn template_type(mut self, value: DescriptorUpdateTemplateType) -> Self {
18809 self.inner.template_type = value;
18810 self
18811 }
18812 #[inline]
18813 pub fn descriptor_set_layout(mut self, value: DescriptorSetLayout) -> Self {
18814 self.inner.descriptor_set_layout = value;
18815 self
18816 }
18817 #[inline]
18818 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
18819 self.inner.pipeline_bind_point = value;
18820 self
18821 }
18822 #[inline]
18823 pub fn pipeline_layout(mut self, value: PipelineLayout) -> Self {
18824 self.inner.pipeline_layout = value;
18825 self
18826 }
18827 #[inline]
18828 pub fn set(mut self, value: u32) -> Self {
18829 self.inner.set = value;
18830 self
18831 }
18832 #[inline]
18834 pub fn push_next<T: ExtendsDescriptorUpdateTemplateCreateInfo>(
18835 mut self,
18836 next: &'a mut T,
18837 ) -> Self {
18838 unsafe {
18839 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18840 (*next_ptr).p_next = self.inner.p_next as *mut _;
18841 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18842 core::ffi::c_void,
18843 >(next_ptr) as *const _;
18844 }
18845 self
18846 }
18847}
18848impl<'a> core::ops::Deref for DescriptorUpdateTemplateCreateInfoBuilder<'a> {
18849 type Target = DescriptorUpdateTemplateCreateInfo;
18850 #[inline]
18851 fn deref(&self) -> &Self::Target {
18852 &self.inner
18853 }
18854}
18855impl<'a> core::ops::DerefMut for DescriptorUpdateTemplateCreateInfoBuilder<'a> {
18856 #[inline]
18857 fn deref_mut(&mut self) -> &mut Self::Target {
18858 &mut self.inner
18859 }
18860}
18861pub struct XYColorEXTBuilder {
18863 inner: XYColorEXT,
18864}
18865impl XYColorEXT {
18866 #[inline]
18868 pub fn builder() -> XYColorEXTBuilder {
18869 XYColorEXTBuilder {
18870 inner: XYColorEXT { ..Default::default() },
18871 }
18872 }
18873}
18874impl XYColorEXTBuilder {
18875 #[inline]
18876 pub fn x(mut self, value: f32) -> Self {
18877 self.inner.x = value;
18878 self
18879 }
18880 #[inline]
18881 pub fn y(mut self, value: f32) -> Self {
18882 self.inner.y = value;
18883 self
18884 }
18885}
18886impl core::ops::Deref for XYColorEXTBuilder {
18887 type Target = XYColorEXT;
18888 #[inline]
18889 fn deref(&self) -> &Self::Target {
18890 &self.inner
18891 }
18892}
18893impl core::ops::DerefMut for XYColorEXTBuilder {
18894 #[inline]
18895 fn deref_mut(&mut self) -> &mut Self::Target {
18896 &mut self.inner
18897 }
18898}
18899pub struct PhysicalDevicePresentIdFeaturesKHRBuilder<'a> {
18901 inner: PhysicalDevicePresentIdFeaturesKHR,
18902 _marker: core::marker::PhantomData<&'a ()>,
18903}
18904impl PhysicalDevicePresentIdFeaturesKHR {
18905 #[inline]
18907 pub fn builder<'a>() -> PhysicalDevicePresentIdFeaturesKHRBuilder<'a> {
18908 PhysicalDevicePresentIdFeaturesKHRBuilder {
18909 inner: PhysicalDevicePresentIdFeaturesKHR {
18910 s_type: StructureType::from_raw(1000294001i32),
18911 ..Default::default()
18912 },
18913 _marker: core::marker::PhantomData,
18914 }
18915 }
18916}
18917impl<'a> PhysicalDevicePresentIdFeaturesKHRBuilder<'a> {
18918 #[inline]
18919 pub fn present_id(mut self, value: bool) -> Self {
18920 self.inner.present_id = value as u32;
18921 self
18922 }
18923 #[inline]
18925 pub fn push_next<T: ExtendsPhysicalDevicePresentIdFeaturesKHR>(
18926 mut self,
18927 next: &'a mut T,
18928 ) -> Self {
18929 unsafe {
18930 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18931 (*next_ptr).p_next = self.inner.p_next as *mut _;
18932 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18933 core::ffi::c_void,
18934 >(next_ptr);
18935 }
18936 self
18937 }
18938}
18939impl<'a> core::ops::Deref for PhysicalDevicePresentIdFeaturesKHRBuilder<'a> {
18940 type Target = PhysicalDevicePresentIdFeaturesKHR;
18941 #[inline]
18942 fn deref(&self) -> &Self::Target {
18943 &self.inner
18944 }
18945}
18946impl<'a> core::ops::DerefMut for PhysicalDevicePresentIdFeaturesKHRBuilder<'a> {
18947 #[inline]
18948 fn deref_mut(&mut self) -> &mut Self::Target {
18949 &mut self.inner
18950 }
18951}
18952pub struct PresentIdKHRBuilder<'a> {
18954 inner: PresentIdKHR,
18955 _marker: core::marker::PhantomData<&'a ()>,
18956}
18957impl PresentIdKHR {
18958 #[inline]
18960 pub fn builder<'a>() -> PresentIdKHRBuilder<'a> {
18961 PresentIdKHRBuilder {
18962 inner: PresentIdKHR {
18963 s_type: StructureType::from_raw(1000294000i32),
18964 ..Default::default()
18965 },
18966 _marker: core::marker::PhantomData,
18967 }
18968 }
18969}
18970impl<'a> PresentIdKHRBuilder<'a> {
18971 #[inline]
18972 pub fn swapchain_count(mut self, value: u32) -> Self {
18973 self.inner.swapchain_count = value;
18974 self
18975 }
18976 #[inline]
18977 pub fn present_ids(mut self, slice: &'a [u64]) -> Self {
18978 self.inner.swapchain_count = slice.len() as u32;
18979 self.inner.p_present_ids = slice.as_ptr();
18980 self
18981 }
18982 #[inline]
18984 pub fn push_next<T: ExtendsPresentIdKHR>(mut self, next: &'a mut T) -> Self {
18985 unsafe {
18986 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
18987 (*next_ptr).p_next = self.inner.p_next as *mut _;
18988 self.inner.p_next = <*mut BaseOutStructure>::cast::<
18989 core::ffi::c_void,
18990 >(next_ptr) as *const _;
18991 }
18992 self
18993 }
18994}
18995impl<'a> core::ops::Deref for PresentIdKHRBuilder<'a> {
18996 type Target = PresentIdKHR;
18997 #[inline]
18998 fn deref(&self) -> &Self::Target {
18999 &self.inner
19000 }
19001}
19002impl<'a> core::ops::DerefMut for PresentIdKHRBuilder<'a> {
19003 #[inline]
19004 fn deref_mut(&mut self) -> &mut Self::Target {
19005 &mut self.inner
19006 }
19007}
19008pub struct PhysicalDevicePresentId2FeaturesKHRBuilder<'a> {
19010 inner: PhysicalDevicePresentId2FeaturesKHR,
19011 _marker: core::marker::PhantomData<&'a ()>,
19012}
19013impl PhysicalDevicePresentId2FeaturesKHR {
19014 #[inline]
19016 pub fn builder<'a>() -> PhysicalDevicePresentId2FeaturesKHRBuilder<'a> {
19017 PhysicalDevicePresentId2FeaturesKHRBuilder {
19018 inner: PhysicalDevicePresentId2FeaturesKHR {
19019 s_type: StructureType::from_raw(1000479002i32),
19020 ..Default::default()
19021 },
19022 _marker: core::marker::PhantomData,
19023 }
19024 }
19025}
19026impl<'a> PhysicalDevicePresentId2FeaturesKHRBuilder<'a> {
19027 #[inline]
19028 pub fn present_id2(mut self, value: bool) -> Self {
19029 self.inner.present_id2 = value as u32;
19030 self
19031 }
19032 #[inline]
19034 pub fn push_next<T: ExtendsPhysicalDevicePresentId2FeaturesKHR>(
19035 mut self,
19036 next: &'a mut T,
19037 ) -> Self {
19038 unsafe {
19039 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19040 (*next_ptr).p_next = self.inner.p_next as *mut _;
19041 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19042 core::ffi::c_void,
19043 >(next_ptr);
19044 }
19045 self
19046 }
19047}
19048impl<'a> core::ops::Deref for PhysicalDevicePresentId2FeaturesKHRBuilder<'a> {
19049 type Target = PhysicalDevicePresentId2FeaturesKHR;
19050 #[inline]
19051 fn deref(&self) -> &Self::Target {
19052 &self.inner
19053 }
19054}
19055impl<'a> core::ops::DerefMut for PhysicalDevicePresentId2FeaturesKHRBuilder<'a> {
19056 #[inline]
19057 fn deref_mut(&mut self) -> &mut Self::Target {
19058 &mut self.inner
19059 }
19060}
19061pub struct PresentId2KHRBuilder<'a> {
19063 inner: PresentId2KHR,
19064 _marker: core::marker::PhantomData<&'a ()>,
19065}
19066impl PresentId2KHR {
19067 #[inline]
19069 pub fn builder<'a>() -> PresentId2KHRBuilder<'a> {
19070 PresentId2KHRBuilder {
19071 inner: PresentId2KHR {
19072 s_type: StructureType::from_raw(1000479001i32),
19073 ..Default::default()
19074 },
19075 _marker: core::marker::PhantomData,
19076 }
19077 }
19078}
19079impl<'a> PresentId2KHRBuilder<'a> {
19080 #[inline]
19081 pub fn swapchain_count(mut self, value: u32) -> Self {
19082 self.inner.swapchain_count = value;
19083 self
19084 }
19085 #[inline]
19086 pub fn present_ids(mut self, slice: &'a [u64]) -> Self {
19087 self.inner.swapchain_count = slice.len() as u32;
19088 self.inner.p_present_ids = slice.as_ptr();
19089 self
19090 }
19091 #[inline]
19093 pub fn push_next<T: ExtendsPresentId2KHR>(mut self, next: &'a mut T) -> Self {
19094 unsafe {
19095 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19096 (*next_ptr).p_next = self.inner.p_next as *mut _;
19097 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19098 core::ffi::c_void,
19099 >(next_ptr) as *const _;
19100 }
19101 self
19102 }
19103}
19104impl<'a> core::ops::Deref for PresentId2KHRBuilder<'a> {
19105 type Target = PresentId2KHR;
19106 #[inline]
19107 fn deref(&self) -> &Self::Target {
19108 &self.inner
19109 }
19110}
19111impl<'a> core::ops::DerefMut for PresentId2KHRBuilder<'a> {
19112 #[inline]
19113 fn deref_mut(&mut self) -> &mut Self::Target {
19114 &mut self.inner
19115 }
19116}
19117pub struct PresentWait2InfoKHRBuilder<'a> {
19119 inner: PresentWait2InfoKHR,
19120 _marker: core::marker::PhantomData<&'a ()>,
19121}
19122impl PresentWait2InfoKHR {
19123 #[inline]
19125 pub fn builder<'a>() -> PresentWait2InfoKHRBuilder<'a> {
19126 PresentWait2InfoKHRBuilder {
19127 inner: PresentWait2InfoKHR {
19128 s_type: StructureType::from_raw(1000480002i32),
19129 ..Default::default()
19130 },
19131 _marker: core::marker::PhantomData,
19132 }
19133 }
19134}
19135impl<'a> PresentWait2InfoKHRBuilder<'a> {
19136 #[inline]
19137 pub fn present_id(mut self, value: u64) -> Self {
19138 self.inner.present_id = value;
19139 self
19140 }
19141 #[inline]
19142 pub fn timeout(mut self, value: u64) -> Self {
19143 self.inner.timeout = value;
19144 self
19145 }
19146 #[inline]
19148 pub fn push_next<T: ExtendsPresentWait2InfoKHR>(mut self, next: &'a mut T) -> Self {
19149 unsafe {
19150 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19151 (*next_ptr).p_next = self.inner.p_next as *mut _;
19152 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19153 core::ffi::c_void,
19154 >(next_ptr) as *const _;
19155 }
19156 self
19157 }
19158}
19159impl<'a> core::ops::Deref for PresentWait2InfoKHRBuilder<'a> {
19160 type Target = PresentWait2InfoKHR;
19161 #[inline]
19162 fn deref(&self) -> &Self::Target {
19163 &self.inner
19164 }
19165}
19166impl<'a> core::ops::DerefMut for PresentWait2InfoKHRBuilder<'a> {
19167 #[inline]
19168 fn deref_mut(&mut self) -> &mut Self::Target {
19169 &mut self.inner
19170 }
19171}
19172pub struct PhysicalDevicePresentWaitFeaturesKHRBuilder<'a> {
19174 inner: PhysicalDevicePresentWaitFeaturesKHR,
19175 _marker: core::marker::PhantomData<&'a ()>,
19176}
19177impl PhysicalDevicePresentWaitFeaturesKHR {
19178 #[inline]
19180 pub fn builder<'a>() -> PhysicalDevicePresentWaitFeaturesKHRBuilder<'a> {
19181 PhysicalDevicePresentWaitFeaturesKHRBuilder {
19182 inner: PhysicalDevicePresentWaitFeaturesKHR {
19183 s_type: StructureType::from_raw(1000248000i32),
19184 ..Default::default()
19185 },
19186 _marker: core::marker::PhantomData,
19187 }
19188 }
19189}
19190impl<'a> PhysicalDevicePresentWaitFeaturesKHRBuilder<'a> {
19191 #[inline]
19192 pub fn present_wait(mut self, value: bool) -> Self {
19193 self.inner.present_wait = value as u32;
19194 self
19195 }
19196 #[inline]
19198 pub fn push_next<T: ExtendsPhysicalDevicePresentWaitFeaturesKHR>(
19199 mut self,
19200 next: &'a mut T,
19201 ) -> Self {
19202 unsafe {
19203 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19204 (*next_ptr).p_next = self.inner.p_next as *mut _;
19205 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19206 core::ffi::c_void,
19207 >(next_ptr);
19208 }
19209 self
19210 }
19211}
19212impl<'a> core::ops::Deref for PhysicalDevicePresentWaitFeaturesKHRBuilder<'a> {
19213 type Target = PhysicalDevicePresentWaitFeaturesKHR;
19214 #[inline]
19215 fn deref(&self) -> &Self::Target {
19216 &self.inner
19217 }
19218}
19219impl<'a> core::ops::DerefMut for PhysicalDevicePresentWaitFeaturesKHRBuilder<'a> {
19220 #[inline]
19221 fn deref_mut(&mut self) -> &mut Self::Target {
19222 &mut self.inner
19223 }
19224}
19225pub struct PhysicalDevicePresentWait2FeaturesKHRBuilder<'a> {
19227 inner: PhysicalDevicePresentWait2FeaturesKHR,
19228 _marker: core::marker::PhantomData<&'a ()>,
19229}
19230impl PhysicalDevicePresentWait2FeaturesKHR {
19231 #[inline]
19233 pub fn builder<'a>() -> PhysicalDevicePresentWait2FeaturesKHRBuilder<'a> {
19234 PhysicalDevicePresentWait2FeaturesKHRBuilder {
19235 inner: PhysicalDevicePresentWait2FeaturesKHR {
19236 s_type: StructureType::from_raw(1000480001i32),
19237 ..Default::default()
19238 },
19239 _marker: core::marker::PhantomData,
19240 }
19241 }
19242}
19243impl<'a> PhysicalDevicePresentWait2FeaturesKHRBuilder<'a> {
19244 #[inline]
19245 pub fn present_wait2(mut self, value: bool) -> Self {
19246 self.inner.present_wait2 = value as u32;
19247 self
19248 }
19249 #[inline]
19251 pub fn push_next<T: ExtendsPhysicalDevicePresentWait2FeaturesKHR>(
19252 mut self,
19253 next: &'a mut T,
19254 ) -> Self {
19255 unsafe {
19256 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19257 (*next_ptr).p_next = self.inner.p_next as *mut _;
19258 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19259 core::ffi::c_void,
19260 >(next_ptr);
19261 }
19262 self
19263 }
19264}
19265impl<'a> core::ops::Deref for PhysicalDevicePresentWait2FeaturesKHRBuilder<'a> {
19266 type Target = PhysicalDevicePresentWait2FeaturesKHR;
19267 #[inline]
19268 fn deref(&self) -> &Self::Target {
19269 &self.inner
19270 }
19271}
19272impl<'a> core::ops::DerefMut for PhysicalDevicePresentWait2FeaturesKHRBuilder<'a> {
19273 #[inline]
19274 fn deref_mut(&mut self) -> &mut Self::Target {
19275 &mut self.inner
19276 }
19277}
19278pub struct PhysicalDevicePresentTimingFeaturesEXTBuilder<'a> {
19280 inner: PhysicalDevicePresentTimingFeaturesEXT,
19281 _marker: core::marker::PhantomData<&'a ()>,
19282}
19283impl PhysicalDevicePresentTimingFeaturesEXT {
19284 #[inline]
19286 pub fn builder<'a>() -> PhysicalDevicePresentTimingFeaturesEXTBuilder<'a> {
19287 PhysicalDevicePresentTimingFeaturesEXTBuilder {
19288 inner: PhysicalDevicePresentTimingFeaturesEXT {
19289 s_type: StructureType::from_raw(1000208000i32),
19290 ..Default::default()
19291 },
19292 _marker: core::marker::PhantomData,
19293 }
19294 }
19295}
19296impl<'a> PhysicalDevicePresentTimingFeaturesEXTBuilder<'a> {
19297 #[inline]
19298 pub fn present_timing(mut self, value: bool) -> Self {
19299 self.inner.present_timing = value as u32;
19300 self
19301 }
19302 #[inline]
19303 pub fn present_at_absolute_time(mut self, value: bool) -> Self {
19304 self.inner.present_at_absolute_time = value as u32;
19305 self
19306 }
19307 #[inline]
19308 pub fn present_at_relative_time(mut self, value: bool) -> Self {
19309 self.inner.present_at_relative_time = value as u32;
19310 self
19311 }
19312 #[inline]
19314 pub fn push_next<T: ExtendsPhysicalDevicePresentTimingFeaturesEXT>(
19315 mut self,
19316 next: &'a mut T,
19317 ) -> Self {
19318 unsafe {
19319 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19320 (*next_ptr).p_next = self.inner.p_next as *mut _;
19321 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19322 core::ffi::c_void,
19323 >(next_ptr);
19324 }
19325 self
19326 }
19327}
19328impl<'a> core::ops::Deref for PhysicalDevicePresentTimingFeaturesEXTBuilder<'a> {
19329 type Target = PhysicalDevicePresentTimingFeaturesEXT;
19330 #[inline]
19331 fn deref(&self) -> &Self::Target {
19332 &self.inner
19333 }
19334}
19335impl<'a> core::ops::DerefMut for PhysicalDevicePresentTimingFeaturesEXTBuilder<'a> {
19336 #[inline]
19337 fn deref_mut(&mut self) -> &mut Self::Target {
19338 &mut self.inner
19339 }
19340}
19341pub struct PresentTimingSurfaceCapabilitiesEXTBuilder<'a> {
19343 inner: PresentTimingSurfaceCapabilitiesEXT,
19344 _marker: core::marker::PhantomData<&'a ()>,
19345}
19346impl PresentTimingSurfaceCapabilitiesEXT {
19347 #[inline]
19349 pub fn builder<'a>() -> PresentTimingSurfaceCapabilitiesEXTBuilder<'a> {
19350 PresentTimingSurfaceCapabilitiesEXTBuilder {
19351 inner: PresentTimingSurfaceCapabilitiesEXT {
19352 s_type: StructureType::from_raw(1000208008i32),
19353 ..Default::default()
19354 },
19355 _marker: core::marker::PhantomData,
19356 }
19357 }
19358}
19359impl<'a> PresentTimingSurfaceCapabilitiesEXTBuilder<'a> {
19360 #[inline]
19361 pub fn present_timing_supported(mut self, value: bool) -> Self {
19362 self.inner.present_timing_supported = value as u32;
19363 self
19364 }
19365 #[inline]
19366 pub fn present_at_absolute_time_supported(mut self, value: bool) -> Self {
19367 self.inner.present_at_absolute_time_supported = value as u32;
19368 self
19369 }
19370 #[inline]
19371 pub fn present_at_relative_time_supported(mut self, value: bool) -> Self {
19372 self.inner.present_at_relative_time_supported = value as u32;
19373 self
19374 }
19375 #[inline]
19376 pub fn present_stage_queries(mut self, value: PresentStageFlagsEXT) -> Self {
19377 self.inner.present_stage_queries = value;
19378 self
19379 }
19380}
19381impl<'a> core::ops::Deref for PresentTimingSurfaceCapabilitiesEXTBuilder<'a> {
19382 type Target = PresentTimingSurfaceCapabilitiesEXT;
19383 #[inline]
19384 fn deref(&self) -> &Self::Target {
19385 &self.inner
19386 }
19387}
19388impl<'a> core::ops::DerefMut for PresentTimingSurfaceCapabilitiesEXTBuilder<'a> {
19389 #[inline]
19390 fn deref_mut(&mut self) -> &mut Self::Target {
19391 &mut self.inner
19392 }
19393}
19394pub struct SwapchainTimingPropertiesEXTBuilder<'a> {
19396 inner: SwapchainTimingPropertiesEXT,
19397 _marker: core::marker::PhantomData<&'a ()>,
19398}
19399impl SwapchainTimingPropertiesEXT {
19400 #[inline]
19402 pub fn builder<'a>() -> SwapchainTimingPropertiesEXTBuilder<'a> {
19403 SwapchainTimingPropertiesEXTBuilder {
19404 inner: SwapchainTimingPropertiesEXT {
19405 s_type: StructureType::from_raw(1000208001i32),
19406 ..Default::default()
19407 },
19408 _marker: core::marker::PhantomData,
19409 }
19410 }
19411}
19412impl<'a> SwapchainTimingPropertiesEXTBuilder<'a> {
19413 #[inline]
19414 pub fn refresh_duration(mut self, value: u64) -> Self {
19415 self.inner.refresh_duration = value;
19416 self
19417 }
19418 #[inline]
19419 pub fn refresh_interval(mut self, value: u64) -> Self {
19420 self.inner.refresh_interval = value;
19421 self
19422 }
19423}
19424impl<'a> core::ops::Deref for SwapchainTimingPropertiesEXTBuilder<'a> {
19425 type Target = SwapchainTimingPropertiesEXT;
19426 #[inline]
19427 fn deref(&self) -> &Self::Target {
19428 &self.inner
19429 }
19430}
19431impl<'a> core::ops::DerefMut for SwapchainTimingPropertiesEXTBuilder<'a> {
19432 #[inline]
19433 fn deref_mut(&mut self) -> &mut Self::Target {
19434 &mut self.inner
19435 }
19436}
19437pub struct SwapchainTimeDomainPropertiesEXTBuilder<'a> {
19439 inner: SwapchainTimeDomainPropertiesEXT,
19440 _marker: core::marker::PhantomData<&'a ()>,
19441}
19442impl SwapchainTimeDomainPropertiesEXT {
19443 #[inline]
19445 pub fn builder<'a>() -> SwapchainTimeDomainPropertiesEXTBuilder<'a> {
19446 SwapchainTimeDomainPropertiesEXTBuilder {
19447 inner: SwapchainTimeDomainPropertiesEXT {
19448 s_type: StructureType::from_raw(1000208002i32),
19449 ..Default::default()
19450 },
19451 _marker: core::marker::PhantomData,
19452 }
19453 }
19454}
19455impl<'a> SwapchainTimeDomainPropertiesEXTBuilder<'a> {
19456 #[inline]
19457 pub fn time_domain_count(mut self, value: u32) -> Self {
19458 self.inner.time_domain_count = value;
19459 self
19460 }
19461 #[inline]
19462 pub fn time_domains(mut self, slice: &'a mut [TimeDomainKHR]) -> Self {
19463 self.inner.time_domain_count = slice.len() as u32;
19464 self.inner.p_time_domains = slice.as_mut_ptr();
19465 self
19466 }
19467 #[inline]
19468 pub fn time_domain_ids(mut self, slice: &'a mut [u64]) -> Self {
19469 self.inner.time_domain_count = slice.len() as u32;
19470 self.inner.p_time_domain_ids = slice.as_mut_ptr();
19471 self
19472 }
19473}
19474impl<'a> core::ops::Deref for SwapchainTimeDomainPropertiesEXTBuilder<'a> {
19475 type Target = SwapchainTimeDomainPropertiesEXT;
19476 #[inline]
19477 fn deref(&self) -> &Self::Target {
19478 &self.inner
19479 }
19480}
19481impl<'a> core::ops::DerefMut for SwapchainTimeDomainPropertiesEXTBuilder<'a> {
19482 #[inline]
19483 fn deref_mut(&mut self) -> &mut Self::Target {
19484 &mut self.inner
19485 }
19486}
19487pub struct PresentStageTimeEXTBuilder {
19489 inner: PresentStageTimeEXT,
19490}
19491impl PresentStageTimeEXT {
19492 #[inline]
19494 pub fn builder() -> PresentStageTimeEXTBuilder {
19495 PresentStageTimeEXTBuilder {
19496 inner: PresentStageTimeEXT {
19497 ..Default::default()
19498 },
19499 }
19500 }
19501}
19502impl PresentStageTimeEXTBuilder {
19503 #[inline]
19504 pub fn stage(mut self, value: PresentStageFlagsEXT) -> Self {
19505 self.inner.stage = value;
19506 self
19507 }
19508 #[inline]
19509 pub fn time(mut self, value: u64) -> Self {
19510 self.inner.time = value;
19511 self
19512 }
19513}
19514impl core::ops::Deref for PresentStageTimeEXTBuilder {
19515 type Target = PresentStageTimeEXT;
19516 #[inline]
19517 fn deref(&self) -> &Self::Target {
19518 &self.inner
19519 }
19520}
19521impl core::ops::DerefMut for PresentStageTimeEXTBuilder {
19522 #[inline]
19523 fn deref_mut(&mut self) -> &mut Self::Target {
19524 &mut self.inner
19525 }
19526}
19527pub struct PastPresentationTimingInfoEXTBuilder<'a> {
19529 inner: PastPresentationTimingInfoEXT,
19530 _marker: core::marker::PhantomData<&'a ()>,
19531}
19532impl PastPresentationTimingInfoEXT {
19533 #[inline]
19535 pub fn builder<'a>() -> PastPresentationTimingInfoEXTBuilder<'a> {
19536 PastPresentationTimingInfoEXTBuilder {
19537 inner: PastPresentationTimingInfoEXT {
19538 s_type: StructureType::from_raw(1000208005i32),
19539 ..Default::default()
19540 },
19541 _marker: core::marker::PhantomData,
19542 }
19543 }
19544}
19545impl<'a> PastPresentationTimingInfoEXTBuilder<'a> {
19546 #[inline]
19547 pub fn flags(mut self, value: PastPresentationTimingFlagsEXT) -> Self {
19548 self.inner.flags = value;
19549 self
19550 }
19551 #[inline]
19552 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
19553 self.inner.swapchain = value;
19554 self
19555 }
19556 #[inline]
19558 pub fn push_next<T: ExtendsPastPresentationTimingInfoEXT>(
19559 mut self,
19560 next: &'a mut T,
19561 ) -> Self {
19562 unsafe {
19563 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19564 (*next_ptr).p_next = self.inner.p_next as *mut _;
19565 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19566 core::ffi::c_void,
19567 >(next_ptr) as *const _;
19568 }
19569 self
19570 }
19571}
19572impl<'a> core::ops::Deref for PastPresentationTimingInfoEXTBuilder<'a> {
19573 type Target = PastPresentationTimingInfoEXT;
19574 #[inline]
19575 fn deref(&self) -> &Self::Target {
19576 &self.inner
19577 }
19578}
19579impl<'a> core::ops::DerefMut for PastPresentationTimingInfoEXTBuilder<'a> {
19580 #[inline]
19581 fn deref_mut(&mut self) -> &mut Self::Target {
19582 &mut self.inner
19583 }
19584}
19585pub struct PastPresentationTimingPropertiesEXTBuilder<'a> {
19587 inner: PastPresentationTimingPropertiesEXT,
19588 _marker: core::marker::PhantomData<&'a ()>,
19589}
19590impl PastPresentationTimingPropertiesEXT {
19591 #[inline]
19593 pub fn builder<'a>() -> PastPresentationTimingPropertiesEXTBuilder<'a> {
19594 PastPresentationTimingPropertiesEXTBuilder {
19595 inner: PastPresentationTimingPropertiesEXT {
19596 s_type: StructureType::from_raw(1000208006i32),
19597 ..Default::default()
19598 },
19599 _marker: core::marker::PhantomData,
19600 }
19601 }
19602}
19603impl<'a> PastPresentationTimingPropertiesEXTBuilder<'a> {
19604 #[inline]
19605 pub fn timing_properties_counter(mut self, value: u64) -> Self {
19606 self.inner.timing_properties_counter = value;
19607 self
19608 }
19609 #[inline]
19610 pub fn time_domains_counter(mut self, value: u64) -> Self {
19611 self.inner.time_domains_counter = value;
19612 self
19613 }
19614 #[inline]
19615 pub fn presentation_timings(
19616 mut self,
19617 slice: &'a mut [PastPresentationTimingEXT],
19618 ) -> Self {
19619 self.inner.presentation_timing_count = slice.len() as u32;
19620 self.inner.p_presentation_timings = slice.as_mut_ptr();
19621 self
19622 }
19623}
19624impl<'a> core::ops::Deref for PastPresentationTimingPropertiesEXTBuilder<'a> {
19625 type Target = PastPresentationTimingPropertiesEXT;
19626 #[inline]
19627 fn deref(&self) -> &Self::Target {
19628 &self.inner
19629 }
19630}
19631impl<'a> core::ops::DerefMut for PastPresentationTimingPropertiesEXTBuilder<'a> {
19632 #[inline]
19633 fn deref_mut(&mut self) -> &mut Self::Target {
19634 &mut self.inner
19635 }
19636}
19637pub struct PastPresentationTimingEXTBuilder<'a> {
19639 inner: PastPresentationTimingEXT,
19640 _marker: core::marker::PhantomData<&'a ()>,
19641}
19642impl PastPresentationTimingEXT {
19643 #[inline]
19645 pub fn builder<'a>() -> PastPresentationTimingEXTBuilder<'a> {
19646 PastPresentationTimingEXTBuilder {
19647 inner: PastPresentationTimingEXT {
19648 s_type: StructureType::from_raw(1000208007i32),
19649 ..Default::default()
19650 },
19651 _marker: core::marker::PhantomData,
19652 }
19653 }
19654}
19655impl<'a> PastPresentationTimingEXTBuilder<'a> {
19656 #[inline]
19657 pub fn present_id(mut self, value: u64) -> Self {
19658 self.inner.present_id = value;
19659 self
19660 }
19661 #[inline]
19662 pub fn target_time(mut self, value: u64) -> Self {
19663 self.inner.target_time = value;
19664 self
19665 }
19666 #[inline]
19667 pub fn present_stages(mut self, slice: &'a mut [PresentStageTimeEXT]) -> Self {
19668 self.inner.present_stage_count = slice.len() as u32;
19669 self.inner.p_present_stages = slice.as_mut_ptr();
19670 self
19671 }
19672 #[inline]
19673 pub fn time_domain(mut self, value: TimeDomainKHR) -> Self {
19674 self.inner.time_domain = value;
19675 self
19676 }
19677 #[inline]
19678 pub fn time_domain_id(mut self, value: u64) -> Self {
19679 self.inner.time_domain_id = value;
19680 self
19681 }
19682 #[inline]
19683 pub fn report_complete(mut self, value: bool) -> Self {
19684 self.inner.report_complete = value as u32;
19685 self
19686 }
19687}
19688impl<'a> core::ops::Deref for PastPresentationTimingEXTBuilder<'a> {
19689 type Target = PastPresentationTimingEXT;
19690 #[inline]
19691 fn deref(&self) -> &Self::Target {
19692 &self.inner
19693 }
19694}
19695impl<'a> core::ops::DerefMut for PastPresentationTimingEXTBuilder<'a> {
19696 #[inline]
19697 fn deref_mut(&mut self) -> &mut Self::Target {
19698 &mut self.inner
19699 }
19700}
19701pub struct PresentTimingsInfoEXTBuilder<'a> {
19703 inner: PresentTimingsInfoEXT,
19704 _marker: core::marker::PhantomData<&'a ()>,
19705}
19706impl PresentTimingsInfoEXT {
19707 #[inline]
19709 pub fn builder<'a>() -> PresentTimingsInfoEXTBuilder<'a> {
19710 PresentTimingsInfoEXTBuilder {
19711 inner: PresentTimingsInfoEXT {
19712 s_type: StructureType::from_raw(1000208003i32),
19713 ..Default::default()
19714 },
19715 _marker: core::marker::PhantomData,
19716 }
19717 }
19718}
19719impl<'a> PresentTimingsInfoEXTBuilder<'a> {
19720 #[inline]
19721 pub fn swapchain_count(mut self, value: u32) -> Self {
19722 self.inner.swapchain_count = value;
19723 self
19724 }
19725 #[inline]
19726 pub fn timing_infos(mut self, slice: &'a [PresentTimingInfoEXT]) -> Self {
19727 self.inner.swapchain_count = slice.len() as u32;
19728 self.inner.p_timing_infos = slice.as_ptr();
19729 self
19730 }
19731 #[inline]
19733 pub fn push_next<T: ExtendsPresentTimingsInfoEXT>(
19734 mut self,
19735 next: &'a mut T,
19736 ) -> Self {
19737 unsafe {
19738 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19739 (*next_ptr).p_next = self.inner.p_next as *mut _;
19740 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19741 core::ffi::c_void,
19742 >(next_ptr) as *const _;
19743 }
19744 self
19745 }
19746}
19747impl<'a> core::ops::Deref for PresentTimingsInfoEXTBuilder<'a> {
19748 type Target = PresentTimingsInfoEXT;
19749 #[inline]
19750 fn deref(&self) -> &Self::Target {
19751 &self.inner
19752 }
19753}
19754impl<'a> core::ops::DerefMut for PresentTimingsInfoEXTBuilder<'a> {
19755 #[inline]
19756 fn deref_mut(&mut self) -> &mut Self::Target {
19757 &mut self.inner
19758 }
19759}
19760pub struct PresentTimingInfoEXTBuilder<'a> {
19762 inner: PresentTimingInfoEXT,
19763 _marker: core::marker::PhantomData<&'a ()>,
19764}
19765impl PresentTimingInfoEXT {
19766 #[inline]
19768 pub fn builder<'a>() -> PresentTimingInfoEXTBuilder<'a> {
19769 PresentTimingInfoEXTBuilder {
19770 inner: PresentTimingInfoEXT {
19771 s_type: StructureType::from_raw(1000208004i32),
19772 ..Default::default()
19773 },
19774 _marker: core::marker::PhantomData,
19775 }
19776 }
19777}
19778impl<'a> PresentTimingInfoEXTBuilder<'a> {
19779 #[inline]
19780 pub fn flags(mut self, value: PresentTimingInfoFlagsEXT) -> Self {
19781 self.inner.flags = value;
19782 self
19783 }
19784 #[inline]
19785 pub fn target_time(mut self, value: u64) -> Self {
19786 self.inner.target_time = value;
19787 self
19788 }
19789 #[inline]
19790 pub fn time_domain_id(mut self, value: u64) -> Self {
19791 self.inner.time_domain_id = value;
19792 self
19793 }
19794 #[inline]
19795 pub fn present_stage_queries(mut self, value: PresentStageFlagsEXT) -> Self {
19796 self.inner.present_stage_queries = value;
19797 self
19798 }
19799 #[inline]
19800 pub fn target_time_domain_present_stage(
19801 mut self,
19802 value: PresentStageFlagsEXT,
19803 ) -> Self {
19804 self.inner.target_time_domain_present_stage = value;
19805 self
19806 }
19807 #[inline]
19809 pub fn push_next<T: ExtendsPresentTimingInfoEXT>(mut self, next: &'a mut T) -> Self {
19810 unsafe {
19811 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19812 (*next_ptr).p_next = self.inner.p_next as *mut _;
19813 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19814 core::ffi::c_void,
19815 >(next_ptr) as *const _;
19816 }
19817 self
19818 }
19819}
19820impl<'a> core::ops::Deref for PresentTimingInfoEXTBuilder<'a> {
19821 type Target = PresentTimingInfoEXT;
19822 #[inline]
19823 fn deref(&self) -> &Self::Target {
19824 &self.inner
19825 }
19826}
19827impl<'a> core::ops::DerefMut for PresentTimingInfoEXTBuilder<'a> {
19828 #[inline]
19829 fn deref_mut(&mut self) -> &mut Self::Target {
19830 &mut self.inner
19831 }
19832}
19833pub struct SwapchainCalibratedTimestampInfoEXTBuilder<'a> {
19835 inner: SwapchainCalibratedTimestampInfoEXT,
19836 _marker: core::marker::PhantomData<&'a ()>,
19837}
19838impl SwapchainCalibratedTimestampInfoEXT {
19839 #[inline]
19841 pub fn builder<'a>() -> SwapchainCalibratedTimestampInfoEXTBuilder<'a> {
19842 SwapchainCalibratedTimestampInfoEXTBuilder {
19843 inner: SwapchainCalibratedTimestampInfoEXT {
19844 s_type: StructureType::from_raw(1000208009i32),
19845 ..Default::default()
19846 },
19847 _marker: core::marker::PhantomData,
19848 }
19849 }
19850}
19851impl<'a> SwapchainCalibratedTimestampInfoEXTBuilder<'a> {
19852 #[inline]
19853 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
19854 self.inner.swapchain = value;
19855 self
19856 }
19857 #[inline]
19858 pub fn present_stage(mut self, value: PresentStageFlagsEXT) -> Self {
19859 self.inner.present_stage = value;
19860 self
19861 }
19862 #[inline]
19863 pub fn time_domain_id(mut self, value: u64) -> Self {
19864 self.inner.time_domain_id = value;
19865 self
19866 }
19867 #[inline]
19869 pub fn push_next<T: ExtendsSwapchainCalibratedTimestampInfoEXT>(
19870 mut self,
19871 next: &'a mut T,
19872 ) -> Self {
19873 unsafe {
19874 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19875 (*next_ptr).p_next = self.inner.p_next as *mut _;
19876 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19877 core::ffi::c_void,
19878 >(next_ptr) as *const _;
19879 }
19880 self
19881 }
19882}
19883impl<'a> core::ops::Deref for SwapchainCalibratedTimestampInfoEXTBuilder<'a> {
19884 type Target = SwapchainCalibratedTimestampInfoEXT;
19885 #[inline]
19886 fn deref(&self) -> &Self::Target {
19887 &self.inner
19888 }
19889}
19890impl<'a> core::ops::DerefMut for SwapchainCalibratedTimestampInfoEXTBuilder<'a> {
19891 #[inline]
19892 fn deref_mut(&mut self) -> &mut Self::Target {
19893 &mut self.inner
19894 }
19895}
19896pub struct HdrMetadataEXTBuilder<'a> {
19898 inner: HdrMetadataEXT,
19899 _marker: core::marker::PhantomData<&'a ()>,
19900}
19901impl HdrMetadataEXT {
19902 #[inline]
19904 pub fn builder<'a>() -> HdrMetadataEXTBuilder<'a> {
19905 HdrMetadataEXTBuilder {
19906 inner: HdrMetadataEXT {
19907 s_type: StructureType::from_raw(1000105000i32),
19908 ..Default::default()
19909 },
19910 _marker: core::marker::PhantomData,
19911 }
19912 }
19913}
19914impl<'a> HdrMetadataEXTBuilder<'a> {
19915 #[inline]
19916 pub fn display_primary_red(mut self, value: XYColorEXT) -> Self {
19917 self.inner.display_primary_red = value;
19918 self
19919 }
19920 #[inline]
19921 pub fn display_primary_green(mut self, value: XYColorEXT) -> Self {
19922 self.inner.display_primary_green = value;
19923 self
19924 }
19925 #[inline]
19926 pub fn display_primary_blue(mut self, value: XYColorEXT) -> Self {
19927 self.inner.display_primary_blue = value;
19928 self
19929 }
19930 #[inline]
19931 pub fn white_point(mut self, value: XYColorEXT) -> Self {
19932 self.inner.white_point = value;
19933 self
19934 }
19935 #[inline]
19936 pub fn max_luminance(mut self, value: f32) -> Self {
19937 self.inner.max_luminance = value;
19938 self
19939 }
19940 #[inline]
19941 pub fn min_luminance(mut self, value: f32) -> Self {
19942 self.inner.min_luminance = value;
19943 self
19944 }
19945 #[inline]
19946 pub fn max_content_light_level(mut self, value: f32) -> Self {
19947 self.inner.max_content_light_level = value;
19948 self
19949 }
19950 #[inline]
19951 pub fn max_frame_average_light_level(mut self, value: f32) -> Self {
19952 self.inner.max_frame_average_light_level = value;
19953 self
19954 }
19955 #[inline]
19957 pub fn push_next<T: ExtendsHdrMetadataEXT>(mut self, next: &'a mut T) -> Self {
19958 unsafe {
19959 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
19960 (*next_ptr).p_next = self.inner.p_next as *mut _;
19961 self.inner.p_next = <*mut BaseOutStructure>::cast::<
19962 core::ffi::c_void,
19963 >(next_ptr) as *const _;
19964 }
19965 self
19966 }
19967}
19968impl<'a> core::ops::Deref for HdrMetadataEXTBuilder<'a> {
19969 type Target = HdrMetadataEXT;
19970 #[inline]
19971 fn deref(&self) -> &Self::Target {
19972 &self.inner
19973 }
19974}
19975impl<'a> core::ops::DerefMut for HdrMetadataEXTBuilder<'a> {
19976 #[inline]
19977 fn deref_mut(&mut self) -> &mut Self::Target {
19978 &mut self.inner
19979 }
19980}
19981pub struct HdrVividDynamicMetadataHUAWEIBuilder<'a> {
19983 inner: HdrVividDynamicMetadataHUAWEI,
19984 _marker: core::marker::PhantomData<&'a ()>,
19985}
19986impl HdrVividDynamicMetadataHUAWEI {
19987 #[inline]
19989 pub fn builder<'a>() -> HdrVividDynamicMetadataHUAWEIBuilder<'a> {
19990 HdrVividDynamicMetadataHUAWEIBuilder {
19991 inner: HdrVividDynamicMetadataHUAWEI {
19992 s_type: StructureType::from_raw(1000590001i32),
19993 ..Default::default()
19994 },
19995 _marker: core::marker::PhantomData,
19996 }
19997 }
19998}
19999impl<'a> HdrVividDynamicMetadataHUAWEIBuilder<'a> {
20000 #[inline]
20001 pub fn dynamic_metadata(mut self, slice: &'a [core::ffi::c_void]) -> Self {
20002 self.inner.dynamic_metadata_size = slice.len();
20003 self.inner.p_dynamic_metadata = slice.as_ptr();
20004 self
20005 }
20006 #[inline]
20008 pub fn push_next<T: ExtendsHdrVividDynamicMetadataHUAWEI>(
20009 mut self,
20010 next: &'a mut T,
20011 ) -> Self {
20012 unsafe {
20013 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20014 (*next_ptr).p_next = self.inner.p_next as *mut _;
20015 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20016 core::ffi::c_void,
20017 >(next_ptr) as *const _;
20018 }
20019 self
20020 }
20021}
20022impl<'a> core::ops::Deref for HdrVividDynamicMetadataHUAWEIBuilder<'a> {
20023 type Target = HdrVividDynamicMetadataHUAWEI;
20024 #[inline]
20025 fn deref(&self) -> &Self::Target {
20026 &self.inner
20027 }
20028}
20029impl<'a> core::ops::DerefMut for HdrVividDynamicMetadataHUAWEIBuilder<'a> {
20030 #[inline]
20031 fn deref_mut(&mut self) -> &mut Self::Target {
20032 &mut self.inner
20033 }
20034}
20035pub struct DisplayNativeHdrSurfaceCapabilitiesAMDBuilder<'a> {
20037 inner: DisplayNativeHdrSurfaceCapabilitiesAMD,
20038 _marker: core::marker::PhantomData<&'a ()>,
20039}
20040impl DisplayNativeHdrSurfaceCapabilitiesAMD {
20041 #[inline]
20043 pub fn builder<'a>() -> DisplayNativeHdrSurfaceCapabilitiesAMDBuilder<'a> {
20044 DisplayNativeHdrSurfaceCapabilitiesAMDBuilder {
20045 inner: DisplayNativeHdrSurfaceCapabilitiesAMD {
20046 s_type: StructureType::from_raw(1000213000i32),
20047 ..Default::default()
20048 },
20049 _marker: core::marker::PhantomData,
20050 }
20051 }
20052}
20053impl<'a> DisplayNativeHdrSurfaceCapabilitiesAMDBuilder<'a> {
20054 #[inline]
20055 pub fn local_dimming_support(mut self, value: bool) -> Self {
20056 self.inner.local_dimming_support = value as u32;
20057 self
20058 }
20059}
20060impl<'a> core::ops::Deref for DisplayNativeHdrSurfaceCapabilitiesAMDBuilder<'a> {
20061 type Target = DisplayNativeHdrSurfaceCapabilitiesAMD;
20062 #[inline]
20063 fn deref(&self) -> &Self::Target {
20064 &self.inner
20065 }
20066}
20067impl<'a> core::ops::DerefMut for DisplayNativeHdrSurfaceCapabilitiesAMDBuilder<'a> {
20068 #[inline]
20069 fn deref_mut(&mut self) -> &mut Self::Target {
20070 &mut self.inner
20071 }
20072}
20073pub struct SwapchainDisplayNativeHdrCreateInfoAMDBuilder<'a> {
20075 inner: SwapchainDisplayNativeHdrCreateInfoAMD,
20076 _marker: core::marker::PhantomData<&'a ()>,
20077}
20078impl SwapchainDisplayNativeHdrCreateInfoAMD {
20079 #[inline]
20081 pub fn builder<'a>() -> SwapchainDisplayNativeHdrCreateInfoAMDBuilder<'a> {
20082 SwapchainDisplayNativeHdrCreateInfoAMDBuilder {
20083 inner: SwapchainDisplayNativeHdrCreateInfoAMD {
20084 s_type: StructureType::from_raw(1000213001i32),
20085 ..Default::default()
20086 },
20087 _marker: core::marker::PhantomData,
20088 }
20089 }
20090}
20091impl<'a> SwapchainDisplayNativeHdrCreateInfoAMDBuilder<'a> {
20092 #[inline]
20093 pub fn local_dimming_enable(mut self, value: bool) -> Self {
20094 self.inner.local_dimming_enable = value as u32;
20095 self
20096 }
20097 #[inline]
20099 pub fn push_next<T: ExtendsSwapchainDisplayNativeHdrCreateInfoAMD>(
20100 mut self,
20101 next: &'a mut T,
20102 ) -> Self {
20103 unsafe {
20104 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20105 (*next_ptr).p_next = self.inner.p_next as *mut _;
20106 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20107 core::ffi::c_void,
20108 >(next_ptr) as *const _;
20109 }
20110 self
20111 }
20112}
20113impl<'a> core::ops::Deref for SwapchainDisplayNativeHdrCreateInfoAMDBuilder<'a> {
20114 type Target = SwapchainDisplayNativeHdrCreateInfoAMD;
20115 #[inline]
20116 fn deref(&self) -> &Self::Target {
20117 &self.inner
20118 }
20119}
20120impl<'a> core::ops::DerefMut for SwapchainDisplayNativeHdrCreateInfoAMDBuilder<'a> {
20121 #[inline]
20122 fn deref_mut(&mut self) -> &mut Self::Target {
20123 &mut self.inner
20124 }
20125}
20126pub struct RefreshCycleDurationGOOGLEBuilder {
20128 inner: RefreshCycleDurationGOOGLE,
20129}
20130impl RefreshCycleDurationGOOGLE {
20131 #[inline]
20133 pub fn builder() -> RefreshCycleDurationGOOGLEBuilder {
20134 RefreshCycleDurationGOOGLEBuilder {
20135 inner: RefreshCycleDurationGOOGLE {
20136 ..Default::default()
20137 },
20138 }
20139 }
20140}
20141impl RefreshCycleDurationGOOGLEBuilder {
20142 #[inline]
20143 pub fn refresh_duration(mut self, value: u64) -> Self {
20144 self.inner.refresh_duration = value;
20145 self
20146 }
20147}
20148impl core::ops::Deref for RefreshCycleDurationGOOGLEBuilder {
20149 type Target = RefreshCycleDurationGOOGLE;
20150 #[inline]
20151 fn deref(&self) -> &Self::Target {
20152 &self.inner
20153 }
20154}
20155impl core::ops::DerefMut for RefreshCycleDurationGOOGLEBuilder {
20156 #[inline]
20157 fn deref_mut(&mut self) -> &mut Self::Target {
20158 &mut self.inner
20159 }
20160}
20161pub struct PastPresentationTimingGOOGLEBuilder {
20163 inner: PastPresentationTimingGOOGLE,
20164}
20165impl PastPresentationTimingGOOGLE {
20166 #[inline]
20168 pub fn builder() -> PastPresentationTimingGOOGLEBuilder {
20169 PastPresentationTimingGOOGLEBuilder {
20170 inner: PastPresentationTimingGOOGLE {
20171 ..Default::default()
20172 },
20173 }
20174 }
20175}
20176impl PastPresentationTimingGOOGLEBuilder {
20177 #[inline]
20178 pub fn present_id(mut self, value: u32) -> Self {
20179 self.inner.present_id = value;
20180 self
20181 }
20182 #[inline]
20183 pub fn desired_present_time(mut self, value: u64) -> Self {
20184 self.inner.desired_present_time = value;
20185 self
20186 }
20187 #[inline]
20188 pub fn actual_present_time(mut self, value: u64) -> Self {
20189 self.inner.actual_present_time = value;
20190 self
20191 }
20192 #[inline]
20193 pub fn earliest_present_time(mut self, value: u64) -> Self {
20194 self.inner.earliest_present_time = value;
20195 self
20196 }
20197 #[inline]
20198 pub fn present_margin(mut self, value: u64) -> Self {
20199 self.inner.present_margin = value;
20200 self
20201 }
20202}
20203impl core::ops::Deref for PastPresentationTimingGOOGLEBuilder {
20204 type Target = PastPresentationTimingGOOGLE;
20205 #[inline]
20206 fn deref(&self) -> &Self::Target {
20207 &self.inner
20208 }
20209}
20210impl core::ops::DerefMut for PastPresentationTimingGOOGLEBuilder {
20211 #[inline]
20212 fn deref_mut(&mut self) -> &mut Self::Target {
20213 &mut self.inner
20214 }
20215}
20216pub struct PresentTimesInfoGOOGLEBuilder<'a> {
20218 inner: PresentTimesInfoGOOGLE,
20219 _marker: core::marker::PhantomData<&'a ()>,
20220}
20221impl PresentTimesInfoGOOGLE {
20222 #[inline]
20224 pub fn builder<'a>() -> PresentTimesInfoGOOGLEBuilder<'a> {
20225 PresentTimesInfoGOOGLEBuilder {
20226 inner: PresentTimesInfoGOOGLE {
20227 s_type: StructureType::from_raw(1000092000i32),
20228 ..Default::default()
20229 },
20230 _marker: core::marker::PhantomData,
20231 }
20232 }
20233}
20234impl<'a> PresentTimesInfoGOOGLEBuilder<'a> {
20235 #[inline]
20236 pub fn swapchain_count(mut self, value: u32) -> Self {
20237 self.inner.swapchain_count = value;
20238 self
20239 }
20240 #[inline]
20241 pub fn times(mut self, slice: &'a [PresentTimeGOOGLE]) -> Self {
20242 self.inner.swapchain_count = slice.len() as u32;
20243 self.inner.p_times = slice.as_ptr();
20244 self
20245 }
20246 #[inline]
20248 pub fn push_next<T: ExtendsPresentTimesInfoGOOGLE>(
20249 mut self,
20250 next: &'a mut T,
20251 ) -> Self {
20252 unsafe {
20253 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20254 (*next_ptr).p_next = self.inner.p_next as *mut _;
20255 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20256 core::ffi::c_void,
20257 >(next_ptr) as *const _;
20258 }
20259 self
20260 }
20261}
20262impl<'a> core::ops::Deref for PresentTimesInfoGOOGLEBuilder<'a> {
20263 type Target = PresentTimesInfoGOOGLE;
20264 #[inline]
20265 fn deref(&self) -> &Self::Target {
20266 &self.inner
20267 }
20268}
20269impl<'a> core::ops::DerefMut for PresentTimesInfoGOOGLEBuilder<'a> {
20270 #[inline]
20271 fn deref_mut(&mut self) -> &mut Self::Target {
20272 &mut self.inner
20273 }
20274}
20275pub struct PresentTimeGOOGLEBuilder {
20277 inner: PresentTimeGOOGLE,
20278}
20279impl PresentTimeGOOGLE {
20280 #[inline]
20282 pub fn builder() -> PresentTimeGOOGLEBuilder {
20283 PresentTimeGOOGLEBuilder {
20284 inner: PresentTimeGOOGLE {
20285 ..Default::default()
20286 },
20287 }
20288 }
20289}
20290impl PresentTimeGOOGLEBuilder {
20291 #[inline]
20292 pub fn present_id(mut self, value: u32) -> Self {
20293 self.inner.present_id = value;
20294 self
20295 }
20296 #[inline]
20297 pub fn desired_present_time(mut self, value: u64) -> Self {
20298 self.inner.desired_present_time = value;
20299 self
20300 }
20301}
20302impl core::ops::Deref for PresentTimeGOOGLEBuilder {
20303 type Target = PresentTimeGOOGLE;
20304 #[inline]
20305 fn deref(&self) -> &Self::Target {
20306 &self.inner
20307 }
20308}
20309impl core::ops::DerefMut for PresentTimeGOOGLEBuilder {
20310 #[inline]
20311 fn deref_mut(&mut self) -> &mut Self::Target {
20312 &mut self.inner
20313 }
20314}
20315pub struct IOSSurfaceCreateInfoMVKBuilder<'a> {
20317 inner: IOSSurfaceCreateInfoMVK,
20318 _marker: core::marker::PhantomData<&'a ()>,
20319}
20320impl IOSSurfaceCreateInfoMVK {
20321 #[inline]
20323 pub fn builder<'a>() -> IOSSurfaceCreateInfoMVKBuilder<'a> {
20324 IOSSurfaceCreateInfoMVKBuilder {
20325 inner: IOSSurfaceCreateInfoMVK {
20326 s_type: StructureType::from_raw(1000122000i32),
20327 ..Default::default()
20328 },
20329 _marker: core::marker::PhantomData,
20330 }
20331 }
20332}
20333impl<'a> IOSSurfaceCreateInfoMVKBuilder<'a> {
20334 #[inline]
20335 pub fn flags(mut self, value: IOSSurfaceCreateFlagsMVK) -> Self {
20336 self.inner.flags = value;
20337 self
20338 }
20339 #[inline]
20340 pub fn view(mut self, value: *const core::ffi::c_void) -> Self {
20341 self.inner.p_view = value;
20342 self
20343 }
20344 #[inline]
20346 pub fn push_next<T: ExtendsIOSSurfaceCreateInfoMVK>(
20347 mut self,
20348 next: &'a mut T,
20349 ) -> Self {
20350 unsafe {
20351 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20352 (*next_ptr).p_next = self.inner.p_next as *mut _;
20353 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20354 core::ffi::c_void,
20355 >(next_ptr) as *const _;
20356 }
20357 self
20358 }
20359}
20360impl<'a> core::ops::Deref for IOSSurfaceCreateInfoMVKBuilder<'a> {
20361 type Target = IOSSurfaceCreateInfoMVK;
20362 #[inline]
20363 fn deref(&self) -> &Self::Target {
20364 &self.inner
20365 }
20366}
20367impl<'a> core::ops::DerefMut for IOSSurfaceCreateInfoMVKBuilder<'a> {
20368 #[inline]
20369 fn deref_mut(&mut self) -> &mut Self::Target {
20370 &mut self.inner
20371 }
20372}
20373pub struct MacOSSurfaceCreateInfoMVKBuilder<'a> {
20375 inner: MacOSSurfaceCreateInfoMVK,
20376 _marker: core::marker::PhantomData<&'a ()>,
20377}
20378impl MacOSSurfaceCreateInfoMVK {
20379 #[inline]
20381 pub fn builder<'a>() -> MacOSSurfaceCreateInfoMVKBuilder<'a> {
20382 MacOSSurfaceCreateInfoMVKBuilder {
20383 inner: MacOSSurfaceCreateInfoMVK {
20384 s_type: StructureType::from_raw(1000123000i32),
20385 ..Default::default()
20386 },
20387 _marker: core::marker::PhantomData,
20388 }
20389 }
20390}
20391impl<'a> MacOSSurfaceCreateInfoMVKBuilder<'a> {
20392 #[inline]
20393 pub fn flags(mut self, value: MacOSSurfaceCreateFlagsMVK) -> Self {
20394 self.inner.flags = value;
20395 self
20396 }
20397 #[inline]
20398 pub fn view(mut self, value: *const core::ffi::c_void) -> Self {
20399 self.inner.p_view = value;
20400 self
20401 }
20402 #[inline]
20404 pub fn push_next<T: ExtendsMacOSSurfaceCreateInfoMVK>(
20405 mut self,
20406 next: &'a mut T,
20407 ) -> Self {
20408 unsafe {
20409 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20410 (*next_ptr).p_next = self.inner.p_next as *mut _;
20411 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20412 core::ffi::c_void,
20413 >(next_ptr) as *const _;
20414 }
20415 self
20416 }
20417}
20418impl<'a> core::ops::Deref for MacOSSurfaceCreateInfoMVKBuilder<'a> {
20419 type Target = MacOSSurfaceCreateInfoMVK;
20420 #[inline]
20421 fn deref(&self) -> &Self::Target {
20422 &self.inner
20423 }
20424}
20425impl<'a> core::ops::DerefMut for MacOSSurfaceCreateInfoMVKBuilder<'a> {
20426 #[inline]
20427 fn deref_mut(&mut self) -> &mut Self::Target {
20428 &mut self.inner
20429 }
20430}
20431pub struct MetalSurfaceCreateInfoEXTBuilder<'a> {
20433 inner: MetalSurfaceCreateInfoEXT,
20434 _marker: core::marker::PhantomData<&'a ()>,
20435}
20436impl MetalSurfaceCreateInfoEXT {
20437 #[inline]
20439 pub fn builder<'a>() -> MetalSurfaceCreateInfoEXTBuilder<'a> {
20440 MetalSurfaceCreateInfoEXTBuilder {
20441 inner: MetalSurfaceCreateInfoEXT {
20442 s_type: StructureType::from_raw(1000217000i32),
20443 ..Default::default()
20444 },
20445 _marker: core::marker::PhantomData,
20446 }
20447 }
20448}
20449impl<'a> MetalSurfaceCreateInfoEXTBuilder<'a> {
20450 #[inline]
20451 pub fn flags(mut self, value: MetalSurfaceCreateFlagsEXT) -> Self {
20452 self.inner.flags = value;
20453 self
20454 }
20455 #[inline]
20456 pub fn layer(mut self, value: *const core::ffi::c_void) -> Self {
20457 self.inner.p_layer = value;
20458 self
20459 }
20460 #[inline]
20462 pub fn push_next<T: ExtendsMetalSurfaceCreateInfoEXT>(
20463 mut self,
20464 next: &'a mut T,
20465 ) -> Self {
20466 unsafe {
20467 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20468 (*next_ptr).p_next = self.inner.p_next as *mut _;
20469 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20470 core::ffi::c_void,
20471 >(next_ptr) as *const _;
20472 }
20473 self
20474 }
20475}
20476impl<'a> core::ops::Deref for MetalSurfaceCreateInfoEXTBuilder<'a> {
20477 type Target = MetalSurfaceCreateInfoEXT;
20478 #[inline]
20479 fn deref(&self) -> &Self::Target {
20480 &self.inner
20481 }
20482}
20483impl<'a> core::ops::DerefMut for MetalSurfaceCreateInfoEXTBuilder<'a> {
20484 #[inline]
20485 fn deref_mut(&mut self) -> &mut Self::Target {
20486 &mut self.inner
20487 }
20488}
20489pub struct ViewportWScalingNVBuilder {
20491 inner: ViewportWScalingNV,
20492}
20493impl ViewportWScalingNV {
20494 #[inline]
20496 pub fn builder() -> ViewportWScalingNVBuilder {
20497 ViewportWScalingNVBuilder {
20498 inner: ViewportWScalingNV {
20499 ..Default::default()
20500 },
20501 }
20502 }
20503}
20504impl ViewportWScalingNVBuilder {
20505 #[inline]
20506 pub fn xcoeff(mut self, value: f32) -> Self {
20507 self.inner.xcoeff = value;
20508 self
20509 }
20510 #[inline]
20511 pub fn ycoeff(mut self, value: f32) -> Self {
20512 self.inner.ycoeff = value;
20513 self
20514 }
20515}
20516impl core::ops::Deref for ViewportWScalingNVBuilder {
20517 type Target = ViewportWScalingNV;
20518 #[inline]
20519 fn deref(&self) -> &Self::Target {
20520 &self.inner
20521 }
20522}
20523impl core::ops::DerefMut for ViewportWScalingNVBuilder {
20524 #[inline]
20525 fn deref_mut(&mut self) -> &mut Self::Target {
20526 &mut self.inner
20527 }
20528}
20529pub struct PipelineViewportWScalingStateCreateInfoNVBuilder<'a> {
20531 inner: PipelineViewportWScalingStateCreateInfoNV,
20532 _marker: core::marker::PhantomData<&'a ()>,
20533}
20534impl PipelineViewportWScalingStateCreateInfoNV {
20535 #[inline]
20537 pub fn builder<'a>() -> PipelineViewportWScalingStateCreateInfoNVBuilder<'a> {
20538 PipelineViewportWScalingStateCreateInfoNVBuilder {
20539 inner: PipelineViewportWScalingStateCreateInfoNV {
20540 s_type: StructureType::from_raw(1000087000i32),
20541 ..Default::default()
20542 },
20543 _marker: core::marker::PhantomData,
20544 }
20545 }
20546}
20547impl<'a> PipelineViewportWScalingStateCreateInfoNVBuilder<'a> {
20548 #[inline]
20549 pub fn viewport_w_scaling_enable(mut self, value: bool) -> Self {
20550 self.inner.viewport_w_scaling_enable = value as u32;
20551 self
20552 }
20553 #[inline]
20554 pub fn viewport_count(mut self, value: u32) -> Self {
20555 self.inner.viewport_count = value;
20556 self
20557 }
20558 #[inline]
20559 pub fn viewport_w_scalings(mut self, slice: &'a [ViewportWScalingNV]) -> Self {
20560 self.inner.viewport_count = slice.len() as u32;
20561 self.inner.p_viewport_w_scalings = slice.as_ptr();
20562 self
20563 }
20564 #[inline]
20566 pub fn push_next<T: ExtendsPipelineViewportWScalingStateCreateInfoNV>(
20567 mut self,
20568 next: &'a mut T,
20569 ) -> Self {
20570 unsafe {
20571 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20572 (*next_ptr).p_next = self.inner.p_next as *mut _;
20573 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20574 core::ffi::c_void,
20575 >(next_ptr) as *const _;
20576 }
20577 self
20578 }
20579}
20580impl<'a> core::ops::Deref for PipelineViewportWScalingStateCreateInfoNVBuilder<'a> {
20581 type Target = PipelineViewportWScalingStateCreateInfoNV;
20582 #[inline]
20583 fn deref(&self) -> &Self::Target {
20584 &self.inner
20585 }
20586}
20587impl<'a> core::ops::DerefMut for PipelineViewportWScalingStateCreateInfoNVBuilder<'a> {
20588 #[inline]
20589 fn deref_mut(&mut self) -> &mut Self::Target {
20590 &mut self.inner
20591 }
20592}
20593pub struct ViewportSwizzleNVBuilder {
20595 inner: ViewportSwizzleNV,
20596}
20597impl ViewportSwizzleNV {
20598 #[inline]
20600 pub fn builder() -> ViewportSwizzleNVBuilder {
20601 ViewportSwizzleNVBuilder {
20602 inner: ViewportSwizzleNV {
20603 ..Default::default()
20604 },
20605 }
20606 }
20607}
20608impl ViewportSwizzleNVBuilder {
20609 #[inline]
20610 pub fn x(mut self, value: ViewportCoordinateSwizzleNV) -> Self {
20611 self.inner.x = value;
20612 self
20613 }
20614 #[inline]
20615 pub fn y(mut self, value: ViewportCoordinateSwizzleNV) -> Self {
20616 self.inner.y = value;
20617 self
20618 }
20619 #[inline]
20620 pub fn z(mut self, value: ViewportCoordinateSwizzleNV) -> Self {
20621 self.inner.z = value;
20622 self
20623 }
20624 #[inline]
20625 pub fn w(mut self, value: ViewportCoordinateSwizzleNV) -> Self {
20626 self.inner.w = value;
20627 self
20628 }
20629}
20630impl core::ops::Deref for ViewportSwizzleNVBuilder {
20631 type Target = ViewportSwizzleNV;
20632 #[inline]
20633 fn deref(&self) -> &Self::Target {
20634 &self.inner
20635 }
20636}
20637impl core::ops::DerefMut for ViewportSwizzleNVBuilder {
20638 #[inline]
20639 fn deref_mut(&mut self) -> &mut Self::Target {
20640 &mut self.inner
20641 }
20642}
20643pub struct PipelineViewportSwizzleStateCreateInfoNVBuilder<'a> {
20645 inner: PipelineViewportSwizzleStateCreateInfoNV,
20646 _marker: core::marker::PhantomData<&'a ()>,
20647}
20648impl PipelineViewportSwizzleStateCreateInfoNV {
20649 #[inline]
20651 pub fn builder<'a>() -> PipelineViewportSwizzleStateCreateInfoNVBuilder<'a> {
20652 PipelineViewportSwizzleStateCreateInfoNVBuilder {
20653 inner: PipelineViewportSwizzleStateCreateInfoNV {
20654 s_type: StructureType::from_raw(1000098000i32),
20655 ..Default::default()
20656 },
20657 _marker: core::marker::PhantomData,
20658 }
20659 }
20660}
20661impl<'a> PipelineViewportSwizzleStateCreateInfoNVBuilder<'a> {
20662 #[inline]
20663 pub fn flags(mut self, value: PipelineViewportSwizzleStateCreateFlagsNV) -> Self {
20664 self.inner.flags = value;
20665 self
20666 }
20667 #[inline]
20668 pub fn viewport_swizzles(mut self, slice: &'a [ViewportSwizzleNV]) -> Self {
20669 self.inner.viewport_count = slice.len() as u32;
20670 self.inner.p_viewport_swizzles = slice.as_ptr();
20671 self
20672 }
20673 #[inline]
20675 pub fn push_next<T: ExtendsPipelineViewportSwizzleStateCreateInfoNV>(
20676 mut self,
20677 next: &'a mut T,
20678 ) -> Self {
20679 unsafe {
20680 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20681 (*next_ptr).p_next = self.inner.p_next as *mut _;
20682 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20683 core::ffi::c_void,
20684 >(next_ptr) as *const _;
20685 }
20686 self
20687 }
20688}
20689impl<'a> core::ops::Deref for PipelineViewportSwizzleStateCreateInfoNVBuilder<'a> {
20690 type Target = PipelineViewportSwizzleStateCreateInfoNV;
20691 #[inline]
20692 fn deref(&self) -> &Self::Target {
20693 &self.inner
20694 }
20695}
20696impl<'a> core::ops::DerefMut for PipelineViewportSwizzleStateCreateInfoNVBuilder<'a> {
20697 #[inline]
20698 fn deref_mut(&mut self) -> &mut Self::Target {
20699 &mut self.inner
20700 }
20701}
20702pub struct PhysicalDeviceDiscardRectanglePropertiesEXTBuilder<'a> {
20704 inner: PhysicalDeviceDiscardRectanglePropertiesEXT,
20705 _marker: core::marker::PhantomData<&'a ()>,
20706}
20707impl PhysicalDeviceDiscardRectanglePropertiesEXT {
20708 #[inline]
20710 pub fn builder<'a>() -> PhysicalDeviceDiscardRectanglePropertiesEXTBuilder<'a> {
20711 PhysicalDeviceDiscardRectanglePropertiesEXTBuilder {
20712 inner: PhysicalDeviceDiscardRectanglePropertiesEXT {
20713 s_type: StructureType::from_raw(1000099000i32),
20714 ..Default::default()
20715 },
20716 _marker: core::marker::PhantomData,
20717 }
20718 }
20719}
20720impl<'a> PhysicalDeviceDiscardRectanglePropertiesEXTBuilder<'a> {
20721 #[inline]
20722 pub fn max_discard_rectangles(mut self, value: u32) -> Self {
20723 self.inner.max_discard_rectangles = value;
20724 self
20725 }
20726}
20727impl<'a> core::ops::Deref for PhysicalDeviceDiscardRectanglePropertiesEXTBuilder<'a> {
20728 type Target = PhysicalDeviceDiscardRectanglePropertiesEXT;
20729 #[inline]
20730 fn deref(&self) -> &Self::Target {
20731 &self.inner
20732 }
20733}
20734impl<'a> core::ops::DerefMut for PhysicalDeviceDiscardRectanglePropertiesEXTBuilder<'a> {
20735 #[inline]
20736 fn deref_mut(&mut self) -> &mut Self::Target {
20737 &mut self.inner
20738 }
20739}
20740pub struct PipelineDiscardRectangleStateCreateInfoEXTBuilder<'a> {
20742 inner: PipelineDiscardRectangleStateCreateInfoEXT,
20743 _marker: core::marker::PhantomData<&'a ()>,
20744}
20745impl PipelineDiscardRectangleStateCreateInfoEXT {
20746 #[inline]
20748 pub fn builder<'a>() -> PipelineDiscardRectangleStateCreateInfoEXTBuilder<'a> {
20749 PipelineDiscardRectangleStateCreateInfoEXTBuilder {
20750 inner: PipelineDiscardRectangleStateCreateInfoEXT {
20751 s_type: StructureType::from_raw(1000099001i32),
20752 ..Default::default()
20753 },
20754 _marker: core::marker::PhantomData,
20755 }
20756 }
20757}
20758impl<'a> PipelineDiscardRectangleStateCreateInfoEXTBuilder<'a> {
20759 #[inline]
20760 pub fn flags(mut self, value: PipelineDiscardRectangleStateCreateFlagsEXT) -> Self {
20761 self.inner.flags = value;
20762 self
20763 }
20764 #[inline]
20765 pub fn discard_rectangle_mode(mut self, value: DiscardRectangleModeEXT) -> Self {
20766 self.inner.discard_rectangle_mode = value;
20767 self
20768 }
20769 #[inline]
20770 pub fn discard_rectangles(mut self, slice: &'a [Rect2D]) -> Self {
20771 self.inner.discard_rectangle_count = slice.len() as u32;
20772 self.inner.p_discard_rectangles = slice.as_ptr();
20773 self
20774 }
20775 #[inline]
20777 pub fn push_next<T: ExtendsPipelineDiscardRectangleStateCreateInfoEXT>(
20778 mut self,
20779 next: &'a mut T,
20780 ) -> Self {
20781 unsafe {
20782 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20783 (*next_ptr).p_next = self.inner.p_next as *mut _;
20784 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20785 core::ffi::c_void,
20786 >(next_ptr) as *const _;
20787 }
20788 self
20789 }
20790}
20791impl<'a> core::ops::Deref for PipelineDiscardRectangleStateCreateInfoEXTBuilder<'a> {
20792 type Target = PipelineDiscardRectangleStateCreateInfoEXT;
20793 #[inline]
20794 fn deref(&self) -> &Self::Target {
20795 &self.inner
20796 }
20797}
20798impl<'a> core::ops::DerefMut for PipelineDiscardRectangleStateCreateInfoEXTBuilder<'a> {
20799 #[inline]
20800 fn deref_mut(&mut self) -> &mut Self::Target {
20801 &mut self.inner
20802 }
20803}
20804pub struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder<'a> {
20806 inner: PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX,
20807 _marker: core::marker::PhantomData<&'a ()>,
20808}
20809impl PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
20810 #[inline]
20812 pub fn builder<'a>() -> PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder<
20813 'a,
20814 > {
20815 PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder {
20816 inner: PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
20817 s_type: StructureType::from_raw(1000097000i32),
20818 ..Default::default()
20819 },
20820 _marker: core::marker::PhantomData,
20821 }
20822 }
20823}
20824impl<'a> PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder<'a> {
20825 #[inline]
20826 pub fn per_view_position_all_components(mut self, value: bool) -> Self {
20827 self.inner.per_view_position_all_components = value as u32;
20828 self
20829 }
20830}
20831impl<'a> core::ops::Deref
20832for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder<'a> {
20833 type Target = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
20834 #[inline]
20835 fn deref(&self) -> &Self::Target {
20836 &self.inner
20837 }
20838}
20839impl<'a> core::ops::DerefMut
20840for PhysicalDeviceMultiviewPerViewAttributesPropertiesNVXBuilder<'a> {
20841 #[inline]
20842 fn deref_mut(&mut self) -> &mut Self::Target {
20843 &mut self.inner
20844 }
20845}
20846pub struct InputAttachmentAspectReferenceBuilder {
20848 inner: InputAttachmentAspectReference,
20849}
20850impl InputAttachmentAspectReference {
20851 #[inline]
20853 pub fn builder() -> InputAttachmentAspectReferenceBuilder {
20854 InputAttachmentAspectReferenceBuilder {
20855 inner: InputAttachmentAspectReference {
20856 ..Default::default()
20857 },
20858 }
20859 }
20860}
20861impl InputAttachmentAspectReferenceBuilder {
20862 #[inline]
20863 pub fn subpass(mut self, value: u32) -> Self {
20864 self.inner.subpass = value;
20865 self
20866 }
20867 #[inline]
20868 pub fn input_attachment_index(mut self, value: u32) -> Self {
20869 self.inner.input_attachment_index = value;
20870 self
20871 }
20872 #[inline]
20873 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
20874 self.inner.aspect_mask = value;
20875 self
20876 }
20877}
20878impl core::ops::Deref for InputAttachmentAspectReferenceBuilder {
20879 type Target = InputAttachmentAspectReference;
20880 #[inline]
20881 fn deref(&self) -> &Self::Target {
20882 &self.inner
20883 }
20884}
20885impl core::ops::DerefMut for InputAttachmentAspectReferenceBuilder {
20886 #[inline]
20887 fn deref_mut(&mut self) -> &mut Self::Target {
20888 &mut self.inner
20889 }
20890}
20891pub struct RenderPassInputAttachmentAspectCreateInfoBuilder<'a> {
20893 inner: RenderPassInputAttachmentAspectCreateInfo,
20894 _marker: core::marker::PhantomData<&'a ()>,
20895}
20896impl RenderPassInputAttachmentAspectCreateInfo {
20897 #[inline]
20899 pub fn builder<'a>() -> RenderPassInputAttachmentAspectCreateInfoBuilder<'a> {
20900 RenderPassInputAttachmentAspectCreateInfoBuilder {
20901 inner: RenderPassInputAttachmentAspectCreateInfo {
20902 s_type: StructureType::from_raw(1000117001i32),
20903 ..Default::default()
20904 },
20905 _marker: core::marker::PhantomData,
20906 }
20907 }
20908}
20909impl<'a> RenderPassInputAttachmentAspectCreateInfoBuilder<'a> {
20910 #[inline]
20911 pub fn aspect_references(
20912 mut self,
20913 slice: &'a [InputAttachmentAspectReference],
20914 ) -> Self {
20915 self.inner.aspect_reference_count = slice.len() as u32;
20916 self.inner.p_aspect_references = slice.as_ptr();
20917 self
20918 }
20919 #[inline]
20921 pub fn push_next<T: ExtendsRenderPassInputAttachmentAspectCreateInfo>(
20922 mut self,
20923 next: &'a mut T,
20924 ) -> Self {
20925 unsafe {
20926 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20927 (*next_ptr).p_next = self.inner.p_next as *mut _;
20928 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20929 core::ffi::c_void,
20930 >(next_ptr) as *const _;
20931 }
20932 self
20933 }
20934}
20935impl<'a> core::ops::Deref for RenderPassInputAttachmentAspectCreateInfoBuilder<'a> {
20936 type Target = RenderPassInputAttachmentAspectCreateInfo;
20937 #[inline]
20938 fn deref(&self) -> &Self::Target {
20939 &self.inner
20940 }
20941}
20942impl<'a> core::ops::DerefMut for RenderPassInputAttachmentAspectCreateInfoBuilder<'a> {
20943 #[inline]
20944 fn deref_mut(&mut self) -> &mut Self::Target {
20945 &mut self.inner
20946 }
20947}
20948pub struct PhysicalDeviceSurfaceInfo2KHRBuilder<'a> {
20950 inner: PhysicalDeviceSurfaceInfo2KHR,
20951 _marker: core::marker::PhantomData<&'a ()>,
20952}
20953impl PhysicalDeviceSurfaceInfo2KHR {
20954 #[inline]
20956 pub fn builder<'a>() -> PhysicalDeviceSurfaceInfo2KHRBuilder<'a> {
20957 PhysicalDeviceSurfaceInfo2KHRBuilder {
20958 inner: PhysicalDeviceSurfaceInfo2KHR {
20959 s_type: StructureType::from_raw(1000119000i32),
20960 ..Default::default()
20961 },
20962 _marker: core::marker::PhantomData,
20963 }
20964 }
20965}
20966impl<'a> PhysicalDeviceSurfaceInfo2KHRBuilder<'a> {
20967 #[inline]
20968 pub fn surface(mut self, value: SurfaceKHR) -> Self {
20969 self.inner.surface = value;
20970 self
20971 }
20972 #[inline]
20974 pub fn push_next<T: ExtendsPhysicalDeviceSurfaceInfo2KHR>(
20975 mut self,
20976 next: &'a mut T,
20977 ) -> Self {
20978 unsafe {
20979 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
20980 (*next_ptr).p_next = self.inner.p_next as *mut _;
20981 self.inner.p_next = <*mut BaseOutStructure>::cast::<
20982 core::ffi::c_void,
20983 >(next_ptr) as *const _;
20984 }
20985 self
20986 }
20987}
20988impl<'a> core::ops::Deref for PhysicalDeviceSurfaceInfo2KHRBuilder<'a> {
20989 type Target = PhysicalDeviceSurfaceInfo2KHR;
20990 #[inline]
20991 fn deref(&self) -> &Self::Target {
20992 &self.inner
20993 }
20994}
20995impl<'a> core::ops::DerefMut for PhysicalDeviceSurfaceInfo2KHRBuilder<'a> {
20996 #[inline]
20997 fn deref_mut(&mut self) -> &mut Self::Target {
20998 &mut self.inner
20999 }
21000}
21001pub struct SurfaceCapabilities2KHRBuilder<'a> {
21003 inner: SurfaceCapabilities2KHR,
21004 _marker: core::marker::PhantomData<&'a ()>,
21005}
21006impl SurfaceCapabilities2KHR {
21007 #[inline]
21009 pub fn builder<'a>() -> SurfaceCapabilities2KHRBuilder<'a> {
21010 SurfaceCapabilities2KHRBuilder {
21011 inner: SurfaceCapabilities2KHR {
21012 s_type: StructureType::from_raw(1000119001i32),
21013 ..Default::default()
21014 },
21015 _marker: core::marker::PhantomData,
21016 }
21017 }
21018}
21019impl<'a> SurfaceCapabilities2KHRBuilder<'a> {
21020 #[inline]
21021 pub fn surface_capabilities(mut self, value: SurfaceCapabilitiesKHR) -> Self {
21022 self.inner.surface_capabilities = value;
21023 self
21024 }
21025}
21026impl<'a> core::ops::Deref for SurfaceCapabilities2KHRBuilder<'a> {
21027 type Target = SurfaceCapabilities2KHR;
21028 #[inline]
21029 fn deref(&self) -> &Self::Target {
21030 &self.inner
21031 }
21032}
21033impl<'a> core::ops::DerefMut for SurfaceCapabilities2KHRBuilder<'a> {
21034 #[inline]
21035 fn deref_mut(&mut self) -> &mut Self::Target {
21036 &mut self.inner
21037 }
21038}
21039pub struct SurfaceFormat2KHRBuilder<'a> {
21041 inner: SurfaceFormat2KHR,
21042 _marker: core::marker::PhantomData<&'a ()>,
21043}
21044impl SurfaceFormat2KHR {
21045 #[inline]
21047 pub fn builder<'a>() -> SurfaceFormat2KHRBuilder<'a> {
21048 SurfaceFormat2KHRBuilder {
21049 inner: SurfaceFormat2KHR {
21050 s_type: StructureType::from_raw(1000119002i32),
21051 ..Default::default()
21052 },
21053 _marker: core::marker::PhantomData,
21054 }
21055 }
21056}
21057impl<'a> SurfaceFormat2KHRBuilder<'a> {
21058 #[inline]
21059 pub fn surface_format(mut self, value: SurfaceFormatKHR) -> Self {
21060 self.inner.surface_format = value;
21061 self
21062 }
21063}
21064impl<'a> core::ops::Deref for SurfaceFormat2KHRBuilder<'a> {
21065 type Target = SurfaceFormat2KHR;
21066 #[inline]
21067 fn deref(&self) -> &Self::Target {
21068 &self.inner
21069 }
21070}
21071impl<'a> core::ops::DerefMut for SurfaceFormat2KHRBuilder<'a> {
21072 #[inline]
21073 fn deref_mut(&mut self) -> &mut Self::Target {
21074 &mut self.inner
21075 }
21076}
21077pub struct DisplayProperties2KHRBuilder<'a> {
21079 inner: DisplayProperties2KHR,
21080 _marker: core::marker::PhantomData<&'a ()>,
21081}
21082impl DisplayProperties2KHR {
21083 #[inline]
21085 pub fn builder<'a>() -> DisplayProperties2KHRBuilder<'a> {
21086 DisplayProperties2KHRBuilder {
21087 inner: DisplayProperties2KHR {
21088 s_type: StructureType::from_raw(1000121000i32),
21089 ..Default::default()
21090 },
21091 _marker: core::marker::PhantomData,
21092 }
21093 }
21094}
21095impl<'a> DisplayProperties2KHRBuilder<'a> {
21096 #[inline]
21097 pub fn display_properties(mut self, value: DisplayPropertiesKHR) -> Self {
21098 self.inner.display_properties = value;
21099 self
21100 }
21101}
21102impl<'a> core::ops::Deref for DisplayProperties2KHRBuilder<'a> {
21103 type Target = DisplayProperties2KHR;
21104 #[inline]
21105 fn deref(&self) -> &Self::Target {
21106 &self.inner
21107 }
21108}
21109impl<'a> core::ops::DerefMut for DisplayProperties2KHRBuilder<'a> {
21110 #[inline]
21111 fn deref_mut(&mut self) -> &mut Self::Target {
21112 &mut self.inner
21113 }
21114}
21115pub struct DisplayPlaneProperties2KHRBuilder<'a> {
21117 inner: DisplayPlaneProperties2KHR,
21118 _marker: core::marker::PhantomData<&'a ()>,
21119}
21120impl DisplayPlaneProperties2KHR {
21121 #[inline]
21123 pub fn builder<'a>() -> DisplayPlaneProperties2KHRBuilder<'a> {
21124 DisplayPlaneProperties2KHRBuilder {
21125 inner: DisplayPlaneProperties2KHR {
21126 s_type: StructureType::from_raw(1000121001i32),
21127 ..Default::default()
21128 },
21129 _marker: core::marker::PhantomData,
21130 }
21131 }
21132}
21133impl<'a> DisplayPlaneProperties2KHRBuilder<'a> {
21134 #[inline]
21135 pub fn display_plane_properties(mut self, value: DisplayPlanePropertiesKHR) -> Self {
21136 self.inner.display_plane_properties = value;
21137 self
21138 }
21139}
21140impl<'a> core::ops::Deref for DisplayPlaneProperties2KHRBuilder<'a> {
21141 type Target = DisplayPlaneProperties2KHR;
21142 #[inline]
21143 fn deref(&self) -> &Self::Target {
21144 &self.inner
21145 }
21146}
21147impl<'a> core::ops::DerefMut for DisplayPlaneProperties2KHRBuilder<'a> {
21148 #[inline]
21149 fn deref_mut(&mut self) -> &mut Self::Target {
21150 &mut self.inner
21151 }
21152}
21153pub struct DisplayModeProperties2KHRBuilder<'a> {
21155 inner: DisplayModeProperties2KHR,
21156 _marker: core::marker::PhantomData<&'a ()>,
21157}
21158impl DisplayModeProperties2KHR {
21159 #[inline]
21161 pub fn builder<'a>() -> DisplayModeProperties2KHRBuilder<'a> {
21162 DisplayModeProperties2KHRBuilder {
21163 inner: DisplayModeProperties2KHR {
21164 s_type: StructureType::from_raw(1000121002i32),
21165 ..Default::default()
21166 },
21167 _marker: core::marker::PhantomData,
21168 }
21169 }
21170}
21171impl<'a> DisplayModeProperties2KHRBuilder<'a> {
21172 #[inline]
21173 pub fn display_mode_properties(mut self, value: DisplayModePropertiesKHR) -> Self {
21174 self.inner.display_mode_properties = value;
21175 self
21176 }
21177}
21178impl<'a> core::ops::Deref for DisplayModeProperties2KHRBuilder<'a> {
21179 type Target = DisplayModeProperties2KHR;
21180 #[inline]
21181 fn deref(&self) -> &Self::Target {
21182 &self.inner
21183 }
21184}
21185impl<'a> core::ops::DerefMut for DisplayModeProperties2KHRBuilder<'a> {
21186 #[inline]
21187 fn deref_mut(&mut self) -> &mut Self::Target {
21188 &mut self.inner
21189 }
21190}
21191pub struct DisplayModeStereoPropertiesNVBuilder<'a> {
21193 inner: DisplayModeStereoPropertiesNV,
21194 _marker: core::marker::PhantomData<&'a ()>,
21195}
21196impl DisplayModeStereoPropertiesNV {
21197 #[inline]
21199 pub fn builder<'a>() -> DisplayModeStereoPropertiesNVBuilder<'a> {
21200 DisplayModeStereoPropertiesNVBuilder {
21201 inner: DisplayModeStereoPropertiesNV {
21202 s_type: StructureType::from_raw(1000551001i32),
21203 ..Default::default()
21204 },
21205 _marker: core::marker::PhantomData,
21206 }
21207 }
21208}
21209impl<'a> DisplayModeStereoPropertiesNVBuilder<'a> {
21210 #[inline]
21211 pub fn hdmi3_d_supported(mut self, value: bool) -> Self {
21212 self.inner.hdmi3_d_supported = value as u32;
21213 self
21214 }
21215}
21216impl<'a> core::ops::Deref for DisplayModeStereoPropertiesNVBuilder<'a> {
21217 type Target = DisplayModeStereoPropertiesNV;
21218 #[inline]
21219 fn deref(&self) -> &Self::Target {
21220 &self.inner
21221 }
21222}
21223impl<'a> core::ops::DerefMut for DisplayModeStereoPropertiesNVBuilder<'a> {
21224 #[inline]
21225 fn deref_mut(&mut self) -> &mut Self::Target {
21226 &mut self.inner
21227 }
21228}
21229pub struct DisplayPlaneInfo2KHRBuilder<'a> {
21231 inner: DisplayPlaneInfo2KHR,
21232 _marker: core::marker::PhantomData<&'a ()>,
21233}
21234impl DisplayPlaneInfo2KHR {
21235 #[inline]
21237 pub fn builder<'a>() -> DisplayPlaneInfo2KHRBuilder<'a> {
21238 DisplayPlaneInfo2KHRBuilder {
21239 inner: DisplayPlaneInfo2KHR {
21240 s_type: StructureType::from_raw(1000121003i32),
21241 ..Default::default()
21242 },
21243 _marker: core::marker::PhantomData,
21244 }
21245 }
21246}
21247impl<'a> DisplayPlaneInfo2KHRBuilder<'a> {
21248 #[inline]
21249 pub fn mode(mut self, value: DisplayModeKHR) -> Self {
21250 self.inner.mode = value;
21251 self
21252 }
21253 #[inline]
21254 pub fn plane_index(mut self, value: u32) -> Self {
21255 self.inner.plane_index = value;
21256 self
21257 }
21258 #[inline]
21260 pub fn push_next<T: ExtendsDisplayPlaneInfo2KHR>(mut self, next: &'a mut T) -> Self {
21261 unsafe {
21262 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21263 (*next_ptr).p_next = self.inner.p_next as *mut _;
21264 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21265 core::ffi::c_void,
21266 >(next_ptr) as *const _;
21267 }
21268 self
21269 }
21270}
21271impl<'a> core::ops::Deref for DisplayPlaneInfo2KHRBuilder<'a> {
21272 type Target = DisplayPlaneInfo2KHR;
21273 #[inline]
21274 fn deref(&self) -> &Self::Target {
21275 &self.inner
21276 }
21277}
21278impl<'a> core::ops::DerefMut for DisplayPlaneInfo2KHRBuilder<'a> {
21279 #[inline]
21280 fn deref_mut(&mut self) -> &mut Self::Target {
21281 &mut self.inner
21282 }
21283}
21284pub struct DisplayPlaneCapabilities2KHRBuilder<'a> {
21286 inner: DisplayPlaneCapabilities2KHR,
21287 _marker: core::marker::PhantomData<&'a ()>,
21288}
21289impl DisplayPlaneCapabilities2KHR {
21290 #[inline]
21292 pub fn builder<'a>() -> DisplayPlaneCapabilities2KHRBuilder<'a> {
21293 DisplayPlaneCapabilities2KHRBuilder {
21294 inner: DisplayPlaneCapabilities2KHR {
21295 s_type: StructureType::from_raw(1000121004i32),
21296 ..Default::default()
21297 },
21298 _marker: core::marker::PhantomData,
21299 }
21300 }
21301}
21302impl<'a> DisplayPlaneCapabilities2KHRBuilder<'a> {
21303 #[inline]
21304 pub fn capabilities(mut self, value: DisplayPlaneCapabilitiesKHR) -> Self {
21305 self.inner.capabilities = value;
21306 self
21307 }
21308}
21309impl<'a> core::ops::Deref for DisplayPlaneCapabilities2KHRBuilder<'a> {
21310 type Target = DisplayPlaneCapabilities2KHR;
21311 #[inline]
21312 fn deref(&self) -> &Self::Target {
21313 &self.inner
21314 }
21315}
21316impl<'a> core::ops::DerefMut for DisplayPlaneCapabilities2KHRBuilder<'a> {
21317 #[inline]
21318 fn deref_mut(&mut self) -> &mut Self::Target {
21319 &mut self.inner
21320 }
21321}
21322pub struct SharedPresentSurfaceCapabilitiesKHRBuilder<'a> {
21324 inner: SharedPresentSurfaceCapabilitiesKHR,
21325 _marker: core::marker::PhantomData<&'a ()>,
21326}
21327impl SharedPresentSurfaceCapabilitiesKHR {
21328 #[inline]
21330 pub fn builder<'a>() -> SharedPresentSurfaceCapabilitiesKHRBuilder<'a> {
21331 SharedPresentSurfaceCapabilitiesKHRBuilder {
21332 inner: SharedPresentSurfaceCapabilitiesKHR {
21333 s_type: StructureType::from_raw(1000111000i32),
21334 ..Default::default()
21335 },
21336 _marker: core::marker::PhantomData,
21337 }
21338 }
21339}
21340impl<'a> SharedPresentSurfaceCapabilitiesKHRBuilder<'a> {
21341 #[inline]
21342 pub fn shared_present_supported_usage_flags(
21343 mut self,
21344 value: ImageUsageFlags,
21345 ) -> Self {
21346 self.inner.shared_present_supported_usage_flags = value;
21347 self
21348 }
21349}
21350impl<'a> core::ops::Deref for SharedPresentSurfaceCapabilitiesKHRBuilder<'a> {
21351 type Target = SharedPresentSurfaceCapabilitiesKHR;
21352 #[inline]
21353 fn deref(&self) -> &Self::Target {
21354 &self.inner
21355 }
21356}
21357impl<'a> core::ops::DerefMut for SharedPresentSurfaceCapabilitiesKHRBuilder<'a> {
21358 #[inline]
21359 fn deref_mut(&mut self) -> &mut Self::Target {
21360 &mut self.inner
21361 }
21362}
21363pub struct PhysicalDevice16BitStorageFeaturesBuilder<'a> {
21365 inner: PhysicalDevice16BitStorageFeatures,
21366 _marker: core::marker::PhantomData<&'a ()>,
21367}
21368impl PhysicalDevice16BitStorageFeatures {
21369 #[inline]
21371 pub fn builder<'a>() -> PhysicalDevice16BitStorageFeaturesBuilder<'a> {
21372 PhysicalDevice16BitStorageFeaturesBuilder {
21373 inner: PhysicalDevice16BitStorageFeatures {
21374 s_type: StructureType::from_raw(1000083000i32),
21375 ..Default::default()
21376 },
21377 _marker: core::marker::PhantomData,
21378 }
21379 }
21380}
21381impl<'a> PhysicalDevice16BitStorageFeaturesBuilder<'a> {
21382 #[inline]
21383 pub fn storage_buffer16_bit_access(mut self, value: bool) -> Self {
21384 self.inner.storage_buffer16_bit_access = value as u32;
21385 self
21386 }
21387 #[inline]
21388 pub fn uniform_and_storage_buffer16_bit_access(mut self, value: bool) -> Self {
21389 self.inner.uniform_and_storage_buffer16_bit_access = value as u32;
21390 self
21391 }
21392 #[inline]
21393 pub fn storage_push_constant16(mut self, value: bool) -> Self {
21394 self.inner.storage_push_constant16 = value as u32;
21395 self
21396 }
21397 #[inline]
21398 pub fn storage_input_output16(mut self, value: bool) -> Self {
21399 self.inner.storage_input_output16 = value as u32;
21400 self
21401 }
21402 #[inline]
21404 pub fn push_next<T: ExtendsPhysicalDevice16BitStorageFeatures>(
21405 mut self,
21406 next: &'a mut T,
21407 ) -> Self {
21408 unsafe {
21409 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21410 (*next_ptr).p_next = self.inner.p_next as *mut _;
21411 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21412 core::ffi::c_void,
21413 >(next_ptr);
21414 }
21415 self
21416 }
21417}
21418impl<'a> core::ops::Deref for PhysicalDevice16BitStorageFeaturesBuilder<'a> {
21419 type Target = PhysicalDevice16BitStorageFeatures;
21420 #[inline]
21421 fn deref(&self) -> &Self::Target {
21422 &self.inner
21423 }
21424}
21425impl<'a> core::ops::DerefMut for PhysicalDevice16BitStorageFeaturesBuilder<'a> {
21426 #[inline]
21427 fn deref_mut(&mut self) -> &mut Self::Target {
21428 &mut self.inner
21429 }
21430}
21431pub struct PhysicalDeviceSubgroupPropertiesBuilder<'a> {
21433 inner: PhysicalDeviceSubgroupProperties,
21434 _marker: core::marker::PhantomData<&'a ()>,
21435}
21436impl PhysicalDeviceSubgroupProperties {
21437 #[inline]
21439 pub fn builder<'a>() -> PhysicalDeviceSubgroupPropertiesBuilder<'a> {
21440 PhysicalDeviceSubgroupPropertiesBuilder {
21441 inner: PhysicalDeviceSubgroupProperties {
21442 s_type: StructureType::from_raw(1000094000i32),
21443 ..Default::default()
21444 },
21445 _marker: core::marker::PhantomData,
21446 }
21447 }
21448}
21449impl<'a> PhysicalDeviceSubgroupPropertiesBuilder<'a> {
21450 #[inline]
21451 pub fn subgroup_size(mut self, value: u32) -> Self {
21452 self.inner.subgroup_size = value;
21453 self
21454 }
21455 #[inline]
21456 pub fn supported_stages(mut self, value: ShaderStageFlags) -> Self {
21457 self.inner.supported_stages = value;
21458 self
21459 }
21460 #[inline]
21461 pub fn supported_operations(mut self, value: SubgroupFeatureFlags) -> Self {
21462 self.inner.supported_operations = value;
21463 self
21464 }
21465 #[inline]
21466 pub fn quad_operations_in_all_stages(mut self, value: bool) -> Self {
21467 self.inner.quad_operations_in_all_stages = value as u32;
21468 self
21469 }
21470}
21471impl<'a> core::ops::Deref for PhysicalDeviceSubgroupPropertiesBuilder<'a> {
21472 type Target = PhysicalDeviceSubgroupProperties;
21473 #[inline]
21474 fn deref(&self) -> &Self::Target {
21475 &self.inner
21476 }
21477}
21478impl<'a> core::ops::DerefMut for PhysicalDeviceSubgroupPropertiesBuilder<'a> {
21479 #[inline]
21480 fn deref_mut(&mut self) -> &mut Self::Target {
21481 &mut self.inner
21482 }
21483}
21484pub struct PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder<'a> {
21486 inner: PhysicalDeviceShaderSubgroupExtendedTypesFeatures,
21487 _marker: core::marker::PhantomData<&'a ()>,
21488}
21489impl PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
21490 #[inline]
21492 pub fn builder<'a>() -> PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder<
21493 'a,
21494 > {
21495 PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder {
21496 inner: PhysicalDeviceShaderSubgroupExtendedTypesFeatures {
21497 s_type: StructureType::from_raw(1000175000i32),
21498 ..Default::default()
21499 },
21500 _marker: core::marker::PhantomData,
21501 }
21502 }
21503}
21504impl<'a> PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder<'a> {
21505 #[inline]
21506 pub fn shader_subgroup_extended_types(mut self, value: bool) -> Self {
21507 self.inner.shader_subgroup_extended_types = value as u32;
21508 self
21509 }
21510 #[inline]
21512 pub fn push_next<T: ExtendsPhysicalDeviceShaderSubgroupExtendedTypesFeatures>(
21513 mut self,
21514 next: &'a mut T,
21515 ) -> Self {
21516 unsafe {
21517 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21518 (*next_ptr).p_next = self.inner.p_next as *mut _;
21519 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21520 core::ffi::c_void,
21521 >(next_ptr);
21522 }
21523 self
21524 }
21525}
21526impl<'a> core::ops::Deref
21527for PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder<'a> {
21528 type Target = PhysicalDeviceShaderSubgroupExtendedTypesFeatures;
21529 #[inline]
21530 fn deref(&self) -> &Self::Target {
21531 &self.inner
21532 }
21533}
21534impl<'a> core::ops::DerefMut
21535for PhysicalDeviceShaderSubgroupExtendedTypesFeaturesBuilder<'a> {
21536 #[inline]
21537 fn deref_mut(&mut self) -> &mut Self::Target {
21538 &mut self.inner
21539 }
21540}
21541pub struct BufferMemoryRequirementsInfo2Builder<'a> {
21543 inner: BufferMemoryRequirementsInfo2,
21544 _marker: core::marker::PhantomData<&'a ()>,
21545}
21546impl BufferMemoryRequirementsInfo2 {
21547 #[inline]
21549 pub fn builder<'a>() -> BufferMemoryRequirementsInfo2Builder<'a> {
21550 BufferMemoryRequirementsInfo2Builder {
21551 inner: BufferMemoryRequirementsInfo2 {
21552 s_type: StructureType::from_raw(1000146000i32),
21553 ..Default::default()
21554 },
21555 _marker: core::marker::PhantomData,
21556 }
21557 }
21558}
21559impl<'a> BufferMemoryRequirementsInfo2Builder<'a> {
21560 #[inline]
21561 pub fn buffer(mut self, value: Buffer) -> Self {
21562 self.inner.buffer = value;
21563 self
21564 }
21565 #[inline]
21567 pub fn push_next<T: ExtendsBufferMemoryRequirementsInfo2>(
21568 mut self,
21569 next: &'a mut T,
21570 ) -> Self {
21571 unsafe {
21572 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21573 (*next_ptr).p_next = self.inner.p_next as *mut _;
21574 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21575 core::ffi::c_void,
21576 >(next_ptr) as *const _;
21577 }
21578 self
21579 }
21580}
21581impl<'a> core::ops::Deref for BufferMemoryRequirementsInfo2Builder<'a> {
21582 type Target = BufferMemoryRequirementsInfo2;
21583 #[inline]
21584 fn deref(&self) -> &Self::Target {
21585 &self.inner
21586 }
21587}
21588impl<'a> core::ops::DerefMut for BufferMemoryRequirementsInfo2Builder<'a> {
21589 #[inline]
21590 fn deref_mut(&mut self) -> &mut Self::Target {
21591 &mut self.inner
21592 }
21593}
21594pub struct DeviceBufferMemoryRequirementsBuilder<'a> {
21596 inner: DeviceBufferMemoryRequirements,
21597 _marker: core::marker::PhantomData<&'a ()>,
21598}
21599impl DeviceBufferMemoryRequirements {
21600 #[inline]
21602 pub fn builder<'a>() -> DeviceBufferMemoryRequirementsBuilder<'a> {
21603 DeviceBufferMemoryRequirementsBuilder {
21604 inner: DeviceBufferMemoryRequirements {
21605 s_type: StructureType::from_raw(1000413002i32),
21606 ..Default::default()
21607 },
21608 _marker: core::marker::PhantomData,
21609 }
21610 }
21611}
21612impl<'a> DeviceBufferMemoryRequirementsBuilder<'a> {
21613 #[inline]
21614 pub fn create_info(mut self, value: &'a BufferCreateInfo) -> Self {
21615 self.inner.p_create_info = value;
21616 self
21617 }
21618 #[inline]
21620 pub fn push_next<T: ExtendsDeviceBufferMemoryRequirements>(
21621 mut self,
21622 next: &'a mut T,
21623 ) -> Self {
21624 unsafe {
21625 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21626 (*next_ptr).p_next = self.inner.p_next as *mut _;
21627 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21628 core::ffi::c_void,
21629 >(next_ptr) as *const _;
21630 }
21631 self
21632 }
21633}
21634impl<'a> core::ops::Deref for DeviceBufferMemoryRequirementsBuilder<'a> {
21635 type Target = DeviceBufferMemoryRequirements;
21636 #[inline]
21637 fn deref(&self) -> &Self::Target {
21638 &self.inner
21639 }
21640}
21641impl<'a> core::ops::DerefMut for DeviceBufferMemoryRequirementsBuilder<'a> {
21642 #[inline]
21643 fn deref_mut(&mut self) -> &mut Self::Target {
21644 &mut self.inner
21645 }
21646}
21647pub struct ImageMemoryRequirementsInfo2Builder<'a> {
21649 inner: ImageMemoryRequirementsInfo2,
21650 _marker: core::marker::PhantomData<&'a ()>,
21651}
21652impl ImageMemoryRequirementsInfo2 {
21653 #[inline]
21655 pub fn builder<'a>() -> ImageMemoryRequirementsInfo2Builder<'a> {
21656 ImageMemoryRequirementsInfo2Builder {
21657 inner: ImageMemoryRequirementsInfo2 {
21658 s_type: StructureType::from_raw(1000146001i32),
21659 ..Default::default()
21660 },
21661 _marker: core::marker::PhantomData,
21662 }
21663 }
21664}
21665impl<'a> ImageMemoryRequirementsInfo2Builder<'a> {
21666 #[inline]
21667 pub fn image(mut self, value: Image) -> Self {
21668 self.inner.image = value;
21669 self
21670 }
21671 #[inline]
21673 pub fn push_next<T: ExtendsImageMemoryRequirementsInfo2>(
21674 mut self,
21675 next: &'a mut T,
21676 ) -> Self {
21677 unsafe {
21678 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21679 (*next_ptr).p_next = self.inner.p_next as *mut _;
21680 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21681 core::ffi::c_void,
21682 >(next_ptr) as *const _;
21683 }
21684 self
21685 }
21686}
21687impl<'a> core::ops::Deref for ImageMemoryRequirementsInfo2Builder<'a> {
21688 type Target = ImageMemoryRequirementsInfo2;
21689 #[inline]
21690 fn deref(&self) -> &Self::Target {
21691 &self.inner
21692 }
21693}
21694impl<'a> core::ops::DerefMut for ImageMemoryRequirementsInfo2Builder<'a> {
21695 #[inline]
21696 fn deref_mut(&mut self) -> &mut Self::Target {
21697 &mut self.inner
21698 }
21699}
21700pub struct ImageSparseMemoryRequirementsInfo2Builder<'a> {
21702 inner: ImageSparseMemoryRequirementsInfo2,
21703 _marker: core::marker::PhantomData<&'a ()>,
21704}
21705impl ImageSparseMemoryRequirementsInfo2 {
21706 #[inline]
21708 pub fn builder<'a>() -> ImageSparseMemoryRequirementsInfo2Builder<'a> {
21709 ImageSparseMemoryRequirementsInfo2Builder {
21710 inner: ImageSparseMemoryRequirementsInfo2 {
21711 s_type: StructureType::from_raw(1000146002i32),
21712 ..Default::default()
21713 },
21714 _marker: core::marker::PhantomData,
21715 }
21716 }
21717}
21718impl<'a> ImageSparseMemoryRequirementsInfo2Builder<'a> {
21719 #[inline]
21720 pub fn image(mut self, value: Image) -> Self {
21721 self.inner.image = value;
21722 self
21723 }
21724 #[inline]
21726 pub fn push_next<T: ExtendsImageSparseMemoryRequirementsInfo2>(
21727 mut self,
21728 next: &'a mut T,
21729 ) -> Self {
21730 unsafe {
21731 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21732 (*next_ptr).p_next = self.inner.p_next as *mut _;
21733 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21734 core::ffi::c_void,
21735 >(next_ptr) as *const _;
21736 }
21737 self
21738 }
21739}
21740impl<'a> core::ops::Deref for ImageSparseMemoryRequirementsInfo2Builder<'a> {
21741 type Target = ImageSparseMemoryRequirementsInfo2;
21742 #[inline]
21743 fn deref(&self) -> &Self::Target {
21744 &self.inner
21745 }
21746}
21747impl<'a> core::ops::DerefMut for ImageSparseMemoryRequirementsInfo2Builder<'a> {
21748 #[inline]
21749 fn deref_mut(&mut self) -> &mut Self::Target {
21750 &mut self.inner
21751 }
21752}
21753pub struct DeviceImageMemoryRequirementsBuilder<'a> {
21755 inner: DeviceImageMemoryRequirements,
21756 _marker: core::marker::PhantomData<&'a ()>,
21757}
21758impl DeviceImageMemoryRequirements {
21759 #[inline]
21761 pub fn builder<'a>() -> DeviceImageMemoryRequirementsBuilder<'a> {
21762 DeviceImageMemoryRequirementsBuilder {
21763 inner: DeviceImageMemoryRequirements {
21764 s_type: StructureType::from_raw(1000413003i32),
21765 ..Default::default()
21766 },
21767 _marker: core::marker::PhantomData,
21768 }
21769 }
21770}
21771impl<'a> DeviceImageMemoryRequirementsBuilder<'a> {
21772 #[inline]
21773 pub fn create_info(mut self, value: &'a ImageCreateInfo) -> Self {
21774 self.inner.p_create_info = value;
21775 self
21776 }
21777 #[inline]
21778 pub fn plane_aspect(mut self, value: ImageAspectFlagBits) -> Self {
21779 self.inner.plane_aspect = value;
21780 self
21781 }
21782 #[inline]
21784 pub fn push_next<T: ExtendsDeviceImageMemoryRequirements>(
21785 mut self,
21786 next: &'a mut T,
21787 ) -> Self {
21788 unsafe {
21789 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
21790 (*next_ptr).p_next = self.inner.p_next as *mut _;
21791 self.inner.p_next = <*mut BaseOutStructure>::cast::<
21792 core::ffi::c_void,
21793 >(next_ptr) as *const _;
21794 }
21795 self
21796 }
21797}
21798impl<'a> core::ops::Deref for DeviceImageMemoryRequirementsBuilder<'a> {
21799 type Target = DeviceImageMemoryRequirements;
21800 #[inline]
21801 fn deref(&self) -> &Self::Target {
21802 &self.inner
21803 }
21804}
21805impl<'a> core::ops::DerefMut for DeviceImageMemoryRequirementsBuilder<'a> {
21806 #[inline]
21807 fn deref_mut(&mut self) -> &mut Self::Target {
21808 &mut self.inner
21809 }
21810}
21811pub struct MemoryRequirements2Builder<'a> {
21813 inner: MemoryRequirements2,
21814 _marker: core::marker::PhantomData<&'a ()>,
21815}
21816impl MemoryRequirements2 {
21817 #[inline]
21819 pub fn builder<'a>() -> MemoryRequirements2Builder<'a> {
21820 MemoryRequirements2Builder {
21821 inner: MemoryRequirements2 {
21822 s_type: StructureType::from_raw(1000146003i32),
21823 ..Default::default()
21824 },
21825 _marker: core::marker::PhantomData,
21826 }
21827 }
21828}
21829impl<'a> MemoryRequirements2Builder<'a> {
21830 #[inline]
21831 pub fn memory_requirements(mut self, value: MemoryRequirements) -> Self {
21832 self.inner.memory_requirements = value;
21833 self
21834 }
21835}
21836impl<'a> core::ops::Deref for MemoryRequirements2Builder<'a> {
21837 type Target = MemoryRequirements2;
21838 #[inline]
21839 fn deref(&self) -> &Self::Target {
21840 &self.inner
21841 }
21842}
21843impl<'a> core::ops::DerefMut for MemoryRequirements2Builder<'a> {
21844 #[inline]
21845 fn deref_mut(&mut self) -> &mut Self::Target {
21846 &mut self.inner
21847 }
21848}
21849pub struct SparseImageMemoryRequirements2Builder<'a> {
21851 inner: SparseImageMemoryRequirements2,
21852 _marker: core::marker::PhantomData<&'a ()>,
21853}
21854impl SparseImageMemoryRequirements2 {
21855 #[inline]
21857 pub fn builder<'a>() -> SparseImageMemoryRequirements2Builder<'a> {
21858 SparseImageMemoryRequirements2Builder {
21859 inner: SparseImageMemoryRequirements2 {
21860 s_type: StructureType::from_raw(1000146004i32),
21861 ..Default::default()
21862 },
21863 _marker: core::marker::PhantomData,
21864 }
21865 }
21866}
21867impl<'a> SparseImageMemoryRequirements2Builder<'a> {
21868 #[inline]
21869 pub fn memory_requirements(mut self, value: SparseImageMemoryRequirements) -> Self {
21870 self.inner.memory_requirements = value;
21871 self
21872 }
21873}
21874impl<'a> core::ops::Deref for SparseImageMemoryRequirements2Builder<'a> {
21875 type Target = SparseImageMemoryRequirements2;
21876 #[inline]
21877 fn deref(&self) -> &Self::Target {
21878 &self.inner
21879 }
21880}
21881impl<'a> core::ops::DerefMut for SparseImageMemoryRequirements2Builder<'a> {
21882 #[inline]
21883 fn deref_mut(&mut self) -> &mut Self::Target {
21884 &mut self.inner
21885 }
21886}
21887pub struct PhysicalDevicePointClippingPropertiesBuilder<'a> {
21889 inner: PhysicalDevicePointClippingProperties,
21890 _marker: core::marker::PhantomData<&'a ()>,
21891}
21892impl PhysicalDevicePointClippingProperties {
21893 #[inline]
21895 pub fn builder<'a>() -> PhysicalDevicePointClippingPropertiesBuilder<'a> {
21896 PhysicalDevicePointClippingPropertiesBuilder {
21897 inner: PhysicalDevicePointClippingProperties {
21898 s_type: StructureType::from_raw(1000117000i32),
21899 ..Default::default()
21900 },
21901 _marker: core::marker::PhantomData,
21902 }
21903 }
21904}
21905impl<'a> PhysicalDevicePointClippingPropertiesBuilder<'a> {
21906 #[inline]
21907 pub fn point_clipping_behavior(mut self, value: PointClippingBehavior) -> Self {
21908 self.inner.point_clipping_behavior = value;
21909 self
21910 }
21911}
21912impl<'a> core::ops::Deref for PhysicalDevicePointClippingPropertiesBuilder<'a> {
21913 type Target = PhysicalDevicePointClippingProperties;
21914 #[inline]
21915 fn deref(&self) -> &Self::Target {
21916 &self.inner
21917 }
21918}
21919impl<'a> core::ops::DerefMut for PhysicalDevicePointClippingPropertiesBuilder<'a> {
21920 #[inline]
21921 fn deref_mut(&mut self) -> &mut Self::Target {
21922 &mut self.inner
21923 }
21924}
21925pub struct MemoryDedicatedRequirementsBuilder<'a> {
21927 inner: MemoryDedicatedRequirements,
21928 _marker: core::marker::PhantomData<&'a ()>,
21929}
21930impl MemoryDedicatedRequirements {
21931 #[inline]
21933 pub fn builder<'a>() -> MemoryDedicatedRequirementsBuilder<'a> {
21934 MemoryDedicatedRequirementsBuilder {
21935 inner: MemoryDedicatedRequirements {
21936 s_type: StructureType::from_raw(1000127000i32),
21937 ..Default::default()
21938 },
21939 _marker: core::marker::PhantomData,
21940 }
21941 }
21942}
21943impl<'a> MemoryDedicatedRequirementsBuilder<'a> {
21944 #[inline]
21945 pub fn prefers_dedicated_allocation(mut self, value: bool) -> Self {
21946 self.inner.prefers_dedicated_allocation = value as u32;
21947 self
21948 }
21949 #[inline]
21950 pub fn requires_dedicated_allocation(mut self, value: bool) -> Self {
21951 self.inner.requires_dedicated_allocation = value as u32;
21952 self
21953 }
21954}
21955impl<'a> core::ops::Deref for MemoryDedicatedRequirementsBuilder<'a> {
21956 type Target = MemoryDedicatedRequirements;
21957 #[inline]
21958 fn deref(&self) -> &Self::Target {
21959 &self.inner
21960 }
21961}
21962impl<'a> core::ops::DerefMut for MemoryDedicatedRequirementsBuilder<'a> {
21963 #[inline]
21964 fn deref_mut(&mut self) -> &mut Self::Target {
21965 &mut self.inner
21966 }
21967}
21968pub struct MemoryDedicatedAllocateInfoBuilder<'a> {
21970 inner: MemoryDedicatedAllocateInfo,
21971 _marker: core::marker::PhantomData<&'a ()>,
21972}
21973impl MemoryDedicatedAllocateInfo {
21974 #[inline]
21976 pub fn builder<'a>() -> MemoryDedicatedAllocateInfoBuilder<'a> {
21977 MemoryDedicatedAllocateInfoBuilder {
21978 inner: MemoryDedicatedAllocateInfo {
21979 s_type: StructureType::from_raw(1000127001i32),
21980 ..Default::default()
21981 },
21982 _marker: core::marker::PhantomData,
21983 }
21984 }
21985}
21986impl<'a> MemoryDedicatedAllocateInfoBuilder<'a> {
21987 #[inline]
21988 pub fn image(mut self, value: Image) -> Self {
21989 self.inner.image = value;
21990 self
21991 }
21992 #[inline]
21993 pub fn buffer(mut self, value: Buffer) -> Self {
21994 self.inner.buffer = value;
21995 self
21996 }
21997 #[inline]
21999 pub fn push_next<T: ExtendsMemoryDedicatedAllocateInfo>(
22000 mut self,
22001 next: &'a mut T,
22002 ) -> Self {
22003 unsafe {
22004 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22005 (*next_ptr).p_next = self.inner.p_next as *mut _;
22006 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22007 core::ffi::c_void,
22008 >(next_ptr) as *const _;
22009 }
22010 self
22011 }
22012}
22013impl<'a> core::ops::Deref for MemoryDedicatedAllocateInfoBuilder<'a> {
22014 type Target = MemoryDedicatedAllocateInfo;
22015 #[inline]
22016 fn deref(&self) -> &Self::Target {
22017 &self.inner
22018 }
22019}
22020impl<'a> core::ops::DerefMut for MemoryDedicatedAllocateInfoBuilder<'a> {
22021 #[inline]
22022 fn deref_mut(&mut self) -> &mut Self::Target {
22023 &mut self.inner
22024 }
22025}
22026pub struct ImageViewUsageCreateInfoBuilder<'a> {
22028 inner: ImageViewUsageCreateInfo,
22029 _marker: core::marker::PhantomData<&'a ()>,
22030}
22031impl ImageViewUsageCreateInfo {
22032 #[inline]
22034 pub fn builder<'a>() -> ImageViewUsageCreateInfoBuilder<'a> {
22035 ImageViewUsageCreateInfoBuilder {
22036 inner: ImageViewUsageCreateInfo {
22037 s_type: StructureType::from_raw(1000117002i32),
22038 ..Default::default()
22039 },
22040 _marker: core::marker::PhantomData,
22041 }
22042 }
22043}
22044impl<'a> ImageViewUsageCreateInfoBuilder<'a> {
22045 #[inline]
22046 pub fn usage(mut self, value: ImageUsageFlags) -> Self {
22047 self.inner.usage = value;
22048 self
22049 }
22050 #[inline]
22052 pub fn push_next<T: ExtendsImageViewUsageCreateInfo>(
22053 mut self,
22054 next: &'a mut T,
22055 ) -> Self {
22056 unsafe {
22057 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22058 (*next_ptr).p_next = self.inner.p_next as *mut _;
22059 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22060 core::ffi::c_void,
22061 >(next_ptr) as *const _;
22062 }
22063 self
22064 }
22065}
22066impl<'a> core::ops::Deref for ImageViewUsageCreateInfoBuilder<'a> {
22067 type Target = ImageViewUsageCreateInfo;
22068 #[inline]
22069 fn deref(&self) -> &Self::Target {
22070 &self.inner
22071 }
22072}
22073impl<'a> core::ops::DerefMut for ImageViewUsageCreateInfoBuilder<'a> {
22074 #[inline]
22075 fn deref_mut(&mut self) -> &mut Self::Target {
22076 &mut self.inner
22077 }
22078}
22079pub struct ImageViewSlicedCreateInfoEXTBuilder<'a> {
22081 inner: ImageViewSlicedCreateInfoEXT,
22082 _marker: core::marker::PhantomData<&'a ()>,
22083}
22084impl ImageViewSlicedCreateInfoEXT {
22085 #[inline]
22087 pub fn builder<'a>() -> ImageViewSlicedCreateInfoEXTBuilder<'a> {
22088 ImageViewSlicedCreateInfoEXTBuilder {
22089 inner: ImageViewSlicedCreateInfoEXT {
22090 s_type: StructureType::from_raw(1000418001i32),
22091 ..Default::default()
22092 },
22093 _marker: core::marker::PhantomData,
22094 }
22095 }
22096}
22097impl<'a> ImageViewSlicedCreateInfoEXTBuilder<'a> {
22098 #[inline]
22099 pub fn slice_offset(mut self, value: u32) -> Self {
22100 self.inner.slice_offset = value;
22101 self
22102 }
22103 #[inline]
22104 pub fn slice_count(mut self, value: u32) -> Self {
22105 self.inner.slice_count = value;
22106 self
22107 }
22108 #[inline]
22110 pub fn push_next<T: ExtendsImageViewSlicedCreateInfoEXT>(
22111 mut self,
22112 next: &'a mut T,
22113 ) -> Self {
22114 unsafe {
22115 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22116 (*next_ptr).p_next = self.inner.p_next as *mut _;
22117 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22118 core::ffi::c_void,
22119 >(next_ptr) as *const _;
22120 }
22121 self
22122 }
22123}
22124impl<'a> core::ops::Deref for ImageViewSlicedCreateInfoEXTBuilder<'a> {
22125 type Target = ImageViewSlicedCreateInfoEXT;
22126 #[inline]
22127 fn deref(&self) -> &Self::Target {
22128 &self.inner
22129 }
22130}
22131impl<'a> core::ops::DerefMut for ImageViewSlicedCreateInfoEXTBuilder<'a> {
22132 #[inline]
22133 fn deref_mut(&mut self) -> &mut Self::Target {
22134 &mut self.inner
22135 }
22136}
22137pub struct PipelineTessellationDomainOriginStateCreateInfoBuilder<'a> {
22139 inner: PipelineTessellationDomainOriginStateCreateInfo,
22140 _marker: core::marker::PhantomData<&'a ()>,
22141}
22142impl PipelineTessellationDomainOriginStateCreateInfo {
22143 #[inline]
22145 pub fn builder<'a>() -> PipelineTessellationDomainOriginStateCreateInfoBuilder<'a> {
22146 PipelineTessellationDomainOriginStateCreateInfoBuilder {
22147 inner: PipelineTessellationDomainOriginStateCreateInfo {
22148 s_type: StructureType::from_raw(1000117003i32),
22149 ..Default::default()
22150 },
22151 _marker: core::marker::PhantomData,
22152 }
22153 }
22154}
22155impl<'a> PipelineTessellationDomainOriginStateCreateInfoBuilder<'a> {
22156 #[inline]
22157 pub fn domain_origin(mut self, value: TessellationDomainOrigin) -> Self {
22158 self.inner.domain_origin = value;
22159 self
22160 }
22161 #[inline]
22163 pub fn push_next<T: ExtendsPipelineTessellationDomainOriginStateCreateInfo>(
22164 mut self,
22165 next: &'a mut T,
22166 ) -> Self {
22167 unsafe {
22168 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22169 (*next_ptr).p_next = self.inner.p_next as *mut _;
22170 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22171 core::ffi::c_void,
22172 >(next_ptr) as *const _;
22173 }
22174 self
22175 }
22176}
22177impl<'a> core::ops::Deref
22178for PipelineTessellationDomainOriginStateCreateInfoBuilder<'a> {
22179 type Target = PipelineTessellationDomainOriginStateCreateInfo;
22180 #[inline]
22181 fn deref(&self) -> &Self::Target {
22182 &self.inner
22183 }
22184}
22185impl<'a> core::ops::DerefMut
22186for PipelineTessellationDomainOriginStateCreateInfoBuilder<'a> {
22187 #[inline]
22188 fn deref_mut(&mut self) -> &mut Self::Target {
22189 &mut self.inner
22190 }
22191}
22192pub struct SamplerYcbcrConversionInfoBuilder<'a> {
22194 inner: SamplerYcbcrConversionInfo,
22195 _marker: core::marker::PhantomData<&'a ()>,
22196}
22197impl SamplerYcbcrConversionInfo {
22198 #[inline]
22200 pub fn builder<'a>() -> SamplerYcbcrConversionInfoBuilder<'a> {
22201 SamplerYcbcrConversionInfoBuilder {
22202 inner: SamplerYcbcrConversionInfo {
22203 s_type: StructureType::from_raw(1000156001i32),
22204 ..Default::default()
22205 },
22206 _marker: core::marker::PhantomData,
22207 }
22208 }
22209}
22210impl<'a> SamplerYcbcrConversionInfoBuilder<'a> {
22211 #[inline]
22212 pub fn conversion(mut self, value: SamplerYcbcrConversion) -> Self {
22213 self.inner.conversion = value;
22214 self
22215 }
22216 #[inline]
22218 pub fn push_next<T: ExtendsSamplerYcbcrConversionInfo>(
22219 mut self,
22220 next: &'a mut T,
22221 ) -> Self {
22222 unsafe {
22223 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22224 (*next_ptr).p_next = self.inner.p_next as *mut _;
22225 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22226 core::ffi::c_void,
22227 >(next_ptr) as *const _;
22228 }
22229 self
22230 }
22231}
22232impl<'a> core::ops::Deref for SamplerYcbcrConversionInfoBuilder<'a> {
22233 type Target = SamplerYcbcrConversionInfo;
22234 #[inline]
22235 fn deref(&self) -> &Self::Target {
22236 &self.inner
22237 }
22238}
22239impl<'a> core::ops::DerefMut for SamplerYcbcrConversionInfoBuilder<'a> {
22240 #[inline]
22241 fn deref_mut(&mut self) -> &mut Self::Target {
22242 &mut self.inner
22243 }
22244}
22245pub struct SamplerYcbcrConversionCreateInfoBuilder<'a> {
22247 inner: SamplerYcbcrConversionCreateInfo,
22248 _marker: core::marker::PhantomData<&'a ()>,
22249}
22250impl SamplerYcbcrConversionCreateInfo {
22251 #[inline]
22253 pub fn builder<'a>() -> SamplerYcbcrConversionCreateInfoBuilder<'a> {
22254 SamplerYcbcrConversionCreateInfoBuilder {
22255 inner: SamplerYcbcrConversionCreateInfo {
22256 s_type: StructureType::from_raw(1000156000i32),
22257 ..Default::default()
22258 },
22259 _marker: core::marker::PhantomData,
22260 }
22261 }
22262}
22263impl<'a> SamplerYcbcrConversionCreateInfoBuilder<'a> {
22264 #[inline]
22265 pub fn format(mut self, value: Format) -> Self {
22266 self.inner.format = value;
22267 self
22268 }
22269 #[inline]
22270 pub fn ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
22271 self.inner.ycbcr_model = value;
22272 self
22273 }
22274 #[inline]
22275 pub fn ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
22276 self.inner.ycbcr_range = value;
22277 self
22278 }
22279 #[inline]
22280 pub fn components(mut self, value: ComponentMapping) -> Self {
22281 self.inner.components = value;
22282 self
22283 }
22284 #[inline]
22285 pub fn x_chroma_offset(mut self, value: ChromaLocation) -> Self {
22286 self.inner.x_chroma_offset = value;
22287 self
22288 }
22289 #[inline]
22290 pub fn y_chroma_offset(mut self, value: ChromaLocation) -> Self {
22291 self.inner.y_chroma_offset = value;
22292 self
22293 }
22294 #[inline]
22295 pub fn chroma_filter(mut self, value: Filter) -> Self {
22296 self.inner.chroma_filter = value;
22297 self
22298 }
22299 #[inline]
22300 pub fn force_explicit_reconstruction(mut self, value: bool) -> Self {
22301 self.inner.force_explicit_reconstruction = value as u32;
22302 self
22303 }
22304 #[inline]
22306 pub fn push_next<T: ExtendsSamplerYcbcrConversionCreateInfo>(
22307 mut self,
22308 next: &'a mut T,
22309 ) -> Self {
22310 unsafe {
22311 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22312 (*next_ptr).p_next = self.inner.p_next as *mut _;
22313 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22314 core::ffi::c_void,
22315 >(next_ptr) as *const _;
22316 }
22317 self
22318 }
22319}
22320impl<'a> core::ops::Deref for SamplerYcbcrConversionCreateInfoBuilder<'a> {
22321 type Target = SamplerYcbcrConversionCreateInfo;
22322 #[inline]
22323 fn deref(&self) -> &Self::Target {
22324 &self.inner
22325 }
22326}
22327impl<'a> core::ops::DerefMut for SamplerYcbcrConversionCreateInfoBuilder<'a> {
22328 #[inline]
22329 fn deref_mut(&mut self) -> &mut Self::Target {
22330 &mut self.inner
22331 }
22332}
22333pub struct BindImagePlaneMemoryInfoBuilder<'a> {
22335 inner: BindImagePlaneMemoryInfo,
22336 _marker: core::marker::PhantomData<&'a ()>,
22337}
22338impl BindImagePlaneMemoryInfo {
22339 #[inline]
22341 pub fn builder<'a>() -> BindImagePlaneMemoryInfoBuilder<'a> {
22342 BindImagePlaneMemoryInfoBuilder {
22343 inner: BindImagePlaneMemoryInfo {
22344 s_type: StructureType::from_raw(1000156002i32),
22345 ..Default::default()
22346 },
22347 _marker: core::marker::PhantomData,
22348 }
22349 }
22350}
22351impl<'a> BindImagePlaneMemoryInfoBuilder<'a> {
22352 #[inline]
22353 pub fn plane_aspect(mut self, value: ImageAspectFlagBits) -> Self {
22354 self.inner.plane_aspect = value;
22355 self
22356 }
22357 #[inline]
22359 pub fn push_next<T: ExtendsBindImagePlaneMemoryInfo>(
22360 mut self,
22361 next: &'a mut T,
22362 ) -> Self {
22363 unsafe {
22364 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22365 (*next_ptr).p_next = self.inner.p_next as *mut _;
22366 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22367 core::ffi::c_void,
22368 >(next_ptr) as *const _;
22369 }
22370 self
22371 }
22372}
22373impl<'a> core::ops::Deref for BindImagePlaneMemoryInfoBuilder<'a> {
22374 type Target = BindImagePlaneMemoryInfo;
22375 #[inline]
22376 fn deref(&self) -> &Self::Target {
22377 &self.inner
22378 }
22379}
22380impl<'a> core::ops::DerefMut for BindImagePlaneMemoryInfoBuilder<'a> {
22381 #[inline]
22382 fn deref_mut(&mut self) -> &mut Self::Target {
22383 &mut self.inner
22384 }
22385}
22386pub struct ImagePlaneMemoryRequirementsInfoBuilder<'a> {
22388 inner: ImagePlaneMemoryRequirementsInfo,
22389 _marker: core::marker::PhantomData<&'a ()>,
22390}
22391impl ImagePlaneMemoryRequirementsInfo {
22392 #[inline]
22394 pub fn builder<'a>() -> ImagePlaneMemoryRequirementsInfoBuilder<'a> {
22395 ImagePlaneMemoryRequirementsInfoBuilder {
22396 inner: ImagePlaneMemoryRequirementsInfo {
22397 s_type: StructureType::from_raw(1000156003i32),
22398 ..Default::default()
22399 },
22400 _marker: core::marker::PhantomData,
22401 }
22402 }
22403}
22404impl<'a> ImagePlaneMemoryRequirementsInfoBuilder<'a> {
22405 #[inline]
22406 pub fn plane_aspect(mut self, value: ImageAspectFlagBits) -> Self {
22407 self.inner.plane_aspect = value;
22408 self
22409 }
22410 #[inline]
22412 pub fn push_next<T: ExtendsImagePlaneMemoryRequirementsInfo>(
22413 mut self,
22414 next: &'a mut T,
22415 ) -> Self {
22416 unsafe {
22417 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22418 (*next_ptr).p_next = self.inner.p_next as *mut _;
22419 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22420 core::ffi::c_void,
22421 >(next_ptr) as *const _;
22422 }
22423 self
22424 }
22425}
22426impl<'a> core::ops::Deref for ImagePlaneMemoryRequirementsInfoBuilder<'a> {
22427 type Target = ImagePlaneMemoryRequirementsInfo;
22428 #[inline]
22429 fn deref(&self) -> &Self::Target {
22430 &self.inner
22431 }
22432}
22433impl<'a> core::ops::DerefMut for ImagePlaneMemoryRequirementsInfoBuilder<'a> {
22434 #[inline]
22435 fn deref_mut(&mut self) -> &mut Self::Target {
22436 &mut self.inner
22437 }
22438}
22439pub struct PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder<'a> {
22441 inner: PhysicalDeviceSamplerYcbcrConversionFeatures,
22442 _marker: core::marker::PhantomData<&'a ()>,
22443}
22444impl PhysicalDeviceSamplerYcbcrConversionFeatures {
22445 #[inline]
22447 pub fn builder<'a>() -> PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder<'a> {
22448 PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder {
22449 inner: PhysicalDeviceSamplerYcbcrConversionFeatures {
22450 s_type: StructureType::from_raw(1000156004i32),
22451 ..Default::default()
22452 },
22453 _marker: core::marker::PhantomData,
22454 }
22455 }
22456}
22457impl<'a> PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder<'a> {
22458 #[inline]
22459 pub fn sampler_ycbcr_conversion(mut self, value: bool) -> Self {
22460 self.inner.sampler_ycbcr_conversion = value as u32;
22461 self
22462 }
22463 #[inline]
22465 pub fn push_next<T: ExtendsPhysicalDeviceSamplerYcbcrConversionFeatures>(
22466 mut self,
22467 next: &'a mut T,
22468 ) -> Self {
22469 unsafe {
22470 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22471 (*next_ptr).p_next = self.inner.p_next as *mut _;
22472 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22473 core::ffi::c_void,
22474 >(next_ptr);
22475 }
22476 self
22477 }
22478}
22479impl<'a> core::ops::Deref for PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder<'a> {
22480 type Target = PhysicalDeviceSamplerYcbcrConversionFeatures;
22481 #[inline]
22482 fn deref(&self) -> &Self::Target {
22483 &self.inner
22484 }
22485}
22486impl<'a> core::ops::DerefMut
22487for PhysicalDeviceSamplerYcbcrConversionFeaturesBuilder<'a> {
22488 #[inline]
22489 fn deref_mut(&mut self) -> &mut Self::Target {
22490 &mut self.inner
22491 }
22492}
22493pub struct SamplerYcbcrConversionImageFormatPropertiesBuilder<'a> {
22495 inner: SamplerYcbcrConversionImageFormatProperties,
22496 _marker: core::marker::PhantomData<&'a ()>,
22497}
22498impl SamplerYcbcrConversionImageFormatProperties {
22499 #[inline]
22501 pub fn builder<'a>() -> SamplerYcbcrConversionImageFormatPropertiesBuilder<'a> {
22502 SamplerYcbcrConversionImageFormatPropertiesBuilder {
22503 inner: SamplerYcbcrConversionImageFormatProperties {
22504 s_type: StructureType::from_raw(1000156005i32),
22505 ..Default::default()
22506 },
22507 _marker: core::marker::PhantomData,
22508 }
22509 }
22510}
22511impl<'a> SamplerYcbcrConversionImageFormatPropertiesBuilder<'a> {
22512 #[inline]
22513 pub fn combined_image_sampler_descriptor_count(mut self, value: u32) -> Self {
22514 self.inner.combined_image_sampler_descriptor_count = value;
22515 self
22516 }
22517}
22518impl<'a> core::ops::Deref for SamplerYcbcrConversionImageFormatPropertiesBuilder<'a> {
22519 type Target = SamplerYcbcrConversionImageFormatProperties;
22520 #[inline]
22521 fn deref(&self) -> &Self::Target {
22522 &self.inner
22523 }
22524}
22525impl<'a> core::ops::DerefMut for SamplerYcbcrConversionImageFormatPropertiesBuilder<'a> {
22526 #[inline]
22527 fn deref_mut(&mut self) -> &mut Self::Target {
22528 &mut self.inner
22529 }
22530}
22531pub struct TextureLODGatherFormatPropertiesAMDBuilder<'a> {
22533 inner: TextureLODGatherFormatPropertiesAMD,
22534 _marker: core::marker::PhantomData<&'a ()>,
22535}
22536impl TextureLODGatherFormatPropertiesAMD {
22537 #[inline]
22539 pub fn builder<'a>() -> TextureLODGatherFormatPropertiesAMDBuilder<'a> {
22540 TextureLODGatherFormatPropertiesAMDBuilder {
22541 inner: TextureLODGatherFormatPropertiesAMD {
22542 s_type: StructureType::from_raw(1000041000i32),
22543 ..Default::default()
22544 },
22545 _marker: core::marker::PhantomData,
22546 }
22547 }
22548}
22549impl<'a> TextureLODGatherFormatPropertiesAMDBuilder<'a> {
22550 #[inline]
22551 pub fn supports_texture_gather_lod_bias_amd(mut self, value: bool) -> Self {
22552 self.inner.supports_texture_gather_lod_bias_amd = value as u32;
22553 self
22554 }
22555}
22556impl<'a> core::ops::Deref for TextureLODGatherFormatPropertiesAMDBuilder<'a> {
22557 type Target = TextureLODGatherFormatPropertiesAMD;
22558 #[inline]
22559 fn deref(&self) -> &Self::Target {
22560 &self.inner
22561 }
22562}
22563impl<'a> core::ops::DerefMut for TextureLODGatherFormatPropertiesAMDBuilder<'a> {
22564 #[inline]
22565 fn deref_mut(&mut self) -> &mut Self::Target {
22566 &mut self.inner
22567 }
22568}
22569pub struct ConditionalRenderingBeginInfoEXTBuilder<'a> {
22571 inner: ConditionalRenderingBeginInfoEXT,
22572 _marker: core::marker::PhantomData<&'a ()>,
22573}
22574impl ConditionalRenderingBeginInfoEXT {
22575 #[inline]
22577 pub fn builder<'a>() -> ConditionalRenderingBeginInfoEXTBuilder<'a> {
22578 ConditionalRenderingBeginInfoEXTBuilder {
22579 inner: ConditionalRenderingBeginInfoEXT {
22580 s_type: StructureType::from_raw(1000081002i32),
22581 ..Default::default()
22582 },
22583 _marker: core::marker::PhantomData,
22584 }
22585 }
22586}
22587impl<'a> ConditionalRenderingBeginInfoEXTBuilder<'a> {
22588 #[inline]
22589 pub fn buffer(mut self, value: Buffer) -> Self {
22590 self.inner.buffer = value;
22591 self
22592 }
22593 #[inline]
22594 pub fn offset(mut self, value: u64) -> Self {
22595 self.inner.offset = value;
22596 self
22597 }
22598 #[inline]
22599 pub fn flags(mut self, value: ConditionalRenderingFlagsEXT) -> Self {
22600 self.inner.flags = value;
22601 self
22602 }
22603 #[inline]
22605 pub fn push_next<T: ExtendsConditionalRenderingBeginInfoEXT>(
22606 mut self,
22607 next: &'a mut T,
22608 ) -> Self {
22609 unsafe {
22610 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22611 (*next_ptr).p_next = self.inner.p_next as *mut _;
22612 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22613 core::ffi::c_void,
22614 >(next_ptr) as *const _;
22615 }
22616 self
22617 }
22618}
22619impl<'a> core::ops::Deref for ConditionalRenderingBeginInfoEXTBuilder<'a> {
22620 type Target = ConditionalRenderingBeginInfoEXT;
22621 #[inline]
22622 fn deref(&self) -> &Self::Target {
22623 &self.inner
22624 }
22625}
22626impl<'a> core::ops::DerefMut for ConditionalRenderingBeginInfoEXTBuilder<'a> {
22627 #[inline]
22628 fn deref_mut(&mut self) -> &mut Self::Target {
22629 &mut self.inner
22630 }
22631}
22632pub struct ProtectedSubmitInfoBuilder<'a> {
22634 inner: ProtectedSubmitInfo,
22635 _marker: core::marker::PhantomData<&'a ()>,
22636}
22637impl ProtectedSubmitInfo {
22638 #[inline]
22640 pub fn builder<'a>() -> ProtectedSubmitInfoBuilder<'a> {
22641 ProtectedSubmitInfoBuilder {
22642 inner: ProtectedSubmitInfo {
22643 s_type: StructureType::from_raw(1000145000i32),
22644 ..Default::default()
22645 },
22646 _marker: core::marker::PhantomData,
22647 }
22648 }
22649}
22650impl<'a> ProtectedSubmitInfoBuilder<'a> {
22651 #[inline]
22652 pub fn protected_submit(mut self, value: bool) -> Self {
22653 self.inner.protected_submit = value as u32;
22654 self
22655 }
22656 #[inline]
22658 pub fn push_next<T: ExtendsProtectedSubmitInfo>(mut self, next: &'a mut T) -> Self {
22659 unsafe {
22660 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22661 (*next_ptr).p_next = self.inner.p_next as *mut _;
22662 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22663 core::ffi::c_void,
22664 >(next_ptr) as *const _;
22665 }
22666 self
22667 }
22668}
22669impl<'a> core::ops::Deref for ProtectedSubmitInfoBuilder<'a> {
22670 type Target = ProtectedSubmitInfo;
22671 #[inline]
22672 fn deref(&self) -> &Self::Target {
22673 &self.inner
22674 }
22675}
22676impl<'a> core::ops::DerefMut for ProtectedSubmitInfoBuilder<'a> {
22677 #[inline]
22678 fn deref_mut(&mut self) -> &mut Self::Target {
22679 &mut self.inner
22680 }
22681}
22682pub struct PhysicalDeviceProtectedMemoryFeaturesBuilder<'a> {
22684 inner: PhysicalDeviceProtectedMemoryFeatures,
22685 _marker: core::marker::PhantomData<&'a ()>,
22686}
22687impl PhysicalDeviceProtectedMemoryFeatures {
22688 #[inline]
22690 pub fn builder<'a>() -> PhysicalDeviceProtectedMemoryFeaturesBuilder<'a> {
22691 PhysicalDeviceProtectedMemoryFeaturesBuilder {
22692 inner: PhysicalDeviceProtectedMemoryFeatures {
22693 s_type: StructureType::from_raw(1000145001i32),
22694 ..Default::default()
22695 },
22696 _marker: core::marker::PhantomData,
22697 }
22698 }
22699}
22700impl<'a> PhysicalDeviceProtectedMemoryFeaturesBuilder<'a> {
22701 #[inline]
22702 pub fn protected_memory(mut self, value: bool) -> Self {
22703 self.inner.protected_memory = value as u32;
22704 self
22705 }
22706 #[inline]
22708 pub fn push_next<T: ExtendsPhysicalDeviceProtectedMemoryFeatures>(
22709 mut self,
22710 next: &'a mut T,
22711 ) -> Self {
22712 unsafe {
22713 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22714 (*next_ptr).p_next = self.inner.p_next as *mut _;
22715 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22716 core::ffi::c_void,
22717 >(next_ptr);
22718 }
22719 self
22720 }
22721}
22722impl<'a> core::ops::Deref for PhysicalDeviceProtectedMemoryFeaturesBuilder<'a> {
22723 type Target = PhysicalDeviceProtectedMemoryFeatures;
22724 #[inline]
22725 fn deref(&self) -> &Self::Target {
22726 &self.inner
22727 }
22728}
22729impl<'a> core::ops::DerefMut for PhysicalDeviceProtectedMemoryFeaturesBuilder<'a> {
22730 #[inline]
22731 fn deref_mut(&mut self) -> &mut Self::Target {
22732 &mut self.inner
22733 }
22734}
22735pub struct PhysicalDeviceProtectedMemoryPropertiesBuilder<'a> {
22737 inner: PhysicalDeviceProtectedMemoryProperties,
22738 _marker: core::marker::PhantomData<&'a ()>,
22739}
22740impl PhysicalDeviceProtectedMemoryProperties {
22741 #[inline]
22743 pub fn builder<'a>() -> PhysicalDeviceProtectedMemoryPropertiesBuilder<'a> {
22744 PhysicalDeviceProtectedMemoryPropertiesBuilder {
22745 inner: PhysicalDeviceProtectedMemoryProperties {
22746 s_type: StructureType::from_raw(1000145002i32),
22747 ..Default::default()
22748 },
22749 _marker: core::marker::PhantomData,
22750 }
22751 }
22752}
22753impl<'a> PhysicalDeviceProtectedMemoryPropertiesBuilder<'a> {
22754 #[inline]
22755 pub fn protected_no_fault(mut self, value: bool) -> Self {
22756 self.inner.protected_no_fault = value as u32;
22757 self
22758 }
22759}
22760impl<'a> core::ops::Deref for PhysicalDeviceProtectedMemoryPropertiesBuilder<'a> {
22761 type Target = PhysicalDeviceProtectedMemoryProperties;
22762 #[inline]
22763 fn deref(&self) -> &Self::Target {
22764 &self.inner
22765 }
22766}
22767impl<'a> core::ops::DerefMut for PhysicalDeviceProtectedMemoryPropertiesBuilder<'a> {
22768 #[inline]
22769 fn deref_mut(&mut self) -> &mut Self::Target {
22770 &mut self.inner
22771 }
22772}
22773pub struct DeviceQueueInfo2Builder<'a> {
22775 inner: DeviceQueueInfo2,
22776 _marker: core::marker::PhantomData<&'a ()>,
22777}
22778impl DeviceQueueInfo2 {
22779 #[inline]
22781 pub fn builder<'a>() -> DeviceQueueInfo2Builder<'a> {
22782 DeviceQueueInfo2Builder {
22783 inner: DeviceQueueInfo2 {
22784 s_type: StructureType::from_raw(1000145003i32),
22785 ..Default::default()
22786 },
22787 _marker: core::marker::PhantomData,
22788 }
22789 }
22790}
22791impl<'a> DeviceQueueInfo2Builder<'a> {
22792 #[inline]
22793 pub fn flags(mut self, value: DeviceQueueCreateFlags) -> Self {
22794 self.inner.flags = value;
22795 self
22796 }
22797 #[inline]
22798 pub fn queue_family_index(mut self, value: u32) -> Self {
22799 self.inner.queue_family_index = value;
22800 self
22801 }
22802 #[inline]
22803 pub fn queue_index(mut self, value: u32) -> Self {
22804 self.inner.queue_index = value;
22805 self
22806 }
22807 #[inline]
22809 pub fn push_next<T: ExtendsDeviceQueueInfo2>(mut self, next: &'a mut T) -> Self {
22810 unsafe {
22811 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22812 (*next_ptr).p_next = self.inner.p_next as *mut _;
22813 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22814 core::ffi::c_void,
22815 >(next_ptr) as *const _;
22816 }
22817 self
22818 }
22819}
22820impl<'a> core::ops::Deref for DeviceQueueInfo2Builder<'a> {
22821 type Target = DeviceQueueInfo2;
22822 #[inline]
22823 fn deref(&self) -> &Self::Target {
22824 &self.inner
22825 }
22826}
22827impl<'a> core::ops::DerefMut for DeviceQueueInfo2Builder<'a> {
22828 #[inline]
22829 fn deref_mut(&mut self) -> &mut Self::Target {
22830 &mut self.inner
22831 }
22832}
22833pub struct PipelineCoverageToColorStateCreateInfoNVBuilder<'a> {
22835 inner: PipelineCoverageToColorStateCreateInfoNV,
22836 _marker: core::marker::PhantomData<&'a ()>,
22837}
22838impl PipelineCoverageToColorStateCreateInfoNV {
22839 #[inline]
22841 pub fn builder<'a>() -> PipelineCoverageToColorStateCreateInfoNVBuilder<'a> {
22842 PipelineCoverageToColorStateCreateInfoNVBuilder {
22843 inner: PipelineCoverageToColorStateCreateInfoNV {
22844 s_type: StructureType::from_raw(1000149000i32),
22845 ..Default::default()
22846 },
22847 _marker: core::marker::PhantomData,
22848 }
22849 }
22850}
22851impl<'a> PipelineCoverageToColorStateCreateInfoNVBuilder<'a> {
22852 #[inline]
22853 pub fn flags(mut self, value: PipelineCoverageToColorStateCreateFlagsNV) -> Self {
22854 self.inner.flags = value;
22855 self
22856 }
22857 #[inline]
22858 pub fn coverage_to_color_enable(mut self, value: bool) -> Self {
22859 self.inner.coverage_to_color_enable = value as u32;
22860 self
22861 }
22862 #[inline]
22863 pub fn coverage_to_color_location(mut self, value: u32) -> Self {
22864 self.inner.coverage_to_color_location = value;
22865 self
22866 }
22867 #[inline]
22869 pub fn push_next<T: ExtendsPipelineCoverageToColorStateCreateInfoNV>(
22870 mut self,
22871 next: &'a mut T,
22872 ) -> Self {
22873 unsafe {
22874 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
22875 (*next_ptr).p_next = self.inner.p_next as *mut _;
22876 self.inner.p_next = <*mut BaseOutStructure>::cast::<
22877 core::ffi::c_void,
22878 >(next_ptr) as *const _;
22879 }
22880 self
22881 }
22882}
22883impl<'a> core::ops::Deref for PipelineCoverageToColorStateCreateInfoNVBuilder<'a> {
22884 type Target = PipelineCoverageToColorStateCreateInfoNV;
22885 #[inline]
22886 fn deref(&self) -> &Self::Target {
22887 &self.inner
22888 }
22889}
22890impl<'a> core::ops::DerefMut for PipelineCoverageToColorStateCreateInfoNVBuilder<'a> {
22891 #[inline]
22892 fn deref_mut(&mut self) -> &mut Self::Target {
22893 &mut self.inner
22894 }
22895}
22896pub struct PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder<'a> {
22898 inner: PhysicalDeviceSamplerFilterMinmaxProperties,
22899 _marker: core::marker::PhantomData<&'a ()>,
22900}
22901impl PhysicalDeviceSamplerFilterMinmaxProperties {
22902 #[inline]
22904 pub fn builder<'a>() -> PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder<'a> {
22905 PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder {
22906 inner: PhysicalDeviceSamplerFilterMinmaxProperties {
22907 s_type: StructureType::from_raw(1000130000i32),
22908 ..Default::default()
22909 },
22910 _marker: core::marker::PhantomData,
22911 }
22912 }
22913}
22914impl<'a> PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder<'a> {
22915 #[inline]
22916 pub fn filter_minmax_single_component_formats(mut self, value: bool) -> Self {
22917 self.inner.filter_minmax_single_component_formats = value as u32;
22918 self
22919 }
22920 #[inline]
22921 pub fn filter_minmax_image_component_mapping(mut self, value: bool) -> Self {
22922 self.inner.filter_minmax_image_component_mapping = value as u32;
22923 self
22924 }
22925}
22926impl<'a> core::ops::Deref for PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder<'a> {
22927 type Target = PhysicalDeviceSamplerFilterMinmaxProperties;
22928 #[inline]
22929 fn deref(&self) -> &Self::Target {
22930 &self.inner
22931 }
22932}
22933impl<'a> core::ops::DerefMut for PhysicalDeviceSamplerFilterMinmaxPropertiesBuilder<'a> {
22934 #[inline]
22935 fn deref_mut(&mut self) -> &mut Self::Target {
22936 &mut self.inner
22937 }
22938}
22939pub struct SampleLocationEXTBuilder {
22941 inner: SampleLocationEXT,
22942}
22943impl SampleLocationEXT {
22944 #[inline]
22946 pub fn builder() -> SampleLocationEXTBuilder {
22947 SampleLocationEXTBuilder {
22948 inner: SampleLocationEXT {
22949 ..Default::default()
22950 },
22951 }
22952 }
22953}
22954impl SampleLocationEXTBuilder {
22955 #[inline]
22956 pub fn x(mut self, value: f32) -> Self {
22957 self.inner.x = value;
22958 self
22959 }
22960 #[inline]
22961 pub fn y(mut self, value: f32) -> Self {
22962 self.inner.y = value;
22963 self
22964 }
22965}
22966impl core::ops::Deref for SampleLocationEXTBuilder {
22967 type Target = SampleLocationEXT;
22968 #[inline]
22969 fn deref(&self) -> &Self::Target {
22970 &self.inner
22971 }
22972}
22973impl core::ops::DerefMut for SampleLocationEXTBuilder {
22974 #[inline]
22975 fn deref_mut(&mut self) -> &mut Self::Target {
22976 &mut self.inner
22977 }
22978}
22979pub struct SampleLocationsInfoEXTBuilder<'a> {
22981 inner: SampleLocationsInfoEXT,
22982 _marker: core::marker::PhantomData<&'a ()>,
22983}
22984impl SampleLocationsInfoEXT {
22985 #[inline]
22987 pub fn builder<'a>() -> SampleLocationsInfoEXTBuilder<'a> {
22988 SampleLocationsInfoEXTBuilder {
22989 inner: SampleLocationsInfoEXT {
22990 s_type: StructureType::from_raw(1000143000i32),
22991 ..Default::default()
22992 },
22993 _marker: core::marker::PhantomData,
22994 }
22995 }
22996}
22997impl<'a> SampleLocationsInfoEXTBuilder<'a> {
22998 #[inline]
22999 pub fn sample_locations_per_pixel(mut self, value: SampleCountFlagBits) -> Self {
23000 self.inner.sample_locations_per_pixel = value;
23001 self
23002 }
23003 #[inline]
23004 pub fn sample_location_grid_size(mut self, value: Extent2D) -> Self {
23005 self.inner.sample_location_grid_size = value;
23006 self
23007 }
23008 #[inline]
23009 pub fn sample_locations(mut self, slice: &'a [SampleLocationEXT]) -> Self {
23010 self.inner.sample_locations_count = slice.len() as u32;
23011 self.inner.p_sample_locations = slice.as_ptr();
23012 self
23013 }
23014 #[inline]
23016 pub fn push_next<T: ExtendsSampleLocationsInfoEXT>(
23017 mut self,
23018 next: &'a mut T,
23019 ) -> Self {
23020 unsafe {
23021 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23022 (*next_ptr).p_next = self.inner.p_next as *mut _;
23023 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23024 core::ffi::c_void,
23025 >(next_ptr) as *const _;
23026 }
23027 self
23028 }
23029}
23030impl<'a> core::ops::Deref for SampleLocationsInfoEXTBuilder<'a> {
23031 type Target = SampleLocationsInfoEXT;
23032 #[inline]
23033 fn deref(&self) -> &Self::Target {
23034 &self.inner
23035 }
23036}
23037impl<'a> core::ops::DerefMut for SampleLocationsInfoEXTBuilder<'a> {
23038 #[inline]
23039 fn deref_mut(&mut self) -> &mut Self::Target {
23040 &mut self.inner
23041 }
23042}
23043pub struct AttachmentSampleLocationsEXTBuilder {
23045 inner: AttachmentSampleLocationsEXT,
23046}
23047impl AttachmentSampleLocationsEXT {
23048 #[inline]
23050 pub fn builder() -> AttachmentSampleLocationsEXTBuilder {
23051 AttachmentSampleLocationsEXTBuilder {
23052 inner: AttachmentSampleLocationsEXT {
23053 ..Default::default()
23054 },
23055 }
23056 }
23057}
23058impl AttachmentSampleLocationsEXTBuilder {
23059 #[inline]
23060 pub fn attachment_index(mut self, value: u32) -> Self {
23061 self.inner.attachment_index = value;
23062 self
23063 }
23064 #[inline]
23065 pub fn sample_locations_info(mut self, value: SampleLocationsInfoEXT) -> Self {
23066 self.inner.sample_locations_info = value;
23067 self
23068 }
23069}
23070impl core::ops::Deref for AttachmentSampleLocationsEXTBuilder {
23071 type Target = AttachmentSampleLocationsEXT;
23072 #[inline]
23073 fn deref(&self) -> &Self::Target {
23074 &self.inner
23075 }
23076}
23077impl core::ops::DerefMut for AttachmentSampleLocationsEXTBuilder {
23078 #[inline]
23079 fn deref_mut(&mut self) -> &mut Self::Target {
23080 &mut self.inner
23081 }
23082}
23083pub struct SubpassSampleLocationsEXTBuilder {
23085 inner: SubpassSampleLocationsEXT,
23086}
23087impl SubpassSampleLocationsEXT {
23088 #[inline]
23090 pub fn builder() -> SubpassSampleLocationsEXTBuilder {
23091 SubpassSampleLocationsEXTBuilder {
23092 inner: SubpassSampleLocationsEXT {
23093 ..Default::default()
23094 },
23095 }
23096 }
23097}
23098impl SubpassSampleLocationsEXTBuilder {
23099 #[inline]
23100 pub fn subpass_index(mut self, value: u32) -> Self {
23101 self.inner.subpass_index = value;
23102 self
23103 }
23104 #[inline]
23105 pub fn sample_locations_info(mut self, value: SampleLocationsInfoEXT) -> Self {
23106 self.inner.sample_locations_info = value;
23107 self
23108 }
23109}
23110impl core::ops::Deref for SubpassSampleLocationsEXTBuilder {
23111 type Target = SubpassSampleLocationsEXT;
23112 #[inline]
23113 fn deref(&self) -> &Self::Target {
23114 &self.inner
23115 }
23116}
23117impl core::ops::DerefMut for SubpassSampleLocationsEXTBuilder {
23118 #[inline]
23119 fn deref_mut(&mut self) -> &mut Self::Target {
23120 &mut self.inner
23121 }
23122}
23123pub struct RenderPassSampleLocationsBeginInfoEXTBuilder<'a> {
23125 inner: RenderPassSampleLocationsBeginInfoEXT,
23126 _marker: core::marker::PhantomData<&'a ()>,
23127}
23128impl RenderPassSampleLocationsBeginInfoEXT {
23129 #[inline]
23131 pub fn builder<'a>() -> RenderPassSampleLocationsBeginInfoEXTBuilder<'a> {
23132 RenderPassSampleLocationsBeginInfoEXTBuilder {
23133 inner: RenderPassSampleLocationsBeginInfoEXT {
23134 s_type: StructureType::from_raw(1000143001i32),
23135 ..Default::default()
23136 },
23137 _marker: core::marker::PhantomData,
23138 }
23139 }
23140}
23141impl<'a> RenderPassSampleLocationsBeginInfoEXTBuilder<'a> {
23142 #[inline]
23143 pub fn attachment_initial_sample_locations(
23144 mut self,
23145 slice: &'a [AttachmentSampleLocationsEXT],
23146 ) -> Self {
23147 self.inner.attachment_initial_sample_locations_count = slice.len() as u32;
23148 self.inner.p_attachment_initial_sample_locations = slice.as_ptr();
23149 self
23150 }
23151 #[inline]
23152 pub fn post_subpass_sample_locations(
23153 mut self,
23154 slice: &'a [SubpassSampleLocationsEXT],
23155 ) -> Self {
23156 self.inner.post_subpass_sample_locations_count = slice.len() as u32;
23157 self.inner.p_post_subpass_sample_locations = slice.as_ptr();
23158 self
23159 }
23160 #[inline]
23162 pub fn push_next<T: ExtendsRenderPassSampleLocationsBeginInfoEXT>(
23163 mut self,
23164 next: &'a mut T,
23165 ) -> Self {
23166 unsafe {
23167 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23168 (*next_ptr).p_next = self.inner.p_next as *mut _;
23169 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23170 core::ffi::c_void,
23171 >(next_ptr) as *const _;
23172 }
23173 self
23174 }
23175}
23176impl<'a> core::ops::Deref for RenderPassSampleLocationsBeginInfoEXTBuilder<'a> {
23177 type Target = RenderPassSampleLocationsBeginInfoEXT;
23178 #[inline]
23179 fn deref(&self) -> &Self::Target {
23180 &self.inner
23181 }
23182}
23183impl<'a> core::ops::DerefMut for RenderPassSampleLocationsBeginInfoEXTBuilder<'a> {
23184 #[inline]
23185 fn deref_mut(&mut self) -> &mut Self::Target {
23186 &mut self.inner
23187 }
23188}
23189pub struct PipelineSampleLocationsStateCreateInfoEXTBuilder<'a> {
23191 inner: PipelineSampleLocationsStateCreateInfoEXT,
23192 _marker: core::marker::PhantomData<&'a ()>,
23193}
23194impl PipelineSampleLocationsStateCreateInfoEXT {
23195 #[inline]
23197 pub fn builder<'a>() -> PipelineSampleLocationsStateCreateInfoEXTBuilder<'a> {
23198 PipelineSampleLocationsStateCreateInfoEXTBuilder {
23199 inner: PipelineSampleLocationsStateCreateInfoEXT {
23200 s_type: StructureType::from_raw(1000143002i32),
23201 ..Default::default()
23202 },
23203 _marker: core::marker::PhantomData,
23204 }
23205 }
23206}
23207impl<'a> PipelineSampleLocationsStateCreateInfoEXTBuilder<'a> {
23208 #[inline]
23209 pub fn sample_locations_enable(mut self, value: bool) -> Self {
23210 self.inner.sample_locations_enable = value as u32;
23211 self
23212 }
23213 #[inline]
23214 pub fn sample_locations_info(mut self, value: SampleLocationsInfoEXT) -> Self {
23215 self.inner.sample_locations_info = value;
23216 self
23217 }
23218 #[inline]
23220 pub fn push_next<T: ExtendsPipelineSampleLocationsStateCreateInfoEXT>(
23221 mut self,
23222 next: &'a mut T,
23223 ) -> Self {
23224 unsafe {
23225 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23226 (*next_ptr).p_next = self.inner.p_next as *mut _;
23227 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23228 core::ffi::c_void,
23229 >(next_ptr) as *const _;
23230 }
23231 self
23232 }
23233}
23234impl<'a> core::ops::Deref for PipelineSampleLocationsStateCreateInfoEXTBuilder<'a> {
23235 type Target = PipelineSampleLocationsStateCreateInfoEXT;
23236 #[inline]
23237 fn deref(&self) -> &Self::Target {
23238 &self.inner
23239 }
23240}
23241impl<'a> core::ops::DerefMut for PipelineSampleLocationsStateCreateInfoEXTBuilder<'a> {
23242 #[inline]
23243 fn deref_mut(&mut self) -> &mut Self::Target {
23244 &mut self.inner
23245 }
23246}
23247pub struct PhysicalDeviceSampleLocationsPropertiesEXTBuilder<'a> {
23249 inner: PhysicalDeviceSampleLocationsPropertiesEXT,
23250 _marker: core::marker::PhantomData<&'a ()>,
23251}
23252impl PhysicalDeviceSampleLocationsPropertiesEXT {
23253 #[inline]
23255 pub fn builder<'a>() -> PhysicalDeviceSampleLocationsPropertiesEXTBuilder<'a> {
23256 PhysicalDeviceSampleLocationsPropertiesEXTBuilder {
23257 inner: PhysicalDeviceSampleLocationsPropertiesEXT {
23258 s_type: StructureType::from_raw(1000143003i32),
23259 ..Default::default()
23260 },
23261 _marker: core::marker::PhantomData,
23262 }
23263 }
23264}
23265impl<'a> PhysicalDeviceSampleLocationsPropertiesEXTBuilder<'a> {
23266 #[inline]
23267 pub fn sample_location_sample_counts(mut self, value: SampleCountFlags) -> Self {
23268 self.inner.sample_location_sample_counts = value;
23269 self
23270 }
23271 #[inline]
23272 pub fn max_sample_location_grid_size(mut self, value: Extent2D) -> Self {
23273 self.inner.max_sample_location_grid_size = value;
23274 self
23275 }
23276 #[inline]
23277 pub fn sample_location_coordinate_range(mut self, value: [f32; 2usize]) -> Self {
23278 self.inner.sample_location_coordinate_range = value;
23279 self
23280 }
23281 #[inline]
23282 pub fn sample_location_sub_pixel_bits(mut self, value: u32) -> Self {
23283 self.inner.sample_location_sub_pixel_bits = value;
23284 self
23285 }
23286 #[inline]
23287 pub fn variable_sample_locations(mut self, value: bool) -> Self {
23288 self.inner.variable_sample_locations = value as u32;
23289 self
23290 }
23291}
23292impl<'a> core::ops::Deref for PhysicalDeviceSampleLocationsPropertiesEXTBuilder<'a> {
23293 type Target = PhysicalDeviceSampleLocationsPropertiesEXT;
23294 #[inline]
23295 fn deref(&self) -> &Self::Target {
23296 &self.inner
23297 }
23298}
23299impl<'a> core::ops::DerefMut for PhysicalDeviceSampleLocationsPropertiesEXTBuilder<'a> {
23300 #[inline]
23301 fn deref_mut(&mut self) -> &mut Self::Target {
23302 &mut self.inner
23303 }
23304}
23305pub struct MultisamplePropertiesEXTBuilder<'a> {
23307 inner: MultisamplePropertiesEXT,
23308 _marker: core::marker::PhantomData<&'a ()>,
23309}
23310impl MultisamplePropertiesEXT {
23311 #[inline]
23313 pub fn builder<'a>() -> MultisamplePropertiesEXTBuilder<'a> {
23314 MultisamplePropertiesEXTBuilder {
23315 inner: MultisamplePropertiesEXT {
23316 s_type: StructureType::from_raw(1000143004i32),
23317 ..Default::default()
23318 },
23319 _marker: core::marker::PhantomData,
23320 }
23321 }
23322}
23323impl<'a> MultisamplePropertiesEXTBuilder<'a> {
23324 #[inline]
23325 pub fn max_sample_location_grid_size(mut self, value: Extent2D) -> Self {
23326 self.inner.max_sample_location_grid_size = value;
23327 self
23328 }
23329}
23330impl<'a> core::ops::Deref for MultisamplePropertiesEXTBuilder<'a> {
23331 type Target = MultisamplePropertiesEXT;
23332 #[inline]
23333 fn deref(&self) -> &Self::Target {
23334 &self.inner
23335 }
23336}
23337impl<'a> core::ops::DerefMut for MultisamplePropertiesEXTBuilder<'a> {
23338 #[inline]
23339 fn deref_mut(&mut self) -> &mut Self::Target {
23340 &mut self.inner
23341 }
23342}
23343pub struct SamplerReductionModeCreateInfoBuilder<'a> {
23345 inner: SamplerReductionModeCreateInfo,
23346 _marker: core::marker::PhantomData<&'a ()>,
23347}
23348impl SamplerReductionModeCreateInfo {
23349 #[inline]
23351 pub fn builder<'a>() -> SamplerReductionModeCreateInfoBuilder<'a> {
23352 SamplerReductionModeCreateInfoBuilder {
23353 inner: SamplerReductionModeCreateInfo {
23354 s_type: StructureType::from_raw(1000130001i32),
23355 ..Default::default()
23356 },
23357 _marker: core::marker::PhantomData,
23358 }
23359 }
23360}
23361impl<'a> SamplerReductionModeCreateInfoBuilder<'a> {
23362 #[inline]
23363 pub fn reduction_mode(mut self, value: SamplerReductionMode) -> Self {
23364 self.inner.reduction_mode = value;
23365 self
23366 }
23367 #[inline]
23369 pub fn push_next<T: ExtendsSamplerReductionModeCreateInfo>(
23370 mut self,
23371 next: &'a mut T,
23372 ) -> Self {
23373 unsafe {
23374 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23375 (*next_ptr).p_next = self.inner.p_next as *mut _;
23376 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23377 core::ffi::c_void,
23378 >(next_ptr) as *const _;
23379 }
23380 self
23381 }
23382}
23383impl<'a> core::ops::Deref for SamplerReductionModeCreateInfoBuilder<'a> {
23384 type Target = SamplerReductionModeCreateInfo;
23385 #[inline]
23386 fn deref(&self) -> &Self::Target {
23387 &self.inner
23388 }
23389}
23390impl<'a> core::ops::DerefMut for SamplerReductionModeCreateInfoBuilder<'a> {
23391 #[inline]
23392 fn deref_mut(&mut self) -> &mut Self::Target {
23393 &mut self.inner
23394 }
23395}
23396pub struct PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder<'a> {
23398 inner: PhysicalDeviceBlendOperationAdvancedFeaturesEXT,
23399 _marker: core::marker::PhantomData<&'a ()>,
23400}
23401impl PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
23402 #[inline]
23404 pub fn builder<'a>() -> PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder<'a> {
23405 PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder {
23406 inner: PhysicalDeviceBlendOperationAdvancedFeaturesEXT {
23407 s_type: StructureType::from_raw(1000148000i32),
23408 ..Default::default()
23409 },
23410 _marker: core::marker::PhantomData,
23411 }
23412 }
23413}
23414impl<'a> PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder<'a> {
23415 #[inline]
23416 pub fn advanced_blend_coherent_operations(mut self, value: bool) -> Self {
23417 self.inner.advanced_blend_coherent_operations = value as u32;
23418 self
23419 }
23420 #[inline]
23422 pub fn push_next<T: ExtendsPhysicalDeviceBlendOperationAdvancedFeaturesEXT>(
23423 mut self,
23424 next: &'a mut T,
23425 ) -> Self {
23426 unsafe {
23427 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23428 (*next_ptr).p_next = self.inner.p_next as *mut _;
23429 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23430 core::ffi::c_void,
23431 >(next_ptr);
23432 }
23433 self
23434 }
23435}
23436impl<'a> core::ops::Deref
23437for PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder<'a> {
23438 type Target = PhysicalDeviceBlendOperationAdvancedFeaturesEXT;
23439 #[inline]
23440 fn deref(&self) -> &Self::Target {
23441 &self.inner
23442 }
23443}
23444impl<'a> core::ops::DerefMut
23445for PhysicalDeviceBlendOperationAdvancedFeaturesEXTBuilder<'a> {
23446 #[inline]
23447 fn deref_mut(&mut self) -> &mut Self::Target {
23448 &mut self.inner
23449 }
23450}
23451pub struct PhysicalDeviceMultiDrawFeaturesEXTBuilder<'a> {
23453 inner: PhysicalDeviceMultiDrawFeaturesEXT,
23454 _marker: core::marker::PhantomData<&'a ()>,
23455}
23456impl PhysicalDeviceMultiDrawFeaturesEXT {
23457 #[inline]
23459 pub fn builder<'a>() -> PhysicalDeviceMultiDrawFeaturesEXTBuilder<'a> {
23460 PhysicalDeviceMultiDrawFeaturesEXTBuilder {
23461 inner: PhysicalDeviceMultiDrawFeaturesEXT {
23462 s_type: StructureType::from_raw(1000392000i32),
23463 ..Default::default()
23464 },
23465 _marker: core::marker::PhantomData,
23466 }
23467 }
23468}
23469impl<'a> PhysicalDeviceMultiDrawFeaturesEXTBuilder<'a> {
23470 #[inline]
23471 pub fn multi_draw(mut self, value: bool) -> Self {
23472 self.inner.multi_draw = value as u32;
23473 self
23474 }
23475 #[inline]
23477 pub fn push_next<T: ExtendsPhysicalDeviceMultiDrawFeaturesEXT>(
23478 mut self,
23479 next: &'a mut T,
23480 ) -> Self {
23481 unsafe {
23482 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23483 (*next_ptr).p_next = self.inner.p_next as *mut _;
23484 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23485 core::ffi::c_void,
23486 >(next_ptr);
23487 }
23488 self
23489 }
23490}
23491impl<'a> core::ops::Deref for PhysicalDeviceMultiDrawFeaturesEXTBuilder<'a> {
23492 type Target = PhysicalDeviceMultiDrawFeaturesEXT;
23493 #[inline]
23494 fn deref(&self) -> &Self::Target {
23495 &self.inner
23496 }
23497}
23498impl<'a> core::ops::DerefMut for PhysicalDeviceMultiDrawFeaturesEXTBuilder<'a> {
23499 #[inline]
23500 fn deref_mut(&mut self) -> &mut Self::Target {
23501 &mut self.inner
23502 }
23503}
23504pub struct PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder<'a> {
23506 inner: PhysicalDeviceBlendOperationAdvancedPropertiesEXT,
23507 _marker: core::marker::PhantomData<&'a ()>,
23508}
23509impl PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
23510 #[inline]
23512 pub fn builder<'a>() -> PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder<
23513 'a,
23514 > {
23515 PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder {
23516 inner: PhysicalDeviceBlendOperationAdvancedPropertiesEXT {
23517 s_type: StructureType::from_raw(1000148001i32),
23518 ..Default::default()
23519 },
23520 _marker: core::marker::PhantomData,
23521 }
23522 }
23523}
23524impl<'a> PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder<'a> {
23525 #[inline]
23526 pub fn advanced_blend_max_color_attachments(mut self, value: u32) -> Self {
23527 self.inner.advanced_blend_max_color_attachments = value;
23528 self
23529 }
23530 #[inline]
23531 pub fn advanced_blend_independent_blend(mut self, value: bool) -> Self {
23532 self.inner.advanced_blend_independent_blend = value as u32;
23533 self
23534 }
23535 #[inline]
23536 pub fn advanced_blend_non_premultiplied_src_color(mut self, value: bool) -> Self {
23537 self.inner.advanced_blend_non_premultiplied_src_color = value as u32;
23538 self
23539 }
23540 #[inline]
23541 pub fn advanced_blend_non_premultiplied_dst_color(mut self, value: bool) -> Self {
23542 self.inner.advanced_blend_non_premultiplied_dst_color = value as u32;
23543 self
23544 }
23545 #[inline]
23546 pub fn advanced_blend_correlated_overlap(mut self, value: bool) -> Self {
23547 self.inner.advanced_blend_correlated_overlap = value as u32;
23548 self
23549 }
23550 #[inline]
23551 pub fn advanced_blend_all_operations(mut self, value: bool) -> Self {
23552 self.inner.advanced_blend_all_operations = value as u32;
23553 self
23554 }
23555}
23556impl<'a> core::ops::Deref
23557for PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder<'a> {
23558 type Target = PhysicalDeviceBlendOperationAdvancedPropertiesEXT;
23559 #[inline]
23560 fn deref(&self) -> &Self::Target {
23561 &self.inner
23562 }
23563}
23564impl<'a> core::ops::DerefMut
23565for PhysicalDeviceBlendOperationAdvancedPropertiesEXTBuilder<'a> {
23566 #[inline]
23567 fn deref_mut(&mut self) -> &mut Self::Target {
23568 &mut self.inner
23569 }
23570}
23571pub struct PipelineColorBlendAdvancedStateCreateInfoEXTBuilder<'a> {
23573 inner: PipelineColorBlendAdvancedStateCreateInfoEXT,
23574 _marker: core::marker::PhantomData<&'a ()>,
23575}
23576impl PipelineColorBlendAdvancedStateCreateInfoEXT {
23577 #[inline]
23579 pub fn builder<'a>() -> PipelineColorBlendAdvancedStateCreateInfoEXTBuilder<'a> {
23580 PipelineColorBlendAdvancedStateCreateInfoEXTBuilder {
23581 inner: PipelineColorBlendAdvancedStateCreateInfoEXT {
23582 s_type: StructureType::from_raw(1000148002i32),
23583 ..Default::default()
23584 },
23585 _marker: core::marker::PhantomData,
23586 }
23587 }
23588}
23589impl<'a> PipelineColorBlendAdvancedStateCreateInfoEXTBuilder<'a> {
23590 #[inline]
23591 pub fn src_premultiplied(mut self, value: bool) -> Self {
23592 self.inner.src_premultiplied = value as u32;
23593 self
23594 }
23595 #[inline]
23596 pub fn dst_premultiplied(mut self, value: bool) -> Self {
23597 self.inner.dst_premultiplied = value as u32;
23598 self
23599 }
23600 #[inline]
23601 pub fn blend_overlap(mut self, value: BlendOverlapEXT) -> Self {
23602 self.inner.blend_overlap = value;
23603 self
23604 }
23605 #[inline]
23607 pub fn push_next<T: ExtendsPipelineColorBlendAdvancedStateCreateInfoEXT>(
23608 mut self,
23609 next: &'a mut T,
23610 ) -> Self {
23611 unsafe {
23612 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23613 (*next_ptr).p_next = self.inner.p_next as *mut _;
23614 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23615 core::ffi::c_void,
23616 >(next_ptr) as *const _;
23617 }
23618 self
23619 }
23620}
23621impl<'a> core::ops::Deref for PipelineColorBlendAdvancedStateCreateInfoEXTBuilder<'a> {
23622 type Target = PipelineColorBlendAdvancedStateCreateInfoEXT;
23623 #[inline]
23624 fn deref(&self) -> &Self::Target {
23625 &self.inner
23626 }
23627}
23628impl<'a> core::ops::DerefMut
23629for PipelineColorBlendAdvancedStateCreateInfoEXTBuilder<'a> {
23630 #[inline]
23631 fn deref_mut(&mut self) -> &mut Self::Target {
23632 &mut self.inner
23633 }
23634}
23635pub struct PhysicalDeviceInlineUniformBlockFeaturesBuilder<'a> {
23637 inner: PhysicalDeviceInlineUniformBlockFeatures,
23638 _marker: core::marker::PhantomData<&'a ()>,
23639}
23640impl PhysicalDeviceInlineUniformBlockFeatures {
23641 #[inline]
23643 pub fn builder<'a>() -> PhysicalDeviceInlineUniformBlockFeaturesBuilder<'a> {
23644 PhysicalDeviceInlineUniformBlockFeaturesBuilder {
23645 inner: PhysicalDeviceInlineUniformBlockFeatures {
23646 s_type: StructureType::from_raw(1000138000i32),
23647 ..Default::default()
23648 },
23649 _marker: core::marker::PhantomData,
23650 }
23651 }
23652}
23653impl<'a> PhysicalDeviceInlineUniformBlockFeaturesBuilder<'a> {
23654 #[inline]
23655 pub fn inline_uniform_block(mut self, value: bool) -> Self {
23656 self.inner.inline_uniform_block = value as u32;
23657 self
23658 }
23659 #[inline]
23660 pub fn descriptor_binding_inline_uniform_block_update_after_bind(
23661 mut self,
23662 value: bool,
23663 ) -> Self {
23664 self.inner.descriptor_binding_inline_uniform_block_update_after_bind = value
23665 as u32;
23666 self
23667 }
23668 #[inline]
23670 pub fn push_next<T: ExtendsPhysicalDeviceInlineUniformBlockFeatures>(
23671 mut self,
23672 next: &'a mut T,
23673 ) -> Self {
23674 unsafe {
23675 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23676 (*next_ptr).p_next = self.inner.p_next as *mut _;
23677 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23678 core::ffi::c_void,
23679 >(next_ptr);
23680 }
23681 self
23682 }
23683}
23684impl<'a> core::ops::Deref for PhysicalDeviceInlineUniformBlockFeaturesBuilder<'a> {
23685 type Target = PhysicalDeviceInlineUniformBlockFeatures;
23686 #[inline]
23687 fn deref(&self) -> &Self::Target {
23688 &self.inner
23689 }
23690}
23691impl<'a> core::ops::DerefMut for PhysicalDeviceInlineUniformBlockFeaturesBuilder<'a> {
23692 #[inline]
23693 fn deref_mut(&mut self) -> &mut Self::Target {
23694 &mut self.inner
23695 }
23696}
23697pub struct PhysicalDeviceInlineUniformBlockPropertiesBuilder<'a> {
23699 inner: PhysicalDeviceInlineUniformBlockProperties,
23700 _marker: core::marker::PhantomData<&'a ()>,
23701}
23702impl PhysicalDeviceInlineUniformBlockProperties {
23703 #[inline]
23705 pub fn builder<'a>() -> PhysicalDeviceInlineUniformBlockPropertiesBuilder<'a> {
23706 PhysicalDeviceInlineUniformBlockPropertiesBuilder {
23707 inner: PhysicalDeviceInlineUniformBlockProperties {
23708 s_type: StructureType::from_raw(1000138001i32),
23709 ..Default::default()
23710 },
23711 _marker: core::marker::PhantomData,
23712 }
23713 }
23714}
23715impl<'a> PhysicalDeviceInlineUniformBlockPropertiesBuilder<'a> {
23716 #[inline]
23717 pub fn max_inline_uniform_block_size(mut self, value: u32) -> Self {
23718 self.inner.max_inline_uniform_block_size = value;
23719 self
23720 }
23721 #[inline]
23722 pub fn max_per_stage_descriptor_inline_uniform_blocks(mut self, value: u32) -> Self {
23723 self.inner.max_per_stage_descriptor_inline_uniform_blocks = value;
23724 self
23725 }
23726 #[inline]
23727 pub fn max_per_stage_descriptor_update_after_bind_inline_uniform_blocks(
23728 mut self,
23729 value: u32,
23730 ) -> Self {
23731 self.inner.max_per_stage_descriptor_update_after_bind_inline_uniform_blocks = value;
23732 self
23733 }
23734 #[inline]
23735 pub fn max_descriptor_set_inline_uniform_blocks(mut self, value: u32) -> Self {
23736 self.inner.max_descriptor_set_inline_uniform_blocks = value;
23737 self
23738 }
23739 #[inline]
23740 pub fn max_descriptor_set_update_after_bind_inline_uniform_blocks(
23741 mut self,
23742 value: u32,
23743 ) -> Self {
23744 self.inner.max_descriptor_set_update_after_bind_inline_uniform_blocks = value;
23745 self
23746 }
23747}
23748impl<'a> core::ops::Deref for PhysicalDeviceInlineUniformBlockPropertiesBuilder<'a> {
23749 type Target = PhysicalDeviceInlineUniformBlockProperties;
23750 #[inline]
23751 fn deref(&self) -> &Self::Target {
23752 &self.inner
23753 }
23754}
23755impl<'a> core::ops::DerefMut for PhysicalDeviceInlineUniformBlockPropertiesBuilder<'a> {
23756 #[inline]
23757 fn deref_mut(&mut self) -> &mut Self::Target {
23758 &mut self.inner
23759 }
23760}
23761pub struct WriteDescriptorSetInlineUniformBlockBuilder<'a> {
23763 inner: WriteDescriptorSetInlineUniformBlock,
23764 _marker: core::marker::PhantomData<&'a ()>,
23765}
23766impl WriteDescriptorSetInlineUniformBlock {
23767 #[inline]
23769 pub fn builder<'a>() -> WriteDescriptorSetInlineUniformBlockBuilder<'a> {
23770 WriteDescriptorSetInlineUniformBlockBuilder {
23771 inner: WriteDescriptorSetInlineUniformBlock {
23772 s_type: StructureType::from_raw(1000138002i32),
23773 ..Default::default()
23774 },
23775 _marker: core::marker::PhantomData,
23776 }
23777 }
23778}
23779impl<'a> WriteDescriptorSetInlineUniformBlockBuilder<'a> {
23780 #[inline]
23781 pub fn data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
23782 self.inner.data_size = slice.len() as u32;
23783 self.inner.p_data = slice.as_ptr();
23784 self
23785 }
23786 #[inline]
23788 pub fn push_next<T: ExtendsWriteDescriptorSetInlineUniformBlock>(
23789 mut self,
23790 next: &'a mut T,
23791 ) -> Self {
23792 unsafe {
23793 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23794 (*next_ptr).p_next = self.inner.p_next as *mut _;
23795 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23796 core::ffi::c_void,
23797 >(next_ptr) as *const _;
23798 }
23799 self
23800 }
23801}
23802impl<'a> core::ops::Deref for WriteDescriptorSetInlineUniformBlockBuilder<'a> {
23803 type Target = WriteDescriptorSetInlineUniformBlock;
23804 #[inline]
23805 fn deref(&self) -> &Self::Target {
23806 &self.inner
23807 }
23808}
23809impl<'a> core::ops::DerefMut for WriteDescriptorSetInlineUniformBlockBuilder<'a> {
23810 #[inline]
23811 fn deref_mut(&mut self) -> &mut Self::Target {
23812 &mut self.inner
23813 }
23814}
23815pub struct DescriptorPoolInlineUniformBlockCreateInfoBuilder<'a> {
23817 inner: DescriptorPoolInlineUniformBlockCreateInfo,
23818 _marker: core::marker::PhantomData<&'a ()>,
23819}
23820impl DescriptorPoolInlineUniformBlockCreateInfo {
23821 #[inline]
23823 pub fn builder<'a>() -> DescriptorPoolInlineUniformBlockCreateInfoBuilder<'a> {
23824 DescriptorPoolInlineUniformBlockCreateInfoBuilder {
23825 inner: DescriptorPoolInlineUniformBlockCreateInfo {
23826 s_type: StructureType::from_raw(1000138003i32),
23827 ..Default::default()
23828 },
23829 _marker: core::marker::PhantomData,
23830 }
23831 }
23832}
23833impl<'a> DescriptorPoolInlineUniformBlockCreateInfoBuilder<'a> {
23834 #[inline]
23835 pub fn max_inline_uniform_block_bindings(mut self, value: u32) -> Self {
23836 self.inner.max_inline_uniform_block_bindings = value;
23837 self
23838 }
23839 #[inline]
23841 pub fn push_next<T: ExtendsDescriptorPoolInlineUniformBlockCreateInfo>(
23842 mut self,
23843 next: &'a mut T,
23844 ) -> Self {
23845 unsafe {
23846 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23847 (*next_ptr).p_next = self.inner.p_next as *mut _;
23848 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23849 core::ffi::c_void,
23850 >(next_ptr) as *const _;
23851 }
23852 self
23853 }
23854}
23855impl<'a> core::ops::Deref for DescriptorPoolInlineUniformBlockCreateInfoBuilder<'a> {
23856 type Target = DescriptorPoolInlineUniformBlockCreateInfo;
23857 #[inline]
23858 fn deref(&self) -> &Self::Target {
23859 &self.inner
23860 }
23861}
23862impl<'a> core::ops::DerefMut for DescriptorPoolInlineUniformBlockCreateInfoBuilder<'a> {
23863 #[inline]
23864 fn deref_mut(&mut self) -> &mut Self::Target {
23865 &mut self.inner
23866 }
23867}
23868pub struct PipelineCoverageModulationStateCreateInfoNVBuilder<'a> {
23870 inner: PipelineCoverageModulationStateCreateInfoNV,
23871 _marker: core::marker::PhantomData<&'a ()>,
23872}
23873impl PipelineCoverageModulationStateCreateInfoNV {
23874 #[inline]
23876 pub fn builder<'a>() -> PipelineCoverageModulationStateCreateInfoNVBuilder<'a> {
23877 PipelineCoverageModulationStateCreateInfoNVBuilder {
23878 inner: PipelineCoverageModulationStateCreateInfoNV {
23879 s_type: StructureType::from_raw(1000152000i32),
23880 ..Default::default()
23881 },
23882 _marker: core::marker::PhantomData,
23883 }
23884 }
23885}
23886impl<'a> PipelineCoverageModulationStateCreateInfoNVBuilder<'a> {
23887 #[inline]
23888 pub fn flags(mut self, value: PipelineCoverageModulationStateCreateFlagsNV) -> Self {
23889 self.inner.flags = value;
23890 self
23891 }
23892 #[inline]
23893 pub fn coverage_modulation_mode(mut self, value: CoverageModulationModeNV) -> Self {
23894 self.inner.coverage_modulation_mode = value;
23895 self
23896 }
23897 #[inline]
23898 pub fn coverage_modulation_table_enable(mut self, value: bool) -> Self {
23899 self.inner.coverage_modulation_table_enable = value as u32;
23900 self
23901 }
23902 #[inline]
23903 pub fn coverage_modulation_table_count(mut self, value: u32) -> Self {
23904 self.inner.coverage_modulation_table_count = value;
23905 self
23906 }
23907 #[inline]
23908 pub fn coverage_modulation_table(mut self, slice: &'a [f32]) -> Self {
23909 self.inner.coverage_modulation_table_count = slice.len() as u32;
23910 self.inner.p_coverage_modulation_table = slice.as_ptr();
23911 self
23912 }
23913 #[inline]
23915 pub fn push_next<T: ExtendsPipelineCoverageModulationStateCreateInfoNV>(
23916 mut self,
23917 next: &'a mut T,
23918 ) -> Self {
23919 unsafe {
23920 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23921 (*next_ptr).p_next = self.inner.p_next as *mut _;
23922 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23923 core::ffi::c_void,
23924 >(next_ptr) as *const _;
23925 }
23926 self
23927 }
23928}
23929impl<'a> core::ops::Deref for PipelineCoverageModulationStateCreateInfoNVBuilder<'a> {
23930 type Target = PipelineCoverageModulationStateCreateInfoNV;
23931 #[inline]
23932 fn deref(&self) -> &Self::Target {
23933 &self.inner
23934 }
23935}
23936impl<'a> core::ops::DerefMut for PipelineCoverageModulationStateCreateInfoNVBuilder<'a> {
23937 #[inline]
23938 fn deref_mut(&mut self) -> &mut Self::Target {
23939 &mut self.inner
23940 }
23941}
23942pub struct ImageFormatListCreateInfoBuilder<'a> {
23944 inner: ImageFormatListCreateInfo,
23945 _marker: core::marker::PhantomData<&'a ()>,
23946}
23947impl ImageFormatListCreateInfo {
23948 #[inline]
23950 pub fn builder<'a>() -> ImageFormatListCreateInfoBuilder<'a> {
23951 ImageFormatListCreateInfoBuilder {
23952 inner: ImageFormatListCreateInfo {
23953 s_type: StructureType::from_raw(1000147000i32),
23954 ..Default::default()
23955 },
23956 _marker: core::marker::PhantomData,
23957 }
23958 }
23959}
23960impl<'a> ImageFormatListCreateInfoBuilder<'a> {
23961 #[inline]
23962 pub fn view_formats(mut self, slice: &'a [Format]) -> Self {
23963 self.inner.view_format_count = slice.len() as u32;
23964 self.inner.p_view_formats = slice.as_ptr();
23965 self
23966 }
23967 #[inline]
23969 pub fn push_next<T: ExtendsImageFormatListCreateInfo>(
23970 mut self,
23971 next: &'a mut T,
23972 ) -> Self {
23973 unsafe {
23974 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
23975 (*next_ptr).p_next = self.inner.p_next as *mut _;
23976 self.inner.p_next = <*mut BaseOutStructure>::cast::<
23977 core::ffi::c_void,
23978 >(next_ptr) as *const _;
23979 }
23980 self
23981 }
23982}
23983impl<'a> core::ops::Deref for ImageFormatListCreateInfoBuilder<'a> {
23984 type Target = ImageFormatListCreateInfo;
23985 #[inline]
23986 fn deref(&self) -> &Self::Target {
23987 &self.inner
23988 }
23989}
23990impl<'a> core::ops::DerefMut for ImageFormatListCreateInfoBuilder<'a> {
23991 #[inline]
23992 fn deref_mut(&mut self) -> &mut Self::Target {
23993 &mut self.inner
23994 }
23995}
23996pub struct ValidationCacheCreateInfoEXTBuilder<'a> {
23998 inner: ValidationCacheCreateInfoEXT,
23999 _marker: core::marker::PhantomData<&'a ()>,
24000}
24001impl ValidationCacheCreateInfoEXT {
24002 #[inline]
24004 pub fn builder<'a>() -> ValidationCacheCreateInfoEXTBuilder<'a> {
24005 ValidationCacheCreateInfoEXTBuilder {
24006 inner: ValidationCacheCreateInfoEXT {
24007 s_type: StructureType::from_raw(1000160000i32),
24008 ..Default::default()
24009 },
24010 _marker: core::marker::PhantomData,
24011 }
24012 }
24013}
24014impl<'a> ValidationCacheCreateInfoEXTBuilder<'a> {
24015 #[inline]
24016 pub fn flags(mut self, value: ValidationCacheCreateFlagsEXT) -> Self {
24017 self.inner.flags = value;
24018 self
24019 }
24020 #[inline]
24021 pub fn initial_data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
24022 self.inner.initial_data_size = slice.len();
24023 self.inner.p_initial_data = slice.as_ptr();
24024 self
24025 }
24026 #[inline]
24028 pub fn push_next<T: ExtendsValidationCacheCreateInfoEXT>(
24029 mut self,
24030 next: &'a mut T,
24031 ) -> Self {
24032 unsafe {
24033 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24034 (*next_ptr).p_next = self.inner.p_next as *mut _;
24035 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24036 core::ffi::c_void,
24037 >(next_ptr) as *const _;
24038 }
24039 self
24040 }
24041}
24042impl<'a> core::ops::Deref for ValidationCacheCreateInfoEXTBuilder<'a> {
24043 type Target = ValidationCacheCreateInfoEXT;
24044 #[inline]
24045 fn deref(&self) -> &Self::Target {
24046 &self.inner
24047 }
24048}
24049impl<'a> core::ops::DerefMut for ValidationCacheCreateInfoEXTBuilder<'a> {
24050 #[inline]
24051 fn deref_mut(&mut self) -> &mut Self::Target {
24052 &mut self.inner
24053 }
24054}
24055pub struct ShaderModuleValidationCacheCreateInfoEXTBuilder<'a> {
24057 inner: ShaderModuleValidationCacheCreateInfoEXT,
24058 _marker: core::marker::PhantomData<&'a ()>,
24059}
24060impl ShaderModuleValidationCacheCreateInfoEXT {
24061 #[inline]
24063 pub fn builder<'a>() -> ShaderModuleValidationCacheCreateInfoEXTBuilder<'a> {
24064 ShaderModuleValidationCacheCreateInfoEXTBuilder {
24065 inner: ShaderModuleValidationCacheCreateInfoEXT {
24066 s_type: StructureType::from_raw(1000160001i32),
24067 ..Default::default()
24068 },
24069 _marker: core::marker::PhantomData,
24070 }
24071 }
24072}
24073impl<'a> ShaderModuleValidationCacheCreateInfoEXTBuilder<'a> {
24074 #[inline]
24075 pub fn validation_cache(mut self, value: ValidationCacheEXT) -> Self {
24076 self.inner.validation_cache = value;
24077 self
24078 }
24079 #[inline]
24081 pub fn push_next<T: ExtendsShaderModuleValidationCacheCreateInfoEXT>(
24082 mut self,
24083 next: &'a mut T,
24084 ) -> Self {
24085 unsafe {
24086 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24087 (*next_ptr).p_next = self.inner.p_next as *mut _;
24088 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24089 core::ffi::c_void,
24090 >(next_ptr) as *const _;
24091 }
24092 self
24093 }
24094}
24095impl<'a> core::ops::Deref for ShaderModuleValidationCacheCreateInfoEXTBuilder<'a> {
24096 type Target = ShaderModuleValidationCacheCreateInfoEXT;
24097 #[inline]
24098 fn deref(&self) -> &Self::Target {
24099 &self.inner
24100 }
24101}
24102impl<'a> core::ops::DerefMut for ShaderModuleValidationCacheCreateInfoEXTBuilder<'a> {
24103 #[inline]
24104 fn deref_mut(&mut self) -> &mut Self::Target {
24105 &mut self.inner
24106 }
24107}
24108pub struct PhysicalDeviceMaintenance3PropertiesBuilder<'a> {
24110 inner: PhysicalDeviceMaintenance3Properties,
24111 _marker: core::marker::PhantomData<&'a ()>,
24112}
24113impl PhysicalDeviceMaintenance3Properties {
24114 #[inline]
24116 pub fn builder<'a>() -> PhysicalDeviceMaintenance3PropertiesBuilder<'a> {
24117 PhysicalDeviceMaintenance3PropertiesBuilder {
24118 inner: PhysicalDeviceMaintenance3Properties {
24119 s_type: StructureType::from_raw(1000168000i32),
24120 ..Default::default()
24121 },
24122 _marker: core::marker::PhantomData,
24123 }
24124 }
24125}
24126impl<'a> PhysicalDeviceMaintenance3PropertiesBuilder<'a> {
24127 #[inline]
24128 pub fn max_per_set_descriptors(mut self, value: u32) -> Self {
24129 self.inner.max_per_set_descriptors = value;
24130 self
24131 }
24132 #[inline]
24133 pub fn max_memory_allocation_size(mut self, value: u64) -> Self {
24134 self.inner.max_memory_allocation_size = value;
24135 self
24136 }
24137}
24138impl<'a> core::ops::Deref for PhysicalDeviceMaintenance3PropertiesBuilder<'a> {
24139 type Target = PhysicalDeviceMaintenance3Properties;
24140 #[inline]
24141 fn deref(&self) -> &Self::Target {
24142 &self.inner
24143 }
24144}
24145impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance3PropertiesBuilder<'a> {
24146 #[inline]
24147 fn deref_mut(&mut self) -> &mut Self::Target {
24148 &mut self.inner
24149 }
24150}
24151pub struct PhysicalDeviceMaintenance4FeaturesBuilder<'a> {
24153 inner: PhysicalDeviceMaintenance4Features,
24154 _marker: core::marker::PhantomData<&'a ()>,
24155}
24156impl PhysicalDeviceMaintenance4Features {
24157 #[inline]
24159 pub fn builder<'a>() -> PhysicalDeviceMaintenance4FeaturesBuilder<'a> {
24160 PhysicalDeviceMaintenance4FeaturesBuilder {
24161 inner: PhysicalDeviceMaintenance4Features {
24162 s_type: StructureType::from_raw(1000413000i32),
24163 ..Default::default()
24164 },
24165 _marker: core::marker::PhantomData,
24166 }
24167 }
24168}
24169impl<'a> PhysicalDeviceMaintenance4FeaturesBuilder<'a> {
24170 #[inline]
24171 pub fn maintenance4(mut self, value: bool) -> Self {
24172 self.inner.maintenance4 = value as u32;
24173 self
24174 }
24175 #[inline]
24177 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance4Features>(
24178 mut self,
24179 next: &'a mut T,
24180 ) -> Self {
24181 unsafe {
24182 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24183 (*next_ptr).p_next = self.inner.p_next as *mut _;
24184 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24185 core::ffi::c_void,
24186 >(next_ptr);
24187 }
24188 self
24189 }
24190}
24191impl<'a> core::ops::Deref for PhysicalDeviceMaintenance4FeaturesBuilder<'a> {
24192 type Target = PhysicalDeviceMaintenance4Features;
24193 #[inline]
24194 fn deref(&self) -> &Self::Target {
24195 &self.inner
24196 }
24197}
24198impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance4FeaturesBuilder<'a> {
24199 #[inline]
24200 fn deref_mut(&mut self) -> &mut Self::Target {
24201 &mut self.inner
24202 }
24203}
24204pub struct PhysicalDeviceMaintenance4PropertiesBuilder<'a> {
24206 inner: PhysicalDeviceMaintenance4Properties,
24207 _marker: core::marker::PhantomData<&'a ()>,
24208}
24209impl PhysicalDeviceMaintenance4Properties {
24210 #[inline]
24212 pub fn builder<'a>() -> PhysicalDeviceMaintenance4PropertiesBuilder<'a> {
24213 PhysicalDeviceMaintenance4PropertiesBuilder {
24214 inner: PhysicalDeviceMaintenance4Properties {
24215 s_type: StructureType::from_raw(1000413001i32),
24216 ..Default::default()
24217 },
24218 _marker: core::marker::PhantomData,
24219 }
24220 }
24221}
24222impl<'a> PhysicalDeviceMaintenance4PropertiesBuilder<'a> {
24223 #[inline]
24224 pub fn max_buffer_size(mut self, value: u64) -> Self {
24225 self.inner.max_buffer_size = value;
24226 self
24227 }
24228}
24229impl<'a> core::ops::Deref for PhysicalDeviceMaintenance4PropertiesBuilder<'a> {
24230 type Target = PhysicalDeviceMaintenance4Properties;
24231 #[inline]
24232 fn deref(&self) -> &Self::Target {
24233 &self.inner
24234 }
24235}
24236impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance4PropertiesBuilder<'a> {
24237 #[inline]
24238 fn deref_mut(&mut self) -> &mut Self::Target {
24239 &mut self.inner
24240 }
24241}
24242pub struct PhysicalDeviceMaintenance5FeaturesBuilder<'a> {
24244 inner: PhysicalDeviceMaintenance5Features,
24245 _marker: core::marker::PhantomData<&'a ()>,
24246}
24247impl PhysicalDeviceMaintenance5Features {
24248 #[inline]
24250 pub fn builder<'a>() -> PhysicalDeviceMaintenance5FeaturesBuilder<'a> {
24251 PhysicalDeviceMaintenance5FeaturesBuilder {
24252 inner: PhysicalDeviceMaintenance5Features {
24253 s_type: StructureType::from_raw(1000470000i32),
24254 ..Default::default()
24255 },
24256 _marker: core::marker::PhantomData,
24257 }
24258 }
24259}
24260impl<'a> PhysicalDeviceMaintenance5FeaturesBuilder<'a> {
24261 #[inline]
24262 pub fn maintenance5(mut self, value: bool) -> Self {
24263 self.inner.maintenance5 = value as u32;
24264 self
24265 }
24266 #[inline]
24268 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance5Features>(
24269 mut self,
24270 next: &'a mut T,
24271 ) -> Self {
24272 unsafe {
24273 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24274 (*next_ptr).p_next = self.inner.p_next as *mut _;
24275 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24276 core::ffi::c_void,
24277 >(next_ptr);
24278 }
24279 self
24280 }
24281}
24282impl<'a> core::ops::Deref for PhysicalDeviceMaintenance5FeaturesBuilder<'a> {
24283 type Target = PhysicalDeviceMaintenance5Features;
24284 #[inline]
24285 fn deref(&self) -> &Self::Target {
24286 &self.inner
24287 }
24288}
24289impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance5FeaturesBuilder<'a> {
24290 #[inline]
24291 fn deref_mut(&mut self) -> &mut Self::Target {
24292 &mut self.inner
24293 }
24294}
24295pub struct PhysicalDeviceMaintenance5PropertiesBuilder<'a> {
24297 inner: PhysicalDeviceMaintenance5Properties,
24298 _marker: core::marker::PhantomData<&'a ()>,
24299}
24300impl PhysicalDeviceMaintenance5Properties {
24301 #[inline]
24303 pub fn builder<'a>() -> PhysicalDeviceMaintenance5PropertiesBuilder<'a> {
24304 PhysicalDeviceMaintenance5PropertiesBuilder {
24305 inner: PhysicalDeviceMaintenance5Properties {
24306 s_type: StructureType::from_raw(1000470001i32),
24307 ..Default::default()
24308 },
24309 _marker: core::marker::PhantomData,
24310 }
24311 }
24312}
24313impl<'a> PhysicalDeviceMaintenance5PropertiesBuilder<'a> {
24314 #[inline]
24315 pub fn early_fragment_multisample_coverage_after_sample_counting(
24316 mut self,
24317 value: bool,
24318 ) -> Self {
24319 self.inner.early_fragment_multisample_coverage_after_sample_counting = value
24320 as u32;
24321 self
24322 }
24323 #[inline]
24324 pub fn early_fragment_sample_mask_test_before_sample_counting(
24325 mut self,
24326 value: bool,
24327 ) -> Self {
24328 self.inner.early_fragment_sample_mask_test_before_sample_counting = value as u32;
24329 self
24330 }
24331 #[inline]
24332 pub fn depth_stencil_swizzle_one_support(mut self, value: bool) -> Self {
24333 self.inner.depth_stencil_swizzle_one_support = value as u32;
24334 self
24335 }
24336 #[inline]
24337 pub fn polygon_mode_point_size(mut self, value: bool) -> Self {
24338 self.inner.polygon_mode_point_size = value as u32;
24339 self
24340 }
24341 #[inline]
24342 pub fn non_strict_single_pixel_wide_lines_use_parallelogram(
24343 mut self,
24344 value: bool,
24345 ) -> Self {
24346 self.inner.non_strict_single_pixel_wide_lines_use_parallelogram = value as u32;
24347 self
24348 }
24349 #[inline]
24350 pub fn non_strict_wide_lines_use_parallelogram(mut self, value: bool) -> Self {
24351 self.inner.non_strict_wide_lines_use_parallelogram = value as u32;
24352 self
24353 }
24354}
24355impl<'a> core::ops::Deref for PhysicalDeviceMaintenance5PropertiesBuilder<'a> {
24356 type Target = PhysicalDeviceMaintenance5Properties;
24357 #[inline]
24358 fn deref(&self) -> &Self::Target {
24359 &self.inner
24360 }
24361}
24362impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance5PropertiesBuilder<'a> {
24363 #[inline]
24364 fn deref_mut(&mut self) -> &mut Self::Target {
24365 &mut self.inner
24366 }
24367}
24368pub struct PhysicalDeviceMaintenance6FeaturesBuilder<'a> {
24370 inner: PhysicalDeviceMaintenance6Features,
24371 _marker: core::marker::PhantomData<&'a ()>,
24372}
24373impl PhysicalDeviceMaintenance6Features {
24374 #[inline]
24376 pub fn builder<'a>() -> PhysicalDeviceMaintenance6FeaturesBuilder<'a> {
24377 PhysicalDeviceMaintenance6FeaturesBuilder {
24378 inner: PhysicalDeviceMaintenance6Features {
24379 s_type: StructureType::from_raw(1000545000i32),
24380 ..Default::default()
24381 },
24382 _marker: core::marker::PhantomData,
24383 }
24384 }
24385}
24386impl<'a> PhysicalDeviceMaintenance6FeaturesBuilder<'a> {
24387 #[inline]
24388 pub fn maintenance6(mut self, value: bool) -> Self {
24389 self.inner.maintenance6 = value as u32;
24390 self
24391 }
24392 #[inline]
24394 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance6Features>(
24395 mut self,
24396 next: &'a mut T,
24397 ) -> Self {
24398 unsafe {
24399 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24400 (*next_ptr).p_next = self.inner.p_next as *mut _;
24401 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24402 core::ffi::c_void,
24403 >(next_ptr);
24404 }
24405 self
24406 }
24407}
24408impl<'a> core::ops::Deref for PhysicalDeviceMaintenance6FeaturesBuilder<'a> {
24409 type Target = PhysicalDeviceMaintenance6Features;
24410 #[inline]
24411 fn deref(&self) -> &Self::Target {
24412 &self.inner
24413 }
24414}
24415impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance6FeaturesBuilder<'a> {
24416 #[inline]
24417 fn deref_mut(&mut self) -> &mut Self::Target {
24418 &mut self.inner
24419 }
24420}
24421pub struct PhysicalDeviceMaintenance6PropertiesBuilder<'a> {
24423 inner: PhysicalDeviceMaintenance6Properties,
24424 _marker: core::marker::PhantomData<&'a ()>,
24425}
24426impl PhysicalDeviceMaintenance6Properties {
24427 #[inline]
24429 pub fn builder<'a>() -> PhysicalDeviceMaintenance6PropertiesBuilder<'a> {
24430 PhysicalDeviceMaintenance6PropertiesBuilder {
24431 inner: PhysicalDeviceMaintenance6Properties {
24432 s_type: StructureType::from_raw(1000545001i32),
24433 ..Default::default()
24434 },
24435 _marker: core::marker::PhantomData,
24436 }
24437 }
24438}
24439impl<'a> PhysicalDeviceMaintenance6PropertiesBuilder<'a> {
24440 #[inline]
24441 pub fn block_texel_view_compatible_multiple_layers(mut self, value: bool) -> Self {
24442 self.inner.block_texel_view_compatible_multiple_layers = value as u32;
24443 self
24444 }
24445 #[inline]
24446 pub fn max_combined_image_sampler_descriptor_count(mut self, value: u32) -> Self {
24447 self.inner.max_combined_image_sampler_descriptor_count = value;
24448 self
24449 }
24450 #[inline]
24451 pub fn fragment_shading_rate_clamp_combiner_inputs(mut self, value: bool) -> Self {
24452 self.inner.fragment_shading_rate_clamp_combiner_inputs = value as u32;
24453 self
24454 }
24455}
24456impl<'a> core::ops::Deref for PhysicalDeviceMaintenance6PropertiesBuilder<'a> {
24457 type Target = PhysicalDeviceMaintenance6Properties;
24458 #[inline]
24459 fn deref(&self) -> &Self::Target {
24460 &self.inner
24461 }
24462}
24463impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance6PropertiesBuilder<'a> {
24464 #[inline]
24465 fn deref_mut(&mut self) -> &mut Self::Target {
24466 &mut self.inner
24467 }
24468}
24469pub struct PhysicalDeviceMaintenance7FeaturesKHRBuilder<'a> {
24471 inner: PhysicalDeviceMaintenance7FeaturesKHR,
24472 _marker: core::marker::PhantomData<&'a ()>,
24473}
24474impl PhysicalDeviceMaintenance7FeaturesKHR {
24475 #[inline]
24477 pub fn builder<'a>() -> PhysicalDeviceMaintenance7FeaturesKHRBuilder<'a> {
24478 PhysicalDeviceMaintenance7FeaturesKHRBuilder {
24479 inner: PhysicalDeviceMaintenance7FeaturesKHR {
24480 s_type: StructureType::from_raw(1000562000i32),
24481 ..Default::default()
24482 },
24483 _marker: core::marker::PhantomData,
24484 }
24485 }
24486}
24487impl<'a> PhysicalDeviceMaintenance7FeaturesKHRBuilder<'a> {
24488 #[inline]
24489 pub fn maintenance7(mut self, value: bool) -> Self {
24490 self.inner.maintenance7 = value as u32;
24491 self
24492 }
24493 #[inline]
24495 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance7FeaturesKHR>(
24496 mut self,
24497 next: &'a mut T,
24498 ) -> Self {
24499 unsafe {
24500 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24501 (*next_ptr).p_next = self.inner.p_next as *mut _;
24502 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24503 core::ffi::c_void,
24504 >(next_ptr);
24505 }
24506 self
24507 }
24508}
24509impl<'a> core::ops::Deref for PhysicalDeviceMaintenance7FeaturesKHRBuilder<'a> {
24510 type Target = PhysicalDeviceMaintenance7FeaturesKHR;
24511 #[inline]
24512 fn deref(&self) -> &Self::Target {
24513 &self.inner
24514 }
24515}
24516impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance7FeaturesKHRBuilder<'a> {
24517 #[inline]
24518 fn deref_mut(&mut self) -> &mut Self::Target {
24519 &mut self.inner
24520 }
24521}
24522pub struct PhysicalDeviceMaintenance7PropertiesKHRBuilder<'a> {
24524 inner: PhysicalDeviceMaintenance7PropertiesKHR,
24525 _marker: core::marker::PhantomData<&'a ()>,
24526}
24527impl PhysicalDeviceMaintenance7PropertiesKHR {
24528 #[inline]
24530 pub fn builder<'a>() -> PhysicalDeviceMaintenance7PropertiesKHRBuilder<'a> {
24531 PhysicalDeviceMaintenance7PropertiesKHRBuilder {
24532 inner: PhysicalDeviceMaintenance7PropertiesKHR {
24533 s_type: StructureType::from_raw(1000562001i32),
24534 ..Default::default()
24535 },
24536 _marker: core::marker::PhantomData,
24537 }
24538 }
24539}
24540impl<'a> PhysicalDeviceMaintenance7PropertiesKHRBuilder<'a> {
24541 #[inline]
24542 pub fn robust_fragment_shading_rate_attachment_access(
24543 mut self,
24544 value: bool,
24545 ) -> Self {
24546 self.inner.robust_fragment_shading_rate_attachment_access = value as u32;
24547 self
24548 }
24549 #[inline]
24550 pub fn separate_depth_stencil_attachment_access(mut self, value: bool) -> Self {
24551 self.inner.separate_depth_stencil_attachment_access = value as u32;
24552 self
24553 }
24554 #[inline]
24555 pub fn max_descriptor_set_total_uniform_buffers_dynamic(
24556 mut self,
24557 value: u32,
24558 ) -> Self {
24559 self.inner.max_descriptor_set_total_uniform_buffers_dynamic = value;
24560 self
24561 }
24562 #[inline]
24563 pub fn max_descriptor_set_total_storage_buffers_dynamic(
24564 mut self,
24565 value: u32,
24566 ) -> Self {
24567 self.inner.max_descriptor_set_total_storage_buffers_dynamic = value;
24568 self
24569 }
24570 #[inline]
24571 pub fn max_descriptor_set_total_buffers_dynamic(mut self, value: u32) -> Self {
24572 self.inner.max_descriptor_set_total_buffers_dynamic = value;
24573 self
24574 }
24575 #[inline]
24576 pub fn max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic(
24577 mut self,
24578 value: u32,
24579 ) -> Self {
24580 self.inner.max_descriptor_set_update_after_bind_total_uniform_buffers_dynamic = value;
24581 self
24582 }
24583 #[inline]
24584 pub fn max_descriptor_set_update_after_bind_total_storage_buffers_dynamic(
24585 mut self,
24586 value: u32,
24587 ) -> Self {
24588 self.inner.max_descriptor_set_update_after_bind_total_storage_buffers_dynamic = value;
24589 self
24590 }
24591 #[inline]
24592 pub fn max_descriptor_set_update_after_bind_total_buffers_dynamic(
24593 mut self,
24594 value: u32,
24595 ) -> Self {
24596 self.inner.max_descriptor_set_update_after_bind_total_buffers_dynamic = value;
24597 self
24598 }
24599}
24600impl<'a> core::ops::Deref for PhysicalDeviceMaintenance7PropertiesKHRBuilder<'a> {
24601 type Target = PhysicalDeviceMaintenance7PropertiesKHR;
24602 #[inline]
24603 fn deref(&self) -> &Self::Target {
24604 &self.inner
24605 }
24606}
24607impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance7PropertiesKHRBuilder<'a> {
24608 #[inline]
24609 fn deref_mut(&mut self) -> &mut Self::Target {
24610 &mut self.inner
24611 }
24612}
24613pub struct PhysicalDeviceLayeredApiPropertiesListKHRBuilder<'a> {
24615 inner: PhysicalDeviceLayeredApiPropertiesListKHR,
24616 _marker: core::marker::PhantomData<&'a ()>,
24617}
24618impl PhysicalDeviceLayeredApiPropertiesListKHR {
24619 #[inline]
24621 pub fn builder<'a>() -> PhysicalDeviceLayeredApiPropertiesListKHRBuilder<'a> {
24622 PhysicalDeviceLayeredApiPropertiesListKHRBuilder {
24623 inner: PhysicalDeviceLayeredApiPropertiesListKHR {
24624 s_type: StructureType::from_raw(1000562002i32),
24625 ..Default::default()
24626 },
24627 _marker: core::marker::PhantomData,
24628 }
24629 }
24630}
24631impl<'a> PhysicalDeviceLayeredApiPropertiesListKHRBuilder<'a> {
24632 #[inline]
24633 pub fn layered_api_count(mut self, value: u32) -> Self {
24634 self.inner.layered_api_count = value;
24635 self
24636 }
24637 #[inline]
24638 pub fn layered_apis(
24639 mut self,
24640 slice: &'a mut [PhysicalDeviceLayeredApiPropertiesKHR],
24641 ) -> Self {
24642 self.inner.layered_api_count = slice.len() as u32;
24643 self.inner.p_layered_apis = slice.as_mut_ptr();
24644 self
24645 }
24646 #[inline]
24648 pub fn push_next<T: ExtendsPhysicalDeviceLayeredApiPropertiesListKHR>(
24649 mut self,
24650 next: &'a mut T,
24651 ) -> Self {
24652 unsafe {
24653 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24654 (*next_ptr).p_next = self.inner.p_next as *mut _;
24655 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24656 core::ffi::c_void,
24657 >(next_ptr);
24658 }
24659 self
24660 }
24661}
24662impl<'a> core::ops::Deref for PhysicalDeviceLayeredApiPropertiesListKHRBuilder<'a> {
24663 type Target = PhysicalDeviceLayeredApiPropertiesListKHR;
24664 #[inline]
24665 fn deref(&self) -> &Self::Target {
24666 &self.inner
24667 }
24668}
24669impl<'a> core::ops::DerefMut for PhysicalDeviceLayeredApiPropertiesListKHRBuilder<'a> {
24670 #[inline]
24671 fn deref_mut(&mut self) -> &mut Self::Target {
24672 &mut self.inner
24673 }
24674}
24675pub struct PhysicalDeviceLayeredApiPropertiesKHRBuilder<'a> {
24677 inner: PhysicalDeviceLayeredApiPropertiesKHR,
24678 _marker: core::marker::PhantomData<&'a ()>,
24679}
24680impl PhysicalDeviceLayeredApiPropertiesKHR {
24681 #[inline]
24683 pub fn builder<'a>() -> PhysicalDeviceLayeredApiPropertiesKHRBuilder<'a> {
24684 PhysicalDeviceLayeredApiPropertiesKHRBuilder {
24685 inner: PhysicalDeviceLayeredApiPropertiesKHR {
24686 s_type: StructureType::from_raw(1000562003i32),
24687 ..Default::default()
24688 },
24689 _marker: core::marker::PhantomData,
24690 }
24691 }
24692}
24693impl<'a> PhysicalDeviceLayeredApiPropertiesKHRBuilder<'a> {
24694 #[inline]
24695 pub fn vendor_id(mut self, value: u32) -> Self {
24696 self.inner.vendor_id = value;
24697 self
24698 }
24699 #[inline]
24700 pub fn device_id(mut self, value: u32) -> Self {
24701 self.inner.device_id = value;
24702 self
24703 }
24704 #[inline]
24705 pub fn layered_api(mut self, value: PhysicalDeviceLayeredApiKHR) -> Self {
24706 self.inner.layered_api = value;
24707 self
24708 }
24709 #[inline]
24710 pub fn device_name(
24711 mut self,
24712 value: crate::StringArray<{ MAX_PHYSICAL_DEVICE_NAME_SIZE as usize }>,
24713 ) -> Self {
24714 self.inner.device_name = value;
24715 self
24716 }
24717}
24718impl<'a> core::ops::Deref for PhysicalDeviceLayeredApiPropertiesKHRBuilder<'a> {
24719 type Target = PhysicalDeviceLayeredApiPropertiesKHR;
24720 #[inline]
24721 fn deref(&self) -> &Self::Target {
24722 &self.inner
24723 }
24724}
24725impl<'a> core::ops::DerefMut for PhysicalDeviceLayeredApiPropertiesKHRBuilder<'a> {
24726 #[inline]
24727 fn deref_mut(&mut self) -> &mut Self::Target {
24728 &mut self.inner
24729 }
24730}
24731pub struct PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder<'a> {
24733 inner: PhysicalDeviceLayeredApiVulkanPropertiesKHR,
24734 _marker: core::marker::PhantomData<&'a ()>,
24735}
24736impl PhysicalDeviceLayeredApiVulkanPropertiesKHR {
24737 #[inline]
24739 pub fn builder<'a>() -> PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder<'a> {
24740 PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder {
24741 inner: PhysicalDeviceLayeredApiVulkanPropertiesKHR {
24742 s_type: StructureType::from_raw(1000562004i32),
24743 ..Default::default()
24744 },
24745 _marker: core::marker::PhantomData,
24746 }
24747 }
24748}
24749impl<'a> PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder<'a> {
24750 #[inline]
24751 pub fn properties(mut self, value: PhysicalDeviceProperties2) -> Self {
24752 self.inner.properties = value;
24753 self
24754 }
24755}
24756impl<'a> core::ops::Deref for PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder<'a> {
24757 type Target = PhysicalDeviceLayeredApiVulkanPropertiesKHR;
24758 #[inline]
24759 fn deref(&self) -> &Self::Target {
24760 &self.inner
24761 }
24762}
24763impl<'a> core::ops::DerefMut for PhysicalDeviceLayeredApiVulkanPropertiesKHRBuilder<'a> {
24764 #[inline]
24765 fn deref_mut(&mut self) -> &mut Self::Target {
24766 &mut self.inner
24767 }
24768}
24769pub struct PhysicalDeviceMaintenance8FeaturesKHRBuilder<'a> {
24771 inner: PhysicalDeviceMaintenance8FeaturesKHR,
24772 _marker: core::marker::PhantomData<&'a ()>,
24773}
24774impl PhysicalDeviceMaintenance8FeaturesKHR {
24775 #[inline]
24777 pub fn builder<'a>() -> PhysicalDeviceMaintenance8FeaturesKHRBuilder<'a> {
24778 PhysicalDeviceMaintenance8FeaturesKHRBuilder {
24779 inner: PhysicalDeviceMaintenance8FeaturesKHR {
24780 s_type: StructureType::from_raw(1000574000i32),
24781 ..Default::default()
24782 },
24783 _marker: core::marker::PhantomData,
24784 }
24785 }
24786}
24787impl<'a> PhysicalDeviceMaintenance8FeaturesKHRBuilder<'a> {
24788 #[inline]
24789 pub fn maintenance8(mut self, value: bool) -> Self {
24790 self.inner.maintenance8 = value as u32;
24791 self
24792 }
24793 #[inline]
24795 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance8FeaturesKHR>(
24796 mut self,
24797 next: &'a mut T,
24798 ) -> Self {
24799 unsafe {
24800 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24801 (*next_ptr).p_next = self.inner.p_next as *mut _;
24802 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24803 core::ffi::c_void,
24804 >(next_ptr);
24805 }
24806 self
24807 }
24808}
24809impl<'a> core::ops::Deref for PhysicalDeviceMaintenance8FeaturesKHRBuilder<'a> {
24810 type Target = PhysicalDeviceMaintenance8FeaturesKHR;
24811 #[inline]
24812 fn deref(&self) -> &Self::Target {
24813 &self.inner
24814 }
24815}
24816impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance8FeaturesKHRBuilder<'a> {
24817 #[inline]
24818 fn deref_mut(&mut self) -> &mut Self::Target {
24819 &mut self.inner
24820 }
24821}
24822pub struct PhysicalDeviceMaintenance9FeaturesKHRBuilder<'a> {
24824 inner: PhysicalDeviceMaintenance9FeaturesKHR,
24825 _marker: core::marker::PhantomData<&'a ()>,
24826}
24827impl PhysicalDeviceMaintenance9FeaturesKHR {
24828 #[inline]
24830 pub fn builder<'a>() -> PhysicalDeviceMaintenance9FeaturesKHRBuilder<'a> {
24831 PhysicalDeviceMaintenance9FeaturesKHRBuilder {
24832 inner: PhysicalDeviceMaintenance9FeaturesKHR {
24833 s_type: StructureType::from_raw(1000584000i32),
24834 ..Default::default()
24835 },
24836 _marker: core::marker::PhantomData,
24837 }
24838 }
24839}
24840impl<'a> PhysicalDeviceMaintenance9FeaturesKHRBuilder<'a> {
24841 #[inline]
24842 pub fn maintenance9(mut self, value: bool) -> Self {
24843 self.inner.maintenance9 = value as u32;
24844 self
24845 }
24846 #[inline]
24848 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance9FeaturesKHR>(
24849 mut self,
24850 next: &'a mut T,
24851 ) -> Self {
24852 unsafe {
24853 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
24854 (*next_ptr).p_next = self.inner.p_next as *mut _;
24855 self.inner.p_next = <*mut BaseOutStructure>::cast::<
24856 core::ffi::c_void,
24857 >(next_ptr);
24858 }
24859 self
24860 }
24861}
24862impl<'a> core::ops::Deref for PhysicalDeviceMaintenance9FeaturesKHRBuilder<'a> {
24863 type Target = PhysicalDeviceMaintenance9FeaturesKHR;
24864 #[inline]
24865 fn deref(&self) -> &Self::Target {
24866 &self.inner
24867 }
24868}
24869impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance9FeaturesKHRBuilder<'a> {
24870 #[inline]
24871 fn deref_mut(&mut self) -> &mut Self::Target {
24872 &mut self.inner
24873 }
24874}
24875pub struct PhysicalDeviceMaintenance9PropertiesKHRBuilder<'a> {
24877 inner: PhysicalDeviceMaintenance9PropertiesKHR,
24878 _marker: core::marker::PhantomData<&'a ()>,
24879}
24880impl PhysicalDeviceMaintenance9PropertiesKHR {
24881 #[inline]
24883 pub fn builder<'a>() -> PhysicalDeviceMaintenance9PropertiesKHRBuilder<'a> {
24884 PhysicalDeviceMaintenance9PropertiesKHRBuilder {
24885 inner: PhysicalDeviceMaintenance9PropertiesKHR {
24886 s_type: StructureType::from_raw(1000584001i32),
24887 ..Default::default()
24888 },
24889 _marker: core::marker::PhantomData,
24890 }
24891 }
24892}
24893impl<'a> PhysicalDeviceMaintenance9PropertiesKHRBuilder<'a> {
24894 #[inline]
24895 pub fn image2_d_view_of3_d_sparse(mut self, value: bool) -> Self {
24896 self.inner.image2_d_view_of3_d_sparse = value as u32;
24897 self
24898 }
24899 #[inline]
24900 pub fn default_vertex_attribute_value(
24901 mut self,
24902 value: DefaultVertexAttributeValueKHR,
24903 ) -> Self {
24904 self.inner.default_vertex_attribute_value = value;
24905 self
24906 }
24907}
24908impl<'a> core::ops::Deref for PhysicalDeviceMaintenance9PropertiesKHRBuilder<'a> {
24909 type Target = PhysicalDeviceMaintenance9PropertiesKHR;
24910 #[inline]
24911 fn deref(&self) -> &Self::Target {
24912 &self.inner
24913 }
24914}
24915impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance9PropertiesKHRBuilder<'a> {
24916 #[inline]
24917 fn deref_mut(&mut self) -> &mut Self::Target {
24918 &mut self.inner
24919 }
24920}
24921pub struct PhysicalDeviceMaintenance10PropertiesKHRBuilder<'a> {
24923 inner: PhysicalDeviceMaintenance10PropertiesKHR,
24924 _marker: core::marker::PhantomData<&'a ()>,
24925}
24926impl PhysicalDeviceMaintenance10PropertiesKHR {
24927 #[inline]
24929 pub fn builder<'a>() -> PhysicalDeviceMaintenance10PropertiesKHRBuilder<'a> {
24930 PhysicalDeviceMaintenance10PropertiesKHRBuilder {
24931 inner: PhysicalDeviceMaintenance10PropertiesKHR {
24932 s_type: StructureType::from_raw(1000630001i32),
24933 ..Default::default()
24934 },
24935 _marker: core::marker::PhantomData,
24936 }
24937 }
24938}
24939impl<'a> PhysicalDeviceMaintenance10PropertiesKHRBuilder<'a> {
24940 #[inline]
24941 pub fn rgba4_opaque_black_swizzled(mut self, value: bool) -> Self {
24942 self.inner.rgba4_opaque_black_swizzled = value as u32;
24943 self
24944 }
24945 #[inline]
24946 pub fn resolve_srgb_format_applies_transfer_function(mut self, value: bool) -> Self {
24947 self.inner.resolve_srgb_format_applies_transfer_function = value as u32;
24948 self
24949 }
24950 #[inline]
24951 pub fn resolve_srgb_format_supports_transfer_function_control(
24952 mut self,
24953 value: bool,
24954 ) -> Self {
24955 self.inner.resolve_srgb_format_supports_transfer_function_control = value as u32;
24956 self
24957 }
24958}
24959impl<'a> core::ops::Deref for PhysicalDeviceMaintenance10PropertiesKHRBuilder<'a> {
24960 type Target = PhysicalDeviceMaintenance10PropertiesKHR;
24961 #[inline]
24962 fn deref(&self) -> &Self::Target {
24963 &self.inner
24964 }
24965}
24966impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance10PropertiesKHRBuilder<'a> {
24967 #[inline]
24968 fn deref_mut(&mut self) -> &mut Self::Target {
24969 &mut self.inner
24970 }
24971}
24972pub struct PhysicalDeviceMaintenance10FeaturesKHRBuilder<'a> {
24974 inner: PhysicalDeviceMaintenance10FeaturesKHR,
24975 _marker: core::marker::PhantomData<&'a ()>,
24976}
24977impl PhysicalDeviceMaintenance10FeaturesKHR {
24978 #[inline]
24980 pub fn builder<'a>() -> PhysicalDeviceMaintenance10FeaturesKHRBuilder<'a> {
24981 PhysicalDeviceMaintenance10FeaturesKHRBuilder {
24982 inner: PhysicalDeviceMaintenance10FeaturesKHR {
24983 s_type: StructureType::from_raw(1000630000i32),
24984 ..Default::default()
24985 },
24986 _marker: core::marker::PhantomData,
24987 }
24988 }
24989}
24990impl<'a> PhysicalDeviceMaintenance10FeaturesKHRBuilder<'a> {
24991 #[inline]
24992 pub fn maintenance10(mut self, value: bool) -> Self {
24993 self.inner.maintenance10 = value as u32;
24994 self
24995 }
24996 #[inline]
24998 pub fn push_next<T: ExtendsPhysicalDeviceMaintenance10FeaturesKHR>(
24999 mut self,
25000 next: &'a mut T,
25001 ) -> Self {
25002 unsafe {
25003 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25004 (*next_ptr).p_next = self.inner.p_next as *mut _;
25005 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25006 core::ffi::c_void,
25007 >(next_ptr);
25008 }
25009 self
25010 }
25011}
25012impl<'a> core::ops::Deref for PhysicalDeviceMaintenance10FeaturesKHRBuilder<'a> {
25013 type Target = PhysicalDeviceMaintenance10FeaturesKHR;
25014 #[inline]
25015 fn deref(&self) -> &Self::Target {
25016 &self.inner
25017 }
25018}
25019impl<'a> core::ops::DerefMut for PhysicalDeviceMaintenance10FeaturesKHRBuilder<'a> {
25020 #[inline]
25021 fn deref_mut(&mut self) -> &mut Self::Target {
25022 &mut self.inner
25023 }
25024}
25025pub struct QueueFamilyOwnershipTransferPropertiesKHRBuilder<'a> {
25027 inner: QueueFamilyOwnershipTransferPropertiesKHR,
25028 _marker: core::marker::PhantomData<&'a ()>,
25029}
25030impl QueueFamilyOwnershipTransferPropertiesKHR {
25031 #[inline]
25033 pub fn builder<'a>() -> QueueFamilyOwnershipTransferPropertiesKHRBuilder<'a> {
25034 QueueFamilyOwnershipTransferPropertiesKHRBuilder {
25035 inner: QueueFamilyOwnershipTransferPropertiesKHR {
25036 s_type: StructureType::from_raw(1000584002i32),
25037 ..Default::default()
25038 },
25039 _marker: core::marker::PhantomData,
25040 }
25041 }
25042}
25043impl<'a> QueueFamilyOwnershipTransferPropertiesKHRBuilder<'a> {
25044 #[inline]
25045 pub fn optimal_image_transfer_to_queue_families(mut self, value: u32) -> Self {
25046 self.inner.optimal_image_transfer_to_queue_families = value;
25047 self
25048 }
25049}
25050impl<'a> core::ops::Deref for QueueFamilyOwnershipTransferPropertiesKHRBuilder<'a> {
25051 type Target = QueueFamilyOwnershipTransferPropertiesKHR;
25052 #[inline]
25053 fn deref(&self) -> &Self::Target {
25054 &self.inner
25055 }
25056}
25057impl<'a> core::ops::DerefMut for QueueFamilyOwnershipTransferPropertiesKHRBuilder<'a> {
25058 #[inline]
25059 fn deref_mut(&mut self) -> &mut Self::Target {
25060 &mut self.inner
25061 }
25062}
25063pub struct RenderingAreaInfoBuilder<'a> {
25065 inner: RenderingAreaInfo,
25066 _marker: core::marker::PhantomData<&'a ()>,
25067}
25068impl RenderingAreaInfo {
25069 #[inline]
25071 pub fn builder<'a>() -> RenderingAreaInfoBuilder<'a> {
25072 RenderingAreaInfoBuilder {
25073 inner: RenderingAreaInfo {
25074 s_type: StructureType::from_raw(1000470003i32),
25075 ..Default::default()
25076 },
25077 _marker: core::marker::PhantomData,
25078 }
25079 }
25080}
25081impl<'a> RenderingAreaInfoBuilder<'a> {
25082 #[inline]
25083 pub fn view_mask(mut self, value: u32) -> Self {
25084 self.inner.view_mask = value;
25085 self
25086 }
25087 #[inline]
25088 pub fn color_attachment_formats(mut self, slice: &'a [Format]) -> Self {
25089 self.inner.color_attachment_count = slice.len() as u32;
25090 self.inner.p_color_attachment_formats = slice.as_ptr();
25091 self
25092 }
25093 #[inline]
25094 pub fn depth_attachment_format(mut self, value: Format) -> Self {
25095 self.inner.depth_attachment_format = value;
25096 self
25097 }
25098 #[inline]
25099 pub fn stencil_attachment_format(mut self, value: Format) -> Self {
25100 self.inner.stencil_attachment_format = value;
25101 self
25102 }
25103 #[inline]
25105 pub fn push_next<T: ExtendsRenderingAreaInfo>(mut self, next: &'a mut T) -> Self {
25106 unsafe {
25107 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25108 (*next_ptr).p_next = self.inner.p_next as *mut _;
25109 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25110 core::ffi::c_void,
25111 >(next_ptr) as *const _;
25112 }
25113 self
25114 }
25115}
25116impl<'a> core::ops::Deref for RenderingAreaInfoBuilder<'a> {
25117 type Target = RenderingAreaInfo;
25118 #[inline]
25119 fn deref(&self) -> &Self::Target {
25120 &self.inner
25121 }
25122}
25123impl<'a> core::ops::DerefMut for RenderingAreaInfoBuilder<'a> {
25124 #[inline]
25125 fn deref_mut(&mut self) -> &mut Self::Target {
25126 &mut self.inner
25127 }
25128}
25129pub struct DescriptorSetLayoutSupportBuilder<'a> {
25131 inner: DescriptorSetLayoutSupport,
25132 _marker: core::marker::PhantomData<&'a ()>,
25133}
25134impl DescriptorSetLayoutSupport {
25135 #[inline]
25137 pub fn builder<'a>() -> DescriptorSetLayoutSupportBuilder<'a> {
25138 DescriptorSetLayoutSupportBuilder {
25139 inner: DescriptorSetLayoutSupport {
25140 s_type: StructureType::from_raw(1000168001i32),
25141 ..Default::default()
25142 },
25143 _marker: core::marker::PhantomData,
25144 }
25145 }
25146}
25147impl<'a> DescriptorSetLayoutSupportBuilder<'a> {
25148 #[inline]
25149 pub fn supported(mut self, value: bool) -> Self {
25150 self.inner.supported = value as u32;
25151 self
25152 }
25153}
25154impl<'a> core::ops::Deref for DescriptorSetLayoutSupportBuilder<'a> {
25155 type Target = DescriptorSetLayoutSupport;
25156 #[inline]
25157 fn deref(&self) -> &Self::Target {
25158 &self.inner
25159 }
25160}
25161impl<'a> core::ops::DerefMut for DescriptorSetLayoutSupportBuilder<'a> {
25162 #[inline]
25163 fn deref_mut(&mut self) -> &mut Self::Target {
25164 &mut self.inner
25165 }
25166}
25167pub struct PhysicalDeviceShaderDrawParametersFeaturesBuilder<'a> {
25169 inner: PhysicalDeviceShaderDrawParametersFeatures,
25170 _marker: core::marker::PhantomData<&'a ()>,
25171}
25172impl PhysicalDeviceShaderDrawParametersFeatures {
25173 #[inline]
25175 pub fn builder<'a>() -> PhysicalDeviceShaderDrawParametersFeaturesBuilder<'a> {
25176 PhysicalDeviceShaderDrawParametersFeaturesBuilder {
25177 inner: PhysicalDeviceShaderDrawParametersFeatures {
25178 s_type: StructureType::from_raw(1000063000i32),
25179 ..Default::default()
25180 },
25181 _marker: core::marker::PhantomData,
25182 }
25183 }
25184}
25185impl<'a> PhysicalDeviceShaderDrawParametersFeaturesBuilder<'a> {
25186 #[inline]
25187 pub fn shader_draw_parameters(mut self, value: bool) -> Self {
25188 self.inner.shader_draw_parameters = value as u32;
25189 self
25190 }
25191 #[inline]
25193 pub fn push_next<T: ExtendsPhysicalDeviceShaderDrawParametersFeatures>(
25194 mut self,
25195 next: &'a mut T,
25196 ) -> Self {
25197 unsafe {
25198 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25199 (*next_ptr).p_next = self.inner.p_next as *mut _;
25200 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25201 core::ffi::c_void,
25202 >(next_ptr);
25203 }
25204 self
25205 }
25206}
25207impl<'a> core::ops::Deref for PhysicalDeviceShaderDrawParametersFeaturesBuilder<'a> {
25208 type Target = PhysicalDeviceShaderDrawParametersFeatures;
25209 #[inline]
25210 fn deref(&self) -> &Self::Target {
25211 &self.inner
25212 }
25213}
25214impl<'a> core::ops::DerefMut for PhysicalDeviceShaderDrawParametersFeaturesBuilder<'a> {
25215 #[inline]
25216 fn deref_mut(&mut self) -> &mut Self::Target {
25217 &mut self.inner
25218 }
25219}
25220pub struct PhysicalDeviceShaderFloat16Int8FeaturesBuilder<'a> {
25222 inner: PhysicalDeviceShaderFloat16Int8Features,
25223 _marker: core::marker::PhantomData<&'a ()>,
25224}
25225impl PhysicalDeviceShaderFloat16Int8Features {
25226 #[inline]
25228 pub fn builder<'a>() -> PhysicalDeviceShaderFloat16Int8FeaturesBuilder<'a> {
25229 PhysicalDeviceShaderFloat16Int8FeaturesBuilder {
25230 inner: PhysicalDeviceShaderFloat16Int8Features {
25231 s_type: StructureType::from_raw(1000082000i32),
25232 ..Default::default()
25233 },
25234 _marker: core::marker::PhantomData,
25235 }
25236 }
25237}
25238impl<'a> PhysicalDeviceShaderFloat16Int8FeaturesBuilder<'a> {
25239 #[inline]
25240 pub fn shader_float16(mut self, value: bool) -> Self {
25241 self.inner.shader_float16 = value as u32;
25242 self
25243 }
25244 #[inline]
25245 pub fn shader_int8(mut self, value: bool) -> Self {
25246 self.inner.shader_int8 = value as u32;
25247 self
25248 }
25249 #[inline]
25251 pub fn push_next<T: ExtendsPhysicalDeviceShaderFloat16Int8Features>(
25252 mut self,
25253 next: &'a mut T,
25254 ) -> Self {
25255 unsafe {
25256 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25257 (*next_ptr).p_next = self.inner.p_next as *mut _;
25258 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25259 core::ffi::c_void,
25260 >(next_ptr);
25261 }
25262 self
25263 }
25264}
25265impl<'a> core::ops::Deref for PhysicalDeviceShaderFloat16Int8FeaturesBuilder<'a> {
25266 type Target = PhysicalDeviceShaderFloat16Int8Features;
25267 #[inline]
25268 fn deref(&self) -> &Self::Target {
25269 &self.inner
25270 }
25271}
25272impl<'a> core::ops::DerefMut for PhysicalDeviceShaderFloat16Int8FeaturesBuilder<'a> {
25273 #[inline]
25274 fn deref_mut(&mut self) -> &mut Self::Target {
25275 &mut self.inner
25276 }
25277}
25278pub struct PhysicalDeviceFloatControlsPropertiesBuilder<'a> {
25280 inner: PhysicalDeviceFloatControlsProperties,
25281 _marker: core::marker::PhantomData<&'a ()>,
25282}
25283impl PhysicalDeviceFloatControlsProperties {
25284 #[inline]
25286 pub fn builder<'a>() -> PhysicalDeviceFloatControlsPropertiesBuilder<'a> {
25287 PhysicalDeviceFloatControlsPropertiesBuilder {
25288 inner: PhysicalDeviceFloatControlsProperties {
25289 s_type: StructureType::from_raw(1000197000i32),
25290 ..Default::default()
25291 },
25292 _marker: core::marker::PhantomData,
25293 }
25294 }
25295}
25296impl<'a> PhysicalDeviceFloatControlsPropertiesBuilder<'a> {
25297 #[inline]
25298 pub fn denorm_behavior_independence(
25299 mut self,
25300 value: ShaderFloatControlsIndependence,
25301 ) -> Self {
25302 self.inner.denorm_behavior_independence = value;
25303 self
25304 }
25305 #[inline]
25306 pub fn rounding_mode_independence(
25307 mut self,
25308 value: ShaderFloatControlsIndependence,
25309 ) -> Self {
25310 self.inner.rounding_mode_independence = value;
25311 self
25312 }
25313 #[inline]
25314 pub fn shader_signed_zero_inf_nan_preserve_float16(mut self, value: bool) -> Self {
25315 self.inner.shader_signed_zero_inf_nan_preserve_float16 = value as u32;
25316 self
25317 }
25318 #[inline]
25319 pub fn shader_signed_zero_inf_nan_preserve_float32(mut self, value: bool) -> Self {
25320 self.inner.shader_signed_zero_inf_nan_preserve_float32 = value as u32;
25321 self
25322 }
25323 #[inline]
25324 pub fn shader_signed_zero_inf_nan_preserve_float64(mut self, value: bool) -> Self {
25325 self.inner.shader_signed_zero_inf_nan_preserve_float64 = value as u32;
25326 self
25327 }
25328 #[inline]
25329 pub fn shader_denorm_preserve_float16(mut self, value: bool) -> Self {
25330 self.inner.shader_denorm_preserve_float16 = value as u32;
25331 self
25332 }
25333 #[inline]
25334 pub fn shader_denorm_preserve_float32(mut self, value: bool) -> Self {
25335 self.inner.shader_denorm_preserve_float32 = value as u32;
25336 self
25337 }
25338 #[inline]
25339 pub fn shader_denorm_preserve_float64(mut self, value: bool) -> Self {
25340 self.inner.shader_denorm_preserve_float64 = value as u32;
25341 self
25342 }
25343 #[inline]
25344 pub fn shader_denorm_flush_to_zero_float16(mut self, value: bool) -> Self {
25345 self.inner.shader_denorm_flush_to_zero_float16 = value as u32;
25346 self
25347 }
25348 #[inline]
25349 pub fn shader_denorm_flush_to_zero_float32(mut self, value: bool) -> Self {
25350 self.inner.shader_denorm_flush_to_zero_float32 = value as u32;
25351 self
25352 }
25353 #[inline]
25354 pub fn shader_denorm_flush_to_zero_float64(mut self, value: bool) -> Self {
25355 self.inner.shader_denorm_flush_to_zero_float64 = value as u32;
25356 self
25357 }
25358 #[inline]
25359 pub fn shader_rounding_mode_rte_float16(mut self, value: bool) -> Self {
25360 self.inner.shader_rounding_mode_rte_float16 = value as u32;
25361 self
25362 }
25363 #[inline]
25364 pub fn shader_rounding_mode_rte_float32(mut self, value: bool) -> Self {
25365 self.inner.shader_rounding_mode_rte_float32 = value as u32;
25366 self
25367 }
25368 #[inline]
25369 pub fn shader_rounding_mode_rte_float64(mut self, value: bool) -> Self {
25370 self.inner.shader_rounding_mode_rte_float64 = value as u32;
25371 self
25372 }
25373 #[inline]
25374 pub fn shader_rounding_mode_rtz_float16(mut self, value: bool) -> Self {
25375 self.inner.shader_rounding_mode_rtz_float16 = value as u32;
25376 self
25377 }
25378 #[inline]
25379 pub fn shader_rounding_mode_rtz_float32(mut self, value: bool) -> Self {
25380 self.inner.shader_rounding_mode_rtz_float32 = value as u32;
25381 self
25382 }
25383 #[inline]
25384 pub fn shader_rounding_mode_rtz_float64(mut self, value: bool) -> Self {
25385 self.inner.shader_rounding_mode_rtz_float64 = value as u32;
25386 self
25387 }
25388}
25389impl<'a> core::ops::Deref for PhysicalDeviceFloatControlsPropertiesBuilder<'a> {
25390 type Target = PhysicalDeviceFloatControlsProperties;
25391 #[inline]
25392 fn deref(&self) -> &Self::Target {
25393 &self.inner
25394 }
25395}
25396impl<'a> core::ops::DerefMut for PhysicalDeviceFloatControlsPropertiesBuilder<'a> {
25397 #[inline]
25398 fn deref_mut(&mut self) -> &mut Self::Target {
25399 &mut self.inner
25400 }
25401}
25402pub struct PhysicalDeviceHostQueryResetFeaturesBuilder<'a> {
25404 inner: PhysicalDeviceHostQueryResetFeatures,
25405 _marker: core::marker::PhantomData<&'a ()>,
25406}
25407impl PhysicalDeviceHostQueryResetFeatures {
25408 #[inline]
25410 pub fn builder<'a>() -> PhysicalDeviceHostQueryResetFeaturesBuilder<'a> {
25411 PhysicalDeviceHostQueryResetFeaturesBuilder {
25412 inner: PhysicalDeviceHostQueryResetFeatures {
25413 s_type: StructureType::from_raw(1000261000i32),
25414 ..Default::default()
25415 },
25416 _marker: core::marker::PhantomData,
25417 }
25418 }
25419}
25420impl<'a> PhysicalDeviceHostQueryResetFeaturesBuilder<'a> {
25421 #[inline]
25422 pub fn host_query_reset(mut self, value: bool) -> Self {
25423 self.inner.host_query_reset = value as u32;
25424 self
25425 }
25426 #[inline]
25428 pub fn push_next<T: ExtendsPhysicalDeviceHostQueryResetFeatures>(
25429 mut self,
25430 next: &'a mut T,
25431 ) -> Self {
25432 unsafe {
25433 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25434 (*next_ptr).p_next = self.inner.p_next as *mut _;
25435 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25436 core::ffi::c_void,
25437 >(next_ptr);
25438 }
25439 self
25440 }
25441}
25442impl<'a> core::ops::Deref for PhysicalDeviceHostQueryResetFeaturesBuilder<'a> {
25443 type Target = PhysicalDeviceHostQueryResetFeatures;
25444 #[inline]
25445 fn deref(&self) -> &Self::Target {
25446 &self.inner
25447 }
25448}
25449impl<'a> core::ops::DerefMut for PhysicalDeviceHostQueryResetFeaturesBuilder<'a> {
25450 #[inline]
25451 fn deref_mut(&mut self) -> &mut Self::Target {
25452 &mut self.inner
25453 }
25454}
25455pub struct NativeBufferUsage2ANDROIDBuilder {
25457 inner: NativeBufferUsage2ANDROID,
25458}
25459impl NativeBufferUsage2ANDROID {
25460 #[inline]
25462 pub fn builder() -> NativeBufferUsage2ANDROIDBuilder {
25463 NativeBufferUsage2ANDROIDBuilder {
25464 inner: NativeBufferUsage2ANDROID {
25465 ..Default::default()
25466 },
25467 }
25468 }
25469}
25470impl NativeBufferUsage2ANDROIDBuilder {
25471 #[inline]
25472 pub fn consumer(mut self, value: u64) -> Self {
25473 self.inner.consumer = value;
25474 self
25475 }
25476 #[inline]
25477 pub fn producer(mut self, value: u64) -> Self {
25478 self.inner.producer = value;
25479 self
25480 }
25481}
25482impl core::ops::Deref for NativeBufferUsage2ANDROIDBuilder {
25483 type Target = NativeBufferUsage2ANDROID;
25484 #[inline]
25485 fn deref(&self) -> &Self::Target {
25486 &self.inner
25487 }
25488}
25489impl core::ops::DerefMut for NativeBufferUsage2ANDROIDBuilder {
25490 #[inline]
25491 fn deref_mut(&mut self) -> &mut Self::Target {
25492 &mut self.inner
25493 }
25494}
25495pub struct NativeBufferANDROIDBuilder<'a> {
25497 inner: NativeBufferANDROID,
25498 _marker: core::marker::PhantomData<&'a ()>,
25499}
25500impl NativeBufferANDROID {
25501 #[inline]
25503 pub fn builder<'a>() -> NativeBufferANDROIDBuilder<'a> {
25504 NativeBufferANDROIDBuilder {
25505 inner: NativeBufferANDROID {
25506 s_type: Default::default(),
25507 ..Default::default()
25508 },
25509 _marker: core::marker::PhantomData,
25510 }
25511 }
25512}
25513impl<'a> NativeBufferANDROIDBuilder<'a> {
25514 #[inline]
25515 pub fn handle(mut self, value: *const core::ffi::c_void) -> Self {
25516 self.inner.handle = value;
25517 self
25518 }
25519 #[inline]
25520 pub fn stride(mut self, value: core::ffi::c_int) -> Self {
25521 self.inner.stride = value;
25522 self
25523 }
25524 #[inline]
25525 pub fn format(mut self, value: core::ffi::c_int) -> Self {
25526 self.inner.format = value;
25527 self
25528 }
25529 #[inline]
25530 pub fn usage(mut self, value: core::ffi::c_int) -> Self {
25531 self.inner.usage = value;
25532 self
25533 }
25534 #[inline]
25535 pub fn usage2(mut self, value: NativeBufferUsage2ANDROID) -> Self {
25536 self.inner.usage2 = value;
25537 self
25538 }
25539 #[inline]
25541 pub fn push_next<T: ExtendsNativeBufferANDROID>(mut self, next: &'a mut T) -> Self {
25542 unsafe {
25543 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25544 (*next_ptr).p_next = self.inner.p_next as *mut _;
25545 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25546 core::ffi::c_void,
25547 >(next_ptr) as *const _;
25548 }
25549 self
25550 }
25551}
25552impl<'a> core::ops::Deref for NativeBufferANDROIDBuilder<'a> {
25553 type Target = NativeBufferANDROID;
25554 #[inline]
25555 fn deref(&self) -> &Self::Target {
25556 &self.inner
25557 }
25558}
25559impl<'a> core::ops::DerefMut for NativeBufferANDROIDBuilder<'a> {
25560 #[inline]
25561 fn deref_mut(&mut self) -> &mut Self::Target {
25562 &mut self.inner
25563 }
25564}
25565pub struct SwapchainImageCreateInfoANDROIDBuilder<'a> {
25567 inner: SwapchainImageCreateInfoANDROID,
25568 _marker: core::marker::PhantomData<&'a ()>,
25569}
25570impl SwapchainImageCreateInfoANDROID {
25571 #[inline]
25573 pub fn builder<'a>() -> SwapchainImageCreateInfoANDROIDBuilder<'a> {
25574 SwapchainImageCreateInfoANDROIDBuilder {
25575 inner: SwapchainImageCreateInfoANDROID {
25576 s_type: Default::default(),
25577 ..Default::default()
25578 },
25579 _marker: core::marker::PhantomData,
25580 }
25581 }
25582}
25583impl<'a> SwapchainImageCreateInfoANDROIDBuilder<'a> {
25584 #[inline]
25585 pub fn usage(mut self, value: SwapchainImageUsageFlagsANDROID) -> Self {
25586 self.inner.usage = value;
25587 self
25588 }
25589 #[inline]
25591 pub fn push_next<T: ExtendsSwapchainImageCreateInfoANDROID>(
25592 mut self,
25593 next: &'a mut T,
25594 ) -> Self {
25595 unsafe {
25596 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25597 (*next_ptr).p_next = self.inner.p_next as *mut _;
25598 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25599 core::ffi::c_void,
25600 >(next_ptr) as *const _;
25601 }
25602 self
25603 }
25604}
25605impl<'a> core::ops::Deref for SwapchainImageCreateInfoANDROIDBuilder<'a> {
25606 type Target = SwapchainImageCreateInfoANDROID;
25607 #[inline]
25608 fn deref(&self) -> &Self::Target {
25609 &self.inner
25610 }
25611}
25612impl<'a> core::ops::DerefMut for SwapchainImageCreateInfoANDROIDBuilder<'a> {
25613 #[inline]
25614 fn deref_mut(&mut self) -> &mut Self::Target {
25615 &mut self.inner
25616 }
25617}
25618pub struct PhysicalDevicePresentationPropertiesANDROIDBuilder<'a> {
25620 inner: PhysicalDevicePresentationPropertiesANDROID,
25621 _marker: core::marker::PhantomData<&'a ()>,
25622}
25623impl PhysicalDevicePresentationPropertiesANDROID {
25624 #[inline]
25626 pub fn builder<'a>() -> PhysicalDevicePresentationPropertiesANDROIDBuilder<'a> {
25627 PhysicalDevicePresentationPropertiesANDROIDBuilder {
25628 inner: PhysicalDevicePresentationPropertiesANDROID {
25629 s_type: Default::default(),
25630 ..Default::default()
25631 },
25632 _marker: core::marker::PhantomData,
25633 }
25634 }
25635}
25636impl<'a> PhysicalDevicePresentationPropertiesANDROIDBuilder<'a> {
25637 #[inline]
25638 pub fn shared_image(mut self, value: bool) -> Self {
25639 self.inner.shared_image = value as u32;
25640 self
25641 }
25642}
25643impl<'a> core::ops::Deref for PhysicalDevicePresentationPropertiesANDROIDBuilder<'a> {
25644 type Target = PhysicalDevicePresentationPropertiesANDROID;
25645 #[inline]
25646 fn deref(&self) -> &Self::Target {
25647 &self.inner
25648 }
25649}
25650impl<'a> core::ops::DerefMut for PhysicalDevicePresentationPropertiesANDROIDBuilder<'a> {
25651 #[inline]
25652 fn deref_mut(&mut self) -> &mut Self::Target {
25653 &mut self.inner
25654 }
25655}
25656pub struct ShaderResourceUsageAMDBuilder {
25658 inner: ShaderResourceUsageAMD,
25659}
25660impl ShaderResourceUsageAMD {
25661 #[inline]
25663 pub fn builder() -> ShaderResourceUsageAMDBuilder {
25664 ShaderResourceUsageAMDBuilder {
25665 inner: ShaderResourceUsageAMD {
25666 ..Default::default()
25667 },
25668 }
25669 }
25670}
25671impl ShaderResourceUsageAMDBuilder {
25672 #[inline]
25673 pub fn num_used_vgprs(mut self, value: u32) -> Self {
25674 self.inner.num_used_vgprs = value;
25675 self
25676 }
25677 #[inline]
25678 pub fn num_used_sgprs(mut self, value: u32) -> Self {
25679 self.inner.num_used_sgprs = value;
25680 self
25681 }
25682 #[inline]
25683 pub fn lds_size_per_local_work_group(mut self, value: u32) -> Self {
25684 self.inner.lds_size_per_local_work_group = value;
25685 self
25686 }
25687 #[inline]
25688 pub fn lds_usage_size_in_bytes(mut self, value: usize) -> Self {
25689 self.inner.lds_usage_size_in_bytes = value;
25690 self
25691 }
25692 #[inline]
25693 pub fn scratch_mem_usage_in_bytes(mut self, value: usize) -> Self {
25694 self.inner.scratch_mem_usage_in_bytes = value;
25695 self
25696 }
25697}
25698impl core::ops::Deref for ShaderResourceUsageAMDBuilder {
25699 type Target = ShaderResourceUsageAMD;
25700 #[inline]
25701 fn deref(&self) -> &Self::Target {
25702 &self.inner
25703 }
25704}
25705impl core::ops::DerefMut for ShaderResourceUsageAMDBuilder {
25706 #[inline]
25707 fn deref_mut(&mut self) -> &mut Self::Target {
25708 &mut self.inner
25709 }
25710}
25711pub struct ShaderStatisticsInfoAMDBuilder {
25713 inner: ShaderStatisticsInfoAMD,
25714}
25715impl ShaderStatisticsInfoAMD {
25716 #[inline]
25718 pub fn builder() -> ShaderStatisticsInfoAMDBuilder {
25719 ShaderStatisticsInfoAMDBuilder {
25720 inner: ShaderStatisticsInfoAMD {
25721 ..Default::default()
25722 },
25723 }
25724 }
25725}
25726impl ShaderStatisticsInfoAMDBuilder {
25727 #[inline]
25728 pub fn shader_stage_mask(mut self, value: ShaderStageFlags) -> Self {
25729 self.inner.shader_stage_mask = value;
25730 self
25731 }
25732 #[inline]
25733 pub fn resource_usage(mut self, value: ShaderResourceUsageAMD) -> Self {
25734 self.inner.resource_usage = value;
25735 self
25736 }
25737 #[inline]
25738 pub fn num_physical_vgprs(mut self, value: u32) -> Self {
25739 self.inner.num_physical_vgprs = value;
25740 self
25741 }
25742 #[inline]
25743 pub fn num_physical_sgprs(mut self, value: u32) -> Self {
25744 self.inner.num_physical_sgprs = value;
25745 self
25746 }
25747 #[inline]
25748 pub fn num_available_vgprs(mut self, value: u32) -> Self {
25749 self.inner.num_available_vgprs = value;
25750 self
25751 }
25752 #[inline]
25753 pub fn num_available_sgprs(mut self, value: u32) -> Self {
25754 self.inner.num_available_sgprs = value;
25755 self
25756 }
25757 #[inline]
25758 pub fn compute_work_group_size(mut self, value: [u32; 3usize]) -> Self {
25759 self.inner.compute_work_group_size = value;
25760 self
25761 }
25762}
25763impl core::ops::Deref for ShaderStatisticsInfoAMDBuilder {
25764 type Target = ShaderStatisticsInfoAMD;
25765 #[inline]
25766 fn deref(&self) -> &Self::Target {
25767 &self.inner
25768 }
25769}
25770impl core::ops::DerefMut for ShaderStatisticsInfoAMDBuilder {
25771 #[inline]
25772 fn deref_mut(&mut self) -> &mut Self::Target {
25773 &mut self.inner
25774 }
25775}
25776pub struct DeviceQueueGlobalPriorityCreateInfoBuilder<'a> {
25778 inner: DeviceQueueGlobalPriorityCreateInfo,
25779 _marker: core::marker::PhantomData<&'a ()>,
25780}
25781impl DeviceQueueGlobalPriorityCreateInfo {
25782 #[inline]
25784 pub fn builder<'a>() -> DeviceQueueGlobalPriorityCreateInfoBuilder<'a> {
25785 DeviceQueueGlobalPriorityCreateInfoBuilder {
25786 inner: DeviceQueueGlobalPriorityCreateInfo {
25787 s_type: StructureType::from_raw(1000174000i32),
25788 ..Default::default()
25789 },
25790 _marker: core::marker::PhantomData,
25791 }
25792 }
25793}
25794impl<'a> DeviceQueueGlobalPriorityCreateInfoBuilder<'a> {
25795 #[inline]
25796 pub fn global_priority(mut self, value: QueueGlobalPriority) -> Self {
25797 self.inner.global_priority = value;
25798 self
25799 }
25800 #[inline]
25802 pub fn push_next<T: ExtendsDeviceQueueGlobalPriorityCreateInfo>(
25803 mut self,
25804 next: &'a mut T,
25805 ) -> Self {
25806 unsafe {
25807 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25808 (*next_ptr).p_next = self.inner.p_next as *mut _;
25809 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25810 core::ffi::c_void,
25811 >(next_ptr) as *const _;
25812 }
25813 self
25814 }
25815}
25816impl<'a> core::ops::Deref for DeviceQueueGlobalPriorityCreateInfoBuilder<'a> {
25817 type Target = DeviceQueueGlobalPriorityCreateInfo;
25818 #[inline]
25819 fn deref(&self) -> &Self::Target {
25820 &self.inner
25821 }
25822}
25823impl<'a> core::ops::DerefMut for DeviceQueueGlobalPriorityCreateInfoBuilder<'a> {
25824 #[inline]
25825 fn deref_mut(&mut self) -> &mut Self::Target {
25826 &mut self.inner
25827 }
25828}
25829pub struct PhysicalDeviceGlobalPriorityQueryFeaturesBuilder<'a> {
25831 inner: PhysicalDeviceGlobalPriorityQueryFeatures,
25832 _marker: core::marker::PhantomData<&'a ()>,
25833}
25834impl PhysicalDeviceGlobalPriorityQueryFeatures {
25835 #[inline]
25837 pub fn builder<'a>() -> PhysicalDeviceGlobalPriorityQueryFeaturesBuilder<'a> {
25838 PhysicalDeviceGlobalPriorityQueryFeaturesBuilder {
25839 inner: PhysicalDeviceGlobalPriorityQueryFeatures {
25840 s_type: StructureType::from_raw(1000388000i32),
25841 ..Default::default()
25842 },
25843 _marker: core::marker::PhantomData,
25844 }
25845 }
25846}
25847impl<'a> PhysicalDeviceGlobalPriorityQueryFeaturesBuilder<'a> {
25848 #[inline]
25849 pub fn global_priority_query(mut self, value: bool) -> Self {
25850 self.inner.global_priority_query = value as u32;
25851 self
25852 }
25853 #[inline]
25855 pub fn push_next<T: ExtendsPhysicalDeviceGlobalPriorityQueryFeatures>(
25856 mut self,
25857 next: &'a mut T,
25858 ) -> Self {
25859 unsafe {
25860 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25861 (*next_ptr).p_next = self.inner.p_next as *mut _;
25862 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25863 core::ffi::c_void,
25864 >(next_ptr);
25865 }
25866 self
25867 }
25868}
25869impl<'a> core::ops::Deref for PhysicalDeviceGlobalPriorityQueryFeaturesBuilder<'a> {
25870 type Target = PhysicalDeviceGlobalPriorityQueryFeatures;
25871 #[inline]
25872 fn deref(&self) -> &Self::Target {
25873 &self.inner
25874 }
25875}
25876impl<'a> core::ops::DerefMut for PhysicalDeviceGlobalPriorityQueryFeaturesBuilder<'a> {
25877 #[inline]
25878 fn deref_mut(&mut self) -> &mut Self::Target {
25879 &mut self.inner
25880 }
25881}
25882pub struct QueueFamilyGlobalPriorityPropertiesBuilder<'a> {
25884 inner: QueueFamilyGlobalPriorityProperties,
25885 _marker: core::marker::PhantomData<&'a ()>,
25886}
25887impl QueueFamilyGlobalPriorityProperties {
25888 #[inline]
25890 pub fn builder<'a>() -> QueueFamilyGlobalPriorityPropertiesBuilder<'a> {
25891 QueueFamilyGlobalPriorityPropertiesBuilder {
25892 inner: QueueFamilyGlobalPriorityProperties {
25893 s_type: StructureType::from_raw(1000388001i32),
25894 ..Default::default()
25895 },
25896 _marker: core::marker::PhantomData,
25897 }
25898 }
25899}
25900impl<'a> QueueFamilyGlobalPriorityPropertiesBuilder<'a> {
25901 #[inline]
25902 pub fn priority_count(mut self, value: u32) -> Self {
25903 self.inner.priority_count = value;
25904 self
25905 }
25906 #[inline]
25907 pub fn priorities(
25908 mut self,
25909 value: [QueueGlobalPriority; MAX_GLOBAL_PRIORITY_SIZE as usize],
25910 ) -> Self {
25911 self.inner.priorities = value;
25912 self
25913 }
25914}
25915impl<'a> core::ops::Deref for QueueFamilyGlobalPriorityPropertiesBuilder<'a> {
25916 type Target = QueueFamilyGlobalPriorityProperties;
25917 #[inline]
25918 fn deref(&self) -> &Self::Target {
25919 &self.inner
25920 }
25921}
25922impl<'a> core::ops::DerefMut for QueueFamilyGlobalPriorityPropertiesBuilder<'a> {
25923 #[inline]
25924 fn deref_mut(&mut self) -> &mut Self::Target {
25925 &mut self.inner
25926 }
25927}
25928pub struct DebugUtilsObjectNameInfoEXTBuilder<'a> {
25930 inner: DebugUtilsObjectNameInfoEXT,
25931 _marker: core::marker::PhantomData<&'a ()>,
25932}
25933impl DebugUtilsObjectNameInfoEXT {
25934 #[inline]
25936 pub fn builder<'a>() -> DebugUtilsObjectNameInfoEXTBuilder<'a> {
25937 DebugUtilsObjectNameInfoEXTBuilder {
25938 inner: DebugUtilsObjectNameInfoEXT {
25939 s_type: StructureType::from_raw(1000128000i32),
25940 ..Default::default()
25941 },
25942 _marker: core::marker::PhantomData,
25943 }
25944 }
25945}
25946impl<'a> DebugUtilsObjectNameInfoEXTBuilder<'a> {
25947 #[inline]
25948 pub fn object_type(mut self, value: ObjectType) -> Self {
25949 self.inner.object_type = value;
25950 self
25951 }
25952 #[inline]
25953 pub fn object_handle(mut self, value: u64) -> Self {
25954 self.inner.object_handle = value;
25955 self
25956 }
25957 #[inline]
25958 pub fn object_name(mut self, value: &'a core::ffi::CStr) -> Self {
25959 self.inner.p_object_name = value.as_ptr();
25960 self
25961 }
25962 #[inline]
25964 pub fn push_next<T: ExtendsDebugUtilsObjectNameInfoEXT>(
25965 mut self,
25966 next: &'a mut T,
25967 ) -> Self {
25968 unsafe {
25969 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
25970 (*next_ptr).p_next = self.inner.p_next as *mut _;
25971 self.inner.p_next = <*mut BaseOutStructure>::cast::<
25972 core::ffi::c_void,
25973 >(next_ptr) as *const _;
25974 }
25975 self
25976 }
25977}
25978impl<'a> core::ops::Deref for DebugUtilsObjectNameInfoEXTBuilder<'a> {
25979 type Target = DebugUtilsObjectNameInfoEXT;
25980 #[inline]
25981 fn deref(&self) -> &Self::Target {
25982 &self.inner
25983 }
25984}
25985impl<'a> core::ops::DerefMut for DebugUtilsObjectNameInfoEXTBuilder<'a> {
25986 #[inline]
25987 fn deref_mut(&mut self) -> &mut Self::Target {
25988 &mut self.inner
25989 }
25990}
25991pub struct DebugUtilsObjectTagInfoEXTBuilder<'a> {
25993 inner: DebugUtilsObjectTagInfoEXT,
25994 _marker: core::marker::PhantomData<&'a ()>,
25995}
25996impl DebugUtilsObjectTagInfoEXT {
25997 #[inline]
25999 pub fn builder<'a>() -> DebugUtilsObjectTagInfoEXTBuilder<'a> {
26000 DebugUtilsObjectTagInfoEXTBuilder {
26001 inner: DebugUtilsObjectTagInfoEXT {
26002 s_type: StructureType::from_raw(1000128001i32),
26003 ..Default::default()
26004 },
26005 _marker: core::marker::PhantomData,
26006 }
26007 }
26008}
26009impl<'a> DebugUtilsObjectTagInfoEXTBuilder<'a> {
26010 #[inline]
26011 pub fn object_type(mut self, value: ObjectType) -> Self {
26012 self.inner.object_type = value;
26013 self
26014 }
26015 #[inline]
26016 pub fn object_handle(mut self, value: u64) -> Self {
26017 self.inner.object_handle = value;
26018 self
26019 }
26020 #[inline]
26021 pub fn tag_name(mut self, value: u64) -> Self {
26022 self.inner.tag_name = value;
26023 self
26024 }
26025 #[inline]
26026 pub fn tag(mut self, slice: &'a [core::ffi::c_void]) -> Self {
26027 self.inner.tag_size = slice.len();
26028 self.inner.p_tag = slice.as_ptr();
26029 self
26030 }
26031 #[inline]
26033 pub fn push_next<T: ExtendsDebugUtilsObjectTagInfoEXT>(
26034 mut self,
26035 next: &'a mut T,
26036 ) -> Self {
26037 unsafe {
26038 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26039 (*next_ptr).p_next = self.inner.p_next as *mut _;
26040 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26041 core::ffi::c_void,
26042 >(next_ptr) as *const _;
26043 }
26044 self
26045 }
26046}
26047impl<'a> core::ops::Deref for DebugUtilsObjectTagInfoEXTBuilder<'a> {
26048 type Target = DebugUtilsObjectTagInfoEXT;
26049 #[inline]
26050 fn deref(&self) -> &Self::Target {
26051 &self.inner
26052 }
26053}
26054impl<'a> core::ops::DerefMut for DebugUtilsObjectTagInfoEXTBuilder<'a> {
26055 #[inline]
26056 fn deref_mut(&mut self) -> &mut Self::Target {
26057 &mut self.inner
26058 }
26059}
26060pub struct DebugUtilsLabelEXTBuilder<'a> {
26062 inner: DebugUtilsLabelEXT,
26063 _marker: core::marker::PhantomData<&'a ()>,
26064}
26065impl DebugUtilsLabelEXT {
26066 #[inline]
26068 pub fn builder<'a>() -> DebugUtilsLabelEXTBuilder<'a> {
26069 DebugUtilsLabelEXTBuilder {
26070 inner: DebugUtilsLabelEXT {
26071 s_type: StructureType::from_raw(1000128002i32),
26072 ..Default::default()
26073 },
26074 _marker: core::marker::PhantomData,
26075 }
26076 }
26077}
26078impl<'a> DebugUtilsLabelEXTBuilder<'a> {
26079 #[inline]
26080 pub fn label_name(mut self, value: &'a core::ffi::CStr) -> Self {
26081 self.inner.p_label_name = value.as_ptr();
26082 self
26083 }
26084 #[inline]
26085 pub fn color(mut self, value: [f32; 4usize]) -> Self {
26086 self.inner.color = value;
26087 self
26088 }
26089 #[inline]
26091 pub fn push_next<T: ExtendsDebugUtilsLabelEXT>(mut self, next: &'a mut T) -> Self {
26092 unsafe {
26093 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26094 (*next_ptr).p_next = self.inner.p_next as *mut _;
26095 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26096 core::ffi::c_void,
26097 >(next_ptr) as *const _;
26098 }
26099 self
26100 }
26101}
26102impl<'a> core::ops::Deref for DebugUtilsLabelEXTBuilder<'a> {
26103 type Target = DebugUtilsLabelEXT;
26104 #[inline]
26105 fn deref(&self) -> &Self::Target {
26106 &self.inner
26107 }
26108}
26109impl<'a> core::ops::DerefMut for DebugUtilsLabelEXTBuilder<'a> {
26110 #[inline]
26111 fn deref_mut(&mut self) -> &mut Self::Target {
26112 &mut self.inner
26113 }
26114}
26115pub struct DebugUtilsMessengerCreateInfoEXTBuilder<'a> {
26117 inner: DebugUtilsMessengerCreateInfoEXT,
26118 _marker: core::marker::PhantomData<&'a ()>,
26119}
26120impl DebugUtilsMessengerCreateInfoEXT {
26121 #[inline]
26123 pub fn builder<'a>() -> DebugUtilsMessengerCreateInfoEXTBuilder<'a> {
26124 DebugUtilsMessengerCreateInfoEXTBuilder {
26125 inner: DebugUtilsMessengerCreateInfoEXT {
26126 s_type: StructureType::from_raw(1000128004i32),
26127 ..Default::default()
26128 },
26129 _marker: core::marker::PhantomData,
26130 }
26131 }
26132}
26133impl<'a> DebugUtilsMessengerCreateInfoEXTBuilder<'a> {
26134 #[inline]
26135 pub fn flags(mut self, value: DebugUtilsMessengerCreateFlagsEXT) -> Self {
26136 self.inner.flags = value;
26137 self
26138 }
26139 #[inline]
26140 pub fn message_severity(mut self, value: DebugUtilsMessageSeverityFlagsEXT) -> Self {
26141 self.inner.message_severity = value;
26142 self
26143 }
26144 #[inline]
26145 pub fn message_type(mut self, value: DebugUtilsMessageTypeFlagsEXT) -> Self {
26146 self.inner.message_type = value;
26147 self
26148 }
26149 #[inline]
26150 pub fn pfn_user_callback(
26151 mut self,
26152 value: PFN_vkDebugUtilsMessengerCallbackEXT,
26153 ) -> Self {
26154 self.inner.pfn_user_callback = value;
26155 self
26156 }
26157 #[inline]
26158 pub fn user_data(mut self, value: *mut core::ffi::c_void) -> Self {
26159 self.inner.p_user_data = value;
26160 self
26161 }
26162 #[inline]
26164 pub fn push_next<T: ExtendsDebugUtilsMessengerCreateInfoEXT>(
26165 mut self,
26166 next: &'a mut T,
26167 ) -> Self {
26168 unsafe {
26169 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26170 (*next_ptr).p_next = self.inner.p_next as *mut _;
26171 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26172 core::ffi::c_void,
26173 >(next_ptr) as *const _;
26174 }
26175 self
26176 }
26177}
26178impl<'a> core::ops::Deref for DebugUtilsMessengerCreateInfoEXTBuilder<'a> {
26179 type Target = DebugUtilsMessengerCreateInfoEXT;
26180 #[inline]
26181 fn deref(&self) -> &Self::Target {
26182 &self.inner
26183 }
26184}
26185impl<'a> core::ops::DerefMut for DebugUtilsMessengerCreateInfoEXTBuilder<'a> {
26186 #[inline]
26187 fn deref_mut(&mut self) -> &mut Self::Target {
26188 &mut self.inner
26189 }
26190}
26191pub struct DebugUtilsMessengerCallbackDataEXTBuilder<'a> {
26193 inner: DebugUtilsMessengerCallbackDataEXT,
26194 _marker: core::marker::PhantomData<&'a ()>,
26195}
26196impl DebugUtilsMessengerCallbackDataEXT {
26197 #[inline]
26199 pub fn builder<'a>() -> DebugUtilsMessengerCallbackDataEXTBuilder<'a> {
26200 DebugUtilsMessengerCallbackDataEXTBuilder {
26201 inner: DebugUtilsMessengerCallbackDataEXT {
26202 s_type: StructureType::from_raw(1000128003i32),
26203 ..Default::default()
26204 },
26205 _marker: core::marker::PhantomData,
26206 }
26207 }
26208}
26209impl<'a> DebugUtilsMessengerCallbackDataEXTBuilder<'a> {
26210 #[inline]
26211 pub fn flags(mut self, value: DebugUtilsMessengerCallbackDataFlagsEXT) -> Self {
26212 self.inner.flags = value;
26213 self
26214 }
26215 #[inline]
26216 pub fn message_id_name(mut self, value: &'a core::ffi::CStr) -> Self {
26217 self.inner.p_message_id_name = value.as_ptr();
26218 self
26219 }
26220 #[inline]
26221 pub fn message_id_number(mut self, value: i32) -> Self {
26222 self.inner.message_id_number = value;
26223 self
26224 }
26225 #[inline]
26226 pub fn message(mut self, value: &'a core::ffi::CStr) -> Self {
26227 self.inner.p_message = value.as_ptr();
26228 self
26229 }
26230 #[inline]
26231 pub fn queue_labels(mut self, slice: &'a [DebugUtilsLabelEXT]) -> Self {
26232 self.inner.queue_label_count = slice.len() as u32;
26233 self.inner.p_queue_labels = slice.as_ptr();
26234 self
26235 }
26236 #[inline]
26237 pub fn cmd_buf_labels(mut self, slice: &'a [DebugUtilsLabelEXT]) -> Self {
26238 self.inner.cmd_buf_label_count = slice.len() as u32;
26239 self.inner.p_cmd_buf_labels = slice.as_ptr();
26240 self
26241 }
26242 #[inline]
26243 pub fn objects(mut self, slice: &'a [DebugUtilsObjectNameInfoEXT]) -> Self {
26244 self.inner.object_count = slice.len() as u32;
26245 self.inner.p_objects = slice.as_ptr();
26246 self
26247 }
26248 #[inline]
26250 pub fn push_next<T: ExtendsDebugUtilsMessengerCallbackDataEXT>(
26251 mut self,
26252 next: &'a mut T,
26253 ) -> Self {
26254 unsafe {
26255 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26256 (*next_ptr).p_next = self.inner.p_next as *mut _;
26257 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26258 core::ffi::c_void,
26259 >(next_ptr) as *const _;
26260 }
26261 self
26262 }
26263}
26264impl<'a> core::ops::Deref for DebugUtilsMessengerCallbackDataEXTBuilder<'a> {
26265 type Target = DebugUtilsMessengerCallbackDataEXT;
26266 #[inline]
26267 fn deref(&self) -> &Self::Target {
26268 &self.inner
26269 }
26270}
26271impl<'a> core::ops::DerefMut for DebugUtilsMessengerCallbackDataEXTBuilder<'a> {
26272 #[inline]
26273 fn deref_mut(&mut self) -> &mut Self::Target {
26274 &mut self.inner
26275 }
26276}
26277pub struct PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder<'a> {
26279 inner: PhysicalDeviceDeviceMemoryReportFeaturesEXT,
26280 _marker: core::marker::PhantomData<&'a ()>,
26281}
26282impl PhysicalDeviceDeviceMemoryReportFeaturesEXT {
26283 #[inline]
26285 pub fn builder<'a>() -> PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder<'a> {
26286 PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder {
26287 inner: PhysicalDeviceDeviceMemoryReportFeaturesEXT {
26288 s_type: StructureType::from_raw(1000284000i32),
26289 ..Default::default()
26290 },
26291 _marker: core::marker::PhantomData,
26292 }
26293 }
26294}
26295impl<'a> PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder<'a> {
26296 #[inline]
26297 pub fn device_memory_report(mut self, value: bool) -> Self {
26298 self.inner.device_memory_report = value as u32;
26299 self
26300 }
26301 #[inline]
26303 pub fn push_next<T: ExtendsPhysicalDeviceDeviceMemoryReportFeaturesEXT>(
26304 mut self,
26305 next: &'a mut T,
26306 ) -> Self {
26307 unsafe {
26308 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26309 (*next_ptr).p_next = self.inner.p_next as *mut _;
26310 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26311 core::ffi::c_void,
26312 >(next_ptr);
26313 }
26314 self
26315 }
26316}
26317impl<'a> core::ops::Deref for PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder<'a> {
26318 type Target = PhysicalDeviceDeviceMemoryReportFeaturesEXT;
26319 #[inline]
26320 fn deref(&self) -> &Self::Target {
26321 &self.inner
26322 }
26323}
26324impl<'a> core::ops::DerefMut for PhysicalDeviceDeviceMemoryReportFeaturesEXTBuilder<'a> {
26325 #[inline]
26326 fn deref_mut(&mut self) -> &mut Self::Target {
26327 &mut self.inner
26328 }
26329}
26330pub struct DeviceDeviceMemoryReportCreateInfoEXTBuilder<'a> {
26332 inner: DeviceDeviceMemoryReportCreateInfoEXT,
26333 _marker: core::marker::PhantomData<&'a ()>,
26334}
26335impl DeviceDeviceMemoryReportCreateInfoEXT {
26336 #[inline]
26338 pub fn builder<'a>() -> DeviceDeviceMemoryReportCreateInfoEXTBuilder<'a> {
26339 DeviceDeviceMemoryReportCreateInfoEXTBuilder {
26340 inner: DeviceDeviceMemoryReportCreateInfoEXT {
26341 s_type: StructureType::from_raw(1000284001i32),
26342 ..Default::default()
26343 },
26344 _marker: core::marker::PhantomData,
26345 }
26346 }
26347}
26348impl<'a> DeviceDeviceMemoryReportCreateInfoEXTBuilder<'a> {
26349 #[inline]
26350 pub fn flags(mut self, value: DeviceMemoryReportFlagsEXT) -> Self {
26351 self.inner.flags = value;
26352 self
26353 }
26354 #[inline]
26355 pub fn pfn_user_callback(
26356 mut self,
26357 value: PFN_vkDeviceMemoryReportCallbackEXT,
26358 ) -> Self {
26359 self.inner.pfn_user_callback = value;
26360 self
26361 }
26362 #[inline]
26363 pub fn user_data(mut self, value: *mut core::ffi::c_void) -> Self {
26364 self.inner.p_user_data = value;
26365 self
26366 }
26367 #[inline]
26369 pub fn push_next<T: ExtendsDeviceDeviceMemoryReportCreateInfoEXT>(
26370 mut self,
26371 next: &'a mut T,
26372 ) -> Self {
26373 unsafe {
26374 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26375 (*next_ptr).p_next = self.inner.p_next as *mut _;
26376 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26377 core::ffi::c_void,
26378 >(next_ptr) as *const _;
26379 }
26380 self
26381 }
26382}
26383impl<'a> core::ops::Deref for DeviceDeviceMemoryReportCreateInfoEXTBuilder<'a> {
26384 type Target = DeviceDeviceMemoryReportCreateInfoEXT;
26385 #[inline]
26386 fn deref(&self) -> &Self::Target {
26387 &self.inner
26388 }
26389}
26390impl<'a> core::ops::DerefMut for DeviceDeviceMemoryReportCreateInfoEXTBuilder<'a> {
26391 #[inline]
26392 fn deref_mut(&mut self) -> &mut Self::Target {
26393 &mut self.inner
26394 }
26395}
26396pub struct DeviceMemoryReportCallbackDataEXTBuilder<'a> {
26398 inner: DeviceMemoryReportCallbackDataEXT,
26399 _marker: core::marker::PhantomData<&'a ()>,
26400}
26401impl DeviceMemoryReportCallbackDataEXT {
26402 #[inline]
26404 pub fn builder<'a>() -> DeviceMemoryReportCallbackDataEXTBuilder<'a> {
26405 DeviceMemoryReportCallbackDataEXTBuilder {
26406 inner: DeviceMemoryReportCallbackDataEXT {
26407 s_type: StructureType::from_raw(1000284002i32),
26408 ..Default::default()
26409 },
26410 _marker: core::marker::PhantomData,
26411 }
26412 }
26413}
26414impl<'a> DeviceMemoryReportCallbackDataEXTBuilder<'a> {
26415 #[inline]
26416 pub fn flags(mut self, value: DeviceMemoryReportFlagsEXT) -> Self {
26417 self.inner.flags = value;
26418 self
26419 }
26420 #[inline]
26421 pub fn r#type(mut self, value: DeviceMemoryReportEventTypeEXT) -> Self {
26422 self.inner.r#type = value;
26423 self
26424 }
26425 #[inline]
26426 pub fn memory_object_id(mut self, value: u64) -> Self {
26427 self.inner.memory_object_id = value;
26428 self
26429 }
26430 #[inline]
26431 pub fn size(mut self, value: u64) -> Self {
26432 self.inner.size = value;
26433 self
26434 }
26435 #[inline]
26436 pub fn object_type(mut self, value: ObjectType) -> Self {
26437 self.inner.object_type = value;
26438 self
26439 }
26440 #[inline]
26441 pub fn object_handle(mut self, value: u64) -> Self {
26442 self.inner.object_handle = value;
26443 self
26444 }
26445 #[inline]
26446 pub fn heap_index(mut self, value: u32) -> Self {
26447 self.inner.heap_index = value;
26448 self
26449 }
26450}
26451impl<'a> core::ops::Deref for DeviceMemoryReportCallbackDataEXTBuilder<'a> {
26452 type Target = DeviceMemoryReportCallbackDataEXT;
26453 #[inline]
26454 fn deref(&self) -> &Self::Target {
26455 &self.inner
26456 }
26457}
26458impl<'a> core::ops::DerefMut for DeviceMemoryReportCallbackDataEXTBuilder<'a> {
26459 #[inline]
26460 fn deref_mut(&mut self) -> &mut Self::Target {
26461 &mut self.inner
26462 }
26463}
26464pub struct ImportMemoryHostPointerInfoEXTBuilder<'a> {
26466 inner: ImportMemoryHostPointerInfoEXT,
26467 _marker: core::marker::PhantomData<&'a ()>,
26468}
26469impl ImportMemoryHostPointerInfoEXT {
26470 #[inline]
26472 pub fn builder<'a>() -> ImportMemoryHostPointerInfoEXTBuilder<'a> {
26473 ImportMemoryHostPointerInfoEXTBuilder {
26474 inner: ImportMemoryHostPointerInfoEXT {
26475 s_type: StructureType::from_raw(1000178000i32),
26476 ..Default::default()
26477 },
26478 _marker: core::marker::PhantomData,
26479 }
26480 }
26481}
26482impl<'a> ImportMemoryHostPointerInfoEXTBuilder<'a> {
26483 #[inline]
26484 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
26485 self.inner.handle_type = value;
26486 self
26487 }
26488 #[inline]
26489 pub fn host_pointer(mut self, value: *mut core::ffi::c_void) -> Self {
26490 self.inner.p_host_pointer = value;
26491 self
26492 }
26493 #[inline]
26495 pub fn push_next<T: ExtendsImportMemoryHostPointerInfoEXT>(
26496 mut self,
26497 next: &'a mut T,
26498 ) -> Self {
26499 unsafe {
26500 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26501 (*next_ptr).p_next = self.inner.p_next as *mut _;
26502 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26503 core::ffi::c_void,
26504 >(next_ptr) as *const _;
26505 }
26506 self
26507 }
26508}
26509impl<'a> core::ops::Deref for ImportMemoryHostPointerInfoEXTBuilder<'a> {
26510 type Target = ImportMemoryHostPointerInfoEXT;
26511 #[inline]
26512 fn deref(&self) -> &Self::Target {
26513 &self.inner
26514 }
26515}
26516impl<'a> core::ops::DerefMut for ImportMemoryHostPointerInfoEXTBuilder<'a> {
26517 #[inline]
26518 fn deref_mut(&mut self) -> &mut Self::Target {
26519 &mut self.inner
26520 }
26521}
26522pub struct MemoryHostPointerPropertiesEXTBuilder<'a> {
26524 inner: MemoryHostPointerPropertiesEXT,
26525 _marker: core::marker::PhantomData<&'a ()>,
26526}
26527impl MemoryHostPointerPropertiesEXT {
26528 #[inline]
26530 pub fn builder<'a>() -> MemoryHostPointerPropertiesEXTBuilder<'a> {
26531 MemoryHostPointerPropertiesEXTBuilder {
26532 inner: MemoryHostPointerPropertiesEXT {
26533 s_type: StructureType::from_raw(1000178001i32),
26534 ..Default::default()
26535 },
26536 _marker: core::marker::PhantomData,
26537 }
26538 }
26539}
26540impl<'a> MemoryHostPointerPropertiesEXTBuilder<'a> {
26541 #[inline]
26542 pub fn memory_type_bits(mut self, value: u32) -> Self {
26543 self.inner.memory_type_bits = value;
26544 self
26545 }
26546}
26547impl<'a> core::ops::Deref for MemoryHostPointerPropertiesEXTBuilder<'a> {
26548 type Target = MemoryHostPointerPropertiesEXT;
26549 #[inline]
26550 fn deref(&self) -> &Self::Target {
26551 &self.inner
26552 }
26553}
26554impl<'a> core::ops::DerefMut for MemoryHostPointerPropertiesEXTBuilder<'a> {
26555 #[inline]
26556 fn deref_mut(&mut self) -> &mut Self::Target {
26557 &mut self.inner
26558 }
26559}
26560pub struct PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder<'a> {
26562 inner: PhysicalDeviceExternalMemoryHostPropertiesEXT,
26563 _marker: core::marker::PhantomData<&'a ()>,
26564}
26565impl PhysicalDeviceExternalMemoryHostPropertiesEXT {
26566 #[inline]
26568 pub fn builder<'a>() -> PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder<'a> {
26569 PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder {
26570 inner: PhysicalDeviceExternalMemoryHostPropertiesEXT {
26571 s_type: StructureType::from_raw(1000178002i32),
26572 ..Default::default()
26573 },
26574 _marker: core::marker::PhantomData,
26575 }
26576 }
26577}
26578impl<'a> PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder<'a> {
26579 #[inline]
26580 pub fn min_imported_host_pointer_alignment(mut self, value: u64) -> Self {
26581 self.inner.min_imported_host_pointer_alignment = value;
26582 self
26583 }
26584}
26585impl<'a> core::ops::Deref for PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder<'a> {
26586 type Target = PhysicalDeviceExternalMemoryHostPropertiesEXT;
26587 #[inline]
26588 fn deref(&self) -> &Self::Target {
26589 &self.inner
26590 }
26591}
26592impl<'a> core::ops::DerefMut
26593for PhysicalDeviceExternalMemoryHostPropertiesEXTBuilder<'a> {
26594 #[inline]
26595 fn deref_mut(&mut self) -> &mut Self::Target {
26596 &mut self.inner
26597 }
26598}
26599pub struct PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder<'a> {
26601 inner: PhysicalDeviceConservativeRasterizationPropertiesEXT,
26602 _marker: core::marker::PhantomData<&'a ()>,
26603}
26604impl PhysicalDeviceConservativeRasterizationPropertiesEXT {
26605 #[inline]
26607 pub fn builder<'a>() -> PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder<
26608 'a,
26609 > {
26610 PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder {
26611 inner: PhysicalDeviceConservativeRasterizationPropertiesEXT {
26612 s_type: StructureType::from_raw(1000101000i32),
26613 ..Default::default()
26614 },
26615 _marker: core::marker::PhantomData,
26616 }
26617 }
26618}
26619impl<'a> PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder<'a> {
26620 #[inline]
26621 pub fn primitive_overestimation_size(mut self, value: f32) -> Self {
26622 self.inner.primitive_overestimation_size = value;
26623 self
26624 }
26625 #[inline]
26626 pub fn max_extra_primitive_overestimation_size(mut self, value: f32) -> Self {
26627 self.inner.max_extra_primitive_overestimation_size = value;
26628 self
26629 }
26630 #[inline]
26631 pub fn extra_primitive_overestimation_size_granularity(
26632 mut self,
26633 value: f32,
26634 ) -> Self {
26635 self.inner.extra_primitive_overestimation_size_granularity = value;
26636 self
26637 }
26638 #[inline]
26639 pub fn primitive_underestimation(mut self, value: bool) -> Self {
26640 self.inner.primitive_underestimation = value as u32;
26641 self
26642 }
26643 #[inline]
26644 pub fn conservative_point_and_line_rasterization(mut self, value: bool) -> Self {
26645 self.inner.conservative_point_and_line_rasterization = value as u32;
26646 self
26647 }
26648 #[inline]
26649 pub fn degenerate_triangles_rasterized(mut self, value: bool) -> Self {
26650 self.inner.degenerate_triangles_rasterized = value as u32;
26651 self
26652 }
26653 #[inline]
26654 pub fn degenerate_lines_rasterized(mut self, value: bool) -> Self {
26655 self.inner.degenerate_lines_rasterized = value as u32;
26656 self
26657 }
26658 #[inline]
26659 pub fn fully_covered_fragment_shader_input_variable(mut self, value: bool) -> Self {
26660 self.inner.fully_covered_fragment_shader_input_variable = value as u32;
26661 self
26662 }
26663 #[inline]
26664 pub fn conservative_rasterization_post_depth_coverage(
26665 mut self,
26666 value: bool,
26667 ) -> Self {
26668 self.inner.conservative_rasterization_post_depth_coverage = value as u32;
26669 self
26670 }
26671}
26672impl<'a> core::ops::Deref
26673for PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder<'a> {
26674 type Target = PhysicalDeviceConservativeRasterizationPropertiesEXT;
26675 #[inline]
26676 fn deref(&self) -> &Self::Target {
26677 &self.inner
26678 }
26679}
26680impl<'a> core::ops::DerefMut
26681for PhysicalDeviceConservativeRasterizationPropertiesEXTBuilder<'a> {
26682 #[inline]
26683 fn deref_mut(&mut self) -> &mut Self::Target {
26684 &mut self.inner
26685 }
26686}
26687pub struct CalibratedTimestampInfoKHRBuilder<'a> {
26689 inner: CalibratedTimestampInfoKHR,
26690 _marker: core::marker::PhantomData<&'a ()>,
26691}
26692impl CalibratedTimestampInfoKHR {
26693 #[inline]
26695 pub fn builder<'a>() -> CalibratedTimestampInfoKHRBuilder<'a> {
26696 CalibratedTimestampInfoKHRBuilder {
26697 inner: CalibratedTimestampInfoKHR {
26698 s_type: StructureType::from_raw(1000184000i32),
26699 ..Default::default()
26700 },
26701 _marker: core::marker::PhantomData,
26702 }
26703 }
26704}
26705impl<'a> CalibratedTimestampInfoKHRBuilder<'a> {
26706 #[inline]
26707 pub fn time_domain(mut self, value: TimeDomainKHR) -> Self {
26708 self.inner.time_domain = value;
26709 self
26710 }
26711 #[inline]
26713 pub fn push_next<T: ExtendsCalibratedTimestampInfoKHR>(
26714 mut self,
26715 next: &'a mut T,
26716 ) -> Self {
26717 unsafe {
26718 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26719 (*next_ptr).p_next = self.inner.p_next as *mut _;
26720 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26721 core::ffi::c_void,
26722 >(next_ptr) as *const _;
26723 }
26724 self
26725 }
26726}
26727impl<'a> core::ops::Deref for CalibratedTimestampInfoKHRBuilder<'a> {
26728 type Target = CalibratedTimestampInfoKHR;
26729 #[inline]
26730 fn deref(&self) -> &Self::Target {
26731 &self.inner
26732 }
26733}
26734impl<'a> core::ops::DerefMut for CalibratedTimestampInfoKHRBuilder<'a> {
26735 #[inline]
26736 fn deref_mut(&mut self) -> &mut Self::Target {
26737 &mut self.inner
26738 }
26739}
26740pub struct PhysicalDeviceShaderCorePropertiesAMDBuilder<'a> {
26742 inner: PhysicalDeviceShaderCorePropertiesAMD,
26743 _marker: core::marker::PhantomData<&'a ()>,
26744}
26745impl PhysicalDeviceShaderCorePropertiesAMD {
26746 #[inline]
26748 pub fn builder<'a>() -> PhysicalDeviceShaderCorePropertiesAMDBuilder<'a> {
26749 PhysicalDeviceShaderCorePropertiesAMDBuilder {
26750 inner: PhysicalDeviceShaderCorePropertiesAMD {
26751 s_type: StructureType::from_raw(1000185000i32),
26752 ..Default::default()
26753 },
26754 _marker: core::marker::PhantomData,
26755 }
26756 }
26757}
26758impl<'a> PhysicalDeviceShaderCorePropertiesAMDBuilder<'a> {
26759 #[inline]
26760 pub fn shader_engine_count(mut self, value: u32) -> Self {
26761 self.inner.shader_engine_count = value;
26762 self
26763 }
26764 #[inline]
26765 pub fn shader_arrays_per_engine_count(mut self, value: u32) -> Self {
26766 self.inner.shader_arrays_per_engine_count = value;
26767 self
26768 }
26769 #[inline]
26770 pub fn compute_units_per_shader_array(mut self, value: u32) -> Self {
26771 self.inner.compute_units_per_shader_array = value;
26772 self
26773 }
26774 #[inline]
26775 pub fn simd_per_compute_unit(mut self, value: u32) -> Self {
26776 self.inner.simd_per_compute_unit = value;
26777 self
26778 }
26779 #[inline]
26780 pub fn wavefronts_per_simd(mut self, value: u32) -> Self {
26781 self.inner.wavefronts_per_simd = value;
26782 self
26783 }
26784 #[inline]
26785 pub fn wavefront_size(mut self, value: u32) -> Self {
26786 self.inner.wavefront_size = value;
26787 self
26788 }
26789 #[inline]
26790 pub fn sgprs_per_simd(mut self, value: u32) -> Self {
26791 self.inner.sgprs_per_simd = value;
26792 self
26793 }
26794 #[inline]
26795 pub fn min_sgpr_allocation(mut self, value: u32) -> Self {
26796 self.inner.min_sgpr_allocation = value;
26797 self
26798 }
26799 #[inline]
26800 pub fn max_sgpr_allocation(mut self, value: u32) -> Self {
26801 self.inner.max_sgpr_allocation = value;
26802 self
26803 }
26804 #[inline]
26805 pub fn sgpr_allocation_granularity(mut self, value: u32) -> Self {
26806 self.inner.sgpr_allocation_granularity = value;
26807 self
26808 }
26809 #[inline]
26810 pub fn vgprs_per_simd(mut self, value: u32) -> Self {
26811 self.inner.vgprs_per_simd = value;
26812 self
26813 }
26814 #[inline]
26815 pub fn min_vgpr_allocation(mut self, value: u32) -> Self {
26816 self.inner.min_vgpr_allocation = value;
26817 self
26818 }
26819 #[inline]
26820 pub fn max_vgpr_allocation(mut self, value: u32) -> Self {
26821 self.inner.max_vgpr_allocation = value;
26822 self
26823 }
26824 #[inline]
26825 pub fn vgpr_allocation_granularity(mut self, value: u32) -> Self {
26826 self.inner.vgpr_allocation_granularity = value;
26827 self
26828 }
26829}
26830impl<'a> core::ops::Deref for PhysicalDeviceShaderCorePropertiesAMDBuilder<'a> {
26831 type Target = PhysicalDeviceShaderCorePropertiesAMD;
26832 #[inline]
26833 fn deref(&self) -> &Self::Target {
26834 &self.inner
26835 }
26836}
26837impl<'a> core::ops::DerefMut for PhysicalDeviceShaderCorePropertiesAMDBuilder<'a> {
26838 #[inline]
26839 fn deref_mut(&mut self) -> &mut Self::Target {
26840 &mut self.inner
26841 }
26842}
26843pub struct PhysicalDeviceShaderCoreProperties2AMDBuilder<'a> {
26845 inner: PhysicalDeviceShaderCoreProperties2AMD,
26846 _marker: core::marker::PhantomData<&'a ()>,
26847}
26848impl PhysicalDeviceShaderCoreProperties2AMD {
26849 #[inline]
26851 pub fn builder<'a>() -> PhysicalDeviceShaderCoreProperties2AMDBuilder<'a> {
26852 PhysicalDeviceShaderCoreProperties2AMDBuilder {
26853 inner: PhysicalDeviceShaderCoreProperties2AMD {
26854 s_type: StructureType::from_raw(1000227000i32),
26855 ..Default::default()
26856 },
26857 _marker: core::marker::PhantomData,
26858 }
26859 }
26860}
26861impl<'a> PhysicalDeviceShaderCoreProperties2AMDBuilder<'a> {
26862 #[inline]
26863 pub fn shader_core_features(mut self, value: ShaderCorePropertiesFlagsAMD) -> Self {
26864 self.inner.shader_core_features = value;
26865 self
26866 }
26867 #[inline]
26868 pub fn active_compute_unit_count(mut self, value: u32) -> Self {
26869 self.inner.active_compute_unit_count = value;
26870 self
26871 }
26872}
26873impl<'a> core::ops::Deref for PhysicalDeviceShaderCoreProperties2AMDBuilder<'a> {
26874 type Target = PhysicalDeviceShaderCoreProperties2AMD;
26875 #[inline]
26876 fn deref(&self) -> &Self::Target {
26877 &self.inner
26878 }
26879}
26880impl<'a> core::ops::DerefMut for PhysicalDeviceShaderCoreProperties2AMDBuilder<'a> {
26881 #[inline]
26882 fn deref_mut(&mut self) -> &mut Self::Target {
26883 &mut self.inner
26884 }
26885}
26886pub struct PipelineRasterizationConservativeStateCreateInfoEXTBuilder<'a> {
26888 inner: PipelineRasterizationConservativeStateCreateInfoEXT,
26889 _marker: core::marker::PhantomData<&'a ()>,
26890}
26891impl PipelineRasterizationConservativeStateCreateInfoEXT {
26892 #[inline]
26894 pub fn builder<'a>() -> PipelineRasterizationConservativeStateCreateInfoEXTBuilder<
26895 'a,
26896 > {
26897 PipelineRasterizationConservativeStateCreateInfoEXTBuilder {
26898 inner: PipelineRasterizationConservativeStateCreateInfoEXT {
26899 s_type: StructureType::from_raw(1000101001i32),
26900 ..Default::default()
26901 },
26902 _marker: core::marker::PhantomData,
26903 }
26904 }
26905}
26906impl<'a> PipelineRasterizationConservativeStateCreateInfoEXTBuilder<'a> {
26907 #[inline]
26908 pub fn flags(
26909 mut self,
26910 value: PipelineRasterizationConservativeStateCreateFlagsEXT,
26911 ) -> Self {
26912 self.inner.flags = value;
26913 self
26914 }
26915 #[inline]
26916 pub fn conservative_rasterization_mode(
26917 mut self,
26918 value: ConservativeRasterizationModeEXT,
26919 ) -> Self {
26920 self.inner.conservative_rasterization_mode = value;
26921 self
26922 }
26923 #[inline]
26924 pub fn extra_primitive_overestimation_size(mut self, value: f32) -> Self {
26925 self.inner.extra_primitive_overestimation_size = value;
26926 self
26927 }
26928 #[inline]
26930 pub fn push_next<T: ExtendsPipelineRasterizationConservativeStateCreateInfoEXT>(
26931 mut self,
26932 next: &'a mut T,
26933 ) -> Self {
26934 unsafe {
26935 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
26936 (*next_ptr).p_next = self.inner.p_next as *mut _;
26937 self.inner.p_next = <*mut BaseOutStructure>::cast::<
26938 core::ffi::c_void,
26939 >(next_ptr) as *const _;
26940 }
26941 self
26942 }
26943}
26944impl<'a> core::ops::Deref
26945for PipelineRasterizationConservativeStateCreateInfoEXTBuilder<'a> {
26946 type Target = PipelineRasterizationConservativeStateCreateInfoEXT;
26947 #[inline]
26948 fn deref(&self) -> &Self::Target {
26949 &self.inner
26950 }
26951}
26952impl<'a> core::ops::DerefMut
26953for PipelineRasterizationConservativeStateCreateInfoEXTBuilder<'a> {
26954 #[inline]
26955 fn deref_mut(&mut self) -> &mut Self::Target {
26956 &mut self.inner
26957 }
26958}
26959pub struct PhysicalDeviceDescriptorIndexingFeaturesBuilder<'a> {
26961 inner: PhysicalDeviceDescriptorIndexingFeatures,
26962 _marker: core::marker::PhantomData<&'a ()>,
26963}
26964impl PhysicalDeviceDescriptorIndexingFeatures {
26965 #[inline]
26967 pub fn builder<'a>() -> PhysicalDeviceDescriptorIndexingFeaturesBuilder<'a> {
26968 PhysicalDeviceDescriptorIndexingFeaturesBuilder {
26969 inner: PhysicalDeviceDescriptorIndexingFeatures {
26970 s_type: StructureType::from_raw(1000161001i32),
26971 ..Default::default()
26972 },
26973 _marker: core::marker::PhantomData,
26974 }
26975 }
26976}
26977impl<'a> PhysicalDeviceDescriptorIndexingFeaturesBuilder<'a> {
26978 #[inline]
26979 pub fn shader_input_attachment_array_dynamic_indexing(
26980 mut self,
26981 value: bool,
26982 ) -> Self {
26983 self.inner.shader_input_attachment_array_dynamic_indexing = value as u32;
26984 self
26985 }
26986 #[inline]
26987 pub fn shader_uniform_texel_buffer_array_dynamic_indexing(
26988 mut self,
26989 value: bool,
26990 ) -> Self {
26991 self.inner.shader_uniform_texel_buffer_array_dynamic_indexing = value as u32;
26992 self
26993 }
26994 #[inline]
26995 pub fn shader_storage_texel_buffer_array_dynamic_indexing(
26996 mut self,
26997 value: bool,
26998 ) -> Self {
26999 self.inner.shader_storage_texel_buffer_array_dynamic_indexing = value as u32;
27000 self
27001 }
27002 #[inline]
27003 pub fn shader_uniform_buffer_array_non_uniform_indexing(
27004 mut self,
27005 value: bool,
27006 ) -> Self {
27007 self.inner.shader_uniform_buffer_array_non_uniform_indexing = value as u32;
27008 self
27009 }
27010 #[inline]
27011 pub fn shader_sampled_image_array_non_uniform_indexing(
27012 mut self,
27013 value: bool,
27014 ) -> Self {
27015 self.inner.shader_sampled_image_array_non_uniform_indexing = value as u32;
27016 self
27017 }
27018 #[inline]
27019 pub fn shader_storage_buffer_array_non_uniform_indexing(
27020 mut self,
27021 value: bool,
27022 ) -> Self {
27023 self.inner.shader_storage_buffer_array_non_uniform_indexing = value as u32;
27024 self
27025 }
27026 #[inline]
27027 pub fn shader_storage_image_array_non_uniform_indexing(
27028 mut self,
27029 value: bool,
27030 ) -> Self {
27031 self.inner.shader_storage_image_array_non_uniform_indexing = value as u32;
27032 self
27033 }
27034 #[inline]
27035 pub fn shader_input_attachment_array_non_uniform_indexing(
27036 mut self,
27037 value: bool,
27038 ) -> Self {
27039 self.inner.shader_input_attachment_array_non_uniform_indexing = value as u32;
27040 self
27041 }
27042 #[inline]
27043 pub fn shader_uniform_texel_buffer_array_non_uniform_indexing(
27044 mut self,
27045 value: bool,
27046 ) -> Self {
27047 self.inner.shader_uniform_texel_buffer_array_non_uniform_indexing = value as u32;
27048 self
27049 }
27050 #[inline]
27051 pub fn shader_storage_texel_buffer_array_non_uniform_indexing(
27052 mut self,
27053 value: bool,
27054 ) -> Self {
27055 self.inner.shader_storage_texel_buffer_array_non_uniform_indexing = value as u32;
27056 self
27057 }
27058 #[inline]
27059 pub fn descriptor_binding_uniform_buffer_update_after_bind(
27060 mut self,
27061 value: bool,
27062 ) -> Self {
27063 self.inner.descriptor_binding_uniform_buffer_update_after_bind = value as u32;
27064 self
27065 }
27066 #[inline]
27067 pub fn descriptor_binding_sampled_image_update_after_bind(
27068 mut self,
27069 value: bool,
27070 ) -> Self {
27071 self.inner.descriptor_binding_sampled_image_update_after_bind = value as u32;
27072 self
27073 }
27074 #[inline]
27075 pub fn descriptor_binding_storage_image_update_after_bind(
27076 mut self,
27077 value: bool,
27078 ) -> Self {
27079 self.inner.descriptor_binding_storage_image_update_after_bind = value as u32;
27080 self
27081 }
27082 #[inline]
27083 pub fn descriptor_binding_storage_buffer_update_after_bind(
27084 mut self,
27085 value: bool,
27086 ) -> Self {
27087 self.inner.descriptor_binding_storage_buffer_update_after_bind = value as u32;
27088 self
27089 }
27090 #[inline]
27091 pub fn descriptor_binding_uniform_texel_buffer_update_after_bind(
27092 mut self,
27093 value: bool,
27094 ) -> Self {
27095 self.inner.descriptor_binding_uniform_texel_buffer_update_after_bind = value
27096 as u32;
27097 self
27098 }
27099 #[inline]
27100 pub fn descriptor_binding_storage_texel_buffer_update_after_bind(
27101 mut self,
27102 value: bool,
27103 ) -> Self {
27104 self.inner.descriptor_binding_storage_texel_buffer_update_after_bind = value
27105 as u32;
27106 self
27107 }
27108 #[inline]
27109 pub fn descriptor_binding_update_unused_while_pending(
27110 mut self,
27111 value: bool,
27112 ) -> Self {
27113 self.inner.descriptor_binding_update_unused_while_pending = value as u32;
27114 self
27115 }
27116 #[inline]
27117 pub fn descriptor_binding_partially_bound(mut self, value: bool) -> Self {
27118 self.inner.descriptor_binding_partially_bound = value as u32;
27119 self
27120 }
27121 #[inline]
27122 pub fn descriptor_binding_variable_descriptor_count(mut self, value: bool) -> Self {
27123 self.inner.descriptor_binding_variable_descriptor_count = value as u32;
27124 self
27125 }
27126 #[inline]
27127 pub fn runtime_descriptor_array(mut self, value: bool) -> Self {
27128 self.inner.runtime_descriptor_array = value as u32;
27129 self
27130 }
27131 #[inline]
27133 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorIndexingFeatures>(
27134 mut self,
27135 next: &'a mut T,
27136 ) -> Self {
27137 unsafe {
27138 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27139 (*next_ptr).p_next = self.inner.p_next as *mut _;
27140 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27141 core::ffi::c_void,
27142 >(next_ptr);
27143 }
27144 self
27145 }
27146}
27147impl<'a> core::ops::Deref for PhysicalDeviceDescriptorIndexingFeaturesBuilder<'a> {
27148 type Target = PhysicalDeviceDescriptorIndexingFeatures;
27149 #[inline]
27150 fn deref(&self) -> &Self::Target {
27151 &self.inner
27152 }
27153}
27154impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorIndexingFeaturesBuilder<'a> {
27155 #[inline]
27156 fn deref_mut(&mut self) -> &mut Self::Target {
27157 &mut self.inner
27158 }
27159}
27160pub struct PhysicalDeviceDescriptorIndexingPropertiesBuilder<'a> {
27162 inner: PhysicalDeviceDescriptorIndexingProperties,
27163 _marker: core::marker::PhantomData<&'a ()>,
27164}
27165impl PhysicalDeviceDescriptorIndexingProperties {
27166 #[inline]
27168 pub fn builder<'a>() -> PhysicalDeviceDescriptorIndexingPropertiesBuilder<'a> {
27169 PhysicalDeviceDescriptorIndexingPropertiesBuilder {
27170 inner: PhysicalDeviceDescriptorIndexingProperties {
27171 s_type: StructureType::from_raw(1000161002i32),
27172 ..Default::default()
27173 },
27174 _marker: core::marker::PhantomData,
27175 }
27176 }
27177}
27178impl<'a> PhysicalDeviceDescriptorIndexingPropertiesBuilder<'a> {
27179 #[inline]
27180 pub fn max_update_after_bind_descriptors_in_all_pools(mut self, value: u32) -> Self {
27181 self.inner.max_update_after_bind_descriptors_in_all_pools = value;
27182 self
27183 }
27184 #[inline]
27185 pub fn shader_uniform_buffer_array_non_uniform_indexing_native(
27186 mut self,
27187 value: bool,
27188 ) -> Self {
27189 self.inner.shader_uniform_buffer_array_non_uniform_indexing_native = value
27190 as u32;
27191 self
27192 }
27193 #[inline]
27194 pub fn shader_sampled_image_array_non_uniform_indexing_native(
27195 mut self,
27196 value: bool,
27197 ) -> Self {
27198 self.inner.shader_sampled_image_array_non_uniform_indexing_native = value as u32;
27199 self
27200 }
27201 #[inline]
27202 pub fn shader_storage_buffer_array_non_uniform_indexing_native(
27203 mut self,
27204 value: bool,
27205 ) -> Self {
27206 self.inner.shader_storage_buffer_array_non_uniform_indexing_native = value
27207 as u32;
27208 self
27209 }
27210 #[inline]
27211 pub fn shader_storage_image_array_non_uniform_indexing_native(
27212 mut self,
27213 value: bool,
27214 ) -> Self {
27215 self.inner.shader_storage_image_array_non_uniform_indexing_native = value as u32;
27216 self
27217 }
27218 #[inline]
27219 pub fn shader_input_attachment_array_non_uniform_indexing_native(
27220 mut self,
27221 value: bool,
27222 ) -> Self {
27223 self.inner.shader_input_attachment_array_non_uniform_indexing_native = value
27224 as u32;
27225 self
27226 }
27227 #[inline]
27228 pub fn robust_buffer_access_update_after_bind(mut self, value: bool) -> Self {
27229 self.inner.robust_buffer_access_update_after_bind = value as u32;
27230 self
27231 }
27232 #[inline]
27233 pub fn quad_divergent_implicit_lod(mut self, value: bool) -> Self {
27234 self.inner.quad_divergent_implicit_lod = value as u32;
27235 self
27236 }
27237 #[inline]
27238 pub fn max_per_stage_descriptor_update_after_bind_samplers(
27239 mut self,
27240 value: u32,
27241 ) -> Self {
27242 self.inner.max_per_stage_descriptor_update_after_bind_samplers = value;
27243 self
27244 }
27245 #[inline]
27246 pub fn max_per_stage_descriptor_update_after_bind_uniform_buffers(
27247 mut self,
27248 value: u32,
27249 ) -> Self {
27250 self.inner.max_per_stage_descriptor_update_after_bind_uniform_buffers = value;
27251 self
27252 }
27253 #[inline]
27254 pub fn max_per_stage_descriptor_update_after_bind_storage_buffers(
27255 mut self,
27256 value: u32,
27257 ) -> Self {
27258 self.inner.max_per_stage_descriptor_update_after_bind_storage_buffers = value;
27259 self
27260 }
27261 #[inline]
27262 pub fn max_per_stage_descriptor_update_after_bind_sampled_images(
27263 mut self,
27264 value: u32,
27265 ) -> Self {
27266 self.inner.max_per_stage_descriptor_update_after_bind_sampled_images = value;
27267 self
27268 }
27269 #[inline]
27270 pub fn max_per_stage_descriptor_update_after_bind_storage_images(
27271 mut self,
27272 value: u32,
27273 ) -> Self {
27274 self.inner.max_per_stage_descriptor_update_after_bind_storage_images = value;
27275 self
27276 }
27277 #[inline]
27278 pub fn max_per_stage_descriptor_update_after_bind_input_attachments(
27279 mut self,
27280 value: u32,
27281 ) -> Self {
27282 self.inner.max_per_stage_descriptor_update_after_bind_input_attachments = value;
27283 self
27284 }
27285 #[inline]
27286 pub fn max_per_stage_update_after_bind_resources(mut self, value: u32) -> Self {
27287 self.inner.max_per_stage_update_after_bind_resources = value;
27288 self
27289 }
27290 #[inline]
27291 pub fn max_descriptor_set_update_after_bind_samplers(mut self, value: u32) -> Self {
27292 self.inner.max_descriptor_set_update_after_bind_samplers = value;
27293 self
27294 }
27295 #[inline]
27296 pub fn max_descriptor_set_update_after_bind_uniform_buffers(
27297 mut self,
27298 value: u32,
27299 ) -> Self {
27300 self.inner.max_descriptor_set_update_after_bind_uniform_buffers = value;
27301 self
27302 }
27303 #[inline]
27304 pub fn max_descriptor_set_update_after_bind_uniform_buffers_dynamic(
27305 mut self,
27306 value: u32,
27307 ) -> Self {
27308 self.inner.max_descriptor_set_update_after_bind_uniform_buffers_dynamic = value;
27309 self
27310 }
27311 #[inline]
27312 pub fn max_descriptor_set_update_after_bind_storage_buffers(
27313 mut self,
27314 value: u32,
27315 ) -> Self {
27316 self.inner.max_descriptor_set_update_after_bind_storage_buffers = value;
27317 self
27318 }
27319 #[inline]
27320 pub fn max_descriptor_set_update_after_bind_storage_buffers_dynamic(
27321 mut self,
27322 value: u32,
27323 ) -> Self {
27324 self.inner.max_descriptor_set_update_after_bind_storage_buffers_dynamic = value;
27325 self
27326 }
27327 #[inline]
27328 pub fn max_descriptor_set_update_after_bind_sampled_images(
27329 mut self,
27330 value: u32,
27331 ) -> Self {
27332 self.inner.max_descriptor_set_update_after_bind_sampled_images = value;
27333 self
27334 }
27335 #[inline]
27336 pub fn max_descriptor_set_update_after_bind_storage_images(
27337 mut self,
27338 value: u32,
27339 ) -> Self {
27340 self.inner.max_descriptor_set_update_after_bind_storage_images = value;
27341 self
27342 }
27343 #[inline]
27344 pub fn max_descriptor_set_update_after_bind_input_attachments(
27345 mut self,
27346 value: u32,
27347 ) -> Self {
27348 self.inner.max_descriptor_set_update_after_bind_input_attachments = value;
27349 self
27350 }
27351}
27352impl<'a> core::ops::Deref for PhysicalDeviceDescriptorIndexingPropertiesBuilder<'a> {
27353 type Target = PhysicalDeviceDescriptorIndexingProperties;
27354 #[inline]
27355 fn deref(&self) -> &Self::Target {
27356 &self.inner
27357 }
27358}
27359impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorIndexingPropertiesBuilder<'a> {
27360 #[inline]
27361 fn deref_mut(&mut self) -> &mut Self::Target {
27362 &mut self.inner
27363 }
27364}
27365pub struct DescriptorSetLayoutBindingFlagsCreateInfoBuilder<'a> {
27367 inner: DescriptorSetLayoutBindingFlagsCreateInfo,
27368 _marker: core::marker::PhantomData<&'a ()>,
27369}
27370impl DescriptorSetLayoutBindingFlagsCreateInfo {
27371 #[inline]
27373 pub fn builder<'a>() -> DescriptorSetLayoutBindingFlagsCreateInfoBuilder<'a> {
27374 DescriptorSetLayoutBindingFlagsCreateInfoBuilder {
27375 inner: DescriptorSetLayoutBindingFlagsCreateInfo {
27376 s_type: StructureType::from_raw(1000161000i32),
27377 ..Default::default()
27378 },
27379 _marker: core::marker::PhantomData,
27380 }
27381 }
27382}
27383impl<'a> DescriptorSetLayoutBindingFlagsCreateInfoBuilder<'a> {
27384 #[inline]
27385 pub fn binding_count(mut self, value: u32) -> Self {
27386 self.inner.binding_count = value;
27387 self
27388 }
27389 #[inline]
27390 pub fn binding_flags(mut self, slice: &'a [DescriptorBindingFlags]) -> Self {
27391 self.inner.binding_count = slice.len() as u32;
27392 self.inner.p_binding_flags = slice.as_ptr();
27393 self
27394 }
27395 #[inline]
27397 pub fn push_next<T: ExtendsDescriptorSetLayoutBindingFlagsCreateInfo>(
27398 mut self,
27399 next: &'a mut T,
27400 ) -> Self {
27401 unsafe {
27402 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27403 (*next_ptr).p_next = self.inner.p_next as *mut _;
27404 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27405 core::ffi::c_void,
27406 >(next_ptr) as *const _;
27407 }
27408 self
27409 }
27410}
27411impl<'a> core::ops::Deref for DescriptorSetLayoutBindingFlagsCreateInfoBuilder<'a> {
27412 type Target = DescriptorSetLayoutBindingFlagsCreateInfo;
27413 #[inline]
27414 fn deref(&self) -> &Self::Target {
27415 &self.inner
27416 }
27417}
27418impl<'a> core::ops::DerefMut for DescriptorSetLayoutBindingFlagsCreateInfoBuilder<'a> {
27419 #[inline]
27420 fn deref_mut(&mut self) -> &mut Self::Target {
27421 &mut self.inner
27422 }
27423}
27424pub struct DescriptorSetVariableDescriptorCountAllocateInfoBuilder<'a> {
27426 inner: DescriptorSetVariableDescriptorCountAllocateInfo,
27427 _marker: core::marker::PhantomData<&'a ()>,
27428}
27429impl DescriptorSetVariableDescriptorCountAllocateInfo {
27430 #[inline]
27432 pub fn builder<'a>() -> DescriptorSetVariableDescriptorCountAllocateInfoBuilder<'a> {
27433 DescriptorSetVariableDescriptorCountAllocateInfoBuilder {
27434 inner: DescriptorSetVariableDescriptorCountAllocateInfo {
27435 s_type: StructureType::from_raw(1000161003i32),
27436 ..Default::default()
27437 },
27438 _marker: core::marker::PhantomData,
27439 }
27440 }
27441}
27442impl<'a> DescriptorSetVariableDescriptorCountAllocateInfoBuilder<'a> {
27443 #[inline]
27444 pub fn descriptor_counts(mut self, slice: &'a [u32]) -> Self {
27445 self.inner.descriptor_set_count = slice.len() as u32;
27446 self.inner.p_descriptor_counts = slice.as_ptr();
27447 self
27448 }
27449 #[inline]
27451 pub fn push_next<T: ExtendsDescriptorSetVariableDescriptorCountAllocateInfo>(
27452 mut self,
27453 next: &'a mut T,
27454 ) -> Self {
27455 unsafe {
27456 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27457 (*next_ptr).p_next = self.inner.p_next as *mut _;
27458 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27459 core::ffi::c_void,
27460 >(next_ptr) as *const _;
27461 }
27462 self
27463 }
27464}
27465impl<'a> core::ops::Deref
27466for DescriptorSetVariableDescriptorCountAllocateInfoBuilder<'a> {
27467 type Target = DescriptorSetVariableDescriptorCountAllocateInfo;
27468 #[inline]
27469 fn deref(&self) -> &Self::Target {
27470 &self.inner
27471 }
27472}
27473impl<'a> core::ops::DerefMut
27474for DescriptorSetVariableDescriptorCountAllocateInfoBuilder<'a> {
27475 #[inline]
27476 fn deref_mut(&mut self) -> &mut Self::Target {
27477 &mut self.inner
27478 }
27479}
27480pub struct DescriptorSetVariableDescriptorCountLayoutSupportBuilder<'a> {
27482 inner: DescriptorSetVariableDescriptorCountLayoutSupport,
27483 _marker: core::marker::PhantomData<&'a ()>,
27484}
27485impl DescriptorSetVariableDescriptorCountLayoutSupport {
27486 #[inline]
27488 pub fn builder<'a>() -> DescriptorSetVariableDescriptorCountLayoutSupportBuilder<
27489 'a,
27490 > {
27491 DescriptorSetVariableDescriptorCountLayoutSupportBuilder {
27492 inner: DescriptorSetVariableDescriptorCountLayoutSupport {
27493 s_type: StructureType::from_raw(1000161004i32),
27494 ..Default::default()
27495 },
27496 _marker: core::marker::PhantomData,
27497 }
27498 }
27499}
27500impl<'a> DescriptorSetVariableDescriptorCountLayoutSupportBuilder<'a> {
27501 #[inline]
27502 pub fn max_variable_descriptor_count(mut self, value: u32) -> Self {
27503 self.inner.max_variable_descriptor_count = value;
27504 self
27505 }
27506}
27507impl<'a> core::ops::Deref
27508for DescriptorSetVariableDescriptorCountLayoutSupportBuilder<'a> {
27509 type Target = DescriptorSetVariableDescriptorCountLayoutSupport;
27510 #[inline]
27511 fn deref(&self) -> &Self::Target {
27512 &self.inner
27513 }
27514}
27515impl<'a> core::ops::DerefMut
27516for DescriptorSetVariableDescriptorCountLayoutSupportBuilder<'a> {
27517 #[inline]
27518 fn deref_mut(&mut self) -> &mut Self::Target {
27519 &mut self.inner
27520 }
27521}
27522pub struct AttachmentDescription2Builder<'a> {
27524 inner: AttachmentDescription2,
27525 _marker: core::marker::PhantomData<&'a ()>,
27526}
27527impl AttachmentDescription2 {
27528 #[inline]
27530 pub fn builder<'a>() -> AttachmentDescription2Builder<'a> {
27531 AttachmentDescription2Builder {
27532 inner: AttachmentDescription2 {
27533 s_type: StructureType::from_raw(1000109000i32),
27534 ..Default::default()
27535 },
27536 _marker: core::marker::PhantomData,
27537 }
27538 }
27539}
27540impl<'a> AttachmentDescription2Builder<'a> {
27541 #[inline]
27542 pub fn flags(mut self, value: AttachmentDescriptionFlags) -> Self {
27543 self.inner.flags = value;
27544 self
27545 }
27546 #[inline]
27547 pub fn format(mut self, value: Format) -> Self {
27548 self.inner.format = value;
27549 self
27550 }
27551 #[inline]
27552 pub fn samples(mut self, value: SampleCountFlagBits) -> Self {
27553 self.inner.samples = value;
27554 self
27555 }
27556 #[inline]
27557 pub fn load_op(mut self, value: AttachmentLoadOp) -> Self {
27558 self.inner.load_op = value;
27559 self
27560 }
27561 #[inline]
27562 pub fn store_op(mut self, value: AttachmentStoreOp) -> Self {
27563 self.inner.store_op = value;
27564 self
27565 }
27566 #[inline]
27567 pub fn stencil_load_op(mut self, value: AttachmentLoadOp) -> Self {
27568 self.inner.stencil_load_op = value;
27569 self
27570 }
27571 #[inline]
27572 pub fn stencil_store_op(mut self, value: AttachmentStoreOp) -> Self {
27573 self.inner.stencil_store_op = value;
27574 self
27575 }
27576 #[inline]
27577 pub fn initial_layout(mut self, value: ImageLayout) -> Self {
27578 self.inner.initial_layout = value;
27579 self
27580 }
27581 #[inline]
27582 pub fn final_layout(mut self, value: ImageLayout) -> Self {
27583 self.inner.final_layout = value;
27584 self
27585 }
27586 #[inline]
27588 pub fn push_next<T: ExtendsAttachmentDescription2>(
27589 mut self,
27590 next: &'a mut T,
27591 ) -> Self {
27592 unsafe {
27593 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27594 (*next_ptr).p_next = self.inner.p_next as *mut _;
27595 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27596 core::ffi::c_void,
27597 >(next_ptr) as *const _;
27598 }
27599 self
27600 }
27601}
27602impl<'a> core::ops::Deref for AttachmentDescription2Builder<'a> {
27603 type Target = AttachmentDescription2;
27604 #[inline]
27605 fn deref(&self) -> &Self::Target {
27606 &self.inner
27607 }
27608}
27609impl<'a> core::ops::DerefMut for AttachmentDescription2Builder<'a> {
27610 #[inline]
27611 fn deref_mut(&mut self) -> &mut Self::Target {
27612 &mut self.inner
27613 }
27614}
27615pub struct AttachmentReference2Builder<'a> {
27617 inner: AttachmentReference2,
27618 _marker: core::marker::PhantomData<&'a ()>,
27619}
27620impl AttachmentReference2 {
27621 #[inline]
27623 pub fn builder<'a>() -> AttachmentReference2Builder<'a> {
27624 AttachmentReference2Builder {
27625 inner: AttachmentReference2 {
27626 s_type: StructureType::from_raw(1000109001i32),
27627 ..Default::default()
27628 },
27629 _marker: core::marker::PhantomData,
27630 }
27631 }
27632}
27633impl<'a> AttachmentReference2Builder<'a> {
27634 #[inline]
27635 pub fn attachment(mut self, value: u32) -> Self {
27636 self.inner.attachment = value;
27637 self
27638 }
27639 #[inline]
27640 pub fn layout(mut self, value: ImageLayout) -> Self {
27641 self.inner.layout = value;
27642 self
27643 }
27644 #[inline]
27645 pub fn aspect_mask(mut self, value: ImageAspectFlags) -> Self {
27646 self.inner.aspect_mask = value;
27647 self
27648 }
27649 #[inline]
27651 pub fn push_next<T: ExtendsAttachmentReference2>(mut self, next: &'a mut T) -> Self {
27652 unsafe {
27653 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27654 (*next_ptr).p_next = self.inner.p_next as *mut _;
27655 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27656 core::ffi::c_void,
27657 >(next_ptr) as *const _;
27658 }
27659 self
27660 }
27661}
27662impl<'a> core::ops::Deref for AttachmentReference2Builder<'a> {
27663 type Target = AttachmentReference2;
27664 #[inline]
27665 fn deref(&self) -> &Self::Target {
27666 &self.inner
27667 }
27668}
27669impl<'a> core::ops::DerefMut for AttachmentReference2Builder<'a> {
27670 #[inline]
27671 fn deref_mut(&mut self) -> &mut Self::Target {
27672 &mut self.inner
27673 }
27674}
27675pub struct SubpassDescription2Builder<'a> {
27677 inner: SubpassDescription2,
27678 _marker: core::marker::PhantomData<&'a ()>,
27679}
27680impl SubpassDescription2 {
27681 #[inline]
27683 pub fn builder<'a>() -> SubpassDescription2Builder<'a> {
27684 SubpassDescription2Builder {
27685 inner: SubpassDescription2 {
27686 s_type: StructureType::from_raw(1000109002i32),
27687 ..Default::default()
27688 },
27689 _marker: core::marker::PhantomData,
27690 }
27691 }
27692}
27693impl<'a> SubpassDescription2Builder<'a> {
27694 #[inline]
27695 pub fn flags(mut self, value: SubpassDescriptionFlags) -> Self {
27696 self.inner.flags = value;
27697 self
27698 }
27699 #[inline]
27700 pub fn pipeline_bind_point(mut self, value: PipelineBindPoint) -> Self {
27701 self.inner.pipeline_bind_point = value;
27702 self
27703 }
27704 #[inline]
27705 pub fn view_mask(mut self, value: u32) -> Self {
27706 self.inner.view_mask = value;
27707 self
27708 }
27709 #[inline]
27710 pub fn input_attachments(mut self, slice: &'a [AttachmentReference2]) -> Self {
27711 self.inner.input_attachment_count = slice.len() as u32;
27712 self.inner.p_input_attachments = slice.as_ptr();
27713 self
27714 }
27715 #[inline]
27716 pub fn color_attachments(mut self, slice: &'a [AttachmentReference2]) -> Self {
27717 self.inner.color_attachment_count = slice.len() as u32;
27718 self.inner.p_color_attachments = slice.as_ptr();
27719 self
27720 }
27721 #[inline]
27722 pub fn resolve_attachments(mut self, slice: &'a [AttachmentReference2]) -> Self {
27723 self.inner.color_attachment_count = slice.len() as u32;
27724 self.inner.p_resolve_attachments = slice.as_ptr();
27725 self
27726 }
27727 #[inline]
27728 pub fn depth_stencil_attachment(mut self, value: &'a AttachmentReference2) -> Self {
27729 self.inner.p_depth_stencil_attachment = value;
27730 self
27731 }
27732 #[inline]
27733 pub fn preserve_attachments(mut self, slice: &'a [u32]) -> Self {
27734 self.inner.preserve_attachment_count = slice.len() as u32;
27735 self.inner.p_preserve_attachments = slice.as_ptr();
27736 self
27737 }
27738 #[inline]
27740 pub fn push_next<T: ExtendsSubpassDescription2>(mut self, next: &'a mut T) -> Self {
27741 unsafe {
27742 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27743 (*next_ptr).p_next = self.inner.p_next as *mut _;
27744 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27745 core::ffi::c_void,
27746 >(next_ptr) as *const _;
27747 }
27748 self
27749 }
27750}
27751impl<'a> core::ops::Deref for SubpassDescription2Builder<'a> {
27752 type Target = SubpassDescription2;
27753 #[inline]
27754 fn deref(&self) -> &Self::Target {
27755 &self.inner
27756 }
27757}
27758impl<'a> core::ops::DerefMut for SubpassDescription2Builder<'a> {
27759 #[inline]
27760 fn deref_mut(&mut self) -> &mut Self::Target {
27761 &mut self.inner
27762 }
27763}
27764pub struct SubpassDependency2Builder<'a> {
27766 inner: SubpassDependency2,
27767 _marker: core::marker::PhantomData<&'a ()>,
27768}
27769impl SubpassDependency2 {
27770 #[inline]
27772 pub fn builder<'a>() -> SubpassDependency2Builder<'a> {
27773 SubpassDependency2Builder {
27774 inner: SubpassDependency2 {
27775 s_type: StructureType::from_raw(1000109003i32),
27776 ..Default::default()
27777 },
27778 _marker: core::marker::PhantomData,
27779 }
27780 }
27781}
27782impl<'a> SubpassDependency2Builder<'a> {
27783 #[inline]
27784 pub fn src_subpass(mut self, value: u32) -> Self {
27785 self.inner.src_subpass = value;
27786 self
27787 }
27788 #[inline]
27789 pub fn dst_subpass(mut self, value: u32) -> Self {
27790 self.inner.dst_subpass = value;
27791 self
27792 }
27793 #[inline]
27794 pub fn src_stage_mask(mut self, value: PipelineStageFlags) -> Self {
27795 self.inner.src_stage_mask = value;
27796 self
27797 }
27798 #[inline]
27799 pub fn dst_stage_mask(mut self, value: PipelineStageFlags) -> Self {
27800 self.inner.dst_stage_mask = value;
27801 self
27802 }
27803 #[inline]
27804 pub fn src_access_mask(mut self, value: AccessFlags) -> Self {
27805 self.inner.src_access_mask = value;
27806 self
27807 }
27808 #[inline]
27809 pub fn dst_access_mask(mut self, value: AccessFlags) -> Self {
27810 self.inner.dst_access_mask = value;
27811 self
27812 }
27813 #[inline]
27814 pub fn dependency_flags(mut self, value: DependencyFlags) -> Self {
27815 self.inner.dependency_flags = value;
27816 self
27817 }
27818 #[inline]
27819 pub fn view_offset(mut self, value: i32) -> Self {
27820 self.inner.view_offset = value;
27821 self
27822 }
27823 #[inline]
27825 pub fn push_next<T: ExtendsSubpassDependency2>(mut self, next: &'a mut T) -> Self {
27826 unsafe {
27827 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27828 (*next_ptr).p_next = self.inner.p_next as *mut _;
27829 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27830 core::ffi::c_void,
27831 >(next_ptr) as *const _;
27832 }
27833 self
27834 }
27835}
27836impl<'a> core::ops::Deref for SubpassDependency2Builder<'a> {
27837 type Target = SubpassDependency2;
27838 #[inline]
27839 fn deref(&self) -> &Self::Target {
27840 &self.inner
27841 }
27842}
27843impl<'a> core::ops::DerefMut for SubpassDependency2Builder<'a> {
27844 #[inline]
27845 fn deref_mut(&mut self) -> &mut Self::Target {
27846 &mut self.inner
27847 }
27848}
27849pub struct RenderPassCreateInfo2Builder<'a> {
27851 inner: RenderPassCreateInfo2,
27852 _marker: core::marker::PhantomData<&'a ()>,
27853}
27854impl RenderPassCreateInfo2 {
27855 #[inline]
27857 pub fn builder<'a>() -> RenderPassCreateInfo2Builder<'a> {
27858 RenderPassCreateInfo2Builder {
27859 inner: RenderPassCreateInfo2 {
27860 s_type: StructureType::from_raw(1000109004i32),
27861 ..Default::default()
27862 },
27863 _marker: core::marker::PhantomData,
27864 }
27865 }
27866}
27867impl<'a> RenderPassCreateInfo2Builder<'a> {
27868 #[inline]
27869 pub fn flags(mut self, value: RenderPassCreateFlags) -> Self {
27870 self.inner.flags = value;
27871 self
27872 }
27873 #[inline]
27874 pub fn attachments(mut self, slice: &'a [AttachmentDescription2]) -> Self {
27875 self.inner.attachment_count = slice.len() as u32;
27876 self.inner.p_attachments = slice.as_ptr();
27877 self
27878 }
27879 #[inline]
27880 pub fn subpasses(mut self, slice: &'a [SubpassDescription2]) -> Self {
27881 self.inner.subpass_count = slice.len() as u32;
27882 self.inner.p_subpasses = slice.as_ptr();
27883 self
27884 }
27885 #[inline]
27886 pub fn dependencies(mut self, slice: &'a [SubpassDependency2]) -> Self {
27887 self.inner.dependency_count = slice.len() as u32;
27888 self.inner.p_dependencies = slice.as_ptr();
27889 self
27890 }
27891 #[inline]
27892 pub fn correlated_view_masks(mut self, slice: &'a [u32]) -> Self {
27893 self.inner.correlated_view_mask_count = slice.len() as u32;
27894 self.inner.p_correlated_view_masks = slice.as_ptr();
27895 self
27896 }
27897 #[inline]
27899 pub fn push_next<T: ExtendsRenderPassCreateInfo2>(
27900 mut self,
27901 next: &'a mut T,
27902 ) -> Self {
27903 unsafe {
27904 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27905 (*next_ptr).p_next = self.inner.p_next as *mut _;
27906 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27907 core::ffi::c_void,
27908 >(next_ptr) as *const _;
27909 }
27910 self
27911 }
27912}
27913impl<'a> core::ops::Deref for RenderPassCreateInfo2Builder<'a> {
27914 type Target = RenderPassCreateInfo2;
27915 #[inline]
27916 fn deref(&self) -> &Self::Target {
27917 &self.inner
27918 }
27919}
27920impl<'a> core::ops::DerefMut for RenderPassCreateInfo2Builder<'a> {
27921 #[inline]
27922 fn deref_mut(&mut self) -> &mut Self::Target {
27923 &mut self.inner
27924 }
27925}
27926pub struct SubpassBeginInfoBuilder<'a> {
27928 inner: SubpassBeginInfo,
27929 _marker: core::marker::PhantomData<&'a ()>,
27930}
27931impl SubpassBeginInfo {
27932 #[inline]
27934 pub fn builder<'a>() -> SubpassBeginInfoBuilder<'a> {
27935 SubpassBeginInfoBuilder {
27936 inner: SubpassBeginInfo {
27937 s_type: StructureType::from_raw(1000109005i32),
27938 ..Default::default()
27939 },
27940 _marker: core::marker::PhantomData,
27941 }
27942 }
27943}
27944impl<'a> SubpassBeginInfoBuilder<'a> {
27945 #[inline]
27946 pub fn contents(mut self, value: SubpassContents) -> Self {
27947 self.inner.contents = value;
27948 self
27949 }
27950 #[inline]
27952 pub fn push_next<T: ExtendsSubpassBeginInfo>(mut self, next: &'a mut T) -> Self {
27953 unsafe {
27954 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
27955 (*next_ptr).p_next = self.inner.p_next as *mut _;
27956 self.inner.p_next = <*mut BaseOutStructure>::cast::<
27957 core::ffi::c_void,
27958 >(next_ptr) as *const _;
27959 }
27960 self
27961 }
27962}
27963impl<'a> core::ops::Deref for SubpassBeginInfoBuilder<'a> {
27964 type Target = SubpassBeginInfo;
27965 #[inline]
27966 fn deref(&self) -> &Self::Target {
27967 &self.inner
27968 }
27969}
27970impl<'a> core::ops::DerefMut for SubpassBeginInfoBuilder<'a> {
27971 #[inline]
27972 fn deref_mut(&mut self) -> &mut Self::Target {
27973 &mut self.inner
27974 }
27975}
27976pub struct SubpassEndInfoBuilder<'a> {
27978 inner: SubpassEndInfo,
27979 _marker: core::marker::PhantomData<&'a ()>,
27980}
27981impl SubpassEndInfo {
27982 #[inline]
27984 pub fn builder<'a>() -> SubpassEndInfoBuilder<'a> {
27985 SubpassEndInfoBuilder {
27986 inner: SubpassEndInfo {
27987 s_type: StructureType::from_raw(1000109006i32),
27988 ..Default::default()
27989 },
27990 _marker: core::marker::PhantomData,
27991 }
27992 }
27993}
27994impl<'a> SubpassEndInfoBuilder<'a> {
27995 #[inline]
27997 pub fn push_next<T: ExtendsSubpassEndInfo>(mut self, next: &'a mut T) -> Self {
27998 unsafe {
27999 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28000 (*next_ptr).p_next = self.inner.p_next as *mut _;
28001 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28002 core::ffi::c_void,
28003 >(next_ptr) as *const _;
28004 }
28005 self
28006 }
28007}
28008impl<'a> core::ops::Deref for SubpassEndInfoBuilder<'a> {
28009 type Target = SubpassEndInfo;
28010 #[inline]
28011 fn deref(&self) -> &Self::Target {
28012 &self.inner
28013 }
28014}
28015impl<'a> core::ops::DerefMut for SubpassEndInfoBuilder<'a> {
28016 #[inline]
28017 fn deref_mut(&mut self) -> &mut Self::Target {
28018 &mut self.inner
28019 }
28020}
28021pub struct PhysicalDeviceTimelineSemaphoreFeaturesBuilder<'a> {
28023 inner: PhysicalDeviceTimelineSemaphoreFeatures,
28024 _marker: core::marker::PhantomData<&'a ()>,
28025}
28026impl PhysicalDeviceTimelineSemaphoreFeatures {
28027 #[inline]
28029 pub fn builder<'a>() -> PhysicalDeviceTimelineSemaphoreFeaturesBuilder<'a> {
28030 PhysicalDeviceTimelineSemaphoreFeaturesBuilder {
28031 inner: PhysicalDeviceTimelineSemaphoreFeatures {
28032 s_type: StructureType::from_raw(1000207000i32),
28033 ..Default::default()
28034 },
28035 _marker: core::marker::PhantomData,
28036 }
28037 }
28038}
28039impl<'a> PhysicalDeviceTimelineSemaphoreFeaturesBuilder<'a> {
28040 #[inline]
28041 pub fn timeline_semaphore(mut self, value: bool) -> Self {
28042 self.inner.timeline_semaphore = value as u32;
28043 self
28044 }
28045 #[inline]
28047 pub fn push_next<T: ExtendsPhysicalDeviceTimelineSemaphoreFeatures>(
28048 mut self,
28049 next: &'a mut T,
28050 ) -> Self {
28051 unsafe {
28052 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28053 (*next_ptr).p_next = self.inner.p_next as *mut _;
28054 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28055 core::ffi::c_void,
28056 >(next_ptr);
28057 }
28058 self
28059 }
28060}
28061impl<'a> core::ops::Deref for PhysicalDeviceTimelineSemaphoreFeaturesBuilder<'a> {
28062 type Target = PhysicalDeviceTimelineSemaphoreFeatures;
28063 #[inline]
28064 fn deref(&self) -> &Self::Target {
28065 &self.inner
28066 }
28067}
28068impl<'a> core::ops::DerefMut for PhysicalDeviceTimelineSemaphoreFeaturesBuilder<'a> {
28069 #[inline]
28070 fn deref_mut(&mut self) -> &mut Self::Target {
28071 &mut self.inner
28072 }
28073}
28074pub struct PhysicalDeviceTimelineSemaphorePropertiesBuilder<'a> {
28076 inner: PhysicalDeviceTimelineSemaphoreProperties,
28077 _marker: core::marker::PhantomData<&'a ()>,
28078}
28079impl PhysicalDeviceTimelineSemaphoreProperties {
28080 #[inline]
28082 pub fn builder<'a>() -> PhysicalDeviceTimelineSemaphorePropertiesBuilder<'a> {
28083 PhysicalDeviceTimelineSemaphorePropertiesBuilder {
28084 inner: PhysicalDeviceTimelineSemaphoreProperties {
28085 s_type: StructureType::from_raw(1000207001i32),
28086 ..Default::default()
28087 },
28088 _marker: core::marker::PhantomData,
28089 }
28090 }
28091}
28092impl<'a> PhysicalDeviceTimelineSemaphorePropertiesBuilder<'a> {
28093 #[inline]
28094 pub fn max_timeline_semaphore_value_difference(mut self, value: u64) -> Self {
28095 self.inner.max_timeline_semaphore_value_difference = value;
28096 self
28097 }
28098}
28099impl<'a> core::ops::Deref for PhysicalDeviceTimelineSemaphorePropertiesBuilder<'a> {
28100 type Target = PhysicalDeviceTimelineSemaphoreProperties;
28101 #[inline]
28102 fn deref(&self) -> &Self::Target {
28103 &self.inner
28104 }
28105}
28106impl<'a> core::ops::DerefMut for PhysicalDeviceTimelineSemaphorePropertiesBuilder<'a> {
28107 #[inline]
28108 fn deref_mut(&mut self) -> &mut Self::Target {
28109 &mut self.inner
28110 }
28111}
28112pub struct SemaphoreTypeCreateInfoBuilder<'a> {
28114 inner: SemaphoreTypeCreateInfo,
28115 _marker: core::marker::PhantomData<&'a ()>,
28116}
28117impl SemaphoreTypeCreateInfo {
28118 #[inline]
28120 pub fn builder<'a>() -> SemaphoreTypeCreateInfoBuilder<'a> {
28121 SemaphoreTypeCreateInfoBuilder {
28122 inner: SemaphoreTypeCreateInfo {
28123 s_type: StructureType::from_raw(1000207002i32),
28124 ..Default::default()
28125 },
28126 _marker: core::marker::PhantomData,
28127 }
28128 }
28129}
28130impl<'a> SemaphoreTypeCreateInfoBuilder<'a> {
28131 #[inline]
28132 pub fn semaphore_type(mut self, value: SemaphoreType) -> Self {
28133 self.inner.semaphore_type = value;
28134 self
28135 }
28136 #[inline]
28137 pub fn initial_value(mut self, value: u64) -> Self {
28138 self.inner.initial_value = value;
28139 self
28140 }
28141 #[inline]
28143 pub fn push_next<T: ExtendsSemaphoreTypeCreateInfo>(
28144 mut self,
28145 next: &'a mut T,
28146 ) -> Self {
28147 unsafe {
28148 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28149 (*next_ptr).p_next = self.inner.p_next as *mut _;
28150 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28151 core::ffi::c_void,
28152 >(next_ptr) as *const _;
28153 }
28154 self
28155 }
28156}
28157impl<'a> core::ops::Deref for SemaphoreTypeCreateInfoBuilder<'a> {
28158 type Target = SemaphoreTypeCreateInfo;
28159 #[inline]
28160 fn deref(&self) -> &Self::Target {
28161 &self.inner
28162 }
28163}
28164impl<'a> core::ops::DerefMut for SemaphoreTypeCreateInfoBuilder<'a> {
28165 #[inline]
28166 fn deref_mut(&mut self) -> &mut Self::Target {
28167 &mut self.inner
28168 }
28169}
28170pub struct TimelineSemaphoreSubmitInfoBuilder<'a> {
28172 inner: TimelineSemaphoreSubmitInfo,
28173 _marker: core::marker::PhantomData<&'a ()>,
28174}
28175impl TimelineSemaphoreSubmitInfo {
28176 #[inline]
28178 pub fn builder<'a>() -> TimelineSemaphoreSubmitInfoBuilder<'a> {
28179 TimelineSemaphoreSubmitInfoBuilder {
28180 inner: TimelineSemaphoreSubmitInfo {
28181 s_type: StructureType::from_raw(1000207003i32),
28182 ..Default::default()
28183 },
28184 _marker: core::marker::PhantomData,
28185 }
28186 }
28187}
28188impl<'a> TimelineSemaphoreSubmitInfoBuilder<'a> {
28189 #[inline]
28190 pub fn wait_semaphore_value_count(mut self, value: u32) -> Self {
28191 self.inner.wait_semaphore_value_count = value;
28192 self
28193 }
28194 #[inline]
28195 pub fn wait_semaphore_values(mut self, slice: &'a [u64]) -> Self {
28196 self.inner.wait_semaphore_value_count = slice.len() as u32;
28197 self.inner.p_wait_semaphore_values = slice.as_ptr();
28198 self
28199 }
28200 #[inline]
28201 pub fn signal_semaphore_value_count(mut self, value: u32) -> Self {
28202 self.inner.signal_semaphore_value_count = value;
28203 self
28204 }
28205 #[inline]
28206 pub fn signal_semaphore_values(mut self, slice: &'a [u64]) -> Self {
28207 self.inner.signal_semaphore_value_count = slice.len() as u32;
28208 self.inner.p_signal_semaphore_values = slice.as_ptr();
28209 self
28210 }
28211 #[inline]
28213 pub fn push_next<T: ExtendsTimelineSemaphoreSubmitInfo>(
28214 mut self,
28215 next: &'a mut T,
28216 ) -> Self {
28217 unsafe {
28218 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28219 (*next_ptr).p_next = self.inner.p_next as *mut _;
28220 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28221 core::ffi::c_void,
28222 >(next_ptr) as *const _;
28223 }
28224 self
28225 }
28226}
28227impl<'a> core::ops::Deref for TimelineSemaphoreSubmitInfoBuilder<'a> {
28228 type Target = TimelineSemaphoreSubmitInfo;
28229 #[inline]
28230 fn deref(&self) -> &Self::Target {
28231 &self.inner
28232 }
28233}
28234impl<'a> core::ops::DerefMut for TimelineSemaphoreSubmitInfoBuilder<'a> {
28235 #[inline]
28236 fn deref_mut(&mut self) -> &mut Self::Target {
28237 &mut self.inner
28238 }
28239}
28240pub struct SemaphoreWaitInfoBuilder<'a> {
28242 inner: SemaphoreWaitInfo,
28243 _marker: core::marker::PhantomData<&'a ()>,
28244}
28245impl SemaphoreWaitInfo {
28246 #[inline]
28248 pub fn builder<'a>() -> SemaphoreWaitInfoBuilder<'a> {
28249 SemaphoreWaitInfoBuilder {
28250 inner: SemaphoreWaitInfo {
28251 s_type: StructureType::from_raw(1000207004i32),
28252 ..Default::default()
28253 },
28254 _marker: core::marker::PhantomData,
28255 }
28256 }
28257}
28258impl<'a> SemaphoreWaitInfoBuilder<'a> {
28259 #[inline]
28260 pub fn flags(mut self, value: SemaphoreWaitFlags) -> Self {
28261 self.inner.flags = value;
28262 self
28263 }
28264 #[inline]
28265 pub fn semaphores(mut self, slice: &'a [Semaphore]) -> Self {
28266 self.inner.semaphore_count = slice.len() as u32;
28267 self.inner.p_semaphores = slice.as_ptr();
28268 self
28269 }
28270 #[inline]
28271 pub fn values(mut self, slice: &'a [u64]) -> Self {
28272 self.inner.semaphore_count = slice.len() as u32;
28273 self.inner.p_values = slice.as_ptr();
28274 self
28275 }
28276 #[inline]
28278 pub fn push_next<T: ExtendsSemaphoreWaitInfo>(mut self, next: &'a mut T) -> Self {
28279 unsafe {
28280 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28281 (*next_ptr).p_next = self.inner.p_next as *mut _;
28282 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28283 core::ffi::c_void,
28284 >(next_ptr) as *const _;
28285 }
28286 self
28287 }
28288}
28289impl<'a> core::ops::Deref for SemaphoreWaitInfoBuilder<'a> {
28290 type Target = SemaphoreWaitInfo;
28291 #[inline]
28292 fn deref(&self) -> &Self::Target {
28293 &self.inner
28294 }
28295}
28296impl<'a> core::ops::DerefMut for SemaphoreWaitInfoBuilder<'a> {
28297 #[inline]
28298 fn deref_mut(&mut self) -> &mut Self::Target {
28299 &mut self.inner
28300 }
28301}
28302pub struct SemaphoreSignalInfoBuilder<'a> {
28304 inner: SemaphoreSignalInfo,
28305 _marker: core::marker::PhantomData<&'a ()>,
28306}
28307impl SemaphoreSignalInfo {
28308 #[inline]
28310 pub fn builder<'a>() -> SemaphoreSignalInfoBuilder<'a> {
28311 SemaphoreSignalInfoBuilder {
28312 inner: SemaphoreSignalInfo {
28313 s_type: StructureType::from_raw(1000207005i32),
28314 ..Default::default()
28315 },
28316 _marker: core::marker::PhantomData,
28317 }
28318 }
28319}
28320impl<'a> SemaphoreSignalInfoBuilder<'a> {
28321 #[inline]
28322 pub fn semaphore(mut self, value: Semaphore) -> Self {
28323 self.inner.semaphore = value;
28324 self
28325 }
28326 #[inline]
28327 pub fn value(mut self, value: u64) -> Self {
28328 self.inner.value = value;
28329 self
28330 }
28331 #[inline]
28333 pub fn push_next<T: ExtendsSemaphoreSignalInfo>(mut self, next: &'a mut T) -> Self {
28334 unsafe {
28335 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28336 (*next_ptr).p_next = self.inner.p_next as *mut _;
28337 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28338 core::ffi::c_void,
28339 >(next_ptr) as *const _;
28340 }
28341 self
28342 }
28343}
28344impl<'a> core::ops::Deref for SemaphoreSignalInfoBuilder<'a> {
28345 type Target = SemaphoreSignalInfo;
28346 #[inline]
28347 fn deref(&self) -> &Self::Target {
28348 &self.inner
28349 }
28350}
28351impl<'a> core::ops::DerefMut for SemaphoreSignalInfoBuilder<'a> {
28352 #[inline]
28353 fn deref_mut(&mut self) -> &mut Self::Target {
28354 &mut self.inner
28355 }
28356}
28357pub struct VertexInputBindingDivisorDescriptionBuilder {
28359 inner: VertexInputBindingDivisorDescription,
28360}
28361impl VertexInputBindingDivisorDescription {
28362 #[inline]
28364 pub fn builder() -> VertexInputBindingDivisorDescriptionBuilder {
28365 VertexInputBindingDivisorDescriptionBuilder {
28366 inner: VertexInputBindingDivisorDescription {
28367 ..Default::default()
28368 },
28369 }
28370 }
28371}
28372impl VertexInputBindingDivisorDescriptionBuilder {
28373 #[inline]
28374 pub fn binding(mut self, value: u32) -> Self {
28375 self.inner.binding = value;
28376 self
28377 }
28378 #[inline]
28379 pub fn divisor(mut self, value: u32) -> Self {
28380 self.inner.divisor = value;
28381 self
28382 }
28383}
28384impl core::ops::Deref for VertexInputBindingDivisorDescriptionBuilder {
28385 type Target = VertexInputBindingDivisorDescription;
28386 #[inline]
28387 fn deref(&self) -> &Self::Target {
28388 &self.inner
28389 }
28390}
28391impl core::ops::DerefMut for VertexInputBindingDivisorDescriptionBuilder {
28392 #[inline]
28393 fn deref_mut(&mut self) -> &mut Self::Target {
28394 &mut self.inner
28395 }
28396}
28397pub struct PipelineVertexInputDivisorStateCreateInfoBuilder<'a> {
28399 inner: PipelineVertexInputDivisorStateCreateInfo,
28400 _marker: core::marker::PhantomData<&'a ()>,
28401}
28402impl PipelineVertexInputDivisorStateCreateInfo {
28403 #[inline]
28405 pub fn builder<'a>() -> PipelineVertexInputDivisorStateCreateInfoBuilder<'a> {
28406 PipelineVertexInputDivisorStateCreateInfoBuilder {
28407 inner: PipelineVertexInputDivisorStateCreateInfo {
28408 s_type: StructureType::from_raw(1000190001i32),
28409 ..Default::default()
28410 },
28411 _marker: core::marker::PhantomData,
28412 }
28413 }
28414}
28415impl<'a> PipelineVertexInputDivisorStateCreateInfoBuilder<'a> {
28416 #[inline]
28417 pub fn vertex_binding_divisors(
28418 mut self,
28419 slice: &'a [VertexInputBindingDivisorDescription],
28420 ) -> Self {
28421 self.inner.vertex_binding_divisor_count = slice.len() as u32;
28422 self.inner.p_vertex_binding_divisors = slice.as_ptr();
28423 self
28424 }
28425 #[inline]
28427 pub fn push_next<T: ExtendsPipelineVertexInputDivisorStateCreateInfo>(
28428 mut self,
28429 next: &'a mut T,
28430 ) -> Self {
28431 unsafe {
28432 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28433 (*next_ptr).p_next = self.inner.p_next as *mut _;
28434 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28435 core::ffi::c_void,
28436 >(next_ptr) as *const _;
28437 }
28438 self
28439 }
28440}
28441impl<'a> core::ops::Deref for PipelineVertexInputDivisorStateCreateInfoBuilder<'a> {
28442 type Target = PipelineVertexInputDivisorStateCreateInfo;
28443 #[inline]
28444 fn deref(&self) -> &Self::Target {
28445 &self.inner
28446 }
28447}
28448impl<'a> core::ops::DerefMut for PipelineVertexInputDivisorStateCreateInfoBuilder<'a> {
28449 #[inline]
28450 fn deref_mut(&mut self) -> &mut Self::Target {
28451 &mut self.inner
28452 }
28453}
28454pub struct PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder<'a> {
28456 inner: PhysicalDeviceVertexAttributeDivisorPropertiesEXT,
28457 _marker: core::marker::PhantomData<&'a ()>,
28458}
28459impl PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
28460 #[inline]
28462 pub fn builder<'a>() -> PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder<
28463 'a,
28464 > {
28465 PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder {
28466 inner: PhysicalDeviceVertexAttributeDivisorPropertiesEXT {
28467 s_type: StructureType::from_raw(1000190000i32),
28468 ..Default::default()
28469 },
28470 _marker: core::marker::PhantomData,
28471 }
28472 }
28473}
28474impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder<'a> {
28475 #[inline]
28476 pub fn max_vertex_attrib_divisor(mut self, value: u32) -> Self {
28477 self.inner.max_vertex_attrib_divisor = value;
28478 self
28479 }
28480}
28481impl<'a> core::ops::Deref
28482for PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder<'a> {
28483 type Target = PhysicalDeviceVertexAttributeDivisorPropertiesEXT;
28484 #[inline]
28485 fn deref(&self) -> &Self::Target {
28486 &self.inner
28487 }
28488}
28489impl<'a> core::ops::DerefMut
28490for PhysicalDeviceVertexAttributeDivisorPropertiesEXTBuilder<'a> {
28491 #[inline]
28492 fn deref_mut(&mut self) -> &mut Self::Target {
28493 &mut self.inner
28494 }
28495}
28496pub struct PhysicalDeviceVertexAttributeDivisorPropertiesBuilder<'a> {
28498 inner: PhysicalDeviceVertexAttributeDivisorProperties,
28499 _marker: core::marker::PhantomData<&'a ()>,
28500}
28501impl PhysicalDeviceVertexAttributeDivisorProperties {
28502 #[inline]
28504 pub fn builder<'a>() -> PhysicalDeviceVertexAttributeDivisorPropertiesBuilder<'a> {
28505 PhysicalDeviceVertexAttributeDivisorPropertiesBuilder {
28506 inner: PhysicalDeviceVertexAttributeDivisorProperties {
28507 s_type: StructureType::from_raw(1000525000i32),
28508 ..Default::default()
28509 },
28510 _marker: core::marker::PhantomData,
28511 }
28512 }
28513}
28514impl<'a> PhysicalDeviceVertexAttributeDivisorPropertiesBuilder<'a> {
28515 #[inline]
28516 pub fn max_vertex_attrib_divisor(mut self, value: u32) -> Self {
28517 self.inner.max_vertex_attrib_divisor = value;
28518 self
28519 }
28520 #[inline]
28521 pub fn supports_non_zero_first_instance(mut self, value: bool) -> Self {
28522 self.inner.supports_non_zero_first_instance = value as u32;
28523 self
28524 }
28525}
28526impl<'a> core::ops::Deref for PhysicalDeviceVertexAttributeDivisorPropertiesBuilder<'a> {
28527 type Target = PhysicalDeviceVertexAttributeDivisorProperties;
28528 #[inline]
28529 fn deref(&self) -> &Self::Target {
28530 &self.inner
28531 }
28532}
28533impl<'a> core::ops::DerefMut
28534for PhysicalDeviceVertexAttributeDivisorPropertiesBuilder<'a> {
28535 #[inline]
28536 fn deref_mut(&mut self) -> &mut Self::Target {
28537 &mut self.inner
28538 }
28539}
28540pub struct PhysicalDevicePCIBusInfoPropertiesEXTBuilder<'a> {
28542 inner: PhysicalDevicePCIBusInfoPropertiesEXT,
28543 _marker: core::marker::PhantomData<&'a ()>,
28544}
28545impl PhysicalDevicePCIBusInfoPropertiesEXT {
28546 #[inline]
28548 pub fn builder<'a>() -> PhysicalDevicePCIBusInfoPropertiesEXTBuilder<'a> {
28549 PhysicalDevicePCIBusInfoPropertiesEXTBuilder {
28550 inner: PhysicalDevicePCIBusInfoPropertiesEXT {
28551 s_type: StructureType::from_raw(1000212000i32),
28552 ..Default::default()
28553 },
28554 _marker: core::marker::PhantomData,
28555 }
28556 }
28557}
28558impl<'a> PhysicalDevicePCIBusInfoPropertiesEXTBuilder<'a> {
28559 #[inline]
28560 pub fn pci_domain(mut self, value: u32) -> Self {
28561 self.inner.pci_domain = value;
28562 self
28563 }
28564 #[inline]
28565 pub fn pci_bus(mut self, value: u32) -> Self {
28566 self.inner.pci_bus = value;
28567 self
28568 }
28569 #[inline]
28570 pub fn pci_device(mut self, value: u32) -> Self {
28571 self.inner.pci_device = value;
28572 self
28573 }
28574 #[inline]
28575 pub fn pci_function(mut self, value: u32) -> Self {
28576 self.inner.pci_function = value;
28577 self
28578 }
28579}
28580impl<'a> core::ops::Deref for PhysicalDevicePCIBusInfoPropertiesEXTBuilder<'a> {
28581 type Target = PhysicalDevicePCIBusInfoPropertiesEXT;
28582 #[inline]
28583 fn deref(&self) -> &Self::Target {
28584 &self.inner
28585 }
28586}
28587impl<'a> core::ops::DerefMut for PhysicalDevicePCIBusInfoPropertiesEXTBuilder<'a> {
28588 #[inline]
28589 fn deref_mut(&mut self) -> &mut Self::Target {
28590 &mut self.inner
28591 }
28592}
28593pub struct ImportAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28595 inner: ImportAndroidHardwareBufferInfoANDROID,
28596 _marker: core::marker::PhantomData<&'a ()>,
28597}
28598impl ImportAndroidHardwareBufferInfoANDROID {
28599 #[inline]
28601 pub fn builder<'a>() -> ImportAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28602 ImportAndroidHardwareBufferInfoANDROIDBuilder {
28603 inner: ImportAndroidHardwareBufferInfoANDROID {
28604 s_type: StructureType::from_raw(1000129003i32),
28605 ..Default::default()
28606 },
28607 _marker: core::marker::PhantomData,
28608 }
28609 }
28610}
28611impl<'a> ImportAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28612 #[inline]
28613 pub fn buffer(mut self, value: *mut core::ffi::c_void) -> Self {
28614 self.inner.buffer = value;
28615 self
28616 }
28617 #[inline]
28619 pub fn push_next<T: ExtendsImportAndroidHardwareBufferInfoANDROID>(
28620 mut self,
28621 next: &'a mut T,
28622 ) -> Self {
28623 unsafe {
28624 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28625 (*next_ptr).p_next = self.inner.p_next as *mut _;
28626 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28627 core::ffi::c_void,
28628 >(next_ptr) as *const _;
28629 }
28630 self
28631 }
28632}
28633impl<'a> core::ops::Deref for ImportAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28634 type Target = ImportAndroidHardwareBufferInfoANDROID;
28635 #[inline]
28636 fn deref(&self) -> &Self::Target {
28637 &self.inner
28638 }
28639}
28640impl<'a> core::ops::DerefMut for ImportAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28641 #[inline]
28642 fn deref_mut(&mut self) -> &mut Self::Target {
28643 &mut self.inner
28644 }
28645}
28646pub struct AndroidHardwareBufferUsageANDROIDBuilder<'a> {
28648 inner: AndroidHardwareBufferUsageANDROID,
28649 _marker: core::marker::PhantomData<&'a ()>,
28650}
28651impl AndroidHardwareBufferUsageANDROID {
28652 #[inline]
28654 pub fn builder<'a>() -> AndroidHardwareBufferUsageANDROIDBuilder<'a> {
28655 AndroidHardwareBufferUsageANDROIDBuilder {
28656 inner: AndroidHardwareBufferUsageANDROID {
28657 s_type: StructureType::from_raw(1000129000i32),
28658 ..Default::default()
28659 },
28660 _marker: core::marker::PhantomData,
28661 }
28662 }
28663}
28664impl<'a> AndroidHardwareBufferUsageANDROIDBuilder<'a> {
28665 #[inline]
28666 pub fn android_hardware_buffer_usage(mut self, value: u64) -> Self {
28667 self.inner.android_hardware_buffer_usage = value;
28668 self
28669 }
28670}
28671impl<'a> core::ops::Deref for AndroidHardwareBufferUsageANDROIDBuilder<'a> {
28672 type Target = AndroidHardwareBufferUsageANDROID;
28673 #[inline]
28674 fn deref(&self) -> &Self::Target {
28675 &self.inner
28676 }
28677}
28678impl<'a> core::ops::DerefMut for AndroidHardwareBufferUsageANDROIDBuilder<'a> {
28679 #[inline]
28680 fn deref_mut(&mut self) -> &mut Self::Target {
28681 &mut self.inner
28682 }
28683}
28684pub struct AndroidHardwareBufferPropertiesANDROIDBuilder<'a> {
28686 inner: AndroidHardwareBufferPropertiesANDROID,
28687 _marker: core::marker::PhantomData<&'a ()>,
28688}
28689impl AndroidHardwareBufferPropertiesANDROID {
28690 #[inline]
28692 pub fn builder<'a>() -> AndroidHardwareBufferPropertiesANDROIDBuilder<'a> {
28693 AndroidHardwareBufferPropertiesANDROIDBuilder {
28694 inner: AndroidHardwareBufferPropertiesANDROID {
28695 s_type: StructureType::from_raw(1000129001i32),
28696 ..Default::default()
28697 },
28698 _marker: core::marker::PhantomData,
28699 }
28700 }
28701}
28702impl<'a> AndroidHardwareBufferPropertiesANDROIDBuilder<'a> {
28703 #[inline]
28704 pub fn allocation_size(mut self, value: u64) -> Self {
28705 self.inner.allocation_size = value;
28706 self
28707 }
28708 #[inline]
28709 pub fn memory_type_bits(mut self, value: u32) -> Self {
28710 self.inner.memory_type_bits = value;
28711 self
28712 }
28713}
28714impl<'a> core::ops::Deref for AndroidHardwareBufferPropertiesANDROIDBuilder<'a> {
28715 type Target = AndroidHardwareBufferPropertiesANDROID;
28716 #[inline]
28717 fn deref(&self) -> &Self::Target {
28718 &self.inner
28719 }
28720}
28721impl<'a> core::ops::DerefMut for AndroidHardwareBufferPropertiesANDROIDBuilder<'a> {
28722 #[inline]
28723 fn deref_mut(&mut self) -> &mut Self::Target {
28724 &mut self.inner
28725 }
28726}
28727pub struct MemoryGetAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28729 inner: MemoryGetAndroidHardwareBufferInfoANDROID,
28730 _marker: core::marker::PhantomData<&'a ()>,
28731}
28732impl MemoryGetAndroidHardwareBufferInfoANDROID {
28733 #[inline]
28735 pub fn builder<'a>() -> MemoryGetAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28736 MemoryGetAndroidHardwareBufferInfoANDROIDBuilder {
28737 inner: MemoryGetAndroidHardwareBufferInfoANDROID {
28738 s_type: StructureType::from_raw(1000129004i32),
28739 ..Default::default()
28740 },
28741 _marker: core::marker::PhantomData,
28742 }
28743 }
28744}
28745impl<'a> MemoryGetAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28746 #[inline]
28747 pub fn memory(mut self, value: DeviceMemory) -> Self {
28748 self.inner.memory = value;
28749 self
28750 }
28751 #[inline]
28753 pub fn push_next<T: ExtendsMemoryGetAndroidHardwareBufferInfoANDROID>(
28754 mut self,
28755 next: &'a mut T,
28756 ) -> Self {
28757 unsafe {
28758 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28759 (*next_ptr).p_next = self.inner.p_next as *mut _;
28760 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28761 core::ffi::c_void,
28762 >(next_ptr) as *const _;
28763 }
28764 self
28765 }
28766}
28767impl<'a> core::ops::Deref for MemoryGetAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28768 type Target = MemoryGetAndroidHardwareBufferInfoANDROID;
28769 #[inline]
28770 fn deref(&self) -> &Self::Target {
28771 &self.inner
28772 }
28773}
28774impl<'a> core::ops::DerefMut for MemoryGetAndroidHardwareBufferInfoANDROIDBuilder<'a> {
28775 #[inline]
28776 fn deref_mut(&mut self) -> &mut Self::Target {
28777 &mut self.inner
28778 }
28779}
28780pub struct AndroidHardwareBufferFormatPropertiesANDROIDBuilder<'a> {
28782 inner: AndroidHardwareBufferFormatPropertiesANDROID,
28783 _marker: core::marker::PhantomData<&'a ()>,
28784}
28785impl AndroidHardwareBufferFormatPropertiesANDROID {
28786 #[inline]
28788 pub fn builder<'a>() -> AndroidHardwareBufferFormatPropertiesANDROIDBuilder<'a> {
28789 AndroidHardwareBufferFormatPropertiesANDROIDBuilder {
28790 inner: AndroidHardwareBufferFormatPropertiesANDROID {
28791 s_type: StructureType::from_raw(1000129002i32),
28792 ..Default::default()
28793 },
28794 _marker: core::marker::PhantomData,
28795 }
28796 }
28797}
28798impl<'a> AndroidHardwareBufferFormatPropertiesANDROIDBuilder<'a> {
28799 #[inline]
28800 pub fn format(mut self, value: Format) -> Self {
28801 self.inner.format = value;
28802 self
28803 }
28804 #[inline]
28805 pub fn external_format(mut self, value: u64) -> Self {
28806 self.inner.external_format = value;
28807 self
28808 }
28809 #[inline]
28810 pub fn format_features(mut self, value: FormatFeatureFlags) -> Self {
28811 self.inner.format_features = value;
28812 self
28813 }
28814 #[inline]
28815 pub fn sampler_ycbcr_conversion_components(
28816 mut self,
28817 value: ComponentMapping,
28818 ) -> Self {
28819 self.inner.sampler_ycbcr_conversion_components = value;
28820 self
28821 }
28822 #[inline]
28823 pub fn suggested_ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
28824 self.inner.suggested_ycbcr_model = value;
28825 self
28826 }
28827 #[inline]
28828 pub fn suggested_ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
28829 self.inner.suggested_ycbcr_range = value;
28830 self
28831 }
28832 #[inline]
28833 pub fn suggested_x_chroma_offset(mut self, value: ChromaLocation) -> Self {
28834 self.inner.suggested_x_chroma_offset = value;
28835 self
28836 }
28837 #[inline]
28838 pub fn suggested_y_chroma_offset(mut self, value: ChromaLocation) -> Self {
28839 self.inner.suggested_y_chroma_offset = value;
28840 self
28841 }
28842}
28843impl<'a> core::ops::Deref for AndroidHardwareBufferFormatPropertiesANDROIDBuilder<'a> {
28844 type Target = AndroidHardwareBufferFormatPropertiesANDROID;
28845 #[inline]
28846 fn deref(&self) -> &Self::Target {
28847 &self.inner
28848 }
28849}
28850impl<'a> core::ops::DerefMut
28851for AndroidHardwareBufferFormatPropertiesANDROIDBuilder<'a> {
28852 #[inline]
28853 fn deref_mut(&mut self) -> &mut Self::Target {
28854 &mut self.inner
28855 }
28856}
28857pub struct CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
28859 inner: CommandBufferInheritanceConditionalRenderingInfoEXT,
28860 _marker: core::marker::PhantomData<&'a ()>,
28861}
28862impl CommandBufferInheritanceConditionalRenderingInfoEXT {
28863 #[inline]
28865 pub fn builder<'a>() -> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<
28866 'a,
28867 > {
28868 CommandBufferInheritanceConditionalRenderingInfoEXTBuilder {
28869 inner: CommandBufferInheritanceConditionalRenderingInfoEXT {
28870 s_type: StructureType::from_raw(1000081000i32),
28871 ..Default::default()
28872 },
28873 _marker: core::marker::PhantomData,
28874 }
28875 }
28876}
28877impl<'a> CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
28878 #[inline]
28879 pub fn conditional_rendering_enable(mut self, value: bool) -> Self {
28880 self.inner.conditional_rendering_enable = value as u32;
28881 self
28882 }
28883 #[inline]
28885 pub fn push_next<T: ExtendsCommandBufferInheritanceConditionalRenderingInfoEXT>(
28886 mut self,
28887 next: &'a mut T,
28888 ) -> Self {
28889 unsafe {
28890 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28891 (*next_ptr).p_next = self.inner.p_next as *mut _;
28892 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28893 core::ffi::c_void,
28894 >(next_ptr) as *const _;
28895 }
28896 self
28897 }
28898}
28899impl<'a> core::ops::Deref
28900for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
28901 type Target = CommandBufferInheritanceConditionalRenderingInfoEXT;
28902 #[inline]
28903 fn deref(&self) -> &Self::Target {
28904 &self.inner
28905 }
28906}
28907impl<'a> core::ops::DerefMut
28908for CommandBufferInheritanceConditionalRenderingInfoEXTBuilder<'a> {
28909 #[inline]
28910 fn deref_mut(&mut self) -> &mut Self::Target {
28911 &mut self.inner
28912 }
28913}
28914pub struct ExternalFormatANDROIDBuilder<'a> {
28916 inner: ExternalFormatANDROID,
28917 _marker: core::marker::PhantomData<&'a ()>,
28918}
28919impl ExternalFormatANDROID {
28920 #[inline]
28922 pub fn builder<'a>() -> ExternalFormatANDROIDBuilder<'a> {
28923 ExternalFormatANDROIDBuilder {
28924 inner: ExternalFormatANDROID {
28925 s_type: StructureType::from_raw(1000129005i32),
28926 ..Default::default()
28927 },
28928 _marker: core::marker::PhantomData,
28929 }
28930 }
28931}
28932impl<'a> ExternalFormatANDROIDBuilder<'a> {
28933 #[inline]
28934 pub fn external_format(mut self, value: u64) -> Self {
28935 self.inner.external_format = value;
28936 self
28937 }
28938 #[inline]
28940 pub fn push_next<T: ExtendsExternalFormatANDROID>(
28941 mut self,
28942 next: &'a mut T,
28943 ) -> Self {
28944 unsafe {
28945 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
28946 (*next_ptr).p_next = self.inner.p_next as *mut _;
28947 self.inner.p_next = <*mut BaseOutStructure>::cast::<
28948 core::ffi::c_void,
28949 >(next_ptr);
28950 }
28951 self
28952 }
28953}
28954impl<'a> core::ops::Deref for ExternalFormatANDROIDBuilder<'a> {
28955 type Target = ExternalFormatANDROID;
28956 #[inline]
28957 fn deref(&self) -> &Self::Target {
28958 &self.inner
28959 }
28960}
28961impl<'a> core::ops::DerefMut for ExternalFormatANDROIDBuilder<'a> {
28962 #[inline]
28963 fn deref_mut(&mut self) -> &mut Self::Target {
28964 &mut self.inner
28965 }
28966}
28967pub struct PhysicalDevice8BitStorageFeaturesBuilder<'a> {
28969 inner: PhysicalDevice8BitStorageFeatures,
28970 _marker: core::marker::PhantomData<&'a ()>,
28971}
28972impl PhysicalDevice8BitStorageFeatures {
28973 #[inline]
28975 pub fn builder<'a>() -> PhysicalDevice8BitStorageFeaturesBuilder<'a> {
28976 PhysicalDevice8BitStorageFeaturesBuilder {
28977 inner: PhysicalDevice8BitStorageFeatures {
28978 s_type: StructureType::from_raw(1000177000i32),
28979 ..Default::default()
28980 },
28981 _marker: core::marker::PhantomData,
28982 }
28983 }
28984}
28985impl<'a> PhysicalDevice8BitStorageFeaturesBuilder<'a> {
28986 #[inline]
28987 pub fn storage_buffer8_bit_access(mut self, value: bool) -> Self {
28988 self.inner.storage_buffer8_bit_access = value as u32;
28989 self
28990 }
28991 #[inline]
28992 pub fn uniform_and_storage_buffer8_bit_access(mut self, value: bool) -> Self {
28993 self.inner.uniform_and_storage_buffer8_bit_access = value as u32;
28994 self
28995 }
28996 #[inline]
28997 pub fn storage_push_constant8(mut self, value: bool) -> Self {
28998 self.inner.storage_push_constant8 = value as u32;
28999 self
29000 }
29001 #[inline]
29003 pub fn push_next<T: ExtendsPhysicalDevice8BitStorageFeatures>(
29004 mut self,
29005 next: &'a mut T,
29006 ) -> Self {
29007 unsafe {
29008 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29009 (*next_ptr).p_next = self.inner.p_next as *mut _;
29010 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29011 core::ffi::c_void,
29012 >(next_ptr);
29013 }
29014 self
29015 }
29016}
29017impl<'a> core::ops::Deref for PhysicalDevice8BitStorageFeaturesBuilder<'a> {
29018 type Target = PhysicalDevice8BitStorageFeatures;
29019 #[inline]
29020 fn deref(&self) -> &Self::Target {
29021 &self.inner
29022 }
29023}
29024impl<'a> core::ops::DerefMut for PhysicalDevice8BitStorageFeaturesBuilder<'a> {
29025 #[inline]
29026 fn deref_mut(&mut self) -> &mut Self::Target {
29027 &mut self.inner
29028 }
29029}
29030pub struct PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
29032 inner: PhysicalDeviceConditionalRenderingFeaturesEXT,
29033 _marker: core::marker::PhantomData<&'a ()>,
29034}
29035impl PhysicalDeviceConditionalRenderingFeaturesEXT {
29036 #[inline]
29038 pub fn builder<'a>() -> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
29039 PhysicalDeviceConditionalRenderingFeaturesEXTBuilder {
29040 inner: PhysicalDeviceConditionalRenderingFeaturesEXT {
29041 s_type: StructureType::from_raw(1000081001i32),
29042 ..Default::default()
29043 },
29044 _marker: core::marker::PhantomData,
29045 }
29046 }
29047}
29048impl<'a> PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
29049 #[inline]
29050 pub fn conditional_rendering(mut self, value: bool) -> Self {
29051 self.inner.conditional_rendering = value as u32;
29052 self
29053 }
29054 #[inline]
29055 pub fn inherited_conditional_rendering(mut self, value: bool) -> Self {
29056 self.inner.inherited_conditional_rendering = value as u32;
29057 self
29058 }
29059 #[inline]
29061 pub fn push_next<T: ExtendsPhysicalDeviceConditionalRenderingFeaturesEXT>(
29062 mut self,
29063 next: &'a mut T,
29064 ) -> Self {
29065 unsafe {
29066 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29067 (*next_ptr).p_next = self.inner.p_next as *mut _;
29068 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29069 core::ffi::c_void,
29070 >(next_ptr);
29071 }
29072 self
29073 }
29074}
29075impl<'a> core::ops::Deref for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
29076 type Target = PhysicalDeviceConditionalRenderingFeaturesEXT;
29077 #[inline]
29078 fn deref(&self) -> &Self::Target {
29079 &self.inner
29080 }
29081}
29082impl<'a> core::ops::DerefMut
29083for PhysicalDeviceConditionalRenderingFeaturesEXTBuilder<'a> {
29084 #[inline]
29085 fn deref_mut(&mut self) -> &mut Self::Target {
29086 &mut self.inner
29087 }
29088}
29089pub struct PhysicalDeviceVulkanMemoryModelFeaturesBuilder<'a> {
29091 inner: PhysicalDeviceVulkanMemoryModelFeatures,
29092 _marker: core::marker::PhantomData<&'a ()>,
29093}
29094impl PhysicalDeviceVulkanMemoryModelFeatures {
29095 #[inline]
29097 pub fn builder<'a>() -> PhysicalDeviceVulkanMemoryModelFeaturesBuilder<'a> {
29098 PhysicalDeviceVulkanMemoryModelFeaturesBuilder {
29099 inner: PhysicalDeviceVulkanMemoryModelFeatures {
29100 s_type: StructureType::from_raw(1000211000i32),
29101 ..Default::default()
29102 },
29103 _marker: core::marker::PhantomData,
29104 }
29105 }
29106}
29107impl<'a> PhysicalDeviceVulkanMemoryModelFeaturesBuilder<'a> {
29108 #[inline]
29109 pub fn vulkan_memory_model(mut self, value: bool) -> Self {
29110 self.inner.vulkan_memory_model = value as u32;
29111 self
29112 }
29113 #[inline]
29114 pub fn vulkan_memory_model_device_scope(mut self, value: bool) -> Self {
29115 self.inner.vulkan_memory_model_device_scope = value as u32;
29116 self
29117 }
29118 #[inline]
29119 pub fn vulkan_memory_model_availability_visibility_chains(
29120 mut self,
29121 value: bool,
29122 ) -> Self {
29123 self.inner.vulkan_memory_model_availability_visibility_chains = value as u32;
29124 self
29125 }
29126 #[inline]
29128 pub fn push_next<T: ExtendsPhysicalDeviceVulkanMemoryModelFeatures>(
29129 mut self,
29130 next: &'a mut T,
29131 ) -> Self {
29132 unsafe {
29133 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29134 (*next_ptr).p_next = self.inner.p_next as *mut _;
29135 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29136 core::ffi::c_void,
29137 >(next_ptr);
29138 }
29139 self
29140 }
29141}
29142impl<'a> core::ops::Deref for PhysicalDeviceVulkanMemoryModelFeaturesBuilder<'a> {
29143 type Target = PhysicalDeviceVulkanMemoryModelFeatures;
29144 #[inline]
29145 fn deref(&self) -> &Self::Target {
29146 &self.inner
29147 }
29148}
29149impl<'a> core::ops::DerefMut for PhysicalDeviceVulkanMemoryModelFeaturesBuilder<'a> {
29150 #[inline]
29151 fn deref_mut(&mut self) -> &mut Self::Target {
29152 &mut self.inner
29153 }
29154}
29155pub struct PhysicalDeviceShaderAtomicInt64FeaturesBuilder<'a> {
29157 inner: PhysicalDeviceShaderAtomicInt64Features,
29158 _marker: core::marker::PhantomData<&'a ()>,
29159}
29160impl PhysicalDeviceShaderAtomicInt64Features {
29161 #[inline]
29163 pub fn builder<'a>() -> PhysicalDeviceShaderAtomicInt64FeaturesBuilder<'a> {
29164 PhysicalDeviceShaderAtomicInt64FeaturesBuilder {
29165 inner: PhysicalDeviceShaderAtomicInt64Features {
29166 s_type: StructureType::from_raw(1000180000i32),
29167 ..Default::default()
29168 },
29169 _marker: core::marker::PhantomData,
29170 }
29171 }
29172}
29173impl<'a> PhysicalDeviceShaderAtomicInt64FeaturesBuilder<'a> {
29174 #[inline]
29175 pub fn shader_buffer_int64_atomics(mut self, value: bool) -> Self {
29176 self.inner.shader_buffer_int64_atomics = value as u32;
29177 self
29178 }
29179 #[inline]
29180 pub fn shader_shared_int64_atomics(mut self, value: bool) -> Self {
29181 self.inner.shader_shared_int64_atomics = value as u32;
29182 self
29183 }
29184 #[inline]
29186 pub fn push_next<T: ExtendsPhysicalDeviceShaderAtomicInt64Features>(
29187 mut self,
29188 next: &'a mut T,
29189 ) -> Self {
29190 unsafe {
29191 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29192 (*next_ptr).p_next = self.inner.p_next as *mut _;
29193 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29194 core::ffi::c_void,
29195 >(next_ptr);
29196 }
29197 self
29198 }
29199}
29200impl<'a> core::ops::Deref for PhysicalDeviceShaderAtomicInt64FeaturesBuilder<'a> {
29201 type Target = PhysicalDeviceShaderAtomicInt64Features;
29202 #[inline]
29203 fn deref(&self) -> &Self::Target {
29204 &self.inner
29205 }
29206}
29207impl<'a> core::ops::DerefMut for PhysicalDeviceShaderAtomicInt64FeaturesBuilder<'a> {
29208 #[inline]
29209 fn deref_mut(&mut self) -> &mut Self::Target {
29210 &mut self.inner
29211 }
29212}
29213pub struct PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder<'a> {
29215 inner: PhysicalDeviceShaderAtomicFloatFeaturesEXT,
29216 _marker: core::marker::PhantomData<&'a ()>,
29217}
29218impl PhysicalDeviceShaderAtomicFloatFeaturesEXT {
29219 #[inline]
29221 pub fn builder<'a>() -> PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder<'a> {
29222 PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder {
29223 inner: PhysicalDeviceShaderAtomicFloatFeaturesEXT {
29224 s_type: StructureType::from_raw(1000260000i32),
29225 ..Default::default()
29226 },
29227 _marker: core::marker::PhantomData,
29228 }
29229 }
29230}
29231impl<'a> PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder<'a> {
29232 #[inline]
29233 pub fn shader_buffer_float32_atomics(mut self, value: bool) -> Self {
29234 self.inner.shader_buffer_float32_atomics = value as u32;
29235 self
29236 }
29237 #[inline]
29238 pub fn shader_buffer_float32_atomic_add(mut self, value: bool) -> Self {
29239 self.inner.shader_buffer_float32_atomic_add = value as u32;
29240 self
29241 }
29242 #[inline]
29243 pub fn shader_buffer_float64_atomics(mut self, value: bool) -> Self {
29244 self.inner.shader_buffer_float64_atomics = value as u32;
29245 self
29246 }
29247 #[inline]
29248 pub fn shader_buffer_float64_atomic_add(mut self, value: bool) -> Self {
29249 self.inner.shader_buffer_float64_atomic_add = value as u32;
29250 self
29251 }
29252 #[inline]
29253 pub fn shader_shared_float32_atomics(mut self, value: bool) -> Self {
29254 self.inner.shader_shared_float32_atomics = value as u32;
29255 self
29256 }
29257 #[inline]
29258 pub fn shader_shared_float32_atomic_add(mut self, value: bool) -> Self {
29259 self.inner.shader_shared_float32_atomic_add = value as u32;
29260 self
29261 }
29262 #[inline]
29263 pub fn shader_shared_float64_atomics(mut self, value: bool) -> Self {
29264 self.inner.shader_shared_float64_atomics = value as u32;
29265 self
29266 }
29267 #[inline]
29268 pub fn shader_shared_float64_atomic_add(mut self, value: bool) -> Self {
29269 self.inner.shader_shared_float64_atomic_add = value as u32;
29270 self
29271 }
29272 #[inline]
29273 pub fn shader_image_float32_atomics(mut self, value: bool) -> Self {
29274 self.inner.shader_image_float32_atomics = value as u32;
29275 self
29276 }
29277 #[inline]
29278 pub fn shader_image_float32_atomic_add(mut self, value: bool) -> Self {
29279 self.inner.shader_image_float32_atomic_add = value as u32;
29280 self
29281 }
29282 #[inline]
29283 pub fn sparse_image_float32_atomics(mut self, value: bool) -> Self {
29284 self.inner.sparse_image_float32_atomics = value as u32;
29285 self
29286 }
29287 #[inline]
29288 pub fn sparse_image_float32_atomic_add(mut self, value: bool) -> Self {
29289 self.inner.sparse_image_float32_atomic_add = value as u32;
29290 self
29291 }
29292 #[inline]
29294 pub fn push_next<T: ExtendsPhysicalDeviceShaderAtomicFloatFeaturesEXT>(
29295 mut self,
29296 next: &'a mut T,
29297 ) -> Self {
29298 unsafe {
29299 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29300 (*next_ptr).p_next = self.inner.p_next as *mut _;
29301 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29302 core::ffi::c_void,
29303 >(next_ptr);
29304 }
29305 self
29306 }
29307}
29308impl<'a> core::ops::Deref for PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder<'a> {
29309 type Target = PhysicalDeviceShaderAtomicFloatFeaturesEXT;
29310 #[inline]
29311 fn deref(&self) -> &Self::Target {
29312 &self.inner
29313 }
29314}
29315impl<'a> core::ops::DerefMut for PhysicalDeviceShaderAtomicFloatFeaturesEXTBuilder<'a> {
29316 #[inline]
29317 fn deref_mut(&mut self) -> &mut Self::Target {
29318 &mut self.inner
29319 }
29320}
29321pub struct PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder<'a> {
29323 inner: PhysicalDeviceShaderAtomicFloat2FeaturesEXT,
29324 _marker: core::marker::PhantomData<&'a ()>,
29325}
29326impl PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
29327 #[inline]
29329 pub fn builder<'a>() -> PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder<'a> {
29330 PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder {
29331 inner: PhysicalDeviceShaderAtomicFloat2FeaturesEXT {
29332 s_type: StructureType::from_raw(1000273000i32),
29333 ..Default::default()
29334 },
29335 _marker: core::marker::PhantomData,
29336 }
29337 }
29338}
29339impl<'a> PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder<'a> {
29340 #[inline]
29341 pub fn shader_buffer_float16_atomics(mut self, value: bool) -> Self {
29342 self.inner.shader_buffer_float16_atomics = value as u32;
29343 self
29344 }
29345 #[inline]
29346 pub fn shader_buffer_float16_atomic_add(mut self, value: bool) -> Self {
29347 self.inner.shader_buffer_float16_atomic_add = value as u32;
29348 self
29349 }
29350 #[inline]
29351 pub fn shader_buffer_float16_atomic_min_max(mut self, value: bool) -> Self {
29352 self.inner.shader_buffer_float16_atomic_min_max = value as u32;
29353 self
29354 }
29355 #[inline]
29356 pub fn shader_buffer_float32_atomic_min_max(mut self, value: bool) -> Self {
29357 self.inner.shader_buffer_float32_atomic_min_max = value as u32;
29358 self
29359 }
29360 #[inline]
29361 pub fn shader_buffer_float64_atomic_min_max(mut self, value: bool) -> Self {
29362 self.inner.shader_buffer_float64_atomic_min_max = value as u32;
29363 self
29364 }
29365 #[inline]
29366 pub fn shader_shared_float16_atomics(mut self, value: bool) -> Self {
29367 self.inner.shader_shared_float16_atomics = value as u32;
29368 self
29369 }
29370 #[inline]
29371 pub fn shader_shared_float16_atomic_add(mut self, value: bool) -> Self {
29372 self.inner.shader_shared_float16_atomic_add = value as u32;
29373 self
29374 }
29375 #[inline]
29376 pub fn shader_shared_float16_atomic_min_max(mut self, value: bool) -> Self {
29377 self.inner.shader_shared_float16_atomic_min_max = value as u32;
29378 self
29379 }
29380 #[inline]
29381 pub fn shader_shared_float32_atomic_min_max(mut self, value: bool) -> Self {
29382 self.inner.shader_shared_float32_atomic_min_max = value as u32;
29383 self
29384 }
29385 #[inline]
29386 pub fn shader_shared_float64_atomic_min_max(mut self, value: bool) -> Self {
29387 self.inner.shader_shared_float64_atomic_min_max = value as u32;
29388 self
29389 }
29390 #[inline]
29391 pub fn shader_image_float32_atomic_min_max(mut self, value: bool) -> Self {
29392 self.inner.shader_image_float32_atomic_min_max = value as u32;
29393 self
29394 }
29395 #[inline]
29396 pub fn sparse_image_float32_atomic_min_max(mut self, value: bool) -> Self {
29397 self.inner.sparse_image_float32_atomic_min_max = value as u32;
29398 self
29399 }
29400 #[inline]
29402 pub fn push_next<T: ExtendsPhysicalDeviceShaderAtomicFloat2FeaturesEXT>(
29403 mut self,
29404 next: &'a mut T,
29405 ) -> Self {
29406 unsafe {
29407 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29408 (*next_ptr).p_next = self.inner.p_next as *mut _;
29409 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29410 core::ffi::c_void,
29411 >(next_ptr);
29412 }
29413 self
29414 }
29415}
29416impl<'a> core::ops::Deref for PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder<'a> {
29417 type Target = PhysicalDeviceShaderAtomicFloat2FeaturesEXT;
29418 #[inline]
29419 fn deref(&self) -> &Self::Target {
29420 &self.inner
29421 }
29422}
29423impl<'a> core::ops::DerefMut for PhysicalDeviceShaderAtomicFloat2FeaturesEXTBuilder<'a> {
29424 #[inline]
29425 fn deref_mut(&mut self) -> &mut Self::Target {
29426 &mut self.inner
29427 }
29428}
29429pub struct PhysicalDeviceVertexAttributeDivisorFeaturesBuilder<'a> {
29431 inner: PhysicalDeviceVertexAttributeDivisorFeatures,
29432 _marker: core::marker::PhantomData<&'a ()>,
29433}
29434impl PhysicalDeviceVertexAttributeDivisorFeatures {
29435 #[inline]
29437 pub fn builder<'a>() -> PhysicalDeviceVertexAttributeDivisorFeaturesBuilder<'a> {
29438 PhysicalDeviceVertexAttributeDivisorFeaturesBuilder {
29439 inner: PhysicalDeviceVertexAttributeDivisorFeatures {
29440 s_type: StructureType::from_raw(1000190002i32),
29441 ..Default::default()
29442 },
29443 _marker: core::marker::PhantomData,
29444 }
29445 }
29446}
29447impl<'a> PhysicalDeviceVertexAttributeDivisorFeaturesBuilder<'a> {
29448 #[inline]
29449 pub fn vertex_attribute_instance_rate_divisor(mut self, value: bool) -> Self {
29450 self.inner.vertex_attribute_instance_rate_divisor = value as u32;
29451 self
29452 }
29453 #[inline]
29454 pub fn vertex_attribute_instance_rate_zero_divisor(mut self, value: bool) -> Self {
29455 self.inner.vertex_attribute_instance_rate_zero_divisor = value as u32;
29456 self
29457 }
29458 #[inline]
29460 pub fn push_next<T: ExtendsPhysicalDeviceVertexAttributeDivisorFeatures>(
29461 mut self,
29462 next: &'a mut T,
29463 ) -> Self {
29464 unsafe {
29465 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29466 (*next_ptr).p_next = self.inner.p_next as *mut _;
29467 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29468 core::ffi::c_void,
29469 >(next_ptr);
29470 }
29471 self
29472 }
29473}
29474impl<'a> core::ops::Deref for PhysicalDeviceVertexAttributeDivisorFeaturesBuilder<'a> {
29475 type Target = PhysicalDeviceVertexAttributeDivisorFeatures;
29476 #[inline]
29477 fn deref(&self) -> &Self::Target {
29478 &self.inner
29479 }
29480}
29481impl<'a> core::ops::DerefMut
29482for PhysicalDeviceVertexAttributeDivisorFeaturesBuilder<'a> {
29483 #[inline]
29484 fn deref_mut(&mut self) -> &mut Self::Target {
29485 &mut self.inner
29486 }
29487}
29488pub struct QueueFamilyCheckpointPropertiesNVBuilder<'a> {
29490 inner: QueueFamilyCheckpointPropertiesNV,
29491 _marker: core::marker::PhantomData<&'a ()>,
29492}
29493impl QueueFamilyCheckpointPropertiesNV {
29494 #[inline]
29496 pub fn builder<'a>() -> QueueFamilyCheckpointPropertiesNVBuilder<'a> {
29497 QueueFamilyCheckpointPropertiesNVBuilder {
29498 inner: QueueFamilyCheckpointPropertiesNV {
29499 s_type: StructureType::from_raw(1000206001i32),
29500 ..Default::default()
29501 },
29502 _marker: core::marker::PhantomData,
29503 }
29504 }
29505}
29506impl<'a> QueueFamilyCheckpointPropertiesNVBuilder<'a> {
29507 #[inline]
29508 pub fn checkpoint_execution_stage_mask(mut self, value: PipelineStageFlags) -> Self {
29509 self.inner.checkpoint_execution_stage_mask = value;
29510 self
29511 }
29512}
29513impl<'a> core::ops::Deref for QueueFamilyCheckpointPropertiesNVBuilder<'a> {
29514 type Target = QueueFamilyCheckpointPropertiesNV;
29515 #[inline]
29516 fn deref(&self) -> &Self::Target {
29517 &self.inner
29518 }
29519}
29520impl<'a> core::ops::DerefMut for QueueFamilyCheckpointPropertiesNVBuilder<'a> {
29521 #[inline]
29522 fn deref_mut(&mut self) -> &mut Self::Target {
29523 &mut self.inner
29524 }
29525}
29526pub struct CheckpointDataNVBuilder<'a> {
29528 inner: CheckpointDataNV,
29529 _marker: core::marker::PhantomData<&'a ()>,
29530}
29531impl CheckpointDataNV {
29532 #[inline]
29534 pub fn builder<'a>() -> CheckpointDataNVBuilder<'a> {
29535 CheckpointDataNVBuilder {
29536 inner: CheckpointDataNV {
29537 s_type: StructureType::from_raw(1000206000i32),
29538 ..Default::default()
29539 },
29540 _marker: core::marker::PhantomData,
29541 }
29542 }
29543}
29544impl<'a> CheckpointDataNVBuilder<'a> {
29545 #[inline]
29546 pub fn stage(mut self, value: PipelineStageFlagBits) -> Self {
29547 self.inner.stage = value;
29548 self
29549 }
29550 #[inline]
29551 pub fn checkpoint_marker(mut self, value: *mut core::ffi::c_void) -> Self {
29552 self.inner.p_checkpoint_marker = value;
29553 self
29554 }
29555}
29556impl<'a> core::ops::Deref for CheckpointDataNVBuilder<'a> {
29557 type Target = CheckpointDataNV;
29558 #[inline]
29559 fn deref(&self) -> &Self::Target {
29560 &self.inner
29561 }
29562}
29563impl<'a> core::ops::DerefMut for CheckpointDataNVBuilder<'a> {
29564 #[inline]
29565 fn deref_mut(&mut self) -> &mut Self::Target {
29566 &mut self.inner
29567 }
29568}
29569pub struct PhysicalDeviceDepthStencilResolvePropertiesBuilder<'a> {
29571 inner: PhysicalDeviceDepthStencilResolveProperties,
29572 _marker: core::marker::PhantomData<&'a ()>,
29573}
29574impl PhysicalDeviceDepthStencilResolveProperties {
29575 #[inline]
29577 pub fn builder<'a>() -> PhysicalDeviceDepthStencilResolvePropertiesBuilder<'a> {
29578 PhysicalDeviceDepthStencilResolvePropertiesBuilder {
29579 inner: PhysicalDeviceDepthStencilResolveProperties {
29580 s_type: StructureType::from_raw(1000199000i32),
29581 ..Default::default()
29582 },
29583 _marker: core::marker::PhantomData,
29584 }
29585 }
29586}
29587impl<'a> PhysicalDeviceDepthStencilResolvePropertiesBuilder<'a> {
29588 #[inline]
29589 pub fn supported_depth_resolve_modes(mut self, value: ResolveModeFlags) -> Self {
29590 self.inner.supported_depth_resolve_modes = value;
29591 self
29592 }
29593 #[inline]
29594 pub fn supported_stencil_resolve_modes(mut self, value: ResolveModeFlags) -> Self {
29595 self.inner.supported_stencil_resolve_modes = value;
29596 self
29597 }
29598 #[inline]
29599 pub fn independent_resolve_none(mut self, value: bool) -> Self {
29600 self.inner.independent_resolve_none = value as u32;
29601 self
29602 }
29603 #[inline]
29604 pub fn independent_resolve(mut self, value: bool) -> Self {
29605 self.inner.independent_resolve = value as u32;
29606 self
29607 }
29608}
29609impl<'a> core::ops::Deref for PhysicalDeviceDepthStencilResolvePropertiesBuilder<'a> {
29610 type Target = PhysicalDeviceDepthStencilResolveProperties;
29611 #[inline]
29612 fn deref(&self) -> &Self::Target {
29613 &self.inner
29614 }
29615}
29616impl<'a> core::ops::DerefMut for PhysicalDeviceDepthStencilResolvePropertiesBuilder<'a> {
29617 #[inline]
29618 fn deref_mut(&mut self) -> &mut Self::Target {
29619 &mut self.inner
29620 }
29621}
29622pub struct SubpassDescriptionDepthStencilResolveBuilder<'a> {
29624 inner: SubpassDescriptionDepthStencilResolve,
29625 _marker: core::marker::PhantomData<&'a ()>,
29626}
29627impl SubpassDescriptionDepthStencilResolve {
29628 #[inline]
29630 pub fn builder<'a>() -> SubpassDescriptionDepthStencilResolveBuilder<'a> {
29631 SubpassDescriptionDepthStencilResolveBuilder {
29632 inner: SubpassDescriptionDepthStencilResolve {
29633 s_type: StructureType::from_raw(1000199001i32),
29634 ..Default::default()
29635 },
29636 _marker: core::marker::PhantomData,
29637 }
29638 }
29639}
29640impl<'a> SubpassDescriptionDepthStencilResolveBuilder<'a> {
29641 #[inline]
29642 pub fn depth_resolve_mode(mut self, value: ResolveModeFlagBits) -> Self {
29643 self.inner.depth_resolve_mode = value;
29644 self
29645 }
29646 #[inline]
29647 pub fn stencil_resolve_mode(mut self, value: ResolveModeFlagBits) -> Self {
29648 self.inner.stencil_resolve_mode = value;
29649 self
29650 }
29651 #[inline]
29652 pub fn depth_stencil_resolve_attachment(
29653 mut self,
29654 value: &'a AttachmentReference2,
29655 ) -> Self {
29656 self.inner.p_depth_stencil_resolve_attachment = value;
29657 self
29658 }
29659 #[inline]
29661 pub fn push_next<T: ExtendsSubpassDescriptionDepthStencilResolve>(
29662 mut self,
29663 next: &'a mut T,
29664 ) -> Self {
29665 unsafe {
29666 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29667 (*next_ptr).p_next = self.inner.p_next as *mut _;
29668 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29669 core::ffi::c_void,
29670 >(next_ptr) as *const _;
29671 }
29672 self
29673 }
29674}
29675impl<'a> core::ops::Deref for SubpassDescriptionDepthStencilResolveBuilder<'a> {
29676 type Target = SubpassDescriptionDepthStencilResolve;
29677 #[inline]
29678 fn deref(&self) -> &Self::Target {
29679 &self.inner
29680 }
29681}
29682impl<'a> core::ops::DerefMut for SubpassDescriptionDepthStencilResolveBuilder<'a> {
29683 #[inline]
29684 fn deref_mut(&mut self) -> &mut Self::Target {
29685 &mut self.inner
29686 }
29687}
29688pub struct ImageViewASTCDecodeModeEXTBuilder<'a> {
29690 inner: ImageViewASTCDecodeModeEXT,
29691 _marker: core::marker::PhantomData<&'a ()>,
29692}
29693impl ImageViewASTCDecodeModeEXT {
29694 #[inline]
29696 pub fn builder<'a>() -> ImageViewASTCDecodeModeEXTBuilder<'a> {
29697 ImageViewASTCDecodeModeEXTBuilder {
29698 inner: ImageViewASTCDecodeModeEXT {
29699 s_type: StructureType::from_raw(1000067000i32),
29700 ..Default::default()
29701 },
29702 _marker: core::marker::PhantomData,
29703 }
29704 }
29705}
29706impl<'a> ImageViewASTCDecodeModeEXTBuilder<'a> {
29707 #[inline]
29708 pub fn decode_mode(mut self, value: Format) -> Self {
29709 self.inner.decode_mode = value;
29710 self
29711 }
29712 #[inline]
29714 pub fn push_next<T: ExtendsImageViewASTCDecodeModeEXT>(
29715 mut self,
29716 next: &'a mut T,
29717 ) -> Self {
29718 unsafe {
29719 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29720 (*next_ptr).p_next = self.inner.p_next as *mut _;
29721 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29722 core::ffi::c_void,
29723 >(next_ptr) as *const _;
29724 }
29725 self
29726 }
29727}
29728impl<'a> core::ops::Deref for ImageViewASTCDecodeModeEXTBuilder<'a> {
29729 type Target = ImageViewASTCDecodeModeEXT;
29730 #[inline]
29731 fn deref(&self) -> &Self::Target {
29732 &self.inner
29733 }
29734}
29735impl<'a> core::ops::DerefMut for ImageViewASTCDecodeModeEXTBuilder<'a> {
29736 #[inline]
29737 fn deref_mut(&mut self) -> &mut Self::Target {
29738 &mut self.inner
29739 }
29740}
29741pub struct PhysicalDeviceASTCDecodeFeaturesEXTBuilder<'a> {
29743 inner: PhysicalDeviceASTCDecodeFeaturesEXT,
29744 _marker: core::marker::PhantomData<&'a ()>,
29745}
29746impl PhysicalDeviceASTCDecodeFeaturesEXT {
29747 #[inline]
29749 pub fn builder<'a>() -> PhysicalDeviceASTCDecodeFeaturesEXTBuilder<'a> {
29750 PhysicalDeviceASTCDecodeFeaturesEXTBuilder {
29751 inner: PhysicalDeviceASTCDecodeFeaturesEXT {
29752 s_type: StructureType::from_raw(1000067001i32),
29753 ..Default::default()
29754 },
29755 _marker: core::marker::PhantomData,
29756 }
29757 }
29758}
29759impl<'a> PhysicalDeviceASTCDecodeFeaturesEXTBuilder<'a> {
29760 #[inline]
29761 pub fn decode_mode_shared_exponent(mut self, value: bool) -> Self {
29762 self.inner.decode_mode_shared_exponent = value as u32;
29763 self
29764 }
29765 #[inline]
29767 pub fn push_next<T: ExtendsPhysicalDeviceASTCDecodeFeaturesEXT>(
29768 mut self,
29769 next: &'a mut T,
29770 ) -> Self {
29771 unsafe {
29772 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29773 (*next_ptr).p_next = self.inner.p_next as *mut _;
29774 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29775 core::ffi::c_void,
29776 >(next_ptr);
29777 }
29778 self
29779 }
29780}
29781impl<'a> core::ops::Deref for PhysicalDeviceASTCDecodeFeaturesEXTBuilder<'a> {
29782 type Target = PhysicalDeviceASTCDecodeFeaturesEXT;
29783 #[inline]
29784 fn deref(&self) -> &Self::Target {
29785 &self.inner
29786 }
29787}
29788impl<'a> core::ops::DerefMut for PhysicalDeviceASTCDecodeFeaturesEXTBuilder<'a> {
29789 #[inline]
29790 fn deref_mut(&mut self) -> &mut Self::Target {
29791 &mut self.inner
29792 }
29793}
29794pub struct PhysicalDeviceTransformFeedbackFeaturesEXTBuilder<'a> {
29796 inner: PhysicalDeviceTransformFeedbackFeaturesEXT,
29797 _marker: core::marker::PhantomData<&'a ()>,
29798}
29799impl PhysicalDeviceTransformFeedbackFeaturesEXT {
29800 #[inline]
29802 pub fn builder<'a>() -> PhysicalDeviceTransformFeedbackFeaturesEXTBuilder<'a> {
29803 PhysicalDeviceTransformFeedbackFeaturesEXTBuilder {
29804 inner: PhysicalDeviceTransformFeedbackFeaturesEXT {
29805 s_type: StructureType::from_raw(1000028000i32),
29806 ..Default::default()
29807 },
29808 _marker: core::marker::PhantomData,
29809 }
29810 }
29811}
29812impl<'a> PhysicalDeviceTransformFeedbackFeaturesEXTBuilder<'a> {
29813 #[inline]
29814 pub fn transform_feedback(mut self, value: bool) -> Self {
29815 self.inner.transform_feedback = value as u32;
29816 self
29817 }
29818 #[inline]
29819 pub fn geometry_streams(mut self, value: bool) -> Self {
29820 self.inner.geometry_streams = value as u32;
29821 self
29822 }
29823 #[inline]
29825 pub fn push_next<T: ExtendsPhysicalDeviceTransformFeedbackFeaturesEXT>(
29826 mut self,
29827 next: &'a mut T,
29828 ) -> Self {
29829 unsafe {
29830 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29831 (*next_ptr).p_next = self.inner.p_next as *mut _;
29832 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29833 core::ffi::c_void,
29834 >(next_ptr);
29835 }
29836 self
29837 }
29838}
29839impl<'a> core::ops::Deref for PhysicalDeviceTransformFeedbackFeaturesEXTBuilder<'a> {
29840 type Target = PhysicalDeviceTransformFeedbackFeaturesEXT;
29841 #[inline]
29842 fn deref(&self) -> &Self::Target {
29843 &self.inner
29844 }
29845}
29846impl<'a> core::ops::DerefMut for PhysicalDeviceTransformFeedbackFeaturesEXTBuilder<'a> {
29847 #[inline]
29848 fn deref_mut(&mut self) -> &mut Self::Target {
29849 &mut self.inner
29850 }
29851}
29852pub struct PhysicalDeviceTransformFeedbackPropertiesEXTBuilder<'a> {
29854 inner: PhysicalDeviceTransformFeedbackPropertiesEXT,
29855 _marker: core::marker::PhantomData<&'a ()>,
29856}
29857impl PhysicalDeviceTransformFeedbackPropertiesEXT {
29858 #[inline]
29860 pub fn builder<'a>() -> PhysicalDeviceTransformFeedbackPropertiesEXTBuilder<'a> {
29861 PhysicalDeviceTransformFeedbackPropertiesEXTBuilder {
29862 inner: PhysicalDeviceTransformFeedbackPropertiesEXT {
29863 s_type: StructureType::from_raw(1000028001i32),
29864 ..Default::default()
29865 },
29866 _marker: core::marker::PhantomData,
29867 }
29868 }
29869}
29870impl<'a> PhysicalDeviceTransformFeedbackPropertiesEXTBuilder<'a> {
29871 #[inline]
29872 pub fn max_transform_feedback_streams(mut self, value: u32) -> Self {
29873 self.inner.max_transform_feedback_streams = value;
29874 self
29875 }
29876 #[inline]
29877 pub fn max_transform_feedback_buffers(mut self, value: u32) -> Self {
29878 self.inner.max_transform_feedback_buffers = value;
29879 self
29880 }
29881 #[inline]
29882 pub fn max_transform_feedback_buffer_size(mut self, value: u64) -> Self {
29883 self.inner.max_transform_feedback_buffer_size = value;
29884 self
29885 }
29886 #[inline]
29887 pub fn max_transform_feedback_stream_data_size(mut self, value: u32) -> Self {
29888 self.inner.max_transform_feedback_stream_data_size = value;
29889 self
29890 }
29891 #[inline]
29892 pub fn max_transform_feedback_buffer_data_size(mut self, value: u32) -> Self {
29893 self.inner.max_transform_feedback_buffer_data_size = value;
29894 self
29895 }
29896 #[inline]
29897 pub fn max_transform_feedback_buffer_data_stride(mut self, value: u32) -> Self {
29898 self.inner.max_transform_feedback_buffer_data_stride = value;
29899 self
29900 }
29901 #[inline]
29902 pub fn transform_feedback_queries(mut self, value: bool) -> Self {
29903 self.inner.transform_feedback_queries = value as u32;
29904 self
29905 }
29906 #[inline]
29907 pub fn transform_feedback_streams_lines_triangles(mut self, value: bool) -> Self {
29908 self.inner.transform_feedback_streams_lines_triangles = value as u32;
29909 self
29910 }
29911 #[inline]
29912 pub fn transform_feedback_rasterization_stream_select(
29913 mut self,
29914 value: bool,
29915 ) -> Self {
29916 self.inner.transform_feedback_rasterization_stream_select = value as u32;
29917 self
29918 }
29919 #[inline]
29920 pub fn transform_feedback_draw(mut self, value: bool) -> Self {
29921 self.inner.transform_feedback_draw = value as u32;
29922 self
29923 }
29924}
29925impl<'a> core::ops::Deref for PhysicalDeviceTransformFeedbackPropertiesEXTBuilder<'a> {
29926 type Target = PhysicalDeviceTransformFeedbackPropertiesEXT;
29927 #[inline]
29928 fn deref(&self) -> &Self::Target {
29929 &self.inner
29930 }
29931}
29932impl<'a> core::ops::DerefMut
29933for PhysicalDeviceTransformFeedbackPropertiesEXTBuilder<'a> {
29934 #[inline]
29935 fn deref_mut(&mut self) -> &mut Self::Target {
29936 &mut self.inner
29937 }
29938}
29939pub struct PipelineRasterizationStateStreamCreateInfoEXTBuilder<'a> {
29941 inner: PipelineRasterizationStateStreamCreateInfoEXT,
29942 _marker: core::marker::PhantomData<&'a ()>,
29943}
29944impl PipelineRasterizationStateStreamCreateInfoEXT {
29945 #[inline]
29947 pub fn builder<'a>() -> PipelineRasterizationStateStreamCreateInfoEXTBuilder<'a> {
29948 PipelineRasterizationStateStreamCreateInfoEXTBuilder {
29949 inner: PipelineRasterizationStateStreamCreateInfoEXT {
29950 s_type: StructureType::from_raw(1000028002i32),
29951 ..Default::default()
29952 },
29953 _marker: core::marker::PhantomData,
29954 }
29955 }
29956}
29957impl<'a> PipelineRasterizationStateStreamCreateInfoEXTBuilder<'a> {
29958 #[inline]
29959 pub fn flags(
29960 mut self,
29961 value: PipelineRasterizationStateStreamCreateFlagsEXT,
29962 ) -> Self {
29963 self.inner.flags = value;
29964 self
29965 }
29966 #[inline]
29967 pub fn rasterization_stream(mut self, value: u32) -> Self {
29968 self.inner.rasterization_stream = value;
29969 self
29970 }
29971 #[inline]
29973 pub fn push_next<T: ExtendsPipelineRasterizationStateStreamCreateInfoEXT>(
29974 mut self,
29975 next: &'a mut T,
29976 ) -> Self {
29977 unsafe {
29978 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
29979 (*next_ptr).p_next = self.inner.p_next as *mut _;
29980 self.inner.p_next = <*mut BaseOutStructure>::cast::<
29981 core::ffi::c_void,
29982 >(next_ptr) as *const _;
29983 }
29984 self
29985 }
29986}
29987impl<'a> core::ops::Deref for PipelineRasterizationStateStreamCreateInfoEXTBuilder<'a> {
29988 type Target = PipelineRasterizationStateStreamCreateInfoEXT;
29989 #[inline]
29990 fn deref(&self) -> &Self::Target {
29991 &self.inner
29992 }
29993}
29994impl<'a> core::ops::DerefMut
29995for PipelineRasterizationStateStreamCreateInfoEXTBuilder<'a> {
29996 #[inline]
29997 fn deref_mut(&mut self) -> &mut Self::Target {
29998 &mut self.inner
29999 }
30000}
30001pub struct PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder<'a> {
30003 inner: PhysicalDeviceRepresentativeFragmentTestFeaturesNV,
30004 _marker: core::marker::PhantomData<&'a ()>,
30005}
30006impl PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
30007 #[inline]
30009 pub fn builder<'a>() -> PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder<
30010 'a,
30011 > {
30012 PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder {
30013 inner: PhysicalDeviceRepresentativeFragmentTestFeaturesNV {
30014 s_type: StructureType::from_raw(1000166000i32),
30015 ..Default::default()
30016 },
30017 _marker: core::marker::PhantomData,
30018 }
30019 }
30020}
30021impl<'a> PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder<'a> {
30022 #[inline]
30023 pub fn representative_fragment_test(mut self, value: bool) -> Self {
30024 self.inner.representative_fragment_test = value as u32;
30025 self
30026 }
30027 #[inline]
30029 pub fn push_next<T: ExtendsPhysicalDeviceRepresentativeFragmentTestFeaturesNV>(
30030 mut self,
30031 next: &'a mut T,
30032 ) -> Self {
30033 unsafe {
30034 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30035 (*next_ptr).p_next = self.inner.p_next as *mut _;
30036 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30037 core::ffi::c_void,
30038 >(next_ptr);
30039 }
30040 self
30041 }
30042}
30043impl<'a> core::ops::Deref
30044for PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder<'a> {
30045 type Target = PhysicalDeviceRepresentativeFragmentTestFeaturesNV;
30046 #[inline]
30047 fn deref(&self) -> &Self::Target {
30048 &self.inner
30049 }
30050}
30051impl<'a> core::ops::DerefMut
30052for PhysicalDeviceRepresentativeFragmentTestFeaturesNVBuilder<'a> {
30053 #[inline]
30054 fn deref_mut(&mut self) -> &mut Self::Target {
30055 &mut self.inner
30056 }
30057}
30058pub struct PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder<'a> {
30060 inner: PipelineRepresentativeFragmentTestStateCreateInfoNV,
30061 _marker: core::marker::PhantomData<&'a ()>,
30062}
30063impl PipelineRepresentativeFragmentTestStateCreateInfoNV {
30064 #[inline]
30066 pub fn builder<'a>() -> PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder<
30067 'a,
30068 > {
30069 PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder {
30070 inner: PipelineRepresentativeFragmentTestStateCreateInfoNV {
30071 s_type: StructureType::from_raw(1000166001i32),
30072 ..Default::default()
30073 },
30074 _marker: core::marker::PhantomData,
30075 }
30076 }
30077}
30078impl<'a> PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder<'a> {
30079 #[inline]
30080 pub fn representative_fragment_test_enable(mut self, value: bool) -> Self {
30081 self.inner.representative_fragment_test_enable = value as u32;
30082 self
30083 }
30084 #[inline]
30086 pub fn push_next<T: ExtendsPipelineRepresentativeFragmentTestStateCreateInfoNV>(
30087 mut self,
30088 next: &'a mut T,
30089 ) -> Self {
30090 unsafe {
30091 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30092 (*next_ptr).p_next = self.inner.p_next as *mut _;
30093 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30094 core::ffi::c_void,
30095 >(next_ptr) as *const _;
30096 }
30097 self
30098 }
30099}
30100impl<'a> core::ops::Deref
30101for PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder<'a> {
30102 type Target = PipelineRepresentativeFragmentTestStateCreateInfoNV;
30103 #[inline]
30104 fn deref(&self) -> &Self::Target {
30105 &self.inner
30106 }
30107}
30108impl<'a> core::ops::DerefMut
30109for PipelineRepresentativeFragmentTestStateCreateInfoNVBuilder<'a> {
30110 #[inline]
30111 fn deref_mut(&mut self) -> &mut Self::Target {
30112 &mut self.inner
30113 }
30114}
30115pub struct PhysicalDeviceExclusiveScissorFeaturesNVBuilder<'a> {
30117 inner: PhysicalDeviceExclusiveScissorFeaturesNV,
30118 _marker: core::marker::PhantomData<&'a ()>,
30119}
30120impl PhysicalDeviceExclusiveScissorFeaturesNV {
30121 #[inline]
30123 pub fn builder<'a>() -> PhysicalDeviceExclusiveScissorFeaturesNVBuilder<'a> {
30124 PhysicalDeviceExclusiveScissorFeaturesNVBuilder {
30125 inner: PhysicalDeviceExclusiveScissorFeaturesNV {
30126 s_type: StructureType::from_raw(1000205002i32),
30127 ..Default::default()
30128 },
30129 _marker: core::marker::PhantomData,
30130 }
30131 }
30132}
30133impl<'a> PhysicalDeviceExclusiveScissorFeaturesNVBuilder<'a> {
30134 #[inline]
30135 pub fn exclusive_scissor(mut self, value: bool) -> Self {
30136 self.inner.exclusive_scissor = value as u32;
30137 self
30138 }
30139 #[inline]
30141 pub fn push_next<T: ExtendsPhysicalDeviceExclusiveScissorFeaturesNV>(
30142 mut self,
30143 next: &'a mut T,
30144 ) -> Self {
30145 unsafe {
30146 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30147 (*next_ptr).p_next = self.inner.p_next as *mut _;
30148 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30149 core::ffi::c_void,
30150 >(next_ptr);
30151 }
30152 self
30153 }
30154}
30155impl<'a> core::ops::Deref for PhysicalDeviceExclusiveScissorFeaturesNVBuilder<'a> {
30156 type Target = PhysicalDeviceExclusiveScissorFeaturesNV;
30157 #[inline]
30158 fn deref(&self) -> &Self::Target {
30159 &self.inner
30160 }
30161}
30162impl<'a> core::ops::DerefMut for PhysicalDeviceExclusiveScissorFeaturesNVBuilder<'a> {
30163 #[inline]
30164 fn deref_mut(&mut self) -> &mut Self::Target {
30165 &mut self.inner
30166 }
30167}
30168pub struct PipelineViewportExclusiveScissorStateCreateInfoNVBuilder<'a> {
30170 inner: PipelineViewportExclusiveScissorStateCreateInfoNV,
30171 _marker: core::marker::PhantomData<&'a ()>,
30172}
30173impl PipelineViewportExclusiveScissorStateCreateInfoNV {
30174 #[inline]
30176 pub fn builder<'a>() -> PipelineViewportExclusiveScissorStateCreateInfoNVBuilder<
30177 'a,
30178 > {
30179 PipelineViewportExclusiveScissorStateCreateInfoNVBuilder {
30180 inner: PipelineViewportExclusiveScissorStateCreateInfoNV {
30181 s_type: StructureType::from_raw(1000205000i32),
30182 ..Default::default()
30183 },
30184 _marker: core::marker::PhantomData,
30185 }
30186 }
30187}
30188impl<'a> PipelineViewportExclusiveScissorStateCreateInfoNVBuilder<'a> {
30189 #[inline]
30190 pub fn exclusive_scissors(mut self, slice: &'a [Rect2D]) -> Self {
30191 self.inner.exclusive_scissor_count = slice.len() as u32;
30192 self.inner.p_exclusive_scissors = slice.as_ptr();
30193 self
30194 }
30195 #[inline]
30197 pub fn push_next<T: ExtendsPipelineViewportExclusiveScissorStateCreateInfoNV>(
30198 mut self,
30199 next: &'a mut T,
30200 ) -> Self {
30201 unsafe {
30202 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30203 (*next_ptr).p_next = self.inner.p_next as *mut _;
30204 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30205 core::ffi::c_void,
30206 >(next_ptr) as *const _;
30207 }
30208 self
30209 }
30210}
30211impl<'a> core::ops::Deref
30212for PipelineViewportExclusiveScissorStateCreateInfoNVBuilder<'a> {
30213 type Target = PipelineViewportExclusiveScissorStateCreateInfoNV;
30214 #[inline]
30215 fn deref(&self) -> &Self::Target {
30216 &self.inner
30217 }
30218}
30219impl<'a> core::ops::DerefMut
30220for PipelineViewportExclusiveScissorStateCreateInfoNVBuilder<'a> {
30221 #[inline]
30222 fn deref_mut(&mut self) -> &mut Self::Target {
30223 &mut self.inner
30224 }
30225}
30226pub struct PhysicalDeviceCornerSampledImageFeaturesNVBuilder<'a> {
30228 inner: PhysicalDeviceCornerSampledImageFeaturesNV,
30229 _marker: core::marker::PhantomData<&'a ()>,
30230}
30231impl PhysicalDeviceCornerSampledImageFeaturesNV {
30232 #[inline]
30234 pub fn builder<'a>() -> PhysicalDeviceCornerSampledImageFeaturesNVBuilder<'a> {
30235 PhysicalDeviceCornerSampledImageFeaturesNVBuilder {
30236 inner: PhysicalDeviceCornerSampledImageFeaturesNV {
30237 s_type: StructureType::from_raw(1000050000i32),
30238 ..Default::default()
30239 },
30240 _marker: core::marker::PhantomData,
30241 }
30242 }
30243}
30244impl<'a> PhysicalDeviceCornerSampledImageFeaturesNVBuilder<'a> {
30245 #[inline]
30246 pub fn corner_sampled_image(mut self, value: bool) -> Self {
30247 self.inner.corner_sampled_image = value as u32;
30248 self
30249 }
30250 #[inline]
30252 pub fn push_next<T: ExtendsPhysicalDeviceCornerSampledImageFeaturesNV>(
30253 mut self,
30254 next: &'a mut T,
30255 ) -> Self {
30256 unsafe {
30257 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30258 (*next_ptr).p_next = self.inner.p_next as *mut _;
30259 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30260 core::ffi::c_void,
30261 >(next_ptr);
30262 }
30263 self
30264 }
30265}
30266impl<'a> core::ops::Deref for PhysicalDeviceCornerSampledImageFeaturesNVBuilder<'a> {
30267 type Target = PhysicalDeviceCornerSampledImageFeaturesNV;
30268 #[inline]
30269 fn deref(&self) -> &Self::Target {
30270 &self.inner
30271 }
30272}
30273impl<'a> core::ops::DerefMut for PhysicalDeviceCornerSampledImageFeaturesNVBuilder<'a> {
30274 #[inline]
30275 fn deref_mut(&mut self) -> &mut Self::Target {
30276 &mut self.inner
30277 }
30278}
30279pub struct PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder<'a> {
30281 inner: PhysicalDeviceComputeShaderDerivativesFeaturesKHR,
30282 _marker: core::marker::PhantomData<&'a ()>,
30283}
30284impl PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
30285 #[inline]
30287 pub fn builder<'a>() -> PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder<
30288 'a,
30289 > {
30290 PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder {
30291 inner: PhysicalDeviceComputeShaderDerivativesFeaturesKHR {
30292 s_type: StructureType::from_raw(1000201000i32),
30293 ..Default::default()
30294 },
30295 _marker: core::marker::PhantomData,
30296 }
30297 }
30298}
30299impl<'a> PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder<'a> {
30300 #[inline]
30301 pub fn compute_derivative_group_quads(mut self, value: bool) -> Self {
30302 self.inner.compute_derivative_group_quads = value as u32;
30303 self
30304 }
30305 #[inline]
30306 pub fn compute_derivative_group_linear(mut self, value: bool) -> Self {
30307 self.inner.compute_derivative_group_linear = value as u32;
30308 self
30309 }
30310 #[inline]
30312 pub fn push_next<T: ExtendsPhysicalDeviceComputeShaderDerivativesFeaturesKHR>(
30313 mut self,
30314 next: &'a mut T,
30315 ) -> Self {
30316 unsafe {
30317 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30318 (*next_ptr).p_next = self.inner.p_next as *mut _;
30319 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30320 core::ffi::c_void,
30321 >(next_ptr);
30322 }
30323 self
30324 }
30325}
30326impl<'a> core::ops::Deref
30327for PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder<'a> {
30328 type Target = PhysicalDeviceComputeShaderDerivativesFeaturesKHR;
30329 #[inline]
30330 fn deref(&self) -> &Self::Target {
30331 &self.inner
30332 }
30333}
30334impl<'a> core::ops::DerefMut
30335for PhysicalDeviceComputeShaderDerivativesFeaturesKHRBuilder<'a> {
30336 #[inline]
30337 fn deref_mut(&mut self) -> &mut Self::Target {
30338 &mut self.inner
30339 }
30340}
30341pub struct PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder<'a> {
30343 inner: PhysicalDeviceComputeShaderDerivativesPropertiesKHR,
30344 _marker: core::marker::PhantomData<&'a ()>,
30345}
30346impl PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
30347 #[inline]
30349 pub fn builder<'a>() -> PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder<
30350 'a,
30351 > {
30352 PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder {
30353 inner: PhysicalDeviceComputeShaderDerivativesPropertiesKHR {
30354 s_type: StructureType::from_raw(1000511000i32),
30355 ..Default::default()
30356 },
30357 _marker: core::marker::PhantomData,
30358 }
30359 }
30360}
30361impl<'a> PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder<'a> {
30362 #[inline]
30363 pub fn mesh_and_task_shader_derivatives(mut self, value: bool) -> Self {
30364 self.inner.mesh_and_task_shader_derivatives = value as u32;
30365 self
30366 }
30367}
30368impl<'a> core::ops::Deref
30369for PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder<'a> {
30370 type Target = PhysicalDeviceComputeShaderDerivativesPropertiesKHR;
30371 #[inline]
30372 fn deref(&self) -> &Self::Target {
30373 &self.inner
30374 }
30375}
30376impl<'a> core::ops::DerefMut
30377for PhysicalDeviceComputeShaderDerivativesPropertiesKHRBuilder<'a> {
30378 #[inline]
30379 fn deref_mut(&mut self) -> &mut Self::Target {
30380 &mut self.inner
30381 }
30382}
30383pub struct PhysicalDeviceShaderImageFootprintFeaturesNVBuilder<'a> {
30385 inner: PhysicalDeviceShaderImageFootprintFeaturesNV,
30386 _marker: core::marker::PhantomData<&'a ()>,
30387}
30388impl PhysicalDeviceShaderImageFootprintFeaturesNV {
30389 #[inline]
30391 pub fn builder<'a>() -> PhysicalDeviceShaderImageFootprintFeaturesNVBuilder<'a> {
30392 PhysicalDeviceShaderImageFootprintFeaturesNVBuilder {
30393 inner: PhysicalDeviceShaderImageFootprintFeaturesNV {
30394 s_type: StructureType::from_raw(1000204000i32),
30395 ..Default::default()
30396 },
30397 _marker: core::marker::PhantomData,
30398 }
30399 }
30400}
30401impl<'a> PhysicalDeviceShaderImageFootprintFeaturesNVBuilder<'a> {
30402 #[inline]
30403 pub fn image_footprint(mut self, value: bool) -> Self {
30404 self.inner.image_footprint = value as u32;
30405 self
30406 }
30407 #[inline]
30409 pub fn push_next<T: ExtendsPhysicalDeviceShaderImageFootprintFeaturesNV>(
30410 mut self,
30411 next: &'a mut T,
30412 ) -> Self {
30413 unsafe {
30414 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30415 (*next_ptr).p_next = self.inner.p_next as *mut _;
30416 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30417 core::ffi::c_void,
30418 >(next_ptr);
30419 }
30420 self
30421 }
30422}
30423impl<'a> core::ops::Deref for PhysicalDeviceShaderImageFootprintFeaturesNVBuilder<'a> {
30424 type Target = PhysicalDeviceShaderImageFootprintFeaturesNV;
30425 #[inline]
30426 fn deref(&self) -> &Self::Target {
30427 &self.inner
30428 }
30429}
30430impl<'a> core::ops::DerefMut
30431for PhysicalDeviceShaderImageFootprintFeaturesNVBuilder<'a> {
30432 #[inline]
30433 fn deref_mut(&mut self) -> &mut Self::Target {
30434 &mut self.inner
30435 }
30436}
30437pub struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder<'a> {
30439 inner: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV,
30440 _marker: core::marker::PhantomData<&'a ()>,
30441}
30442impl PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
30443 #[inline]
30445 pub fn builder<'a>() -> PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder<
30446 'a,
30447 > {
30448 PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder {
30449 inner: PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
30450 s_type: StructureType::from_raw(1000240000i32),
30451 ..Default::default()
30452 },
30453 _marker: core::marker::PhantomData,
30454 }
30455 }
30456}
30457impl<'a> PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder<'a> {
30458 #[inline]
30459 pub fn dedicated_allocation_image_aliasing(mut self, value: bool) -> Self {
30460 self.inner.dedicated_allocation_image_aliasing = value as u32;
30461 self
30462 }
30463 #[inline]
30465 pub fn push_next<T: ExtendsPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>(
30466 mut self,
30467 next: &'a mut T,
30468 ) -> Self {
30469 unsafe {
30470 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30471 (*next_ptr).p_next = self.inner.p_next as *mut _;
30472 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30473 core::ffi::c_void,
30474 >(next_ptr);
30475 }
30476 self
30477 }
30478}
30479impl<'a> core::ops::Deref
30480for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder<'a> {
30481 type Target = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
30482 #[inline]
30483 fn deref(&self) -> &Self::Target {
30484 &self.inner
30485 }
30486}
30487impl<'a> core::ops::DerefMut
30488for PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNVBuilder<'a> {
30489 #[inline]
30490 fn deref_mut(&mut self) -> &mut Self::Target {
30491 &mut self.inner
30492 }
30493}
30494pub struct PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder<'a> {
30496 inner: PhysicalDeviceCopyMemoryIndirectFeaturesKHR,
30497 _marker: core::marker::PhantomData<&'a ()>,
30498}
30499impl PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
30500 #[inline]
30502 pub fn builder<'a>() -> PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder<'a> {
30503 PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder {
30504 inner: PhysicalDeviceCopyMemoryIndirectFeaturesKHR {
30505 s_type: StructureType::from_raw(1000549000i32),
30506 ..Default::default()
30507 },
30508 _marker: core::marker::PhantomData,
30509 }
30510 }
30511}
30512impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder<'a> {
30513 #[inline]
30514 pub fn indirect_memory_copy(mut self, value: bool) -> Self {
30515 self.inner.indirect_memory_copy = value as u32;
30516 self
30517 }
30518 #[inline]
30519 pub fn indirect_memory_to_image_copy(mut self, value: bool) -> Self {
30520 self.inner.indirect_memory_to_image_copy = value as u32;
30521 self
30522 }
30523 #[inline]
30525 pub fn push_next<T: ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesKHR>(
30526 mut self,
30527 next: &'a mut T,
30528 ) -> Self {
30529 unsafe {
30530 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30531 (*next_ptr).p_next = self.inner.p_next as *mut _;
30532 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30533 core::ffi::c_void,
30534 >(next_ptr);
30535 }
30536 self
30537 }
30538}
30539impl<'a> core::ops::Deref for PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder<'a> {
30540 type Target = PhysicalDeviceCopyMemoryIndirectFeaturesKHR;
30541 #[inline]
30542 fn deref(&self) -> &Self::Target {
30543 &self.inner
30544 }
30545}
30546impl<'a> core::ops::DerefMut for PhysicalDeviceCopyMemoryIndirectFeaturesKHRBuilder<'a> {
30547 #[inline]
30548 fn deref_mut(&mut self) -> &mut Self::Target {
30549 &mut self.inner
30550 }
30551}
30552pub struct PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder<'a> {
30554 inner: PhysicalDeviceCopyMemoryIndirectFeaturesNV,
30555 _marker: core::marker::PhantomData<&'a ()>,
30556}
30557impl PhysicalDeviceCopyMemoryIndirectFeaturesNV {
30558 #[inline]
30560 pub fn builder<'a>() -> PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder<'a> {
30561 PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder {
30562 inner: PhysicalDeviceCopyMemoryIndirectFeaturesNV {
30563 s_type: StructureType::from_raw(1000426000i32),
30564 ..Default::default()
30565 },
30566 _marker: core::marker::PhantomData,
30567 }
30568 }
30569}
30570impl<'a> PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder<'a> {
30571 #[inline]
30572 pub fn indirect_copy(mut self, value: bool) -> Self {
30573 self.inner.indirect_copy = value as u32;
30574 self
30575 }
30576 #[inline]
30578 pub fn push_next<T: ExtendsPhysicalDeviceCopyMemoryIndirectFeaturesNV>(
30579 mut self,
30580 next: &'a mut T,
30581 ) -> Self {
30582 unsafe {
30583 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30584 (*next_ptr).p_next = self.inner.p_next as *mut _;
30585 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30586 core::ffi::c_void,
30587 >(next_ptr);
30588 }
30589 self
30590 }
30591}
30592impl<'a> core::ops::Deref for PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder<'a> {
30593 type Target = PhysicalDeviceCopyMemoryIndirectFeaturesNV;
30594 #[inline]
30595 fn deref(&self) -> &Self::Target {
30596 &self.inner
30597 }
30598}
30599impl<'a> core::ops::DerefMut for PhysicalDeviceCopyMemoryIndirectFeaturesNVBuilder<'a> {
30600 #[inline]
30601 fn deref_mut(&mut self) -> &mut Self::Target {
30602 &mut self.inner
30603 }
30604}
30605pub struct PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder<'a> {
30607 inner: PhysicalDeviceCopyMemoryIndirectPropertiesKHR,
30608 _marker: core::marker::PhantomData<&'a ()>,
30609}
30610impl PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
30611 #[inline]
30613 pub fn builder<'a>() -> PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder<'a> {
30614 PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder {
30615 inner: PhysicalDeviceCopyMemoryIndirectPropertiesKHR {
30616 s_type: StructureType::from_raw(1000426001i32),
30617 ..Default::default()
30618 },
30619 _marker: core::marker::PhantomData,
30620 }
30621 }
30622}
30623impl<'a> PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder<'a> {
30624 #[inline]
30625 pub fn supported_queues(mut self, value: QueueFlags) -> Self {
30626 self.inner.supported_queues = value;
30627 self
30628 }
30629}
30630impl<'a> core::ops::Deref for PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder<'a> {
30631 type Target = PhysicalDeviceCopyMemoryIndirectPropertiesKHR;
30632 #[inline]
30633 fn deref(&self) -> &Self::Target {
30634 &self.inner
30635 }
30636}
30637impl<'a> core::ops::DerefMut
30638for PhysicalDeviceCopyMemoryIndirectPropertiesKHRBuilder<'a> {
30639 #[inline]
30640 fn deref_mut(&mut self) -> &mut Self::Target {
30641 &mut self.inner
30642 }
30643}
30644pub struct PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder<'a> {
30646 inner: PhysicalDeviceMemoryDecompressionFeaturesEXT,
30647 _marker: core::marker::PhantomData<&'a ()>,
30648}
30649impl PhysicalDeviceMemoryDecompressionFeaturesEXT {
30650 #[inline]
30652 pub fn builder<'a>() -> PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder<'a> {
30653 PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder {
30654 inner: PhysicalDeviceMemoryDecompressionFeaturesEXT {
30655 s_type: StructureType::from_raw(1000427000i32),
30656 ..Default::default()
30657 },
30658 _marker: core::marker::PhantomData,
30659 }
30660 }
30661}
30662impl<'a> PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder<'a> {
30663 #[inline]
30664 pub fn memory_decompression(mut self, value: bool) -> Self {
30665 self.inner.memory_decompression = value as u32;
30666 self
30667 }
30668 #[inline]
30670 pub fn push_next<T: ExtendsPhysicalDeviceMemoryDecompressionFeaturesEXT>(
30671 mut self,
30672 next: &'a mut T,
30673 ) -> Self {
30674 unsafe {
30675 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30676 (*next_ptr).p_next = self.inner.p_next as *mut _;
30677 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30678 core::ffi::c_void,
30679 >(next_ptr);
30680 }
30681 self
30682 }
30683}
30684impl<'a> core::ops::Deref for PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder<'a> {
30685 type Target = PhysicalDeviceMemoryDecompressionFeaturesEXT;
30686 #[inline]
30687 fn deref(&self) -> &Self::Target {
30688 &self.inner
30689 }
30690}
30691impl<'a> core::ops::DerefMut
30692for PhysicalDeviceMemoryDecompressionFeaturesEXTBuilder<'a> {
30693 #[inline]
30694 fn deref_mut(&mut self) -> &mut Self::Target {
30695 &mut self.inner
30696 }
30697}
30698pub struct PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder<'a> {
30700 inner: PhysicalDeviceMemoryDecompressionPropertiesEXT,
30701 _marker: core::marker::PhantomData<&'a ()>,
30702}
30703impl PhysicalDeviceMemoryDecompressionPropertiesEXT {
30704 #[inline]
30706 pub fn builder<'a>() -> PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder<'a> {
30707 PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder {
30708 inner: PhysicalDeviceMemoryDecompressionPropertiesEXT {
30709 s_type: StructureType::from_raw(1000427001i32),
30710 ..Default::default()
30711 },
30712 _marker: core::marker::PhantomData,
30713 }
30714 }
30715}
30716impl<'a> PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder<'a> {
30717 #[inline]
30718 pub fn decompression_methods(
30719 mut self,
30720 value: MemoryDecompressionMethodFlagsEXT,
30721 ) -> Self {
30722 self.inner.decompression_methods = value;
30723 self
30724 }
30725 #[inline]
30726 pub fn max_decompression_indirect_count(mut self, value: u64) -> Self {
30727 self.inner.max_decompression_indirect_count = value;
30728 self
30729 }
30730}
30731impl<'a> core::ops::Deref for PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder<'a> {
30732 type Target = PhysicalDeviceMemoryDecompressionPropertiesEXT;
30733 #[inline]
30734 fn deref(&self) -> &Self::Target {
30735 &self.inner
30736 }
30737}
30738impl<'a> core::ops::DerefMut
30739for PhysicalDeviceMemoryDecompressionPropertiesEXTBuilder<'a> {
30740 #[inline]
30741 fn deref_mut(&mut self) -> &mut Self::Target {
30742 &mut self.inner
30743 }
30744}
30745pub struct ShadingRatePaletteNVBuilder<'a> {
30747 inner: ShadingRatePaletteNV,
30748 _marker: core::marker::PhantomData<&'a ()>,
30749}
30750impl ShadingRatePaletteNV {
30751 #[inline]
30753 pub fn builder<'a>() -> ShadingRatePaletteNVBuilder<'a> {
30754 ShadingRatePaletteNVBuilder {
30755 inner: ShadingRatePaletteNV {
30756 ..Default::default()
30757 },
30758 _marker: core::marker::PhantomData,
30759 }
30760 }
30761}
30762impl<'a> ShadingRatePaletteNVBuilder<'a> {
30763 #[inline]
30764 pub fn shading_rate_palette_entries(
30765 mut self,
30766 slice: &'a [ShadingRatePaletteEntryNV],
30767 ) -> Self {
30768 self.inner.shading_rate_palette_entry_count = slice.len() as u32;
30769 self.inner.p_shading_rate_palette_entries = slice.as_ptr();
30770 self
30771 }
30772}
30773impl<'a> core::ops::Deref for ShadingRatePaletteNVBuilder<'a> {
30774 type Target = ShadingRatePaletteNV;
30775 #[inline]
30776 fn deref(&self) -> &Self::Target {
30777 &self.inner
30778 }
30779}
30780impl<'a> core::ops::DerefMut for ShadingRatePaletteNVBuilder<'a> {
30781 #[inline]
30782 fn deref_mut(&mut self) -> &mut Self::Target {
30783 &mut self.inner
30784 }
30785}
30786pub struct PipelineViewportShadingRateImageStateCreateInfoNVBuilder<'a> {
30788 inner: PipelineViewportShadingRateImageStateCreateInfoNV,
30789 _marker: core::marker::PhantomData<&'a ()>,
30790}
30791impl PipelineViewportShadingRateImageStateCreateInfoNV {
30792 #[inline]
30794 pub fn builder<'a>() -> PipelineViewportShadingRateImageStateCreateInfoNVBuilder<
30795 'a,
30796 > {
30797 PipelineViewportShadingRateImageStateCreateInfoNVBuilder {
30798 inner: PipelineViewportShadingRateImageStateCreateInfoNV {
30799 s_type: StructureType::from_raw(1000164000i32),
30800 ..Default::default()
30801 },
30802 _marker: core::marker::PhantomData,
30803 }
30804 }
30805}
30806impl<'a> PipelineViewportShadingRateImageStateCreateInfoNVBuilder<'a> {
30807 #[inline]
30808 pub fn shading_rate_image_enable(mut self, value: bool) -> Self {
30809 self.inner.shading_rate_image_enable = value as u32;
30810 self
30811 }
30812 #[inline]
30813 pub fn shading_rate_palettes(mut self, slice: &'a [ShadingRatePaletteNV]) -> Self {
30814 self.inner.viewport_count = slice.len() as u32;
30815 self.inner.p_shading_rate_palettes = slice.as_ptr();
30816 self
30817 }
30818 #[inline]
30820 pub fn push_next<T: ExtendsPipelineViewportShadingRateImageStateCreateInfoNV>(
30821 mut self,
30822 next: &'a mut T,
30823 ) -> Self {
30824 unsafe {
30825 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30826 (*next_ptr).p_next = self.inner.p_next as *mut _;
30827 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30828 core::ffi::c_void,
30829 >(next_ptr) as *const _;
30830 }
30831 self
30832 }
30833}
30834impl<'a> core::ops::Deref
30835for PipelineViewportShadingRateImageStateCreateInfoNVBuilder<'a> {
30836 type Target = PipelineViewportShadingRateImageStateCreateInfoNV;
30837 #[inline]
30838 fn deref(&self) -> &Self::Target {
30839 &self.inner
30840 }
30841}
30842impl<'a> core::ops::DerefMut
30843for PipelineViewportShadingRateImageStateCreateInfoNVBuilder<'a> {
30844 #[inline]
30845 fn deref_mut(&mut self) -> &mut Self::Target {
30846 &mut self.inner
30847 }
30848}
30849pub struct PhysicalDeviceShadingRateImageFeaturesNVBuilder<'a> {
30851 inner: PhysicalDeviceShadingRateImageFeaturesNV,
30852 _marker: core::marker::PhantomData<&'a ()>,
30853}
30854impl PhysicalDeviceShadingRateImageFeaturesNV {
30855 #[inline]
30857 pub fn builder<'a>() -> PhysicalDeviceShadingRateImageFeaturesNVBuilder<'a> {
30858 PhysicalDeviceShadingRateImageFeaturesNVBuilder {
30859 inner: PhysicalDeviceShadingRateImageFeaturesNV {
30860 s_type: StructureType::from_raw(1000164001i32),
30861 ..Default::default()
30862 },
30863 _marker: core::marker::PhantomData,
30864 }
30865 }
30866}
30867impl<'a> PhysicalDeviceShadingRateImageFeaturesNVBuilder<'a> {
30868 #[inline]
30869 pub fn shading_rate_image(mut self, value: bool) -> Self {
30870 self.inner.shading_rate_image = value as u32;
30871 self
30872 }
30873 #[inline]
30874 pub fn shading_rate_coarse_sample_order(mut self, value: bool) -> Self {
30875 self.inner.shading_rate_coarse_sample_order = value as u32;
30876 self
30877 }
30878 #[inline]
30880 pub fn push_next<T: ExtendsPhysicalDeviceShadingRateImageFeaturesNV>(
30881 mut self,
30882 next: &'a mut T,
30883 ) -> Self {
30884 unsafe {
30885 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30886 (*next_ptr).p_next = self.inner.p_next as *mut _;
30887 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30888 core::ffi::c_void,
30889 >(next_ptr);
30890 }
30891 self
30892 }
30893}
30894impl<'a> core::ops::Deref for PhysicalDeviceShadingRateImageFeaturesNVBuilder<'a> {
30895 type Target = PhysicalDeviceShadingRateImageFeaturesNV;
30896 #[inline]
30897 fn deref(&self) -> &Self::Target {
30898 &self.inner
30899 }
30900}
30901impl<'a> core::ops::DerefMut for PhysicalDeviceShadingRateImageFeaturesNVBuilder<'a> {
30902 #[inline]
30903 fn deref_mut(&mut self) -> &mut Self::Target {
30904 &mut self.inner
30905 }
30906}
30907pub struct PhysicalDeviceShadingRateImagePropertiesNVBuilder<'a> {
30909 inner: PhysicalDeviceShadingRateImagePropertiesNV,
30910 _marker: core::marker::PhantomData<&'a ()>,
30911}
30912impl PhysicalDeviceShadingRateImagePropertiesNV {
30913 #[inline]
30915 pub fn builder<'a>() -> PhysicalDeviceShadingRateImagePropertiesNVBuilder<'a> {
30916 PhysicalDeviceShadingRateImagePropertiesNVBuilder {
30917 inner: PhysicalDeviceShadingRateImagePropertiesNV {
30918 s_type: StructureType::from_raw(1000164002i32),
30919 ..Default::default()
30920 },
30921 _marker: core::marker::PhantomData,
30922 }
30923 }
30924}
30925impl<'a> PhysicalDeviceShadingRateImagePropertiesNVBuilder<'a> {
30926 #[inline]
30927 pub fn shading_rate_texel_size(mut self, value: Extent2D) -> Self {
30928 self.inner.shading_rate_texel_size = value;
30929 self
30930 }
30931 #[inline]
30932 pub fn shading_rate_palette_size(mut self, value: u32) -> Self {
30933 self.inner.shading_rate_palette_size = value;
30934 self
30935 }
30936 #[inline]
30937 pub fn shading_rate_max_coarse_samples(mut self, value: u32) -> Self {
30938 self.inner.shading_rate_max_coarse_samples = value;
30939 self
30940 }
30941}
30942impl<'a> core::ops::Deref for PhysicalDeviceShadingRateImagePropertiesNVBuilder<'a> {
30943 type Target = PhysicalDeviceShadingRateImagePropertiesNV;
30944 #[inline]
30945 fn deref(&self) -> &Self::Target {
30946 &self.inner
30947 }
30948}
30949impl<'a> core::ops::DerefMut for PhysicalDeviceShadingRateImagePropertiesNVBuilder<'a> {
30950 #[inline]
30951 fn deref_mut(&mut self) -> &mut Self::Target {
30952 &mut self.inner
30953 }
30954}
30955pub struct PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder<'a> {
30957 inner: PhysicalDeviceInvocationMaskFeaturesHUAWEI,
30958 _marker: core::marker::PhantomData<&'a ()>,
30959}
30960impl PhysicalDeviceInvocationMaskFeaturesHUAWEI {
30961 #[inline]
30963 pub fn builder<'a>() -> PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder<'a> {
30964 PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder {
30965 inner: PhysicalDeviceInvocationMaskFeaturesHUAWEI {
30966 s_type: StructureType::from_raw(1000370000i32),
30967 ..Default::default()
30968 },
30969 _marker: core::marker::PhantomData,
30970 }
30971 }
30972}
30973impl<'a> PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder<'a> {
30974 #[inline]
30975 pub fn invocation_mask(mut self, value: bool) -> Self {
30976 self.inner.invocation_mask = value as u32;
30977 self
30978 }
30979 #[inline]
30981 pub fn push_next<T: ExtendsPhysicalDeviceInvocationMaskFeaturesHUAWEI>(
30982 mut self,
30983 next: &'a mut T,
30984 ) -> Self {
30985 unsafe {
30986 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
30987 (*next_ptr).p_next = self.inner.p_next as *mut _;
30988 self.inner.p_next = <*mut BaseOutStructure>::cast::<
30989 core::ffi::c_void,
30990 >(next_ptr);
30991 }
30992 self
30993 }
30994}
30995impl<'a> core::ops::Deref for PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder<'a> {
30996 type Target = PhysicalDeviceInvocationMaskFeaturesHUAWEI;
30997 #[inline]
30998 fn deref(&self) -> &Self::Target {
30999 &self.inner
31000 }
31001}
31002impl<'a> core::ops::DerefMut for PhysicalDeviceInvocationMaskFeaturesHUAWEIBuilder<'a> {
31003 #[inline]
31004 fn deref_mut(&mut self) -> &mut Self::Target {
31005 &mut self.inner
31006 }
31007}
31008pub struct CoarseSampleLocationNVBuilder {
31010 inner: CoarseSampleLocationNV,
31011}
31012impl CoarseSampleLocationNV {
31013 #[inline]
31015 pub fn builder() -> CoarseSampleLocationNVBuilder {
31016 CoarseSampleLocationNVBuilder {
31017 inner: CoarseSampleLocationNV {
31018 ..Default::default()
31019 },
31020 }
31021 }
31022}
31023impl CoarseSampleLocationNVBuilder {
31024 #[inline]
31025 pub fn pixel_x(mut self, value: u32) -> Self {
31026 self.inner.pixel_x = value;
31027 self
31028 }
31029 #[inline]
31030 pub fn pixel_y(mut self, value: u32) -> Self {
31031 self.inner.pixel_y = value;
31032 self
31033 }
31034 #[inline]
31035 pub fn sample(mut self, value: u32) -> Self {
31036 self.inner.sample = value;
31037 self
31038 }
31039}
31040impl core::ops::Deref for CoarseSampleLocationNVBuilder {
31041 type Target = CoarseSampleLocationNV;
31042 #[inline]
31043 fn deref(&self) -> &Self::Target {
31044 &self.inner
31045 }
31046}
31047impl core::ops::DerefMut for CoarseSampleLocationNVBuilder {
31048 #[inline]
31049 fn deref_mut(&mut self) -> &mut Self::Target {
31050 &mut self.inner
31051 }
31052}
31053pub struct CoarseSampleOrderCustomNVBuilder<'a> {
31055 inner: CoarseSampleOrderCustomNV,
31056 _marker: core::marker::PhantomData<&'a ()>,
31057}
31058impl CoarseSampleOrderCustomNV {
31059 #[inline]
31061 pub fn builder<'a>() -> CoarseSampleOrderCustomNVBuilder<'a> {
31062 CoarseSampleOrderCustomNVBuilder {
31063 inner: CoarseSampleOrderCustomNV {
31064 ..Default::default()
31065 },
31066 _marker: core::marker::PhantomData,
31067 }
31068 }
31069}
31070impl<'a> CoarseSampleOrderCustomNVBuilder<'a> {
31071 #[inline]
31072 pub fn shading_rate(mut self, value: ShadingRatePaletteEntryNV) -> Self {
31073 self.inner.shading_rate = value;
31074 self
31075 }
31076 #[inline]
31077 pub fn sample_count(mut self, value: u32) -> Self {
31078 self.inner.sample_count = value;
31079 self
31080 }
31081 #[inline]
31082 pub fn sample_locations(mut self, slice: &'a [CoarseSampleLocationNV]) -> Self {
31083 self.inner.sample_location_count = slice.len() as u32;
31084 self.inner.p_sample_locations = slice.as_ptr();
31085 self
31086 }
31087}
31088impl<'a> core::ops::Deref for CoarseSampleOrderCustomNVBuilder<'a> {
31089 type Target = CoarseSampleOrderCustomNV;
31090 #[inline]
31091 fn deref(&self) -> &Self::Target {
31092 &self.inner
31093 }
31094}
31095impl<'a> core::ops::DerefMut for CoarseSampleOrderCustomNVBuilder<'a> {
31096 #[inline]
31097 fn deref_mut(&mut self) -> &mut Self::Target {
31098 &mut self.inner
31099 }
31100}
31101pub struct PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder<'a> {
31103 inner: PipelineViewportCoarseSampleOrderStateCreateInfoNV,
31104 _marker: core::marker::PhantomData<&'a ()>,
31105}
31106impl PipelineViewportCoarseSampleOrderStateCreateInfoNV {
31107 #[inline]
31109 pub fn builder<'a>() -> PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder<
31110 'a,
31111 > {
31112 PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder {
31113 inner: PipelineViewportCoarseSampleOrderStateCreateInfoNV {
31114 s_type: StructureType::from_raw(1000164005i32),
31115 ..Default::default()
31116 },
31117 _marker: core::marker::PhantomData,
31118 }
31119 }
31120}
31121impl<'a> PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder<'a> {
31122 #[inline]
31123 pub fn sample_order_type(mut self, value: CoarseSampleOrderTypeNV) -> Self {
31124 self.inner.sample_order_type = value;
31125 self
31126 }
31127 #[inline]
31128 pub fn custom_sample_orders(
31129 mut self,
31130 slice: &'a [CoarseSampleOrderCustomNV],
31131 ) -> Self {
31132 self.inner.custom_sample_order_count = slice.len() as u32;
31133 self.inner.p_custom_sample_orders = slice.as_ptr();
31134 self
31135 }
31136 #[inline]
31138 pub fn push_next<T: ExtendsPipelineViewportCoarseSampleOrderStateCreateInfoNV>(
31139 mut self,
31140 next: &'a mut T,
31141 ) -> Self {
31142 unsafe {
31143 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31144 (*next_ptr).p_next = self.inner.p_next as *mut _;
31145 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31146 core::ffi::c_void,
31147 >(next_ptr) as *const _;
31148 }
31149 self
31150 }
31151}
31152impl<'a> core::ops::Deref
31153for PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder<'a> {
31154 type Target = PipelineViewportCoarseSampleOrderStateCreateInfoNV;
31155 #[inline]
31156 fn deref(&self) -> &Self::Target {
31157 &self.inner
31158 }
31159}
31160impl<'a> core::ops::DerefMut
31161for PipelineViewportCoarseSampleOrderStateCreateInfoNVBuilder<'a> {
31162 #[inline]
31163 fn deref_mut(&mut self) -> &mut Self::Target {
31164 &mut self.inner
31165 }
31166}
31167pub struct PhysicalDeviceMeshShaderFeaturesNVBuilder<'a> {
31169 inner: PhysicalDeviceMeshShaderFeaturesNV,
31170 _marker: core::marker::PhantomData<&'a ()>,
31171}
31172impl PhysicalDeviceMeshShaderFeaturesNV {
31173 #[inline]
31175 pub fn builder<'a>() -> PhysicalDeviceMeshShaderFeaturesNVBuilder<'a> {
31176 PhysicalDeviceMeshShaderFeaturesNVBuilder {
31177 inner: PhysicalDeviceMeshShaderFeaturesNV {
31178 s_type: StructureType::from_raw(1000202000i32),
31179 ..Default::default()
31180 },
31181 _marker: core::marker::PhantomData,
31182 }
31183 }
31184}
31185impl<'a> PhysicalDeviceMeshShaderFeaturesNVBuilder<'a> {
31186 #[inline]
31187 pub fn task_shader(mut self, value: bool) -> Self {
31188 self.inner.task_shader = value as u32;
31189 self
31190 }
31191 #[inline]
31192 pub fn mesh_shader(mut self, value: bool) -> Self {
31193 self.inner.mesh_shader = value as u32;
31194 self
31195 }
31196 #[inline]
31198 pub fn push_next<T: ExtendsPhysicalDeviceMeshShaderFeaturesNV>(
31199 mut self,
31200 next: &'a mut T,
31201 ) -> Self {
31202 unsafe {
31203 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31204 (*next_ptr).p_next = self.inner.p_next as *mut _;
31205 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31206 core::ffi::c_void,
31207 >(next_ptr);
31208 }
31209 self
31210 }
31211}
31212impl<'a> core::ops::Deref for PhysicalDeviceMeshShaderFeaturesNVBuilder<'a> {
31213 type Target = PhysicalDeviceMeshShaderFeaturesNV;
31214 #[inline]
31215 fn deref(&self) -> &Self::Target {
31216 &self.inner
31217 }
31218}
31219impl<'a> core::ops::DerefMut for PhysicalDeviceMeshShaderFeaturesNVBuilder<'a> {
31220 #[inline]
31221 fn deref_mut(&mut self) -> &mut Self::Target {
31222 &mut self.inner
31223 }
31224}
31225pub struct PhysicalDeviceMeshShaderPropertiesNVBuilder<'a> {
31227 inner: PhysicalDeviceMeshShaderPropertiesNV,
31228 _marker: core::marker::PhantomData<&'a ()>,
31229}
31230impl PhysicalDeviceMeshShaderPropertiesNV {
31231 #[inline]
31233 pub fn builder<'a>() -> PhysicalDeviceMeshShaderPropertiesNVBuilder<'a> {
31234 PhysicalDeviceMeshShaderPropertiesNVBuilder {
31235 inner: PhysicalDeviceMeshShaderPropertiesNV {
31236 s_type: StructureType::from_raw(1000202001i32),
31237 ..Default::default()
31238 },
31239 _marker: core::marker::PhantomData,
31240 }
31241 }
31242}
31243impl<'a> PhysicalDeviceMeshShaderPropertiesNVBuilder<'a> {
31244 #[inline]
31245 pub fn max_draw_mesh_tasks_count(mut self, value: u32) -> Self {
31246 self.inner.max_draw_mesh_tasks_count = value;
31247 self
31248 }
31249 #[inline]
31250 pub fn max_task_work_group_invocations(mut self, value: u32) -> Self {
31251 self.inner.max_task_work_group_invocations = value;
31252 self
31253 }
31254 #[inline]
31255 pub fn max_task_work_group_size(mut self, value: [u32; 3usize]) -> Self {
31256 self.inner.max_task_work_group_size = value;
31257 self
31258 }
31259 #[inline]
31260 pub fn max_task_total_memory_size(mut self, value: u32) -> Self {
31261 self.inner.max_task_total_memory_size = value;
31262 self
31263 }
31264 #[inline]
31265 pub fn max_task_output_count(mut self, value: u32) -> Self {
31266 self.inner.max_task_output_count = value;
31267 self
31268 }
31269 #[inline]
31270 pub fn max_mesh_work_group_invocations(mut self, value: u32) -> Self {
31271 self.inner.max_mesh_work_group_invocations = value;
31272 self
31273 }
31274 #[inline]
31275 pub fn max_mesh_work_group_size(mut self, value: [u32; 3usize]) -> Self {
31276 self.inner.max_mesh_work_group_size = value;
31277 self
31278 }
31279 #[inline]
31280 pub fn max_mesh_total_memory_size(mut self, value: u32) -> Self {
31281 self.inner.max_mesh_total_memory_size = value;
31282 self
31283 }
31284 #[inline]
31285 pub fn max_mesh_output_vertices(mut self, value: u32) -> Self {
31286 self.inner.max_mesh_output_vertices = value;
31287 self
31288 }
31289 #[inline]
31290 pub fn max_mesh_output_primitives(mut self, value: u32) -> Self {
31291 self.inner.max_mesh_output_primitives = value;
31292 self
31293 }
31294 #[inline]
31295 pub fn max_mesh_multiview_view_count(mut self, value: u32) -> Self {
31296 self.inner.max_mesh_multiview_view_count = value;
31297 self
31298 }
31299 #[inline]
31300 pub fn mesh_output_per_vertex_granularity(mut self, value: u32) -> Self {
31301 self.inner.mesh_output_per_vertex_granularity = value;
31302 self
31303 }
31304 #[inline]
31305 pub fn mesh_output_per_primitive_granularity(mut self, value: u32) -> Self {
31306 self.inner.mesh_output_per_primitive_granularity = value;
31307 self
31308 }
31309}
31310impl<'a> core::ops::Deref for PhysicalDeviceMeshShaderPropertiesNVBuilder<'a> {
31311 type Target = PhysicalDeviceMeshShaderPropertiesNV;
31312 #[inline]
31313 fn deref(&self) -> &Self::Target {
31314 &self.inner
31315 }
31316}
31317impl<'a> core::ops::DerefMut for PhysicalDeviceMeshShaderPropertiesNVBuilder<'a> {
31318 #[inline]
31319 fn deref_mut(&mut self) -> &mut Self::Target {
31320 &mut self.inner
31321 }
31322}
31323pub struct DrawMeshTasksIndirectCommandNVBuilder {
31325 inner: DrawMeshTasksIndirectCommandNV,
31326}
31327impl DrawMeshTasksIndirectCommandNV {
31328 #[inline]
31330 pub fn builder() -> DrawMeshTasksIndirectCommandNVBuilder {
31331 DrawMeshTasksIndirectCommandNVBuilder {
31332 inner: DrawMeshTasksIndirectCommandNV {
31333 ..Default::default()
31334 },
31335 }
31336 }
31337}
31338impl DrawMeshTasksIndirectCommandNVBuilder {
31339 #[inline]
31340 pub fn task_count(mut self, value: u32) -> Self {
31341 self.inner.task_count = value;
31342 self
31343 }
31344 #[inline]
31345 pub fn first_task(mut self, value: u32) -> Self {
31346 self.inner.first_task = value;
31347 self
31348 }
31349}
31350impl core::ops::Deref for DrawMeshTasksIndirectCommandNVBuilder {
31351 type Target = DrawMeshTasksIndirectCommandNV;
31352 #[inline]
31353 fn deref(&self) -> &Self::Target {
31354 &self.inner
31355 }
31356}
31357impl core::ops::DerefMut for DrawMeshTasksIndirectCommandNVBuilder {
31358 #[inline]
31359 fn deref_mut(&mut self) -> &mut Self::Target {
31360 &mut self.inner
31361 }
31362}
31363pub struct PhysicalDeviceMeshShaderFeaturesEXTBuilder<'a> {
31365 inner: PhysicalDeviceMeshShaderFeaturesEXT,
31366 _marker: core::marker::PhantomData<&'a ()>,
31367}
31368impl PhysicalDeviceMeshShaderFeaturesEXT {
31369 #[inline]
31371 pub fn builder<'a>() -> PhysicalDeviceMeshShaderFeaturesEXTBuilder<'a> {
31372 PhysicalDeviceMeshShaderFeaturesEXTBuilder {
31373 inner: PhysicalDeviceMeshShaderFeaturesEXT {
31374 s_type: StructureType::from_raw(1000328000i32),
31375 ..Default::default()
31376 },
31377 _marker: core::marker::PhantomData,
31378 }
31379 }
31380}
31381impl<'a> PhysicalDeviceMeshShaderFeaturesEXTBuilder<'a> {
31382 #[inline]
31383 pub fn task_shader(mut self, value: bool) -> Self {
31384 self.inner.task_shader = value as u32;
31385 self
31386 }
31387 #[inline]
31388 pub fn mesh_shader(mut self, value: bool) -> Self {
31389 self.inner.mesh_shader = value as u32;
31390 self
31391 }
31392 #[inline]
31393 pub fn multiview_mesh_shader(mut self, value: bool) -> Self {
31394 self.inner.multiview_mesh_shader = value as u32;
31395 self
31396 }
31397 #[inline]
31398 pub fn primitive_fragment_shading_rate_mesh_shader(mut self, value: bool) -> Self {
31399 self.inner.primitive_fragment_shading_rate_mesh_shader = value as u32;
31400 self
31401 }
31402 #[inline]
31403 pub fn mesh_shader_queries(mut self, value: bool) -> Self {
31404 self.inner.mesh_shader_queries = value as u32;
31405 self
31406 }
31407 #[inline]
31409 pub fn push_next<T: ExtendsPhysicalDeviceMeshShaderFeaturesEXT>(
31410 mut self,
31411 next: &'a mut T,
31412 ) -> Self {
31413 unsafe {
31414 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31415 (*next_ptr).p_next = self.inner.p_next as *mut _;
31416 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31417 core::ffi::c_void,
31418 >(next_ptr);
31419 }
31420 self
31421 }
31422}
31423impl<'a> core::ops::Deref for PhysicalDeviceMeshShaderFeaturesEXTBuilder<'a> {
31424 type Target = PhysicalDeviceMeshShaderFeaturesEXT;
31425 #[inline]
31426 fn deref(&self) -> &Self::Target {
31427 &self.inner
31428 }
31429}
31430impl<'a> core::ops::DerefMut for PhysicalDeviceMeshShaderFeaturesEXTBuilder<'a> {
31431 #[inline]
31432 fn deref_mut(&mut self) -> &mut Self::Target {
31433 &mut self.inner
31434 }
31435}
31436pub struct PhysicalDeviceMeshShaderPropertiesEXTBuilder<'a> {
31438 inner: PhysicalDeviceMeshShaderPropertiesEXT,
31439 _marker: core::marker::PhantomData<&'a ()>,
31440}
31441impl PhysicalDeviceMeshShaderPropertiesEXT {
31442 #[inline]
31444 pub fn builder<'a>() -> PhysicalDeviceMeshShaderPropertiesEXTBuilder<'a> {
31445 PhysicalDeviceMeshShaderPropertiesEXTBuilder {
31446 inner: PhysicalDeviceMeshShaderPropertiesEXT {
31447 s_type: StructureType::from_raw(1000328001i32),
31448 ..Default::default()
31449 },
31450 _marker: core::marker::PhantomData,
31451 }
31452 }
31453}
31454impl<'a> PhysicalDeviceMeshShaderPropertiesEXTBuilder<'a> {
31455 #[inline]
31456 pub fn max_task_work_group_total_count(mut self, value: u32) -> Self {
31457 self.inner.max_task_work_group_total_count = value;
31458 self
31459 }
31460 #[inline]
31461 pub fn max_task_work_group_count(mut self, value: [u32; 3usize]) -> Self {
31462 self.inner.max_task_work_group_count = value;
31463 self
31464 }
31465 #[inline]
31466 pub fn max_task_work_group_invocations(mut self, value: u32) -> Self {
31467 self.inner.max_task_work_group_invocations = value;
31468 self
31469 }
31470 #[inline]
31471 pub fn max_task_work_group_size(mut self, value: [u32; 3usize]) -> Self {
31472 self.inner.max_task_work_group_size = value;
31473 self
31474 }
31475 #[inline]
31476 pub fn max_task_payload_size(mut self, value: u32) -> Self {
31477 self.inner.max_task_payload_size = value;
31478 self
31479 }
31480 #[inline]
31481 pub fn max_task_shared_memory_size(mut self, value: u32) -> Self {
31482 self.inner.max_task_shared_memory_size = value;
31483 self
31484 }
31485 #[inline]
31486 pub fn max_task_payload_and_shared_memory_size(mut self, value: u32) -> Self {
31487 self.inner.max_task_payload_and_shared_memory_size = value;
31488 self
31489 }
31490 #[inline]
31491 pub fn max_mesh_work_group_total_count(mut self, value: u32) -> Self {
31492 self.inner.max_mesh_work_group_total_count = value;
31493 self
31494 }
31495 #[inline]
31496 pub fn max_mesh_work_group_count(mut self, value: [u32; 3usize]) -> Self {
31497 self.inner.max_mesh_work_group_count = value;
31498 self
31499 }
31500 #[inline]
31501 pub fn max_mesh_work_group_invocations(mut self, value: u32) -> Self {
31502 self.inner.max_mesh_work_group_invocations = value;
31503 self
31504 }
31505 #[inline]
31506 pub fn max_mesh_work_group_size(mut self, value: [u32; 3usize]) -> Self {
31507 self.inner.max_mesh_work_group_size = value;
31508 self
31509 }
31510 #[inline]
31511 pub fn max_mesh_shared_memory_size(mut self, value: u32) -> Self {
31512 self.inner.max_mesh_shared_memory_size = value;
31513 self
31514 }
31515 #[inline]
31516 pub fn max_mesh_payload_and_shared_memory_size(mut self, value: u32) -> Self {
31517 self.inner.max_mesh_payload_and_shared_memory_size = value;
31518 self
31519 }
31520 #[inline]
31521 pub fn max_mesh_output_memory_size(mut self, value: u32) -> Self {
31522 self.inner.max_mesh_output_memory_size = value;
31523 self
31524 }
31525 #[inline]
31526 pub fn max_mesh_payload_and_output_memory_size(mut self, value: u32) -> Self {
31527 self.inner.max_mesh_payload_and_output_memory_size = value;
31528 self
31529 }
31530 #[inline]
31531 pub fn max_mesh_output_components(mut self, value: u32) -> Self {
31532 self.inner.max_mesh_output_components = value;
31533 self
31534 }
31535 #[inline]
31536 pub fn max_mesh_output_vertices(mut self, value: u32) -> Self {
31537 self.inner.max_mesh_output_vertices = value;
31538 self
31539 }
31540 #[inline]
31541 pub fn max_mesh_output_primitives(mut self, value: u32) -> Self {
31542 self.inner.max_mesh_output_primitives = value;
31543 self
31544 }
31545 #[inline]
31546 pub fn max_mesh_output_layers(mut self, value: u32) -> Self {
31547 self.inner.max_mesh_output_layers = value;
31548 self
31549 }
31550 #[inline]
31551 pub fn max_mesh_multiview_view_count(mut self, value: u32) -> Self {
31552 self.inner.max_mesh_multiview_view_count = value;
31553 self
31554 }
31555 #[inline]
31556 pub fn mesh_output_per_vertex_granularity(mut self, value: u32) -> Self {
31557 self.inner.mesh_output_per_vertex_granularity = value;
31558 self
31559 }
31560 #[inline]
31561 pub fn mesh_output_per_primitive_granularity(mut self, value: u32) -> Self {
31562 self.inner.mesh_output_per_primitive_granularity = value;
31563 self
31564 }
31565 #[inline]
31566 pub fn max_preferred_task_work_group_invocations(mut self, value: u32) -> Self {
31567 self.inner.max_preferred_task_work_group_invocations = value;
31568 self
31569 }
31570 #[inline]
31571 pub fn max_preferred_mesh_work_group_invocations(mut self, value: u32) -> Self {
31572 self.inner.max_preferred_mesh_work_group_invocations = value;
31573 self
31574 }
31575 #[inline]
31576 pub fn prefers_local_invocation_vertex_output(mut self, value: bool) -> Self {
31577 self.inner.prefers_local_invocation_vertex_output = value as u32;
31578 self
31579 }
31580 #[inline]
31581 pub fn prefers_local_invocation_primitive_output(mut self, value: bool) -> Self {
31582 self.inner.prefers_local_invocation_primitive_output = value as u32;
31583 self
31584 }
31585 #[inline]
31586 pub fn prefers_compact_vertex_output(mut self, value: bool) -> Self {
31587 self.inner.prefers_compact_vertex_output = value as u32;
31588 self
31589 }
31590 #[inline]
31591 pub fn prefers_compact_primitive_output(mut self, value: bool) -> Self {
31592 self.inner.prefers_compact_primitive_output = value as u32;
31593 self
31594 }
31595}
31596impl<'a> core::ops::Deref for PhysicalDeviceMeshShaderPropertiesEXTBuilder<'a> {
31597 type Target = PhysicalDeviceMeshShaderPropertiesEXT;
31598 #[inline]
31599 fn deref(&self) -> &Self::Target {
31600 &self.inner
31601 }
31602}
31603impl<'a> core::ops::DerefMut for PhysicalDeviceMeshShaderPropertiesEXTBuilder<'a> {
31604 #[inline]
31605 fn deref_mut(&mut self) -> &mut Self::Target {
31606 &mut self.inner
31607 }
31608}
31609pub struct DrawMeshTasksIndirectCommandEXTBuilder {
31611 inner: DrawMeshTasksIndirectCommandEXT,
31612}
31613impl DrawMeshTasksIndirectCommandEXT {
31614 #[inline]
31616 pub fn builder() -> DrawMeshTasksIndirectCommandEXTBuilder {
31617 DrawMeshTasksIndirectCommandEXTBuilder {
31618 inner: DrawMeshTasksIndirectCommandEXT {
31619 ..Default::default()
31620 },
31621 }
31622 }
31623}
31624impl DrawMeshTasksIndirectCommandEXTBuilder {
31625 #[inline]
31626 pub fn group_count_x(mut self, value: u32) -> Self {
31627 self.inner.group_count_x = value;
31628 self
31629 }
31630 #[inline]
31631 pub fn group_count_y(mut self, value: u32) -> Self {
31632 self.inner.group_count_y = value;
31633 self
31634 }
31635 #[inline]
31636 pub fn group_count_z(mut self, value: u32) -> Self {
31637 self.inner.group_count_z = value;
31638 self
31639 }
31640}
31641impl core::ops::Deref for DrawMeshTasksIndirectCommandEXTBuilder {
31642 type Target = DrawMeshTasksIndirectCommandEXT;
31643 #[inline]
31644 fn deref(&self) -> &Self::Target {
31645 &self.inner
31646 }
31647}
31648impl core::ops::DerefMut for DrawMeshTasksIndirectCommandEXTBuilder {
31649 #[inline]
31650 fn deref_mut(&mut self) -> &mut Self::Target {
31651 &mut self.inner
31652 }
31653}
31654pub struct RayTracingShaderGroupCreateInfoNVBuilder<'a> {
31656 inner: RayTracingShaderGroupCreateInfoNV,
31657 _marker: core::marker::PhantomData<&'a ()>,
31658}
31659impl RayTracingShaderGroupCreateInfoNV {
31660 #[inline]
31662 pub fn builder<'a>() -> RayTracingShaderGroupCreateInfoNVBuilder<'a> {
31663 RayTracingShaderGroupCreateInfoNVBuilder {
31664 inner: RayTracingShaderGroupCreateInfoNV {
31665 s_type: StructureType::from_raw(1000165011i32),
31666 ..Default::default()
31667 },
31668 _marker: core::marker::PhantomData,
31669 }
31670 }
31671}
31672impl<'a> RayTracingShaderGroupCreateInfoNVBuilder<'a> {
31673 #[inline]
31674 pub fn r#type(mut self, value: RayTracingShaderGroupTypeKHR) -> Self {
31675 self.inner.r#type = value;
31676 self
31677 }
31678 #[inline]
31679 pub fn general_shader(mut self, value: u32) -> Self {
31680 self.inner.general_shader = value;
31681 self
31682 }
31683 #[inline]
31684 pub fn closest_hit_shader(mut self, value: u32) -> Self {
31685 self.inner.closest_hit_shader = value;
31686 self
31687 }
31688 #[inline]
31689 pub fn any_hit_shader(mut self, value: u32) -> Self {
31690 self.inner.any_hit_shader = value;
31691 self
31692 }
31693 #[inline]
31694 pub fn intersection_shader(mut self, value: u32) -> Self {
31695 self.inner.intersection_shader = value;
31696 self
31697 }
31698 #[inline]
31700 pub fn push_next<T: ExtendsRayTracingShaderGroupCreateInfoNV>(
31701 mut self,
31702 next: &'a mut T,
31703 ) -> Self {
31704 unsafe {
31705 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31706 (*next_ptr).p_next = self.inner.p_next as *mut _;
31707 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31708 core::ffi::c_void,
31709 >(next_ptr) as *const _;
31710 }
31711 self
31712 }
31713}
31714impl<'a> core::ops::Deref for RayTracingShaderGroupCreateInfoNVBuilder<'a> {
31715 type Target = RayTracingShaderGroupCreateInfoNV;
31716 #[inline]
31717 fn deref(&self) -> &Self::Target {
31718 &self.inner
31719 }
31720}
31721impl<'a> core::ops::DerefMut for RayTracingShaderGroupCreateInfoNVBuilder<'a> {
31722 #[inline]
31723 fn deref_mut(&mut self) -> &mut Self::Target {
31724 &mut self.inner
31725 }
31726}
31727pub struct RayTracingShaderGroupCreateInfoKHRBuilder<'a> {
31729 inner: RayTracingShaderGroupCreateInfoKHR,
31730 _marker: core::marker::PhantomData<&'a ()>,
31731}
31732impl RayTracingShaderGroupCreateInfoKHR {
31733 #[inline]
31735 pub fn builder<'a>() -> RayTracingShaderGroupCreateInfoKHRBuilder<'a> {
31736 RayTracingShaderGroupCreateInfoKHRBuilder {
31737 inner: RayTracingShaderGroupCreateInfoKHR {
31738 s_type: StructureType::from_raw(1000150016i32),
31739 ..Default::default()
31740 },
31741 _marker: core::marker::PhantomData,
31742 }
31743 }
31744}
31745impl<'a> RayTracingShaderGroupCreateInfoKHRBuilder<'a> {
31746 #[inline]
31747 pub fn r#type(mut self, value: RayTracingShaderGroupTypeKHR) -> Self {
31748 self.inner.r#type = value;
31749 self
31750 }
31751 #[inline]
31752 pub fn general_shader(mut self, value: u32) -> Self {
31753 self.inner.general_shader = value;
31754 self
31755 }
31756 #[inline]
31757 pub fn closest_hit_shader(mut self, value: u32) -> Self {
31758 self.inner.closest_hit_shader = value;
31759 self
31760 }
31761 #[inline]
31762 pub fn any_hit_shader(mut self, value: u32) -> Self {
31763 self.inner.any_hit_shader = value;
31764 self
31765 }
31766 #[inline]
31767 pub fn intersection_shader(mut self, value: u32) -> Self {
31768 self.inner.intersection_shader = value;
31769 self
31770 }
31771 #[inline]
31772 pub fn shader_group_capture_replay_handle(
31773 mut self,
31774 value: *const core::ffi::c_void,
31775 ) -> Self {
31776 self.inner.p_shader_group_capture_replay_handle = value;
31777 self
31778 }
31779 #[inline]
31781 pub fn push_next<T: ExtendsRayTracingShaderGroupCreateInfoKHR>(
31782 mut self,
31783 next: &'a mut T,
31784 ) -> Self {
31785 unsafe {
31786 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31787 (*next_ptr).p_next = self.inner.p_next as *mut _;
31788 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31789 core::ffi::c_void,
31790 >(next_ptr) as *const _;
31791 }
31792 self
31793 }
31794}
31795impl<'a> core::ops::Deref for RayTracingShaderGroupCreateInfoKHRBuilder<'a> {
31796 type Target = RayTracingShaderGroupCreateInfoKHR;
31797 #[inline]
31798 fn deref(&self) -> &Self::Target {
31799 &self.inner
31800 }
31801}
31802impl<'a> core::ops::DerefMut for RayTracingShaderGroupCreateInfoKHRBuilder<'a> {
31803 #[inline]
31804 fn deref_mut(&mut self) -> &mut Self::Target {
31805 &mut self.inner
31806 }
31807}
31808pub struct RayTracingPipelineCreateInfoNVBuilder<'a> {
31810 inner: RayTracingPipelineCreateInfoNV,
31811 _marker: core::marker::PhantomData<&'a ()>,
31812}
31813impl RayTracingPipelineCreateInfoNV {
31814 #[inline]
31816 pub fn builder<'a>() -> RayTracingPipelineCreateInfoNVBuilder<'a> {
31817 RayTracingPipelineCreateInfoNVBuilder {
31818 inner: RayTracingPipelineCreateInfoNV {
31819 s_type: StructureType::from_raw(1000165000i32),
31820 ..Default::default()
31821 },
31822 _marker: core::marker::PhantomData,
31823 }
31824 }
31825}
31826impl<'a> RayTracingPipelineCreateInfoNVBuilder<'a> {
31827 #[inline]
31828 pub fn flags(mut self, value: PipelineCreateFlags) -> Self {
31829 self.inner.flags = value;
31830 self
31831 }
31832 #[inline]
31833 pub fn stages(mut self, slice: &'a [PipelineShaderStageCreateInfo]) -> Self {
31834 self.inner.stage_count = slice.len() as u32;
31835 self.inner.p_stages = slice.as_ptr();
31836 self
31837 }
31838 #[inline]
31839 pub fn groups(mut self, slice: &'a [RayTracingShaderGroupCreateInfoNV]) -> Self {
31840 self.inner.group_count = slice.len() as u32;
31841 self.inner.p_groups = slice.as_ptr();
31842 self
31843 }
31844 #[inline]
31845 pub fn max_recursion_depth(mut self, value: u32) -> Self {
31846 self.inner.max_recursion_depth = value;
31847 self
31848 }
31849 #[inline]
31850 pub fn layout(mut self, value: PipelineLayout) -> Self {
31851 self.inner.layout = value;
31852 self
31853 }
31854 #[inline]
31855 pub fn base_pipeline_handle(mut self, value: Pipeline) -> Self {
31856 self.inner.base_pipeline_handle = value;
31857 self
31858 }
31859 #[inline]
31860 pub fn base_pipeline_index(mut self, value: i32) -> Self {
31861 self.inner.base_pipeline_index = value;
31862 self
31863 }
31864 #[inline]
31866 pub fn push_next<T: ExtendsRayTracingPipelineCreateInfoNV>(
31867 mut self,
31868 next: &'a mut T,
31869 ) -> Self {
31870 unsafe {
31871 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31872 (*next_ptr).p_next = self.inner.p_next as *mut _;
31873 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31874 core::ffi::c_void,
31875 >(next_ptr) as *const _;
31876 }
31877 self
31878 }
31879}
31880impl<'a> core::ops::Deref for RayTracingPipelineCreateInfoNVBuilder<'a> {
31881 type Target = RayTracingPipelineCreateInfoNV;
31882 #[inline]
31883 fn deref(&self) -> &Self::Target {
31884 &self.inner
31885 }
31886}
31887impl<'a> core::ops::DerefMut for RayTracingPipelineCreateInfoNVBuilder<'a> {
31888 #[inline]
31889 fn deref_mut(&mut self) -> &mut Self::Target {
31890 &mut self.inner
31891 }
31892}
31893pub struct RayTracingPipelineCreateInfoKHRBuilder<'a> {
31895 inner: RayTracingPipelineCreateInfoKHR,
31896 _marker: core::marker::PhantomData<&'a ()>,
31897}
31898impl RayTracingPipelineCreateInfoKHR {
31899 #[inline]
31901 pub fn builder<'a>() -> RayTracingPipelineCreateInfoKHRBuilder<'a> {
31902 RayTracingPipelineCreateInfoKHRBuilder {
31903 inner: RayTracingPipelineCreateInfoKHR {
31904 s_type: StructureType::from_raw(1000150015i32),
31905 ..Default::default()
31906 },
31907 _marker: core::marker::PhantomData,
31908 }
31909 }
31910}
31911impl<'a> RayTracingPipelineCreateInfoKHRBuilder<'a> {
31912 #[inline]
31913 pub fn flags(mut self, value: PipelineCreateFlags) -> Self {
31914 self.inner.flags = value;
31915 self
31916 }
31917 #[inline]
31918 pub fn stages(mut self, slice: &'a [PipelineShaderStageCreateInfo]) -> Self {
31919 self.inner.stage_count = slice.len() as u32;
31920 self.inner.p_stages = slice.as_ptr();
31921 self
31922 }
31923 #[inline]
31924 pub fn groups(mut self, slice: &'a [RayTracingShaderGroupCreateInfoKHR]) -> Self {
31925 self.inner.group_count = slice.len() as u32;
31926 self.inner.p_groups = slice.as_ptr();
31927 self
31928 }
31929 #[inline]
31930 pub fn max_pipeline_ray_recursion_depth(mut self, value: u32) -> Self {
31931 self.inner.max_pipeline_ray_recursion_depth = value;
31932 self
31933 }
31934 #[inline]
31935 pub fn library_info(mut self, value: &'a PipelineLibraryCreateInfoKHR) -> Self {
31936 self.inner.p_library_info = value;
31937 self
31938 }
31939 #[inline]
31940 pub fn library_interface(
31941 mut self,
31942 value: &'a RayTracingPipelineInterfaceCreateInfoKHR,
31943 ) -> Self {
31944 self.inner.p_library_interface = value;
31945 self
31946 }
31947 #[inline]
31948 pub fn dynamic_state(mut self, value: &'a PipelineDynamicStateCreateInfo) -> Self {
31949 self.inner.p_dynamic_state = value;
31950 self
31951 }
31952 #[inline]
31953 pub fn layout(mut self, value: PipelineLayout) -> Self {
31954 self.inner.layout = value;
31955 self
31956 }
31957 #[inline]
31958 pub fn base_pipeline_handle(mut self, value: Pipeline) -> Self {
31959 self.inner.base_pipeline_handle = value;
31960 self
31961 }
31962 #[inline]
31963 pub fn base_pipeline_index(mut self, value: i32) -> Self {
31964 self.inner.base_pipeline_index = value;
31965 self
31966 }
31967 #[inline]
31969 pub fn push_next<T: ExtendsRayTracingPipelineCreateInfoKHR>(
31970 mut self,
31971 next: &'a mut T,
31972 ) -> Self {
31973 unsafe {
31974 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
31975 (*next_ptr).p_next = self.inner.p_next as *mut _;
31976 self.inner.p_next = <*mut BaseOutStructure>::cast::<
31977 core::ffi::c_void,
31978 >(next_ptr) as *const _;
31979 }
31980 self
31981 }
31982}
31983impl<'a> core::ops::Deref for RayTracingPipelineCreateInfoKHRBuilder<'a> {
31984 type Target = RayTracingPipelineCreateInfoKHR;
31985 #[inline]
31986 fn deref(&self) -> &Self::Target {
31987 &self.inner
31988 }
31989}
31990impl<'a> core::ops::DerefMut for RayTracingPipelineCreateInfoKHRBuilder<'a> {
31991 #[inline]
31992 fn deref_mut(&mut self) -> &mut Self::Target {
31993 &mut self.inner
31994 }
31995}
31996pub struct GeometryTrianglesNVBuilder<'a> {
31998 inner: GeometryTrianglesNV,
31999 _marker: core::marker::PhantomData<&'a ()>,
32000}
32001impl GeometryTrianglesNV {
32002 #[inline]
32004 pub fn builder<'a>() -> GeometryTrianglesNVBuilder<'a> {
32005 GeometryTrianglesNVBuilder {
32006 inner: GeometryTrianglesNV {
32007 s_type: StructureType::from_raw(1000165004i32),
32008 ..Default::default()
32009 },
32010 _marker: core::marker::PhantomData,
32011 }
32012 }
32013}
32014impl<'a> GeometryTrianglesNVBuilder<'a> {
32015 #[inline]
32016 pub fn vertex_data(mut self, value: Buffer) -> Self {
32017 self.inner.vertex_data = value;
32018 self
32019 }
32020 #[inline]
32021 pub fn vertex_offset(mut self, value: u64) -> Self {
32022 self.inner.vertex_offset = value;
32023 self
32024 }
32025 #[inline]
32026 pub fn vertex_count(mut self, value: u32) -> Self {
32027 self.inner.vertex_count = value;
32028 self
32029 }
32030 #[inline]
32031 pub fn vertex_stride(mut self, value: u64) -> Self {
32032 self.inner.vertex_stride = value;
32033 self
32034 }
32035 #[inline]
32036 pub fn vertex_format(mut self, value: Format) -> Self {
32037 self.inner.vertex_format = value;
32038 self
32039 }
32040 #[inline]
32041 pub fn index_data(mut self, value: Buffer) -> Self {
32042 self.inner.index_data = value;
32043 self
32044 }
32045 #[inline]
32046 pub fn index_offset(mut self, value: u64) -> Self {
32047 self.inner.index_offset = value;
32048 self
32049 }
32050 #[inline]
32051 pub fn index_count(mut self, value: u32) -> Self {
32052 self.inner.index_count = value;
32053 self
32054 }
32055 #[inline]
32056 pub fn index_type(mut self, value: IndexType) -> Self {
32057 self.inner.index_type = value;
32058 self
32059 }
32060 #[inline]
32061 pub fn transform_data(mut self, value: Buffer) -> Self {
32062 self.inner.transform_data = value;
32063 self
32064 }
32065 #[inline]
32066 pub fn transform_offset(mut self, value: u64) -> Self {
32067 self.inner.transform_offset = value;
32068 self
32069 }
32070 #[inline]
32072 pub fn push_next<T: ExtendsGeometryTrianglesNV>(mut self, next: &'a mut T) -> Self {
32073 unsafe {
32074 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32075 (*next_ptr).p_next = self.inner.p_next as *mut _;
32076 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32077 core::ffi::c_void,
32078 >(next_ptr) as *const _;
32079 }
32080 self
32081 }
32082}
32083impl<'a> core::ops::Deref for GeometryTrianglesNVBuilder<'a> {
32084 type Target = GeometryTrianglesNV;
32085 #[inline]
32086 fn deref(&self) -> &Self::Target {
32087 &self.inner
32088 }
32089}
32090impl<'a> core::ops::DerefMut for GeometryTrianglesNVBuilder<'a> {
32091 #[inline]
32092 fn deref_mut(&mut self) -> &mut Self::Target {
32093 &mut self.inner
32094 }
32095}
32096pub struct GeometryAABBNVBuilder<'a> {
32098 inner: GeometryAABBNV,
32099 _marker: core::marker::PhantomData<&'a ()>,
32100}
32101impl GeometryAABBNV {
32102 #[inline]
32104 pub fn builder<'a>() -> GeometryAABBNVBuilder<'a> {
32105 GeometryAABBNVBuilder {
32106 inner: GeometryAABBNV {
32107 s_type: StructureType::from_raw(1000165005i32),
32108 ..Default::default()
32109 },
32110 _marker: core::marker::PhantomData,
32111 }
32112 }
32113}
32114impl<'a> GeometryAABBNVBuilder<'a> {
32115 #[inline]
32116 pub fn aabb_data(mut self, value: Buffer) -> Self {
32117 self.inner.aabb_data = value;
32118 self
32119 }
32120 #[inline]
32121 pub fn num_aab_bs(mut self, value: u32) -> Self {
32122 self.inner.num_aab_bs = value;
32123 self
32124 }
32125 #[inline]
32126 pub fn stride(mut self, value: u32) -> Self {
32127 self.inner.stride = value;
32128 self
32129 }
32130 #[inline]
32131 pub fn offset(mut self, value: u64) -> Self {
32132 self.inner.offset = value;
32133 self
32134 }
32135 #[inline]
32137 pub fn push_next<T: ExtendsGeometryAABBNV>(mut self, next: &'a mut T) -> Self {
32138 unsafe {
32139 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32140 (*next_ptr).p_next = self.inner.p_next as *mut _;
32141 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32142 core::ffi::c_void,
32143 >(next_ptr) as *const _;
32144 }
32145 self
32146 }
32147}
32148impl<'a> core::ops::Deref for GeometryAABBNVBuilder<'a> {
32149 type Target = GeometryAABBNV;
32150 #[inline]
32151 fn deref(&self) -> &Self::Target {
32152 &self.inner
32153 }
32154}
32155impl<'a> core::ops::DerefMut for GeometryAABBNVBuilder<'a> {
32156 #[inline]
32157 fn deref_mut(&mut self) -> &mut Self::Target {
32158 &mut self.inner
32159 }
32160}
32161pub struct GeometryDataNVBuilder {
32163 inner: GeometryDataNV,
32164}
32165impl GeometryDataNV {
32166 #[inline]
32168 pub fn builder() -> GeometryDataNVBuilder {
32169 GeometryDataNVBuilder {
32170 inner: GeometryDataNV {
32171 ..Default::default()
32172 },
32173 }
32174 }
32175}
32176impl GeometryDataNVBuilder {
32177 #[inline]
32178 pub fn triangles(mut self, value: GeometryTrianglesNV) -> Self {
32179 self.inner.triangles = value;
32180 self
32181 }
32182 #[inline]
32183 pub fn aabbs(mut self, value: GeometryAABBNV) -> Self {
32184 self.inner.aabbs = value;
32185 self
32186 }
32187}
32188impl core::ops::Deref for GeometryDataNVBuilder {
32189 type Target = GeometryDataNV;
32190 #[inline]
32191 fn deref(&self) -> &Self::Target {
32192 &self.inner
32193 }
32194}
32195impl core::ops::DerefMut for GeometryDataNVBuilder {
32196 #[inline]
32197 fn deref_mut(&mut self) -> &mut Self::Target {
32198 &mut self.inner
32199 }
32200}
32201pub struct GeometryNVBuilder<'a> {
32203 inner: GeometryNV,
32204 _marker: core::marker::PhantomData<&'a ()>,
32205}
32206impl GeometryNV {
32207 #[inline]
32209 pub fn builder<'a>() -> GeometryNVBuilder<'a> {
32210 GeometryNVBuilder {
32211 inner: GeometryNV {
32212 s_type: StructureType::from_raw(1000165003i32),
32213 ..Default::default()
32214 },
32215 _marker: core::marker::PhantomData,
32216 }
32217 }
32218}
32219impl<'a> GeometryNVBuilder<'a> {
32220 #[inline]
32221 pub fn geometry_type(mut self, value: GeometryTypeKHR) -> Self {
32222 self.inner.geometry_type = value;
32223 self
32224 }
32225 #[inline]
32226 pub fn geometry(mut self, value: GeometryDataNV) -> Self {
32227 self.inner.geometry = value;
32228 self
32229 }
32230 #[inline]
32231 pub fn flags(mut self, value: GeometryFlagsKHR) -> Self {
32232 self.inner.flags = value;
32233 self
32234 }
32235 #[inline]
32237 pub fn push_next<T: ExtendsGeometryNV>(mut self, next: &'a mut T) -> Self {
32238 unsafe {
32239 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32240 (*next_ptr).p_next = self.inner.p_next as *mut _;
32241 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32242 core::ffi::c_void,
32243 >(next_ptr) as *const _;
32244 }
32245 self
32246 }
32247}
32248impl<'a> core::ops::Deref for GeometryNVBuilder<'a> {
32249 type Target = GeometryNV;
32250 #[inline]
32251 fn deref(&self) -> &Self::Target {
32252 &self.inner
32253 }
32254}
32255impl<'a> core::ops::DerefMut for GeometryNVBuilder<'a> {
32256 #[inline]
32257 fn deref_mut(&mut self) -> &mut Self::Target {
32258 &mut self.inner
32259 }
32260}
32261pub struct AccelerationStructureInfoNVBuilder<'a> {
32263 inner: AccelerationStructureInfoNV,
32264 _marker: core::marker::PhantomData<&'a ()>,
32265}
32266impl AccelerationStructureInfoNV {
32267 #[inline]
32269 pub fn builder<'a>() -> AccelerationStructureInfoNVBuilder<'a> {
32270 AccelerationStructureInfoNVBuilder {
32271 inner: AccelerationStructureInfoNV {
32272 s_type: StructureType::from_raw(1000165012i32),
32273 ..Default::default()
32274 },
32275 _marker: core::marker::PhantomData,
32276 }
32277 }
32278}
32279impl<'a> AccelerationStructureInfoNVBuilder<'a> {
32280 #[inline]
32281 pub fn r#type(mut self, value: AccelerationStructureTypeNV) -> Self {
32282 self.inner.r#type = value;
32283 self
32284 }
32285 #[inline]
32286 pub fn flags(mut self, value: BuildAccelerationStructureFlagsNV) -> Self {
32287 self.inner.flags = value;
32288 self
32289 }
32290 #[inline]
32291 pub fn instance_count(mut self, value: u32) -> Self {
32292 self.inner.instance_count = value;
32293 self
32294 }
32295 #[inline]
32296 pub fn geometries(mut self, slice: &'a [GeometryNV]) -> Self {
32297 self.inner.geometry_count = slice.len() as u32;
32298 self.inner.p_geometries = slice.as_ptr();
32299 self
32300 }
32301 #[inline]
32303 pub fn push_next<T: ExtendsAccelerationStructureInfoNV>(
32304 mut self,
32305 next: &'a mut T,
32306 ) -> Self {
32307 unsafe {
32308 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32309 (*next_ptr).p_next = self.inner.p_next as *mut _;
32310 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32311 core::ffi::c_void,
32312 >(next_ptr) as *const _;
32313 }
32314 self
32315 }
32316}
32317impl<'a> core::ops::Deref for AccelerationStructureInfoNVBuilder<'a> {
32318 type Target = AccelerationStructureInfoNV;
32319 #[inline]
32320 fn deref(&self) -> &Self::Target {
32321 &self.inner
32322 }
32323}
32324impl<'a> core::ops::DerefMut for AccelerationStructureInfoNVBuilder<'a> {
32325 #[inline]
32326 fn deref_mut(&mut self) -> &mut Self::Target {
32327 &mut self.inner
32328 }
32329}
32330pub struct AccelerationStructureCreateInfoNVBuilder<'a> {
32332 inner: AccelerationStructureCreateInfoNV,
32333 _marker: core::marker::PhantomData<&'a ()>,
32334}
32335impl AccelerationStructureCreateInfoNV {
32336 #[inline]
32338 pub fn builder<'a>() -> AccelerationStructureCreateInfoNVBuilder<'a> {
32339 AccelerationStructureCreateInfoNVBuilder {
32340 inner: AccelerationStructureCreateInfoNV {
32341 s_type: StructureType::from_raw(1000165001i32),
32342 ..Default::default()
32343 },
32344 _marker: core::marker::PhantomData,
32345 }
32346 }
32347}
32348impl<'a> AccelerationStructureCreateInfoNVBuilder<'a> {
32349 #[inline]
32350 pub fn compacted_size(mut self, value: u64) -> Self {
32351 self.inner.compacted_size = value;
32352 self
32353 }
32354 #[inline]
32355 pub fn info(mut self, value: AccelerationStructureInfoNV) -> Self {
32356 self.inner.info = value;
32357 self
32358 }
32359 #[inline]
32361 pub fn push_next<T: ExtendsAccelerationStructureCreateInfoNV>(
32362 mut self,
32363 next: &'a mut T,
32364 ) -> Self {
32365 unsafe {
32366 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32367 (*next_ptr).p_next = self.inner.p_next as *mut _;
32368 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32369 core::ffi::c_void,
32370 >(next_ptr) as *const _;
32371 }
32372 self
32373 }
32374}
32375impl<'a> core::ops::Deref for AccelerationStructureCreateInfoNVBuilder<'a> {
32376 type Target = AccelerationStructureCreateInfoNV;
32377 #[inline]
32378 fn deref(&self) -> &Self::Target {
32379 &self.inner
32380 }
32381}
32382impl<'a> core::ops::DerefMut for AccelerationStructureCreateInfoNVBuilder<'a> {
32383 #[inline]
32384 fn deref_mut(&mut self) -> &mut Self::Target {
32385 &mut self.inner
32386 }
32387}
32388pub struct BindAccelerationStructureMemoryInfoNVBuilder<'a> {
32390 inner: BindAccelerationStructureMemoryInfoNV,
32391 _marker: core::marker::PhantomData<&'a ()>,
32392}
32393impl BindAccelerationStructureMemoryInfoNV {
32394 #[inline]
32396 pub fn builder<'a>() -> BindAccelerationStructureMemoryInfoNVBuilder<'a> {
32397 BindAccelerationStructureMemoryInfoNVBuilder {
32398 inner: BindAccelerationStructureMemoryInfoNV {
32399 s_type: StructureType::from_raw(1000165006i32),
32400 ..Default::default()
32401 },
32402 _marker: core::marker::PhantomData,
32403 }
32404 }
32405}
32406impl<'a> BindAccelerationStructureMemoryInfoNVBuilder<'a> {
32407 #[inline]
32408 pub fn acceleration_structure(mut self, value: AccelerationStructureNV) -> Self {
32409 self.inner.acceleration_structure = value;
32410 self
32411 }
32412 #[inline]
32413 pub fn memory(mut self, value: DeviceMemory) -> Self {
32414 self.inner.memory = value;
32415 self
32416 }
32417 #[inline]
32418 pub fn memory_offset(mut self, value: u64) -> Self {
32419 self.inner.memory_offset = value;
32420 self
32421 }
32422 #[inline]
32423 pub fn device_indices(mut self, slice: &'a [u32]) -> Self {
32424 self.inner.device_index_count = slice.len() as u32;
32425 self.inner.p_device_indices = slice.as_ptr();
32426 self
32427 }
32428 #[inline]
32430 pub fn push_next<T: ExtendsBindAccelerationStructureMemoryInfoNV>(
32431 mut self,
32432 next: &'a mut T,
32433 ) -> Self {
32434 unsafe {
32435 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32436 (*next_ptr).p_next = self.inner.p_next as *mut _;
32437 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32438 core::ffi::c_void,
32439 >(next_ptr) as *const _;
32440 }
32441 self
32442 }
32443}
32444impl<'a> core::ops::Deref for BindAccelerationStructureMemoryInfoNVBuilder<'a> {
32445 type Target = BindAccelerationStructureMemoryInfoNV;
32446 #[inline]
32447 fn deref(&self) -> &Self::Target {
32448 &self.inner
32449 }
32450}
32451impl<'a> core::ops::DerefMut for BindAccelerationStructureMemoryInfoNVBuilder<'a> {
32452 #[inline]
32453 fn deref_mut(&mut self) -> &mut Self::Target {
32454 &mut self.inner
32455 }
32456}
32457pub struct WriteDescriptorSetAccelerationStructureKHRBuilder<'a> {
32459 inner: WriteDescriptorSetAccelerationStructureKHR,
32460 _marker: core::marker::PhantomData<&'a ()>,
32461}
32462impl WriteDescriptorSetAccelerationStructureKHR {
32463 #[inline]
32465 pub fn builder<'a>() -> WriteDescriptorSetAccelerationStructureKHRBuilder<'a> {
32466 WriteDescriptorSetAccelerationStructureKHRBuilder {
32467 inner: WriteDescriptorSetAccelerationStructureKHR {
32468 s_type: StructureType::from_raw(1000150007i32),
32469 ..Default::default()
32470 },
32471 _marker: core::marker::PhantomData,
32472 }
32473 }
32474}
32475impl<'a> WriteDescriptorSetAccelerationStructureKHRBuilder<'a> {
32476 #[inline]
32477 pub fn acceleration_structure_count(mut self, value: u32) -> Self {
32478 self.inner.acceleration_structure_count = value;
32479 self
32480 }
32481 #[inline]
32482 pub fn acceleration_structures(
32483 mut self,
32484 slice: &'a [AccelerationStructureKHR],
32485 ) -> Self {
32486 self.inner.acceleration_structure_count = slice.len() as u32;
32487 self.inner.p_acceleration_structures = slice.as_ptr();
32488 self
32489 }
32490 #[inline]
32492 pub fn push_next<T: ExtendsWriteDescriptorSetAccelerationStructureKHR>(
32493 mut self,
32494 next: &'a mut T,
32495 ) -> Self {
32496 unsafe {
32497 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32498 (*next_ptr).p_next = self.inner.p_next as *mut _;
32499 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32500 core::ffi::c_void,
32501 >(next_ptr) as *const _;
32502 }
32503 self
32504 }
32505}
32506impl<'a> core::ops::Deref for WriteDescriptorSetAccelerationStructureKHRBuilder<'a> {
32507 type Target = WriteDescriptorSetAccelerationStructureKHR;
32508 #[inline]
32509 fn deref(&self) -> &Self::Target {
32510 &self.inner
32511 }
32512}
32513impl<'a> core::ops::DerefMut for WriteDescriptorSetAccelerationStructureKHRBuilder<'a> {
32514 #[inline]
32515 fn deref_mut(&mut self) -> &mut Self::Target {
32516 &mut self.inner
32517 }
32518}
32519pub struct WriteDescriptorSetAccelerationStructureNVBuilder<'a> {
32521 inner: WriteDescriptorSetAccelerationStructureNV,
32522 _marker: core::marker::PhantomData<&'a ()>,
32523}
32524impl WriteDescriptorSetAccelerationStructureNV {
32525 #[inline]
32527 pub fn builder<'a>() -> WriteDescriptorSetAccelerationStructureNVBuilder<'a> {
32528 WriteDescriptorSetAccelerationStructureNVBuilder {
32529 inner: WriteDescriptorSetAccelerationStructureNV {
32530 s_type: StructureType::from_raw(1000165007i32),
32531 ..Default::default()
32532 },
32533 _marker: core::marker::PhantomData,
32534 }
32535 }
32536}
32537impl<'a> WriteDescriptorSetAccelerationStructureNVBuilder<'a> {
32538 #[inline]
32539 pub fn acceleration_structure_count(mut self, value: u32) -> Self {
32540 self.inner.acceleration_structure_count = value;
32541 self
32542 }
32543 #[inline]
32544 pub fn acceleration_structures(
32545 mut self,
32546 slice: &'a [AccelerationStructureNV],
32547 ) -> Self {
32548 self.inner.acceleration_structure_count = slice.len() as u32;
32549 self.inner.p_acceleration_structures = slice.as_ptr();
32550 self
32551 }
32552 #[inline]
32554 pub fn push_next<T: ExtendsWriteDescriptorSetAccelerationStructureNV>(
32555 mut self,
32556 next: &'a mut T,
32557 ) -> Self {
32558 unsafe {
32559 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32560 (*next_ptr).p_next = self.inner.p_next as *mut _;
32561 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32562 core::ffi::c_void,
32563 >(next_ptr) as *const _;
32564 }
32565 self
32566 }
32567}
32568impl<'a> core::ops::Deref for WriteDescriptorSetAccelerationStructureNVBuilder<'a> {
32569 type Target = WriteDescriptorSetAccelerationStructureNV;
32570 #[inline]
32571 fn deref(&self) -> &Self::Target {
32572 &self.inner
32573 }
32574}
32575impl<'a> core::ops::DerefMut for WriteDescriptorSetAccelerationStructureNVBuilder<'a> {
32576 #[inline]
32577 fn deref_mut(&mut self) -> &mut Self::Target {
32578 &mut self.inner
32579 }
32580}
32581pub struct AccelerationStructureMemoryRequirementsInfoNVBuilder<'a> {
32583 inner: AccelerationStructureMemoryRequirementsInfoNV,
32584 _marker: core::marker::PhantomData<&'a ()>,
32585}
32586impl AccelerationStructureMemoryRequirementsInfoNV {
32587 #[inline]
32589 pub fn builder<'a>() -> AccelerationStructureMemoryRequirementsInfoNVBuilder<'a> {
32590 AccelerationStructureMemoryRequirementsInfoNVBuilder {
32591 inner: AccelerationStructureMemoryRequirementsInfoNV {
32592 s_type: StructureType::from_raw(1000165008i32),
32593 ..Default::default()
32594 },
32595 _marker: core::marker::PhantomData,
32596 }
32597 }
32598}
32599impl<'a> AccelerationStructureMemoryRequirementsInfoNVBuilder<'a> {
32600 #[inline]
32601 pub fn r#type(
32602 mut self,
32603 value: AccelerationStructureMemoryRequirementsTypeNV,
32604 ) -> Self {
32605 self.inner.r#type = value;
32606 self
32607 }
32608 #[inline]
32609 pub fn acceleration_structure(mut self, value: AccelerationStructureNV) -> Self {
32610 self.inner.acceleration_structure = value;
32611 self
32612 }
32613 #[inline]
32615 pub fn push_next<T: ExtendsAccelerationStructureMemoryRequirementsInfoNV>(
32616 mut self,
32617 next: &'a mut T,
32618 ) -> Self {
32619 unsafe {
32620 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32621 (*next_ptr).p_next = self.inner.p_next as *mut _;
32622 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32623 core::ffi::c_void,
32624 >(next_ptr) as *const _;
32625 }
32626 self
32627 }
32628}
32629impl<'a> core::ops::Deref for AccelerationStructureMemoryRequirementsInfoNVBuilder<'a> {
32630 type Target = AccelerationStructureMemoryRequirementsInfoNV;
32631 #[inline]
32632 fn deref(&self) -> &Self::Target {
32633 &self.inner
32634 }
32635}
32636impl<'a> core::ops::DerefMut
32637for AccelerationStructureMemoryRequirementsInfoNVBuilder<'a> {
32638 #[inline]
32639 fn deref_mut(&mut self) -> &mut Self::Target {
32640 &mut self.inner
32641 }
32642}
32643pub struct PhysicalDeviceAccelerationStructureFeaturesKHRBuilder<'a> {
32645 inner: PhysicalDeviceAccelerationStructureFeaturesKHR,
32646 _marker: core::marker::PhantomData<&'a ()>,
32647}
32648impl PhysicalDeviceAccelerationStructureFeaturesKHR {
32649 #[inline]
32651 pub fn builder<'a>() -> PhysicalDeviceAccelerationStructureFeaturesKHRBuilder<'a> {
32652 PhysicalDeviceAccelerationStructureFeaturesKHRBuilder {
32653 inner: PhysicalDeviceAccelerationStructureFeaturesKHR {
32654 s_type: StructureType::from_raw(1000150013i32),
32655 ..Default::default()
32656 },
32657 _marker: core::marker::PhantomData,
32658 }
32659 }
32660}
32661impl<'a> PhysicalDeviceAccelerationStructureFeaturesKHRBuilder<'a> {
32662 #[inline]
32663 pub fn acceleration_structure(mut self, value: bool) -> Self {
32664 self.inner.acceleration_structure = value as u32;
32665 self
32666 }
32667 #[inline]
32668 pub fn acceleration_structure_capture_replay(mut self, value: bool) -> Self {
32669 self.inner.acceleration_structure_capture_replay = value as u32;
32670 self
32671 }
32672 #[inline]
32673 pub fn acceleration_structure_indirect_build(mut self, value: bool) -> Self {
32674 self.inner.acceleration_structure_indirect_build = value as u32;
32675 self
32676 }
32677 #[inline]
32678 pub fn acceleration_structure_host_commands(mut self, value: bool) -> Self {
32679 self.inner.acceleration_structure_host_commands = value as u32;
32680 self
32681 }
32682 #[inline]
32683 pub fn descriptor_binding_acceleration_structure_update_after_bind(
32684 mut self,
32685 value: bool,
32686 ) -> Self {
32687 self.inner.descriptor_binding_acceleration_structure_update_after_bind = value
32688 as u32;
32689 self
32690 }
32691 #[inline]
32693 pub fn push_next<T: ExtendsPhysicalDeviceAccelerationStructureFeaturesKHR>(
32694 mut self,
32695 next: &'a mut T,
32696 ) -> Self {
32697 unsafe {
32698 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32699 (*next_ptr).p_next = self.inner.p_next as *mut _;
32700 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32701 core::ffi::c_void,
32702 >(next_ptr);
32703 }
32704 self
32705 }
32706}
32707impl<'a> core::ops::Deref for PhysicalDeviceAccelerationStructureFeaturesKHRBuilder<'a> {
32708 type Target = PhysicalDeviceAccelerationStructureFeaturesKHR;
32709 #[inline]
32710 fn deref(&self) -> &Self::Target {
32711 &self.inner
32712 }
32713}
32714impl<'a> core::ops::DerefMut
32715for PhysicalDeviceAccelerationStructureFeaturesKHRBuilder<'a> {
32716 #[inline]
32717 fn deref_mut(&mut self) -> &mut Self::Target {
32718 &mut self.inner
32719 }
32720}
32721pub struct PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder<'a> {
32723 inner: PhysicalDeviceRayTracingPipelineFeaturesKHR,
32724 _marker: core::marker::PhantomData<&'a ()>,
32725}
32726impl PhysicalDeviceRayTracingPipelineFeaturesKHR {
32727 #[inline]
32729 pub fn builder<'a>() -> PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder<'a> {
32730 PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder {
32731 inner: PhysicalDeviceRayTracingPipelineFeaturesKHR {
32732 s_type: StructureType::from_raw(1000347000i32),
32733 ..Default::default()
32734 },
32735 _marker: core::marker::PhantomData,
32736 }
32737 }
32738}
32739impl<'a> PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder<'a> {
32740 #[inline]
32741 pub fn ray_tracing_pipeline(mut self, value: bool) -> Self {
32742 self.inner.ray_tracing_pipeline = value as u32;
32743 self
32744 }
32745 #[inline]
32746 pub fn ray_tracing_pipeline_shader_group_handle_capture_replay(
32747 mut self,
32748 value: bool,
32749 ) -> Self {
32750 self.inner.ray_tracing_pipeline_shader_group_handle_capture_replay = value
32751 as u32;
32752 self
32753 }
32754 #[inline]
32755 pub fn ray_tracing_pipeline_shader_group_handle_capture_replay_mixed(
32756 mut self,
32757 value: bool,
32758 ) -> Self {
32759 self.inner.ray_tracing_pipeline_shader_group_handle_capture_replay_mixed = value
32760 as u32;
32761 self
32762 }
32763 #[inline]
32764 pub fn ray_tracing_pipeline_trace_rays_indirect(mut self, value: bool) -> Self {
32765 self.inner.ray_tracing_pipeline_trace_rays_indirect = value as u32;
32766 self
32767 }
32768 #[inline]
32769 pub fn ray_traversal_primitive_culling(mut self, value: bool) -> Self {
32770 self.inner.ray_traversal_primitive_culling = value as u32;
32771 self
32772 }
32773 #[inline]
32775 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingPipelineFeaturesKHR>(
32776 mut self,
32777 next: &'a mut T,
32778 ) -> Self {
32779 unsafe {
32780 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32781 (*next_ptr).p_next = self.inner.p_next as *mut _;
32782 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32783 core::ffi::c_void,
32784 >(next_ptr);
32785 }
32786 self
32787 }
32788}
32789impl<'a> core::ops::Deref for PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder<'a> {
32790 type Target = PhysicalDeviceRayTracingPipelineFeaturesKHR;
32791 #[inline]
32792 fn deref(&self) -> &Self::Target {
32793 &self.inner
32794 }
32795}
32796impl<'a> core::ops::DerefMut for PhysicalDeviceRayTracingPipelineFeaturesKHRBuilder<'a> {
32797 #[inline]
32798 fn deref_mut(&mut self) -> &mut Self::Target {
32799 &mut self.inner
32800 }
32801}
32802pub struct PhysicalDeviceRayQueryFeaturesKHRBuilder<'a> {
32804 inner: PhysicalDeviceRayQueryFeaturesKHR,
32805 _marker: core::marker::PhantomData<&'a ()>,
32806}
32807impl PhysicalDeviceRayQueryFeaturesKHR {
32808 #[inline]
32810 pub fn builder<'a>() -> PhysicalDeviceRayQueryFeaturesKHRBuilder<'a> {
32811 PhysicalDeviceRayQueryFeaturesKHRBuilder {
32812 inner: PhysicalDeviceRayQueryFeaturesKHR {
32813 s_type: StructureType::from_raw(1000348013i32),
32814 ..Default::default()
32815 },
32816 _marker: core::marker::PhantomData,
32817 }
32818 }
32819}
32820impl<'a> PhysicalDeviceRayQueryFeaturesKHRBuilder<'a> {
32821 #[inline]
32822 pub fn ray_query(mut self, value: bool) -> Self {
32823 self.inner.ray_query = value as u32;
32824 self
32825 }
32826 #[inline]
32828 pub fn push_next<T: ExtendsPhysicalDeviceRayQueryFeaturesKHR>(
32829 mut self,
32830 next: &'a mut T,
32831 ) -> Self {
32832 unsafe {
32833 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
32834 (*next_ptr).p_next = self.inner.p_next as *mut _;
32835 self.inner.p_next = <*mut BaseOutStructure>::cast::<
32836 core::ffi::c_void,
32837 >(next_ptr);
32838 }
32839 self
32840 }
32841}
32842impl<'a> core::ops::Deref for PhysicalDeviceRayQueryFeaturesKHRBuilder<'a> {
32843 type Target = PhysicalDeviceRayQueryFeaturesKHR;
32844 #[inline]
32845 fn deref(&self) -> &Self::Target {
32846 &self.inner
32847 }
32848}
32849impl<'a> core::ops::DerefMut for PhysicalDeviceRayQueryFeaturesKHRBuilder<'a> {
32850 #[inline]
32851 fn deref_mut(&mut self) -> &mut Self::Target {
32852 &mut self.inner
32853 }
32854}
32855pub struct PhysicalDeviceAccelerationStructurePropertiesKHRBuilder<'a> {
32857 inner: PhysicalDeviceAccelerationStructurePropertiesKHR,
32858 _marker: core::marker::PhantomData<&'a ()>,
32859}
32860impl PhysicalDeviceAccelerationStructurePropertiesKHR {
32861 #[inline]
32863 pub fn builder<'a>() -> PhysicalDeviceAccelerationStructurePropertiesKHRBuilder<'a> {
32864 PhysicalDeviceAccelerationStructurePropertiesKHRBuilder {
32865 inner: PhysicalDeviceAccelerationStructurePropertiesKHR {
32866 s_type: StructureType::from_raw(1000150014i32),
32867 ..Default::default()
32868 },
32869 _marker: core::marker::PhantomData,
32870 }
32871 }
32872}
32873impl<'a> PhysicalDeviceAccelerationStructurePropertiesKHRBuilder<'a> {
32874 #[inline]
32875 pub fn max_geometry_count(mut self, value: u64) -> Self {
32876 self.inner.max_geometry_count = value;
32877 self
32878 }
32879 #[inline]
32880 pub fn max_instance_count(mut self, value: u64) -> Self {
32881 self.inner.max_instance_count = value;
32882 self
32883 }
32884 #[inline]
32885 pub fn max_primitive_count(mut self, value: u64) -> Self {
32886 self.inner.max_primitive_count = value;
32887 self
32888 }
32889 #[inline]
32890 pub fn max_per_stage_descriptor_acceleration_structures(
32891 mut self,
32892 value: u32,
32893 ) -> Self {
32894 self.inner.max_per_stage_descriptor_acceleration_structures = value;
32895 self
32896 }
32897 #[inline]
32898 pub fn max_per_stage_descriptor_update_after_bind_acceleration_structures(
32899 mut self,
32900 value: u32,
32901 ) -> Self {
32902 self.inner.max_per_stage_descriptor_update_after_bind_acceleration_structures = value;
32903 self
32904 }
32905 #[inline]
32906 pub fn max_descriptor_set_acceleration_structures(mut self, value: u32) -> Self {
32907 self.inner.max_descriptor_set_acceleration_structures = value;
32908 self
32909 }
32910 #[inline]
32911 pub fn max_descriptor_set_update_after_bind_acceleration_structures(
32912 mut self,
32913 value: u32,
32914 ) -> Self {
32915 self.inner.max_descriptor_set_update_after_bind_acceleration_structures = value;
32916 self
32917 }
32918 #[inline]
32919 pub fn min_acceleration_structure_scratch_offset_alignment(
32920 mut self,
32921 value: u32,
32922 ) -> Self {
32923 self.inner.min_acceleration_structure_scratch_offset_alignment = value;
32924 self
32925 }
32926}
32927impl<'a> core::ops::Deref
32928for PhysicalDeviceAccelerationStructurePropertiesKHRBuilder<'a> {
32929 type Target = PhysicalDeviceAccelerationStructurePropertiesKHR;
32930 #[inline]
32931 fn deref(&self) -> &Self::Target {
32932 &self.inner
32933 }
32934}
32935impl<'a> core::ops::DerefMut
32936for PhysicalDeviceAccelerationStructurePropertiesKHRBuilder<'a> {
32937 #[inline]
32938 fn deref_mut(&mut self) -> &mut Self::Target {
32939 &mut self.inner
32940 }
32941}
32942pub struct PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder<'a> {
32944 inner: PhysicalDeviceRayTracingPipelinePropertiesKHR,
32945 _marker: core::marker::PhantomData<&'a ()>,
32946}
32947impl PhysicalDeviceRayTracingPipelinePropertiesKHR {
32948 #[inline]
32950 pub fn builder<'a>() -> PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder<'a> {
32951 PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder {
32952 inner: PhysicalDeviceRayTracingPipelinePropertiesKHR {
32953 s_type: StructureType::from_raw(1000347001i32),
32954 ..Default::default()
32955 },
32956 _marker: core::marker::PhantomData,
32957 }
32958 }
32959}
32960impl<'a> PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder<'a> {
32961 #[inline]
32962 pub fn shader_group_handle_size(mut self, value: u32) -> Self {
32963 self.inner.shader_group_handle_size = value;
32964 self
32965 }
32966 #[inline]
32967 pub fn max_ray_recursion_depth(mut self, value: u32) -> Self {
32968 self.inner.max_ray_recursion_depth = value;
32969 self
32970 }
32971 #[inline]
32972 pub fn max_shader_group_stride(mut self, value: u32) -> Self {
32973 self.inner.max_shader_group_stride = value;
32974 self
32975 }
32976 #[inline]
32977 pub fn shader_group_base_alignment(mut self, value: u32) -> Self {
32978 self.inner.shader_group_base_alignment = value;
32979 self
32980 }
32981 #[inline]
32982 pub fn shader_group_handle_capture_replay_size(mut self, value: u32) -> Self {
32983 self.inner.shader_group_handle_capture_replay_size = value;
32984 self
32985 }
32986 #[inline]
32987 pub fn max_ray_dispatch_invocation_count(mut self, value: u32) -> Self {
32988 self.inner.max_ray_dispatch_invocation_count = value;
32989 self
32990 }
32991 #[inline]
32992 pub fn shader_group_handle_alignment(mut self, value: u32) -> Self {
32993 self.inner.shader_group_handle_alignment = value;
32994 self
32995 }
32996 #[inline]
32997 pub fn max_ray_hit_attribute_size(mut self, value: u32) -> Self {
32998 self.inner.max_ray_hit_attribute_size = value;
32999 self
33000 }
33001}
33002impl<'a> core::ops::Deref for PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder<'a> {
33003 type Target = PhysicalDeviceRayTracingPipelinePropertiesKHR;
33004 #[inline]
33005 fn deref(&self) -> &Self::Target {
33006 &self.inner
33007 }
33008}
33009impl<'a> core::ops::DerefMut
33010for PhysicalDeviceRayTracingPipelinePropertiesKHRBuilder<'a> {
33011 #[inline]
33012 fn deref_mut(&mut self) -> &mut Self::Target {
33013 &mut self.inner
33014 }
33015}
33016pub struct PhysicalDeviceRayTracingPropertiesNVBuilder<'a> {
33018 inner: PhysicalDeviceRayTracingPropertiesNV,
33019 _marker: core::marker::PhantomData<&'a ()>,
33020}
33021impl PhysicalDeviceRayTracingPropertiesNV {
33022 #[inline]
33024 pub fn builder<'a>() -> PhysicalDeviceRayTracingPropertiesNVBuilder<'a> {
33025 PhysicalDeviceRayTracingPropertiesNVBuilder {
33026 inner: PhysicalDeviceRayTracingPropertiesNV {
33027 s_type: StructureType::from_raw(1000165009i32),
33028 ..Default::default()
33029 },
33030 _marker: core::marker::PhantomData,
33031 }
33032 }
33033}
33034impl<'a> PhysicalDeviceRayTracingPropertiesNVBuilder<'a> {
33035 #[inline]
33036 pub fn shader_group_handle_size(mut self, value: u32) -> Self {
33037 self.inner.shader_group_handle_size = value;
33038 self
33039 }
33040 #[inline]
33041 pub fn max_recursion_depth(mut self, value: u32) -> Self {
33042 self.inner.max_recursion_depth = value;
33043 self
33044 }
33045 #[inline]
33046 pub fn max_shader_group_stride(mut self, value: u32) -> Self {
33047 self.inner.max_shader_group_stride = value;
33048 self
33049 }
33050 #[inline]
33051 pub fn shader_group_base_alignment(mut self, value: u32) -> Self {
33052 self.inner.shader_group_base_alignment = value;
33053 self
33054 }
33055 #[inline]
33056 pub fn max_geometry_count(mut self, value: u64) -> Self {
33057 self.inner.max_geometry_count = value;
33058 self
33059 }
33060 #[inline]
33061 pub fn max_instance_count(mut self, value: u64) -> Self {
33062 self.inner.max_instance_count = value;
33063 self
33064 }
33065 #[inline]
33066 pub fn max_triangle_count(mut self, value: u64) -> Self {
33067 self.inner.max_triangle_count = value;
33068 self
33069 }
33070 #[inline]
33071 pub fn max_descriptor_set_acceleration_structures(mut self, value: u32) -> Self {
33072 self.inner.max_descriptor_set_acceleration_structures = value;
33073 self
33074 }
33075}
33076impl<'a> core::ops::Deref for PhysicalDeviceRayTracingPropertiesNVBuilder<'a> {
33077 type Target = PhysicalDeviceRayTracingPropertiesNV;
33078 #[inline]
33079 fn deref(&self) -> &Self::Target {
33080 &self.inner
33081 }
33082}
33083impl<'a> core::ops::DerefMut for PhysicalDeviceRayTracingPropertiesNVBuilder<'a> {
33084 #[inline]
33085 fn deref_mut(&mut self) -> &mut Self::Target {
33086 &mut self.inner
33087 }
33088}
33089pub struct StridedDeviceAddressRegionKHRBuilder {
33091 inner: StridedDeviceAddressRegionKHR,
33092}
33093impl StridedDeviceAddressRegionKHR {
33094 #[inline]
33096 pub fn builder() -> StridedDeviceAddressRegionKHRBuilder {
33097 StridedDeviceAddressRegionKHRBuilder {
33098 inner: StridedDeviceAddressRegionKHR {
33099 ..Default::default()
33100 },
33101 }
33102 }
33103}
33104impl StridedDeviceAddressRegionKHRBuilder {
33105 #[inline]
33106 pub fn device_address(mut self, value: u64) -> Self {
33107 self.inner.device_address = value;
33108 self
33109 }
33110 #[inline]
33111 pub fn stride(mut self, value: u64) -> Self {
33112 self.inner.stride = value;
33113 self
33114 }
33115 #[inline]
33116 pub fn size(mut self, value: u64) -> Self {
33117 self.inner.size = value;
33118 self
33119 }
33120}
33121impl core::ops::Deref for StridedDeviceAddressRegionKHRBuilder {
33122 type Target = StridedDeviceAddressRegionKHR;
33123 #[inline]
33124 fn deref(&self) -> &Self::Target {
33125 &self.inner
33126 }
33127}
33128impl core::ops::DerefMut for StridedDeviceAddressRegionKHRBuilder {
33129 #[inline]
33130 fn deref_mut(&mut self) -> &mut Self::Target {
33131 &mut self.inner
33132 }
33133}
33134pub struct TraceRaysIndirectCommandKHRBuilder {
33136 inner: TraceRaysIndirectCommandKHR,
33137}
33138impl TraceRaysIndirectCommandKHR {
33139 #[inline]
33141 pub fn builder() -> TraceRaysIndirectCommandKHRBuilder {
33142 TraceRaysIndirectCommandKHRBuilder {
33143 inner: TraceRaysIndirectCommandKHR {
33144 ..Default::default()
33145 },
33146 }
33147 }
33148}
33149impl TraceRaysIndirectCommandKHRBuilder {
33150 #[inline]
33151 pub fn width(mut self, value: u32) -> Self {
33152 self.inner.width = value;
33153 self
33154 }
33155 #[inline]
33156 pub fn height(mut self, value: u32) -> Self {
33157 self.inner.height = value;
33158 self
33159 }
33160 #[inline]
33161 pub fn depth(mut self, value: u32) -> Self {
33162 self.inner.depth = value;
33163 self
33164 }
33165}
33166impl core::ops::Deref for TraceRaysIndirectCommandKHRBuilder {
33167 type Target = TraceRaysIndirectCommandKHR;
33168 #[inline]
33169 fn deref(&self) -> &Self::Target {
33170 &self.inner
33171 }
33172}
33173impl core::ops::DerefMut for TraceRaysIndirectCommandKHRBuilder {
33174 #[inline]
33175 fn deref_mut(&mut self) -> &mut Self::Target {
33176 &mut self.inner
33177 }
33178}
33179pub struct TraceRaysIndirectCommand2KHRBuilder {
33181 inner: TraceRaysIndirectCommand2KHR,
33182}
33183impl TraceRaysIndirectCommand2KHR {
33184 #[inline]
33186 pub fn builder() -> TraceRaysIndirectCommand2KHRBuilder {
33187 TraceRaysIndirectCommand2KHRBuilder {
33188 inner: TraceRaysIndirectCommand2KHR {
33189 ..Default::default()
33190 },
33191 }
33192 }
33193}
33194impl TraceRaysIndirectCommand2KHRBuilder {
33195 #[inline]
33196 pub fn raygen_shader_record_address(mut self, value: u64) -> Self {
33197 self.inner.raygen_shader_record_address = value;
33198 self
33199 }
33200 #[inline]
33201 pub fn raygen_shader_record_size(mut self, value: u64) -> Self {
33202 self.inner.raygen_shader_record_size = value;
33203 self
33204 }
33205 #[inline]
33206 pub fn miss_shader_binding_table_address(mut self, value: u64) -> Self {
33207 self.inner.miss_shader_binding_table_address = value;
33208 self
33209 }
33210 #[inline]
33211 pub fn miss_shader_binding_table_size(mut self, value: u64) -> Self {
33212 self.inner.miss_shader_binding_table_size = value;
33213 self
33214 }
33215 #[inline]
33216 pub fn miss_shader_binding_table_stride(mut self, value: u64) -> Self {
33217 self.inner.miss_shader_binding_table_stride = value;
33218 self
33219 }
33220 #[inline]
33221 pub fn hit_shader_binding_table_address(mut self, value: u64) -> Self {
33222 self.inner.hit_shader_binding_table_address = value;
33223 self
33224 }
33225 #[inline]
33226 pub fn hit_shader_binding_table_size(mut self, value: u64) -> Self {
33227 self.inner.hit_shader_binding_table_size = value;
33228 self
33229 }
33230 #[inline]
33231 pub fn hit_shader_binding_table_stride(mut self, value: u64) -> Self {
33232 self.inner.hit_shader_binding_table_stride = value;
33233 self
33234 }
33235 #[inline]
33236 pub fn callable_shader_binding_table_address(mut self, value: u64) -> Self {
33237 self.inner.callable_shader_binding_table_address = value;
33238 self
33239 }
33240 #[inline]
33241 pub fn callable_shader_binding_table_size(mut self, value: u64) -> Self {
33242 self.inner.callable_shader_binding_table_size = value;
33243 self
33244 }
33245 #[inline]
33246 pub fn callable_shader_binding_table_stride(mut self, value: u64) -> Self {
33247 self.inner.callable_shader_binding_table_stride = value;
33248 self
33249 }
33250 #[inline]
33251 pub fn width(mut self, value: u32) -> Self {
33252 self.inner.width = value;
33253 self
33254 }
33255 #[inline]
33256 pub fn height(mut self, value: u32) -> Self {
33257 self.inner.height = value;
33258 self
33259 }
33260 #[inline]
33261 pub fn depth(mut self, value: u32) -> Self {
33262 self.inner.depth = value;
33263 self
33264 }
33265}
33266impl core::ops::Deref for TraceRaysIndirectCommand2KHRBuilder {
33267 type Target = TraceRaysIndirectCommand2KHR;
33268 #[inline]
33269 fn deref(&self) -> &Self::Target {
33270 &self.inner
33271 }
33272}
33273impl core::ops::DerefMut for TraceRaysIndirectCommand2KHRBuilder {
33274 #[inline]
33275 fn deref_mut(&mut self) -> &mut Self::Target {
33276 &mut self.inner
33277 }
33278}
33279pub struct PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder<'a> {
33281 inner: PhysicalDeviceRayTracingMaintenance1FeaturesKHR,
33282 _marker: core::marker::PhantomData<&'a ()>,
33283}
33284impl PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
33285 #[inline]
33287 pub fn builder<'a>() -> PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder<'a> {
33288 PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder {
33289 inner: PhysicalDeviceRayTracingMaintenance1FeaturesKHR {
33290 s_type: StructureType::from_raw(1000386000i32),
33291 ..Default::default()
33292 },
33293 _marker: core::marker::PhantomData,
33294 }
33295 }
33296}
33297impl<'a> PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder<'a> {
33298 #[inline]
33299 pub fn ray_tracing_maintenance1(mut self, value: bool) -> Self {
33300 self.inner.ray_tracing_maintenance1 = value as u32;
33301 self
33302 }
33303 #[inline]
33304 pub fn ray_tracing_pipeline_trace_rays_indirect2(mut self, value: bool) -> Self {
33305 self.inner.ray_tracing_pipeline_trace_rays_indirect2 = value as u32;
33306 self
33307 }
33308 #[inline]
33310 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingMaintenance1FeaturesKHR>(
33311 mut self,
33312 next: &'a mut T,
33313 ) -> Self {
33314 unsafe {
33315 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33316 (*next_ptr).p_next = self.inner.p_next as *mut _;
33317 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33318 core::ffi::c_void,
33319 >(next_ptr);
33320 }
33321 self
33322 }
33323}
33324impl<'a> core::ops::Deref
33325for PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder<'a> {
33326 type Target = PhysicalDeviceRayTracingMaintenance1FeaturesKHR;
33327 #[inline]
33328 fn deref(&self) -> &Self::Target {
33329 &self.inner
33330 }
33331}
33332impl<'a> core::ops::DerefMut
33333for PhysicalDeviceRayTracingMaintenance1FeaturesKHRBuilder<'a> {
33334 #[inline]
33335 fn deref_mut(&mut self) -> &mut Self::Target {
33336 &mut self.inner
33337 }
33338}
33339pub struct DrmFormatModifierPropertiesListEXTBuilder<'a> {
33341 inner: DrmFormatModifierPropertiesListEXT,
33342 _marker: core::marker::PhantomData<&'a ()>,
33343}
33344impl DrmFormatModifierPropertiesListEXT {
33345 #[inline]
33347 pub fn builder<'a>() -> DrmFormatModifierPropertiesListEXTBuilder<'a> {
33348 DrmFormatModifierPropertiesListEXTBuilder {
33349 inner: DrmFormatModifierPropertiesListEXT {
33350 s_type: StructureType::from_raw(1000158000i32),
33351 ..Default::default()
33352 },
33353 _marker: core::marker::PhantomData,
33354 }
33355 }
33356}
33357impl<'a> DrmFormatModifierPropertiesListEXTBuilder<'a> {
33358 #[inline]
33359 pub fn drm_format_modifier_count(mut self, value: u32) -> Self {
33360 self.inner.drm_format_modifier_count = value;
33361 self
33362 }
33363 #[inline]
33364 pub fn drm_format_modifier_properties(
33365 mut self,
33366 slice: &'a mut [DrmFormatModifierPropertiesEXT],
33367 ) -> Self {
33368 self.inner.drm_format_modifier_count = slice.len() as u32;
33369 self.inner.p_drm_format_modifier_properties = slice.as_mut_ptr();
33370 self
33371 }
33372}
33373impl<'a> core::ops::Deref for DrmFormatModifierPropertiesListEXTBuilder<'a> {
33374 type Target = DrmFormatModifierPropertiesListEXT;
33375 #[inline]
33376 fn deref(&self) -> &Self::Target {
33377 &self.inner
33378 }
33379}
33380impl<'a> core::ops::DerefMut for DrmFormatModifierPropertiesListEXTBuilder<'a> {
33381 #[inline]
33382 fn deref_mut(&mut self) -> &mut Self::Target {
33383 &mut self.inner
33384 }
33385}
33386pub struct DrmFormatModifierPropertiesEXTBuilder {
33388 inner: DrmFormatModifierPropertiesEXT,
33389}
33390impl DrmFormatModifierPropertiesEXT {
33391 #[inline]
33393 pub fn builder() -> DrmFormatModifierPropertiesEXTBuilder {
33394 DrmFormatModifierPropertiesEXTBuilder {
33395 inner: DrmFormatModifierPropertiesEXT {
33396 ..Default::default()
33397 },
33398 }
33399 }
33400}
33401impl DrmFormatModifierPropertiesEXTBuilder {
33402 #[inline]
33403 pub fn drm_format_modifier(mut self, value: u64) -> Self {
33404 self.inner.drm_format_modifier = value;
33405 self
33406 }
33407 #[inline]
33408 pub fn drm_format_modifier_plane_count(mut self, value: u32) -> Self {
33409 self.inner.drm_format_modifier_plane_count = value;
33410 self
33411 }
33412 #[inline]
33413 pub fn drm_format_modifier_tiling_features(
33414 mut self,
33415 value: FormatFeatureFlags,
33416 ) -> Self {
33417 self.inner.drm_format_modifier_tiling_features = value;
33418 self
33419 }
33420}
33421impl core::ops::Deref for DrmFormatModifierPropertiesEXTBuilder {
33422 type Target = DrmFormatModifierPropertiesEXT;
33423 #[inline]
33424 fn deref(&self) -> &Self::Target {
33425 &self.inner
33426 }
33427}
33428impl core::ops::DerefMut for DrmFormatModifierPropertiesEXTBuilder {
33429 #[inline]
33430 fn deref_mut(&mut self) -> &mut Self::Target {
33431 &mut self.inner
33432 }
33433}
33434pub struct PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
33436 inner: PhysicalDeviceImageDrmFormatModifierInfoEXT,
33437 _marker: core::marker::PhantomData<&'a ()>,
33438}
33439impl PhysicalDeviceImageDrmFormatModifierInfoEXT {
33440 #[inline]
33442 pub fn builder<'a>() -> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
33443 PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder {
33444 inner: PhysicalDeviceImageDrmFormatModifierInfoEXT {
33445 s_type: StructureType::from_raw(1000158002i32),
33446 ..Default::default()
33447 },
33448 _marker: core::marker::PhantomData,
33449 }
33450 }
33451}
33452impl<'a> PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
33453 #[inline]
33454 pub fn drm_format_modifier(mut self, value: u64) -> Self {
33455 self.inner.drm_format_modifier = value;
33456 self
33457 }
33458 #[inline]
33459 pub fn sharing_mode(mut self, value: SharingMode) -> Self {
33460 self.inner.sharing_mode = value;
33461 self
33462 }
33463 #[inline]
33464 pub fn queue_family_indices(mut self, slice: &'a [u32]) -> Self {
33465 self.inner.queue_family_index_count = slice.len() as u32;
33466 self.inner.p_queue_family_indices = slice.as_ptr();
33467 self
33468 }
33469 #[inline]
33471 pub fn push_next<T: ExtendsPhysicalDeviceImageDrmFormatModifierInfoEXT>(
33472 mut self,
33473 next: &'a mut T,
33474 ) -> Self {
33475 unsafe {
33476 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33477 (*next_ptr).p_next = self.inner.p_next as *mut _;
33478 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33479 core::ffi::c_void,
33480 >(next_ptr) as *const _;
33481 }
33482 self
33483 }
33484}
33485impl<'a> core::ops::Deref for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
33486 type Target = PhysicalDeviceImageDrmFormatModifierInfoEXT;
33487 #[inline]
33488 fn deref(&self) -> &Self::Target {
33489 &self.inner
33490 }
33491}
33492impl<'a> core::ops::DerefMut for PhysicalDeviceImageDrmFormatModifierInfoEXTBuilder<'a> {
33493 #[inline]
33494 fn deref_mut(&mut self) -> &mut Self::Target {
33495 &mut self.inner
33496 }
33497}
33498pub struct ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
33500 inner: ImageDrmFormatModifierListCreateInfoEXT,
33501 _marker: core::marker::PhantomData<&'a ()>,
33502}
33503impl ImageDrmFormatModifierListCreateInfoEXT {
33504 #[inline]
33506 pub fn builder<'a>() -> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
33507 ImageDrmFormatModifierListCreateInfoEXTBuilder {
33508 inner: ImageDrmFormatModifierListCreateInfoEXT {
33509 s_type: StructureType::from_raw(1000158003i32),
33510 ..Default::default()
33511 },
33512 _marker: core::marker::PhantomData,
33513 }
33514 }
33515}
33516impl<'a> ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
33517 #[inline]
33518 pub fn drm_format_modifiers(mut self, slice: &'a [u64]) -> Self {
33519 self.inner.drm_format_modifier_count = slice.len() as u32;
33520 self.inner.p_drm_format_modifiers = slice.as_ptr();
33521 self
33522 }
33523 #[inline]
33525 pub fn push_next<T: ExtendsImageDrmFormatModifierListCreateInfoEXT>(
33526 mut self,
33527 next: &'a mut T,
33528 ) -> Self {
33529 unsafe {
33530 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33531 (*next_ptr).p_next = self.inner.p_next as *mut _;
33532 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33533 core::ffi::c_void,
33534 >(next_ptr) as *const _;
33535 }
33536 self
33537 }
33538}
33539impl<'a> core::ops::Deref for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
33540 type Target = ImageDrmFormatModifierListCreateInfoEXT;
33541 #[inline]
33542 fn deref(&self) -> &Self::Target {
33543 &self.inner
33544 }
33545}
33546impl<'a> core::ops::DerefMut for ImageDrmFormatModifierListCreateInfoEXTBuilder<'a> {
33547 #[inline]
33548 fn deref_mut(&mut self) -> &mut Self::Target {
33549 &mut self.inner
33550 }
33551}
33552pub struct ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
33554 inner: ImageDrmFormatModifierExplicitCreateInfoEXT,
33555 _marker: core::marker::PhantomData<&'a ()>,
33556}
33557impl ImageDrmFormatModifierExplicitCreateInfoEXT {
33558 #[inline]
33560 pub fn builder<'a>() -> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
33561 ImageDrmFormatModifierExplicitCreateInfoEXTBuilder {
33562 inner: ImageDrmFormatModifierExplicitCreateInfoEXT {
33563 s_type: StructureType::from_raw(1000158004i32),
33564 ..Default::default()
33565 },
33566 _marker: core::marker::PhantomData,
33567 }
33568 }
33569}
33570impl<'a> ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
33571 #[inline]
33572 pub fn drm_format_modifier(mut self, value: u64) -> Self {
33573 self.inner.drm_format_modifier = value;
33574 self
33575 }
33576 #[inline]
33577 pub fn plane_layouts(mut self, slice: &'a [SubresourceLayout]) -> Self {
33578 self.inner.drm_format_modifier_plane_count = slice.len() as u32;
33579 self.inner.p_plane_layouts = slice.as_ptr();
33580 self
33581 }
33582 #[inline]
33584 pub fn push_next<T: ExtendsImageDrmFormatModifierExplicitCreateInfoEXT>(
33585 mut self,
33586 next: &'a mut T,
33587 ) -> Self {
33588 unsafe {
33589 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33590 (*next_ptr).p_next = self.inner.p_next as *mut _;
33591 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33592 core::ffi::c_void,
33593 >(next_ptr) as *const _;
33594 }
33595 self
33596 }
33597}
33598impl<'a> core::ops::Deref for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
33599 type Target = ImageDrmFormatModifierExplicitCreateInfoEXT;
33600 #[inline]
33601 fn deref(&self) -> &Self::Target {
33602 &self.inner
33603 }
33604}
33605impl<'a> core::ops::DerefMut for ImageDrmFormatModifierExplicitCreateInfoEXTBuilder<'a> {
33606 #[inline]
33607 fn deref_mut(&mut self) -> &mut Self::Target {
33608 &mut self.inner
33609 }
33610}
33611pub struct ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
33613 inner: ImageDrmFormatModifierPropertiesEXT,
33614 _marker: core::marker::PhantomData<&'a ()>,
33615}
33616impl ImageDrmFormatModifierPropertiesEXT {
33617 #[inline]
33619 pub fn builder<'a>() -> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
33620 ImageDrmFormatModifierPropertiesEXTBuilder {
33621 inner: ImageDrmFormatModifierPropertiesEXT {
33622 s_type: StructureType::from_raw(1000158005i32),
33623 ..Default::default()
33624 },
33625 _marker: core::marker::PhantomData,
33626 }
33627 }
33628}
33629impl<'a> ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
33630 #[inline]
33631 pub fn drm_format_modifier(mut self, value: u64) -> Self {
33632 self.inner.drm_format_modifier = value;
33633 self
33634 }
33635}
33636impl<'a> core::ops::Deref for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
33637 type Target = ImageDrmFormatModifierPropertiesEXT;
33638 #[inline]
33639 fn deref(&self) -> &Self::Target {
33640 &self.inner
33641 }
33642}
33643impl<'a> core::ops::DerefMut for ImageDrmFormatModifierPropertiesEXTBuilder<'a> {
33644 #[inline]
33645 fn deref_mut(&mut self) -> &mut Self::Target {
33646 &mut self.inner
33647 }
33648}
33649pub struct ImageStencilUsageCreateInfoBuilder<'a> {
33651 inner: ImageStencilUsageCreateInfo,
33652 _marker: core::marker::PhantomData<&'a ()>,
33653}
33654impl ImageStencilUsageCreateInfo {
33655 #[inline]
33657 pub fn builder<'a>() -> ImageStencilUsageCreateInfoBuilder<'a> {
33658 ImageStencilUsageCreateInfoBuilder {
33659 inner: ImageStencilUsageCreateInfo {
33660 s_type: StructureType::from_raw(1000246000i32),
33661 ..Default::default()
33662 },
33663 _marker: core::marker::PhantomData,
33664 }
33665 }
33666}
33667impl<'a> ImageStencilUsageCreateInfoBuilder<'a> {
33668 #[inline]
33669 pub fn stencil_usage(mut self, value: ImageUsageFlags) -> Self {
33670 self.inner.stencil_usage = value;
33671 self
33672 }
33673 #[inline]
33675 pub fn push_next<T: ExtendsImageStencilUsageCreateInfo>(
33676 mut self,
33677 next: &'a mut T,
33678 ) -> Self {
33679 unsafe {
33680 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33681 (*next_ptr).p_next = self.inner.p_next as *mut _;
33682 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33683 core::ffi::c_void,
33684 >(next_ptr) as *const _;
33685 }
33686 self
33687 }
33688}
33689impl<'a> core::ops::Deref for ImageStencilUsageCreateInfoBuilder<'a> {
33690 type Target = ImageStencilUsageCreateInfo;
33691 #[inline]
33692 fn deref(&self) -> &Self::Target {
33693 &self.inner
33694 }
33695}
33696impl<'a> core::ops::DerefMut for ImageStencilUsageCreateInfoBuilder<'a> {
33697 #[inline]
33698 fn deref_mut(&mut self) -> &mut Self::Target {
33699 &mut self.inner
33700 }
33701}
33702pub struct DeviceMemoryOverallocationCreateInfoAMDBuilder<'a> {
33704 inner: DeviceMemoryOverallocationCreateInfoAMD,
33705 _marker: core::marker::PhantomData<&'a ()>,
33706}
33707impl DeviceMemoryOverallocationCreateInfoAMD {
33708 #[inline]
33710 pub fn builder<'a>() -> DeviceMemoryOverallocationCreateInfoAMDBuilder<'a> {
33711 DeviceMemoryOverallocationCreateInfoAMDBuilder {
33712 inner: DeviceMemoryOverallocationCreateInfoAMD {
33713 s_type: StructureType::from_raw(1000189000i32),
33714 ..Default::default()
33715 },
33716 _marker: core::marker::PhantomData,
33717 }
33718 }
33719}
33720impl<'a> DeviceMemoryOverallocationCreateInfoAMDBuilder<'a> {
33721 #[inline]
33722 pub fn overallocation_behavior(
33723 mut self,
33724 value: MemoryOverallocationBehaviorAMD,
33725 ) -> Self {
33726 self.inner.overallocation_behavior = value;
33727 self
33728 }
33729 #[inline]
33731 pub fn push_next<T: ExtendsDeviceMemoryOverallocationCreateInfoAMD>(
33732 mut self,
33733 next: &'a mut T,
33734 ) -> Self {
33735 unsafe {
33736 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33737 (*next_ptr).p_next = self.inner.p_next as *mut _;
33738 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33739 core::ffi::c_void,
33740 >(next_ptr) as *const _;
33741 }
33742 self
33743 }
33744}
33745impl<'a> core::ops::Deref for DeviceMemoryOverallocationCreateInfoAMDBuilder<'a> {
33746 type Target = DeviceMemoryOverallocationCreateInfoAMD;
33747 #[inline]
33748 fn deref(&self) -> &Self::Target {
33749 &self.inner
33750 }
33751}
33752impl<'a> core::ops::DerefMut for DeviceMemoryOverallocationCreateInfoAMDBuilder<'a> {
33753 #[inline]
33754 fn deref_mut(&mut self) -> &mut Self::Target {
33755 &mut self.inner
33756 }
33757}
33758pub struct PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder<'a> {
33760 inner: PhysicalDeviceFragmentDensityMapFeaturesEXT,
33761 _marker: core::marker::PhantomData<&'a ()>,
33762}
33763impl PhysicalDeviceFragmentDensityMapFeaturesEXT {
33764 #[inline]
33766 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder<'a> {
33767 PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder {
33768 inner: PhysicalDeviceFragmentDensityMapFeaturesEXT {
33769 s_type: StructureType::from_raw(1000218000i32),
33770 ..Default::default()
33771 },
33772 _marker: core::marker::PhantomData,
33773 }
33774 }
33775}
33776impl<'a> PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder<'a> {
33777 #[inline]
33778 pub fn fragment_density_map(mut self, value: bool) -> Self {
33779 self.inner.fragment_density_map = value as u32;
33780 self
33781 }
33782 #[inline]
33783 pub fn fragment_density_map_dynamic(mut self, value: bool) -> Self {
33784 self.inner.fragment_density_map_dynamic = value as u32;
33785 self
33786 }
33787 #[inline]
33788 pub fn fragment_density_map_non_subsampled_images(mut self, value: bool) -> Self {
33789 self.inner.fragment_density_map_non_subsampled_images = value as u32;
33790 self
33791 }
33792 #[inline]
33794 pub fn push_next<T: ExtendsPhysicalDeviceFragmentDensityMapFeaturesEXT>(
33795 mut self,
33796 next: &'a mut T,
33797 ) -> Self {
33798 unsafe {
33799 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33800 (*next_ptr).p_next = self.inner.p_next as *mut _;
33801 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33802 core::ffi::c_void,
33803 >(next_ptr);
33804 }
33805 self
33806 }
33807}
33808impl<'a> core::ops::Deref for PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder<'a> {
33809 type Target = PhysicalDeviceFragmentDensityMapFeaturesEXT;
33810 #[inline]
33811 fn deref(&self) -> &Self::Target {
33812 &self.inner
33813 }
33814}
33815impl<'a> core::ops::DerefMut for PhysicalDeviceFragmentDensityMapFeaturesEXTBuilder<'a> {
33816 #[inline]
33817 fn deref_mut(&mut self) -> &mut Self::Target {
33818 &mut self.inner
33819 }
33820}
33821pub struct PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder<'a> {
33823 inner: PhysicalDeviceFragmentDensityMap2FeaturesEXT,
33824 _marker: core::marker::PhantomData<&'a ()>,
33825}
33826impl PhysicalDeviceFragmentDensityMap2FeaturesEXT {
33827 #[inline]
33829 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder<'a> {
33830 PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder {
33831 inner: PhysicalDeviceFragmentDensityMap2FeaturesEXT {
33832 s_type: StructureType::from_raw(1000332000i32),
33833 ..Default::default()
33834 },
33835 _marker: core::marker::PhantomData,
33836 }
33837 }
33838}
33839impl<'a> PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder<'a> {
33840 #[inline]
33841 pub fn fragment_density_map_deferred(mut self, value: bool) -> Self {
33842 self.inner.fragment_density_map_deferred = value as u32;
33843 self
33844 }
33845 #[inline]
33847 pub fn push_next<T: ExtendsPhysicalDeviceFragmentDensityMap2FeaturesEXT>(
33848 mut self,
33849 next: &'a mut T,
33850 ) -> Self {
33851 unsafe {
33852 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33853 (*next_ptr).p_next = self.inner.p_next as *mut _;
33854 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33855 core::ffi::c_void,
33856 >(next_ptr);
33857 }
33858 self
33859 }
33860}
33861impl<'a> core::ops::Deref for PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder<'a> {
33862 type Target = PhysicalDeviceFragmentDensityMap2FeaturesEXT;
33863 #[inline]
33864 fn deref(&self) -> &Self::Target {
33865 &self.inner
33866 }
33867}
33868impl<'a> core::ops::DerefMut
33869for PhysicalDeviceFragmentDensityMap2FeaturesEXTBuilder<'a> {
33870 #[inline]
33871 fn deref_mut(&mut self) -> &mut Self::Target {
33872 &mut self.inner
33873 }
33874}
33875pub struct PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder<'a> {
33877 inner: PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT,
33878 _marker: core::marker::PhantomData<&'a ()>,
33879}
33880impl PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
33881 #[inline]
33883 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder<
33884 'a,
33885 > {
33886 PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder {
33887 inner: PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
33888 s_type: StructureType::from_raw(1000425000i32),
33889 ..Default::default()
33890 },
33891 _marker: core::marker::PhantomData,
33892 }
33893 }
33894}
33895impl<'a> PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder<'a> {
33896 #[inline]
33897 pub fn fragment_density_map_offset(mut self, value: bool) -> Self {
33898 self.inner.fragment_density_map_offset = value as u32;
33899 self
33900 }
33901 #[inline]
33903 pub fn push_next<T: ExtendsPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT>(
33904 mut self,
33905 next: &'a mut T,
33906 ) -> Self {
33907 unsafe {
33908 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
33909 (*next_ptr).p_next = self.inner.p_next as *mut _;
33910 self.inner.p_next = <*mut BaseOutStructure>::cast::<
33911 core::ffi::c_void,
33912 >(next_ptr);
33913 }
33914 self
33915 }
33916}
33917impl<'a> core::ops::Deref
33918for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder<'a> {
33919 type Target = PhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
33920 #[inline]
33921 fn deref(&self) -> &Self::Target {
33922 &self.inner
33923 }
33924}
33925impl<'a> core::ops::DerefMut
33926for PhysicalDeviceFragmentDensityMapOffsetFeaturesEXTBuilder<'a> {
33927 #[inline]
33928 fn deref_mut(&mut self) -> &mut Self::Target {
33929 &mut self.inner
33930 }
33931}
33932pub struct PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder<'a> {
33934 inner: PhysicalDeviceFragmentDensityMapPropertiesEXT,
33935 _marker: core::marker::PhantomData<&'a ()>,
33936}
33937impl PhysicalDeviceFragmentDensityMapPropertiesEXT {
33938 #[inline]
33940 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder<'a> {
33941 PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder {
33942 inner: PhysicalDeviceFragmentDensityMapPropertiesEXT {
33943 s_type: StructureType::from_raw(1000218001i32),
33944 ..Default::default()
33945 },
33946 _marker: core::marker::PhantomData,
33947 }
33948 }
33949}
33950impl<'a> PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder<'a> {
33951 #[inline]
33952 pub fn min_fragment_density_texel_size(mut self, value: Extent2D) -> Self {
33953 self.inner.min_fragment_density_texel_size = value;
33954 self
33955 }
33956 #[inline]
33957 pub fn max_fragment_density_texel_size(mut self, value: Extent2D) -> Self {
33958 self.inner.max_fragment_density_texel_size = value;
33959 self
33960 }
33961 #[inline]
33962 pub fn fragment_density_invocations(mut self, value: bool) -> Self {
33963 self.inner.fragment_density_invocations = value as u32;
33964 self
33965 }
33966}
33967impl<'a> core::ops::Deref for PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder<'a> {
33968 type Target = PhysicalDeviceFragmentDensityMapPropertiesEXT;
33969 #[inline]
33970 fn deref(&self) -> &Self::Target {
33971 &self.inner
33972 }
33973}
33974impl<'a> core::ops::DerefMut
33975for PhysicalDeviceFragmentDensityMapPropertiesEXTBuilder<'a> {
33976 #[inline]
33977 fn deref_mut(&mut self) -> &mut Self::Target {
33978 &mut self.inner
33979 }
33980}
33981pub struct PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder<'a> {
33983 inner: PhysicalDeviceFragmentDensityMap2PropertiesEXT,
33984 _marker: core::marker::PhantomData<&'a ()>,
33985}
33986impl PhysicalDeviceFragmentDensityMap2PropertiesEXT {
33987 #[inline]
33989 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder<'a> {
33990 PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder {
33991 inner: PhysicalDeviceFragmentDensityMap2PropertiesEXT {
33992 s_type: StructureType::from_raw(1000332001i32),
33993 ..Default::default()
33994 },
33995 _marker: core::marker::PhantomData,
33996 }
33997 }
33998}
33999impl<'a> PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder<'a> {
34000 #[inline]
34001 pub fn subsampled_loads(mut self, value: bool) -> Self {
34002 self.inner.subsampled_loads = value as u32;
34003 self
34004 }
34005 #[inline]
34006 pub fn subsampled_coarse_reconstruction_early_access(mut self, value: bool) -> Self {
34007 self.inner.subsampled_coarse_reconstruction_early_access = value as u32;
34008 self
34009 }
34010 #[inline]
34011 pub fn max_subsampled_array_layers(mut self, value: u32) -> Self {
34012 self.inner.max_subsampled_array_layers = value;
34013 self
34014 }
34015 #[inline]
34016 pub fn max_descriptor_set_subsampled_samplers(mut self, value: u32) -> Self {
34017 self.inner.max_descriptor_set_subsampled_samplers = value;
34018 self
34019 }
34020}
34021impl<'a> core::ops::Deref for PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder<'a> {
34022 type Target = PhysicalDeviceFragmentDensityMap2PropertiesEXT;
34023 #[inline]
34024 fn deref(&self) -> &Self::Target {
34025 &self.inner
34026 }
34027}
34028impl<'a> core::ops::DerefMut
34029for PhysicalDeviceFragmentDensityMap2PropertiesEXTBuilder<'a> {
34030 #[inline]
34031 fn deref_mut(&mut self) -> &mut Self::Target {
34032 &mut self.inner
34033 }
34034}
34035pub struct PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder<'a> {
34037 inner: PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT,
34038 _marker: core::marker::PhantomData<&'a ()>,
34039}
34040impl PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
34041 #[inline]
34043 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder<
34044 'a,
34045 > {
34046 PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder {
34047 inner: PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
34048 s_type: StructureType::from_raw(1000425001i32),
34049 ..Default::default()
34050 },
34051 _marker: core::marker::PhantomData,
34052 }
34053 }
34054}
34055impl<'a> PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder<'a> {
34056 #[inline]
34057 pub fn fragment_density_offset_granularity(mut self, value: Extent2D) -> Self {
34058 self.inner.fragment_density_offset_granularity = value;
34059 self
34060 }
34061}
34062impl<'a> core::ops::Deref
34063for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder<'a> {
34064 type Target = PhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
34065 #[inline]
34066 fn deref(&self) -> &Self::Target {
34067 &self.inner
34068 }
34069}
34070impl<'a> core::ops::DerefMut
34071for PhysicalDeviceFragmentDensityMapOffsetPropertiesEXTBuilder<'a> {
34072 #[inline]
34073 fn deref_mut(&mut self) -> &mut Self::Target {
34074 &mut self.inner
34075 }
34076}
34077pub struct RenderPassFragmentDensityMapCreateInfoEXTBuilder<'a> {
34079 inner: RenderPassFragmentDensityMapCreateInfoEXT,
34080 _marker: core::marker::PhantomData<&'a ()>,
34081}
34082impl RenderPassFragmentDensityMapCreateInfoEXT {
34083 #[inline]
34085 pub fn builder<'a>() -> RenderPassFragmentDensityMapCreateInfoEXTBuilder<'a> {
34086 RenderPassFragmentDensityMapCreateInfoEXTBuilder {
34087 inner: RenderPassFragmentDensityMapCreateInfoEXT {
34088 s_type: StructureType::from_raw(1000218002i32),
34089 ..Default::default()
34090 },
34091 _marker: core::marker::PhantomData,
34092 }
34093 }
34094}
34095impl<'a> RenderPassFragmentDensityMapCreateInfoEXTBuilder<'a> {
34096 #[inline]
34097 pub fn fragment_density_map_attachment(
34098 mut self,
34099 value: AttachmentReference,
34100 ) -> Self {
34101 self.inner.fragment_density_map_attachment = value;
34102 self
34103 }
34104 #[inline]
34106 pub fn push_next<T: ExtendsRenderPassFragmentDensityMapCreateInfoEXT>(
34107 mut self,
34108 next: &'a mut T,
34109 ) -> Self {
34110 unsafe {
34111 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34112 (*next_ptr).p_next = self.inner.p_next as *mut _;
34113 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34114 core::ffi::c_void,
34115 >(next_ptr) as *const _;
34116 }
34117 self
34118 }
34119}
34120impl<'a> core::ops::Deref for RenderPassFragmentDensityMapCreateInfoEXTBuilder<'a> {
34121 type Target = RenderPassFragmentDensityMapCreateInfoEXT;
34122 #[inline]
34123 fn deref(&self) -> &Self::Target {
34124 &self.inner
34125 }
34126}
34127impl<'a> core::ops::DerefMut for RenderPassFragmentDensityMapCreateInfoEXTBuilder<'a> {
34128 #[inline]
34129 fn deref_mut(&mut self) -> &mut Self::Target {
34130 &mut self.inner
34131 }
34132}
34133pub struct RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder<'a> {
34135 inner: RenderPassFragmentDensityMapOffsetEndInfoEXT,
34136 _marker: core::marker::PhantomData<&'a ()>,
34137}
34138impl RenderPassFragmentDensityMapOffsetEndInfoEXT {
34139 #[inline]
34141 pub fn builder<'a>() -> RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder<'a> {
34142 RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder {
34143 inner: RenderPassFragmentDensityMapOffsetEndInfoEXT {
34144 s_type: StructureType::from_raw(1000425002i32),
34145 ..Default::default()
34146 },
34147 _marker: core::marker::PhantomData,
34148 }
34149 }
34150}
34151impl<'a> RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder<'a> {
34152 #[inline]
34153 pub fn fragment_density_offsets(mut self, slice: &'a [Offset2D]) -> Self {
34154 self.inner.fragment_density_offset_count = slice.len() as u32;
34155 self.inner.p_fragment_density_offsets = slice.as_ptr();
34156 self
34157 }
34158 #[inline]
34160 pub fn push_next<T: ExtendsRenderPassFragmentDensityMapOffsetEndInfoEXT>(
34161 mut self,
34162 next: &'a mut T,
34163 ) -> Self {
34164 unsafe {
34165 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34166 (*next_ptr).p_next = self.inner.p_next as *mut _;
34167 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34168 core::ffi::c_void,
34169 >(next_ptr) as *const _;
34170 }
34171 self
34172 }
34173}
34174impl<'a> core::ops::Deref for RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder<'a> {
34175 type Target = RenderPassFragmentDensityMapOffsetEndInfoEXT;
34176 #[inline]
34177 fn deref(&self) -> &Self::Target {
34178 &self.inner
34179 }
34180}
34181impl<'a> core::ops::DerefMut
34182for RenderPassFragmentDensityMapOffsetEndInfoEXTBuilder<'a> {
34183 #[inline]
34184 fn deref_mut(&mut self) -> &mut Self::Target {
34185 &mut self.inner
34186 }
34187}
34188pub struct PhysicalDeviceScalarBlockLayoutFeaturesBuilder<'a> {
34190 inner: PhysicalDeviceScalarBlockLayoutFeatures,
34191 _marker: core::marker::PhantomData<&'a ()>,
34192}
34193impl PhysicalDeviceScalarBlockLayoutFeatures {
34194 #[inline]
34196 pub fn builder<'a>() -> PhysicalDeviceScalarBlockLayoutFeaturesBuilder<'a> {
34197 PhysicalDeviceScalarBlockLayoutFeaturesBuilder {
34198 inner: PhysicalDeviceScalarBlockLayoutFeatures {
34199 s_type: StructureType::from_raw(1000221000i32),
34200 ..Default::default()
34201 },
34202 _marker: core::marker::PhantomData,
34203 }
34204 }
34205}
34206impl<'a> PhysicalDeviceScalarBlockLayoutFeaturesBuilder<'a> {
34207 #[inline]
34208 pub fn scalar_block_layout(mut self, value: bool) -> Self {
34209 self.inner.scalar_block_layout = value as u32;
34210 self
34211 }
34212 #[inline]
34214 pub fn push_next<T: ExtendsPhysicalDeviceScalarBlockLayoutFeatures>(
34215 mut self,
34216 next: &'a mut T,
34217 ) -> Self {
34218 unsafe {
34219 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34220 (*next_ptr).p_next = self.inner.p_next as *mut _;
34221 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34222 core::ffi::c_void,
34223 >(next_ptr);
34224 }
34225 self
34226 }
34227}
34228impl<'a> core::ops::Deref for PhysicalDeviceScalarBlockLayoutFeaturesBuilder<'a> {
34229 type Target = PhysicalDeviceScalarBlockLayoutFeatures;
34230 #[inline]
34231 fn deref(&self) -> &Self::Target {
34232 &self.inner
34233 }
34234}
34235impl<'a> core::ops::DerefMut for PhysicalDeviceScalarBlockLayoutFeaturesBuilder<'a> {
34236 #[inline]
34237 fn deref_mut(&mut self) -> &mut Self::Target {
34238 &mut self.inner
34239 }
34240}
34241pub struct SurfaceProtectedCapabilitiesKHRBuilder<'a> {
34243 inner: SurfaceProtectedCapabilitiesKHR,
34244 _marker: core::marker::PhantomData<&'a ()>,
34245}
34246impl SurfaceProtectedCapabilitiesKHR {
34247 #[inline]
34249 pub fn builder<'a>() -> SurfaceProtectedCapabilitiesKHRBuilder<'a> {
34250 SurfaceProtectedCapabilitiesKHRBuilder {
34251 inner: SurfaceProtectedCapabilitiesKHR {
34252 s_type: StructureType::from_raw(1000239000i32),
34253 ..Default::default()
34254 },
34255 _marker: core::marker::PhantomData,
34256 }
34257 }
34258}
34259impl<'a> SurfaceProtectedCapabilitiesKHRBuilder<'a> {
34260 #[inline]
34261 pub fn supports_protected(mut self, value: bool) -> Self {
34262 self.inner.supports_protected = value as u32;
34263 self
34264 }
34265}
34266impl<'a> core::ops::Deref for SurfaceProtectedCapabilitiesKHRBuilder<'a> {
34267 type Target = SurfaceProtectedCapabilitiesKHR;
34268 #[inline]
34269 fn deref(&self) -> &Self::Target {
34270 &self.inner
34271 }
34272}
34273impl<'a> core::ops::DerefMut for SurfaceProtectedCapabilitiesKHRBuilder<'a> {
34274 #[inline]
34275 fn deref_mut(&mut self) -> &mut Self::Target {
34276 &mut self.inner
34277 }
34278}
34279pub struct PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder<'a> {
34281 inner: PhysicalDeviceUniformBufferStandardLayoutFeatures,
34282 _marker: core::marker::PhantomData<&'a ()>,
34283}
34284impl PhysicalDeviceUniformBufferStandardLayoutFeatures {
34285 #[inline]
34287 pub fn builder<'a>() -> PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder<
34288 'a,
34289 > {
34290 PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder {
34291 inner: PhysicalDeviceUniformBufferStandardLayoutFeatures {
34292 s_type: StructureType::from_raw(1000253000i32),
34293 ..Default::default()
34294 },
34295 _marker: core::marker::PhantomData,
34296 }
34297 }
34298}
34299impl<'a> PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder<'a> {
34300 #[inline]
34301 pub fn uniform_buffer_standard_layout(mut self, value: bool) -> Self {
34302 self.inner.uniform_buffer_standard_layout = value as u32;
34303 self
34304 }
34305 #[inline]
34307 pub fn push_next<T: ExtendsPhysicalDeviceUniformBufferStandardLayoutFeatures>(
34308 mut self,
34309 next: &'a mut T,
34310 ) -> Self {
34311 unsafe {
34312 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34313 (*next_ptr).p_next = self.inner.p_next as *mut _;
34314 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34315 core::ffi::c_void,
34316 >(next_ptr);
34317 }
34318 self
34319 }
34320}
34321impl<'a> core::ops::Deref
34322for PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder<'a> {
34323 type Target = PhysicalDeviceUniformBufferStandardLayoutFeatures;
34324 #[inline]
34325 fn deref(&self) -> &Self::Target {
34326 &self.inner
34327 }
34328}
34329impl<'a> core::ops::DerefMut
34330for PhysicalDeviceUniformBufferStandardLayoutFeaturesBuilder<'a> {
34331 #[inline]
34332 fn deref_mut(&mut self) -> &mut Self::Target {
34333 &mut self.inner
34334 }
34335}
34336pub struct PhysicalDeviceDepthClipEnableFeaturesEXTBuilder<'a> {
34338 inner: PhysicalDeviceDepthClipEnableFeaturesEXT,
34339 _marker: core::marker::PhantomData<&'a ()>,
34340}
34341impl PhysicalDeviceDepthClipEnableFeaturesEXT {
34342 #[inline]
34344 pub fn builder<'a>() -> PhysicalDeviceDepthClipEnableFeaturesEXTBuilder<'a> {
34345 PhysicalDeviceDepthClipEnableFeaturesEXTBuilder {
34346 inner: PhysicalDeviceDepthClipEnableFeaturesEXT {
34347 s_type: StructureType::from_raw(1000102000i32),
34348 ..Default::default()
34349 },
34350 _marker: core::marker::PhantomData,
34351 }
34352 }
34353}
34354impl<'a> PhysicalDeviceDepthClipEnableFeaturesEXTBuilder<'a> {
34355 #[inline]
34356 pub fn depth_clip_enable(mut self, value: bool) -> Self {
34357 self.inner.depth_clip_enable = value as u32;
34358 self
34359 }
34360 #[inline]
34362 pub fn push_next<T: ExtendsPhysicalDeviceDepthClipEnableFeaturesEXT>(
34363 mut self,
34364 next: &'a mut T,
34365 ) -> Self {
34366 unsafe {
34367 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34368 (*next_ptr).p_next = self.inner.p_next as *mut _;
34369 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34370 core::ffi::c_void,
34371 >(next_ptr);
34372 }
34373 self
34374 }
34375}
34376impl<'a> core::ops::Deref for PhysicalDeviceDepthClipEnableFeaturesEXTBuilder<'a> {
34377 type Target = PhysicalDeviceDepthClipEnableFeaturesEXT;
34378 #[inline]
34379 fn deref(&self) -> &Self::Target {
34380 &self.inner
34381 }
34382}
34383impl<'a> core::ops::DerefMut for PhysicalDeviceDepthClipEnableFeaturesEXTBuilder<'a> {
34384 #[inline]
34385 fn deref_mut(&mut self) -> &mut Self::Target {
34386 &mut self.inner
34387 }
34388}
34389pub struct PipelineRasterizationDepthClipStateCreateInfoEXTBuilder<'a> {
34391 inner: PipelineRasterizationDepthClipStateCreateInfoEXT,
34392 _marker: core::marker::PhantomData<&'a ()>,
34393}
34394impl PipelineRasterizationDepthClipStateCreateInfoEXT {
34395 #[inline]
34397 pub fn builder<'a>() -> PipelineRasterizationDepthClipStateCreateInfoEXTBuilder<'a> {
34398 PipelineRasterizationDepthClipStateCreateInfoEXTBuilder {
34399 inner: PipelineRasterizationDepthClipStateCreateInfoEXT {
34400 s_type: StructureType::from_raw(1000102001i32),
34401 ..Default::default()
34402 },
34403 _marker: core::marker::PhantomData,
34404 }
34405 }
34406}
34407impl<'a> PipelineRasterizationDepthClipStateCreateInfoEXTBuilder<'a> {
34408 #[inline]
34409 pub fn flags(
34410 mut self,
34411 value: PipelineRasterizationDepthClipStateCreateFlagsEXT,
34412 ) -> Self {
34413 self.inner.flags = value;
34414 self
34415 }
34416 #[inline]
34417 pub fn depth_clip_enable(mut self, value: bool) -> Self {
34418 self.inner.depth_clip_enable = value as u32;
34419 self
34420 }
34421 #[inline]
34423 pub fn push_next<T: ExtendsPipelineRasterizationDepthClipStateCreateInfoEXT>(
34424 mut self,
34425 next: &'a mut T,
34426 ) -> Self {
34427 unsafe {
34428 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34429 (*next_ptr).p_next = self.inner.p_next as *mut _;
34430 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34431 core::ffi::c_void,
34432 >(next_ptr) as *const _;
34433 }
34434 self
34435 }
34436}
34437impl<'a> core::ops::Deref
34438for PipelineRasterizationDepthClipStateCreateInfoEXTBuilder<'a> {
34439 type Target = PipelineRasterizationDepthClipStateCreateInfoEXT;
34440 #[inline]
34441 fn deref(&self) -> &Self::Target {
34442 &self.inner
34443 }
34444}
34445impl<'a> core::ops::DerefMut
34446for PipelineRasterizationDepthClipStateCreateInfoEXTBuilder<'a> {
34447 #[inline]
34448 fn deref_mut(&mut self) -> &mut Self::Target {
34449 &mut self.inner
34450 }
34451}
34452pub struct PhysicalDeviceMemoryBudgetPropertiesEXTBuilder<'a> {
34454 inner: PhysicalDeviceMemoryBudgetPropertiesEXT,
34455 _marker: core::marker::PhantomData<&'a ()>,
34456}
34457impl PhysicalDeviceMemoryBudgetPropertiesEXT {
34458 #[inline]
34460 pub fn builder<'a>() -> PhysicalDeviceMemoryBudgetPropertiesEXTBuilder<'a> {
34461 PhysicalDeviceMemoryBudgetPropertiesEXTBuilder {
34462 inner: PhysicalDeviceMemoryBudgetPropertiesEXT {
34463 s_type: StructureType::from_raw(1000237000i32),
34464 ..Default::default()
34465 },
34466 _marker: core::marker::PhantomData,
34467 }
34468 }
34469}
34470impl<'a> PhysicalDeviceMemoryBudgetPropertiesEXTBuilder<'a> {
34471 #[inline]
34472 pub fn heap_budget(mut self, value: [u64; MAX_MEMORY_HEAPS as usize]) -> Self {
34473 self.inner.heap_budget = value;
34474 self
34475 }
34476 #[inline]
34477 pub fn heap_usage(mut self, value: [u64; MAX_MEMORY_HEAPS as usize]) -> Self {
34478 self.inner.heap_usage = value;
34479 self
34480 }
34481}
34482impl<'a> core::ops::Deref for PhysicalDeviceMemoryBudgetPropertiesEXTBuilder<'a> {
34483 type Target = PhysicalDeviceMemoryBudgetPropertiesEXT;
34484 #[inline]
34485 fn deref(&self) -> &Self::Target {
34486 &self.inner
34487 }
34488}
34489impl<'a> core::ops::DerefMut for PhysicalDeviceMemoryBudgetPropertiesEXTBuilder<'a> {
34490 #[inline]
34491 fn deref_mut(&mut self) -> &mut Self::Target {
34492 &mut self.inner
34493 }
34494}
34495pub struct PhysicalDeviceMemoryPriorityFeaturesEXTBuilder<'a> {
34497 inner: PhysicalDeviceMemoryPriorityFeaturesEXT,
34498 _marker: core::marker::PhantomData<&'a ()>,
34499}
34500impl PhysicalDeviceMemoryPriorityFeaturesEXT {
34501 #[inline]
34503 pub fn builder<'a>() -> PhysicalDeviceMemoryPriorityFeaturesEXTBuilder<'a> {
34504 PhysicalDeviceMemoryPriorityFeaturesEXTBuilder {
34505 inner: PhysicalDeviceMemoryPriorityFeaturesEXT {
34506 s_type: StructureType::from_raw(1000238000i32),
34507 ..Default::default()
34508 },
34509 _marker: core::marker::PhantomData,
34510 }
34511 }
34512}
34513impl<'a> PhysicalDeviceMemoryPriorityFeaturesEXTBuilder<'a> {
34514 #[inline]
34515 pub fn memory_priority(mut self, value: bool) -> Self {
34516 self.inner.memory_priority = value as u32;
34517 self
34518 }
34519 #[inline]
34521 pub fn push_next<T: ExtendsPhysicalDeviceMemoryPriorityFeaturesEXT>(
34522 mut self,
34523 next: &'a mut T,
34524 ) -> Self {
34525 unsafe {
34526 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34527 (*next_ptr).p_next = self.inner.p_next as *mut _;
34528 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34529 core::ffi::c_void,
34530 >(next_ptr);
34531 }
34532 self
34533 }
34534}
34535impl<'a> core::ops::Deref for PhysicalDeviceMemoryPriorityFeaturesEXTBuilder<'a> {
34536 type Target = PhysicalDeviceMemoryPriorityFeaturesEXT;
34537 #[inline]
34538 fn deref(&self) -> &Self::Target {
34539 &self.inner
34540 }
34541}
34542impl<'a> core::ops::DerefMut for PhysicalDeviceMemoryPriorityFeaturesEXTBuilder<'a> {
34543 #[inline]
34544 fn deref_mut(&mut self) -> &mut Self::Target {
34545 &mut self.inner
34546 }
34547}
34548pub struct MemoryPriorityAllocateInfoEXTBuilder<'a> {
34550 inner: MemoryPriorityAllocateInfoEXT,
34551 _marker: core::marker::PhantomData<&'a ()>,
34552}
34553impl MemoryPriorityAllocateInfoEXT {
34554 #[inline]
34556 pub fn builder<'a>() -> MemoryPriorityAllocateInfoEXTBuilder<'a> {
34557 MemoryPriorityAllocateInfoEXTBuilder {
34558 inner: MemoryPriorityAllocateInfoEXT {
34559 s_type: StructureType::from_raw(1000238001i32),
34560 ..Default::default()
34561 },
34562 _marker: core::marker::PhantomData,
34563 }
34564 }
34565}
34566impl<'a> MemoryPriorityAllocateInfoEXTBuilder<'a> {
34567 #[inline]
34568 pub fn priority(mut self, value: f32) -> Self {
34569 self.inner.priority = value;
34570 self
34571 }
34572 #[inline]
34574 pub fn push_next<T: ExtendsMemoryPriorityAllocateInfoEXT>(
34575 mut self,
34576 next: &'a mut T,
34577 ) -> Self {
34578 unsafe {
34579 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34580 (*next_ptr).p_next = self.inner.p_next as *mut _;
34581 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34582 core::ffi::c_void,
34583 >(next_ptr) as *const _;
34584 }
34585 self
34586 }
34587}
34588impl<'a> core::ops::Deref for MemoryPriorityAllocateInfoEXTBuilder<'a> {
34589 type Target = MemoryPriorityAllocateInfoEXT;
34590 #[inline]
34591 fn deref(&self) -> &Self::Target {
34592 &self.inner
34593 }
34594}
34595impl<'a> core::ops::DerefMut for MemoryPriorityAllocateInfoEXTBuilder<'a> {
34596 #[inline]
34597 fn deref_mut(&mut self) -> &mut Self::Target {
34598 &mut self.inner
34599 }
34600}
34601pub struct PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder<'a> {
34603 inner: PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT,
34604 _marker: core::marker::PhantomData<&'a ()>,
34605}
34606impl PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
34607 #[inline]
34609 pub fn builder<'a>() -> PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder<
34610 'a,
34611 > {
34612 PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder {
34613 inner: PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
34614 s_type: StructureType::from_raw(1000412000i32),
34615 ..Default::default()
34616 },
34617 _marker: core::marker::PhantomData,
34618 }
34619 }
34620}
34621impl<'a> PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder<'a> {
34622 #[inline]
34623 pub fn pageable_device_local_memory(mut self, value: bool) -> Self {
34624 self.inner.pageable_device_local_memory = value as u32;
34625 self
34626 }
34627 #[inline]
34629 pub fn push_next<T: ExtendsPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>(
34630 mut self,
34631 next: &'a mut T,
34632 ) -> Self {
34633 unsafe {
34634 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34635 (*next_ptr).p_next = self.inner.p_next as *mut _;
34636 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34637 core::ffi::c_void,
34638 >(next_ptr);
34639 }
34640 self
34641 }
34642}
34643impl<'a> core::ops::Deref
34644for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder<'a> {
34645 type Target = PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
34646 #[inline]
34647 fn deref(&self) -> &Self::Target {
34648 &self.inner
34649 }
34650}
34651impl<'a> core::ops::DerefMut
34652for PhysicalDevicePageableDeviceLocalMemoryFeaturesEXTBuilder<'a> {
34653 #[inline]
34654 fn deref_mut(&mut self) -> &mut Self::Target {
34655 &mut self.inner
34656 }
34657}
34658pub struct PhysicalDeviceBufferDeviceAddressFeaturesBuilder<'a> {
34660 inner: PhysicalDeviceBufferDeviceAddressFeatures,
34661 _marker: core::marker::PhantomData<&'a ()>,
34662}
34663impl PhysicalDeviceBufferDeviceAddressFeatures {
34664 #[inline]
34666 pub fn builder<'a>() -> PhysicalDeviceBufferDeviceAddressFeaturesBuilder<'a> {
34667 PhysicalDeviceBufferDeviceAddressFeaturesBuilder {
34668 inner: PhysicalDeviceBufferDeviceAddressFeatures {
34669 s_type: StructureType::from_raw(1000257000i32),
34670 ..Default::default()
34671 },
34672 _marker: core::marker::PhantomData,
34673 }
34674 }
34675}
34676impl<'a> PhysicalDeviceBufferDeviceAddressFeaturesBuilder<'a> {
34677 #[inline]
34678 pub fn buffer_device_address(mut self, value: bool) -> Self {
34679 self.inner.buffer_device_address = value as u32;
34680 self
34681 }
34682 #[inline]
34683 pub fn buffer_device_address_capture_replay(mut self, value: bool) -> Self {
34684 self.inner.buffer_device_address_capture_replay = value as u32;
34685 self
34686 }
34687 #[inline]
34688 pub fn buffer_device_address_multi_device(mut self, value: bool) -> Self {
34689 self.inner.buffer_device_address_multi_device = value as u32;
34690 self
34691 }
34692 #[inline]
34694 pub fn push_next<T: ExtendsPhysicalDeviceBufferDeviceAddressFeatures>(
34695 mut self,
34696 next: &'a mut T,
34697 ) -> Self {
34698 unsafe {
34699 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34700 (*next_ptr).p_next = self.inner.p_next as *mut _;
34701 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34702 core::ffi::c_void,
34703 >(next_ptr);
34704 }
34705 self
34706 }
34707}
34708impl<'a> core::ops::Deref for PhysicalDeviceBufferDeviceAddressFeaturesBuilder<'a> {
34709 type Target = PhysicalDeviceBufferDeviceAddressFeatures;
34710 #[inline]
34711 fn deref(&self) -> &Self::Target {
34712 &self.inner
34713 }
34714}
34715impl<'a> core::ops::DerefMut for PhysicalDeviceBufferDeviceAddressFeaturesBuilder<'a> {
34716 #[inline]
34717 fn deref_mut(&mut self) -> &mut Self::Target {
34718 &mut self.inner
34719 }
34720}
34721pub struct PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder<'a> {
34723 inner: PhysicalDeviceBufferDeviceAddressFeaturesEXT,
34724 _marker: core::marker::PhantomData<&'a ()>,
34725}
34726impl PhysicalDeviceBufferDeviceAddressFeaturesEXT {
34727 #[inline]
34729 pub fn builder<'a>() -> PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder<'a> {
34730 PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder {
34731 inner: PhysicalDeviceBufferDeviceAddressFeaturesEXT {
34732 s_type: StructureType::from_raw(1000244000i32),
34733 ..Default::default()
34734 },
34735 _marker: core::marker::PhantomData,
34736 }
34737 }
34738}
34739impl<'a> PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder<'a> {
34740 #[inline]
34741 pub fn buffer_device_address(mut self, value: bool) -> Self {
34742 self.inner.buffer_device_address = value as u32;
34743 self
34744 }
34745 #[inline]
34746 pub fn buffer_device_address_capture_replay(mut self, value: bool) -> Self {
34747 self.inner.buffer_device_address_capture_replay = value as u32;
34748 self
34749 }
34750 #[inline]
34751 pub fn buffer_device_address_multi_device(mut self, value: bool) -> Self {
34752 self.inner.buffer_device_address_multi_device = value as u32;
34753 self
34754 }
34755 #[inline]
34757 pub fn push_next<T: ExtendsPhysicalDeviceBufferDeviceAddressFeaturesEXT>(
34758 mut self,
34759 next: &'a mut T,
34760 ) -> Self {
34761 unsafe {
34762 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34763 (*next_ptr).p_next = self.inner.p_next as *mut _;
34764 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34765 core::ffi::c_void,
34766 >(next_ptr);
34767 }
34768 self
34769 }
34770}
34771impl<'a> core::ops::Deref for PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder<'a> {
34772 type Target = PhysicalDeviceBufferDeviceAddressFeaturesEXT;
34773 #[inline]
34774 fn deref(&self) -> &Self::Target {
34775 &self.inner
34776 }
34777}
34778impl<'a> core::ops::DerefMut
34779for PhysicalDeviceBufferDeviceAddressFeaturesEXTBuilder<'a> {
34780 #[inline]
34781 fn deref_mut(&mut self) -> &mut Self::Target {
34782 &mut self.inner
34783 }
34784}
34785pub struct BufferDeviceAddressInfoBuilder<'a> {
34787 inner: BufferDeviceAddressInfo,
34788 _marker: core::marker::PhantomData<&'a ()>,
34789}
34790impl BufferDeviceAddressInfo {
34791 #[inline]
34793 pub fn builder<'a>() -> BufferDeviceAddressInfoBuilder<'a> {
34794 BufferDeviceAddressInfoBuilder {
34795 inner: BufferDeviceAddressInfo {
34796 s_type: StructureType::from_raw(1000244001i32),
34797 ..Default::default()
34798 },
34799 _marker: core::marker::PhantomData,
34800 }
34801 }
34802}
34803impl<'a> BufferDeviceAddressInfoBuilder<'a> {
34804 #[inline]
34805 pub fn buffer(mut self, value: Buffer) -> Self {
34806 self.inner.buffer = value;
34807 self
34808 }
34809 #[inline]
34811 pub fn push_next<T: ExtendsBufferDeviceAddressInfo>(
34812 mut self,
34813 next: &'a mut T,
34814 ) -> Self {
34815 unsafe {
34816 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34817 (*next_ptr).p_next = self.inner.p_next as *mut _;
34818 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34819 core::ffi::c_void,
34820 >(next_ptr) as *const _;
34821 }
34822 self
34823 }
34824}
34825impl<'a> core::ops::Deref for BufferDeviceAddressInfoBuilder<'a> {
34826 type Target = BufferDeviceAddressInfo;
34827 #[inline]
34828 fn deref(&self) -> &Self::Target {
34829 &self.inner
34830 }
34831}
34832impl<'a> core::ops::DerefMut for BufferDeviceAddressInfoBuilder<'a> {
34833 #[inline]
34834 fn deref_mut(&mut self) -> &mut Self::Target {
34835 &mut self.inner
34836 }
34837}
34838pub struct BufferOpaqueCaptureAddressCreateInfoBuilder<'a> {
34840 inner: BufferOpaqueCaptureAddressCreateInfo,
34841 _marker: core::marker::PhantomData<&'a ()>,
34842}
34843impl BufferOpaqueCaptureAddressCreateInfo {
34844 #[inline]
34846 pub fn builder<'a>() -> BufferOpaqueCaptureAddressCreateInfoBuilder<'a> {
34847 BufferOpaqueCaptureAddressCreateInfoBuilder {
34848 inner: BufferOpaqueCaptureAddressCreateInfo {
34849 s_type: StructureType::from_raw(1000257002i32),
34850 ..Default::default()
34851 },
34852 _marker: core::marker::PhantomData,
34853 }
34854 }
34855}
34856impl<'a> BufferOpaqueCaptureAddressCreateInfoBuilder<'a> {
34857 #[inline]
34858 pub fn opaque_capture_address(mut self, value: u64) -> Self {
34859 self.inner.opaque_capture_address = value;
34860 self
34861 }
34862 #[inline]
34864 pub fn push_next<T: ExtendsBufferOpaqueCaptureAddressCreateInfo>(
34865 mut self,
34866 next: &'a mut T,
34867 ) -> Self {
34868 unsafe {
34869 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34870 (*next_ptr).p_next = self.inner.p_next as *mut _;
34871 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34872 core::ffi::c_void,
34873 >(next_ptr) as *const _;
34874 }
34875 self
34876 }
34877}
34878impl<'a> core::ops::Deref for BufferOpaqueCaptureAddressCreateInfoBuilder<'a> {
34879 type Target = BufferOpaqueCaptureAddressCreateInfo;
34880 #[inline]
34881 fn deref(&self) -> &Self::Target {
34882 &self.inner
34883 }
34884}
34885impl<'a> core::ops::DerefMut for BufferOpaqueCaptureAddressCreateInfoBuilder<'a> {
34886 #[inline]
34887 fn deref_mut(&mut self) -> &mut Self::Target {
34888 &mut self.inner
34889 }
34890}
34891pub struct BufferDeviceAddressCreateInfoEXTBuilder<'a> {
34893 inner: BufferDeviceAddressCreateInfoEXT,
34894 _marker: core::marker::PhantomData<&'a ()>,
34895}
34896impl BufferDeviceAddressCreateInfoEXT {
34897 #[inline]
34899 pub fn builder<'a>() -> BufferDeviceAddressCreateInfoEXTBuilder<'a> {
34900 BufferDeviceAddressCreateInfoEXTBuilder {
34901 inner: BufferDeviceAddressCreateInfoEXT {
34902 s_type: StructureType::from_raw(1000244002i32),
34903 ..Default::default()
34904 },
34905 _marker: core::marker::PhantomData,
34906 }
34907 }
34908}
34909impl<'a> BufferDeviceAddressCreateInfoEXTBuilder<'a> {
34910 #[inline]
34911 pub fn device_address(mut self, value: u64) -> Self {
34912 self.inner.device_address = value;
34913 self
34914 }
34915 #[inline]
34917 pub fn push_next<T: ExtendsBufferDeviceAddressCreateInfoEXT>(
34918 mut self,
34919 next: &'a mut T,
34920 ) -> Self {
34921 unsafe {
34922 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34923 (*next_ptr).p_next = self.inner.p_next as *mut _;
34924 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34925 core::ffi::c_void,
34926 >(next_ptr) as *const _;
34927 }
34928 self
34929 }
34930}
34931impl<'a> core::ops::Deref for BufferDeviceAddressCreateInfoEXTBuilder<'a> {
34932 type Target = BufferDeviceAddressCreateInfoEXT;
34933 #[inline]
34934 fn deref(&self) -> &Self::Target {
34935 &self.inner
34936 }
34937}
34938impl<'a> core::ops::DerefMut for BufferDeviceAddressCreateInfoEXTBuilder<'a> {
34939 #[inline]
34940 fn deref_mut(&mut self) -> &mut Self::Target {
34941 &mut self.inner
34942 }
34943}
34944pub struct PhysicalDeviceImageViewImageFormatInfoEXTBuilder<'a> {
34946 inner: PhysicalDeviceImageViewImageFormatInfoEXT,
34947 _marker: core::marker::PhantomData<&'a ()>,
34948}
34949impl PhysicalDeviceImageViewImageFormatInfoEXT {
34950 #[inline]
34952 pub fn builder<'a>() -> PhysicalDeviceImageViewImageFormatInfoEXTBuilder<'a> {
34953 PhysicalDeviceImageViewImageFormatInfoEXTBuilder {
34954 inner: PhysicalDeviceImageViewImageFormatInfoEXT {
34955 s_type: StructureType::from_raw(1000170000i32),
34956 ..Default::default()
34957 },
34958 _marker: core::marker::PhantomData,
34959 }
34960 }
34961}
34962impl<'a> PhysicalDeviceImageViewImageFormatInfoEXTBuilder<'a> {
34963 #[inline]
34964 pub fn image_view_type(mut self, value: ImageViewType) -> Self {
34965 self.inner.image_view_type = value;
34966 self
34967 }
34968 #[inline]
34970 pub fn push_next<T: ExtendsPhysicalDeviceImageViewImageFormatInfoEXT>(
34971 mut self,
34972 next: &'a mut T,
34973 ) -> Self {
34974 unsafe {
34975 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
34976 (*next_ptr).p_next = self.inner.p_next as *mut _;
34977 self.inner.p_next = <*mut BaseOutStructure>::cast::<
34978 core::ffi::c_void,
34979 >(next_ptr);
34980 }
34981 self
34982 }
34983}
34984impl<'a> core::ops::Deref for PhysicalDeviceImageViewImageFormatInfoEXTBuilder<'a> {
34985 type Target = PhysicalDeviceImageViewImageFormatInfoEXT;
34986 #[inline]
34987 fn deref(&self) -> &Self::Target {
34988 &self.inner
34989 }
34990}
34991impl<'a> core::ops::DerefMut for PhysicalDeviceImageViewImageFormatInfoEXTBuilder<'a> {
34992 #[inline]
34993 fn deref_mut(&mut self) -> &mut Self::Target {
34994 &mut self.inner
34995 }
34996}
34997pub struct FilterCubicImageViewImageFormatPropertiesEXTBuilder<'a> {
34999 inner: FilterCubicImageViewImageFormatPropertiesEXT,
35000 _marker: core::marker::PhantomData<&'a ()>,
35001}
35002impl FilterCubicImageViewImageFormatPropertiesEXT {
35003 #[inline]
35005 pub fn builder<'a>() -> FilterCubicImageViewImageFormatPropertiesEXTBuilder<'a> {
35006 FilterCubicImageViewImageFormatPropertiesEXTBuilder {
35007 inner: FilterCubicImageViewImageFormatPropertiesEXT {
35008 s_type: StructureType::from_raw(1000170001i32),
35009 ..Default::default()
35010 },
35011 _marker: core::marker::PhantomData,
35012 }
35013 }
35014}
35015impl<'a> FilterCubicImageViewImageFormatPropertiesEXTBuilder<'a> {
35016 #[inline]
35017 pub fn filter_cubic(mut self, value: bool) -> Self {
35018 self.inner.filter_cubic = value as u32;
35019 self
35020 }
35021 #[inline]
35022 pub fn filter_cubic_minmax(mut self, value: bool) -> Self {
35023 self.inner.filter_cubic_minmax = value as u32;
35024 self
35025 }
35026}
35027impl<'a> core::ops::Deref for FilterCubicImageViewImageFormatPropertiesEXTBuilder<'a> {
35028 type Target = FilterCubicImageViewImageFormatPropertiesEXT;
35029 #[inline]
35030 fn deref(&self) -> &Self::Target {
35031 &self.inner
35032 }
35033}
35034impl<'a> core::ops::DerefMut
35035for FilterCubicImageViewImageFormatPropertiesEXTBuilder<'a> {
35036 #[inline]
35037 fn deref_mut(&mut self) -> &mut Self::Target {
35038 &mut self.inner
35039 }
35040}
35041pub struct PhysicalDeviceImagelessFramebufferFeaturesBuilder<'a> {
35043 inner: PhysicalDeviceImagelessFramebufferFeatures,
35044 _marker: core::marker::PhantomData<&'a ()>,
35045}
35046impl PhysicalDeviceImagelessFramebufferFeatures {
35047 #[inline]
35049 pub fn builder<'a>() -> PhysicalDeviceImagelessFramebufferFeaturesBuilder<'a> {
35050 PhysicalDeviceImagelessFramebufferFeaturesBuilder {
35051 inner: PhysicalDeviceImagelessFramebufferFeatures {
35052 s_type: StructureType::from_raw(1000108000i32),
35053 ..Default::default()
35054 },
35055 _marker: core::marker::PhantomData,
35056 }
35057 }
35058}
35059impl<'a> PhysicalDeviceImagelessFramebufferFeaturesBuilder<'a> {
35060 #[inline]
35061 pub fn imageless_framebuffer(mut self, value: bool) -> Self {
35062 self.inner.imageless_framebuffer = value as u32;
35063 self
35064 }
35065 #[inline]
35067 pub fn push_next<T: ExtendsPhysicalDeviceImagelessFramebufferFeatures>(
35068 mut self,
35069 next: &'a mut T,
35070 ) -> Self {
35071 unsafe {
35072 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35073 (*next_ptr).p_next = self.inner.p_next as *mut _;
35074 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35075 core::ffi::c_void,
35076 >(next_ptr);
35077 }
35078 self
35079 }
35080}
35081impl<'a> core::ops::Deref for PhysicalDeviceImagelessFramebufferFeaturesBuilder<'a> {
35082 type Target = PhysicalDeviceImagelessFramebufferFeatures;
35083 #[inline]
35084 fn deref(&self) -> &Self::Target {
35085 &self.inner
35086 }
35087}
35088impl<'a> core::ops::DerefMut for PhysicalDeviceImagelessFramebufferFeaturesBuilder<'a> {
35089 #[inline]
35090 fn deref_mut(&mut self) -> &mut Self::Target {
35091 &mut self.inner
35092 }
35093}
35094pub struct FramebufferAttachmentsCreateInfoBuilder<'a> {
35096 inner: FramebufferAttachmentsCreateInfo,
35097 _marker: core::marker::PhantomData<&'a ()>,
35098}
35099impl FramebufferAttachmentsCreateInfo {
35100 #[inline]
35102 pub fn builder<'a>() -> FramebufferAttachmentsCreateInfoBuilder<'a> {
35103 FramebufferAttachmentsCreateInfoBuilder {
35104 inner: FramebufferAttachmentsCreateInfo {
35105 s_type: StructureType::from_raw(1000108001i32),
35106 ..Default::default()
35107 },
35108 _marker: core::marker::PhantomData,
35109 }
35110 }
35111}
35112impl<'a> FramebufferAttachmentsCreateInfoBuilder<'a> {
35113 #[inline]
35114 pub fn attachment_image_infos(
35115 mut self,
35116 slice: &'a [FramebufferAttachmentImageInfo],
35117 ) -> Self {
35118 self.inner.attachment_image_info_count = slice.len() as u32;
35119 self.inner.p_attachment_image_infos = slice.as_ptr();
35120 self
35121 }
35122 #[inline]
35124 pub fn push_next<T: ExtendsFramebufferAttachmentsCreateInfo>(
35125 mut self,
35126 next: &'a mut T,
35127 ) -> Self {
35128 unsafe {
35129 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35130 (*next_ptr).p_next = self.inner.p_next as *mut _;
35131 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35132 core::ffi::c_void,
35133 >(next_ptr) as *const _;
35134 }
35135 self
35136 }
35137}
35138impl<'a> core::ops::Deref for FramebufferAttachmentsCreateInfoBuilder<'a> {
35139 type Target = FramebufferAttachmentsCreateInfo;
35140 #[inline]
35141 fn deref(&self) -> &Self::Target {
35142 &self.inner
35143 }
35144}
35145impl<'a> core::ops::DerefMut for FramebufferAttachmentsCreateInfoBuilder<'a> {
35146 #[inline]
35147 fn deref_mut(&mut self) -> &mut Self::Target {
35148 &mut self.inner
35149 }
35150}
35151pub struct FramebufferAttachmentImageInfoBuilder<'a> {
35153 inner: FramebufferAttachmentImageInfo,
35154 _marker: core::marker::PhantomData<&'a ()>,
35155}
35156impl FramebufferAttachmentImageInfo {
35157 #[inline]
35159 pub fn builder<'a>() -> FramebufferAttachmentImageInfoBuilder<'a> {
35160 FramebufferAttachmentImageInfoBuilder {
35161 inner: FramebufferAttachmentImageInfo {
35162 s_type: StructureType::from_raw(1000108002i32),
35163 ..Default::default()
35164 },
35165 _marker: core::marker::PhantomData,
35166 }
35167 }
35168}
35169impl<'a> FramebufferAttachmentImageInfoBuilder<'a> {
35170 #[inline]
35171 pub fn flags(mut self, value: ImageCreateFlags) -> Self {
35172 self.inner.flags = value;
35173 self
35174 }
35175 #[inline]
35176 pub fn usage(mut self, value: ImageUsageFlags) -> Self {
35177 self.inner.usage = value;
35178 self
35179 }
35180 #[inline]
35181 pub fn width(mut self, value: u32) -> Self {
35182 self.inner.width = value;
35183 self
35184 }
35185 #[inline]
35186 pub fn height(mut self, value: u32) -> Self {
35187 self.inner.height = value;
35188 self
35189 }
35190 #[inline]
35191 pub fn layer_count(mut self, value: u32) -> Self {
35192 self.inner.layer_count = value;
35193 self
35194 }
35195 #[inline]
35196 pub fn view_formats(mut self, slice: &'a [Format]) -> Self {
35197 self.inner.view_format_count = slice.len() as u32;
35198 self.inner.p_view_formats = slice.as_ptr();
35199 self
35200 }
35201 #[inline]
35203 pub fn push_next<T: ExtendsFramebufferAttachmentImageInfo>(
35204 mut self,
35205 next: &'a mut T,
35206 ) -> Self {
35207 unsafe {
35208 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35209 (*next_ptr).p_next = self.inner.p_next as *mut _;
35210 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35211 core::ffi::c_void,
35212 >(next_ptr) as *const _;
35213 }
35214 self
35215 }
35216}
35217impl<'a> core::ops::Deref for FramebufferAttachmentImageInfoBuilder<'a> {
35218 type Target = FramebufferAttachmentImageInfo;
35219 #[inline]
35220 fn deref(&self) -> &Self::Target {
35221 &self.inner
35222 }
35223}
35224impl<'a> core::ops::DerefMut for FramebufferAttachmentImageInfoBuilder<'a> {
35225 #[inline]
35226 fn deref_mut(&mut self) -> &mut Self::Target {
35227 &mut self.inner
35228 }
35229}
35230pub struct RenderPassAttachmentBeginInfoBuilder<'a> {
35232 inner: RenderPassAttachmentBeginInfo,
35233 _marker: core::marker::PhantomData<&'a ()>,
35234}
35235impl RenderPassAttachmentBeginInfo {
35236 #[inline]
35238 pub fn builder<'a>() -> RenderPassAttachmentBeginInfoBuilder<'a> {
35239 RenderPassAttachmentBeginInfoBuilder {
35240 inner: RenderPassAttachmentBeginInfo {
35241 s_type: StructureType::from_raw(1000108003i32),
35242 ..Default::default()
35243 },
35244 _marker: core::marker::PhantomData,
35245 }
35246 }
35247}
35248impl<'a> RenderPassAttachmentBeginInfoBuilder<'a> {
35249 #[inline]
35250 pub fn attachments(mut self, slice: &'a [ImageView]) -> Self {
35251 self.inner.attachment_count = slice.len() as u32;
35252 self.inner.p_attachments = slice.as_ptr();
35253 self
35254 }
35255 #[inline]
35257 pub fn push_next<T: ExtendsRenderPassAttachmentBeginInfo>(
35258 mut self,
35259 next: &'a mut T,
35260 ) -> Self {
35261 unsafe {
35262 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35263 (*next_ptr).p_next = self.inner.p_next as *mut _;
35264 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35265 core::ffi::c_void,
35266 >(next_ptr) as *const _;
35267 }
35268 self
35269 }
35270}
35271impl<'a> core::ops::Deref for RenderPassAttachmentBeginInfoBuilder<'a> {
35272 type Target = RenderPassAttachmentBeginInfo;
35273 #[inline]
35274 fn deref(&self) -> &Self::Target {
35275 &self.inner
35276 }
35277}
35278impl<'a> core::ops::DerefMut for RenderPassAttachmentBeginInfoBuilder<'a> {
35279 #[inline]
35280 fn deref_mut(&mut self) -> &mut Self::Target {
35281 &mut self.inner
35282 }
35283}
35284pub struct PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder<'a> {
35286 inner: PhysicalDeviceTextureCompressionASTCHDRFeatures,
35287 _marker: core::marker::PhantomData<&'a ()>,
35288}
35289impl PhysicalDeviceTextureCompressionASTCHDRFeatures {
35290 #[inline]
35292 pub fn builder<'a>() -> PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder<'a> {
35293 PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder {
35294 inner: PhysicalDeviceTextureCompressionASTCHDRFeatures {
35295 s_type: StructureType::from_raw(1000066000i32),
35296 ..Default::default()
35297 },
35298 _marker: core::marker::PhantomData,
35299 }
35300 }
35301}
35302impl<'a> PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder<'a> {
35303 #[inline]
35304 pub fn texture_compression_astc_hdr(mut self, value: bool) -> Self {
35305 self.inner.texture_compression_astc_hdr = value as u32;
35306 self
35307 }
35308 #[inline]
35310 pub fn push_next<T: ExtendsPhysicalDeviceTextureCompressionASTCHDRFeatures>(
35311 mut self,
35312 next: &'a mut T,
35313 ) -> Self {
35314 unsafe {
35315 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35316 (*next_ptr).p_next = self.inner.p_next as *mut _;
35317 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35318 core::ffi::c_void,
35319 >(next_ptr);
35320 }
35321 self
35322 }
35323}
35324impl<'a> core::ops::Deref
35325for PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder<'a> {
35326 type Target = PhysicalDeviceTextureCompressionASTCHDRFeatures;
35327 #[inline]
35328 fn deref(&self) -> &Self::Target {
35329 &self.inner
35330 }
35331}
35332impl<'a> core::ops::DerefMut
35333for PhysicalDeviceTextureCompressionASTCHDRFeaturesBuilder<'a> {
35334 #[inline]
35335 fn deref_mut(&mut self) -> &mut Self::Target {
35336 &mut self.inner
35337 }
35338}
35339pub struct PhysicalDeviceCooperativeMatrixFeaturesNVBuilder<'a> {
35341 inner: PhysicalDeviceCooperativeMatrixFeaturesNV,
35342 _marker: core::marker::PhantomData<&'a ()>,
35343}
35344impl PhysicalDeviceCooperativeMatrixFeaturesNV {
35345 #[inline]
35347 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrixFeaturesNVBuilder<'a> {
35348 PhysicalDeviceCooperativeMatrixFeaturesNVBuilder {
35349 inner: PhysicalDeviceCooperativeMatrixFeaturesNV {
35350 s_type: StructureType::from_raw(1000249000i32),
35351 ..Default::default()
35352 },
35353 _marker: core::marker::PhantomData,
35354 }
35355 }
35356}
35357impl<'a> PhysicalDeviceCooperativeMatrixFeaturesNVBuilder<'a> {
35358 #[inline]
35359 pub fn cooperative_matrix(mut self, value: bool) -> Self {
35360 self.inner.cooperative_matrix = value as u32;
35361 self
35362 }
35363 #[inline]
35364 pub fn cooperative_matrix_robust_buffer_access(mut self, value: bool) -> Self {
35365 self.inner.cooperative_matrix_robust_buffer_access = value as u32;
35366 self
35367 }
35368 #[inline]
35370 pub fn push_next<T: ExtendsPhysicalDeviceCooperativeMatrixFeaturesNV>(
35371 mut self,
35372 next: &'a mut T,
35373 ) -> Self {
35374 unsafe {
35375 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35376 (*next_ptr).p_next = self.inner.p_next as *mut _;
35377 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35378 core::ffi::c_void,
35379 >(next_ptr);
35380 }
35381 self
35382 }
35383}
35384impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrixFeaturesNVBuilder<'a> {
35385 type Target = PhysicalDeviceCooperativeMatrixFeaturesNV;
35386 #[inline]
35387 fn deref(&self) -> &Self::Target {
35388 &self.inner
35389 }
35390}
35391impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeMatrixFeaturesNVBuilder<'a> {
35392 #[inline]
35393 fn deref_mut(&mut self) -> &mut Self::Target {
35394 &mut self.inner
35395 }
35396}
35397pub struct PhysicalDeviceCooperativeMatrixPropertiesNVBuilder<'a> {
35399 inner: PhysicalDeviceCooperativeMatrixPropertiesNV,
35400 _marker: core::marker::PhantomData<&'a ()>,
35401}
35402impl PhysicalDeviceCooperativeMatrixPropertiesNV {
35403 #[inline]
35405 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrixPropertiesNVBuilder<'a> {
35406 PhysicalDeviceCooperativeMatrixPropertiesNVBuilder {
35407 inner: PhysicalDeviceCooperativeMatrixPropertiesNV {
35408 s_type: StructureType::from_raw(1000249002i32),
35409 ..Default::default()
35410 },
35411 _marker: core::marker::PhantomData,
35412 }
35413 }
35414}
35415impl<'a> PhysicalDeviceCooperativeMatrixPropertiesNVBuilder<'a> {
35416 #[inline]
35417 pub fn cooperative_matrix_supported_stages(
35418 mut self,
35419 value: ShaderStageFlags,
35420 ) -> Self {
35421 self.inner.cooperative_matrix_supported_stages = value;
35422 self
35423 }
35424}
35425impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrixPropertiesNVBuilder<'a> {
35426 type Target = PhysicalDeviceCooperativeMatrixPropertiesNV;
35427 #[inline]
35428 fn deref(&self) -> &Self::Target {
35429 &self.inner
35430 }
35431}
35432impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeMatrixPropertiesNVBuilder<'a> {
35433 #[inline]
35434 fn deref_mut(&mut self) -> &mut Self::Target {
35435 &mut self.inner
35436 }
35437}
35438pub struct CooperativeMatrixPropertiesNVBuilder<'a> {
35440 inner: CooperativeMatrixPropertiesNV,
35441 _marker: core::marker::PhantomData<&'a ()>,
35442}
35443impl CooperativeMatrixPropertiesNV {
35444 #[inline]
35446 pub fn builder<'a>() -> CooperativeMatrixPropertiesNVBuilder<'a> {
35447 CooperativeMatrixPropertiesNVBuilder {
35448 inner: CooperativeMatrixPropertiesNV {
35449 s_type: StructureType::from_raw(1000249001i32),
35450 ..Default::default()
35451 },
35452 _marker: core::marker::PhantomData,
35453 }
35454 }
35455}
35456impl<'a> CooperativeMatrixPropertiesNVBuilder<'a> {
35457 #[inline]
35458 pub fn m_size(mut self, value: u32) -> Self {
35459 self.inner.m_size = value;
35460 self
35461 }
35462 #[inline]
35463 pub fn n_size(mut self, value: u32) -> Self {
35464 self.inner.n_size = value;
35465 self
35466 }
35467 #[inline]
35468 pub fn k_size(mut self, value: u32) -> Self {
35469 self.inner.k_size = value;
35470 self
35471 }
35472 #[inline]
35473 pub fn a_type(mut self, value: ComponentTypeNV) -> Self {
35474 self.inner.a_type = value;
35475 self
35476 }
35477 #[inline]
35478 pub fn b_type(mut self, value: ComponentTypeNV) -> Self {
35479 self.inner.b_type = value;
35480 self
35481 }
35482 #[inline]
35483 pub fn c_type(mut self, value: ComponentTypeNV) -> Self {
35484 self.inner.c_type = value;
35485 self
35486 }
35487 #[inline]
35488 pub fn d_type(mut self, value: ComponentTypeNV) -> Self {
35489 self.inner.d_type = value;
35490 self
35491 }
35492 #[inline]
35493 pub fn scope(mut self, value: ScopeNV) -> Self {
35494 self.inner.scope = value;
35495 self
35496 }
35497}
35498impl<'a> core::ops::Deref for CooperativeMatrixPropertiesNVBuilder<'a> {
35499 type Target = CooperativeMatrixPropertiesNV;
35500 #[inline]
35501 fn deref(&self) -> &Self::Target {
35502 &self.inner
35503 }
35504}
35505impl<'a> core::ops::DerefMut for CooperativeMatrixPropertiesNVBuilder<'a> {
35506 #[inline]
35507 fn deref_mut(&mut self) -> &mut Self::Target {
35508 &mut self.inner
35509 }
35510}
35511pub struct PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder<'a> {
35513 inner: PhysicalDeviceYcbcrImageArraysFeaturesEXT,
35514 _marker: core::marker::PhantomData<&'a ()>,
35515}
35516impl PhysicalDeviceYcbcrImageArraysFeaturesEXT {
35517 #[inline]
35519 pub fn builder<'a>() -> PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder<'a> {
35520 PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder {
35521 inner: PhysicalDeviceYcbcrImageArraysFeaturesEXT {
35522 s_type: StructureType::from_raw(1000252000i32),
35523 ..Default::default()
35524 },
35525 _marker: core::marker::PhantomData,
35526 }
35527 }
35528}
35529impl<'a> PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder<'a> {
35530 #[inline]
35531 pub fn ycbcr_image_arrays(mut self, value: bool) -> Self {
35532 self.inner.ycbcr_image_arrays = value as u32;
35533 self
35534 }
35535 #[inline]
35537 pub fn push_next<T: ExtendsPhysicalDeviceYcbcrImageArraysFeaturesEXT>(
35538 mut self,
35539 next: &'a mut T,
35540 ) -> Self {
35541 unsafe {
35542 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35543 (*next_ptr).p_next = self.inner.p_next as *mut _;
35544 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35545 core::ffi::c_void,
35546 >(next_ptr);
35547 }
35548 self
35549 }
35550}
35551impl<'a> core::ops::Deref for PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder<'a> {
35552 type Target = PhysicalDeviceYcbcrImageArraysFeaturesEXT;
35553 #[inline]
35554 fn deref(&self) -> &Self::Target {
35555 &self.inner
35556 }
35557}
35558impl<'a> core::ops::DerefMut for PhysicalDeviceYcbcrImageArraysFeaturesEXTBuilder<'a> {
35559 #[inline]
35560 fn deref_mut(&mut self) -> &mut Self::Target {
35561 &mut self.inner
35562 }
35563}
35564pub struct ImageViewHandleInfoNVXBuilder<'a> {
35566 inner: ImageViewHandleInfoNVX,
35567 _marker: core::marker::PhantomData<&'a ()>,
35568}
35569impl ImageViewHandleInfoNVX {
35570 #[inline]
35572 pub fn builder<'a>() -> ImageViewHandleInfoNVXBuilder<'a> {
35573 ImageViewHandleInfoNVXBuilder {
35574 inner: ImageViewHandleInfoNVX {
35575 s_type: StructureType::from_raw(1000030000i32),
35576 ..Default::default()
35577 },
35578 _marker: core::marker::PhantomData,
35579 }
35580 }
35581}
35582impl<'a> ImageViewHandleInfoNVXBuilder<'a> {
35583 #[inline]
35584 pub fn image_view(mut self, value: ImageView) -> Self {
35585 self.inner.image_view = value;
35586 self
35587 }
35588 #[inline]
35589 pub fn descriptor_type(mut self, value: DescriptorType) -> Self {
35590 self.inner.descriptor_type = value;
35591 self
35592 }
35593 #[inline]
35594 pub fn sampler(mut self, value: Sampler) -> Self {
35595 self.inner.sampler = value;
35596 self
35597 }
35598 #[inline]
35600 pub fn push_next<T: ExtendsImageViewHandleInfoNVX>(
35601 mut self,
35602 next: &'a mut T,
35603 ) -> Self {
35604 unsafe {
35605 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35606 (*next_ptr).p_next = self.inner.p_next as *mut _;
35607 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35608 core::ffi::c_void,
35609 >(next_ptr) as *const _;
35610 }
35611 self
35612 }
35613}
35614impl<'a> core::ops::Deref for ImageViewHandleInfoNVXBuilder<'a> {
35615 type Target = ImageViewHandleInfoNVX;
35616 #[inline]
35617 fn deref(&self) -> &Self::Target {
35618 &self.inner
35619 }
35620}
35621impl<'a> core::ops::DerefMut for ImageViewHandleInfoNVXBuilder<'a> {
35622 #[inline]
35623 fn deref_mut(&mut self) -> &mut Self::Target {
35624 &mut self.inner
35625 }
35626}
35627pub struct ImageViewAddressPropertiesNVXBuilder<'a> {
35629 inner: ImageViewAddressPropertiesNVX,
35630 _marker: core::marker::PhantomData<&'a ()>,
35631}
35632impl ImageViewAddressPropertiesNVX {
35633 #[inline]
35635 pub fn builder<'a>() -> ImageViewAddressPropertiesNVXBuilder<'a> {
35636 ImageViewAddressPropertiesNVXBuilder {
35637 inner: ImageViewAddressPropertiesNVX {
35638 s_type: StructureType::from_raw(1000030001i32),
35639 ..Default::default()
35640 },
35641 _marker: core::marker::PhantomData,
35642 }
35643 }
35644}
35645impl<'a> ImageViewAddressPropertiesNVXBuilder<'a> {
35646 #[inline]
35647 pub fn device_address(mut self, value: u64) -> Self {
35648 self.inner.device_address = value;
35649 self
35650 }
35651 #[inline]
35652 pub fn size(mut self, value: u64) -> Self {
35653 self.inner.size = value;
35654 self
35655 }
35656}
35657impl<'a> core::ops::Deref for ImageViewAddressPropertiesNVXBuilder<'a> {
35658 type Target = ImageViewAddressPropertiesNVX;
35659 #[inline]
35660 fn deref(&self) -> &Self::Target {
35661 &self.inner
35662 }
35663}
35664impl<'a> core::ops::DerefMut for ImageViewAddressPropertiesNVXBuilder<'a> {
35665 #[inline]
35666 fn deref_mut(&mut self) -> &mut Self::Target {
35667 &mut self.inner
35668 }
35669}
35670pub struct PresentFrameTokenGGPBuilder<'a> {
35672 inner: PresentFrameTokenGGP,
35673 _marker: core::marker::PhantomData<&'a ()>,
35674}
35675impl PresentFrameTokenGGP {
35676 #[inline]
35678 pub fn builder<'a>() -> PresentFrameTokenGGPBuilder<'a> {
35679 PresentFrameTokenGGPBuilder {
35680 inner: PresentFrameTokenGGP {
35681 s_type: StructureType::from_raw(1000191000i32),
35682 ..Default::default()
35683 },
35684 _marker: core::marker::PhantomData,
35685 }
35686 }
35687}
35688impl<'a> PresentFrameTokenGGPBuilder<'a> {
35689 #[inline]
35690 pub fn frame_token(mut self, value: u32) -> Self {
35691 self.inner.frame_token = value;
35692 self
35693 }
35694 #[inline]
35696 pub fn push_next<T: ExtendsPresentFrameTokenGGP>(mut self, next: &'a mut T) -> Self {
35697 unsafe {
35698 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35699 (*next_ptr).p_next = self.inner.p_next as *mut _;
35700 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35701 core::ffi::c_void,
35702 >(next_ptr) as *const _;
35703 }
35704 self
35705 }
35706}
35707impl<'a> core::ops::Deref for PresentFrameTokenGGPBuilder<'a> {
35708 type Target = PresentFrameTokenGGP;
35709 #[inline]
35710 fn deref(&self) -> &Self::Target {
35711 &self.inner
35712 }
35713}
35714impl<'a> core::ops::DerefMut for PresentFrameTokenGGPBuilder<'a> {
35715 #[inline]
35716 fn deref_mut(&mut self) -> &mut Self::Target {
35717 &mut self.inner
35718 }
35719}
35720pub struct PipelineCreationFeedbackBuilder {
35722 inner: PipelineCreationFeedback,
35723}
35724impl PipelineCreationFeedback {
35725 #[inline]
35727 pub fn builder() -> PipelineCreationFeedbackBuilder {
35728 PipelineCreationFeedbackBuilder {
35729 inner: PipelineCreationFeedback {
35730 ..Default::default()
35731 },
35732 }
35733 }
35734}
35735impl PipelineCreationFeedbackBuilder {
35736 #[inline]
35737 pub fn flags(mut self, value: PipelineCreationFeedbackFlags) -> Self {
35738 self.inner.flags = value;
35739 self
35740 }
35741 #[inline]
35742 pub fn duration(mut self, value: u64) -> Self {
35743 self.inner.duration = value;
35744 self
35745 }
35746}
35747impl core::ops::Deref for PipelineCreationFeedbackBuilder {
35748 type Target = PipelineCreationFeedback;
35749 #[inline]
35750 fn deref(&self) -> &Self::Target {
35751 &self.inner
35752 }
35753}
35754impl core::ops::DerefMut for PipelineCreationFeedbackBuilder {
35755 #[inline]
35756 fn deref_mut(&mut self) -> &mut Self::Target {
35757 &mut self.inner
35758 }
35759}
35760pub struct PipelineCreationFeedbackCreateInfoBuilder<'a> {
35762 inner: PipelineCreationFeedbackCreateInfo,
35763 _marker: core::marker::PhantomData<&'a ()>,
35764}
35765impl PipelineCreationFeedbackCreateInfo {
35766 #[inline]
35768 pub fn builder<'a>() -> PipelineCreationFeedbackCreateInfoBuilder<'a> {
35769 PipelineCreationFeedbackCreateInfoBuilder {
35770 inner: PipelineCreationFeedbackCreateInfo {
35771 s_type: StructureType::from_raw(1000192000i32),
35772 ..Default::default()
35773 },
35774 _marker: core::marker::PhantomData,
35775 }
35776 }
35777}
35778impl<'a> PipelineCreationFeedbackCreateInfoBuilder<'a> {
35779 #[inline]
35780 pub fn pipeline_creation_feedback(
35781 mut self,
35782 value: *mut PipelineCreationFeedback,
35783 ) -> Self {
35784 self.inner.p_pipeline_creation_feedback = value;
35785 self
35786 }
35787 #[inline]
35788 pub fn pipeline_stage_creation_feedbacks(
35789 mut self,
35790 slice: &'a mut [PipelineCreationFeedback],
35791 ) -> Self {
35792 self.inner.pipeline_stage_creation_feedback_count = slice.len() as u32;
35793 self.inner.p_pipeline_stage_creation_feedbacks = slice.as_mut_ptr();
35794 self
35795 }
35796 #[inline]
35798 pub fn push_next<T: ExtendsPipelineCreationFeedbackCreateInfo>(
35799 mut self,
35800 next: &'a mut T,
35801 ) -> Self {
35802 unsafe {
35803 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35804 (*next_ptr).p_next = self.inner.p_next as *mut _;
35805 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35806 core::ffi::c_void,
35807 >(next_ptr) as *const _;
35808 }
35809 self
35810 }
35811}
35812impl<'a> core::ops::Deref for PipelineCreationFeedbackCreateInfoBuilder<'a> {
35813 type Target = PipelineCreationFeedbackCreateInfo;
35814 #[inline]
35815 fn deref(&self) -> &Self::Target {
35816 &self.inner
35817 }
35818}
35819impl<'a> core::ops::DerefMut for PipelineCreationFeedbackCreateInfoBuilder<'a> {
35820 #[inline]
35821 fn deref_mut(&mut self) -> &mut Self::Target {
35822 &mut self.inner
35823 }
35824}
35825pub struct SurfaceFullScreenExclusiveInfoEXTBuilder<'a> {
35827 inner: SurfaceFullScreenExclusiveInfoEXT,
35828 _marker: core::marker::PhantomData<&'a ()>,
35829}
35830impl SurfaceFullScreenExclusiveInfoEXT {
35831 #[inline]
35833 pub fn builder<'a>() -> SurfaceFullScreenExclusiveInfoEXTBuilder<'a> {
35834 SurfaceFullScreenExclusiveInfoEXTBuilder {
35835 inner: SurfaceFullScreenExclusiveInfoEXT {
35836 s_type: StructureType::from_raw(1000255000i32),
35837 ..Default::default()
35838 },
35839 _marker: core::marker::PhantomData,
35840 }
35841 }
35842}
35843impl<'a> SurfaceFullScreenExclusiveInfoEXTBuilder<'a> {
35844 #[inline]
35845 pub fn full_screen_exclusive(mut self, value: FullScreenExclusiveEXT) -> Self {
35846 self.inner.full_screen_exclusive = value;
35847 self
35848 }
35849 #[inline]
35851 pub fn push_next<T: ExtendsSurfaceFullScreenExclusiveInfoEXT>(
35852 mut self,
35853 next: &'a mut T,
35854 ) -> Self {
35855 unsafe {
35856 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35857 (*next_ptr).p_next = self.inner.p_next as *mut _;
35858 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35859 core::ffi::c_void,
35860 >(next_ptr);
35861 }
35862 self
35863 }
35864}
35865impl<'a> core::ops::Deref for SurfaceFullScreenExclusiveInfoEXTBuilder<'a> {
35866 type Target = SurfaceFullScreenExclusiveInfoEXT;
35867 #[inline]
35868 fn deref(&self) -> &Self::Target {
35869 &self.inner
35870 }
35871}
35872impl<'a> core::ops::DerefMut for SurfaceFullScreenExclusiveInfoEXTBuilder<'a> {
35873 #[inline]
35874 fn deref_mut(&mut self) -> &mut Self::Target {
35875 &mut self.inner
35876 }
35877}
35878pub struct SurfaceFullScreenExclusiveWin32InfoEXTBuilder<'a> {
35880 inner: SurfaceFullScreenExclusiveWin32InfoEXT,
35881 _marker: core::marker::PhantomData<&'a ()>,
35882}
35883impl SurfaceFullScreenExclusiveWin32InfoEXT {
35884 #[inline]
35886 pub fn builder<'a>() -> SurfaceFullScreenExclusiveWin32InfoEXTBuilder<'a> {
35887 SurfaceFullScreenExclusiveWin32InfoEXTBuilder {
35888 inner: SurfaceFullScreenExclusiveWin32InfoEXT {
35889 s_type: StructureType::from_raw(1000255001i32),
35890 ..Default::default()
35891 },
35892 _marker: core::marker::PhantomData,
35893 }
35894 }
35895}
35896impl<'a> SurfaceFullScreenExclusiveWin32InfoEXTBuilder<'a> {
35897 #[inline]
35898 pub fn hmonitor(mut self, value: isize) -> Self {
35899 self.inner.hmonitor = value;
35900 self
35901 }
35902 #[inline]
35904 pub fn push_next<T: ExtendsSurfaceFullScreenExclusiveWin32InfoEXT>(
35905 mut self,
35906 next: &'a mut T,
35907 ) -> Self {
35908 unsafe {
35909 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
35910 (*next_ptr).p_next = self.inner.p_next as *mut _;
35911 self.inner.p_next = <*mut BaseOutStructure>::cast::<
35912 core::ffi::c_void,
35913 >(next_ptr) as *const _;
35914 }
35915 self
35916 }
35917}
35918impl<'a> core::ops::Deref for SurfaceFullScreenExclusiveWin32InfoEXTBuilder<'a> {
35919 type Target = SurfaceFullScreenExclusiveWin32InfoEXT;
35920 #[inline]
35921 fn deref(&self) -> &Self::Target {
35922 &self.inner
35923 }
35924}
35925impl<'a> core::ops::DerefMut for SurfaceFullScreenExclusiveWin32InfoEXTBuilder<'a> {
35926 #[inline]
35927 fn deref_mut(&mut self) -> &mut Self::Target {
35928 &mut self.inner
35929 }
35930}
35931pub struct SurfaceCapabilitiesFullScreenExclusiveEXTBuilder<'a> {
35933 inner: SurfaceCapabilitiesFullScreenExclusiveEXT,
35934 _marker: core::marker::PhantomData<&'a ()>,
35935}
35936impl SurfaceCapabilitiesFullScreenExclusiveEXT {
35937 #[inline]
35939 pub fn builder<'a>() -> SurfaceCapabilitiesFullScreenExclusiveEXTBuilder<'a> {
35940 SurfaceCapabilitiesFullScreenExclusiveEXTBuilder {
35941 inner: SurfaceCapabilitiesFullScreenExclusiveEXT {
35942 s_type: StructureType::from_raw(1000255002i32),
35943 ..Default::default()
35944 },
35945 _marker: core::marker::PhantomData,
35946 }
35947 }
35948}
35949impl<'a> SurfaceCapabilitiesFullScreenExclusiveEXTBuilder<'a> {
35950 #[inline]
35951 pub fn full_screen_exclusive_supported(mut self, value: bool) -> Self {
35952 self.inner.full_screen_exclusive_supported = value as u32;
35953 self
35954 }
35955}
35956impl<'a> core::ops::Deref for SurfaceCapabilitiesFullScreenExclusiveEXTBuilder<'a> {
35957 type Target = SurfaceCapabilitiesFullScreenExclusiveEXT;
35958 #[inline]
35959 fn deref(&self) -> &Self::Target {
35960 &self.inner
35961 }
35962}
35963impl<'a> core::ops::DerefMut for SurfaceCapabilitiesFullScreenExclusiveEXTBuilder<'a> {
35964 #[inline]
35965 fn deref_mut(&mut self) -> &mut Self::Target {
35966 &mut self.inner
35967 }
35968}
35969pub struct PhysicalDevicePresentBarrierFeaturesNVBuilder<'a> {
35971 inner: PhysicalDevicePresentBarrierFeaturesNV,
35972 _marker: core::marker::PhantomData<&'a ()>,
35973}
35974impl PhysicalDevicePresentBarrierFeaturesNV {
35975 #[inline]
35977 pub fn builder<'a>() -> PhysicalDevicePresentBarrierFeaturesNVBuilder<'a> {
35978 PhysicalDevicePresentBarrierFeaturesNVBuilder {
35979 inner: PhysicalDevicePresentBarrierFeaturesNV {
35980 s_type: StructureType::from_raw(1000292000i32),
35981 ..Default::default()
35982 },
35983 _marker: core::marker::PhantomData,
35984 }
35985 }
35986}
35987impl<'a> PhysicalDevicePresentBarrierFeaturesNVBuilder<'a> {
35988 #[inline]
35989 pub fn present_barrier(mut self, value: bool) -> Self {
35990 self.inner.present_barrier = value as u32;
35991 self
35992 }
35993 #[inline]
35995 pub fn push_next<T: ExtendsPhysicalDevicePresentBarrierFeaturesNV>(
35996 mut self,
35997 next: &'a mut T,
35998 ) -> Self {
35999 unsafe {
36000 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36001 (*next_ptr).p_next = self.inner.p_next as *mut _;
36002 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36003 core::ffi::c_void,
36004 >(next_ptr);
36005 }
36006 self
36007 }
36008}
36009impl<'a> core::ops::Deref for PhysicalDevicePresentBarrierFeaturesNVBuilder<'a> {
36010 type Target = PhysicalDevicePresentBarrierFeaturesNV;
36011 #[inline]
36012 fn deref(&self) -> &Self::Target {
36013 &self.inner
36014 }
36015}
36016impl<'a> core::ops::DerefMut for PhysicalDevicePresentBarrierFeaturesNVBuilder<'a> {
36017 #[inline]
36018 fn deref_mut(&mut self) -> &mut Self::Target {
36019 &mut self.inner
36020 }
36021}
36022pub struct SurfaceCapabilitiesPresentBarrierNVBuilder<'a> {
36024 inner: SurfaceCapabilitiesPresentBarrierNV,
36025 _marker: core::marker::PhantomData<&'a ()>,
36026}
36027impl SurfaceCapabilitiesPresentBarrierNV {
36028 #[inline]
36030 pub fn builder<'a>() -> SurfaceCapabilitiesPresentBarrierNVBuilder<'a> {
36031 SurfaceCapabilitiesPresentBarrierNVBuilder {
36032 inner: SurfaceCapabilitiesPresentBarrierNV {
36033 s_type: StructureType::from_raw(1000292001i32),
36034 ..Default::default()
36035 },
36036 _marker: core::marker::PhantomData,
36037 }
36038 }
36039}
36040impl<'a> SurfaceCapabilitiesPresentBarrierNVBuilder<'a> {
36041 #[inline]
36042 pub fn present_barrier_supported(mut self, value: bool) -> Self {
36043 self.inner.present_barrier_supported = value as u32;
36044 self
36045 }
36046}
36047impl<'a> core::ops::Deref for SurfaceCapabilitiesPresentBarrierNVBuilder<'a> {
36048 type Target = SurfaceCapabilitiesPresentBarrierNV;
36049 #[inline]
36050 fn deref(&self) -> &Self::Target {
36051 &self.inner
36052 }
36053}
36054impl<'a> core::ops::DerefMut for SurfaceCapabilitiesPresentBarrierNVBuilder<'a> {
36055 #[inline]
36056 fn deref_mut(&mut self) -> &mut Self::Target {
36057 &mut self.inner
36058 }
36059}
36060pub struct SwapchainPresentBarrierCreateInfoNVBuilder<'a> {
36062 inner: SwapchainPresentBarrierCreateInfoNV,
36063 _marker: core::marker::PhantomData<&'a ()>,
36064}
36065impl SwapchainPresentBarrierCreateInfoNV {
36066 #[inline]
36068 pub fn builder<'a>() -> SwapchainPresentBarrierCreateInfoNVBuilder<'a> {
36069 SwapchainPresentBarrierCreateInfoNVBuilder {
36070 inner: SwapchainPresentBarrierCreateInfoNV {
36071 s_type: StructureType::from_raw(1000292002i32),
36072 ..Default::default()
36073 },
36074 _marker: core::marker::PhantomData,
36075 }
36076 }
36077}
36078impl<'a> SwapchainPresentBarrierCreateInfoNVBuilder<'a> {
36079 #[inline]
36080 pub fn present_barrier_enable(mut self, value: bool) -> Self {
36081 self.inner.present_barrier_enable = value as u32;
36082 self
36083 }
36084 #[inline]
36086 pub fn push_next<T: ExtendsSwapchainPresentBarrierCreateInfoNV>(
36087 mut self,
36088 next: &'a mut T,
36089 ) -> Self {
36090 unsafe {
36091 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36092 (*next_ptr).p_next = self.inner.p_next as *mut _;
36093 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36094 core::ffi::c_void,
36095 >(next_ptr);
36096 }
36097 self
36098 }
36099}
36100impl<'a> core::ops::Deref for SwapchainPresentBarrierCreateInfoNVBuilder<'a> {
36101 type Target = SwapchainPresentBarrierCreateInfoNV;
36102 #[inline]
36103 fn deref(&self) -> &Self::Target {
36104 &self.inner
36105 }
36106}
36107impl<'a> core::ops::DerefMut for SwapchainPresentBarrierCreateInfoNVBuilder<'a> {
36108 #[inline]
36109 fn deref_mut(&mut self) -> &mut Self::Target {
36110 &mut self.inner
36111 }
36112}
36113pub struct PhysicalDevicePerformanceQueryFeaturesKHRBuilder<'a> {
36115 inner: PhysicalDevicePerformanceQueryFeaturesKHR,
36116 _marker: core::marker::PhantomData<&'a ()>,
36117}
36118impl PhysicalDevicePerformanceQueryFeaturesKHR {
36119 #[inline]
36121 pub fn builder<'a>() -> PhysicalDevicePerformanceQueryFeaturesKHRBuilder<'a> {
36122 PhysicalDevicePerformanceQueryFeaturesKHRBuilder {
36123 inner: PhysicalDevicePerformanceQueryFeaturesKHR {
36124 s_type: StructureType::from_raw(1000116000i32),
36125 ..Default::default()
36126 },
36127 _marker: core::marker::PhantomData,
36128 }
36129 }
36130}
36131impl<'a> PhysicalDevicePerformanceQueryFeaturesKHRBuilder<'a> {
36132 #[inline]
36133 pub fn performance_counter_query_pools(mut self, value: bool) -> Self {
36134 self.inner.performance_counter_query_pools = value as u32;
36135 self
36136 }
36137 #[inline]
36138 pub fn performance_counter_multiple_query_pools(mut self, value: bool) -> Self {
36139 self.inner.performance_counter_multiple_query_pools = value as u32;
36140 self
36141 }
36142 #[inline]
36144 pub fn push_next<T: ExtendsPhysicalDevicePerformanceQueryFeaturesKHR>(
36145 mut self,
36146 next: &'a mut T,
36147 ) -> Self {
36148 unsafe {
36149 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36150 (*next_ptr).p_next = self.inner.p_next as *mut _;
36151 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36152 core::ffi::c_void,
36153 >(next_ptr);
36154 }
36155 self
36156 }
36157}
36158impl<'a> core::ops::Deref for PhysicalDevicePerformanceQueryFeaturesKHRBuilder<'a> {
36159 type Target = PhysicalDevicePerformanceQueryFeaturesKHR;
36160 #[inline]
36161 fn deref(&self) -> &Self::Target {
36162 &self.inner
36163 }
36164}
36165impl<'a> core::ops::DerefMut for PhysicalDevicePerformanceQueryFeaturesKHRBuilder<'a> {
36166 #[inline]
36167 fn deref_mut(&mut self) -> &mut Self::Target {
36168 &mut self.inner
36169 }
36170}
36171pub struct PhysicalDevicePerformanceQueryPropertiesKHRBuilder<'a> {
36173 inner: PhysicalDevicePerformanceQueryPropertiesKHR,
36174 _marker: core::marker::PhantomData<&'a ()>,
36175}
36176impl PhysicalDevicePerformanceQueryPropertiesKHR {
36177 #[inline]
36179 pub fn builder<'a>() -> PhysicalDevicePerformanceQueryPropertiesKHRBuilder<'a> {
36180 PhysicalDevicePerformanceQueryPropertiesKHRBuilder {
36181 inner: PhysicalDevicePerformanceQueryPropertiesKHR {
36182 s_type: StructureType::from_raw(1000116001i32),
36183 ..Default::default()
36184 },
36185 _marker: core::marker::PhantomData,
36186 }
36187 }
36188}
36189impl<'a> PhysicalDevicePerformanceQueryPropertiesKHRBuilder<'a> {
36190 #[inline]
36191 pub fn allow_command_buffer_query_copies(mut self, value: bool) -> Self {
36192 self.inner.allow_command_buffer_query_copies = value as u32;
36193 self
36194 }
36195}
36196impl<'a> core::ops::Deref for PhysicalDevicePerformanceQueryPropertiesKHRBuilder<'a> {
36197 type Target = PhysicalDevicePerformanceQueryPropertiesKHR;
36198 #[inline]
36199 fn deref(&self) -> &Self::Target {
36200 &self.inner
36201 }
36202}
36203impl<'a> core::ops::DerefMut for PhysicalDevicePerformanceQueryPropertiesKHRBuilder<'a> {
36204 #[inline]
36205 fn deref_mut(&mut self) -> &mut Self::Target {
36206 &mut self.inner
36207 }
36208}
36209pub struct PerformanceCounterKHRBuilder<'a> {
36211 inner: PerformanceCounterKHR,
36212 _marker: core::marker::PhantomData<&'a ()>,
36213}
36214impl PerformanceCounterKHR {
36215 #[inline]
36217 pub fn builder<'a>() -> PerformanceCounterKHRBuilder<'a> {
36218 PerformanceCounterKHRBuilder {
36219 inner: PerformanceCounterKHR {
36220 s_type: StructureType::from_raw(1000116005i32),
36221 ..Default::default()
36222 },
36223 _marker: core::marker::PhantomData,
36224 }
36225 }
36226}
36227impl<'a> PerformanceCounterKHRBuilder<'a> {
36228 #[inline]
36229 pub fn unit(mut self, value: PerformanceCounterUnitKHR) -> Self {
36230 self.inner.unit = value;
36231 self
36232 }
36233 #[inline]
36234 pub fn scope(mut self, value: PerformanceCounterScopeKHR) -> Self {
36235 self.inner.scope = value;
36236 self
36237 }
36238 #[inline]
36239 pub fn storage(mut self, value: PerformanceCounterStorageKHR) -> Self {
36240 self.inner.storage = value;
36241 self
36242 }
36243 #[inline]
36244 pub fn uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
36245 self.inner.uuid = value;
36246 self
36247 }
36248}
36249impl<'a> core::ops::Deref for PerformanceCounterKHRBuilder<'a> {
36250 type Target = PerformanceCounterKHR;
36251 #[inline]
36252 fn deref(&self) -> &Self::Target {
36253 &self.inner
36254 }
36255}
36256impl<'a> core::ops::DerefMut for PerformanceCounterKHRBuilder<'a> {
36257 #[inline]
36258 fn deref_mut(&mut self) -> &mut Self::Target {
36259 &mut self.inner
36260 }
36261}
36262pub struct PerformanceCounterDescriptionKHRBuilder<'a> {
36264 inner: PerformanceCounterDescriptionKHR,
36265 _marker: core::marker::PhantomData<&'a ()>,
36266}
36267impl PerformanceCounterDescriptionKHR {
36268 #[inline]
36270 pub fn builder<'a>() -> PerformanceCounterDescriptionKHRBuilder<'a> {
36271 PerformanceCounterDescriptionKHRBuilder {
36272 inner: PerformanceCounterDescriptionKHR {
36273 s_type: StructureType::from_raw(1000116006i32),
36274 ..Default::default()
36275 },
36276 _marker: core::marker::PhantomData,
36277 }
36278 }
36279}
36280impl<'a> PerformanceCounterDescriptionKHRBuilder<'a> {
36281 #[inline]
36282 pub fn flags(mut self, value: PerformanceCounterDescriptionFlagsKHR) -> Self {
36283 self.inner.flags = value;
36284 self
36285 }
36286 #[inline]
36287 pub fn name(
36288 mut self,
36289 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
36290 ) -> Self {
36291 self.inner.name = value;
36292 self
36293 }
36294 #[inline]
36295 pub fn category(
36296 mut self,
36297 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
36298 ) -> Self {
36299 self.inner.category = value;
36300 self
36301 }
36302 #[inline]
36303 pub fn description(
36304 mut self,
36305 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
36306 ) -> Self {
36307 self.inner.description = value;
36308 self
36309 }
36310}
36311impl<'a> core::ops::Deref for PerformanceCounterDescriptionKHRBuilder<'a> {
36312 type Target = PerformanceCounterDescriptionKHR;
36313 #[inline]
36314 fn deref(&self) -> &Self::Target {
36315 &self.inner
36316 }
36317}
36318impl<'a> core::ops::DerefMut for PerformanceCounterDescriptionKHRBuilder<'a> {
36319 #[inline]
36320 fn deref_mut(&mut self) -> &mut Self::Target {
36321 &mut self.inner
36322 }
36323}
36324pub struct QueryPoolPerformanceCreateInfoKHRBuilder<'a> {
36326 inner: QueryPoolPerformanceCreateInfoKHR,
36327 _marker: core::marker::PhantomData<&'a ()>,
36328}
36329impl QueryPoolPerformanceCreateInfoKHR {
36330 #[inline]
36332 pub fn builder<'a>() -> QueryPoolPerformanceCreateInfoKHRBuilder<'a> {
36333 QueryPoolPerformanceCreateInfoKHRBuilder {
36334 inner: QueryPoolPerformanceCreateInfoKHR {
36335 s_type: StructureType::from_raw(1000116002i32),
36336 ..Default::default()
36337 },
36338 _marker: core::marker::PhantomData,
36339 }
36340 }
36341}
36342impl<'a> QueryPoolPerformanceCreateInfoKHRBuilder<'a> {
36343 #[inline]
36344 pub fn queue_family_index(mut self, value: u32) -> Self {
36345 self.inner.queue_family_index = value;
36346 self
36347 }
36348 #[inline]
36349 pub fn counter_indices(mut self, slice: &'a [u32]) -> Self {
36350 self.inner.counter_index_count = slice.len() as u32;
36351 self.inner.p_counter_indices = slice.as_ptr();
36352 self
36353 }
36354 #[inline]
36356 pub fn push_next<T: ExtendsQueryPoolPerformanceCreateInfoKHR>(
36357 mut self,
36358 next: &'a mut T,
36359 ) -> Self {
36360 unsafe {
36361 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36362 (*next_ptr).p_next = self.inner.p_next as *mut _;
36363 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36364 core::ffi::c_void,
36365 >(next_ptr) as *const _;
36366 }
36367 self
36368 }
36369}
36370impl<'a> core::ops::Deref for QueryPoolPerformanceCreateInfoKHRBuilder<'a> {
36371 type Target = QueryPoolPerformanceCreateInfoKHR;
36372 #[inline]
36373 fn deref(&self) -> &Self::Target {
36374 &self.inner
36375 }
36376}
36377impl<'a> core::ops::DerefMut for QueryPoolPerformanceCreateInfoKHRBuilder<'a> {
36378 #[inline]
36379 fn deref_mut(&mut self) -> &mut Self::Target {
36380 &mut self.inner
36381 }
36382}
36383pub struct AcquireProfilingLockInfoKHRBuilder<'a> {
36385 inner: AcquireProfilingLockInfoKHR,
36386 _marker: core::marker::PhantomData<&'a ()>,
36387}
36388impl AcquireProfilingLockInfoKHR {
36389 #[inline]
36391 pub fn builder<'a>() -> AcquireProfilingLockInfoKHRBuilder<'a> {
36392 AcquireProfilingLockInfoKHRBuilder {
36393 inner: AcquireProfilingLockInfoKHR {
36394 s_type: StructureType::from_raw(1000116004i32),
36395 ..Default::default()
36396 },
36397 _marker: core::marker::PhantomData,
36398 }
36399 }
36400}
36401impl<'a> AcquireProfilingLockInfoKHRBuilder<'a> {
36402 #[inline]
36403 pub fn flags(mut self, value: AcquireProfilingLockFlagsKHR) -> Self {
36404 self.inner.flags = value;
36405 self
36406 }
36407 #[inline]
36408 pub fn timeout(mut self, value: u64) -> Self {
36409 self.inner.timeout = value;
36410 self
36411 }
36412 #[inline]
36414 pub fn push_next<T: ExtendsAcquireProfilingLockInfoKHR>(
36415 mut self,
36416 next: &'a mut T,
36417 ) -> Self {
36418 unsafe {
36419 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36420 (*next_ptr).p_next = self.inner.p_next as *mut _;
36421 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36422 core::ffi::c_void,
36423 >(next_ptr) as *const _;
36424 }
36425 self
36426 }
36427}
36428impl<'a> core::ops::Deref for AcquireProfilingLockInfoKHRBuilder<'a> {
36429 type Target = AcquireProfilingLockInfoKHR;
36430 #[inline]
36431 fn deref(&self) -> &Self::Target {
36432 &self.inner
36433 }
36434}
36435impl<'a> core::ops::DerefMut for AcquireProfilingLockInfoKHRBuilder<'a> {
36436 #[inline]
36437 fn deref_mut(&mut self) -> &mut Self::Target {
36438 &mut self.inner
36439 }
36440}
36441pub struct PerformanceQuerySubmitInfoKHRBuilder<'a> {
36443 inner: PerformanceQuerySubmitInfoKHR,
36444 _marker: core::marker::PhantomData<&'a ()>,
36445}
36446impl PerformanceQuerySubmitInfoKHR {
36447 #[inline]
36449 pub fn builder<'a>() -> PerformanceQuerySubmitInfoKHRBuilder<'a> {
36450 PerformanceQuerySubmitInfoKHRBuilder {
36451 inner: PerformanceQuerySubmitInfoKHR {
36452 s_type: StructureType::from_raw(1000116003i32),
36453 ..Default::default()
36454 },
36455 _marker: core::marker::PhantomData,
36456 }
36457 }
36458}
36459impl<'a> PerformanceQuerySubmitInfoKHRBuilder<'a> {
36460 #[inline]
36461 pub fn counter_pass_index(mut self, value: u32) -> Self {
36462 self.inner.counter_pass_index = value;
36463 self
36464 }
36465 #[inline]
36467 pub fn push_next<T: ExtendsPerformanceQuerySubmitInfoKHR>(
36468 mut self,
36469 next: &'a mut T,
36470 ) -> Self {
36471 unsafe {
36472 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36473 (*next_ptr).p_next = self.inner.p_next as *mut _;
36474 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36475 core::ffi::c_void,
36476 >(next_ptr) as *const _;
36477 }
36478 self
36479 }
36480}
36481impl<'a> core::ops::Deref for PerformanceQuerySubmitInfoKHRBuilder<'a> {
36482 type Target = PerformanceQuerySubmitInfoKHR;
36483 #[inline]
36484 fn deref(&self) -> &Self::Target {
36485 &self.inner
36486 }
36487}
36488impl<'a> core::ops::DerefMut for PerformanceQuerySubmitInfoKHRBuilder<'a> {
36489 #[inline]
36490 fn deref_mut(&mut self) -> &mut Self::Target {
36491 &mut self.inner
36492 }
36493}
36494pub struct PerformanceQueryReservationInfoKHRBuilder<'a> {
36496 inner: PerformanceQueryReservationInfoKHR,
36497 _marker: core::marker::PhantomData<&'a ()>,
36498}
36499impl PerformanceQueryReservationInfoKHR {
36500 #[inline]
36502 pub fn builder<'a>() -> PerformanceQueryReservationInfoKHRBuilder<'a> {
36503 PerformanceQueryReservationInfoKHRBuilder {
36504 inner: PerformanceQueryReservationInfoKHR {
36505 s_type: StructureType::from_raw(1000116007i32),
36506 ..Default::default()
36507 },
36508 _marker: core::marker::PhantomData,
36509 }
36510 }
36511}
36512impl<'a> PerformanceQueryReservationInfoKHRBuilder<'a> {
36513 #[inline]
36514 pub fn max_performance_queries_per_pool(mut self, value: u32) -> Self {
36515 self.inner.max_performance_queries_per_pool = value;
36516 self
36517 }
36518 #[inline]
36520 pub fn push_next<T: ExtendsPerformanceQueryReservationInfoKHR>(
36521 mut self,
36522 next: &'a mut T,
36523 ) -> Self {
36524 unsafe {
36525 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36526 (*next_ptr).p_next = self.inner.p_next as *mut _;
36527 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36528 core::ffi::c_void,
36529 >(next_ptr) as *const _;
36530 }
36531 self
36532 }
36533}
36534impl<'a> core::ops::Deref for PerformanceQueryReservationInfoKHRBuilder<'a> {
36535 type Target = PerformanceQueryReservationInfoKHR;
36536 #[inline]
36537 fn deref(&self) -> &Self::Target {
36538 &self.inner
36539 }
36540}
36541impl<'a> core::ops::DerefMut for PerformanceQueryReservationInfoKHRBuilder<'a> {
36542 #[inline]
36543 fn deref_mut(&mut self) -> &mut Self::Target {
36544 &mut self.inner
36545 }
36546}
36547pub struct HeadlessSurfaceCreateInfoEXTBuilder<'a> {
36549 inner: HeadlessSurfaceCreateInfoEXT,
36550 _marker: core::marker::PhantomData<&'a ()>,
36551}
36552impl HeadlessSurfaceCreateInfoEXT {
36553 #[inline]
36555 pub fn builder<'a>() -> HeadlessSurfaceCreateInfoEXTBuilder<'a> {
36556 HeadlessSurfaceCreateInfoEXTBuilder {
36557 inner: HeadlessSurfaceCreateInfoEXT {
36558 s_type: StructureType::from_raw(1000256000i32),
36559 ..Default::default()
36560 },
36561 _marker: core::marker::PhantomData,
36562 }
36563 }
36564}
36565impl<'a> HeadlessSurfaceCreateInfoEXTBuilder<'a> {
36566 #[inline]
36567 pub fn flags(mut self, value: HeadlessSurfaceCreateFlagsEXT) -> Self {
36568 self.inner.flags = value;
36569 self
36570 }
36571 #[inline]
36573 pub fn push_next<T: ExtendsHeadlessSurfaceCreateInfoEXT>(
36574 mut self,
36575 next: &'a mut T,
36576 ) -> Self {
36577 unsafe {
36578 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36579 (*next_ptr).p_next = self.inner.p_next as *mut _;
36580 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36581 core::ffi::c_void,
36582 >(next_ptr) as *const _;
36583 }
36584 self
36585 }
36586}
36587impl<'a> core::ops::Deref for HeadlessSurfaceCreateInfoEXTBuilder<'a> {
36588 type Target = HeadlessSurfaceCreateInfoEXT;
36589 #[inline]
36590 fn deref(&self) -> &Self::Target {
36591 &self.inner
36592 }
36593}
36594impl<'a> core::ops::DerefMut for HeadlessSurfaceCreateInfoEXTBuilder<'a> {
36595 #[inline]
36596 fn deref_mut(&mut self) -> &mut Self::Target {
36597 &mut self.inner
36598 }
36599}
36600pub struct PhysicalDeviceCoverageReductionModeFeaturesNVBuilder<'a> {
36602 inner: PhysicalDeviceCoverageReductionModeFeaturesNV,
36603 _marker: core::marker::PhantomData<&'a ()>,
36604}
36605impl PhysicalDeviceCoverageReductionModeFeaturesNV {
36606 #[inline]
36608 pub fn builder<'a>() -> PhysicalDeviceCoverageReductionModeFeaturesNVBuilder<'a> {
36609 PhysicalDeviceCoverageReductionModeFeaturesNVBuilder {
36610 inner: PhysicalDeviceCoverageReductionModeFeaturesNV {
36611 s_type: StructureType::from_raw(1000250000i32),
36612 ..Default::default()
36613 },
36614 _marker: core::marker::PhantomData,
36615 }
36616 }
36617}
36618impl<'a> PhysicalDeviceCoverageReductionModeFeaturesNVBuilder<'a> {
36619 #[inline]
36620 pub fn coverage_reduction_mode(mut self, value: bool) -> Self {
36621 self.inner.coverage_reduction_mode = value as u32;
36622 self
36623 }
36624 #[inline]
36626 pub fn push_next<T: ExtendsPhysicalDeviceCoverageReductionModeFeaturesNV>(
36627 mut self,
36628 next: &'a mut T,
36629 ) -> Self {
36630 unsafe {
36631 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36632 (*next_ptr).p_next = self.inner.p_next as *mut _;
36633 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36634 core::ffi::c_void,
36635 >(next_ptr);
36636 }
36637 self
36638 }
36639}
36640impl<'a> core::ops::Deref for PhysicalDeviceCoverageReductionModeFeaturesNVBuilder<'a> {
36641 type Target = PhysicalDeviceCoverageReductionModeFeaturesNV;
36642 #[inline]
36643 fn deref(&self) -> &Self::Target {
36644 &self.inner
36645 }
36646}
36647impl<'a> core::ops::DerefMut
36648for PhysicalDeviceCoverageReductionModeFeaturesNVBuilder<'a> {
36649 #[inline]
36650 fn deref_mut(&mut self) -> &mut Self::Target {
36651 &mut self.inner
36652 }
36653}
36654pub struct PipelineCoverageReductionStateCreateInfoNVBuilder<'a> {
36656 inner: PipelineCoverageReductionStateCreateInfoNV,
36657 _marker: core::marker::PhantomData<&'a ()>,
36658}
36659impl PipelineCoverageReductionStateCreateInfoNV {
36660 #[inline]
36662 pub fn builder<'a>() -> PipelineCoverageReductionStateCreateInfoNVBuilder<'a> {
36663 PipelineCoverageReductionStateCreateInfoNVBuilder {
36664 inner: PipelineCoverageReductionStateCreateInfoNV {
36665 s_type: StructureType::from_raw(1000250001i32),
36666 ..Default::default()
36667 },
36668 _marker: core::marker::PhantomData,
36669 }
36670 }
36671}
36672impl<'a> PipelineCoverageReductionStateCreateInfoNVBuilder<'a> {
36673 #[inline]
36674 pub fn flags(mut self, value: PipelineCoverageReductionStateCreateFlagsNV) -> Self {
36675 self.inner.flags = value;
36676 self
36677 }
36678 #[inline]
36679 pub fn coverage_reduction_mode(mut self, value: CoverageReductionModeNV) -> Self {
36680 self.inner.coverage_reduction_mode = value;
36681 self
36682 }
36683 #[inline]
36685 pub fn push_next<T: ExtendsPipelineCoverageReductionStateCreateInfoNV>(
36686 mut self,
36687 next: &'a mut T,
36688 ) -> Self {
36689 unsafe {
36690 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36691 (*next_ptr).p_next = self.inner.p_next as *mut _;
36692 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36693 core::ffi::c_void,
36694 >(next_ptr) as *const _;
36695 }
36696 self
36697 }
36698}
36699impl<'a> core::ops::Deref for PipelineCoverageReductionStateCreateInfoNVBuilder<'a> {
36700 type Target = PipelineCoverageReductionStateCreateInfoNV;
36701 #[inline]
36702 fn deref(&self) -> &Self::Target {
36703 &self.inner
36704 }
36705}
36706impl<'a> core::ops::DerefMut for PipelineCoverageReductionStateCreateInfoNVBuilder<'a> {
36707 #[inline]
36708 fn deref_mut(&mut self) -> &mut Self::Target {
36709 &mut self.inner
36710 }
36711}
36712pub struct FramebufferMixedSamplesCombinationNVBuilder<'a> {
36714 inner: FramebufferMixedSamplesCombinationNV,
36715 _marker: core::marker::PhantomData<&'a ()>,
36716}
36717impl FramebufferMixedSamplesCombinationNV {
36718 #[inline]
36720 pub fn builder<'a>() -> FramebufferMixedSamplesCombinationNVBuilder<'a> {
36721 FramebufferMixedSamplesCombinationNVBuilder {
36722 inner: FramebufferMixedSamplesCombinationNV {
36723 s_type: StructureType::from_raw(1000250002i32),
36724 ..Default::default()
36725 },
36726 _marker: core::marker::PhantomData,
36727 }
36728 }
36729}
36730impl<'a> FramebufferMixedSamplesCombinationNVBuilder<'a> {
36731 #[inline]
36732 pub fn coverage_reduction_mode(mut self, value: CoverageReductionModeNV) -> Self {
36733 self.inner.coverage_reduction_mode = value;
36734 self
36735 }
36736 #[inline]
36737 pub fn rasterization_samples(mut self, value: SampleCountFlagBits) -> Self {
36738 self.inner.rasterization_samples = value;
36739 self
36740 }
36741 #[inline]
36742 pub fn depth_stencil_samples(mut self, value: SampleCountFlags) -> Self {
36743 self.inner.depth_stencil_samples = value;
36744 self
36745 }
36746 #[inline]
36747 pub fn color_samples(mut self, value: SampleCountFlags) -> Self {
36748 self.inner.color_samples = value;
36749 self
36750 }
36751}
36752impl<'a> core::ops::Deref for FramebufferMixedSamplesCombinationNVBuilder<'a> {
36753 type Target = FramebufferMixedSamplesCombinationNV;
36754 #[inline]
36755 fn deref(&self) -> &Self::Target {
36756 &self.inner
36757 }
36758}
36759impl<'a> core::ops::DerefMut for FramebufferMixedSamplesCombinationNVBuilder<'a> {
36760 #[inline]
36761 fn deref_mut(&mut self) -> &mut Self::Target {
36762 &mut self.inner
36763 }
36764}
36765pub struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder<'a> {
36767 inner: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL,
36768 _marker: core::marker::PhantomData<&'a ()>,
36769}
36770impl PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
36771 #[inline]
36773 pub fn builder<'a>() -> PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder<
36774 'a,
36775 > {
36776 PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder {
36777 inner: PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
36778 s_type: StructureType::from_raw(1000209000i32),
36779 ..Default::default()
36780 },
36781 _marker: core::marker::PhantomData,
36782 }
36783 }
36784}
36785impl<'a> PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder<'a> {
36786 #[inline]
36787 pub fn shader_integer_functions2(mut self, value: bool) -> Self {
36788 self.inner.shader_integer_functions2 = value as u32;
36789 self
36790 }
36791 #[inline]
36793 pub fn push_next<T: ExtendsPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>(
36794 mut self,
36795 next: &'a mut T,
36796 ) -> Self {
36797 unsafe {
36798 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36799 (*next_ptr).p_next = self.inner.p_next as *mut _;
36800 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36801 core::ffi::c_void,
36802 >(next_ptr);
36803 }
36804 self
36805 }
36806}
36807impl<'a> core::ops::Deref
36808for PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder<'a> {
36809 type Target = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
36810 #[inline]
36811 fn deref(&self) -> &Self::Target {
36812 &self.inner
36813 }
36814}
36815impl<'a> core::ops::DerefMut
36816for PhysicalDeviceShaderIntegerFunctions2FeaturesINTELBuilder<'a> {
36817 #[inline]
36818 fn deref_mut(&mut self) -> &mut Self::Target {
36819 &mut self.inner
36820 }
36821}
36822pub struct PerformanceValueINTELBuilder {
36824 inner: PerformanceValueINTEL,
36825}
36826impl PerformanceValueINTEL {
36827 #[inline]
36829 pub fn builder() -> PerformanceValueINTELBuilder {
36830 PerformanceValueINTELBuilder {
36831 inner: PerformanceValueINTEL {
36832 ..Default::default()
36833 },
36834 }
36835 }
36836}
36837impl PerformanceValueINTELBuilder {
36838 #[inline]
36839 pub fn r#type(mut self, value: PerformanceValueTypeINTEL) -> Self {
36840 self.inner.r#type = value;
36841 self
36842 }
36843 #[inline]
36844 pub fn data(mut self, value: PerformanceValueDataINTEL) -> Self {
36845 self.inner.data = value;
36846 self
36847 }
36848}
36849impl core::ops::Deref for PerformanceValueINTELBuilder {
36850 type Target = PerformanceValueINTEL;
36851 #[inline]
36852 fn deref(&self) -> &Self::Target {
36853 &self.inner
36854 }
36855}
36856impl core::ops::DerefMut for PerformanceValueINTELBuilder {
36857 #[inline]
36858 fn deref_mut(&mut self) -> &mut Self::Target {
36859 &mut self.inner
36860 }
36861}
36862pub struct InitializePerformanceApiInfoINTELBuilder<'a> {
36864 inner: InitializePerformanceApiInfoINTEL,
36865 _marker: core::marker::PhantomData<&'a ()>,
36866}
36867impl InitializePerformanceApiInfoINTEL {
36868 #[inline]
36870 pub fn builder<'a>() -> InitializePerformanceApiInfoINTELBuilder<'a> {
36871 InitializePerformanceApiInfoINTELBuilder {
36872 inner: InitializePerformanceApiInfoINTEL {
36873 s_type: StructureType::from_raw(1000210001i32),
36874 ..Default::default()
36875 },
36876 _marker: core::marker::PhantomData,
36877 }
36878 }
36879}
36880impl<'a> InitializePerformanceApiInfoINTELBuilder<'a> {
36881 #[inline]
36882 pub fn user_data(mut self, value: *mut core::ffi::c_void) -> Self {
36883 self.inner.p_user_data = value;
36884 self
36885 }
36886 #[inline]
36888 pub fn push_next<T: ExtendsInitializePerformanceApiInfoINTEL>(
36889 mut self,
36890 next: &'a mut T,
36891 ) -> Self {
36892 unsafe {
36893 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36894 (*next_ptr).p_next = self.inner.p_next as *mut _;
36895 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36896 core::ffi::c_void,
36897 >(next_ptr) as *const _;
36898 }
36899 self
36900 }
36901}
36902impl<'a> core::ops::Deref for InitializePerformanceApiInfoINTELBuilder<'a> {
36903 type Target = InitializePerformanceApiInfoINTEL;
36904 #[inline]
36905 fn deref(&self) -> &Self::Target {
36906 &self.inner
36907 }
36908}
36909impl<'a> core::ops::DerefMut for InitializePerformanceApiInfoINTELBuilder<'a> {
36910 #[inline]
36911 fn deref_mut(&mut self) -> &mut Self::Target {
36912 &mut self.inner
36913 }
36914}
36915pub struct QueryPoolPerformanceQueryCreateInfoINTELBuilder<'a> {
36917 inner: QueryPoolPerformanceQueryCreateInfoINTEL,
36918 _marker: core::marker::PhantomData<&'a ()>,
36919}
36920impl QueryPoolPerformanceQueryCreateInfoINTEL {
36921 #[inline]
36923 pub fn builder<'a>() -> QueryPoolPerformanceQueryCreateInfoINTELBuilder<'a> {
36924 QueryPoolPerformanceQueryCreateInfoINTELBuilder {
36925 inner: QueryPoolPerformanceQueryCreateInfoINTEL {
36926 s_type: StructureType::from_raw(1000210000i32),
36927 ..Default::default()
36928 },
36929 _marker: core::marker::PhantomData,
36930 }
36931 }
36932}
36933impl<'a> QueryPoolPerformanceQueryCreateInfoINTELBuilder<'a> {
36934 #[inline]
36935 pub fn performance_counters_sampling(
36936 mut self,
36937 value: QueryPoolSamplingModeINTEL,
36938 ) -> Self {
36939 self.inner.performance_counters_sampling = value;
36940 self
36941 }
36942 #[inline]
36944 pub fn push_next<T: ExtendsQueryPoolPerformanceQueryCreateInfoINTEL>(
36945 mut self,
36946 next: &'a mut T,
36947 ) -> Self {
36948 unsafe {
36949 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
36950 (*next_ptr).p_next = self.inner.p_next as *mut _;
36951 self.inner.p_next = <*mut BaseOutStructure>::cast::<
36952 core::ffi::c_void,
36953 >(next_ptr) as *const _;
36954 }
36955 self
36956 }
36957}
36958impl<'a> core::ops::Deref for QueryPoolPerformanceQueryCreateInfoINTELBuilder<'a> {
36959 type Target = QueryPoolPerformanceQueryCreateInfoINTEL;
36960 #[inline]
36961 fn deref(&self) -> &Self::Target {
36962 &self.inner
36963 }
36964}
36965impl<'a> core::ops::DerefMut for QueryPoolPerformanceQueryCreateInfoINTELBuilder<'a> {
36966 #[inline]
36967 fn deref_mut(&mut self) -> &mut Self::Target {
36968 &mut self.inner
36969 }
36970}
36971pub struct PerformanceMarkerInfoINTELBuilder<'a> {
36973 inner: PerformanceMarkerInfoINTEL,
36974 _marker: core::marker::PhantomData<&'a ()>,
36975}
36976impl PerformanceMarkerInfoINTEL {
36977 #[inline]
36979 pub fn builder<'a>() -> PerformanceMarkerInfoINTELBuilder<'a> {
36980 PerformanceMarkerInfoINTELBuilder {
36981 inner: PerformanceMarkerInfoINTEL {
36982 s_type: StructureType::from_raw(1000210002i32),
36983 ..Default::default()
36984 },
36985 _marker: core::marker::PhantomData,
36986 }
36987 }
36988}
36989impl<'a> PerformanceMarkerInfoINTELBuilder<'a> {
36990 #[inline]
36991 pub fn marker(mut self, value: u64) -> Self {
36992 self.inner.marker = value;
36993 self
36994 }
36995 #[inline]
36997 pub fn push_next<T: ExtendsPerformanceMarkerInfoINTEL>(
36998 mut self,
36999 next: &'a mut T,
37000 ) -> Self {
37001 unsafe {
37002 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37003 (*next_ptr).p_next = self.inner.p_next as *mut _;
37004 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37005 core::ffi::c_void,
37006 >(next_ptr) as *const _;
37007 }
37008 self
37009 }
37010}
37011impl<'a> core::ops::Deref for PerformanceMarkerInfoINTELBuilder<'a> {
37012 type Target = PerformanceMarkerInfoINTEL;
37013 #[inline]
37014 fn deref(&self) -> &Self::Target {
37015 &self.inner
37016 }
37017}
37018impl<'a> core::ops::DerefMut for PerformanceMarkerInfoINTELBuilder<'a> {
37019 #[inline]
37020 fn deref_mut(&mut self) -> &mut Self::Target {
37021 &mut self.inner
37022 }
37023}
37024pub struct PerformanceStreamMarkerInfoINTELBuilder<'a> {
37026 inner: PerformanceStreamMarkerInfoINTEL,
37027 _marker: core::marker::PhantomData<&'a ()>,
37028}
37029impl PerformanceStreamMarkerInfoINTEL {
37030 #[inline]
37032 pub fn builder<'a>() -> PerformanceStreamMarkerInfoINTELBuilder<'a> {
37033 PerformanceStreamMarkerInfoINTELBuilder {
37034 inner: PerformanceStreamMarkerInfoINTEL {
37035 s_type: StructureType::from_raw(1000210003i32),
37036 ..Default::default()
37037 },
37038 _marker: core::marker::PhantomData,
37039 }
37040 }
37041}
37042impl<'a> PerformanceStreamMarkerInfoINTELBuilder<'a> {
37043 #[inline]
37044 pub fn marker(mut self, value: u32) -> Self {
37045 self.inner.marker = value;
37046 self
37047 }
37048 #[inline]
37050 pub fn push_next<T: ExtendsPerformanceStreamMarkerInfoINTEL>(
37051 mut self,
37052 next: &'a mut T,
37053 ) -> Self {
37054 unsafe {
37055 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37056 (*next_ptr).p_next = self.inner.p_next as *mut _;
37057 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37058 core::ffi::c_void,
37059 >(next_ptr) as *const _;
37060 }
37061 self
37062 }
37063}
37064impl<'a> core::ops::Deref for PerformanceStreamMarkerInfoINTELBuilder<'a> {
37065 type Target = PerformanceStreamMarkerInfoINTEL;
37066 #[inline]
37067 fn deref(&self) -> &Self::Target {
37068 &self.inner
37069 }
37070}
37071impl<'a> core::ops::DerefMut for PerformanceStreamMarkerInfoINTELBuilder<'a> {
37072 #[inline]
37073 fn deref_mut(&mut self) -> &mut Self::Target {
37074 &mut self.inner
37075 }
37076}
37077pub struct PerformanceOverrideInfoINTELBuilder<'a> {
37079 inner: PerformanceOverrideInfoINTEL,
37080 _marker: core::marker::PhantomData<&'a ()>,
37081}
37082impl PerformanceOverrideInfoINTEL {
37083 #[inline]
37085 pub fn builder<'a>() -> PerformanceOverrideInfoINTELBuilder<'a> {
37086 PerformanceOverrideInfoINTELBuilder {
37087 inner: PerformanceOverrideInfoINTEL {
37088 s_type: StructureType::from_raw(1000210004i32),
37089 ..Default::default()
37090 },
37091 _marker: core::marker::PhantomData,
37092 }
37093 }
37094}
37095impl<'a> PerformanceOverrideInfoINTELBuilder<'a> {
37096 #[inline]
37097 pub fn r#type(mut self, value: PerformanceOverrideTypeINTEL) -> Self {
37098 self.inner.r#type = value;
37099 self
37100 }
37101 #[inline]
37102 pub fn enable(mut self, value: bool) -> Self {
37103 self.inner.enable = value as u32;
37104 self
37105 }
37106 #[inline]
37107 pub fn parameter(mut self, value: u64) -> Self {
37108 self.inner.parameter = value;
37109 self
37110 }
37111 #[inline]
37113 pub fn push_next<T: ExtendsPerformanceOverrideInfoINTEL>(
37114 mut self,
37115 next: &'a mut T,
37116 ) -> Self {
37117 unsafe {
37118 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37119 (*next_ptr).p_next = self.inner.p_next as *mut _;
37120 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37121 core::ffi::c_void,
37122 >(next_ptr) as *const _;
37123 }
37124 self
37125 }
37126}
37127impl<'a> core::ops::Deref for PerformanceOverrideInfoINTELBuilder<'a> {
37128 type Target = PerformanceOverrideInfoINTEL;
37129 #[inline]
37130 fn deref(&self) -> &Self::Target {
37131 &self.inner
37132 }
37133}
37134impl<'a> core::ops::DerefMut for PerformanceOverrideInfoINTELBuilder<'a> {
37135 #[inline]
37136 fn deref_mut(&mut self) -> &mut Self::Target {
37137 &mut self.inner
37138 }
37139}
37140pub struct PerformanceConfigurationAcquireInfoINTELBuilder<'a> {
37142 inner: PerformanceConfigurationAcquireInfoINTEL,
37143 _marker: core::marker::PhantomData<&'a ()>,
37144}
37145impl PerformanceConfigurationAcquireInfoINTEL {
37146 #[inline]
37148 pub fn builder<'a>() -> PerformanceConfigurationAcquireInfoINTELBuilder<'a> {
37149 PerformanceConfigurationAcquireInfoINTELBuilder {
37150 inner: PerformanceConfigurationAcquireInfoINTEL {
37151 s_type: StructureType::from_raw(1000210005i32),
37152 ..Default::default()
37153 },
37154 _marker: core::marker::PhantomData,
37155 }
37156 }
37157}
37158impl<'a> PerformanceConfigurationAcquireInfoINTELBuilder<'a> {
37159 #[inline]
37160 pub fn r#type(mut self, value: PerformanceConfigurationTypeINTEL) -> Self {
37161 self.inner.r#type = value;
37162 self
37163 }
37164 #[inline]
37166 pub fn push_next<T: ExtendsPerformanceConfigurationAcquireInfoINTEL>(
37167 mut self,
37168 next: &'a mut T,
37169 ) -> Self {
37170 unsafe {
37171 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37172 (*next_ptr).p_next = self.inner.p_next as *mut _;
37173 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37174 core::ffi::c_void,
37175 >(next_ptr) as *const _;
37176 }
37177 self
37178 }
37179}
37180impl<'a> core::ops::Deref for PerformanceConfigurationAcquireInfoINTELBuilder<'a> {
37181 type Target = PerformanceConfigurationAcquireInfoINTEL;
37182 #[inline]
37183 fn deref(&self) -> &Self::Target {
37184 &self.inner
37185 }
37186}
37187impl<'a> core::ops::DerefMut for PerformanceConfigurationAcquireInfoINTELBuilder<'a> {
37188 #[inline]
37189 fn deref_mut(&mut self) -> &mut Self::Target {
37190 &mut self.inner
37191 }
37192}
37193pub struct PhysicalDeviceShaderClockFeaturesKHRBuilder<'a> {
37195 inner: PhysicalDeviceShaderClockFeaturesKHR,
37196 _marker: core::marker::PhantomData<&'a ()>,
37197}
37198impl PhysicalDeviceShaderClockFeaturesKHR {
37199 #[inline]
37201 pub fn builder<'a>() -> PhysicalDeviceShaderClockFeaturesKHRBuilder<'a> {
37202 PhysicalDeviceShaderClockFeaturesKHRBuilder {
37203 inner: PhysicalDeviceShaderClockFeaturesKHR {
37204 s_type: StructureType::from_raw(1000181000i32),
37205 ..Default::default()
37206 },
37207 _marker: core::marker::PhantomData,
37208 }
37209 }
37210}
37211impl<'a> PhysicalDeviceShaderClockFeaturesKHRBuilder<'a> {
37212 #[inline]
37213 pub fn shader_subgroup_clock(mut self, value: bool) -> Self {
37214 self.inner.shader_subgroup_clock = value as u32;
37215 self
37216 }
37217 #[inline]
37218 pub fn shader_device_clock(mut self, value: bool) -> Self {
37219 self.inner.shader_device_clock = value as u32;
37220 self
37221 }
37222 #[inline]
37224 pub fn push_next<T: ExtendsPhysicalDeviceShaderClockFeaturesKHR>(
37225 mut self,
37226 next: &'a mut T,
37227 ) -> Self {
37228 unsafe {
37229 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37230 (*next_ptr).p_next = self.inner.p_next as *mut _;
37231 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37232 core::ffi::c_void,
37233 >(next_ptr);
37234 }
37235 self
37236 }
37237}
37238impl<'a> core::ops::Deref for PhysicalDeviceShaderClockFeaturesKHRBuilder<'a> {
37239 type Target = PhysicalDeviceShaderClockFeaturesKHR;
37240 #[inline]
37241 fn deref(&self) -> &Self::Target {
37242 &self.inner
37243 }
37244}
37245impl<'a> core::ops::DerefMut for PhysicalDeviceShaderClockFeaturesKHRBuilder<'a> {
37246 #[inline]
37247 fn deref_mut(&mut self) -> &mut Self::Target {
37248 &mut self.inner
37249 }
37250}
37251pub struct PhysicalDeviceIndexTypeUint8FeaturesBuilder<'a> {
37253 inner: PhysicalDeviceIndexTypeUint8Features,
37254 _marker: core::marker::PhantomData<&'a ()>,
37255}
37256impl PhysicalDeviceIndexTypeUint8Features {
37257 #[inline]
37259 pub fn builder<'a>() -> PhysicalDeviceIndexTypeUint8FeaturesBuilder<'a> {
37260 PhysicalDeviceIndexTypeUint8FeaturesBuilder {
37261 inner: PhysicalDeviceIndexTypeUint8Features {
37262 s_type: StructureType::from_raw(1000265000i32),
37263 ..Default::default()
37264 },
37265 _marker: core::marker::PhantomData,
37266 }
37267 }
37268}
37269impl<'a> PhysicalDeviceIndexTypeUint8FeaturesBuilder<'a> {
37270 #[inline]
37271 pub fn index_type_uint8(mut self, value: bool) -> Self {
37272 self.inner.index_type_uint8 = value as u32;
37273 self
37274 }
37275 #[inline]
37277 pub fn push_next<T: ExtendsPhysicalDeviceIndexTypeUint8Features>(
37278 mut self,
37279 next: &'a mut T,
37280 ) -> Self {
37281 unsafe {
37282 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37283 (*next_ptr).p_next = self.inner.p_next as *mut _;
37284 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37285 core::ffi::c_void,
37286 >(next_ptr);
37287 }
37288 self
37289 }
37290}
37291impl<'a> core::ops::Deref for PhysicalDeviceIndexTypeUint8FeaturesBuilder<'a> {
37292 type Target = PhysicalDeviceIndexTypeUint8Features;
37293 #[inline]
37294 fn deref(&self) -> &Self::Target {
37295 &self.inner
37296 }
37297}
37298impl<'a> core::ops::DerefMut for PhysicalDeviceIndexTypeUint8FeaturesBuilder<'a> {
37299 #[inline]
37300 fn deref_mut(&mut self) -> &mut Self::Target {
37301 &mut self.inner
37302 }
37303}
37304pub struct PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder<'a> {
37306 inner: PhysicalDeviceShaderSMBuiltinsPropertiesNV,
37307 _marker: core::marker::PhantomData<&'a ()>,
37308}
37309impl PhysicalDeviceShaderSMBuiltinsPropertiesNV {
37310 #[inline]
37312 pub fn builder<'a>() -> PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder<'a> {
37313 PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder {
37314 inner: PhysicalDeviceShaderSMBuiltinsPropertiesNV {
37315 s_type: StructureType::from_raw(1000154001i32),
37316 ..Default::default()
37317 },
37318 _marker: core::marker::PhantomData,
37319 }
37320 }
37321}
37322impl<'a> PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder<'a> {
37323 #[inline]
37324 pub fn shader_sm_count(mut self, value: u32) -> Self {
37325 self.inner.shader_sm_count = value;
37326 self
37327 }
37328 #[inline]
37329 pub fn shader_warps_per_sm(mut self, value: u32) -> Self {
37330 self.inner.shader_warps_per_sm = value;
37331 self
37332 }
37333}
37334impl<'a> core::ops::Deref for PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder<'a> {
37335 type Target = PhysicalDeviceShaderSMBuiltinsPropertiesNV;
37336 #[inline]
37337 fn deref(&self) -> &Self::Target {
37338 &self.inner
37339 }
37340}
37341impl<'a> core::ops::DerefMut for PhysicalDeviceShaderSMBuiltinsPropertiesNVBuilder<'a> {
37342 #[inline]
37343 fn deref_mut(&mut self) -> &mut Self::Target {
37344 &mut self.inner
37345 }
37346}
37347pub struct PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder<'a> {
37349 inner: PhysicalDeviceShaderSMBuiltinsFeaturesNV,
37350 _marker: core::marker::PhantomData<&'a ()>,
37351}
37352impl PhysicalDeviceShaderSMBuiltinsFeaturesNV {
37353 #[inline]
37355 pub fn builder<'a>() -> PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder<'a> {
37356 PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder {
37357 inner: PhysicalDeviceShaderSMBuiltinsFeaturesNV {
37358 s_type: StructureType::from_raw(1000154000i32),
37359 ..Default::default()
37360 },
37361 _marker: core::marker::PhantomData,
37362 }
37363 }
37364}
37365impl<'a> PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder<'a> {
37366 #[inline]
37367 pub fn shader_sm_builtins(mut self, value: bool) -> Self {
37368 self.inner.shader_sm_builtins = value as u32;
37369 self
37370 }
37371 #[inline]
37373 pub fn push_next<T: ExtendsPhysicalDeviceShaderSMBuiltinsFeaturesNV>(
37374 mut self,
37375 next: &'a mut T,
37376 ) -> Self {
37377 unsafe {
37378 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37379 (*next_ptr).p_next = self.inner.p_next as *mut _;
37380 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37381 core::ffi::c_void,
37382 >(next_ptr);
37383 }
37384 self
37385 }
37386}
37387impl<'a> core::ops::Deref for PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder<'a> {
37388 type Target = PhysicalDeviceShaderSMBuiltinsFeaturesNV;
37389 #[inline]
37390 fn deref(&self) -> &Self::Target {
37391 &self.inner
37392 }
37393}
37394impl<'a> core::ops::DerefMut for PhysicalDeviceShaderSMBuiltinsFeaturesNVBuilder<'a> {
37395 #[inline]
37396 fn deref_mut(&mut self) -> &mut Self::Target {
37397 &mut self.inner
37398 }
37399}
37400pub struct PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder<'a> {
37402 inner: PhysicalDeviceFragmentShaderInterlockFeaturesEXT,
37403 _marker: core::marker::PhantomData<&'a ()>,
37404}
37405impl PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
37406 #[inline]
37408 pub fn builder<'a>() -> PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder<'a> {
37409 PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder {
37410 inner: PhysicalDeviceFragmentShaderInterlockFeaturesEXT {
37411 s_type: StructureType::from_raw(1000251000i32),
37412 ..Default::default()
37413 },
37414 _marker: core::marker::PhantomData,
37415 }
37416 }
37417}
37418impl<'a> PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder<'a> {
37419 #[inline]
37420 pub fn fragment_shader_sample_interlock(mut self, value: bool) -> Self {
37421 self.inner.fragment_shader_sample_interlock = value as u32;
37422 self
37423 }
37424 #[inline]
37425 pub fn fragment_shader_pixel_interlock(mut self, value: bool) -> Self {
37426 self.inner.fragment_shader_pixel_interlock = value as u32;
37427 self
37428 }
37429 #[inline]
37430 pub fn fragment_shader_shading_rate_interlock(mut self, value: bool) -> Self {
37431 self.inner.fragment_shader_shading_rate_interlock = value as u32;
37432 self
37433 }
37434 #[inline]
37436 pub fn push_next<T: ExtendsPhysicalDeviceFragmentShaderInterlockFeaturesEXT>(
37437 mut self,
37438 next: &'a mut T,
37439 ) -> Self {
37440 unsafe {
37441 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37442 (*next_ptr).p_next = self.inner.p_next as *mut _;
37443 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37444 core::ffi::c_void,
37445 >(next_ptr);
37446 }
37447 self
37448 }
37449}
37450impl<'a> core::ops::Deref
37451for PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder<'a> {
37452 type Target = PhysicalDeviceFragmentShaderInterlockFeaturesEXT;
37453 #[inline]
37454 fn deref(&self) -> &Self::Target {
37455 &self.inner
37456 }
37457}
37458impl<'a> core::ops::DerefMut
37459for PhysicalDeviceFragmentShaderInterlockFeaturesEXTBuilder<'a> {
37460 #[inline]
37461 fn deref_mut(&mut self) -> &mut Self::Target {
37462 &mut self.inner
37463 }
37464}
37465pub struct PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder<'a> {
37467 inner: PhysicalDeviceSeparateDepthStencilLayoutsFeatures,
37468 _marker: core::marker::PhantomData<&'a ()>,
37469}
37470impl PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
37471 #[inline]
37473 pub fn builder<'a>() -> PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder<
37474 'a,
37475 > {
37476 PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder {
37477 inner: PhysicalDeviceSeparateDepthStencilLayoutsFeatures {
37478 s_type: StructureType::from_raw(1000241000i32),
37479 ..Default::default()
37480 },
37481 _marker: core::marker::PhantomData,
37482 }
37483 }
37484}
37485impl<'a> PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder<'a> {
37486 #[inline]
37487 pub fn separate_depth_stencil_layouts(mut self, value: bool) -> Self {
37488 self.inner.separate_depth_stencil_layouts = value as u32;
37489 self
37490 }
37491 #[inline]
37493 pub fn push_next<T: ExtendsPhysicalDeviceSeparateDepthStencilLayoutsFeatures>(
37494 mut self,
37495 next: &'a mut T,
37496 ) -> Self {
37497 unsafe {
37498 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37499 (*next_ptr).p_next = self.inner.p_next as *mut _;
37500 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37501 core::ffi::c_void,
37502 >(next_ptr);
37503 }
37504 self
37505 }
37506}
37507impl<'a> core::ops::Deref
37508for PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder<'a> {
37509 type Target = PhysicalDeviceSeparateDepthStencilLayoutsFeatures;
37510 #[inline]
37511 fn deref(&self) -> &Self::Target {
37512 &self.inner
37513 }
37514}
37515impl<'a> core::ops::DerefMut
37516for PhysicalDeviceSeparateDepthStencilLayoutsFeaturesBuilder<'a> {
37517 #[inline]
37518 fn deref_mut(&mut self) -> &mut Self::Target {
37519 &mut self.inner
37520 }
37521}
37522pub struct AttachmentReferenceStencilLayoutBuilder<'a> {
37524 inner: AttachmentReferenceStencilLayout,
37525 _marker: core::marker::PhantomData<&'a ()>,
37526}
37527impl AttachmentReferenceStencilLayout {
37528 #[inline]
37530 pub fn builder<'a>() -> AttachmentReferenceStencilLayoutBuilder<'a> {
37531 AttachmentReferenceStencilLayoutBuilder {
37532 inner: AttachmentReferenceStencilLayout {
37533 s_type: StructureType::from_raw(1000241001i32),
37534 ..Default::default()
37535 },
37536 _marker: core::marker::PhantomData,
37537 }
37538 }
37539}
37540impl<'a> AttachmentReferenceStencilLayoutBuilder<'a> {
37541 #[inline]
37542 pub fn stencil_layout(mut self, value: ImageLayout) -> Self {
37543 self.inner.stencil_layout = value;
37544 self
37545 }
37546 #[inline]
37548 pub fn push_next<T: ExtendsAttachmentReferenceStencilLayout>(
37549 mut self,
37550 next: &'a mut T,
37551 ) -> Self {
37552 unsafe {
37553 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37554 (*next_ptr).p_next = self.inner.p_next as *mut _;
37555 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37556 core::ffi::c_void,
37557 >(next_ptr);
37558 }
37559 self
37560 }
37561}
37562impl<'a> core::ops::Deref for AttachmentReferenceStencilLayoutBuilder<'a> {
37563 type Target = AttachmentReferenceStencilLayout;
37564 #[inline]
37565 fn deref(&self) -> &Self::Target {
37566 &self.inner
37567 }
37568}
37569impl<'a> core::ops::DerefMut for AttachmentReferenceStencilLayoutBuilder<'a> {
37570 #[inline]
37571 fn deref_mut(&mut self) -> &mut Self::Target {
37572 &mut self.inner
37573 }
37574}
37575pub struct PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder<'a> {
37577 inner: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT,
37578 _marker: core::marker::PhantomData<&'a ()>,
37579}
37580impl PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
37581 #[inline]
37583 pub fn builder<'a>() -> PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder<
37584 'a,
37585 > {
37586 PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder {
37587 inner: PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
37588 s_type: StructureType::from_raw(1000356000i32),
37589 ..Default::default()
37590 },
37591 _marker: core::marker::PhantomData,
37592 }
37593 }
37594}
37595impl<'a> PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder<'a> {
37596 #[inline]
37597 pub fn primitive_topology_list_restart(mut self, value: bool) -> Self {
37598 self.inner.primitive_topology_list_restart = value as u32;
37599 self
37600 }
37601 #[inline]
37602 pub fn primitive_topology_patch_list_restart(mut self, value: bool) -> Self {
37603 self.inner.primitive_topology_patch_list_restart = value as u32;
37604 self
37605 }
37606 #[inline]
37608 pub fn push_next<T: ExtendsPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>(
37609 mut self,
37610 next: &'a mut T,
37611 ) -> Self {
37612 unsafe {
37613 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37614 (*next_ptr).p_next = self.inner.p_next as *mut _;
37615 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37616 core::ffi::c_void,
37617 >(next_ptr);
37618 }
37619 self
37620 }
37621}
37622impl<'a> core::ops::Deref
37623for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder<'a> {
37624 type Target = PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
37625 #[inline]
37626 fn deref(&self) -> &Self::Target {
37627 &self.inner
37628 }
37629}
37630impl<'a> core::ops::DerefMut
37631for PhysicalDevicePrimitiveTopologyListRestartFeaturesEXTBuilder<'a> {
37632 #[inline]
37633 fn deref_mut(&mut self) -> &mut Self::Target {
37634 &mut self.inner
37635 }
37636}
37637pub struct AttachmentDescriptionStencilLayoutBuilder<'a> {
37639 inner: AttachmentDescriptionStencilLayout,
37640 _marker: core::marker::PhantomData<&'a ()>,
37641}
37642impl AttachmentDescriptionStencilLayout {
37643 #[inline]
37645 pub fn builder<'a>() -> AttachmentDescriptionStencilLayoutBuilder<'a> {
37646 AttachmentDescriptionStencilLayoutBuilder {
37647 inner: AttachmentDescriptionStencilLayout {
37648 s_type: StructureType::from_raw(1000241002i32),
37649 ..Default::default()
37650 },
37651 _marker: core::marker::PhantomData,
37652 }
37653 }
37654}
37655impl<'a> AttachmentDescriptionStencilLayoutBuilder<'a> {
37656 #[inline]
37657 pub fn stencil_initial_layout(mut self, value: ImageLayout) -> Self {
37658 self.inner.stencil_initial_layout = value;
37659 self
37660 }
37661 #[inline]
37662 pub fn stencil_final_layout(mut self, value: ImageLayout) -> Self {
37663 self.inner.stencil_final_layout = value;
37664 self
37665 }
37666 #[inline]
37668 pub fn push_next<T: ExtendsAttachmentDescriptionStencilLayout>(
37669 mut self,
37670 next: &'a mut T,
37671 ) -> Self {
37672 unsafe {
37673 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37674 (*next_ptr).p_next = self.inner.p_next as *mut _;
37675 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37676 core::ffi::c_void,
37677 >(next_ptr);
37678 }
37679 self
37680 }
37681}
37682impl<'a> core::ops::Deref for AttachmentDescriptionStencilLayoutBuilder<'a> {
37683 type Target = AttachmentDescriptionStencilLayout;
37684 #[inline]
37685 fn deref(&self) -> &Self::Target {
37686 &self.inner
37687 }
37688}
37689impl<'a> core::ops::DerefMut for AttachmentDescriptionStencilLayoutBuilder<'a> {
37690 #[inline]
37691 fn deref_mut(&mut self) -> &mut Self::Target {
37692 &mut self.inner
37693 }
37694}
37695pub struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder<'a> {
37697 inner: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR,
37698 _marker: core::marker::PhantomData<&'a ()>,
37699}
37700impl PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
37701 #[inline]
37703 pub fn builder<'a>() -> PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder<
37704 'a,
37705 > {
37706 PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder {
37707 inner: PhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
37708 s_type: StructureType::from_raw(1000269000i32),
37709 ..Default::default()
37710 },
37711 _marker: core::marker::PhantomData,
37712 }
37713 }
37714}
37715impl<'a> PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder<'a> {
37716 #[inline]
37717 pub fn pipeline_executable_info(mut self, value: bool) -> Self {
37718 self.inner.pipeline_executable_info = value as u32;
37719 self
37720 }
37721 #[inline]
37723 pub fn push_next<T: ExtendsPhysicalDevicePipelineExecutablePropertiesFeaturesKHR>(
37724 mut self,
37725 next: &'a mut T,
37726 ) -> Self {
37727 unsafe {
37728 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37729 (*next_ptr).p_next = self.inner.p_next as *mut _;
37730 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37731 core::ffi::c_void,
37732 >(next_ptr);
37733 }
37734 self
37735 }
37736}
37737impl<'a> core::ops::Deref
37738for PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder<'a> {
37739 type Target = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
37740 #[inline]
37741 fn deref(&self) -> &Self::Target {
37742 &self.inner
37743 }
37744}
37745impl<'a> core::ops::DerefMut
37746for PhysicalDevicePipelineExecutablePropertiesFeaturesKHRBuilder<'a> {
37747 #[inline]
37748 fn deref_mut(&mut self) -> &mut Self::Target {
37749 &mut self.inner
37750 }
37751}
37752pub struct PipelineInfoKHRBuilder<'a> {
37754 inner: PipelineInfoKHR,
37755 _marker: core::marker::PhantomData<&'a ()>,
37756}
37757impl PipelineInfoKHR {
37758 #[inline]
37760 pub fn builder<'a>() -> PipelineInfoKHRBuilder<'a> {
37761 PipelineInfoKHRBuilder {
37762 inner: PipelineInfoKHR {
37763 s_type: StructureType::from_raw(1000269001i32),
37764 ..Default::default()
37765 },
37766 _marker: core::marker::PhantomData,
37767 }
37768 }
37769}
37770impl<'a> PipelineInfoKHRBuilder<'a> {
37771 #[inline]
37772 pub fn pipeline(mut self, value: Pipeline) -> Self {
37773 self.inner.pipeline = value;
37774 self
37775 }
37776 #[inline]
37778 pub fn push_next<T: ExtendsPipelineInfoKHR>(mut self, next: &'a mut T) -> Self {
37779 unsafe {
37780 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37781 (*next_ptr).p_next = self.inner.p_next as *mut _;
37782 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37783 core::ffi::c_void,
37784 >(next_ptr) as *const _;
37785 }
37786 self
37787 }
37788}
37789impl<'a> core::ops::Deref for PipelineInfoKHRBuilder<'a> {
37790 type Target = PipelineInfoKHR;
37791 #[inline]
37792 fn deref(&self) -> &Self::Target {
37793 &self.inner
37794 }
37795}
37796impl<'a> core::ops::DerefMut for PipelineInfoKHRBuilder<'a> {
37797 #[inline]
37798 fn deref_mut(&mut self) -> &mut Self::Target {
37799 &mut self.inner
37800 }
37801}
37802pub struct PipelineExecutablePropertiesKHRBuilder<'a> {
37804 inner: PipelineExecutablePropertiesKHR,
37805 _marker: core::marker::PhantomData<&'a ()>,
37806}
37807impl PipelineExecutablePropertiesKHR {
37808 #[inline]
37810 pub fn builder<'a>() -> PipelineExecutablePropertiesKHRBuilder<'a> {
37811 PipelineExecutablePropertiesKHRBuilder {
37812 inner: PipelineExecutablePropertiesKHR {
37813 s_type: StructureType::from_raw(1000269002i32),
37814 ..Default::default()
37815 },
37816 _marker: core::marker::PhantomData,
37817 }
37818 }
37819}
37820impl<'a> PipelineExecutablePropertiesKHRBuilder<'a> {
37821 #[inline]
37822 pub fn stages(mut self, value: ShaderStageFlags) -> Self {
37823 self.inner.stages = value;
37824 self
37825 }
37826 #[inline]
37827 pub fn name(
37828 mut self,
37829 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
37830 ) -> Self {
37831 self.inner.name = value;
37832 self
37833 }
37834 #[inline]
37835 pub fn description(
37836 mut self,
37837 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
37838 ) -> Self {
37839 self.inner.description = value;
37840 self
37841 }
37842 #[inline]
37843 pub fn subgroup_size(mut self, value: u32) -> Self {
37844 self.inner.subgroup_size = value;
37845 self
37846 }
37847}
37848impl<'a> core::ops::Deref for PipelineExecutablePropertiesKHRBuilder<'a> {
37849 type Target = PipelineExecutablePropertiesKHR;
37850 #[inline]
37851 fn deref(&self) -> &Self::Target {
37852 &self.inner
37853 }
37854}
37855impl<'a> core::ops::DerefMut for PipelineExecutablePropertiesKHRBuilder<'a> {
37856 #[inline]
37857 fn deref_mut(&mut self) -> &mut Self::Target {
37858 &mut self.inner
37859 }
37860}
37861pub struct PipelineExecutableInfoKHRBuilder<'a> {
37863 inner: PipelineExecutableInfoKHR,
37864 _marker: core::marker::PhantomData<&'a ()>,
37865}
37866impl PipelineExecutableInfoKHR {
37867 #[inline]
37869 pub fn builder<'a>() -> PipelineExecutableInfoKHRBuilder<'a> {
37870 PipelineExecutableInfoKHRBuilder {
37871 inner: PipelineExecutableInfoKHR {
37872 s_type: StructureType::from_raw(1000269003i32),
37873 ..Default::default()
37874 },
37875 _marker: core::marker::PhantomData,
37876 }
37877 }
37878}
37879impl<'a> PipelineExecutableInfoKHRBuilder<'a> {
37880 #[inline]
37881 pub fn pipeline(mut self, value: Pipeline) -> Self {
37882 self.inner.pipeline = value;
37883 self
37884 }
37885 #[inline]
37886 pub fn executable_index(mut self, value: u32) -> Self {
37887 self.inner.executable_index = value;
37888 self
37889 }
37890 #[inline]
37892 pub fn push_next<T: ExtendsPipelineExecutableInfoKHR>(
37893 mut self,
37894 next: &'a mut T,
37895 ) -> Self {
37896 unsafe {
37897 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
37898 (*next_ptr).p_next = self.inner.p_next as *mut _;
37899 self.inner.p_next = <*mut BaseOutStructure>::cast::<
37900 core::ffi::c_void,
37901 >(next_ptr) as *const _;
37902 }
37903 self
37904 }
37905}
37906impl<'a> core::ops::Deref for PipelineExecutableInfoKHRBuilder<'a> {
37907 type Target = PipelineExecutableInfoKHR;
37908 #[inline]
37909 fn deref(&self) -> &Self::Target {
37910 &self.inner
37911 }
37912}
37913impl<'a> core::ops::DerefMut for PipelineExecutableInfoKHRBuilder<'a> {
37914 #[inline]
37915 fn deref_mut(&mut self) -> &mut Self::Target {
37916 &mut self.inner
37917 }
37918}
37919pub struct PipelineExecutableStatisticKHRBuilder<'a> {
37921 inner: PipelineExecutableStatisticKHR,
37922 _marker: core::marker::PhantomData<&'a ()>,
37923}
37924impl PipelineExecutableStatisticKHR {
37925 #[inline]
37927 pub fn builder<'a>() -> PipelineExecutableStatisticKHRBuilder<'a> {
37928 PipelineExecutableStatisticKHRBuilder {
37929 inner: PipelineExecutableStatisticKHR {
37930 s_type: StructureType::from_raw(1000269004i32),
37931 ..Default::default()
37932 },
37933 _marker: core::marker::PhantomData,
37934 }
37935 }
37936}
37937impl<'a> PipelineExecutableStatisticKHRBuilder<'a> {
37938 #[inline]
37939 pub fn name(
37940 mut self,
37941 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
37942 ) -> Self {
37943 self.inner.name = value;
37944 self
37945 }
37946 #[inline]
37947 pub fn description(
37948 mut self,
37949 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
37950 ) -> Self {
37951 self.inner.description = value;
37952 self
37953 }
37954 #[inline]
37955 pub fn format(mut self, value: PipelineExecutableStatisticFormatKHR) -> Self {
37956 self.inner.format = value;
37957 self
37958 }
37959 #[inline]
37960 pub fn value(mut self, value: PipelineExecutableStatisticValueKHR) -> Self {
37961 self.inner.value = value;
37962 self
37963 }
37964}
37965impl<'a> core::ops::Deref for PipelineExecutableStatisticKHRBuilder<'a> {
37966 type Target = PipelineExecutableStatisticKHR;
37967 #[inline]
37968 fn deref(&self) -> &Self::Target {
37969 &self.inner
37970 }
37971}
37972impl<'a> core::ops::DerefMut for PipelineExecutableStatisticKHRBuilder<'a> {
37973 #[inline]
37974 fn deref_mut(&mut self) -> &mut Self::Target {
37975 &mut self.inner
37976 }
37977}
37978pub struct PipelineExecutableInternalRepresentationKHRBuilder<'a> {
37980 inner: PipelineExecutableInternalRepresentationKHR,
37981 _marker: core::marker::PhantomData<&'a ()>,
37982}
37983impl PipelineExecutableInternalRepresentationKHR {
37984 #[inline]
37986 pub fn builder<'a>() -> PipelineExecutableInternalRepresentationKHRBuilder<'a> {
37987 PipelineExecutableInternalRepresentationKHRBuilder {
37988 inner: PipelineExecutableInternalRepresentationKHR {
37989 s_type: StructureType::from_raw(1000269005i32),
37990 ..Default::default()
37991 },
37992 _marker: core::marker::PhantomData,
37993 }
37994 }
37995}
37996impl<'a> PipelineExecutableInternalRepresentationKHRBuilder<'a> {
37997 #[inline]
37998 pub fn name(
37999 mut self,
38000 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
38001 ) -> Self {
38002 self.inner.name = value;
38003 self
38004 }
38005 #[inline]
38006 pub fn description(
38007 mut self,
38008 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
38009 ) -> Self {
38010 self.inner.description = value;
38011 self
38012 }
38013 #[inline]
38014 pub fn is_text(mut self, value: bool) -> Self {
38015 self.inner.is_text = value as u32;
38016 self
38017 }
38018 #[inline]
38019 pub fn data_size(mut self, value: usize) -> Self {
38020 self.inner.data_size = value;
38021 self
38022 }
38023 #[inline]
38024 pub fn data(mut self, slice: &'a mut [core::ffi::c_void]) -> Self {
38025 self.inner.data_size = slice.len();
38026 self.inner.p_data = slice.as_mut_ptr();
38027 self
38028 }
38029}
38030impl<'a> core::ops::Deref for PipelineExecutableInternalRepresentationKHRBuilder<'a> {
38031 type Target = PipelineExecutableInternalRepresentationKHR;
38032 #[inline]
38033 fn deref(&self) -> &Self::Target {
38034 &self.inner
38035 }
38036}
38037impl<'a> core::ops::DerefMut for PipelineExecutableInternalRepresentationKHRBuilder<'a> {
38038 #[inline]
38039 fn deref_mut(&mut self) -> &mut Self::Target {
38040 &mut self.inner
38041 }
38042}
38043pub struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder<'a> {
38045 inner: PhysicalDeviceShaderDemoteToHelperInvocationFeatures,
38046 _marker: core::marker::PhantomData<&'a ()>,
38047}
38048impl PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
38049 #[inline]
38051 pub fn builder<'a>() -> PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder<
38052 'a,
38053 > {
38054 PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder {
38055 inner: PhysicalDeviceShaderDemoteToHelperInvocationFeatures {
38056 s_type: StructureType::from_raw(1000276000i32),
38057 ..Default::default()
38058 },
38059 _marker: core::marker::PhantomData,
38060 }
38061 }
38062}
38063impl<'a> PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder<'a> {
38064 #[inline]
38065 pub fn shader_demote_to_helper_invocation(mut self, value: bool) -> Self {
38066 self.inner.shader_demote_to_helper_invocation = value as u32;
38067 self
38068 }
38069 #[inline]
38071 pub fn push_next<T: ExtendsPhysicalDeviceShaderDemoteToHelperInvocationFeatures>(
38072 mut self,
38073 next: &'a mut T,
38074 ) -> Self {
38075 unsafe {
38076 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38077 (*next_ptr).p_next = self.inner.p_next as *mut _;
38078 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38079 core::ffi::c_void,
38080 >(next_ptr);
38081 }
38082 self
38083 }
38084}
38085impl<'a> core::ops::Deref
38086for PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder<'a> {
38087 type Target = PhysicalDeviceShaderDemoteToHelperInvocationFeatures;
38088 #[inline]
38089 fn deref(&self) -> &Self::Target {
38090 &self.inner
38091 }
38092}
38093impl<'a> core::ops::DerefMut
38094for PhysicalDeviceShaderDemoteToHelperInvocationFeaturesBuilder<'a> {
38095 #[inline]
38096 fn deref_mut(&mut self) -> &mut Self::Target {
38097 &mut self.inner
38098 }
38099}
38100pub struct PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder<'a> {
38102 inner: PhysicalDeviceTexelBufferAlignmentFeaturesEXT,
38103 _marker: core::marker::PhantomData<&'a ()>,
38104}
38105impl PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
38106 #[inline]
38108 pub fn builder<'a>() -> PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder<'a> {
38109 PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder {
38110 inner: PhysicalDeviceTexelBufferAlignmentFeaturesEXT {
38111 s_type: StructureType::from_raw(1000281000i32),
38112 ..Default::default()
38113 },
38114 _marker: core::marker::PhantomData,
38115 }
38116 }
38117}
38118impl<'a> PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder<'a> {
38119 #[inline]
38120 pub fn texel_buffer_alignment(mut self, value: bool) -> Self {
38121 self.inner.texel_buffer_alignment = value as u32;
38122 self
38123 }
38124 #[inline]
38126 pub fn push_next<T: ExtendsPhysicalDeviceTexelBufferAlignmentFeaturesEXT>(
38127 mut self,
38128 next: &'a mut T,
38129 ) -> Self {
38130 unsafe {
38131 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38132 (*next_ptr).p_next = self.inner.p_next as *mut _;
38133 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38134 core::ffi::c_void,
38135 >(next_ptr);
38136 }
38137 self
38138 }
38139}
38140impl<'a> core::ops::Deref for PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder<'a> {
38141 type Target = PhysicalDeviceTexelBufferAlignmentFeaturesEXT;
38142 #[inline]
38143 fn deref(&self) -> &Self::Target {
38144 &self.inner
38145 }
38146}
38147impl<'a> core::ops::DerefMut
38148for PhysicalDeviceTexelBufferAlignmentFeaturesEXTBuilder<'a> {
38149 #[inline]
38150 fn deref_mut(&mut self) -> &mut Self::Target {
38151 &mut self.inner
38152 }
38153}
38154pub struct PhysicalDeviceTexelBufferAlignmentPropertiesBuilder<'a> {
38156 inner: PhysicalDeviceTexelBufferAlignmentProperties,
38157 _marker: core::marker::PhantomData<&'a ()>,
38158}
38159impl PhysicalDeviceTexelBufferAlignmentProperties {
38160 #[inline]
38162 pub fn builder<'a>() -> PhysicalDeviceTexelBufferAlignmentPropertiesBuilder<'a> {
38163 PhysicalDeviceTexelBufferAlignmentPropertiesBuilder {
38164 inner: PhysicalDeviceTexelBufferAlignmentProperties {
38165 s_type: StructureType::from_raw(1000281001i32),
38166 ..Default::default()
38167 },
38168 _marker: core::marker::PhantomData,
38169 }
38170 }
38171}
38172impl<'a> PhysicalDeviceTexelBufferAlignmentPropertiesBuilder<'a> {
38173 #[inline]
38174 pub fn storage_texel_buffer_offset_alignment_bytes(mut self, value: u64) -> Self {
38175 self.inner.storage_texel_buffer_offset_alignment_bytes = value;
38176 self
38177 }
38178 #[inline]
38179 pub fn storage_texel_buffer_offset_single_texel_alignment(
38180 mut self,
38181 value: bool,
38182 ) -> Self {
38183 self.inner.storage_texel_buffer_offset_single_texel_alignment = value as u32;
38184 self
38185 }
38186 #[inline]
38187 pub fn uniform_texel_buffer_offset_alignment_bytes(mut self, value: u64) -> Self {
38188 self.inner.uniform_texel_buffer_offset_alignment_bytes = value;
38189 self
38190 }
38191 #[inline]
38192 pub fn uniform_texel_buffer_offset_single_texel_alignment(
38193 mut self,
38194 value: bool,
38195 ) -> Self {
38196 self.inner.uniform_texel_buffer_offset_single_texel_alignment = value as u32;
38197 self
38198 }
38199}
38200impl<'a> core::ops::Deref for PhysicalDeviceTexelBufferAlignmentPropertiesBuilder<'a> {
38201 type Target = PhysicalDeviceTexelBufferAlignmentProperties;
38202 #[inline]
38203 fn deref(&self) -> &Self::Target {
38204 &self.inner
38205 }
38206}
38207impl<'a> core::ops::DerefMut
38208for PhysicalDeviceTexelBufferAlignmentPropertiesBuilder<'a> {
38209 #[inline]
38210 fn deref_mut(&mut self) -> &mut Self::Target {
38211 &mut self.inner
38212 }
38213}
38214pub struct PhysicalDeviceSubgroupSizeControlFeaturesBuilder<'a> {
38216 inner: PhysicalDeviceSubgroupSizeControlFeatures,
38217 _marker: core::marker::PhantomData<&'a ()>,
38218}
38219impl PhysicalDeviceSubgroupSizeControlFeatures {
38220 #[inline]
38222 pub fn builder<'a>() -> PhysicalDeviceSubgroupSizeControlFeaturesBuilder<'a> {
38223 PhysicalDeviceSubgroupSizeControlFeaturesBuilder {
38224 inner: PhysicalDeviceSubgroupSizeControlFeatures {
38225 s_type: StructureType::from_raw(1000225002i32),
38226 ..Default::default()
38227 },
38228 _marker: core::marker::PhantomData,
38229 }
38230 }
38231}
38232impl<'a> PhysicalDeviceSubgroupSizeControlFeaturesBuilder<'a> {
38233 #[inline]
38234 pub fn subgroup_size_control(mut self, value: bool) -> Self {
38235 self.inner.subgroup_size_control = value as u32;
38236 self
38237 }
38238 #[inline]
38239 pub fn compute_full_subgroups(mut self, value: bool) -> Self {
38240 self.inner.compute_full_subgroups = value as u32;
38241 self
38242 }
38243 #[inline]
38245 pub fn push_next<T: ExtendsPhysicalDeviceSubgroupSizeControlFeatures>(
38246 mut self,
38247 next: &'a mut T,
38248 ) -> Self {
38249 unsafe {
38250 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38251 (*next_ptr).p_next = self.inner.p_next as *mut _;
38252 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38253 core::ffi::c_void,
38254 >(next_ptr);
38255 }
38256 self
38257 }
38258}
38259impl<'a> core::ops::Deref for PhysicalDeviceSubgroupSizeControlFeaturesBuilder<'a> {
38260 type Target = PhysicalDeviceSubgroupSizeControlFeatures;
38261 #[inline]
38262 fn deref(&self) -> &Self::Target {
38263 &self.inner
38264 }
38265}
38266impl<'a> core::ops::DerefMut for PhysicalDeviceSubgroupSizeControlFeaturesBuilder<'a> {
38267 #[inline]
38268 fn deref_mut(&mut self) -> &mut Self::Target {
38269 &mut self.inner
38270 }
38271}
38272pub struct PhysicalDeviceSubgroupSizeControlPropertiesBuilder<'a> {
38274 inner: PhysicalDeviceSubgroupSizeControlProperties,
38275 _marker: core::marker::PhantomData<&'a ()>,
38276}
38277impl PhysicalDeviceSubgroupSizeControlProperties {
38278 #[inline]
38280 pub fn builder<'a>() -> PhysicalDeviceSubgroupSizeControlPropertiesBuilder<'a> {
38281 PhysicalDeviceSubgroupSizeControlPropertiesBuilder {
38282 inner: PhysicalDeviceSubgroupSizeControlProperties {
38283 s_type: StructureType::from_raw(1000225000i32),
38284 ..Default::default()
38285 },
38286 _marker: core::marker::PhantomData,
38287 }
38288 }
38289}
38290impl<'a> PhysicalDeviceSubgroupSizeControlPropertiesBuilder<'a> {
38291 #[inline]
38292 pub fn min_subgroup_size(mut self, value: u32) -> Self {
38293 self.inner.min_subgroup_size = value;
38294 self
38295 }
38296 #[inline]
38297 pub fn max_subgroup_size(mut self, value: u32) -> Self {
38298 self.inner.max_subgroup_size = value;
38299 self
38300 }
38301 #[inline]
38302 pub fn max_compute_workgroup_subgroups(mut self, value: u32) -> Self {
38303 self.inner.max_compute_workgroup_subgroups = value;
38304 self
38305 }
38306 #[inline]
38307 pub fn required_subgroup_size_stages(mut self, value: ShaderStageFlags) -> Self {
38308 self.inner.required_subgroup_size_stages = value;
38309 self
38310 }
38311}
38312impl<'a> core::ops::Deref for PhysicalDeviceSubgroupSizeControlPropertiesBuilder<'a> {
38313 type Target = PhysicalDeviceSubgroupSizeControlProperties;
38314 #[inline]
38315 fn deref(&self) -> &Self::Target {
38316 &self.inner
38317 }
38318}
38319impl<'a> core::ops::DerefMut for PhysicalDeviceSubgroupSizeControlPropertiesBuilder<'a> {
38320 #[inline]
38321 fn deref_mut(&mut self) -> &mut Self::Target {
38322 &mut self.inner
38323 }
38324}
38325pub struct PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> {
38327 inner: PipelineShaderStageRequiredSubgroupSizeCreateInfo,
38328 _marker: core::marker::PhantomData<&'a ()>,
38329}
38330impl PipelineShaderStageRequiredSubgroupSizeCreateInfo {
38331 #[inline]
38333 pub fn builder<'a>() -> PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<
38334 'a,
38335 > {
38336 PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder {
38337 inner: PipelineShaderStageRequiredSubgroupSizeCreateInfo {
38338 s_type: StructureType::from_raw(1000225001i32),
38339 ..Default::default()
38340 },
38341 _marker: core::marker::PhantomData,
38342 }
38343 }
38344}
38345impl<'a> PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> {
38346 #[inline]
38347 pub fn required_subgroup_size(mut self, value: u32) -> Self {
38348 self.inner.required_subgroup_size = value;
38349 self
38350 }
38351 #[inline]
38353 pub fn push_next<T: ExtendsPipelineShaderStageRequiredSubgroupSizeCreateInfo>(
38354 mut self,
38355 next: &'a mut T,
38356 ) -> Self {
38357 unsafe {
38358 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38359 (*next_ptr).p_next = self.inner.p_next as *mut _;
38360 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38361 core::ffi::c_void,
38362 >(next_ptr) as *const _;
38363 }
38364 self
38365 }
38366}
38367impl<'a> core::ops::Deref
38368for PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> {
38369 type Target = PipelineShaderStageRequiredSubgroupSizeCreateInfo;
38370 #[inline]
38371 fn deref(&self) -> &Self::Target {
38372 &self.inner
38373 }
38374}
38375impl<'a> core::ops::DerefMut
38376for PipelineShaderStageRequiredSubgroupSizeCreateInfoBuilder<'a> {
38377 #[inline]
38378 fn deref_mut(&mut self) -> &mut Self::Target {
38379 &mut self.inner
38380 }
38381}
38382pub struct SubpassShadingPipelineCreateInfoHUAWEIBuilder<'a> {
38384 inner: SubpassShadingPipelineCreateInfoHUAWEI,
38385 _marker: core::marker::PhantomData<&'a ()>,
38386}
38387impl SubpassShadingPipelineCreateInfoHUAWEI {
38388 #[inline]
38390 pub fn builder<'a>() -> SubpassShadingPipelineCreateInfoHUAWEIBuilder<'a> {
38391 SubpassShadingPipelineCreateInfoHUAWEIBuilder {
38392 inner: SubpassShadingPipelineCreateInfoHUAWEI {
38393 s_type: StructureType::from_raw(1000369000i32),
38394 ..Default::default()
38395 },
38396 _marker: core::marker::PhantomData,
38397 }
38398 }
38399}
38400impl<'a> SubpassShadingPipelineCreateInfoHUAWEIBuilder<'a> {
38401 #[inline]
38402 pub fn render_pass(mut self, value: RenderPass) -> Self {
38403 self.inner.render_pass = value;
38404 self
38405 }
38406 #[inline]
38407 pub fn subpass(mut self, value: u32) -> Self {
38408 self.inner.subpass = value;
38409 self
38410 }
38411 #[inline]
38413 pub fn push_next<T: ExtendsSubpassShadingPipelineCreateInfoHUAWEI>(
38414 mut self,
38415 next: &'a mut T,
38416 ) -> Self {
38417 unsafe {
38418 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38419 (*next_ptr).p_next = self.inner.p_next as *mut _;
38420 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38421 core::ffi::c_void,
38422 >(next_ptr);
38423 }
38424 self
38425 }
38426}
38427impl<'a> core::ops::Deref for SubpassShadingPipelineCreateInfoHUAWEIBuilder<'a> {
38428 type Target = SubpassShadingPipelineCreateInfoHUAWEI;
38429 #[inline]
38430 fn deref(&self) -> &Self::Target {
38431 &self.inner
38432 }
38433}
38434impl<'a> core::ops::DerefMut for SubpassShadingPipelineCreateInfoHUAWEIBuilder<'a> {
38435 #[inline]
38436 fn deref_mut(&mut self) -> &mut Self::Target {
38437 &mut self.inner
38438 }
38439}
38440pub struct PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder<'a> {
38442 inner: PhysicalDeviceSubpassShadingPropertiesHUAWEI,
38443 _marker: core::marker::PhantomData<&'a ()>,
38444}
38445impl PhysicalDeviceSubpassShadingPropertiesHUAWEI {
38446 #[inline]
38448 pub fn builder<'a>() -> PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder<'a> {
38449 PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder {
38450 inner: PhysicalDeviceSubpassShadingPropertiesHUAWEI {
38451 s_type: StructureType::from_raw(1000369002i32),
38452 ..Default::default()
38453 },
38454 _marker: core::marker::PhantomData,
38455 }
38456 }
38457}
38458impl<'a> PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder<'a> {
38459 #[inline]
38460 pub fn max_subpass_shading_workgroup_size_aspect_ratio(
38461 mut self,
38462 value: u32,
38463 ) -> Self {
38464 self.inner.max_subpass_shading_workgroup_size_aspect_ratio = value;
38465 self
38466 }
38467}
38468impl<'a> core::ops::Deref for PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder<'a> {
38469 type Target = PhysicalDeviceSubpassShadingPropertiesHUAWEI;
38470 #[inline]
38471 fn deref(&self) -> &Self::Target {
38472 &self.inner
38473 }
38474}
38475impl<'a> core::ops::DerefMut
38476for PhysicalDeviceSubpassShadingPropertiesHUAWEIBuilder<'a> {
38477 #[inline]
38478 fn deref_mut(&mut self) -> &mut Self::Target {
38479 &mut self.inner
38480 }
38481}
38482pub struct PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder<'a> {
38484 inner: PhysicalDeviceClusterCullingShaderPropertiesHUAWEI,
38485 _marker: core::marker::PhantomData<&'a ()>,
38486}
38487impl PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
38488 #[inline]
38490 pub fn builder<'a>() -> PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder<
38491 'a,
38492 > {
38493 PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder {
38494 inner: PhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
38495 s_type: StructureType::from_raw(1000404001i32),
38496 ..Default::default()
38497 },
38498 _marker: core::marker::PhantomData,
38499 }
38500 }
38501}
38502impl<'a> PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder<'a> {
38503 #[inline]
38504 pub fn max_work_group_count(mut self, value: [u32; 3usize]) -> Self {
38505 self.inner.max_work_group_count = value;
38506 self
38507 }
38508 #[inline]
38509 pub fn max_work_group_size(mut self, value: [u32; 3usize]) -> Self {
38510 self.inner.max_work_group_size = value;
38511 self
38512 }
38513 #[inline]
38514 pub fn max_output_cluster_count(mut self, value: u32) -> Self {
38515 self.inner.max_output_cluster_count = value;
38516 self
38517 }
38518 #[inline]
38519 pub fn indirect_buffer_offset_alignment(mut self, value: u64) -> Self {
38520 self.inner.indirect_buffer_offset_alignment = value;
38521 self
38522 }
38523}
38524impl<'a> core::ops::Deref
38525for PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder<'a> {
38526 type Target = PhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
38527 #[inline]
38528 fn deref(&self) -> &Self::Target {
38529 &self.inner
38530 }
38531}
38532impl<'a> core::ops::DerefMut
38533for PhysicalDeviceClusterCullingShaderPropertiesHUAWEIBuilder<'a> {
38534 #[inline]
38535 fn deref_mut(&mut self) -> &mut Self::Target {
38536 &mut self.inner
38537 }
38538}
38539pub struct MemoryOpaqueCaptureAddressAllocateInfoBuilder<'a> {
38541 inner: MemoryOpaqueCaptureAddressAllocateInfo,
38542 _marker: core::marker::PhantomData<&'a ()>,
38543}
38544impl MemoryOpaqueCaptureAddressAllocateInfo {
38545 #[inline]
38547 pub fn builder<'a>() -> MemoryOpaqueCaptureAddressAllocateInfoBuilder<'a> {
38548 MemoryOpaqueCaptureAddressAllocateInfoBuilder {
38549 inner: MemoryOpaqueCaptureAddressAllocateInfo {
38550 s_type: StructureType::from_raw(1000257003i32),
38551 ..Default::default()
38552 },
38553 _marker: core::marker::PhantomData,
38554 }
38555 }
38556}
38557impl<'a> MemoryOpaqueCaptureAddressAllocateInfoBuilder<'a> {
38558 #[inline]
38559 pub fn opaque_capture_address(mut self, value: u64) -> Self {
38560 self.inner.opaque_capture_address = value;
38561 self
38562 }
38563 #[inline]
38565 pub fn push_next<T: ExtendsMemoryOpaqueCaptureAddressAllocateInfo>(
38566 mut self,
38567 next: &'a mut T,
38568 ) -> Self {
38569 unsafe {
38570 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38571 (*next_ptr).p_next = self.inner.p_next as *mut _;
38572 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38573 core::ffi::c_void,
38574 >(next_ptr) as *const _;
38575 }
38576 self
38577 }
38578}
38579impl<'a> core::ops::Deref for MemoryOpaqueCaptureAddressAllocateInfoBuilder<'a> {
38580 type Target = MemoryOpaqueCaptureAddressAllocateInfo;
38581 #[inline]
38582 fn deref(&self) -> &Self::Target {
38583 &self.inner
38584 }
38585}
38586impl<'a> core::ops::DerefMut for MemoryOpaqueCaptureAddressAllocateInfoBuilder<'a> {
38587 #[inline]
38588 fn deref_mut(&mut self) -> &mut Self::Target {
38589 &mut self.inner
38590 }
38591}
38592pub struct DeviceMemoryOpaqueCaptureAddressInfoBuilder<'a> {
38594 inner: DeviceMemoryOpaqueCaptureAddressInfo,
38595 _marker: core::marker::PhantomData<&'a ()>,
38596}
38597impl DeviceMemoryOpaqueCaptureAddressInfo {
38598 #[inline]
38600 pub fn builder<'a>() -> DeviceMemoryOpaqueCaptureAddressInfoBuilder<'a> {
38601 DeviceMemoryOpaqueCaptureAddressInfoBuilder {
38602 inner: DeviceMemoryOpaqueCaptureAddressInfo {
38603 s_type: StructureType::from_raw(1000257004i32),
38604 ..Default::default()
38605 },
38606 _marker: core::marker::PhantomData,
38607 }
38608 }
38609}
38610impl<'a> DeviceMemoryOpaqueCaptureAddressInfoBuilder<'a> {
38611 #[inline]
38612 pub fn memory(mut self, value: DeviceMemory) -> Self {
38613 self.inner.memory = value;
38614 self
38615 }
38616 #[inline]
38618 pub fn push_next<T: ExtendsDeviceMemoryOpaqueCaptureAddressInfo>(
38619 mut self,
38620 next: &'a mut T,
38621 ) -> Self {
38622 unsafe {
38623 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38624 (*next_ptr).p_next = self.inner.p_next as *mut _;
38625 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38626 core::ffi::c_void,
38627 >(next_ptr) as *const _;
38628 }
38629 self
38630 }
38631}
38632impl<'a> core::ops::Deref for DeviceMemoryOpaqueCaptureAddressInfoBuilder<'a> {
38633 type Target = DeviceMemoryOpaqueCaptureAddressInfo;
38634 #[inline]
38635 fn deref(&self) -> &Self::Target {
38636 &self.inner
38637 }
38638}
38639impl<'a> core::ops::DerefMut for DeviceMemoryOpaqueCaptureAddressInfoBuilder<'a> {
38640 #[inline]
38641 fn deref_mut(&mut self) -> &mut Self::Target {
38642 &mut self.inner
38643 }
38644}
38645pub struct PhysicalDeviceLineRasterizationFeaturesBuilder<'a> {
38647 inner: PhysicalDeviceLineRasterizationFeatures,
38648 _marker: core::marker::PhantomData<&'a ()>,
38649}
38650impl PhysicalDeviceLineRasterizationFeatures {
38651 #[inline]
38653 pub fn builder<'a>() -> PhysicalDeviceLineRasterizationFeaturesBuilder<'a> {
38654 PhysicalDeviceLineRasterizationFeaturesBuilder {
38655 inner: PhysicalDeviceLineRasterizationFeatures {
38656 s_type: StructureType::from_raw(1000259000i32),
38657 ..Default::default()
38658 },
38659 _marker: core::marker::PhantomData,
38660 }
38661 }
38662}
38663impl<'a> PhysicalDeviceLineRasterizationFeaturesBuilder<'a> {
38664 #[inline]
38665 pub fn rectangular_lines(mut self, value: bool) -> Self {
38666 self.inner.rectangular_lines = value as u32;
38667 self
38668 }
38669 #[inline]
38670 pub fn bresenham_lines(mut self, value: bool) -> Self {
38671 self.inner.bresenham_lines = value as u32;
38672 self
38673 }
38674 #[inline]
38675 pub fn smooth_lines(mut self, value: bool) -> Self {
38676 self.inner.smooth_lines = value as u32;
38677 self
38678 }
38679 #[inline]
38680 pub fn stippled_rectangular_lines(mut self, value: bool) -> Self {
38681 self.inner.stippled_rectangular_lines = value as u32;
38682 self
38683 }
38684 #[inline]
38685 pub fn stippled_bresenham_lines(mut self, value: bool) -> Self {
38686 self.inner.stippled_bresenham_lines = value as u32;
38687 self
38688 }
38689 #[inline]
38690 pub fn stippled_smooth_lines(mut self, value: bool) -> Self {
38691 self.inner.stippled_smooth_lines = value as u32;
38692 self
38693 }
38694 #[inline]
38696 pub fn push_next<T: ExtendsPhysicalDeviceLineRasterizationFeatures>(
38697 mut self,
38698 next: &'a mut T,
38699 ) -> Self {
38700 unsafe {
38701 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38702 (*next_ptr).p_next = self.inner.p_next as *mut _;
38703 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38704 core::ffi::c_void,
38705 >(next_ptr);
38706 }
38707 self
38708 }
38709}
38710impl<'a> core::ops::Deref for PhysicalDeviceLineRasterizationFeaturesBuilder<'a> {
38711 type Target = PhysicalDeviceLineRasterizationFeatures;
38712 #[inline]
38713 fn deref(&self) -> &Self::Target {
38714 &self.inner
38715 }
38716}
38717impl<'a> core::ops::DerefMut for PhysicalDeviceLineRasterizationFeaturesBuilder<'a> {
38718 #[inline]
38719 fn deref_mut(&mut self) -> &mut Self::Target {
38720 &mut self.inner
38721 }
38722}
38723pub struct PhysicalDeviceLineRasterizationPropertiesBuilder<'a> {
38725 inner: PhysicalDeviceLineRasterizationProperties,
38726 _marker: core::marker::PhantomData<&'a ()>,
38727}
38728impl PhysicalDeviceLineRasterizationProperties {
38729 #[inline]
38731 pub fn builder<'a>() -> PhysicalDeviceLineRasterizationPropertiesBuilder<'a> {
38732 PhysicalDeviceLineRasterizationPropertiesBuilder {
38733 inner: PhysicalDeviceLineRasterizationProperties {
38734 s_type: StructureType::from_raw(1000259002i32),
38735 ..Default::default()
38736 },
38737 _marker: core::marker::PhantomData,
38738 }
38739 }
38740}
38741impl<'a> PhysicalDeviceLineRasterizationPropertiesBuilder<'a> {
38742 #[inline]
38743 pub fn line_sub_pixel_precision_bits(mut self, value: u32) -> Self {
38744 self.inner.line_sub_pixel_precision_bits = value;
38745 self
38746 }
38747}
38748impl<'a> core::ops::Deref for PhysicalDeviceLineRasterizationPropertiesBuilder<'a> {
38749 type Target = PhysicalDeviceLineRasterizationProperties;
38750 #[inline]
38751 fn deref(&self) -> &Self::Target {
38752 &self.inner
38753 }
38754}
38755impl<'a> core::ops::DerefMut for PhysicalDeviceLineRasterizationPropertiesBuilder<'a> {
38756 #[inline]
38757 fn deref_mut(&mut self) -> &mut Self::Target {
38758 &mut self.inner
38759 }
38760}
38761pub struct PipelineRasterizationLineStateCreateInfoBuilder<'a> {
38763 inner: PipelineRasterizationLineStateCreateInfo,
38764 _marker: core::marker::PhantomData<&'a ()>,
38765}
38766impl PipelineRasterizationLineStateCreateInfo {
38767 #[inline]
38769 pub fn builder<'a>() -> PipelineRasterizationLineStateCreateInfoBuilder<'a> {
38770 PipelineRasterizationLineStateCreateInfoBuilder {
38771 inner: PipelineRasterizationLineStateCreateInfo {
38772 s_type: StructureType::from_raw(1000259001i32),
38773 ..Default::default()
38774 },
38775 _marker: core::marker::PhantomData,
38776 }
38777 }
38778}
38779impl<'a> PipelineRasterizationLineStateCreateInfoBuilder<'a> {
38780 #[inline]
38781 pub fn line_rasterization_mode(mut self, value: LineRasterizationMode) -> Self {
38782 self.inner.line_rasterization_mode = value;
38783 self
38784 }
38785 #[inline]
38786 pub fn stippled_line_enable(mut self, value: bool) -> Self {
38787 self.inner.stippled_line_enable = value as u32;
38788 self
38789 }
38790 #[inline]
38791 pub fn line_stipple_factor(mut self, value: u32) -> Self {
38792 self.inner.line_stipple_factor = value;
38793 self
38794 }
38795 #[inline]
38796 pub fn line_stipple_pattern(mut self, value: u16) -> Self {
38797 self.inner.line_stipple_pattern = value;
38798 self
38799 }
38800 #[inline]
38802 pub fn push_next<T: ExtendsPipelineRasterizationLineStateCreateInfo>(
38803 mut self,
38804 next: &'a mut T,
38805 ) -> Self {
38806 unsafe {
38807 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38808 (*next_ptr).p_next = self.inner.p_next as *mut _;
38809 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38810 core::ffi::c_void,
38811 >(next_ptr) as *const _;
38812 }
38813 self
38814 }
38815}
38816impl<'a> core::ops::Deref for PipelineRasterizationLineStateCreateInfoBuilder<'a> {
38817 type Target = PipelineRasterizationLineStateCreateInfo;
38818 #[inline]
38819 fn deref(&self) -> &Self::Target {
38820 &self.inner
38821 }
38822}
38823impl<'a> core::ops::DerefMut for PipelineRasterizationLineStateCreateInfoBuilder<'a> {
38824 #[inline]
38825 fn deref_mut(&mut self) -> &mut Self::Target {
38826 &mut self.inner
38827 }
38828}
38829pub struct PhysicalDevicePipelineCreationCacheControlFeaturesBuilder<'a> {
38831 inner: PhysicalDevicePipelineCreationCacheControlFeatures,
38832 _marker: core::marker::PhantomData<&'a ()>,
38833}
38834impl PhysicalDevicePipelineCreationCacheControlFeatures {
38835 #[inline]
38837 pub fn builder<'a>() -> PhysicalDevicePipelineCreationCacheControlFeaturesBuilder<
38838 'a,
38839 > {
38840 PhysicalDevicePipelineCreationCacheControlFeaturesBuilder {
38841 inner: PhysicalDevicePipelineCreationCacheControlFeatures {
38842 s_type: StructureType::from_raw(1000297000i32),
38843 ..Default::default()
38844 },
38845 _marker: core::marker::PhantomData,
38846 }
38847 }
38848}
38849impl<'a> PhysicalDevicePipelineCreationCacheControlFeaturesBuilder<'a> {
38850 #[inline]
38851 pub fn pipeline_creation_cache_control(mut self, value: bool) -> Self {
38852 self.inner.pipeline_creation_cache_control = value as u32;
38853 self
38854 }
38855 #[inline]
38857 pub fn push_next<T: ExtendsPhysicalDevicePipelineCreationCacheControlFeatures>(
38858 mut self,
38859 next: &'a mut T,
38860 ) -> Self {
38861 unsafe {
38862 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38863 (*next_ptr).p_next = self.inner.p_next as *mut _;
38864 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38865 core::ffi::c_void,
38866 >(next_ptr);
38867 }
38868 self
38869 }
38870}
38871impl<'a> core::ops::Deref
38872for PhysicalDevicePipelineCreationCacheControlFeaturesBuilder<'a> {
38873 type Target = PhysicalDevicePipelineCreationCacheControlFeatures;
38874 #[inline]
38875 fn deref(&self) -> &Self::Target {
38876 &self.inner
38877 }
38878}
38879impl<'a> core::ops::DerefMut
38880for PhysicalDevicePipelineCreationCacheControlFeaturesBuilder<'a> {
38881 #[inline]
38882 fn deref_mut(&mut self) -> &mut Self::Target {
38883 &mut self.inner
38884 }
38885}
38886pub struct PhysicalDeviceVulkan11FeaturesBuilder<'a> {
38888 inner: PhysicalDeviceVulkan11Features,
38889 _marker: core::marker::PhantomData<&'a ()>,
38890}
38891impl PhysicalDeviceVulkan11Features {
38892 #[inline]
38894 pub fn builder<'a>() -> PhysicalDeviceVulkan11FeaturesBuilder<'a> {
38895 PhysicalDeviceVulkan11FeaturesBuilder {
38896 inner: PhysicalDeviceVulkan11Features {
38897 s_type: StructureType::from_raw(49i32),
38898 ..Default::default()
38899 },
38900 _marker: core::marker::PhantomData,
38901 }
38902 }
38903}
38904impl<'a> PhysicalDeviceVulkan11FeaturesBuilder<'a> {
38905 #[inline]
38906 pub fn storage_buffer16_bit_access(mut self, value: bool) -> Self {
38907 self.inner.storage_buffer16_bit_access = value as u32;
38908 self
38909 }
38910 #[inline]
38911 pub fn uniform_and_storage_buffer16_bit_access(mut self, value: bool) -> Self {
38912 self.inner.uniform_and_storage_buffer16_bit_access = value as u32;
38913 self
38914 }
38915 #[inline]
38916 pub fn storage_push_constant16(mut self, value: bool) -> Self {
38917 self.inner.storage_push_constant16 = value as u32;
38918 self
38919 }
38920 #[inline]
38921 pub fn storage_input_output16(mut self, value: bool) -> Self {
38922 self.inner.storage_input_output16 = value as u32;
38923 self
38924 }
38925 #[inline]
38926 pub fn multiview(mut self, value: bool) -> Self {
38927 self.inner.multiview = value as u32;
38928 self
38929 }
38930 #[inline]
38931 pub fn multiview_geometry_shader(mut self, value: bool) -> Self {
38932 self.inner.multiview_geometry_shader = value as u32;
38933 self
38934 }
38935 #[inline]
38936 pub fn multiview_tessellation_shader(mut self, value: bool) -> Self {
38937 self.inner.multiview_tessellation_shader = value as u32;
38938 self
38939 }
38940 #[inline]
38941 pub fn variable_pointers_storage_buffer(mut self, value: bool) -> Self {
38942 self.inner.variable_pointers_storage_buffer = value as u32;
38943 self
38944 }
38945 #[inline]
38946 pub fn variable_pointers(mut self, value: bool) -> Self {
38947 self.inner.variable_pointers = value as u32;
38948 self
38949 }
38950 #[inline]
38951 pub fn protected_memory(mut self, value: bool) -> Self {
38952 self.inner.protected_memory = value as u32;
38953 self
38954 }
38955 #[inline]
38956 pub fn sampler_ycbcr_conversion(mut self, value: bool) -> Self {
38957 self.inner.sampler_ycbcr_conversion = value as u32;
38958 self
38959 }
38960 #[inline]
38961 pub fn shader_draw_parameters(mut self, value: bool) -> Self {
38962 self.inner.shader_draw_parameters = value as u32;
38963 self
38964 }
38965 #[inline]
38967 pub fn push_next<T: ExtendsPhysicalDeviceVulkan11Features>(
38968 mut self,
38969 next: &'a mut T,
38970 ) -> Self {
38971 unsafe {
38972 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
38973 (*next_ptr).p_next = self.inner.p_next as *mut _;
38974 self.inner.p_next = <*mut BaseOutStructure>::cast::<
38975 core::ffi::c_void,
38976 >(next_ptr);
38977 }
38978 self
38979 }
38980}
38981impl<'a> core::ops::Deref for PhysicalDeviceVulkan11FeaturesBuilder<'a> {
38982 type Target = PhysicalDeviceVulkan11Features;
38983 #[inline]
38984 fn deref(&self) -> &Self::Target {
38985 &self.inner
38986 }
38987}
38988impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan11FeaturesBuilder<'a> {
38989 #[inline]
38990 fn deref_mut(&mut self) -> &mut Self::Target {
38991 &mut self.inner
38992 }
38993}
38994pub struct PhysicalDeviceVulkan11PropertiesBuilder<'a> {
38996 inner: PhysicalDeviceVulkan11Properties,
38997 _marker: core::marker::PhantomData<&'a ()>,
38998}
38999impl PhysicalDeviceVulkan11Properties {
39000 #[inline]
39002 pub fn builder<'a>() -> PhysicalDeviceVulkan11PropertiesBuilder<'a> {
39003 PhysicalDeviceVulkan11PropertiesBuilder {
39004 inner: PhysicalDeviceVulkan11Properties {
39005 s_type: StructureType::from_raw(50i32),
39006 ..Default::default()
39007 },
39008 _marker: core::marker::PhantomData,
39009 }
39010 }
39011}
39012impl<'a> PhysicalDeviceVulkan11PropertiesBuilder<'a> {
39013 #[inline]
39014 pub fn device_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
39015 self.inner.device_uuid = value;
39016 self
39017 }
39018 #[inline]
39019 pub fn driver_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
39020 self.inner.driver_uuid = value;
39021 self
39022 }
39023 #[inline]
39024 pub fn device_luid(mut self, value: [u8; LUID_SIZE as usize]) -> Self {
39025 self.inner.device_luid = value;
39026 self
39027 }
39028 #[inline]
39029 pub fn device_node_mask(mut self, value: u32) -> Self {
39030 self.inner.device_node_mask = value;
39031 self
39032 }
39033 #[inline]
39034 pub fn device_luid_valid(mut self, value: bool) -> Self {
39035 self.inner.device_luid_valid = value as u32;
39036 self
39037 }
39038 #[inline]
39039 pub fn subgroup_size(mut self, value: u32) -> Self {
39040 self.inner.subgroup_size = value;
39041 self
39042 }
39043 #[inline]
39044 pub fn subgroup_supported_stages(mut self, value: ShaderStageFlags) -> Self {
39045 self.inner.subgroup_supported_stages = value;
39046 self
39047 }
39048 #[inline]
39049 pub fn subgroup_supported_operations(mut self, value: SubgroupFeatureFlags) -> Self {
39050 self.inner.subgroup_supported_operations = value;
39051 self
39052 }
39053 #[inline]
39054 pub fn subgroup_quad_operations_in_all_stages(mut self, value: bool) -> Self {
39055 self.inner.subgroup_quad_operations_in_all_stages = value as u32;
39056 self
39057 }
39058 #[inline]
39059 pub fn point_clipping_behavior(mut self, value: PointClippingBehavior) -> Self {
39060 self.inner.point_clipping_behavior = value;
39061 self
39062 }
39063 #[inline]
39064 pub fn max_multiview_view_count(mut self, value: u32) -> Self {
39065 self.inner.max_multiview_view_count = value;
39066 self
39067 }
39068 #[inline]
39069 pub fn max_multiview_instance_index(mut self, value: u32) -> Self {
39070 self.inner.max_multiview_instance_index = value;
39071 self
39072 }
39073 #[inline]
39074 pub fn protected_no_fault(mut self, value: bool) -> Self {
39075 self.inner.protected_no_fault = value as u32;
39076 self
39077 }
39078 #[inline]
39079 pub fn max_per_set_descriptors(mut self, value: u32) -> Self {
39080 self.inner.max_per_set_descriptors = value;
39081 self
39082 }
39083 #[inline]
39084 pub fn max_memory_allocation_size(mut self, value: u64) -> Self {
39085 self.inner.max_memory_allocation_size = value;
39086 self
39087 }
39088}
39089impl<'a> core::ops::Deref for PhysicalDeviceVulkan11PropertiesBuilder<'a> {
39090 type Target = PhysicalDeviceVulkan11Properties;
39091 #[inline]
39092 fn deref(&self) -> &Self::Target {
39093 &self.inner
39094 }
39095}
39096impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan11PropertiesBuilder<'a> {
39097 #[inline]
39098 fn deref_mut(&mut self) -> &mut Self::Target {
39099 &mut self.inner
39100 }
39101}
39102pub struct PhysicalDeviceVulkan12FeaturesBuilder<'a> {
39104 inner: PhysicalDeviceVulkan12Features,
39105 _marker: core::marker::PhantomData<&'a ()>,
39106}
39107impl PhysicalDeviceVulkan12Features {
39108 #[inline]
39110 pub fn builder<'a>() -> PhysicalDeviceVulkan12FeaturesBuilder<'a> {
39111 PhysicalDeviceVulkan12FeaturesBuilder {
39112 inner: PhysicalDeviceVulkan12Features {
39113 s_type: StructureType::from_raw(51i32),
39114 ..Default::default()
39115 },
39116 _marker: core::marker::PhantomData,
39117 }
39118 }
39119}
39120impl<'a> PhysicalDeviceVulkan12FeaturesBuilder<'a> {
39121 #[inline]
39122 pub fn sampler_mirror_clamp_to_edge(mut self, value: bool) -> Self {
39123 self.inner.sampler_mirror_clamp_to_edge = value as u32;
39124 self
39125 }
39126 #[inline]
39127 pub fn draw_indirect_count(mut self, value: bool) -> Self {
39128 self.inner.draw_indirect_count = value as u32;
39129 self
39130 }
39131 #[inline]
39132 pub fn storage_buffer8_bit_access(mut self, value: bool) -> Self {
39133 self.inner.storage_buffer8_bit_access = value as u32;
39134 self
39135 }
39136 #[inline]
39137 pub fn uniform_and_storage_buffer8_bit_access(mut self, value: bool) -> Self {
39138 self.inner.uniform_and_storage_buffer8_bit_access = value as u32;
39139 self
39140 }
39141 #[inline]
39142 pub fn storage_push_constant8(mut self, value: bool) -> Self {
39143 self.inner.storage_push_constant8 = value as u32;
39144 self
39145 }
39146 #[inline]
39147 pub fn shader_buffer_int64_atomics(mut self, value: bool) -> Self {
39148 self.inner.shader_buffer_int64_atomics = value as u32;
39149 self
39150 }
39151 #[inline]
39152 pub fn shader_shared_int64_atomics(mut self, value: bool) -> Self {
39153 self.inner.shader_shared_int64_atomics = value as u32;
39154 self
39155 }
39156 #[inline]
39157 pub fn shader_float16(mut self, value: bool) -> Self {
39158 self.inner.shader_float16 = value as u32;
39159 self
39160 }
39161 #[inline]
39162 pub fn shader_int8(mut self, value: bool) -> Self {
39163 self.inner.shader_int8 = value as u32;
39164 self
39165 }
39166 #[inline]
39167 pub fn descriptor_indexing(mut self, value: bool) -> Self {
39168 self.inner.descriptor_indexing = value as u32;
39169 self
39170 }
39171 #[inline]
39172 pub fn shader_input_attachment_array_dynamic_indexing(
39173 mut self,
39174 value: bool,
39175 ) -> Self {
39176 self.inner.shader_input_attachment_array_dynamic_indexing = value as u32;
39177 self
39178 }
39179 #[inline]
39180 pub fn shader_uniform_texel_buffer_array_dynamic_indexing(
39181 mut self,
39182 value: bool,
39183 ) -> Self {
39184 self.inner.shader_uniform_texel_buffer_array_dynamic_indexing = value as u32;
39185 self
39186 }
39187 #[inline]
39188 pub fn shader_storage_texel_buffer_array_dynamic_indexing(
39189 mut self,
39190 value: bool,
39191 ) -> Self {
39192 self.inner.shader_storage_texel_buffer_array_dynamic_indexing = value as u32;
39193 self
39194 }
39195 #[inline]
39196 pub fn shader_uniform_buffer_array_non_uniform_indexing(
39197 mut self,
39198 value: bool,
39199 ) -> Self {
39200 self.inner.shader_uniform_buffer_array_non_uniform_indexing = value as u32;
39201 self
39202 }
39203 #[inline]
39204 pub fn shader_sampled_image_array_non_uniform_indexing(
39205 mut self,
39206 value: bool,
39207 ) -> Self {
39208 self.inner.shader_sampled_image_array_non_uniform_indexing = value as u32;
39209 self
39210 }
39211 #[inline]
39212 pub fn shader_storage_buffer_array_non_uniform_indexing(
39213 mut self,
39214 value: bool,
39215 ) -> Self {
39216 self.inner.shader_storage_buffer_array_non_uniform_indexing = value as u32;
39217 self
39218 }
39219 #[inline]
39220 pub fn shader_storage_image_array_non_uniform_indexing(
39221 mut self,
39222 value: bool,
39223 ) -> Self {
39224 self.inner.shader_storage_image_array_non_uniform_indexing = value as u32;
39225 self
39226 }
39227 #[inline]
39228 pub fn shader_input_attachment_array_non_uniform_indexing(
39229 mut self,
39230 value: bool,
39231 ) -> Self {
39232 self.inner.shader_input_attachment_array_non_uniform_indexing = value as u32;
39233 self
39234 }
39235 #[inline]
39236 pub fn shader_uniform_texel_buffer_array_non_uniform_indexing(
39237 mut self,
39238 value: bool,
39239 ) -> Self {
39240 self.inner.shader_uniform_texel_buffer_array_non_uniform_indexing = value as u32;
39241 self
39242 }
39243 #[inline]
39244 pub fn shader_storage_texel_buffer_array_non_uniform_indexing(
39245 mut self,
39246 value: bool,
39247 ) -> Self {
39248 self.inner.shader_storage_texel_buffer_array_non_uniform_indexing = value as u32;
39249 self
39250 }
39251 #[inline]
39252 pub fn descriptor_binding_uniform_buffer_update_after_bind(
39253 mut self,
39254 value: bool,
39255 ) -> Self {
39256 self.inner.descriptor_binding_uniform_buffer_update_after_bind = value as u32;
39257 self
39258 }
39259 #[inline]
39260 pub fn descriptor_binding_sampled_image_update_after_bind(
39261 mut self,
39262 value: bool,
39263 ) -> Self {
39264 self.inner.descriptor_binding_sampled_image_update_after_bind = value as u32;
39265 self
39266 }
39267 #[inline]
39268 pub fn descriptor_binding_storage_image_update_after_bind(
39269 mut self,
39270 value: bool,
39271 ) -> Self {
39272 self.inner.descriptor_binding_storage_image_update_after_bind = value as u32;
39273 self
39274 }
39275 #[inline]
39276 pub fn descriptor_binding_storage_buffer_update_after_bind(
39277 mut self,
39278 value: bool,
39279 ) -> Self {
39280 self.inner.descriptor_binding_storage_buffer_update_after_bind = value as u32;
39281 self
39282 }
39283 #[inline]
39284 pub fn descriptor_binding_uniform_texel_buffer_update_after_bind(
39285 mut self,
39286 value: bool,
39287 ) -> Self {
39288 self.inner.descriptor_binding_uniform_texel_buffer_update_after_bind = value
39289 as u32;
39290 self
39291 }
39292 #[inline]
39293 pub fn descriptor_binding_storage_texel_buffer_update_after_bind(
39294 mut self,
39295 value: bool,
39296 ) -> Self {
39297 self.inner.descriptor_binding_storage_texel_buffer_update_after_bind = value
39298 as u32;
39299 self
39300 }
39301 #[inline]
39302 pub fn descriptor_binding_update_unused_while_pending(
39303 mut self,
39304 value: bool,
39305 ) -> Self {
39306 self.inner.descriptor_binding_update_unused_while_pending = value as u32;
39307 self
39308 }
39309 #[inline]
39310 pub fn descriptor_binding_partially_bound(mut self, value: bool) -> Self {
39311 self.inner.descriptor_binding_partially_bound = value as u32;
39312 self
39313 }
39314 #[inline]
39315 pub fn descriptor_binding_variable_descriptor_count(mut self, value: bool) -> Self {
39316 self.inner.descriptor_binding_variable_descriptor_count = value as u32;
39317 self
39318 }
39319 #[inline]
39320 pub fn runtime_descriptor_array(mut self, value: bool) -> Self {
39321 self.inner.runtime_descriptor_array = value as u32;
39322 self
39323 }
39324 #[inline]
39325 pub fn sampler_filter_minmax(mut self, value: bool) -> Self {
39326 self.inner.sampler_filter_minmax = value as u32;
39327 self
39328 }
39329 #[inline]
39330 pub fn scalar_block_layout(mut self, value: bool) -> Self {
39331 self.inner.scalar_block_layout = value as u32;
39332 self
39333 }
39334 #[inline]
39335 pub fn imageless_framebuffer(mut self, value: bool) -> Self {
39336 self.inner.imageless_framebuffer = value as u32;
39337 self
39338 }
39339 #[inline]
39340 pub fn uniform_buffer_standard_layout(mut self, value: bool) -> Self {
39341 self.inner.uniform_buffer_standard_layout = value as u32;
39342 self
39343 }
39344 #[inline]
39345 pub fn shader_subgroup_extended_types(mut self, value: bool) -> Self {
39346 self.inner.shader_subgroup_extended_types = value as u32;
39347 self
39348 }
39349 #[inline]
39350 pub fn separate_depth_stencil_layouts(mut self, value: bool) -> Self {
39351 self.inner.separate_depth_stencil_layouts = value as u32;
39352 self
39353 }
39354 #[inline]
39355 pub fn host_query_reset(mut self, value: bool) -> Self {
39356 self.inner.host_query_reset = value as u32;
39357 self
39358 }
39359 #[inline]
39360 pub fn timeline_semaphore(mut self, value: bool) -> Self {
39361 self.inner.timeline_semaphore = value as u32;
39362 self
39363 }
39364 #[inline]
39365 pub fn buffer_device_address(mut self, value: bool) -> Self {
39366 self.inner.buffer_device_address = value as u32;
39367 self
39368 }
39369 #[inline]
39370 pub fn buffer_device_address_capture_replay(mut self, value: bool) -> Self {
39371 self.inner.buffer_device_address_capture_replay = value as u32;
39372 self
39373 }
39374 #[inline]
39375 pub fn buffer_device_address_multi_device(mut self, value: bool) -> Self {
39376 self.inner.buffer_device_address_multi_device = value as u32;
39377 self
39378 }
39379 #[inline]
39380 pub fn vulkan_memory_model(mut self, value: bool) -> Self {
39381 self.inner.vulkan_memory_model = value as u32;
39382 self
39383 }
39384 #[inline]
39385 pub fn vulkan_memory_model_device_scope(mut self, value: bool) -> Self {
39386 self.inner.vulkan_memory_model_device_scope = value as u32;
39387 self
39388 }
39389 #[inline]
39390 pub fn vulkan_memory_model_availability_visibility_chains(
39391 mut self,
39392 value: bool,
39393 ) -> Self {
39394 self.inner.vulkan_memory_model_availability_visibility_chains = value as u32;
39395 self
39396 }
39397 #[inline]
39398 pub fn shader_output_viewport_index(mut self, value: bool) -> Self {
39399 self.inner.shader_output_viewport_index = value as u32;
39400 self
39401 }
39402 #[inline]
39403 pub fn shader_output_layer(mut self, value: bool) -> Self {
39404 self.inner.shader_output_layer = value as u32;
39405 self
39406 }
39407 #[inline]
39408 pub fn subgroup_broadcast_dynamic_id(mut self, value: bool) -> Self {
39409 self.inner.subgroup_broadcast_dynamic_id = value as u32;
39410 self
39411 }
39412 #[inline]
39414 pub fn push_next<T: ExtendsPhysicalDeviceVulkan12Features>(
39415 mut self,
39416 next: &'a mut T,
39417 ) -> Self {
39418 unsafe {
39419 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
39420 (*next_ptr).p_next = self.inner.p_next as *mut _;
39421 self.inner.p_next = <*mut BaseOutStructure>::cast::<
39422 core::ffi::c_void,
39423 >(next_ptr);
39424 }
39425 self
39426 }
39427}
39428impl<'a> core::ops::Deref for PhysicalDeviceVulkan12FeaturesBuilder<'a> {
39429 type Target = PhysicalDeviceVulkan12Features;
39430 #[inline]
39431 fn deref(&self) -> &Self::Target {
39432 &self.inner
39433 }
39434}
39435impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan12FeaturesBuilder<'a> {
39436 #[inline]
39437 fn deref_mut(&mut self) -> &mut Self::Target {
39438 &mut self.inner
39439 }
39440}
39441pub struct PhysicalDeviceVulkan12PropertiesBuilder<'a> {
39443 inner: PhysicalDeviceVulkan12Properties,
39444 _marker: core::marker::PhantomData<&'a ()>,
39445}
39446impl PhysicalDeviceVulkan12Properties {
39447 #[inline]
39449 pub fn builder<'a>() -> PhysicalDeviceVulkan12PropertiesBuilder<'a> {
39450 PhysicalDeviceVulkan12PropertiesBuilder {
39451 inner: PhysicalDeviceVulkan12Properties {
39452 s_type: StructureType::from_raw(52i32),
39453 ..Default::default()
39454 },
39455 _marker: core::marker::PhantomData,
39456 }
39457 }
39458}
39459impl<'a> PhysicalDeviceVulkan12PropertiesBuilder<'a> {
39460 #[inline]
39461 pub fn driver_id(mut self, value: DriverId) -> Self {
39462 self.inner.driver_id = value;
39463 self
39464 }
39465 #[inline]
39466 pub fn driver_name(
39467 mut self,
39468 value: crate::StringArray<{ MAX_DRIVER_NAME_SIZE as usize }>,
39469 ) -> Self {
39470 self.inner.driver_name = value;
39471 self
39472 }
39473 #[inline]
39474 pub fn driver_info(
39475 mut self,
39476 value: crate::StringArray<{ MAX_DRIVER_INFO_SIZE as usize }>,
39477 ) -> Self {
39478 self.inner.driver_info = value;
39479 self
39480 }
39481 #[inline]
39482 pub fn conformance_version(mut self, value: ConformanceVersion) -> Self {
39483 self.inner.conformance_version = value;
39484 self
39485 }
39486 #[inline]
39487 pub fn denorm_behavior_independence(
39488 mut self,
39489 value: ShaderFloatControlsIndependence,
39490 ) -> Self {
39491 self.inner.denorm_behavior_independence = value;
39492 self
39493 }
39494 #[inline]
39495 pub fn rounding_mode_independence(
39496 mut self,
39497 value: ShaderFloatControlsIndependence,
39498 ) -> Self {
39499 self.inner.rounding_mode_independence = value;
39500 self
39501 }
39502 #[inline]
39503 pub fn shader_signed_zero_inf_nan_preserve_float16(mut self, value: bool) -> Self {
39504 self.inner.shader_signed_zero_inf_nan_preserve_float16 = value as u32;
39505 self
39506 }
39507 #[inline]
39508 pub fn shader_signed_zero_inf_nan_preserve_float32(mut self, value: bool) -> Self {
39509 self.inner.shader_signed_zero_inf_nan_preserve_float32 = value as u32;
39510 self
39511 }
39512 #[inline]
39513 pub fn shader_signed_zero_inf_nan_preserve_float64(mut self, value: bool) -> Self {
39514 self.inner.shader_signed_zero_inf_nan_preserve_float64 = value as u32;
39515 self
39516 }
39517 #[inline]
39518 pub fn shader_denorm_preserve_float16(mut self, value: bool) -> Self {
39519 self.inner.shader_denorm_preserve_float16 = value as u32;
39520 self
39521 }
39522 #[inline]
39523 pub fn shader_denorm_preserve_float32(mut self, value: bool) -> Self {
39524 self.inner.shader_denorm_preserve_float32 = value as u32;
39525 self
39526 }
39527 #[inline]
39528 pub fn shader_denorm_preserve_float64(mut self, value: bool) -> Self {
39529 self.inner.shader_denorm_preserve_float64 = value as u32;
39530 self
39531 }
39532 #[inline]
39533 pub fn shader_denorm_flush_to_zero_float16(mut self, value: bool) -> Self {
39534 self.inner.shader_denorm_flush_to_zero_float16 = value as u32;
39535 self
39536 }
39537 #[inline]
39538 pub fn shader_denorm_flush_to_zero_float32(mut self, value: bool) -> Self {
39539 self.inner.shader_denorm_flush_to_zero_float32 = value as u32;
39540 self
39541 }
39542 #[inline]
39543 pub fn shader_denorm_flush_to_zero_float64(mut self, value: bool) -> Self {
39544 self.inner.shader_denorm_flush_to_zero_float64 = value as u32;
39545 self
39546 }
39547 #[inline]
39548 pub fn shader_rounding_mode_rte_float16(mut self, value: bool) -> Self {
39549 self.inner.shader_rounding_mode_rte_float16 = value as u32;
39550 self
39551 }
39552 #[inline]
39553 pub fn shader_rounding_mode_rte_float32(mut self, value: bool) -> Self {
39554 self.inner.shader_rounding_mode_rte_float32 = value as u32;
39555 self
39556 }
39557 #[inline]
39558 pub fn shader_rounding_mode_rte_float64(mut self, value: bool) -> Self {
39559 self.inner.shader_rounding_mode_rte_float64 = value as u32;
39560 self
39561 }
39562 #[inline]
39563 pub fn shader_rounding_mode_rtz_float16(mut self, value: bool) -> Self {
39564 self.inner.shader_rounding_mode_rtz_float16 = value as u32;
39565 self
39566 }
39567 #[inline]
39568 pub fn shader_rounding_mode_rtz_float32(mut self, value: bool) -> Self {
39569 self.inner.shader_rounding_mode_rtz_float32 = value as u32;
39570 self
39571 }
39572 #[inline]
39573 pub fn shader_rounding_mode_rtz_float64(mut self, value: bool) -> Self {
39574 self.inner.shader_rounding_mode_rtz_float64 = value as u32;
39575 self
39576 }
39577 #[inline]
39578 pub fn max_update_after_bind_descriptors_in_all_pools(mut self, value: u32) -> Self {
39579 self.inner.max_update_after_bind_descriptors_in_all_pools = value;
39580 self
39581 }
39582 #[inline]
39583 pub fn shader_uniform_buffer_array_non_uniform_indexing_native(
39584 mut self,
39585 value: bool,
39586 ) -> Self {
39587 self.inner.shader_uniform_buffer_array_non_uniform_indexing_native = value
39588 as u32;
39589 self
39590 }
39591 #[inline]
39592 pub fn shader_sampled_image_array_non_uniform_indexing_native(
39593 mut self,
39594 value: bool,
39595 ) -> Self {
39596 self.inner.shader_sampled_image_array_non_uniform_indexing_native = value as u32;
39597 self
39598 }
39599 #[inline]
39600 pub fn shader_storage_buffer_array_non_uniform_indexing_native(
39601 mut self,
39602 value: bool,
39603 ) -> Self {
39604 self.inner.shader_storage_buffer_array_non_uniform_indexing_native = value
39605 as u32;
39606 self
39607 }
39608 #[inline]
39609 pub fn shader_storage_image_array_non_uniform_indexing_native(
39610 mut self,
39611 value: bool,
39612 ) -> Self {
39613 self.inner.shader_storage_image_array_non_uniform_indexing_native = value as u32;
39614 self
39615 }
39616 #[inline]
39617 pub fn shader_input_attachment_array_non_uniform_indexing_native(
39618 mut self,
39619 value: bool,
39620 ) -> Self {
39621 self.inner.shader_input_attachment_array_non_uniform_indexing_native = value
39622 as u32;
39623 self
39624 }
39625 #[inline]
39626 pub fn robust_buffer_access_update_after_bind(mut self, value: bool) -> Self {
39627 self.inner.robust_buffer_access_update_after_bind = value as u32;
39628 self
39629 }
39630 #[inline]
39631 pub fn quad_divergent_implicit_lod(mut self, value: bool) -> Self {
39632 self.inner.quad_divergent_implicit_lod = value as u32;
39633 self
39634 }
39635 #[inline]
39636 pub fn max_per_stage_descriptor_update_after_bind_samplers(
39637 mut self,
39638 value: u32,
39639 ) -> Self {
39640 self.inner.max_per_stage_descriptor_update_after_bind_samplers = value;
39641 self
39642 }
39643 #[inline]
39644 pub fn max_per_stage_descriptor_update_after_bind_uniform_buffers(
39645 mut self,
39646 value: u32,
39647 ) -> Self {
39648 self.inner.max_per_stage_descriptor_update_after_bind_uniform_buffers = value;
39649 self
39650 }
39651 #[inline]
39652 pub fn max_per_stage_descriptor_update_after_bind_storage_buffers(
39653 mut self,
39654 value: u32,
39655 ) -> Self {
39656 self.inner.max_per_stage_descriptor_update_after_bind_storage_buffers = value;
39657 self
39658 }
39659 #[inline]
39660 pub fn max_per_stage_descriptor_update_after_bind_sampled_images(
39661 mut self,
39662 value: u32,
39663 ) -> Self {
39664 self.inner.max_per_stage_descriptor_update_after_bind_sampled_images = value;
39665 self
39666 }
39667 #[inline]
39668 pub fn max_per_stage_descriptor_update_after_bind_storage_images(
39669 mut self,
39670 value: u32,
39671 ) -> Self {
39672 self.inner.max_per_stage_descriptor_update_after_bind_storage_images = value;
39673 self
39674 }
39675 #[inline]
39676 pub fn max_per_stage_descriptor_update_after_bind_input_attachments(
39677 mut self,
39678 value: u32,
39679 ) -> Self {
39680 self.inner.max_per_stage_descriptor_update_after_bind_input_attachments = value;
39681 self
39682 }
39683 #[inline]
39684 pub fn max_per_stage_update_after_bind_resources(mut self, value: u32) -> Self {
39685 self.inner.max_per_stage_update_after_bind_resources = value;
39686 self
39687 }
39688 #[inline]
39689 pub fn max_descriptor_set_update_after_bind_samplers(mut self, value: u32) -> Self {
39690 self.inner.max_descriptor_set_update_after_bind_samplers = value;
39691 self
39692 }
39693 #[inline]
39694 pub fn max_descriptor_set_update_after_bind_uniform_buffers(
39695 mut self,
39696 value: u32,
39697 ) -> Self {
39698 self.inner.max_descriptor_set_update_after_bind_uniform_buffers = value;
39699 self
39700 }
39701 #[inline]
39702 pub fn max_descriptor_set_update_after_bind_uniform_buffers_dynamic(
39703 mut self,
39704 value: u32,
39705 ) -> Self {
39706 self.inner.max_descriptor_set_update_after_bind_uniform_buffers_dynamic = value;
39707 self
39708 }
39709 #[inline]
39710 pub fn max_descriptor_set_update_after_bind_storage_buffers(
39711 mut self,
39712 value: u32,
39713 ) -> Self {
39714 self.inner.max_descriptor_set_update_after_bind_storage_buffers = value;
39715 self
39716 }
39717 #[inline]
39718 pub fn max_descriptor_set_update_after_bind_storage_buffers_dynamic(
39719 mut self,
39720 value: u32,
39721 ) -> Self {
39722 self.inner.max_descriptor_set_update_after_bind_storage_buffers_dynamic = value;
39723 self
39724 }
39725 #[inline]
39726 pub fn max_descriptor_set_update_after_bind_sampled_images(
39727 mut self,
39728 value: u32,
39729 ) -> Self {
39730 self.inner.max_descriptor_set_update_after_bind_sampled_images = value;
39731 self
39732 }
39733 #[inline]
39734 pub fn max_descriptor_set_update_after_bind_storage_images(
39735 mut self,
39736 value: u32,
39737 ) -> Self {
39738 self.inner.max_descriptor_set_update_after_bind_storage_images = value;
39739 self
39740 }
39741 #[inline]
39742 pub fn max_descriptor_set_update_after_bind_input_attachments(
39743 mut self,
39744 value: u32,
39745 ) -> Self {
39746 self.inner.max_descriptor_set_update_after_bind_input_attachments = value;
39747 self
39748 }
39749 #[inline]
39750 pub fn supported_depth_resolve_modes(mut self, value: ResolveModeFlags) -> Self {
39751 self.inner.supported_depth_resolve_modes = value;
39752 self
39753 }
39754 #[inline]
39755 pub fn supported_stencil_resolve_modes(mut self, value: ResolveModeFlags) -> Self {
39756 self.inner.supported_stencil_resolve_modes = value;
39757 self
39758 }
39759 #[inline]
39760 pub fn independent_resolve_none(mut self, value: bool) -> Self {
39761 self.inner.independent_resolve_none = value as u32;
39762 self
39763 }
39764 #[inline]
39765 pub fn independent_resolve(mut self, value: bool) -> Self {
39766 self.inner.independent_resolve = value as u32;
39767 self
39768 }
39769 #[inline]
39770 pub fn filter_minmax_single_component_formats(mut self, value: bool) -> Self {
39771 self.inner.filter_minmax_single_component_formats = value as u32;
39772 self
39773 }
39774 #[inline]
39775 pub fn filter_minmax_image_component_mapping(mut self, value: bool) -> Self {
39776 self.inner.filter_minmax_image_component_mapping = value as u32;
39777 self
39778 }
39779 #[inline]
39780 pub fn max_timeline_semaphore_value_difference(mut self, value: u64) -> Self {
39781 self.inner.max_timeline_semaphore_value_difference = value;
39782 self
39783 }
39784 #[inline]
39785 pub fn framebuffer_integer_color_sample_counts(
39786 mut self,
39787 value: SampleCountFlags,
39788 ) -> Self {
39789 self.inner.framebuffer_integer_color_sample_counts = value;
39790 self
39791 }
39792}
39793impl<'a> core::ops::Deref for PhysicalDeviceVulkan12PropertiesBuilder<'a> {
39794 type Target = PhysicalDeviceVulkan12Properties;
39795 #[inline]
39796 fn deref(&self) -> &Self::Target {
39797 &self.inner
39798 }
39799}
39800impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan12PropertiesBuilder<'a> {
39801 #[inline]
39802 fn deref_mut(&mut self) -> &mut Self::Target {
39803 &mut self.inner
39804 }
39805}
39806pub struct PhysicalDeviceVulkan13FeaturesBuilder<'a> {
39808 inner: PhysicalDeviceVulkan13Features,
39809 _marker: core::marker::PhantomData<&'a ()>,
39810}
39811impl PhysicalDeviceVulkan13Features {
39812 #[inline]
39814 pub fn builder<'a>() -> PhysicalDeviceVulkan13FeaturesBuilder<'a> {
39815 PhysicalDeviceVulkan13FeaturesBuilder {
39816 inner: PhysicalDeviceVulkan13Features {
39817 s_type: StructureType::from_raw(53i32),
39818 ..Default::default()
39819 },
39820 _marker: core::marker::PhantomData,
39821 }
39822 }
39823}
39824impl<'a> PhysicalDeviceVulkan13FeaturesBuilder<'a> {
39825 #[inline]
39826 pub fn robust_image_access(mut self, value: bool) -> Self {
39827 self.inner.robust_image_access = value as u32;
39828 self
39829 }
39830 #[inline]
39831 pub fn inline_uniform_block(mut self, value: bool) -> Self {
39832 self.inner.inline_uniform_block = value as u32;
39833 self
39834 }
39835 #[inline]
39836 pub fn descriptor_binding_inline_uniform_block_update_after_bind(
39837 mut self,
39838 value: bool,
39839 ) -> Self {
39840 self.inner.descriptor_binding_inline_uniform_block_update_after_bind = value
39841 as u32;
39842 self
39843 }
39844 #[inline]
39845 pub fn pipeline_creation_cache_control(mut self, value: bool) -> Self {
39846 self.inner.pipeline_creation_cache_control = value as u32;
39847 self
39848 }
39849 #[inline]
39850 pub fn private_data(mut self, value: bool) -> Self {
39851 self.inner.private_data = value as u32;
39852 self
39853 }
39854 #[inline]
39855 pub fn shader_demote_to_helper_invocation(mut self, value: bool) -> Self {
39856 self.inner.shader_demote_to_helper_invocation = value as u32;
39857 self
39858 }
39859 #[inline]
39860 pub fn shader_terminate_invocation(mut self, value: bool) -> Self {
39861 self.inner.shader_terminate_invocation = value as u32;
39862 self
39863 }
39864 #[inline]
39865 pub fn subgroup_size_control(mut self, value: bool) -> Self {
39866 self.inner.subgroup_size_control = value as u32;
39867 self
39868 }
39869 #[inline]
39870 pub fn compute_full_subgroups(mut self, value: bool) -> Self {
39871 self.inner.compute_full_subgroups = value as u32;
39872 self
39873 }
39874 #[inline]
39875 pub fn synchronization2(mut self, value: bool) -> Self {
39876 self.inner.synchronization2 = value as u32;
39877 self
39878 }
39879 #[inline]
39880 pub fn texture_compression_astc_hdr(mut self, value: bool) -> Self {
39881 self.inner.texture_compression_astc_hdr = value as u32;
39882 self
39883 }
39884 #[inline]
39885 pub fn shader_zero_initialize_workgroup_memory(mut self, value: bool) -> Self {
39886 self.inner.shader_zero_initialize_workgroup_memory = value as u32;
39887 self
39888 }
39889 #[inline]
39890 pub fn dynamic_rendering(mut self, value: bool) -> Self {
39891 self.inner.dynamic_rendering = value as u32;
39892 self
39893 }
39894 #[inline]
39895 pub fn shader_integer_dot_product(mut self, value: bool) -> Self {
39896 self.inner.shader_integer_dot_product = value as u32;
39897 self
39898 }
39899 #[inline]
39900 pub fn maintenance4(mut self, value: bool) -> Self {
39901 self.inner.maintenance4 = value as u32;
39902 self
39903 }
39904 #[inline]
39906 pub fn push_next<T: ExtendsPhysicalDeviceVulkan13Features>(
39907 mut self,
39908 next: &'a mut T,
39909 ) -> Self {
39910 unsafe {
39911 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
39912 (*next_ptr).p_next = self.inner.p_next as *mut _;
39913 self.inner.p_next = <*mut BaseOutStructure>::cast::<
39914 core::ffi::c_void,
39915 >(next_ptr);
39916 }
39917 self
39918 }
39919}
39920impl<'a> core::ops::Deref for PhysicalDeviceVulkan13FeaturesBuilder<'a> {
39921 type Target = PhysicalDeviceVulkan13Features;
39922 #[inline]
39923 fn deref(&self) -> &Self::Target {
39924 &self.inner
39925 }
39926}
39927impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan13FeaturesBuilder<'a> {
39928 #[inline]
39929 fn deref_mut(&mut self) -> &mut Self::Target {
39930 &mut self.inner
39931 }
39932}
39933pub struct PhysicalDeviceVulkan13PropertiesBuilder<'a> {
39935 inner: PhysicalDeviceVulkan13Properties,
39936 _marker: core::marker::PhantomData<&'a ()>,
39937}
39938impl PhysicalDeviceVulkan13Properties {
39939 #[inline]
39941 pub fn builder<'a>() -> PhysicalDeviceVulkan13PropertiesBuilder<'a> {
39942 PhysicalDeviceVulkan13PropertiesBuilder {
39943 inner: PhysicalDeviceVulkan13Properties {
39944 s_type: StructureType::from_raw(54i32),
39945 ..Default::default()
39946 },
39947 _marker: core::marker::PhantomData,
39948 }
39949 }
39950}
39951impl<'a> PhysicalDeviceVulkan13PropertiesBuilder<'a> {
39952 #[inline]
39953 pub fn min_subgroup_size(mut self, value: u32) -> Self {
39954 self.inner.min_subgroup_size = value;
39955 self
39956 }
39957 #[inline]
39958 pub fn max_subgroup_size(mut self, value: u32) -> Self {
39959 self.inner.max_subgroup_size = value;
39960 self
39961 }
39962 #[inline]
39963 pub fn max_compute_workgroup_subgroups(mut self, value: u32) -> Self {
39964 self.inner.max_compute_workgroup_subgroups = value;
39965 self
39966 }
39967 #[inline]
39968 pub fn required_subgroup_size_stages(mut self, value: ShaderStageFlags) -> Self {
39969 self.inner.required_subgroup_size_stages = value;
39970 self
39971 }
39972 #[inline]
39973 pub fn max_inline_uniform_block_size(mut self, value: u32) -> Self {
39974 self.inner.max_inline_uniform_block_size = value;
39975 self
39976 }
39977 #[inline]
39978 pub fn max_per_stage_descriptor_inline_uniform_blocks(mut self, value: u32) -> Self {
39979 self.inner.max_per_stage_descriptor_inline_uniform_blocks = value;
39980 self
39981 }
39982 #[inline]
39983 pub fn max_per_stage_descriptor_update_after_bind_inline_uniform_blocks(
39984 mut self,
39985 value: u32,
39986 ) -> Self {
39987 self.inner.max_per_stage_descriptor_update_after_bind_inline_uniform_blocks = value;
39988 self
39989 }
39990 #[inline]
39991 pub fn max_descriptor_set_inline_uniform_blocks(mut self, value: u32) -> Self {
39992 self.inner.max_descriptor_set_inline_uniform_blocks = value;
39993 self
39994 }
39995 #[inline]
39996 pub fn max_descriptor_set_update_after_bind_inline_uniform_blocks(
39997 mut self,
39998 value: u32,
39999 ) -> Self {
40000 self.inner.max_descriptor_set_update_after_bind_inline_uniform_blocks = value;
40001 self
40002 }
40003 #[inline]
40004 pub fn max_inline_uniform_total_size(mut self, value: u32) -> Self {
40005 self.inner.max_inline_uniform_total_size = value;
40006 self
40007 }
40008 #[inline]
40009 pub fn integer_dot_product8_bit_unsigned_accelerated(mut self, value: bool) -> Self {
40010 self.inner.integer_dot_product8_bit_unsigned_accelerated = value as u32;
40011 self
40012 }
40013 #[inline]
40014 pub fn integer_dot_product8_bit_signed_accelerated(mut self, value: bool) -> Self {
40015 self.inner.integer_dot_product8_bit_signed_accelerated = value as u32;
40016 self
40017 }
40018 #[inline]
40019 pub fn integer_dot_product8_bit_mixed_signedness_accelerated(
40020 mut self,
40021 value: bool,
40022 ) -> Self {
40023 self.inner.integer_dot_product8_bit_mixed_signedness_accelerated = value as u32;
40024 self
40025 }
40026 #[inline]
40027 pub fn integer_dot_product4x8_bit_packed_unsigned_accelerated(
40028 mut self,
40029 value: bool,
40030 ) -> Self {
40031 self.inner.integer_dot_product4x8_bit_packed_unsigned_accelerated = value as u32;
40032 self
40033 }
40034 #[inline]
40035 pub fn integer_dot_product4x8_bit_packed_signed_accelerated(
40036 mut self,
40037 value: bool,
40038 ) -> Self {
40039 self.inner.integer_dot_product4x8_bit_packed_signed_accelerated = value as u32;
40040 self
40041 }
40042 #[inline]
40043 pub fn integer_dot_product4x8_bit_packed_mixed_signedness_accelerated(
40044 mut self,
40045 value: bool,
40046 ) -> Self {
40047 self.inner.integer_dot_product4x8_bit_packed_mixed_signedness_accelerated = value
40048 as u32;
40049 self
40050 }
40051 #[inline]
40052 pub fn integer_dot_product16_bit_unsigned_accelerated(
40053 mut self,
40054 value: bool,
40055 ) -> Self {
40056 self.inner.integer_dot_product16_bit_unsigned_accelerated = value as u32;
40057 self
40058 }
40059 #[inline]
40060 pub fn integer_dot_product16_bit_signed_accelerated(mut self, value: bool) -> Self {
40061 self.inner.integer_dot_product16_bit_signed_accelerated = value as u32;
40062 self
40063 }
40064 #[inline]
40065 pub fn integer_dot_product16_bit_mixed_signedness_accelerated(
40066 mut self,
40067 value: bool,
40068 ) -> Self {
40069 self.inner.integer_dot_product16_bit_mixed_signedness_accelerated = value as u32;
40070 self
40071 }
40072 #[inline]
40073 pub fn integer_dot_product32_bit_unsigned_accelerated(
40074 mut self,
40075 value: bool,
40076 ) -> Self {
40077 self.inner.integer_dot_product32_bit_unsigned_accelerated = value as u32;
40078 self
40079 }
40080 #[inline]
40081 pub fn integer_dot_product32_bit_signed_accelerated(mut self, value: bool) -> Self {
40082 self.inner.integer_dot_product32_bit_signed_accelerated = value as u32;
40083 self
40084 }
40085 #[inline]
40086 pub fn integer_dot_product32_bit_mixed_signedness_accelerated(
40087 mut self,
40088 value: bool,
40089 ) -> Self {
40090 self.inner.integer_dot_product32_bit_mixed_signedness_accelerated = value as u32;
40091 self
40092 }
40093 #[inline]
40094 pub fn integer_dot_product64_bit_unsigned_accelerated(
40095 mut self,
40096 value: bool,
40097 ) -> Self {
40098 self.inner.integer_dot_product64_bit_unsigned_accelerated = value as u32;
40099 self
40100 }
40101 #[inline]
40102 pub fn integer_dot_product64_bit_signed_accelerated(mut self, value: bool) -> Self {
40103 self.inner.integer_dot_product64_bit_signed_accelerated = value as u32;
40104 self
40105 }
40106 #[inline]
40107 pub fn integer_dot_product64_bit_mixed_signedness_accelerated(
40108 mut self,
40109 value: bool,
40110 ) -> Self {
40111 self.inner.integer_dot_product64_bit_mixed_signedness_accelerated = value as u32;
40112 self
40113 }
40114 #[inline]
40115 pub fn integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated(
40116 mut self,
40117 value: bool,
40118 ) -> Self {
40119 self
40120 .inner
40121 .integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated = value
40122 as u32;
40123 self
40124 }
40125 #[inline]
40126 pub fn integer_dot_product_accumulating_saturating8_bit_signed_accelerated(
40127 mut self,
40128 value: bool,
40129 ) -> Self {
40130 self.inner.integer_dot_product_accumulating_saturating8_bit_signed_accelerated = value
40131 as u32;
40132 self
40133 }
40134 #[inline]
40135 pub fn integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated(
40136 mut self,
40137 value: bool,
40138 ) -> Self {
40139 self
40140 .inner
40141 .integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated = value
40142 as u32;
40143 self
40144 }
40145 #[inline]
40146 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated(
40147 mut self,
40148 value: bool,
40149 ) -> Self {
40150 self
40151 .inner
40152 .integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated = value
40153 as u32;
40154 self
40155 }
40156 #[inline]
40157 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated(
40158 mut self,
40159 value: bool,
40160 ) -> Self {
40161 self
40162 .inner
40163 .integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated = value
40164 as u32;
40165 self
40166 }
40167 #[inline]
40168 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated(
40169 mut self,
40170 value: bool,
40171 ) -> Self {
40172 self
40173 .inner
40174 .integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated = value
40175 as u32;
40176 self
40177 }
40178 #[inline]
40179 pub fn integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated(
40180 mut self,
40181 value: bool,
40182 ) -> Self {
40183 self
40184 .inner
40185 .integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated = value
40186 as u32;
40187 self
40188 }
40189 #[inline]
40190 pub fn integer_dot_product_accumulating_saturating16_bit_signed_accelerated(
40191 mut self,
40192 value: bool,
40193 ) -> Self {
40194 self
40195 .inner
40196 .integer_dot_product_accumulating_saturating16_bit_signed_accelerated = value
40197 as u32;
40198 self
40199 }
40200 #[inline]
40201 pub fn integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated(
40202 mut self,
40203 value: bool,
40204 ) -> Self {
40205 self
40206 .inner
40207 .integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated = value
40208 as u32;
40209 self
40210 }
40211 #[inline]
40212 pub fn integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated(
40213 mut self,
40214 value: bool,
40215 ) -> Self {
40216 self
40217 .inner
40218 .integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated = value
40219 as u32;
40220 self
40221 }
40222 #[inline]
40223 pub fn integer_dot_product_accumulating_saturating32_bit_signed_accelerated(
40224 mut self,
40225 value: bool,
40226 ) -> Self {
40227 self
40228 .inner
40229 .integer_dot_product_accumulating_saturating32_bit_signed_accelerated = value
40230 as u32;
40231 self
40232 }
40233 #[inline]
40234 pub fn integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated(
40235 mut self,
40236 value: bool,
40237 ) -> Self {
40238 self
40239 .inner
40240 .integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated = value
40241 as u32;
40242 self
40243 }
40244 #[inline]
40245 pub fn integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated(
40246 mut self,
40247 value: bool,
40248 ) -> Self {
40249 self
40250 .inner
40251 .integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated = value
40252 as u32;
40253 self
40254 }
40255 #[inline]
40256 pub fn integer_dot_product_accumulating_saturating64_bit_signed_accelerated(
40257 mut self,
40258 value: bool,
40259 ) -> Self {
40260 self
40261 .inner
40262 .integer_dot_product_accumulating_saturating64_bit_signed_accelerated = value
40263 as u32;
40264 self
40265 }
40266 #[inline]
40267 pub fn integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated(
40268 mut self,
40269 value: bool,
40270 ) -> Self {
40271 self
40272 .inner
40273 .integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated = value
40274 as u32;
40275 self
40276 }
40277 #[inline]
40278 pub fn storage_texel_buffer_offset_alignment_bytes(mut self, value: u64) -> Self {
40279 self.inner.storage_texel_buffer_offset_alignment_bytes = value;
40280 self
40281 }
40282 #[inline]
40283 pub fn storage_texel_buffer_offset_single_texel_alignment(
40284 mut self,
40285 value: bool,
40286 ) -> Self {
40287 self.inner.storage_texel_buffer_offset_single_texel_alignment = value as u32;
40288 self
40289 }
40290 #[inline]
40291 pub fn uniform_texel_buffer_offset_alignment_bytes(mut self, value: u64) -> Self {
40292 self.inner.uniform_texel_buffer_offset_alignment_bytes = value;
40293 self
40294 }
40295 #[inline]
40296 pub fn uniform_texel_buffer_offset_single_texel_alignment(
40297 mut self,
40298 value: bool,
40299 ) -> Self {
40300 self.inner.uniform_texel_buffer_offset_single_texel_alignment = value as u32;
40301 self
40302 }
40303 #[inline]
40304 pub fn max_buffer_size(mut self, value: u64) -> Self {
40305 self.inner.max_buffer_size = value;
40306 self
40307 }
40308}
40309impl<'a> core::ops::Deref for PhysicalDeviceVulkan13PropertiesBuilder<'a> {
40310 type Target = PhysicalDeviceVulkan13Properties;
40311 #[inline]
40312 fn deref(&self) -> &Self::Target {
40313 &self.inner
40314 }
40315}
40316impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan13PropertiesBuilder<'a> {
40317 #[inline]
40318 fn deref_mut(&mut self) -> &mut Self::Target {
40319 &mut self.inner
40320 }
40321}
40322pub struct PhysicalDeviceVulkan14FeaturesBuilder<'a> {
40324 inner: PhysicalDeviceVulkan14Features,
40325 _marker: core::marker::PhantomData<&'a ()>,
40326}
40327impl PhysicalDeviceVulkan14Features {
40328 #[inline]
40330 pub fn builder<'a>() -> PhysicalDeviceVulkan14FeaturesBuilder<'a> {
40331 PhysicalDeviceVulkan14FeaturesBuilder {
40332 inner: PhysicalDeviceVulkan14Features {
40333 s_type: StructureType::from_raw(55i32),
40334 ..Default::default()
40335 },
40336 _marker: core::marker::PhantomData,
40337 }
40338 }
40339}
40340impl<'a> PhysicalDeviceVulkan14FeaturesBuilder<'a> {
40341 #[inline]
40342 pub fn global_priority_query(mut self, value: bool) -> Self {
40343 self.inner.global_priority_query = value as u32;
40344 self
40345 }
40346 #[inline]
40347 pub fn shader_subgroup_rotate(mut self, value: bool) -> Self {
40348 self.inner.shader_subgroup_rotate = value as u32;
40349 self
40350 }
40351 #[inline]
40352 pub fn shader_subgroup_rotate_clustered(mut self, value: bool) -> Self {
40353 self.inner.shader_subgroup_rotate_clustered = value as u32;
40354 self
40355 }
40356 #[inline]
40357 pub fn shader_float_controls2(mut self, value: bool) -> Self {
40358 self.inner.shader_float_controls2 = value as u32;
40359 self
40360 }
40361 #[inline]
40362 pub fn shader_expect_assume(mut self, value: bool) -> Self {
40363 self.inner.shader_expect_assume = value as u32;
40364 self
40365 }
40366 #[inline]
40367 pub fn rectangular_lines(mut self, value: bool) -> Self {
40368 self.inner.rectangular_lines = value as u32;
40369 self
40370 }
40371 #[inline]
40372 pub fn bresenham_lines(mut self, value: bool) -> Self {
40373 self.inner.bresenham_lines = value as u32;
40374 self
40375 }
40376 #[inline]
40377 pub fn smooth_lines(mut self, value: bool) -> Self {
40378 self.inner.smooth_lines = value as u32;
40379 self
40380 }
40381 #[inline]
40382 pub fn stippled_rectangular_lines(mut self, value: bool) -> Self {
40383 self.inner.stippled_rectangular_lines = value as u32;
40384 self
40385 }
40386 #[inline]
40387 pub fn stippled_bresenham_lines(mut self, value: bool) -> Self {
40388 self.inner.stippled_bresenham_lines = value as u32;
40389 self
40390 }
40391 #[inline]
40392 pub fn stippled_smooth_lines(mut self, value: bool) -> Self {
40393 self.inner.stippled_smooth_lines = value as u32;
40394 self
40395 }
40396 #[inline]
40397 pub fn vertex_attribute_instance_rate_divisor(mut self, value: bool) -> Self {
40398 self.inner.vertex_attribute_instance_rate_divisor = value as u32;
40399 self
40400 }
40401 #[inline]
40402 pub fn vertex_attribute_instance_rate_zero_divisor(mut self, value: bool) -> Self {
40403 self.inner.vertex_attribute_instance_rate_zero_divisor = value as u32;
40404 self
40405 }
40406 #[inline]
40407 pub fn index_type_uint8(mut self, value: bool) -> Self {
40408 self.inner.index_type_uint8 = value as u32;
40409 self
40410 }
40411 #[inline]
40412 pub fn dynamic_rendering_local_read(mut self, value: bool) -> Self {
40413 self.inner.dynamic_rendering_local_read = value as u32;
40414 self
40415 }
40416 #[inline]
40417 pub fn maintenance5(mut self, value: bool) -> Self {
40418 self.inner.maintenance5 = value as u32;
40419 self
40420 }
40421 #[inline]
40422 pub fn maintenance6(mut self, value: bool) -> Self {
40423 self.inner.maintenance6 = value as u32;
40424 self
40425 }
40426 #[inline]
40427 pub fn pipeline_protected_access(mut self, value: bool) -> Self {
40428 self.inner.pipeline_protected_access = value as u32;
40429 self
40430 }
40431 #[inline]
40432 pub fn pipeline_robustness(mut self, value: bool) -> Self {
40433 self.inner.pipeline_robustness = value as u32;
40434 self
40435 }
40436 #[inline]
40437 pub fn host_image_copy(mut self, value: bool) -> Self {
40438 self.inner.host_image_copy = value as u32;
40439 self
40440 }
40441 #[inline]
40442 pub fn push_descriptor(mut self, value: bool) -> Self {
40443 self.inner.push_descriptor = value as u32;
40444 self
40445 }
40446 #[inline]
40448 pub fn push_next<T: ExtendsPhysicalDeviceVulkan14Features>(
40449 mut self,
40450 next: &'a mut T,
40451 ) -> Self {
40452 unsafe {
40453 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
40454 (*next_ptr).p_next = self.inner.p_next as *mut _;
40455 self.inner.p_next = <*mut BaseOutStructure>::cast::<
40456 core::ffi::c_void,
40457 >(next_ptr);
40458 }
40459 self
40460 }
40461}
40462impl<'a> core::ops::Deref for PhysicalDeviceVulkan14FeaturesBuilder<'a> {
40463 type Target = PhysicalDeviceVulkan14Features;
40464 #[inline]
40465 fn deref(&self) -> &Self::Target {
40466 &self.inner
40467 }
40468}
40469impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan14FeaturesBuilder<'a> {
40470 #[inline]
40471 fn deref_mut(&mut self) -> &mut Self::Target {
40472 &mut self.inner
40473 }
40474}
40475pub struct PhysicalDeviceVulkan14PropertiesBuilder<'a> {
40477 inner: PhysicalDeviceVulkan14Properties,
40478 _marker: core::marker::PhantomData<&'a ()>,
40479}
40480impl PhysicalDeviceVulkan14Properties {
40481 #[inline]
40483 pub fn builder<'a>() -> PhysicalDeviceVulkan14PropertiesBuilder<'a> {
40484 PhysicalDeviceVulkan14PropertiesBuilder {
40485 inner: PhysicalDeviceVulkan14Properties {
40486 s_type: StructureType::from_raw(56i32),
40487 ..Default::default()
40488 },
40489 _marker: core::marker::PhantomData,
40490 }
40491 }
40492}
40493impl<'a> PhysicalDeviceVulkan14PropertiesBuilder<'a> {
40494 #[inline]
40495 pub fn line_sub_pixel_precision_bits(mut self, value: u32) -> Self {
40496 self.inner.line_sub_pixel_precision_bits = value;
40497 self
40498 }
40499 #[inline]
40500 pub fn max_vertex_attrib_divisor(mut self, value: u32) -> Self {
40501 self.inner.max_vertex_attrib_divisor = value;
40502 self
40503 }
40504 #[inline]
40505 pub fn supports_non_zero_first_instance(mut self, value: bool) -> Self {
40506 self.inner.supports_non_zero_first_instance = value as u32;
40507 self
40508 }
40509 #[inline]
40510 pub fn max_push_descriptors(mut self, value: u32) -> Self {
40511 self.inner.max_push_descriptors = value;
40512 self
40513 }
40514 #[inline]
40515 pub fn dynamic_rendering_local_read_depth_stencil_attachments(
40516 mut self,
40517 value: bool,
40518 ) -> Self {
40519 self.inner.dynamic_rendering_local_read_depth_stencil_attachments = value as u32;
40520 self
40521 }
40522 #[inline]
40523 pub fn dynamic_rendering_local_read_multisampled_attachments(
40524 mut self,
40525 value: bool,
40526 ) -> Self {
40527 self.inner.dynamic_rendering_local_read_multisampled_attachments = value as u32;
40528 self
40529 }
40530 #[inline]
40531 pub fn early_fragment_multisample_coverage_after_sample_counting(
40532 mut self,
40533 value: bool,
40534 ) -> Self {
40535 self.inner.early_fragment_multisample_coverage_after_sample_counting = value
40536 as u32;
40537 self
40538 }
40539 #[inline]
40540 pub fn early_fragment_sample_mask_test_before_sample_counting(
40541 mut self,
40542 value: bool,
40543 ) -> Self {
40544 self.inner.early_fragment_sample_mask_test_before_sample_counting = value as u32;
40545 self
40546 }
40547 #[inline]
40548 pub fn depth_stencil_swizzle_one_support(mut self, value: bool) -> Self {
40549 self.inner.depth_stencil_swizzle_one_support = value as u32;
40550 self
40551 }
40552 #[inline]
40553 pub fn polygon_mode_point_size(mut self, value: bool) -> Self {
40554 self.inner.polygon_mode_point_size = value as u32;
40555 self
40556 }
40557 #[inline]
40558 pub fn non_strict_single_pixel_wide_lines_use_parallelogram(
40559 mut self,
40560 value: bool,
40561 ) -> Self {
40562 self.inner.non_strict_single_pixel_wide_lines_use_parallelogram = value as u32;
40563 self
40564 }
40565 #[inline]
40566 pub fn non_strict_wide_lines_use_parallelogram(mut self, value: bool) -> Self {
40567 self.inner.non_strict_wide_lines_use_parallelogram = value as u32;
40568 self
40569 }
40570 #[inline]
40571 pub fn block_texel_view_compatible_multiple_layers(mut self, value: bool) -> Self {
40572 self.inner.block_texel_view_compatible_multiple_layers = value as u32;
40573 self
40574 }
40575 #[inline]
40576 pub fn max_combined_image_sampler_descriptor_count(mut self, value: u32) -> Self {
40577 self.inner.max_combined_image_sampler_descriptor_count = value;
40578 self
40579 }
40580 #[inline]
40581 pub fn fragment_shading_rate_clamp_combiner_inputs(mut self, value: bool) -> Self {
40582 self.inner.fragment_shading_rate_clamp_combiner_inputs = value as u32;
40583 self
40584 }
40585 #[inline]
40586 pub fn default_robustness_storage_buffers(
40587 mut self,
40588 value: PipelineRobustnessBufferBehavior,
40589 ) -> Self {
40590 self.inner.default_robustness_storage_buffers = value;
40591 self
40592 }
40593 #[inline]
40594 pub fn default_robustness_uniform_buffers(
40595 mut self,
40596 value: PipelineRobustnessBufferBehavior,
40597 ) -> Self {
40598 self.inner.default_robustness_uniform_buffers = value;
40599 self
40600 }
40601 #[inline]
40602 pub fn default_robustness_vertex_inputs(
40603 mut self,
40604 value: PipelineRobustnessBufferBehavior,
40605 ) -> Self {
40606 self.inner.default_robustness_vertex_inputs = value;
40607 self
40608 }
40609 #[inline]
40610 pub fn default_robustness_images(
40611 mut self,
40612 value: PipelineRobustnessImageBehavior,
40613 ) -> Self {
40614 self.inner.default_robustness_images = value;
40615 self
40616 }
40617 #[inline]
40618 pub fn copy_src_layout_count(mut self, value: u32) -> Self {
40619 self.inner.copy_src_layout_count = value;
40620 self
40621 }
40622 #[inline]
40623 pub fn copy_src_layouts(mut self, slice: &'a mut [ImageLayout]) -> Self {
40624 self.inner.copy_src_layout_count = slice.len() as u32;
40625 self.inner.p_copy_src_layouts = slice.as_mut_ptr();
40626 self
40627 }
40628 #[inline]
40629 pub fn copy_dst_layout_count(mut self, value: u32) -> Self {
40630 self.inner.copy_dst_layout_count = value;
40631 self
40632 }
40633 #[inline]
40634 pub fn copy_dst_layouts(mut self, slice: &'a mut [ImageLayout]) -> Self {
40635 self.inner.copy_dst_layout_count = slice.len() as u32;
40636 self.inner.p_copy_dst_layouts = slice.as_mut_ptr();
40637 self
40638 }
40639 #[inline]
40640 pub fn optimal_tiling_layout_uuid(
40641 mut self,
40642 value: [u8; UUID_SIZE as usize],
40643 ) -> Self {
40644 self.inner.optimal_tiling_layout_uuid = value;
40645 self
40646 }
40647 #[inline]
40648 pub fn identical_memory_type_requirements(mut self, value: bool) -> Self {
40649 self.inner.identical_memory_type_requirements = value as u32;
40650 self
40651 }
40652}
40653impl<'a> core::ops::Deref for PhysicalDeviceVulkan14PropertiesBuilder<'a> {
40654 type Target = PhysicalDeviceVulkan14Properties;
40655 #[inline]
40656 fn deref(&self) -> &Self::Target {
40657 &self.inner
40658 }
40659}
40660impl<'a> core::ops::DerefMut for PhysicalDeviceVulkan14PropertiesBuilder<'a> {
40661 #[inline]
40662 fn deref_mut(&mut self) -> &mut Self::Target {
40663 &mut self.inner
40664 }
40665}
40666pub struct PipelineCompilerControlCreateInfoAMDBuilder<'a> {
40668 inner: PipelineCompilerControlCreateInfoAMD,
40669 _marker: core::marker::PhantomData<&'a ()>,
40670}
40671impl PipelineCompilerControlCreateInfoAMD {
40672 #[inline]
40674 pub fn builder<'a>() -> PipelineCompilerControlCreateInfoAMDBuilder<'a> {
40675 PipelineCompilerControlCreateInfoAMDBuilder {
40676 inner: PipelineCompilerControlCreateInfoAMD {
40677 s_type: StructureType::from_raw(1000183000i32),
40678 ..Default::default()
40679 },
40680 _marker: core::marker::PhantomData,
40681 }
40682 }
40683}
40684impl<'a> PipelineCompilerControlCreateInfoAMDBuilder<'a> {
40685 #[inline]
40686 pub fn compiler_control_flags(
40687 mut self,
40688 value: PipelineCompilerControlFlagsAMD,
40689 ) -> Self {
40690 self.inner.compiler_control_flags = value;
40691 self
40692 }
40693 #[inline]
40695 pub fn push_next<T: ExtendsPipelineCompilerControlCreateInfoAMD>(
40696 mut self,
40697 next: &'a mut T,
40698 ) -> Self {
40699 unsafe {
40700 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
40701 (*next_ptr).p_next = self.inner.p_next as *mut _;
40702 self.inner.p_next = <*mut BaseOutStructure>::cast::<
40703 core::ffi::c_void,
40704 >(next_ptr) as *const _;
40705 }
40706 self
40707 }
40708}
40709impl<'a> core::ops::Deref for PipelineCompilerControlCreateInfoAMDBuilder<'a> {
40710 type Target = PipelineCompilerControlCreateInfoAMD;
40711 #[inline]
40712 fn deref(&self) -> &Self::Target {
40713 &self.inner
40714 }
40715}
40716impl<'a> core::ops::DerefMut for PipelineCompilerControlCreateInfoAMDBuilder<'a> {
40717 #[inline]
40718 fn deref_mut(&mut self) -> &mut Self::Target {
40719 &mut self.inner
40720 }
40721}
40722pub struct PhysicalDeviceCoherentMemoryFeaturesAMDBuilder<'a> {
40724 inner: PhysicalDeviceCoherentMemoryFeaturesAMD,
40725 _marker: core::marker::PhantomData<&'a ()>,
40726}
40727impl PhysicalDeviceCoherentMemoryFeaturesAMD {
40728 #[inline]
40730 pub fn builder<'a>() -> PhysicalDeviceCoherentMemoryFeaturesAMDBuilder<'a> {
40731 PhysicalDeviceCoherentMemoryFeaturesAMDBuilder {
40732 inner: PhysicalDeviceCoherentMemoryFeaturesAMD {
40733 s_type: StructureType::from_raw(1000229000i32),
40734 ..Default::default()
40735 },
40736 _marker: core::marker::PhantomData,
40737 }
40738 }
40739}
40740impl<'a> PhysicalDeviceCoherentMemoryFeaturesAMDBuilder<'a> {
40741 #[inline]
40742 pub fn device_coherent_memory(mut self, value: bool) -> Self {
40743 self.inner.device_coherent_memory = value as u32;
40744 self
40745 }
40746 #[inline]
40748 pub fn push_next<T: ExtendsPhysicalDeviceCoherentMemoryFeaturesAMD>(
40749 mut self,
40750 next: &'a mut T,
40751 ) -> Self {
40752 unsafe {
40753 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
40754 (*next_ptr).p_next = self.inner.p_next as *mut _;
40755 self.inner.p_next = <*mut BaseOutStructure>::cast::<
40756 core::ffi::c_void,
40757 >(next_ptr);
40758 }
40759 self
40760 }
40761}
40762impl<'a> core::ops::Deref for PhysicalDeviceCoherentMemoryFeaturesAMDBuilder<'a> {
40763 type Target = PhysicalDeviceCoherentMemoryFeaturesAMD;
40764 #[inline]
40765 fn deref(&self) -> &Self::Target {
40766 &self.inner
40767 }
40768}
40769impl<'a> core::ops::DerefMut for PhysicalDeviceCoherentMemoryFeaturesAMDBuilder<'a> {
40770 #[inline]
40771 fn deref_mut(&mut self) -> &mut Self::Target {
40772 &mut self.inner
40773 }
40774}
40775pub struct FaultDataBuilder<'a> {
40777 inner: FaultData,
40778 _marker: core::marker::PhantomData<&'a ()>,
40779}
40780impl FaultData {
40781 #[inline]
40783 pub fn builder<'a>() -> FaultDataBuilder<'a> {
40784 FaultDataBuilder {
40785 inner: FaultData {
40786 s_type: StructureType::from_raw(1000298007i32),
40787 ..Default::default()
40788 },
40789 _marker: core::marker::PhantomData,
40790 }
40791 }
40792}
40793impl<'a> FaultDataBuilder<'a> {
40794 #[inline]
40795 pub fn fault_level(mut self, value: FaultLevel) -> Self {
40796 self.inner.fault_level = value;
40797 self
40798 }
40799 #[inline]
40800 pub fn fault_type(mut self, value: FaultType) -> Self {
40801 self.inner.fault_type = value;
40802 self
40803 }
40804}
40805impl<'a> core::ops::Deref for FaultDataBuilder<'a> {
40806 type Target = FaultData;
40807 #[inline]
40808 fn deref(&self) -> &Self::Target {
40809 &self.inner
40810 }
40811}
40812impl<'a> core::ops::DerefMut for FaultDataBuilder<'a> {
40813 #[inline]
40814 fn deref_mut(&mut self) -> &mut Self::Target {
40815 &mut self.inner
40816 }
40817}
40818pub struct FaultCallbackInfoBuilder<'a> {
40820 inner: FaultCallbackInfo,
40821 _marker: core::marker::PhantomData<&'a ()>,
40822}
40823impl FaultCallbackInfo {
40824 #[inline]
40826 pub fn builder<'a>() -> FaultCallbackInfoBuilder<'a> {
40827 FaultCallbackInfoBuilder {
40828 inner: FaultCallbackInfo {
40829 s_type: StructureType::from_raw(1000298008i32),
40830 ..Default::default()
40831 },
40832 _marker: core::marker::PhantomData,
40833 }
40834 }
40835}
40836impl<'a> FaultCallbackInfoBuilder<'a> {
40837 #[inline]
40838 pub fn fault_count(mut self, value: u32) -> Self {
40839 self.inner.fault_count = value;
40840 self
40841 }
40842 #[inline]
40843 pub fn faults(mut self, slice: &'a mut [FaultData]) -> Self {
40844 self.inner.fault_count = slice.len() as u32;
40845 self.inner.p_faults = slice.as_mut_ptr();
40846 self
40847 }
40848 #[inline]
40849 pub fn pfn_fault_callback(mut self, value: PFN_vkFaultCallbackFunction) -> Self {
40850 self.inner.pfn_fault_callback = value;
40851 self
40852 }
40853 #[inline]
40855 pub fn push_next<T: ExtendsFaultCallbackInfo>(mut self, next: &'a mut T) -> Self {
40856 unsafe {
40857 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
40858 (*next_ptr).p_next = self.inner.p_next as *mut _;
40859 self.inner.p_next = <*mut BaseOutStructure>::cast::<
40860 core::ffi::c_void,
40861 >(next_ptr) as *const _;
40862 }
40863 self
40864 }
40865}
40866impl<'a> core::ops::Deref for FaultCallbackInfoBuilder<'a> {
40867 type Target = FaultCallbackInfo;
40868 #[inline]
40869 fn deref(&self) -> &Self::Target {
40870 &self.inner
40871 }
40872}
40873impl<'a> core::ops::DerefMut for FaultCallbackInfoBuilder<'a> {
40874 #[inline]
40875 fn deref_mut(&mut self) -> &mut Self::Target {
40876 &mut self.inner
40877 }
40878}
40879pub struct PhysicalDeviceToolPropertiesBuilder<'a> {
40881 inner: PhysicalDeviceToolProperties,
40882 _marker: core::marker::PhantomData<&'a ()>,
40883}
40884impl PhysicalDeviceToolProperties {
40885 #[inline]
40887 pub fn builder<'a>() -> PhysicalDeviceToolPropertiesBuilder<'a> {
40888 PhysicalDeviceToolPropertiesBuilder {
40889 inner: PhysicalDeviceToolProperties {
40890 s_type: StructureType::from_raw(1000245000i32),
40891 ..Default::default()
40892 },
40893 _marker: core::marker::PhantomData,
40894 }
40895 }
40896}
40897impl<'a> PhysicalDeviceToolPropertiesBuilder<'a> {
40898 #[inline]
40899 pub fn name(
40900 mut self,
40901 value: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
40902 ) -> Self {
40903 self.inner.name = value;
40904 self
40905 }
40906 #[inline]
40907 pub fn version(
40908 mut self,
40909 value: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
40910 ) -> Self {
40911 self.inner.version = value;
40912 self
40913 }
40914 #[inline]
40915 pub fn purposes(mut self, value: ToolPurposeFlags) -> Self {
40916 self.inner.purposes = value;
40917 self
40918 }
40919 #[inline]
40920 pub fn description(
40921 mut self,
40922 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
40923 ) -> Self {
40924 self.inner.description = value;
40925 self
40926 }
40927 #[inline]
40928 pub fn layer(
40929 mut self,
40930 value: crate::StringArray<{ MAX_EXTENSION_NAME_SIZE as usize }>,
40931 ) -> Self {
40932 self.inner.layer = value;
40933 self
40934 }
40935}
40936impl<'a> core::ops::Deref for PhysicalDeviceToolPropertiesBuilder<'a> {
40937 type Target = PhysicalDeviceToolProperties;
40938 #[inline]
40939 fn deref(&self) -> &Self::Target {
40940 &self.inner
40941 }
40942}
40943impl<'a> core::ops::DerefMut for PhysicalDeviceToolPropertiesBuilder<'a> {
40944 #[inline]
40945 fn deref_mut(&mut self) -> &mut Self::Target {
40946 &mut self.inner
40947 }
40948}
40949pub struct SamplerCustomBorderColorCreateInfoEXTBuilder<'a> {
40951 inner: SamplerCustomBorderColorCreateInfoEXT,
40952 _marker: core::marker::PhantomData<&'a ()>,
40953}
40954impl SamplerCustomBorderColorCreateInfoEXT {
40955 #[inline]
40957 pub fn builder<'a>() -> SamplerCustomBorderColorCreateInfoEXTBuilder<'a> {
40958 SamplerCustomBorderColorCreateInfoEXTBuilder {
40959 inner: SamplerCustomBorderColorCreateInfoEXT {
40960 s_type: StructureType::from_raw(1000287000i32),
40961 ..Default::default()
40962 },
40963 _marker: core::marker::PhantomData,
40964 }
40965 }
40966}
40967impl<'a> SamplerCustomBorderColorCreateInfoEXTBuilder<'a> {
40968 #[inline]
40969 pub fn custom_border_color(mut self, value: ClearColorValue) -> Self {
40970 self.inner.custom_border_color = value;
40971 self
40972 }
40973 #[inline]
40974 pub fn format(mut self, value: Format) -> Self {
40975 self.inner.format = value;
40976 self
40977 }
40978 #[inline]
40980 pub fn push_next<T: ExtendsSamplerCustomBorderColorCreateInfoEXT>(
40981 mut self,
40982 next: &'a mut T,
40983 ) -> Self {
40984 unsafe {
40985 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
40986 (*next_ptr).p_next = self.inner.p_next as *mut _;
40987 self.inner.p_next = <*mut BaseOutStructure>::cast::<
40988 core::ffi::c_void,
40989 >(next_ptr) as *const _;
40990 }
40991 self
40992 }
40993}
40994impl<'a> core::ops::Deref for SamplerCustomBorderColorCreateInfoEXTBuilder<'a> {
40995 type Target = SamplerCustomBorderColorCreateInfoEXT;
40996 #[inline]
40997 fn deref(&self) -> &Self::Target {
40998 &self.inner
40999 }
41000}
41001impl<'a> core::ops::DerefMut for SamplerCustomBorderColorCreateInfoEXTBuilder<'a> {
41002 #[inline]
41003 fn deref_mut(&mut self) -> &mut Self::Target {
41004 &mut self.inner
41005 }
41006}
41007pub struct PhysicalDeviceCustomBorderColorPropertiesEXTBuilder<'a> {
41009 inner: PhysicalDeviceCustomBorderColorPropertiesEXT,
41010 _marker: core::marker::PhantomData<&'a ()>,
41011}
41012impl PhysicalDeviceCustomBorderColorPropertiesEXT {
41013 #[inline]
41015 pub fn builder<'a>() -> PhysicalDeviceCustomBorderColorPropertiesEXTBuilder<'a> {
41016 PhysicalDeviceCustomBorderColorPropertiesEXTBuilder {
41017 inner: PhysicalDeviceCustomBorderColorPropertiesEXT {
41018 s_type: StructureType::from_raw(1000287001i32),
41019 ..Default::default()
41020 },
41021 _marker: core::marker::PhantomData,
41022 }
41023 }
41024}
41025impl<'a> PhysicalDeviceCustomBorderColorPropertiesEXTBuilder<'a> {
41026 #[inline]
41027 pub fn max_custom_border_color_samplers(mut self, value: u32) -> Self {
41028 self.inner.max_custom_border_color_samplers = value;
41029 self
41030 }
41031}
41032impl<'a> core::ops::Deref for PhysicalDeviceCustomBorderColorPropertiesEXTBuilder<'a> {
41033 type Target = PhysicalDeviceCustomBorderColorPropertiesEXT;
41034 #[inline]
41035 fn deref(&self) -> &Self::Target {
41036 &self.inner
41037 }
41038}
41039impl<'a> core::ops::DerefMut
41040for PhysicalDeviceCustomBorderColorPropertiesEXTBuilder<'a> {
41041 #[inline]
41042 fn deref_mut(&mut self) -> &mut Self::Target {
41043 &mut self.inner
41044 }
41045}
41046pub struct PhysicalDeviceCustomBorderColorFeaturesEXTBuilder<'a> {
41048 inner: PhysicalDeviceCustomBorderColorFeaturesEXT,
41049 _marker: core::marker::PhantomData<&'a ()>,
41050}
41051impl PhysicalDeviceCustomBorderColorFeaturesEXT {
41052 #[inline]
41054 pub fn builder<'a>() -> PhysicalDeviceCustomBorderColorFeaturesEXTBuilder<'a> {
41055 PhysicalDeviceCustomBorderColorFeaturesEXTBuilder {
41056 inner: PhysicalDeviceCustomBorderColorFeaturesEXT {
41057 s_type: StructureType::from_raw(1000287002i32),
41058 ..Default::default()
41059 },
41060 _marker: core::marker::PhantomData,
41061 }
41062 }
41063}
41064impl<'a> PhysicalDeviceCustomBorderColorFeaturesEXTBuilder<'a> {
41065 #[inline]
41066 pub fn custom_border_colors(mut self, value: bool) -> Self {
41067 self.inner.custom_border_colors = value as u32;
41068 self
41069 }
41070 #[inline]
41071 pub fn custom_border_color_without_format(mut self, value: bool) -> Self {
41072 self.inner.custom_border_color_without_format = value as u32;
41073 self
41074 }
41075 #[inline]
41077 pub fn push_next<T: ExtendsPhysicalDeviceCustomBorderColorFeaturesEXT>(
41078 mut self,
41079 next: &'a mut T,
41080 ) -> Self {
41081 unsafe {
41082 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41083 (*next_ptr).p_next = self.inner.p_next as *mut _;
41084 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41085 core::ffi::c_void,
41086 >(next_ptr);
41087 }
41088 self
41089 }
41090}
41091impl<'a> core::ops::Deref for PhysicalDeviceCustomBorderColorFeaturesEXTBuilder<'a> {
41092 type Target = PhysicalDeviceCustomBorderColorFeaturesEXT;
41093 #[inline]
41094 fn deref(&self) -> &Self::Target {
41095 &self.inner
41096 }
41097}
41098impl<'a> core::ops::DerefMut for PhysicalDeviceCustomBorderColorFeaturesEXTBuilder<'a> {
41099 #[inline]
41100 fn deref_mut(&mut self) -> &mut Self::Target {
41101 &mut self.inner
41102 }
41103}
41104pub struct SamplerBorderColorComponentMappingCreateInfoEXTBuilder<'a> {
41106 inner: SamplerBorderColorComponentMappingCreateInfoEXT,
41107 _marker: core::marker::PhantomData<&'a ()>,
41108}
41109impl SamplerBorderColorComponentMappingCreateInfoEXT {
41110 #[inline]
41112 pub fn builder<'a>() -> SamplerBorderColorComponentMappingCreateInfoEXTBuilder<'a> {
41113 SamplerBorderColorComponentMappingCreateInfoEXTBuilder {
41114 inner: SamplerBorderColorComponentMappingCreateInfoEXT {
41115 s_type: StructureType::from_raw(1000411001i32),
41116 ..Default::default()
41117 },
41118 _marker: core::marker::PhantomData,
41119 }
41120 }
41121}
41122impl<'a> SamplerBorderColorComponentMappingCreateInfoEXTBuilder<'a> {
41123 #[inline]
41124 pub fn components(mut self, value: ComponentMapping) -> Self {
41125 self.inner.components = value;
41126 self
41127 }
41128 #[inline]
41129 pub fn srgb(mut self, value: bool) -> Self {
41130 self.inner.srgb = value as u32;
41131 self
41132 }
41133 #[inline]
41135 pub fn push_next<T: ExtendsSamplerBorderColorComponentMappingCreateInfoEXT>(
41136 mut self,
41137 next: &'a mut T,
41138 ) -> Self {
41139 unsafe {
41140 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41141 (*next_ptr).p_next = self.inner.p_next as *mut _;
41142 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41143 core::ffi::c_void,
41144 >(next_ptr) as *const _;
41145 }
41146 self
41147 }
41148}
41149impl<'a> core::ops::Deref
41150for SamplerBorderColorComponentMappingCreateInfoEXTBuilder<'a> {
41151 type Target = SamplerBorderColorComponentMappingCreateInfoEXT;
41152 #[inline]
41153 fn deref(&self) -> &Self::Target {
41154 &self.inner
41155 }
41156}
41157impl<'a> core::ops::DerefMut
41158for SamplerBorderColorComponentMappingCreateInfoEXTBuilder<'a> {
41159 #[inline]
41160 fn deref_mut(&mut self) -> &mut Self::Target {
41161 &mut self.inner
41162 }
41163}
41164pub struct PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder<'a> {
41166 inner: PhysicalDeviceBorderColorSwizzleFeaturesEXT,
41167 _marker: core::marker::PhantomData<&'a ()>,
41168}
41169impl PhysicalDeviceBorderColorSwizzleFeaturesEXT {
41170 #[inline]
41172 pub fn builder<'a>() -> PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder<'a> {
41173 PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder {
41174 inner: PhysicalDeviceBorderColorSwizzleFeaturesEXT {
41175 s_type: StructureType::from_raw(1000411000i32),
41176 ..Default::default()
41177 },
41178 _marker: core::marker::PhantomData,
41179 }
41180 }
41181}
41182impl<'a> PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder<'a> {
41183 #[inline]
41184 pub fn border_color_swizzle(mut self, value: bool) -> Self {
41185 self.inner.border_color_swizzle = value as u32;
41186 self
41187 }
41188 #[inline]
41189 pub fn border_color_swizzle_from_image(mut self, value: bool) -> Self {
41190 self.inner.border_color_swizzle_from_image = value as u32;
41191 self
41192 }
41193 #[inline]
41195 pub fn push_next<T: ExtendsPhysicalDeviceBorderColorSwizzleFeaturesEXT>(
41196 mut self,
41197 next: &'a mut T,
41198 ) -> Self {
41199 unsafe {
41200 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41201 (*next_ptr).p_next = self.inner.p_next as *mut _;
41202 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41203 core::ffi::c_void,
41204 >(next_ptr);
41205 }
41206 self
41207 }
41208}
41209impl<'a> core::ops::Deref for PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder<'a> {
41210 type Target = PhysicalDeviceBorderColorSwizzleFeaturesEXT;
41211 #[inline]
41212 fn deref(&self) -> &Self::Target {
41213 &self.inner
41214 }
41215}
41216impl<'a> core::ops::DerefMut for PhysicalDeviceBorderColorSwizzleFeaturesEXTBuilder<'a> {
41217 #[inline]
41218 fn deref_mut(&mut self) -> &mut Self::Target {
41219 &mut self.inner
41220 }
41221}
41222pub struct AccelerationStructureGeometryTrianglesDataKHRBuilder<'a> {
41224 inner: AccelerationStructureGeometryTrianglesDataKHR,
41225 _marker: core::marker::PhantomData<&'a ()>,
41226}
41227impl AccelerationStructureGeometryTrianglesDataKHR {
41228 #[inline]
41230 pub fn builder<'a>() -> AccelerationStructureGeometryTrianglesDataKHRBuilder<'a> {
41231 AccelerationStructureGeometryTrianglesDataKHRBuilder {
41232 inner: AccelerationStructureGeometryTrianglesDataKHR {
41233 s_type: StructureType::from_raw(1000150005i32),
41234 ..Default::default()
41235 },
41236 _marker: core::marker::PhantomData,
41237 }
41238 }
41239}
41240impl<'a> AccelerationStructureGeometryTrianglesDataKHRBuilder<'a> {
41241 #[inline]
41242 pub fn vertex_format(mut self, value: Format) -> Self {
41243 self.inner.vertex_format = value;
41244 self
41245 }
41246 #[inline]
41247 pub fn vertex_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41248 self.inner.vertex_data = value;
41249 self
41250 }
41251 #[inline]
41252 pub fn vertex_stride(mut self, value: u64) -> Self {
41253 self.inner.vertex_stride = value;
41254 self
41255 }
41256 #[inline]
41257 pub fn max_vertex(mut self, value: u32) -> Self {
41258 self.inner.max_vertex = value;
41259 self
41260 }
41261 #[inline]
41262 pub fn index_type(mut self, value: IndexType) -> Self {
41263 self.inner.index_type = value;
41264 self
41265 }
41266 #[inline]
41267 pub fn index_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41268 self.inner.index_data = value;
41269 self
41270 }
41271 #[inline]
41272 pub fn transform_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41273 self.inner.transform_data = value;
41274 self
41275 }
41276 #[inline]
41278 pub fn push_next<T: ExtendsAccelerationStructureGeometryTrianglesDataKHR>(
41279 mut self,
41280 next: &'a mut T,
41281 ) -> Self {
41282 unsafe {
41283 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41284 (*next_ptr).p_next = self.inner.p_next as *mut _;
41285 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41286 core::ffi::c_void,
41287 >(next_ptr) as *const _;
41288 }
41289 self
41290 }
41291}
41292impl<'a> core::ops::Deref for AccelerationStructureGeometryTrianglesDataKHRBuilder<'a> {
41293 type Target = AccelerationStructureGeometryTrianglesDataKHR;
41294 #[inline]
41295 fn deref(&self) -> &Self::Target {
41296 &self.inner
41297 }
41298}
41299impl<'a> core::ops::DerefMut
41300for AccelerationStructureGeometryTrianglesDataKHRBuilder<'a> {
41301 #[inline]
41302 fn deref_mut(&mut self) -> &mut Self::Target {
41303 &mut self.inner
41304 }
41305}
41306pub struct AccelerationStructureGeometryAabbsDataKHRBuilder<'a> {
41308 inner: AccelerationStructureGeometryAabbsDataKHR,
41309 _marker: core::marker::PhantomData<&'a ()>,
41310}
41311impl AccelerationStructureGeometryAabbsDataKHR {
41312 #[inline]
41314 pub fn builder<'a>() -> AccelerationStructureGeometryAabbsDataKHRBuilder<'a> {
41315 AccelerationStructureGeometryAabbsDataKHRBuilder {
41316 inner: AccelerationStructureGeometryAabbsDataKHR {
41317 s_type: StructureType::from_raw(1000150003i32),
41318 ..Default::default()
41319 },
41320 _marker: core::marker::PhantomData,
41321 }
41322 }
41323}
41324impl<'a> AccelerationStructureGeometryAabbsDataKHRBuilder<'a> {
41325 #[inline]
41326 pub fn data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41327 self.inner.data = value;
41328 self
41329 }
41330 #[inline]
41331 pub fn stride(mut self, value: u64) -> Self {
41332 self.inner.stride = value;
41333 self
41334 }
41335 #[inline]
41337 pub fn push_next<T: ExtendsAccelerationStructureGeometryAabbsDataKHR>(
41338 mut self,
41339 next: &'a mut T,
41340 ) -> Self {
41341 unsafe {
41342 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41343 (*next_ptr).p_next = self.inner.p_next as *mut _;
41344 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41345 core::ffi::c_void,
41346 >(next_ptr) as *const _;
41347 }
41348 self
41349 }
41350}
41351impl<'a> core::ops::Deref for AccelerationStructureGeometryAabbsDataKHRBuilder<'a> {
41352 type Target = AccelerationStructureGeometryAabbsDataKHR;
41353 #[inline]
41354 fn deref(&self) -> &Self::Target {
41355 &self.inner
41356 }
41357}
41358impl<'a> core::ops::DerefMut for AccelerationStructureGeometryAabbsDataKHRBuilder<'a> {
41359 #[inline]
41360 fn deref_mut(&mut self) -> &mut Self::Target {
41361 &mut self.inner
41362 }
41363}
41364pub struct AccelerationStructureGeometryInstancesDataKHRBuilder<'a> {
41366 inner: AccelerationStructureGeometryInstancesDataKHR,
41367 _marker: core::marker::PhantomData<&'a ()>,
41368}
41369impl AccelerationStructureGeometryInstancesDataKHR {
41370 #[inline]
41372 pub fn builder<'a>() -> AccelerationStructureGeometryInstancesDataKHRBuilder<'a> {
41373 AccelerationStructureGeometryInstancesDataKHRBuilder {
41374 inner: AccelerationStructureGeometryInstancesDataKHR {
41375 s_type: StructureType::from_raw(1000150004i32),
41376 ..Default::default()
41377 },
41378 _marker: core::marker::PhantomData,
41379 }
41380 }
41381}
41382impl<'a> AccelerationStructureGeometryInstancesDataKHRBuilder<'a> {
41383 #[inline]
41384 pub fn array_of_pointers(mut self, value: bool) -> Self {
41385 self.inner.array_of_pointers = value as u32;
41386 self
41387 }
41388 #[inline]
41389 pub fn data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41390 self.inner.data = value;
41391 self
41392 }
41393 #[inline]
41395 pub fn push_next<T: ExtendsAccelerationStructureGeometryInstancesDataKHR>(
41396 mut self,
41397 next: &'a mut T,
41398 ) -> Self {
41399 unsafe {
41400 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41401 (*next_ptr).p_next = self.inner.p_next as *mut _;
41402 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41403 core::ffi::c_void,
41404 >(next_ptr) as *const _;
41405 }
41406 self
41407 }
41408}
41409impl<'a> core::ops::Deref for AccelerationStructureGeometryInstancesDataKHRBuilder<'a> {
41410 type Target = AccelerationStructureGeometryInstancesDataKHR;
41411 #[inline]
41412 fn deref(&self) -> &Self::Target {
41413 &self.inner
41414 }
41415}
41416impl<'a> core::ops::DerefMut
41417for AccelerationStructureGeometryInstancesDataKHRBuilder<'a> {
41418 #[inline]
41419 fn deref_mut(&mut self) -> &mut Self::Target {
41420 &mut self.inner
41421 }
41422}
41423pub struct AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder<'a> {
41425 inner: AccelerationStructureGeometryLinearSweptSpheresDataNV,
41426 _marker: core::marker::PhantomData<&'a ()>,
41427}
41428impl AccelerationStructureGeometryLinearSweptSpheresDataNV {
41429 #[inline]
41431 pub fn builder<'a>() -> AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder<
41432 'a,
41433 > {
41434 AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder {
41435 inner: AccelerationStructureGeometryLinearSweptSpheresDataNV {
41436 s_type: StructureType::from_raw(1000429009i32),
41437 ..Default::default()
41438 },
41439 _marker: core::marker::PhantomData,
41440 }
41441 }
41442}
41443impl<'a> AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder<'a> {
41444 #[inline]
41445 pub fn vertex_format(mut self, value: Format) -> Self {
41446 self.inner.vertex_format = value;
41447 self
41448 }
41449 #[inline]
41450 pub fn vertex_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41451 self.inner.vertex_data = value;
41452 self
41453 }
41454 #[inline]
41455 pub fn vertex_stride(mut self, value: u64) -> Self {
41456 self.inner.vertex_stride = value;
41457 self
41458 }
41459 #[inline]
41460 pub fn radius_format(mut self, value: Format) -> Self {
41461 self.inner.radius_format = value;
41462 self
41463 }
41464 #[inline]
41465 pub fn radius_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41466 self.inner.radius_data = value;
41467 self
41468 }
41469 #[inline]
41470 pub fn radius_stride(mut self, value: u64) -> Self {
41471 self.inner.radius_stride = value;
41472 self
41473 }
41474 #[inline]
41475 pub fn index_type(mut self, value: IndexType) -> Self {
41476 self.inner.index_type = value;
41477 self
41478 }
41479 #[inline]
41480 pub fn index_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41481 self.inner.index_data = value;
41482 self
41483 }
41484 #[inline]
41485 pub fn index_stride(mut self, value: u64) -> Self {
41486 self.inner.index_stride = value;
41487 self
41488 }
41489 #[inline]
41490 pub fn indexing_mode(mut self, value: RayTracingLssIndexingModeNV) -> Self {
41491 self.inner.indexing_mode = value;
41492 self
41493 }
41494 #[inline]
41495 pub fn end_caps_mode(mut self, value: RayTracingLssPrimitiveEndCapsModeNV) -> Self {
41496 self.inner.end_caps_mode = value;
41497 self
41498 }
41499 #[inline]
41501 pub fn push_next<T: ExtendsAccelerationStructureGeometryLinearSweptSpheresDataNV>(
41502 mut self,
41503 next: &'a mut T,
41504 ) -> Self {
41505 unsafe {
41506 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41507 (*next_ptr).p_next = self.inner.p_next as *mut _;
41508 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41509 core::ffi::c_void,
41510 >(next_ptr) as *const _;
41511 }
41512 self
41513 }
41514}
41515impl<'a> core::ops::Deref
41516for AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder<'a> {
41517 type Target = AccelerationStructureGeometryLinearSweptSpheresDataNV;
41518 #[inline]
41519 fn deref(&self) -> &Self::Target {
41520 &self.inner
41521 }
41522}
41523impl<'a> core::ops::DerefMut
41524for AccelerationStructureGeometryLinearSweptSpheresDataNVBuilder<'a> {
41525 #[inline]
41526 fn deref_mut(&mut self) -> &mut Self::Target {
41527 &mut self.inner
41528 }
41529}
41530pub struct AccelerationStructureGeometrySpheresDataNVBuilder<'a> {
41532 inner: AccelerationStructureGeometrySpheresDataNV,
41533 _marker: core::marker::PhantomData<&'a ()>,
41534}
41535impl AccelerationStructureGeometrySpheresDataNV {
41536 #[inline]
41538 pub fn builder<'a>() -> AccelerationStructureGeometrySpheresDataNVBuilder<'a> {
41539 AccelerationStructureGeometrySpheresDataNVBuilder {
41540 inner: AccelerationStructureGeometrySpheresDataNV {
41541 s_type: StructureType::from_raw(1000429010i32),
41542 ..Default::default()
41543 },
41544 _marker: core::marker::PhantomData,
41545 }
41546 }
41547}
41548impl<'a> AccelerationStructureGeometrySpheresDataNVBuilder<'a> {
41549 #[inline]
41550 pub fn vertex_format(mut self, value: Format) -> Self {
41551 self.inner.vertex_format = value;
41552 self
41553 }
41554 #[inline]
41555 pub fn vertex_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41556 self.inner.vertex_data = value;
41557 self
41558 }
41559 #[inline]
41560 pub fn vertex_stride(mut self, value: u64) -> Self {
41561 self.inner.vertex_stride = value;
41562 self
41563 }
41564 #[inline]
41565 pub fn radius_format(mut self, value: Format) -> Self {
41566 self.inner.radius_format = value;
41567 self
41568 }
41569 #[inline]
41570 pub fn radius_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41571 self.inner.radius_data = value;
41572 self
41573 }
41574 #[inline]
41575 pub fn radius_stride(mut self, value: u64) -> Self {
41576 self.inner.radius_stride = value;
41577 self
41578 }
41579 #[inline]
41580 pub fn index_type(mut self, value: IndexType) -> Self {
41581 self.inner.index_type = value;
41582 self
41583 }
41584 #[inline]
41585 pub fn index_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
41586 self.inner.index_data = value;
41587 self
41588 }
41589 #[inline]
41590 pub fn index_stride(mut self, value: u64) -> Self {
41591 self.inner.index_stride = value;
41592 self
41593 }
41594 #[inline]
41596 pub fn push_next<T: ExtendsAccelerationStructureGeometrySpheresDataNV>(
41597 mut self,
41598 next: &'a mut T,
41599 ) -> Self {
41600 unsafe {
41601 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41602 (*next_ptr).p_next = self.inner.p_next as *mut _;
41603 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41604 core::ffi::c_void,
41605 >(next_ptr) as *const _;
41606 }
41607 self
41608 }
41609}
41610impl<'a> core::ops::Deref for AccelerationStructureGeometrySpheresDataNVBuilder<'a> {
41611 type Target = AccelerationStructureGeometrySpheresDataNV;
41612 #[inline]
41613 fn deref(&self) -> &Self::Target {
41614 &self.inner
41615 }
41616}
41617impl<'a> core::ops::DerefMut for AccelerationStructureGeometrySpheresDataNVBuilder<'a> {
41618 #[inline]
41619 fn deref_mut(&mut self) -> &mut Self::Target {
41620 &mut self.inner
41621 }
41622}
41623pub struct AccelerationStructureGeometryKHRBuilder<'a> {
41625 inner: AccelerationStructureGeometryKHR,
41626 _marker: core::marker::PhantomData<&'a ()>,
41627}
41628impl AccelerationStructureGeometryKHR {
41629 #[inline]
41631 pub fn builder<'a>() -> AccelerationStructureGeometryKHRBuilder<'a> {
41632 AccelerationStructureGeometryKHRBuilder {
41633 inner: AccelerationStructureGeometryKHR {
41634 s_type: StructureType::from_raw(1000150006i32),
41635 ..Default::default()
41636 },
41637 _marker: core::marker::PhantomData,
41638 }
41639 }
41640}
41641impl<'a> AccelerationStructureGeometryKHRBuilder<'a> {
41642 #[inline]
41643 pub fn geometry_type(mut self, value: GeometryTypeKHR) -> Self {
41644 self.inner.geometry_type = value;
41645 self
41646 }
41647 #[inline]
41648 pub fn geometry(mut self, value: AccelerationStructureGeometryDataKHR) -> Self {
41649 self.inner.geometry = value;
41650 self
41651 }
41652 #[inline]
41653 pub fn flags(mut self, value: GeometryFlagsKHR) -> Self {
41654 self.inner.flags = value;
41655 self
41656 }
41657 #[inline]
41659 pub fn push_next<T: ExtendsAccelerationStructureGeometryKHR>(
41660 mut self,
41661 next: &'a mut T,
41662 ) -> Self {
41663 unsafe {
41664 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41665 (*next_ptr).p_next = self.inner.p_next as *mut _;
41666 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41667 core::ffi::c_void,
41668 >(next_ptr) as *const _;
41669 }
41670 self
41671 }
41672}
41673impl<'a> core::ops::Deref for AccelerationStructureGeometryKHRBuilder<'a> {
41674 type Target = AccelerationStructureGeometryKHR;
41675 #[inline]
41676 fn deref(&self) -> &Self::Target {
41677 &self.inner
41678 }
41679}
41680impl<'a> core::ops::DerefMut for AccelerationStructureGeometryKHRBuilder<'a> {
41681 #[inline]
41682 fn deref_mut(&mut self) -> &mut Self::Target {
41683 &mut self.inner
41684 }
41685}
41686pub struct AccelerationStructureBuildGeometryInfoKHRBuilder<'a> {
41688 inner: AccelerationStructureBuildGeometryInfoKHR,
41689 _marker: core::marker::PhantomData<&'a ()>,
41690}
41691impl AccelerationStructureBuildGeometryInfoKHR {
41692 #[inline]
41694 pub fn builder<'a>() -> AccelerationStructureBuildGeometryInfoKHRBuilder<'a> {
41695 AccelerationStructureBuildGeometryInfoKHRBuilder {
41696 inner: AccelerationStructureBuildGeometryInfoKHR {
41697 s_type: StructureType::from_raw(1000150000i32),
41698 ..Default::default()
41699 },
41700 _marker: core::marker::PhantomData,
41701 }
41702 }
41703}
41704impl<'a> AccelerationStructureBuildGeometryInfoKHRBuilder<'a> {
41705 #[inline]
41706 pub fn r#type(mut self, value: AccelerationStructureTypeKHR) -> Self {
41707 self.inner.r#type = value;
41708 self
41709 }
41710 #[inline]
41711 pub fn flags(mut self, value: BuildAccelerationStructureFlagsKHR) -> Self {
41712 self.inner.flags = value;
41713 self
41714 }
41715 #[inline]
41716 pub fn mode(mut self, value: BuildAccelerationStructureModeKHR) -> Self {
41717 self.inner.mode = value;
41718 self
41719 }
41720 #[inline]
41721 pub fn src_acceleration_structure(
41722 mut self,
41723 value: AccelerationStructureKHR,
41724 ) -> Self {
41725 self.inner.src_acceleration_structure = value;
41726 self
41727 }
41728 #[inline]
41729 pub fn dst_acceleration_structure(
41730 mut self,
41731 value: AccelerationStructureKHR,
41732 ) -> Self {
41733 self.inner.dst_acceleration_structure = value;
41734 self
41735 }
41736 #[inline]
41737 pub fn geometry_count(mut self, value: u32) -> Self {
41738 self.inner.geometry_count = value;
41739 self
41740 }
41741 #[inline]
41742 pub fn geometries(mut self, slice: &'a [AccelerationStructureGeometryKHR]) -> Self {
41743 self.inner.geometry_count = slice.len() as u32;
41744 self.inner.p_geometries = slice.as_ptr();
41745 self
41746 }
41747 #[inline]
41748 pub fn pp_geometries(
41749 mut self,
41750 value: *const *const AccelerationStructureGeometryKHR,
41751 ) -> Self {
41752 self.inner.pp_geometries = value;
41753 self
41754 }
41755 #[inline]
41756 pub fn scratch_data(mut self, value: DeviceOrHostAddressKHR) -> Self {
41757 self.inner.scratch_data = value;
41758 self
41759 }
41760 #[inline]
41762 pub fn push_next<T: ExtendsAccelerationStructureBuildGeometryInfoKHR>(
41763 mut self,
41764 next: &'a mut T,
41765 ) -> Self {
41766 unsafe {
41767 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41768 (*next_ptr).p_next = self.inner.p_next as *mut _;
41769 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41770 core::ffi::c_void,
41771 >(next_ptr) as *const _;
41772 }
41773 self
41774 }
41775}
41776impl<'a> core::ops::Deref for AccelerationStructureBuildGeometryInfoKHRBuilder<'a> {
41777 type Target = AccelerationStructureBuildGeometryInfoKHR;
41778 #[inline]
41779 fn deref(&self) -> &Self::Target {
41780 &self.inner
41781 }
41782}
41783impl<'a> core::ops::DerefMut for AccelerationStructureBuildGeometryInfoKHRBuilder<'a> {
41784 #[inline]
41785 fn deref_mut(&mut self) -> &mut Self::Target {
41786 &mut self.inner
41787 }
41788}
41789pub struct AccelerationStructureBuildRangeInfoKHRBuilder {
41791 inner: AccelerationStructureBuildRangeInfoKHR,
41792}
41793impl AccelerationStructureBuildRangeInfoKHR {
41794 #[inline]
41796 pub fn builder() -> AccelerationStructureBuildRangeInfoKHRBuilder {
41797 AccelerationStructureBuildRangeInfoKHRBuilder {
41798 inner: AccelerationStructureBuildRangeInfoKHR {
41799 ..Default::default()
41800 },
41801 }
41802 }
41803}
41804impl AccelerationStructureBuildRangeInfoKHRBuilder {
41805 #[inline]
41806 pub fn primitive_count(mut self, value: u32) -> Self {
41807 self.inner.primitive_count = value;
41808 self
41809 }
41810 #[inline]
41811 pub fn primitive_offset(mut self, value: u32) -> Self {
41812 self.inner.primitive_offset = value;
41813 self
41814 }
41815 #[inline]
41816 pub fn first_vertex(mut self, value: u32) -> Self {
41817 self.inner.first_vertex = value;
41818 self
41819 }
41820 #[inline]
41821 pub fn transform_offset(mut self, value: u32) -> Self {
41822 self.inner.transform_offset = value;
41823 self
41824 }
41825}
41826impl core::ops::Deref for AccelerationStructureBuildRangeInfoKHRBuilder {
41827 type Target = AccelerationStructureBuildRangeInfoKHR;
41828 #[inline]
41829 fn deref(&self) -> &Self::Target {
41830 &self.inner
41831 }
41832}
41833impl core::ops::DerefMut for AccelerationStructureBuildRangeInfoKHRBuilder {
41834 #[inline]
41835 fn deref_mut(&mut self) -> &mut Self::Target {
41836 &mut self.inner
41837 }
41838}
41839pub struct AccelerationStructureCreateInfoKHRBuilder<'a> {
41841 inner: AccelerationStructureCreateInfoKHR,
41842 _marker: core::marker::PhantomData<&'a ()>,
41843}
41844impl AccelerationStructureCreateInfoKHR {
41845 #[inline]
41847 pub fn builder<'a>() -> AccelerationStructureCreateInfoKHRBuilder<'a> {
41848 AccelerationStructureCreateInfoKHRBuilder {
41849 inner: AccelerationStructureCreateInfoKHR {
41850 s_type: StructureType::from_raw(1000150017i32),
41851 ..Default::default()
41852 },
41853 _marker: core::marker::PhantomData,
41854 }
41855 }
41856}
41857impl<'a> AccelerationStructureCreateInfoKHRBuilder<'a> {
41858 #[inline]
41859 pub fn create_flags(mut self, value: AccelerationStructureCreateFlagsKHR) -> Self {
41860 self.inner.create_flags = value;
41861 self
41862 }
41863 #[inline]
41864 pub fn buffer(mut self, value: Buffer) -> Self {
41865 self.inner.buffer = value;
41866 self
41867 }
41868 #[inline]
41869 pub fn offset(mut self, value: u64) -> Self {
41870 self.inner.offset = value;
41871 self
41872 }
41873 #[inline]
41874 pub fn size(mut self, value: u64) -> Self {
41875 self.inner.size = value;
41876 self
41877 }
41878 #[inline]
41879 pub fn r#type(mut self, value: AccelerationStructureTypeKHR) -> Self {
41880 self.inner.r#type = value;
41881 self
41882 }
41883 #[inline]
41884 pub fn device_address(mut self, value: u64) -> Self {
41885 self.inner.device_address = value;
41886 self
41887 }
41888 #[inline]
41890 pub fn push_next<T: ExtendsAccelerationStructureCreateInfoKHR>(
41891 mut self,
41892 next: &'a mut T,
41893 ) -> Self {
41894 unsafe {
41895 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
41896 (*next_ptr).p_next = self.inner.p_next as *mut _;
41897 self.inner.p_next = <*mut BaseOutStructure>::cast::<
41898 core::ffi::c_void,
41899 >(next_ptr) as *const _;
41900 }
41901 self
41902 }
41903}
41904impl<'a> core::ops::Deref for AccelerationStructureCreateInfoKHRBuilder<'a> {
41905 type Target = AccelerationStructureCreateInfoKHR;
41906 #[inline]
41907 fn deref(&self) -> &Self::Target {
41908 &self.inner
41909 }
41910}
41911impl<'a> core::ops::DerefMut for AccelerationStructureCreateInfoKHRBuilder<'a> {
41912 #[inline]
41913 fn deref_mut(&mut self) -> &mut Self::Target {
41914 &mut self.inner
41915 }
41916}
41917pub struct AabbPositionsKHRBuilder {
41919 inner: AabbPositionsKHR,
41920}
41921impl AabbPositionsKHR {
41922 #[inline]
41924 pub fn builder() -> AabbPositionsKHRBuilder {
41925 AabbPositionsKHRBuilder {
41926 inner: AabbPositionsKHR {
41927 ..Default::default()
41928 },
41929 }
41930 }
41931}
41932impl AabbPositionsKHRBuilder {
41933 #[inline]
41934 pub fn min_x(mut self, value: f32) -> Self {
41935 self.inner.min_x = value;
41936 self
41937 }
41938 #[inline]
41939 pub fn min_y(mut self, value: f32) -> Self {
41940 self.inner.min_y = value;
41941 self
41942 }
41943 #[inline]
41944 pub fn min_z(mut self, value: f32) -> Self {
41945 self.inner.min_z = value;
41946 self
41947 }
41948 #[inline]
41949 pub fn max_x(mut self, value: f32) -> Self {
41950 self.inner.max_x = value;
41951 self
41952 }
41953 #[inline]
41954 pub fn max_y(mut self, value: f32) -> Self {
41955 self.inner.max_y = value;
41956 self
41957 }
41958 #[inline]
41959 pub fn max_z(mut self, value: f32) -> Self {
41960 self.inner.max_z = value;
41961 self
41962 }
41963}
41964impl core::ops::Deref for AabbPositionsKHRBuilder {
41965 type Target = AabbPositionsKHR;
41966 #[inline]
41967 fn deref(&self) -> &Self::Target {
41968 &self.inner
41969 }
41970}
41971impl core::ops::DerefMut for AabbPositionsKHRBuilder {
41972 #[inline]
41973 fn deref_mut(&mut self) -> &mut Self::Target {
41974 &mut self.inner
41975 }
41976}
41977pub struct TransformMatrixKHRBuilder {
41979 inner: TransformMatrixKHR,
41980}
41981impl TransformMatrixKHR {
41982 #[inline]
41984 pub fn builder() -> TransformMatrixKHRBuilder {
41985 TransformMatrixKHRBuilder {
41986 inner: TransformMatrixKHR {
41987 ..Default::default()
41988 },
41989 }
41990 }
41991}
41992impl TransformMatrixKHRBuilder {
41993 #[inline]
41994 pub fn matrix(mut self, value: [[f32; 4usize]; 3usize]) -> Self {
41995 self.inner.matrix = value;
41996 self
41997 }
41998}
41999impl core::ops::Deref for TransformMatrixKHRBuilder {
42000 type Target = TransformMatrixKHR;
42001 #[inline]
42002 fn deref(&self) -> &Self::Target {
42003 &self.inner
42004 }
42005}
42006impl core::ops::DerefMut for TransformMatrixKHRBuilder {
42007 #[inline]
42008 fn deref_mut(&mut self) -> &mut Self::Target {
42009 &mut self.inner
42010 }
42011}
42012pub struct AccelerationStructureDeviceAddressInfoKHRBuilder<'a> {
42014 inner: AccelerationStructureDeviceAddressInfoKHR,
42015 _marker: core::marker::PhantomData<&'a ()>,
42016}
42017impl AccelerationStructureDeviceAddressInfoKHR {
42018 #[inline]
42020 pub fn builder<'a>() -> AccelerationStructureDeviceAddressInfoKHRBuilder<'a> {
42021 AccelerationStructureDeviceAddressInfoKHRBuilder {
42022 inner: AccelerationStructureDeviceAddressInfoKHR {
42023 s_type: StructureType::from_raw(1000150002i32),
42024 ..Default::default()
42025 },
42026 _marker: core::marker::PhantomData,
42027 }
42028 }
42029}
42030impl<'a> AccelerationStructureDeviceAddressInfoKHRBuilder<'a> {
42031 #[inline]
42032 pub fn acceleration_structure(mut self, value: AccelerationStructureKHR) -> Self {
42033 self.inner.acceleration_structure = value;
42034 self
42035 }
42036 #[inline]
42038 pub fn push_next<T: ExtendsAccelerationStructureDeviceAddressInfoKHR>(
42039 mut self,
42040 next: &'a mut T,
42041 ) -> Self {
42042 unsafe {
42043 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42044 (*next_ptr).p_next = self.inner.p_next as *mut _;
42045 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42046 core::ffi::c_void,
42047 >(next_ptr) as *const _;
42048 }
42049 self
42050 }
42051}
42052impl<'a> core::ops::Deref for AccelerationStructureDeviceAddressInfoKHRBuilder<'a> {
42053 type Target = AccelerationStructureDeviceAddressInfoKHR;
42054 #[inline]
42055 fn deref(&self) -> &Self::Target {
42056 &self.inner
42057 }
42058}
42059impl<'a> core::ops::DerefMut for AccelerationStructureDeviceAddressInfoKHRBuilder<'a> {
42060 #[inline]
42061 fn deref_mut(&mut self) -> &mut Self::Target {
42062 &mut self.inner
42063 }
42064}
42065pub struct AccelerationStructureVersionInfoKHRBuilder<'a> {
42067 inner: AccelerationStructureVersionInfoKHR,
42068 _marker: core::marker::PhantomData<&'a ()>,
42069}
42070impl AccelerationStructureVersionInfoKHR {
42071 #[inline]
42073 pub fn builder<'a>() -> AccelerationStructureVersionInfoKHRBuilder<'a> {
42074 AccelerationStructureVersionInfoKHRBuilder {
42075 inner: AccelerationStructureVersionInfoKHR {
42076 s_type: StructureType::from_raw(1000150009i32),
42077 ..Default::default()
42078 },
42079 _marker: core::marker::PhantomData,
42080 }
42081 }
42082}
42083impl<'a> AccelerationStructureVersionInfoKHRBuilder<'a> {
42084 #[inline]
42085 pub fn version_data(mut self, value: *const u8) -> Self {
42086 self.inner.p_version_data = value;
42087 self
42088 }
42089 #[inline]
42091 pub fn push_next<T: ExtendsAccelerationStructureVersionInfoKHR>(
42092 mut self,
42093 next: &'a mut T,
42094 ) -> Self {
42095 unsafe {
42096 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42097 (*next_ptr).p_next = self.inner.p_next as *mut _;
42098 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42099 core::ffi::c_void,
42100 >(next_ptr) as *const _;
42101 }
42102 self
42103 }
42104}
42105impl<'a> core::ops::Deref for AccelerationStructureVersionInfoKHRBuilder<'a> {
42106 type Target = AccelerationStructureVersionInfoKHR;
42107 #[inline]
42108 fn deref(&self) -> &Self::Target {
42109 &self.inner
42110 }
42111}
42112impl<'a> core::ops::DerefMut for AccelerationStructureVersionInfoKHRBuilder<'a> {
42113 #[inline]
42114 fn deref_mut(&mut self) -> &mut Self::Target {
42115 &mut self.inner
42116 }
42117}
42118pub struct CopyAccelerationStructureInfoKHRBuilder<'a> {
42120 inner: CopyAccelerationStructureInfoKHR,
42121 _marker: core::marker::PhantomData<&'a ()>,
42122}
42123impl CopyAccelerationStructureInfoKHR {
42124 #[inline]
42126 pub fn builder<'a>() -> CopyAccelerationStructureInfoKHRBuilder<'a> {
42127 CopyAccelerationStructureInfoKHRBuilder {
42128 inner: CopyAccelerationStructureInfoKHR {
42129 s_type: StructureType::from_raw(1000150010i32),
42130 ..Default::default()
42131 },
42132 _marker: core::marker::PhantomData,
42133 }
42134 }
42135}
42136impl<'a> CopyAccelerationStructureInfoKHRBuilder<'a> {
42137 #[inline]
42138 pub fn src(mut self, value: AccelerationStructureKHR) -> Self {
42139 self.inner.src = value;
42140 self
42141 }
42142 #[inline]
42143 pub fn dst(mut self, value: AccelerationStructureKHR) -> Self {
42144 self.inner.dst = value;
42145 self
42146 }
42147 #[inline]
42148 pub fn mode(mut self, value: CopyAccelerationStructureModeKHR) -> Self {
42149 self.inner.mode = value;
42150 self
42151 }
42152 #[inline]
42154 pub fn push_next<T: ExtendsCopyAccelerationStructureInfoKHR>(
42155 mut self,
42156 next: &'a mut T,
42157 ) -> Self {
42158 unsafe {
42159 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42160 (*next_ptr).p_next = self.inner.p_next as *mut _;
42161 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42162 core::ffi::c_void,
42163 >(next_ptr) as *const _;
42164 }
42165 self
42166 }
42167}
42168impl<'a> core::ops::Deref for CopyAccelerationStructureInfoKHRBuilder<'a> {
42169 type Target = CopyAccelerationStructureInfoKHR;
42170 #[inline]
42171 fn deref(&self) -> &Self::Target {
42172 &self.inner
42173 }
42174}
42175impl<'a> core::ops::DerefMut for CopyAccelerationStructureInfoKHRBuilder<'a> {
42176 #[inline]
42177 fn deref_mut(&mut self) -> &mut Self::Target {
42178 &mut self.inner
42179 }
42180}
42181pub struct CopyAccelerationStructureToMemoryInfoKHRBuilder<'a> {
42183 inner: CopyAccelerationStructureToMemoryInfoKHR,
42184 _marker: core::marker::PhantomData<&'a ()>,
42185}
42186impl CopyAccelerationStructureToMemoryInfoKHR {
42187 #[inline]
42189 pub fn builder<'a>() -> CopyAccelerationStructureToMemoryInfoKHRBuilder<'a> {
42190 CopyAccelerationStructureToMemoryInfoKHRBuilder {
42191 inner: CopyAccelerationStructureToMemoryInfoKHR {
42192 s_type: StructureType::from_raw(1000150011i32),
42193 ..Default::default()
42194 },
42195 _marker: core::marker::PhantomData,
42196 }
42197 }
42198}
42199impl<'a> CopyAccelerationStructureToMemoryInfoKHRBuilder<'a> {
42200 #[inline]
42201 pub fn src(mut self, value: AccelerationStructureKHR) -> Self {
42202 self.inner.src = value;
42203 self
42204 }
42205 #[inline]
42206 pub fn dst(mut self, value: DeviceOrHostAddressKHR) -> Self {
42207 self.inner.dst = value;
42208 self
42209 }
42210 #[inline]
42211 pub fn mode(mut self, value: CopyAccelerationStructureModeKHR) -> Self {
42212 self.inner.mode = value;
42213 self
42214 }
42215 #[inline]
42217 pub fn push_next<T: ExtendsCopyAccelerationStructureToMemoryInfoKHR>(
42218 mut self,
42219 next: &'a mut T,
42220 ) -> Self {
42221 unsafe {
42222 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42223 (*next_ptr).p_next = self.inner.p_next as *mut _;
42224 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42225 core::ffi::c_void,
42226 >(next_ptr) as *const _;
42227 }
42228 self
42229 }
42230}
42231impl<'a> core::ops::Deref for CopyAccelerationStructureToMemoryInfoKHRBuilder<'a> {
42232 type Target = CopyAccelerationStructureToMemoryInfoKHR;
42233 #[inline]
42234 fn deref(&self) -> &Self::Target {
42235 &self.inner
42236 }
42237}
42238impl<'a> core::ops::DerefMut for CopyAccelerationStructureToMemoryInfoKHRBuilder<'a> {
42239 #[inline]
42240 fn deref_mut(&mut self) -> &mut Self::Target {
42241 &mut self.inner
42242 }
42243}
42244pub struct CopyMemoryToAccelerationStructureInfoKHRBuilder<'a> {
42246 inner: CopyMemoryToAccelerationStructureInfoKHR,
42247 _marker: core::marker::PhantomData<&'a ()>,
42248}
42249impl CopyMemoryToAccelerationStructureInfoKHR {
42250 #[inline]
42252 pub fn builder<'a>() -> CopyMemoryToAccelerationStructureInfoKHRBuilder<'a> {
42253 CopyMemoryToAccelerationStructureInfoKHRBuilder {
42254 inner: CopyMemoryToAccelerationStructureInfoKHR {
42255 s_type: StructureType::from_raw(1000150012i32),
42256 ..Default::default()
42257 },
42258 _marker: core::marker::PhantomData,
42259 }
42260 }
42261}
42262impl<'a> CopyMemoryToAccelerationStructureInfoKHRBuilder<'a> {
42263 #[inline]
42264 pub fn src(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
42265 self.inner.src = value;
42266 self
42267 }
42268 #[inline]
42269 pub fn dst(mut self, value: AccelerationStructureKHR) -> Self {
42270 self.inner.dst = value;
42271 self
42272 }
42273 #[inline]
42274 pub fn mode(mut self, value: CopyAccelerationStructureModeKHR) -> Self {
42275 self.inner.mode = value;
42276 self
42277 }
42278 #[inline]
42280 pub fn push_next<T: ExtendsCopyMemoryToAccelerationStructureInfoKHR>(
42281 mut self,
42282 next: &'a mut T,
42283 ) -> Self {
42284 unsafe {
42285 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42286 (*next_ptr).p_next = self.inner.p_next as *mut _;
42287 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42288 core::ffi::c_void,
42289 >(next_ptr) as *const _;
42290 }
42291 self
42292 }
42293}
42294impl<'a> core::ops::Deref for CopyMemoryToAccelerationStructureInfoKHRBuilder<'a> {
42295 type Target = CopyMemoryToAccelerationStructureInfoKHR;
42296 #[inline]
42297 fn deref(&self) -> &Self::Target {
42298 &self.inner
42299 }
42300}
42301impl<'a> core::ops::DerefMut for CopyMemoryToAccelerationStructureInfoKHRBuilder<'a> {
42302 #[inline]
42303 fn deref_mut(&mut self) -> &mut Self::Target {
42304 &mut self.inner
42305 }
42306}
42307pub struct RayTracingPipelineInterfaceCreateInfoKHRBuilder<'a> {
42309 inner: RayTracingPipelineInterfaceCreateInfoKHR,
42310 _marker: core::marker::PhantomData<&'a ()>,
42311}
42312impl RayTracingPipelineInterfaceCreateInfoKHR {
42313 #[inline]
42315 pub fn builder<'a>() -> RayTracingPipelineInterfaceCreateInfoKHRBuilder<'a> {
42316 RayTracingPipelineInterfaceCreateInfoKHRBuilder {
42317 inner: RayTracingPipelineInterfaceCreateInfoKHR {
42318 s_type: StructureType::from_raw(1000150018i32),
42319 ..Default::default()
42320 },
42321 _marker: core::marker::PhantomData,
42322 }
42323 }
42324}
42325impl<'a> RayTracingPipelineInterfaceCreateInfoKHRBuilder<'a> {
42326 #[inline]
42327 pub fn max_pipeline_ray_payload_size(mut self, value: u32) -> Self {
42328 self.inner.max_pipeline_ray_payload_size = value;
42329 self
42330 }
42331 #[inline]
42332 pub fn max_pipeline_ray_hit_attribute_size(mut self, value: u32) -> Self {
42333 self.inner.max_pipeline_ray_hit_attribute_size = value;
42334 self
42335 }
42336 #[inline]
42338 pub fn push_next<T: ExtendsRayTracingPipelineInterfaceCreateInfoKHR>(
42339 mut self,
42340 next: &'a mut T,
42341 ) -> Self {
42342 unsafe {
42343 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42344 (*next_ptr).p_next = self.inner.p_next as *mut _;
42345 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42346 core::ffi::c_void,
42347 >(next_ptr) as *const _;
42348 }
42349 self
42350 }
42351}
42352impl<'a> core::ops::Deref for RayTracingPipelineInterfaceCreateInfoKHRBuilder<'a> {
42353 type Target = RayTracingPipelineInterfaceCreateInfoKHR;
42354 #[inline]
42355 fn deref(&self) -> &Self::Target {
42356 &self.inner
42357 }
42358}
42359impl<'a> core::ops::DerefMut for RayTracingPipelineInterfaceCreateInfoKHRBuilder<'a> {
42360 #[inline]
42361 fn deref_mut(&mut self) -> &mut Self::Target {
42362 &mut self.inner
42363 }
42364}
42365pub struct PipelineLibraryCreateInfoKHRBuilder<'a> {
42367 inner: PipelineLibraryCreateInfoKHR,
42368 _marker: core::marker::PhantomData<&'a ()>,
42369}
42370impl PipelineLibraryCreateInfoKHR {
42371 #[inline]
42373 pub fn builder<'a>() -> PipelineLibraryCreateInfoKHRBuilder<'a> {
42374 PipelineLibraryCreateInfoKHRBuilder {
42375 inner: PipelineLibraryCreateInfoKHR {
42376 s_type: StructureType::from_raw(1000290000i32),
42377 ..Default::default()
42378 },
42379 _marker: core::marker::PhantomData,
42380 }
42381 }
42382}
42383impl<'a> PipelineLibraryCreateInfoKHRBuilder<'a> {
42384 #[inline]
42385 pub fn libraries(mut self, slice: &'a [Pipeline]) -> Self {
42386 self.inner.library_count = slice.len() as u32;
42387 self.inner.p_libraries = slice.as_ptr();
42388 self
42389 }
42390 #[inline]
42392 pub fn push_next<T: ExtendsPipelineLibraryCreateInfoKHR>(
42393 mut self,
42394 next: &'a mut T,
42395 ) -> Self {
42396 unsafe {
42397 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42398 (*next_ptr).p_next = self.inner.p_next as *mut _;
42399 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42400 core::ffi::c_void,
42401 >(next_ptr) as *const _;
42402 }
42403 self
42404 }
42405}
42406impl<'a> core::ops::Deref for PipelineLibraryCreateInfoKHRBuilder<'a> {
42407 type Target = PipelineLibraryCreateInfoKHR;
42408 #[inline]
42409 fn deref(&self) -> &Self::Target {
42410 &self.inner
42411 }
42412}
42413impl<'a> core::ops::DerefMut for PipelineLibraryCreateInfoKHRBuilder<'a> {
42414 #[inline]
42415 fn deref_mut(&mut self) -> &mut Self::Target {
42416 &mut self.inner
42417 }
42418}
42419pub struct RefreshObjectKHRBuilder {
42421 inner: RefreshObjectKHR,
42422}
42423impl RefreshObjectKHR {
42424 #[inline]
42426 pub fn builder() -> RefreshObjectKHRBuilder {
42427 RefreshObjectKHRBuilder {
42428 inner: RefreshObjectKHR {
42429 ..Default::default()
42430 },
42431 }
42432 }
42433}
42434impl RefreshObjectKHRBuilder {
42435 #[inline]
42436 pub fn object_type(mut self, value: ObjectType) -> Self {
42437 self.inner.object_type = value;
42438 self
42439 }
42440 #[inline]
42441 pub fn object_handle(mut self, value: u64) -> Self {
42442 self.inner.object_handle = value;
42443 self
42444 }
42445 #[inline]
42446 pub fn flags(mut self, value: RefreshObjectFlagsKHR) -> Self {
42447 self.inner.flags = value;
42448 self
42449 }
42450}
42451impl core::ops::Deref for RefreshObjectKHRBuilder {
42452 type Target = RefreshObjectKHR;
42453 #[inline]
42454 fn deref(&self) -> &Self::Target {
42455 &self.inner
42456 }
42457}
42458impl core::ops::DerefMut for RefreshObjectKHRBuilder {
42459 #[inline]
42460 fn deref_mut(&mut self) -> &mut Self::Target {
42461 &mut self.inner
42462 }
42463}
42464pub struct RefreshObjectListKHRBuilder<'a> {
42466 inner: RefreshObjectListKHR,
42467 _marker: core::marker::PhantomData<&'a ()>,
42468}
42469impl RefreshObjectListKHR {
42470 #[inline]
42472 pub fn builder<'a>() -> RefreshObjectListKHRBuilder<'a> {
42473 RefreshObjectListKHRBuilder {
42474 inner: RefreshObjectListKHR {
42475 s_type: Default::default(),
42476 ..Default::default()
42477 },
42478 _marker: core::marker::PhantomData,
42479 }
42480 }
42481}
42482impl<'a> RefreshObjectListKHRBuilder<'a> {
42483 #[inline]
42484 pub fn objects(mut self, slice: &'a [RefreshObjectKHR]) -> Self {
42485 self.inner.object_count = slice.len() as u32;
42486 self.inner.p_objects = slice.as_ptr();
42487 self
42488 }
42489 #[inline]
42491 pub fn push_next<T: ExtendsRefreshObjectListKHR>(mut self, next: &'a mut T) -> Self {
42492 unsafe {
42493 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42494 (*next_ptr).p_next = self.inner.p_next as *mut _;
42495 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42496 core::ffi::c_void,
42497 >(next_ptr) as *const _;
42498 }
42499 self
42500 }
42501}
42502impl<'a> core::ops::Deref for RefreshObjectListKHRBuilder<'a> {
42503 type Target = RefreshObjectListKHR;
42504 #[inline]
42505 fn deref(&self) -> &Self::Target {
42506 &self.inner
42507 }
42508}
42509impl<'a> core::ops::DerefMut for RefreshObjectListKHRBuilder<'a> {
42510 #[inline]
42511 fn deref_mut(&mut self) -> &mut Self::Target {
42512 &mut self.inner
42513 }
42514}
42515pub struct PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder<'a> {
42517 inner: PhysicalDeviceExtendedDynamicStateFeaturesEXT,
42518 _marker: core::marker::PhantomData<&'a ()>,
42519}
42520impl PhysicalDeviceExtendedDynamicStateFeaturesEXT {
42521 #[inline]
42523 pub fn builder<'a>() -> PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder<'a> {
42524 PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder {
42525 inner: PhysicalDeviceExtendedDynamicStateFeaturesEXT {
42526 s_type: StructureType::from_raw(1000267000i32),
42527 ..Default::default()
42528 },
42529 _marker: core::marker::PhantomData,
42530 }
42531 }
42532}
42533impl<'a> PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder<'a> {
42534 #[inline]
42535 pub fn extended_dynamic_state(mut self, value: bool) -> Self {
42536 self.inner.extended_dynamic_state = value as u32;
42537 self
42538 }
42539 #[inline]
42541 pub fn push_next<T: ExtendsPhysicalDeviceExtendedDynamicStateFeaturesEXT>(
42542 mut self,
42543 next: &'a mut T,
42544 ) -> Self {
42545 unsafe {
42546 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42547 (*next_ptr).p_next = self.inner.p_next as *mut _;
42548 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42549 core::ffi::c_void,
42550 >(next_ptr);
42551 }
42552 self
42553 }
42554}
42555impl<'a> core::ops::Deref for PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder<'a> {
42556 type Target = PhysicalDeviceExtendedDynamicStateFeaturesEXT;
42557 #[inline]
42558 fn deref(&self) -> &Self::Target {
42559 &self.inner
42560 }
42561}
42562impl<'a> core::ops::DerefMut
42563for PhysicalDeviceExtendedDynamicStateFeaturesEXTBuilder<'a> {
42564 #[inline]
42565 fn deref_mut(&mut self) -> &mut Self::Target {
42566 &mut self.inner
42567 }
42568}
42569pub struct PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder<'a> {
42571 inner: PhysicalDeviceExtendedDynamicState2FeaturesEXT,
42572 _marker: core::marker::PhantomData<&'a ()>,
42573}
42574impl PhysicalDeviceExtendedDynamicState2FeaturesEXT {
42575 #[inline]
42577 pub fn builder<'a>() -> PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder<'a> {
42578 PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder {
42579 inner: PhysicalDeviceExtendedDynamicState2FeaturesEXT {
42580 s_type: StructureType::from_raw(1000377000i32),
42581 ..Default::default()
42582 },
42583 _marker: core::marker::PhantomData,
42584 }
42585 }
42586}
42587impl<'a> PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder<'a> {
42588 #[inline]
42589 pub fn extended_dynamic_state2(mut self, value: bool) -> Self {
42590 self.inner.extended_dynamic_state2 = value as u32;
42591 self
42592 }
42593 #[inline]
42594 pub fn extended_dynamic_state2_logic_op(mut self, value: bool) -> Self {
42595 self.inner.extended_dynamic_state2_logic_op = value as u32;
42596 self
42597 }
42598 #[inline]
42599 pub fn extended_dynamic_state2_patch_control_points(mut self, value: bool) -> Self {
42600 self.inner.extended_dynamic_state2_patch_control_points = value as u32;
42601 self
42602 }
42603 #[inline]
42605 pub fn push_next<T: ExtendsPhysicalDeviceExtendedDynamicState2FeaturesEXT>(
42606 mut self,
42607 next: &'a mut T,
42608 ) -> Self {
42609 unsafe {
42610 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42611 (*next_ptr).p_next = self.inner.p_next as *mut _;
42612 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42613 core::ffi::c_void,
42614 >(next_ptr);
42615 }
42616 self
42617 }
42618}
42619impl<'a> core::ops::Deref for PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder<'a> {
42620 type Target = PhysicalDeviceExtendedDynamicState2FeaturesEXT;
42621 #[inline]
42622 fn deref(&self) -> &Self::Target {
42623 &self.inner
42624 }
42625}
42626impl<'a> core::ops::DerefMut
42627for PhysicalDeviceExtendedDynamicState2FeaturesEXTBuilder<'a> {
42628 #[inline]
42629 fn deref_mut(&mut self) -> &mut Self::Target {
42630 &mut self.inner
42631 }
42632}
42633pub struct PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder<'a> {
42635 inner: PhysicalDeviceExtendedDynamicState3FeaturesEXT,
42636 _marker: core::marker::PhantomData<&'a ()>,
42637}
42638impl PhysicalDeviceExtendedDynamicState3FeaturesEXT {
42639 #[inline]
42641 pub fn builder<'a>() -> PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder<'a> {
42642 PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder {
42643 inner: PhysicalDeviceExtendedDynamicState3FeaturesEXT {
42644 s_type: StructureType::from_raw(1000455000i32),
42645 ..Default::default()
42646 },
42647 _marker: core::marker::PhantomData,
42648 }
42649 }
42650}
42651impl<'a> PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder<'a> {
42652 #[inline]
42653 pub fn extended_dynamic_state3_tessellation_domain_origin(
42654 mut self,
42655 value: bool,
42656 ) -> Self {
42657 self.inner.extended_dynamic_state3_tessellation_domain_origin = value as u32;
42658 self
42659 }
42660 #[inline]
42661 pub fn extended_dynamic_state3_depth_clamp_enable(mut self, value: bool) -> Self {
42662 self.inner.extended_dynamic_state3_depth_clamp_enable = value as u32;
42663 self
42664 }
42665 #[inline]
42666 pub fn extended_dynamic_state3_polygon_mode(mut self, value: bool) -> Self {
42667 self.inner.extended_dynamic_state3_polygon_mode = value as u32;
42668 self
42669 }
42670 #[inline]
42671 pub fn extended_dynamic_state3_rasterization_samples(mut self, value: bool) -> Self {
42672 self.inner.extended_dynamic_state3_rasterization_samples = value as u32;
42673 self
42674 }
42675 #[inline]
42676 pub fn extended_dynamic_state3_sample_mask(mut self, value: bool) -> Self {
42677 self.inner.extended_dynamic_state3_sample_mask = value as u32;
42678 self
42679 }
42680 #[inline]
42681 pub fn extended_dynamic_state3_alpha_to_coverage_enable(
42682 mut self,
42683 value: bool,
42684 ) -> Self {
42685 self.inner.extended_dynamic_state3_alpha_to_coverage_enable = value as u32;
42686 self
42687 }
42688 #[inline]
42689 pub fn extended_dynamic_state3_alpha_to_one_enable(mut self, value: bool) -> Self {
42690 self.inner.extended_dynamic_state3_alpha_to_one_enable = value as u32;
42691 self
42692 }
42693 #[inline]
42694 pub fn extended_dynamic_state3_logic_op_enable(mut self, value: bool) -> Self {
42695 self.inner.extended_dynamic_state3_logic_op_enable = value as u32;
42696 self
42697 }
42698 #[inline]
42699 pub fn extended_dynamic_state3_color_blend_enable(mut self, value: bool) -> Self {
42700 self.inner.extended_dynamic_state3_color_blend_enable = value as u32;
42701 self
42702 }
42703 #[inline]
42704 pub fn extended_dynamic_state3_color_blend_equation(mut self, value: bool) -> Self {
42705 self.inner.extended_dynamic_state3_color_blend_equation = value as u32;
42706 self
42707 }
42708 #[inline]
42709 pub fn extended_dynamic_state3_color_write_mask(mut self, value: bool) -> Self {
42710 self.inner.extended_dynamic_state3_color_write_mask = value as u32;
42711 self
42712 }
42713 #[inline]
42714 pub fn extended_dynamic_state3_rasterization_stream(mut self, value: bool) -> Self {
42715 self.inner.extended_dynamic_state3_rasterization_stream = value as u32;
42716 self
42717 }
42718 #[inline]
42719 pub fn extended_dynamic_state3_conservative_rasterization_mode(
42720 mut self,
42721 value: bool,
42722 ) -> Self {
42723 self.inner.extended_dynamic_state3_conservative_rasterization_mode = value
42724 as u32;
42725 self
42726 }
42727 #[inline]
42728 pub fn extended_dynamic_state3_extra_primitive_overestimation_size(
42729 mut self,
42730 value: bool,
42731 ) -> Self {
42732 self.inner.extended_dynamic_state3_extra_primitive_overestimation_size = value
42733 as u32;
42734 self
42735 }
42736 #[inline]
42737 pub fn extended_dynamic_state3_depth_clip_enable(mut self, value: bool) -> Self {
42738 self.inner.extended_dynamic_state3_depth_clip_enable = value as u32;
42739 self
42740 }
42741 #[inline]
42742 pub fn extended_dynamic_state3_sample_locations_enable(
42743 mut self,
42744 value: bool,
42745 ) -> Self {
42746 self.inner.extended_dynamic_state3_sample_locations_enable = value as u32;
42747 self
42748 }
42749 #[inline]
42750 pub fn extended_dynamic_state3_color_blend_advanced(mut self, value: bool) -> Self {
42751 self.inner.extended_dynamic_state3_color_blend_advanced = value as u32;
42752 self
42753 }
42754 #[inline]
42755 pub fn extended_dynamic_state3_provoking_vertex_mode(mut self, value: bool) -> Self {
42756 self.inner.extended_dynamic_state3_provoking_vertex_mode = value as u32;
42757 self
42758 }
42759 #[inline]
42760 pub fn extended_dynamic_state3_line_rasterization_mode(
42761 mut self,
42762 value: bool,
42763 ) -> Self {
42764 self.inner.extended_dynamic_state3_line_rasterization_mode = value as u32;
42765 self
42766 }
42767 #[inline]
42768 pub fn extended_dynamic_state3_line_stipple_enable(mut self, value: bool) -> Self {
42769 self.inner.extended_dynamic_state3_line_stipple_enable = value as u32;
42770 self
42771 }
42772 #[inline]
42773 pub fn extended_dynamic_state3_depth_clip_negative_one_to_one(
42774 mut self,
42775 value: bool,
42776 ) -> Self {
42777 self.inner.extended_dynamic_state3_depth_clip_negative_one_to_one = value as u32;
42778 self
42779 }
42780 #[inline]
42781 pub fn extended_dynamic_state3_viewport_w_scaling_enable(
42782 mut self,
42783 value: bool,
42784 ) -> Self {
42785 self.inner.extended_dynamic_state3_viewport_w_scaling_enable = value as u32;
42786 self
42787 }
42788 #[inline]
42789 pub fn extended_dynamic_state3_viewport_swizzle(mut self, value: bool) -> Self {
42790 self.inner.extended_dynamic_state3_viewport_swizzle = value as u32;
42791 self
42792 }
42793 #[inline]
42794 pub fn extended_dynamic_state3_coverage_to_color_enable(
42795 mut self,
42796 value: bool,
42797 ) -> Self {
42798 self.inner.extended_dynamic_state3_coverage_to_color_enable = value as u32;
42799 self
42800 }
42801 #[inline]
42802 pub fn extended_dynamic_state3_coverage_to_color_location(
42803 mut self,
42804 value: bool,
42805 ) -> Self {
42806 self.inner.extended_dynamic_state3_coverage_to_color_location = value as u32;
42807 self
42808 }
42809 #[inline]
42810 pub fn extended_dynamic_state3_coverage_modulation_mode(
42811 mut self,
42812 value: bool,
42813 ) -> Self {
42814 self.inner.extended_dynamic_state3_coverage_modulation_mode = value as u32;
42815 self
42816 }
42817 #[inline]
42818 pub fn extended_dynamic_state3_coverage_modulation_table_enable(
42819 mut self,
42820 value: bool,
42821 ) -> Self {
42822 self.inner.extended_dynamic_state3_coverage_modulation_table_enable = value
42823 as u32;
42824 self
42825 }
42826 #[inline]
42827 pub fn extended_dynamic_state3_coverage_modulation_table(
42828 mut self,
42829 value: bool,
42830 ) -> Self {
42831 self.inner.extended_dynamic_state3_coverage_modulation_table = value as u32;
42832 self
42833 }
42834 #[inline]
42835 pub fn extended_dynamic_state3_coverage_reduction_mode(
42836 mut self,
42837 value: bool,
42838 ) -> Self {
42839 self.inner.extended_dynamic_state3_coverage_reduction_mode = value as u32;
42840 self
42841 }
42842 #[inline]
42843 pub fn extended_dynamic_state3_representative_fragment_test_enable(
42844 mut self,
42845 value: bool,
42846 ) -> Self {
42847 self.inner.extended_dynamic_state3_representative_fragment_test_enable = value
42848 as u32;
42849 self
42850 }
42851 #[inline]
42852 pub fn extended_dynamic_state3_shading_rate_image_enable(
42853 mut self,
42854 value: bool,
42855 ) -> Self {
42856 self.inner.extended_dynamic_state3_shading_rate_image_enable = value as u32;
42857 self
42858 }
42859 #[inline]
42861 pub fn push_next<T: ExtendsPhysicalDeviceExtendedDynamicState3FeaturesEXT>(
42862 mut self,
42863 next: &'a mut T,
42864 ) -> Self {
42865 unsafe {
42866 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
42867 (*next_ptr).p_next = self.inner.p_next as *mut _;
42868 self.inner.p_next = <*mut BaseOutStructure>::cast::<
42869 core::ffi::c_void,
42870 >(next_ptr);
42871 }
42872 self
42873 }
42874}
42875impl<'a> core::ops::Deref for PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder<'a> {
42876 type Target = PhysicalDeviceExtendedDynamicState3FeaturesEXT;
42877 #[inline]
42878 fn deref(&self) -> &Self::Target {
42879 &self.inner
42880 }
42881}
42882impl<'a> core::ops::DerefMut
42883for PhysicalDeviceExtendedDynamicState3FeaturesEXTBuilder<'a> {
42884 #[inline]
42885 fn deref_mut(&mut self) -> &mut Self::Target {
42886 &mut self.inner
42887 }
42888}
42889pub struct PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder<'a> {
42891 inner: PhysicalDeviceExtendedDynamicState3PropertiesEXT,
42892 _marker: core::marker::PhantomData<&'a ()>,
42893}
42894impl PhysicalDeviceExtendedDynamicState3PropertiesEXT {
42895 #[inline]
42897 pub fn builder<'a>() -> PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder<'a> {
42898 PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder {
42899 inner: PhysicalDeviceExtendedDynamicState3PropertiesEXT {
42900 s_type: StructureType::from_raw(1000455001i32),
42901 ..Default::default()
42902 },
42903 _marker: core::marker::PhantomData,
42904 }
42905 }
42906}
42907impl<'a> PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder<'a> {
42908 #[inline]
42909 pub fn dynamic_primitive_topology_unrestricted(mut self, value: bool) -> Self {
42910 self.inner.dynamic_primitive_topology_unrestricted = value as u32;
42911 self
42912 }
42913}
42914impl<'a> core::ops::Deref
42915for PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder<'a> {
42916 type Target = PhysicalDeviceExtendedDynamicState3PropertiesEXT;
42917 #[inline]
42918 fn deref(&self) -> &Self::Target {
42919 &self.inner
42920 }
42921}
42922impl<'a> core::ops::DerefMut
42923for PhysicalDeviceExtendedDynamicState3PropertiesEXTBuilder<'a> {
42924 #[inline]
42925 fn deref_mut(&mut self) -> &mut Self::Target {
42926 &mut self.inner
42927 }
42928}
42929pub struct ColorBlendEquationEXTBuilder {
42931 inner: ColorBlendEquationEXT,
42932}
42933impl ColorBlendEquationEXT {
42934 #[inline]
42936 pub fn builder() -> ColorBlendEquationEXTBuilder {
42937 ColorBlendEquationEXTBuilder {
42938 inner: ColorBlendEquationEXT {
42939 ..Default::default()
42940 },
42941 }
42942 }
42943}
42944impl ColorBlendEquationEXTBuilder {
42945 #[inline]
42946 pub fn src_color_blend_factor(mut self, value: BlendFactor) -> Self {
42947 self.inner.src_color_blend_factor = value;
42948 self
42949 }
42950 #[inline]
42951 pub fn dst_color_blend_factor(mut self, value: BlendFactor) -> Self {
42952 self.inner.dst_color_blend_factor = value;
42953 self
42954 }
42955 #[inline]
42956 pub fn color_blend_op(mut self, value: BlendOp) -> Self {
42957 self.inner.color_blend_op = value;
42958 self
42959 }
42960 #[inline]
42961 pub fn src_alpha_blend_factor(mut self, value: BlendFactor) -> Self {
42962 self.inner.src_alpha_blend_factor = value;
42963 self
42964 }
42965 #[inline]
42966 pub fn dst_alpha_blend_factor(mut self, value: BlendFactor) -> Self {
42967 self.inner.dst_alpha_blend_factor = value;
42968 self
42969 }
42970 #[inline]
42971 pub fn alpha_blend_op(mut self, value: BlendOp) -> Self {
42972 self.inner.alpha_blend_op = value;
42973 self
42974 }
42975}
42976impl core::ops::Deref for ColorBlendEquationEXTBuilder {
42977 type Target = ColorBlendEquationEXT;
42978 #[inline]
42979 fn deref(&self) -> &Self::Target {
42980 &self.inner
42981 }
42982}
42983impl core::ops::DerefMut for ColorBlendEquationEXTBuilder {
42984 #[inline]
42985 fn deref_mut(&mut self) -> &mut Self::Target {
42986 &mut self.inner
42987 }
42988}
42989pub struct ColorBlendAdvancedEXTBuilder {
42991 inner: ColorBlendAdvancedEXT,
42992}
42993impl ColorBlendAdvancedEXT {
42994 #[inline]
42996 pub fn builder() -> ColorBlendAdvancedEXTBuilder {
42997 ColorBlendAdvancedEXTBuilder {
42998 inner: ColorBlendAdvancedEXT {
42999 ..Default::default()
43000 },
43001 }
43002 }
43003}
43004impl ColorBlendAdvancedEXTBuilder {
43005 #[inline]
43006 pub fn advanced_blend_op(mut self, value: BlendOp) -> Self {
43007 self.inner.advanced_blend_op = value;
43008 self
43009 }
43010 #[inline]
43011 pub fn src_premultiplied(mut self, value: bool) -> Self {
43012 self.inner.src_premultiplied = value as u32;
43013 self
43014 }
43015 #[inline]
43016 pub fn dst_premultiplied(mut self, value: bool) -> Self {
43017 self.inner.dst_premultiplied = value as u32;
43018 self
43019 }
43020 #[inline]
43021 pub fn blend_overlap(mut self, value: BlendOverlapEXT) -> Self {
43022 self.inner.blend_overlap = value;
43023 self
43024 }
43025 #[inline]
43026 pub fn clamp_results(mut self, value: bool) -> Self {
43027 self.inner.clamp_results = value as u32;
43028 self
43029 }
43030}
43031impl core::ops::Deref for ColorBlendAdvancedEXTBuilder {
43032 type Target = ColorBlendAdvancedEXT;
43033 #[inline]
43034 fn deref(&self) -> &Self::Target {
43035 &self.inner
43036 }
43037}
43038impl core::ops::DerefMut for ColorBlendAdvancedEXTBuilder {
43039 #[inline]
43040 fn deref_mut(&mut self) -> &mut Self::Target {
43041 &mut self.inner
43042 }
43043}
43044pub struct RenderPassTransformBeginInfoQCOMBuilder<'a> {
43046 inner: RenderPassTransformBeginInfoQCOM,
43047 _marker: core::marker::PhantomData<&'a ()>,
43048}
43049impl RenderPassTransformBeginInfoQCOM {
43050 #[inline]
43052 pub fn builder<'a>() -> RenderPassTransformBeginInfoQCOMBuilder<'a> {
43053 RenderPassTransformBeginInfoQCOMBuilder {
43054 inner: RenderPassTransformBeginInfoQCOM {
43055 s_type: StructureType::from_raw(1000282001i32),
43056 ..Default::default()
43057 },
43058 _marker: core::marker::PhantomData,
43059 }
43060 }
43061}
43062impl<'a> RenderPassTransformBeginInfoQCOMBuilder<'a> {
43063 #[inline]
43064 pub fn transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
43065 self.inner.transform = value;
43066 self
43067 }
43068 #[inline]
43070 pub fn push_next<T: ExtendsRenderPassTransformBeginInfoQCOM>(
43071 mut self,
43072 next: &'a mut T,
43073 ) -> Self {
43074 unsafe {
43075 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43076 (*next_ptr).p_next = self.inner.p_next as *mut _;
43077 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43078 core::ffi::c_void,
43079 >(next_ptr) as *const _;
43080 }
43081 self
43082 }
43083}
43084impl<'a> core::ops::Deref for RenderPassTransformBeginInfoQCOMBuilder<'a> {
43085 type Target = RenderPassTransformBeginInfoQCOM;
43086 #[inline]
43087 fn deref(&self) -> &Self::Target {
43088 &self.inner
43089 }
43090}
43091impl<'a> core::ops::DerefMut for RenderPassTransformBeginInfoQCOMBuilder<'a> {
43092 #[inline]
43093 fn deref_mut(&mut self) -> &mut Self::Target {
43094 &mut self.inner
43095 }
43096}
43097pub struct CopyCommandTransformInfoQCOMBuilder<'a> {
43099 inner: CopyCommandTransformInfoQCOM,
43100 _marker: core::marker::PhantomData<&'a ()>,
43101}
43102impl CopyCommandTransformInfoQCOM {
43103 #[inline]
43105 pub fn builder<'a>() -> CopyCommandTransformInfoQCOMBuilder<'a> {
43106 CopyCommandTransformInfoQCOMBuilder {
43107 inner: CopyCommandTransformInfoQCOM {
43108 s_type: StructureType::from_raw(1000333000i32),
43109 ..Default::default()
43110 },
43111 _marker: core::marker::PhantomData,
43112 }
43113 }
43114}
43115impl<'a> CopyCommandTransformInfoQCOMBuilder<'a> {
43116 #[inline]
43117 pub fn transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
43118 self.inner.transform = value;
43119 self
43120 }
43121 #[inline]
43123 pub fn push_next<T: ExtendsCopyCommandTransformInfoQCOM>(
43124 mut self,
43125 next: &'a mut T,
43126 ) -> Self {
43127 unsafe {
43128 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43129 (*next_ptr).p_next = self.inner.p_next as *mut _;
43130 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43131 core::ffi::c_void,
43132 >(next_ptr) as *const _;
43133 }
43134 self
43135 }
43136}
43137impl<'a> core::ops::Deref for CopyCommandTransformInfoQCOMBuilder<'a> {
43138 type Target = CopyCommandTransformInfoQCOM;
43139 #[inline]
43140 fn deref(&self) -> &Self::Target {
43141 &self.inner
43142 }
43143}
43144impl<'a> core::ops::DerefMut for CopyCommandTransformInfoQCOMBuilder<'a> {
43145 #[inline]
43146 fn deref_mut(&mut self) -> &mut Self::Target {
43147 &mut self.inner
43148 }
43149}
43150pub struct CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder<'a> {
43152 inner: CommandBufferInheritanceRenderPassTransformInfoQCOM,
43153 _marker: core::marker::PhantomData<&'a ()>,
43154}
43155impl CommandBufferInheritanceRenderPassTransformInfoQCOM {
43156 #[inline]
43158 pub fn builder<'a>() -> CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder<
43159 'a,
43160 > {
43161 CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder {
43162 inner: CommandBufferInheritanceRenderPassTransformInfoQCOM {
43163 s_type: StructureType::from_raw(1000282000i32),
43164 ..Default::default()
43165 },
43166 _marker: core::marker::PhantomData,
43167 }
43168 }
43169}
43170impl<'a> CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder<'a> {
43171 #[inline]
43172 pub fn transform(mut self, value: SurfaceTransformFlagBitsKHR) -> Self {
43173 self.inner.transform = value;
43174 self
43175 }
43176 #[inline]
43177 pub fn render_area(mut self, value: Rect2D) -> Self {
43178 self.inner.render_area = value;
43179 self
43180 }
43181 #[inline]
43183 pub fn push_next<T: ExtendsCommandBufferInheritanceRenderPassTransformInfoQCOM>(
43184 mut self,
43185 next: &'a mut T,
43186 ) -> Self {
43187 unsafe {
43188 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43189 (*next_ptr).p_next = self.inner.p_next as *mut _;
43190 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43191 core::ffi::c_void,
43192 >(next_ptr) as *const _;
43193 }
43194 self
43195 }
43196}
43197impl<'a> core::ops::Deref
43198for CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder<'a> {
43199 type Target = CommandBufferInheritanceRenderPassTransformInfoQCOM;
43200 #[inline]
43201 fn deref(&self) -> &Self::Target {
43202 &self.inner
43203 }
43204}
43205impl<'a> core::ops::DerefMut
43206for CommandBufferInheritanceRenderPassTransformInfoQCOMBuilder<'a> {
43207 #[inline]
43208 fn deref_mut(&mut self) -> &mut Self::Target {
43209 &mut self.inner
43210 }
43211}
43212pub struct PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder<'a> {
43214 inner: PhysicalDevicePartitionedAccelerationStructureFeaturesNV,
43215 _marker: core::marker::PhantomData<&'a ()>,
43216}
43217impl PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
43218 #[inline]
43220 pub fn builder<'a>() -> PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder<
43221 'a,
43222 > {
43223 PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder {
43224 inner: PhysicalDevicePartitionedAccelerationStructureFeaturesNV {
43225 s_type: StructureType::from_raw(1000570000i32),
43226 ..Default::default()
43227 },
43228 _marker: core::marker::PhantomData,
43229 }
43230 }
43231}
43232impl<'a> PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder<'a> {
43233 #[inline]
43234 pub fn partitioned_acceleration_structure(mut self, value: bool) -> Self {
43235 self.inner.partitioned_acceleration_structure = value as u32;
43236 self
43237 }
43238 #[inline]
43240 pub fn push_next<T: ExtendsPhysicalDevicePartitionedAccelerationStructureFeaturesNV>(
43241 mut self,
43242 next: &'a mut T,
43243 ) -> Self {
43244 unsafe {
43245 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43246 (*next_ptr).p_next = self.inner.p_next as *mut _;
43247 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43248 core::ffi::c_void,
43249 >(next_ptr);
43250 }
43251 self
43252 }
43253}
43254impl<'a> core::ops::Deref
43255for PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder<'a> {
43256 type Target = PhysicalDevicePartitionedAccelerationStructureFeaturesNV;
43257 #[inline]
43258 fn deref(&self) -> &Self::Target {
43259 &self.inner
43260 }
43261}
43262impl<'a> core::ops::DerefMut
43263for PhysicalDevicePartitionedAccelerationStructureFeaturesNVBuilder<'a> {
43264 #[inline]
43265 fn deref_mut(&mut self) -> &mut Self::Target {
43266 &mut self.inner
43267 }
43268}
43269pub struct PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder<'a> {
43271 inner: PhysicalDevicePartitionedAccelerationStructurePropertiesNV,
43272 _marker: core::marker::PhantomData<&'a ()>,
43273}
43274impl PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
43275 #[inline]
43277 pub fn builder<'a>() -> PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder<
43278 'a,
43279 > {
43280 PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder {
43281 inner: PhysicalDevicePartitionedAccelerationStructurePropertiesNV {
43282 s_type: StructureType::from_raw(1000570001i32),
43283 ..Default::default()
43284 },
43285 _marker: core::marker::PhantomData,
43286 }
43287 }
43288}
43289impl<'a> PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder<'a> {
43290 #[inline]
43291 pub fn max_partition_count(mut self, value: u32) -> Self {
43292 self.inner.max_partition_count = value;
43293 self
43294 }
43295}
43296impl<'a> core::ops::Deref
43297for PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder<'a> {
43298 type Target = PhysicalDevicePartitionedAccelerationStructurePropertiesNV;
43299 #[inline]
43300 fn deref(&self) -> &Self::Target {
43301 &self.inner
43302 }
43303}
43304impl<'a> core::ops::DerefMut
43305for PhysicalDevicePartitionedAccelerationStructurePropertiesNVBuilder<'a> {
43306 #[inline]
43307 fn deref_mut(&mut self) -> &mut Self::Target {
43308 &mut self.inner
43309 }
43310}
43311pub struct BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43313 inner: BuildPartitionedAccelerationStructureIndirectCommandNV,
43314}
43315impl BuildPartitionedAccelerationStructureIndirectCommandNV {
43316 #[inline]
43318 pub fn builder() -> BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43319 BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43320 inner: BuildPartitionedAccelerationStructureIndirectCommandNV {
43321 ..Default::default()
43322 },
43323 }
43324 }
43325}
43326impl BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43327 #[inline]
43328 pub fn op_type(mut self, value: PartitionedAccelerationStructureOpTypeNV) -> Self {
43329 self.inner.op_type = value;
43330 self
43331 }
43332 #[inline]
43333 pub fn arg_count(mut self, value: u32) -> Self {
43334 self.inner.arg_count = value;
43335 self
43336 }
43337 #[inline]
43338 pub fn arg_data(mut self, value: StridedDeviceAddressNV) -> Self {
43339 self.inner.arg_data = value;
43340 self
43341 }
43342}
43343impl core::ops::Deref for BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43344 type Target = BuildPartitionedAccelerationStructureIndirectCommandNV;
43345 #[inline]
43346 fn deref(&self) -> &Self::Target {
43347 &self.inner
43348 }
43349}
43350impl core::ops::DerefMut
43351for BuildPartitionedAccelerationStructureIndirectCommandNVBuilder {
43352 #[inline]
43353 fn deref_mut(&mut self) -> &mut Self::Target {
43354 &mut self.inner
43355 }
43356}
43357pub struct PartitionedAccelerationStructureFlagsNVBuilder<'a> {
43359 inner: PartitionedAccelerationStructureFlagsNV,
43360 _marker: core::marker::PhantomData<&'a ()>,
43361}
43362impl PartitionedAccelerationStructureFlagsNV {
43363 #[inline]
43365 pub fn builder<'a>() -> PartitionedAccelerationStructureFlagsNVBuilder<'a> {
43366 PartitionedAccelerationStructureFlagsNVBuilder {
43367 inner: PartitionedAccelerationStructureFlagsNV {
43368 s_type: StructureType::from_raw(1000570005i32),
43369 ..Default::default()
43370 },
43371 _marker: core::marker::PhantomData,
43372 }
43373 }
43374}
43375impl<'a> PartitionedAccelerationStructureFlagsNVBuilder<'a> {
43376 #[inline]
43377 pub fn enable_partition_translation(mut self, value: bool) -> Self {
43378 self.inner.enable_partition_translation = value as u32;
43379 self
43380 }
43381 #[inline]
43383 pub fn push_next<T: ExtendsPartitionedAccelerationStructureFlagsNV>(
43384 mut self,
43385 next: &'a mut T,
43386 ) -> Self {
43387 unsafe {
43388 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43389 (*next_ptr).p_next = self.inner.p_next as *mut _;
43390 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43391 core::ffi::c_void,
43392 >(next_ptr);
43393 }
43394 self
43395 }
43396}
43397impl<'a> core::ops::Deref for PartitionedAccelerationStructureFlagsNVBuilder<'a> {
43398 type Target = PartitionedAccelerationStructureFlagsNV;
43399 #[inline]
43400 fn deref(&self) -> &Self::Target {
43401 &self.inner
43402 }
43403}
43404impl<'a> core::ops::DerefMut for PartitionedAccelerationStructureFlagsNVBuilder<'a> {
43405 #[inline]
43406 fn deref_mut(&mut self) -> &mut Self::Target {
43407 &mut self.inner
43408 }
43409}
43410pub struct PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43412 inner: PartitionedAccelerationStructureWriteInstanceDataNV,
43413}
43414impl PartitionedAccelerationStructureWriteInstanceDataNV {
43415 #[inline]
43417 pub fn builder() -> PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43418 PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43419 inner: PartitionedAccelerationStructureWriteInstanceDataNV {
43420 ..Default::default()
43421 },
43422 }
43423 }
43424}
43425impl PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43426 #[inline]
43427 pub fn transform(mut self, value: TransformMatrixKHR) -> Self {
43428 self.inner.transform = value;
43429 self
43430 }
43431 #[inline]
43432 pub fn explicit_aabb(mut self, value: [f32; 6usize]) -> Self {
43433 self.inner.explicit_aabb = value;
43434 self
43435 }
43436 #[inline]
43437 pub fn instance_id(mut self, value: u32) -> Self {
43438 self.inner.instance_id = value;
43439 self
43440 }
43441 #[inline]
43442 pub fn instance_mask(mut self, value: u32) -> Self {
43443 self.inner.instance_mask = value;
43444 self
43445 }
43446 #[inline]
43447 pub fn instance_contribution_to_hit_group_index(mut self, value: u32) -> Self {
43448 self.inner.instance_contribution_to_hit_group_index = value;
43449 self
43450 }
43451 #[inline]
43452 pub fn instance_flags(
43453 mut self,
43454 value: PartitionedAccelerationStructureInstanceFlagsNV,
43455 ) -> Self {
43456 self.inner.instance_flags = value;
43457 self
43458 }
43459 #[inline]
43460 pub fn instance_index(mut self, value: u32) -> Self {
43461 self.inner.instance_index = value;
43462 self
43463 }
43464 #[inline]
43465 pub fn partition_index(mut self, value: u32) -> Self {
43466 self.inner.partition_index = value;
43467 self
43468 }
43469 #[inline]
43470 pub fn acceleration_structure(mut self, value: u64) -> Self {
43471 self.inner.acceleration_structure = value;
43472 self
43473 }
43474}
43475impl core::ops::Deref for PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43476 type Target = PartitionedAccelerationStructureWriteInstanceDataNV;
43477 #[inline]
43478 fn deref(&self) -> &Self::Target {
43479 &self.inner
43480 }
43481}
43482impl core::ops::DerefMut for PartitionedAccelerationStructureWriteInstanceDataNVBuilder {
43483 #[inline]
43484 fn deref_mut(&mut self) -> &mut Self::Target {
43485 &mut self.inner
43486 }
43487}
43488pub struct PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43490 inner: PartitionedAccelerationStructureUpdateInstanceDataNV,
43491}
43492impl PartitionedAccelerationStructureUpdateInstanceDataNV {
43493 #[inline]
43495 pub fn builder() -> PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43496 PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43497 inner: PartitionedAccelerationStructureUpdateInstanceDataNV {
43498 ..Default::default()
43499 },
43500 }
43501 }
43502}
43503impl PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43504 #[inline]
43505 pub fn instance_index(mut self, value: u32) -> Self {
43506 self.inner.instance_index = value;
43507 self
43508 }
43509 #[inline]
43510 pub fn instance_contribution_to_hit_group_index(mut self, value: u32) -> Self {
43511 self.inner.instance_contribution_to_hit_group_index = value;
43512 self
43513 }
43514 #[inline]
43515 pub fn acceleration_structure(mut self, value: u64) -> Self {
43516 self.inner.acceleration_structure = value;
43517 self
43518 }
43519}
43520impl core::ops::Deref for PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43521 type Target = PartitionedAccelerationStructureUpdateInstanceDataNV;
43522 #[inline]
43523 fn deref(&self) -> &Self::Target {
43524 &self.inner
43525 }
43526}
43527impl core::ops::DerefMut
43528for PartitionedAccelerationStructureUpdateInstanceDataNVBuilder {
43529 #[inline]
43530 fn deref_mut(&mut self) -> &mut Self::Target {
43531 &mut self.inner
43532 }
43533}
43534pub struct PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43536 inner: PartitionedAccelerationStructureWritePartitionTranslationDataNV,
43537}
43538impl PartitionedAccelerationStructureWritePartitionTranslationDataNV {
43539 #[inline]
43541 pub fn builder() -> PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43542 PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43543 inner: PartitionedAccelerationStructureWritePartitionTranslationDataNV {
43544 ..Default::default()
43545 },
43546 }
43547 }
43548}
43549impl PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43550 #[inline]
43551 pub fn partition_index(mut self, value: u32) -> Self {
43552 self.inner.partition_index = value;
43553 self
43554 }
43555 #[inline]
43556 pub fn partition_translation(mut self, value: [f32; 3usize]) -> Self {
43557 self.inner.partition_translation = value;
43558 self
43559 }
43560}
43561impl core::ops::Deref
43562for PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43563 type Target = PartitionedAccelerationStructureWritePartitionTranslationDataNV;
43564 #[inline]
43565 fn deref(&self) -> &Self::Target {
43566 &self.inner
43567 }
43568}
43569impl core::ops::DerefMut
43570for PartitionedAccelerationStructureWritePartitionTranslationDataNVBuilder {
43571 #[inline]
43572 fn deref_mut(&mut self) -> &mut Self::Target {
43573 &mut self.inner
43574 }
43575}
43576pub struct WriteDescriptorSetPartitionedAccelerationStructureNVBuilder<'a> {
43578 inner: WriteDescriptorSetPartitionedAccelerationStructureNV,
43579 _marker: core::marker::PhantomData<&'a ()>,
43580}
43581impl WriteDescriptorSetPartitionedAccelerationStructureNV {
43582 #[inline]
43584 pub fn builder<'a>() -> WriteDescriptorSetPartitionedAccelerationStructureNVBuilder<
43585 'a,
43586 > {
43587 WriteDescriptorSetPartitionedAccelerationStructureNVBuilder {
43588 inner: WriteDescriptorSetPartitionedAccelerationStructureNV {
43589 s_type: StructureType::from_raw(1000570002i32),
43590 ..Default::default()
43591 },
43592 _marker: core::marker::PhantomData,
43593 }
43594 }
43595}
43596impl<'a> WriteDescriptorSetPartitionedAccelerationStructureNVBuilder<'a> {
43597 #[inline]
43598 pub fn acceleration_structure_count(mut self, value: u32) -> Self {
43599 self.inner.acceleration_structure_count = value;
43600 self
43601 }
43602 #[inline]
43603 pub fn acceleration_structures(mut self, slice: &'a [u64]) -> Self {
43604 self.inner.acceleration_structure_count = slice.len() as u32;
43605 self.inner.p_acceleration_structures = slice.as_ptr();
43606 self
43607 }
43608 #[inline]
43610 pub fn push_next<T: ExtendsWriteDescriptorSetPartitionedAccelerationStructureNV>(
43611 mut self,
43612 next: &'a mut T,
43613 ) -> Self {
43614 unsafe {
43615 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43616 (*next_ptr).p_next = self.inner.p_next as *mut _;
43617 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43618 core::ffi::c_void,
43619 >(next_ptr);
43620 }
43621 self
43622 }
43623}
43624impl<'a> core::ops::Deref
43625for WriteDescriptorSetPartitionedAccelerationStructureNVBuilder<'a> {
43626 type Target = WriteDescriptorSetPartitionedAccelerationStructureNV;
43627 #[inline]
43628 fn deref(&self) -> &Self::Target {
43629 &self.inner
43630 }
43631}
43632impl<'a> core::ops::DerefMut
43633for WriteDescriptorSetPartitionedAccelerationStructureNVBuilder<'a> {
43634 #[inline]
43635 fn deref_mut(&mut self) -> &mut Self::Target {
43636 &mut self.inner
43637 }
43638}
43639pub struct PartitionedAccelerationStructureInstancesInputNVBuilder<'a> {
43641 inner: PartitionedAccelerationStructureInstancesInputNV,
43642 _marker: core::marker::PhantomData<&'a ()>,
43643}
43644impl PartitionedAccelerationStructureInstancesInputNV {
43645 #[inline]
43647 pub fn builder<'a>() -> PartitionedAccelerationStructureInstancesInputNVBuilder<'a> {
43648 PartitionedAccelerationStructureInstancesInputNVBuilder {
43649 inner: PartitionedAccelerationStructureInstancesInputNV {
43650 s_type: StructureType::from_raw(1000570003i32),
43651 ..Default::default()
43652 },
43653 _marker: core::marker::PhantomData,
43654 }
43655 }
43656}
43657impl<'a> PartitionedAccelerationStructureInstancesInputNVBuilder<'a> {
43658 #[inline]
43659 pub fn flags(mut self, value: BuildAccelerationStructureFlagsKHR) -> Self {
43660 self.inner.flags = value;
43661 self
43662 }
43663 #[inline]
43664 pub fn instance_count(mut self, value: u32) -> Self {
43665 self.inner.instance_count = value;
43666 self
43667 }
43668 #[inline]
43669 pub fn max_instance_per_partition_count(mut self, value: u32) -> Self {
43670 self.inner.max_instance_per_partition_count = value;
43671 self
43672 }
43673 #[inline]
43674 pub fn partition_count(mut self, value: u32) -> Self {
43675 self.inner.partition_count = value;
43676 self
43677 }
43678 #[inline]
43679 pub fn max_instance_in_global_partition_count(mut self, value: u32) -> Self {
43680 self.inner.max_instance_in_global_partition_count = value;
43681 self
43682 }
43683 #[inline]
43685 pub fn push_next<T: ExtendsPartitionedAccelerationStructureInstancesInputNV>(
43686 mut self,
43687 next: &'a mut T,
43688 ) -> Self {
43689 unsafe {
43690 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43691 (*next_ptr).p_next = self.inner.p_next as *mut _;
43692 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43693 core::ffi::c_void,
43694 >(next_ptr);
43695 }
43696 self
43697 }
43698}
43699impl<'a> core::ops::Deref
43700for PartitionedAccelerationStructureInstancesInputNVBuilder<'a> {
43701 type Target = PartitionedAccelerationStructureInstancesInputNV;
43702 #[inline]
43703 fn deref(&self) -> &Self::Target {
43704 &self.inner
43705 }
43706}
43707impl<'a> core::ops::DerefMut
43708for PartitionedAccelerationStructureInstancesInputNVBuilder<'a> {
43709 #[inline]
43710 fn deref_mut(&mut self) -> &mut Self::Target {
43711 &mut self.inner
43712 }
43713}
43714pub struct BuildPartitionedAccelerationStructureInfoNVBuilder<'a> {
43716 inner: BuildPartitionedAccelerationStructureInfoNV,
43717 _marker: core::marker::PhantomData<&'a ()>,
43718}
43719impl BuildPartitionedAccelerationStructureInfoNV {
43720 #[inline]
43722 pub fn builder<'a>() -> BuildPartitionedAccelerationStructureInfoNVBuilder<'a> {
43723 BuildPartitionedAccelerationStructureInfoNVBuilder {
43724 inner: BuildPartitionedAccelerationStructureInfoNV {
43725 s_type: StructureType::from_raw(1000570004i32),
43726 ..Default::default()
43727 },
43728 _marker: core::marker::PhantomData,
43729 }
43730 }
43731}
43732impl<'a> BuildPartitionedAccelerationStructureInfoNVBuilder<'a> {
43733 #[inline]
43734 pub fn input(
43735 mut self,
43736 value: PartitionedAccelerationStructureInstancesInputNV,
43737 ) -> Self {
43738 self.inner.input = value;
43739 self
43740 }
43741 #[inline]
43742 pub fn src_acceleration_structure_data(mut self, value: u64) -> Self {
43743 self.inner.src_acceleration_structure_data = value;
43744 self
43745 }
43746 #[inline]
43747 pub fn dst_acceleration_structure_data(mut self, value: u64) -> Self {
43748 self.inner.dst_acceleration_structure_data = value;
43749 self
43750 }
43751 #[inline]
43752 pub fn scratch_data(mut self, value: u64) -> Self {
43753 self.inner.scratch_data = value;
43754 self
43755 }
43756 #[inline]
43757 pub fn src_infos(mut self, value: u64) -> Self {
43758 self.inner.src_infos = value;
43759 self
43760 }
43761 #[inline]
43762 pub fn src_infos_count(mut self, value: u64) -> Self {
43763 self.inner.src_infos_count = value;
43764 self
43765 }
43766 #[inline]
43768 pub fn push_next<T: ExtendsBuildPartitionedAccelerationStructureInfoNV>(
43769 mut self,
43770 next: &'a mut T,
43771 ) -> Self {
43772 unsafe {
43773 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43774 (*next_ptr).p_next = self.inner.p_next as *mut _;
43775 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43776 core::ffi::c_void,
43777 >(next_ptr);
43778 }
43779 self
43780 }
43781}
43782impl<'a> core::ops::Deref for BuildPartitionedAccelerationStructureInfoNVBuilder<'a> {
43783 type Target = BuildPartitionedAccelerationStructureInfoNV;
43784 #[inline]
43785 fn deref(&self) -> &Self::Target {
43786 &self.inner
43787 }
43788}
43789impl<'a> core::ops::DerefMut for BuildPartitionedAccelerationStructureInfoNVBuilder<'a> {
43790 #[inline]
43791 fn deref_mut(&mut self) -> &mut Self::Target {
43792 &mut self.inner
43793 }
43794}
43795pub struct PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder<'a> {
43797 inner: PhysicalDeviceDiagnosticsConfigFeaturesNV,
43798 _marker: core::marker::PhantomData<&'a ()>,
43799}
43800impl PhysicalDeviceDiagnosticsConfigFeaturesNV {
43801 #[inline]
43803 pub fn builder<'a>() -> PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder<'a> {
43804 PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder {
43805 inner: PhysicalDeviceDiagnosticsConfigFeaturesNV {
43806 s_type: StructureType::from_raw(1000300000i32),
43807 ..Default::default()
43808 },
43809 _marker: core::marker::PhantomData,
43810 }
43811 }
43812}
43813impl<'a> PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder<'a> {
43814 #[inline]
43815 pub fn diagnostics_config(mut self, value: bool) -> Self {
43816 self.inner.diagnostics_config = value as u32;
43817 self
43818 }
43819 #[inline]
43821 pub fn push_next<T: ExtendsPhysicalDeviceDiagnosticsConfigFeaturesNV>(
43822 mut self,
43823 next: &'a mut T,
43824 ) -> Self {
43825 unsafe {
43826 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43827 (*next_ptr).p_next = self.inner.p_next as *mut _;
43828 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43829 core::ffi::c_void,
43830 >(next_ptr);
43831 }
43832 self
43833 }
43834}
43835impl<'a> core::ops::Deref for PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder<'a> {
43836 type Target = PhysicalDeviceDiagnosticsConfigFeaturesNV;
43837 #[inline]
43838 fn deref(&self) -> &Self::Target {
43839 &self.inner
43840 }
43841}
43842impl<'a> core::ops::DerefMut for PhysicalDeviceDiagnosticsConfigFeaturesNVBuilder<'a> {
43843 #[inline]
43844 fn deref_mut(&mut self) -> &mut Self::Target {
43845 &mut self.inner
43846 }
43847}
43848pub struct DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
43850 inner: DeviceDiagnosticsConfigCreateInfoNV,
43851 _marker: core::marker::PhantomData<&'a ()>,
43852}
43853impl DeviceDiagnosticsConfigCreateInfoNV {
43854 #[inline]
43856 pub fn builder<'a>() -> DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
43857 DeviceDiagnosticsConfigCreateInfoNVBuilder {
43858 inner: DeviceDiagnosticsConfigCreateInfoNV {
43859 s_type: StructureType::from_raw(1000300001i32),
43860 ..Default::default()
43861 },
43862 _marker: core::marker::PhantomData,
43863 }
43864 }
43865}
43866impl<'a> DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
43867 #[inline]
43868 pub fn flags(mut self, value: DeviceDiagnosticsConfigFlagsNV) -> Self {
43869 self.inner.flags = value;
43870 self
43871 }
43872 #[inline]
43874 pub fn push_next<T: ExtendsDeviceDiagnosticsConfigCreateInfoNV>(
43875 mut self,
43876 next: &'a mut T,
43877 ) -> Self {
43878 unsafe {
43879 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43880 (*next_ptr).p_next = self.inner.p_next as *mut _;
43881 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43882 core::ffi::c_void,
43883 >(next_ptr) as *const _;
43884 }
43885 self
43886 }
43887}
43888impl<'a> core::ops::Deref for DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
43889 type Target = DeviceDiagnosticsConfigCreateInfoNV;
43890 #[inline]
43891 fn deref(&self) -> &Self::Target {
43892 &self.inner
43893 }
43894}
43895impl<'a> core::ops::DerefMut for DeviceDiagnosticsConfigCreateInfoNVBuilder<'a> {
43896 #[inline]
43897 fn deref_mut(&mut self) -> &mut Self::Target {
43898 &mut self.inner
43899 }
43900}
43901pub struct PipelineOfflineCreateInfoBuilder<'a> {
43903 inner: PipelineOfflineCreateInfo,
43904 _marker: core::marker::PhantomData<&'a ()>,
43905}
43906impl PipelineOfflineCreateInfo {
43907 #[inline]
43909 pub fn builder<'a>() -> PipelineOfflineCreateInfoBuilder<'a> {
43910 PipelineOfflineCreateInfoBuilder {
43911 inner: PipelineOfflineCreateInfo {
43912 s_type: StructureType::from_raw(1000298010i32),
43913 ..Default::default()
43914 },
43915 _marker: core::marker::PhantomData,
43916 }
43917 }
43918}
43919impl<'a> PipelineOfflineCreateInfoBuilder<'a> {
43920 #[inline]
43921 pub fn pipeline_identifier(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
43922 self.inner.pipeline_identifier = value;
43923 self
43924 }
43925 #[inline]
43926 pub fn match_control(mut self, value: PipelineMatchControl) -> Self {
43927 self.inner.match_control = value;
43928 self
43929 }
43930 #[inline]
43931 pub fn pool_entry_size(mut self, value: u64) -> Self {
43932 self.inner.pool_entry_size = value;
43933 self
43934 }
43935 #[inline]
43937 pub fn push_next<T: ExtendsPipelineOfflineCreateInfo>(
43938 mut self,
43939 next: &'a mut T,
43940 ) -> Self {
43941 unsafe {
43942 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43943 (*next_ptr).p_next = self.inner.p_next as *mut _;
43944 self.inner.p_next = <*mut BaseOutStructure>::cast::<
43945 core::ffi::c_void,
43946 >(next_ptr) as *const _;
43947 }
43948 self
43949 }
43950}
43951impl<'a> core::ops::Deref for PipelineOfflineCreateInfoBuilder<'a> {
43952 type Target = PipelineOfflineCreateInfo;
43953 #[inline]
43954 fn deref(&self) -> &Self::Target {
43955 &self.inner
43956 }
43957}
43958impl<'a> core::ops::DerefMut for PipelineOfflineCreateInfoBuilder<'a> {
43959 #[inline]
43960 fn deref_mut(&mut self) -> &mut Self::Target {
43961 &mut self.inner
43962 }
43963}
43964pub struct PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder<'a> {
43966 inner: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures,
43967 _marker: core::marker::PhantomData<&'a ()>,
43968}
43969impl PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
43970 #[inline]
43972 pub fn builder<'a>() -> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder<
43973 'a,
43974 > {
43975 PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder {
43976 inner: PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
43977 s_type: StructureType::from_raw(1000325000i32),
43978 ..Default::default()
43979 },
43980 _marker: core::marker::PhantomData,
43981 }
43982 }
43983}
43984impl<'a> PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder<'a> {
43985 #[inline]
43986 pub fn shader_zero_initialize_workgroup_memory(mut self, value: bool) -> Self {
43987 self.inner.shader_zero_initialize_workgroup_memory = value as u32;
43988 self
43989 }
43990 #[inline]
43992 pub fn push_next<T: ExtendsPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>(
43993 mut self,
43994 next: &'a mut T,
43995 ) -> Self {
43996 unsafe {
43997 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
43998 (*next_ptr).p_next = self.inner.p_next as *mut _;
43999 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44000 core::ffi::c_void,
44001 >(next_ptr);
44002 }
44003 self
44004 }
44005}
44006impl<'a> core::ops::Deref
44007for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder<'a> {
44008 type Target = PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
44009 #[inline]
44010 fn deref(&self) -> &Self::Target {
44011 &self.inner
44012 }
44013}
44014impl<'a> core::ops::DerefMut
44015for PhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesBuilder<'a> {
44016 #[inline]
44017 fn deref_mut(&mut self) -> &mut Self::Target {
44018 &mut self.inner
44019 }
44020}
44021pub struct PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder<'a> {
44023 inner: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
44024 _marker: core::marker::PhantomData<&'a ()>,
44025}
44026impl PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
44027 #[inline]
44029 pub fn builder<'a>() -> PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder<
44030 'a,
44031 > {
44032 PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder {
44033 inner: PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
44034 s_type: StructureType::from_raw(1000323000i32),
44035 ..Default::default()
44036 },
44037 _marker: core::marker::PhantomData,
44038 }
44039 }
44040}
44041impl<'a> PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder<'a> {
44042 #[inline]
44043 pub fn shader_subgroup_uniform_control_flow(mut self, value: bool) -> Self {
44044 self.inner.shader_subgroup_uniform_control_flow = value as u32;
44045 self
44046 }
44047 #[inline]
44049 pub fn push_next<
44050 T: ExtendsPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR,
44051 >(mut self, next: &'a mut T) -> Self {
44052 unsafe {
44053 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44054 (*next_ptr).p_next = self.inner.p_next as *mut _;
44055 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44056 core::ffi::c_void,
44057 >(next_ptr);
44058 }
44059 self
44060 }
44061}
44062impl<'a> core::ops::Deref
44063for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder<'a> {
44064 type Target = PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
44065 #[inline]
44066 fn deref(&self) -> &Self::Target {
44067 &self.inner
44068 }
44069}
44070impl<'a> core::ops::DerefMut
44071for PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHRBuilder<'a> {
44072 #[inline]
44073 fn deref_mut(&mut self) -> &mut Self::Target {
44074 &mut self.inner
44075 }
44076}
44077pub struct PhysicalDeviceRobustness2FeaturesKHRBuilder<'a> {
44079 inner: PhysicalDeviceRobustness2FeaturesKHR,
44080 _marker: core::marker::PhantomData<&'a ()>,
44081}
44082impl PhysicalDeviceRobustness2FeaturesKHR {
44083 #[inline]
44085 pub fn builder<'a>() -> PhysicalDeviceRobustness2FeaturesKHRBuilder<'a> {
44086 PhysicalDeviceRobustness2FeaturesKHRBuilder {
44087 inner: PhysicalDeviceRobustness2FeaturesKHR {
44088 s_type: StructureType::from_raw(1000286000i32),
44089 ..Default::default()
44090 },
44091 _marker: core::marker::PhantomData,
44092 }
44093 }
44094}
44095impl<'a> PhysicalDeviceRobustness2FeaturesKHRBuilder<'a> {
44096 #[inline]
44097 pub fn robust_buffer_access2(mut self, value: bool) -> Self {
44098 self.inner.robust_buffer_access2 = value as u32;
44099 self
44100 }
44101 #[inline]
44102 pub fn robust_image_access2(mut self, value: bool) -> Self {
44103 self.inner.robust_image_access2 = value as u32;
44104 self
44105 }
44106 #[inline]
44107 pub fn null_descriptor(mut self, value: bool) -> Self {
44108 self.inner.null_descriptor = value as u32;
44109 self
44110 }
44111 #[inline]
44113 pub fn push_next<T: ExtendsPhysicalDeviceRobustness2FeaturesKHR>(
44114 mut self,
44115 next: &'a mut T,
44116 ) -> Self {
44117 unsafe {
44118 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44119 (*next_ptr).p_next = self.inner.p_next as *mut _;
44120 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44121 core::ffi::c_void,
44122 >(next_ptr);
44123 }
44124 self
44125 }
44126}
44127impl<'a> core::ops::Deref for PhysicalDeviceRobustness2FeaturesKHRBuilder<'a> {
44128 type Target = PhysicalDeviceRobustness2FeaturesKHR;
44129 #[inline]
44130 fn deref(&self) -> &Self::Target {
44131 &self.inner
44132 }
44133}
44134impl<'a> core::ops::DerefMut for PhysicalDeviceRobustness2FeaturesKHRBuilder<'a> {
44135 #[inline]
44136 fn deref_mut(&mut self) -> &mut Self::Target {
44137 &mut self.inner
44138 }
44139}
44140pub struct PhysicalDeviceRobustness2PropertiesKHRBuilder<'a> {
44142 inner: PhysicalDeviceRobustness2PropertiesKHR,
44143 _marker: core::marker::PhantomData<&'a ()>,
44144}
44145impl PhysicalDeviceRobustness2PropertiesKHR {
44146 #[inline]
44148 pub fn builder<'a>() -> PhysicalDeviceRobustness2PropertiesKHRBuilder<'a> {
44149 PhysicalDeviceRobustness2PropertiesKHRBuilder {
44150 inner: PhysicalDeviceRobustness2PropertiesKHR {
44151 s_type: StructureType::from_raw(1000286001i32),
44152 ..Default::default()
44153 },
44154 _marker: core::marker::PhantomData,
44155 }
44156 }
44157}
44158impl<'a> PhysicalDeviceRobustness2PropertiesKHRBuilder<'a> {
44159 #[inline]
44160 pub fn robust_storage_buffer_access_size_alignment(mut self, value: u64) -> Self {
44161 self.inner.robust_storage_buffer_access_size_alignment = value;
44162 self
44163 }
44164 #[inline]
44165 pub fn robust_uniform_buffer_access_size_alignment(mut self, value: u64) -> Self {
44166 self.inner.robust_uniform_buffer_access_size_alignment = value;
44167 self
44168 }
44169}
44170impl<'a> core::ops::Deref for PhysicalDeviceRobustness2PropertiesKHRBuilder<'a> {
44171 type Target = PhysicalDeviceRobustness2PropertiesKHR;
44172 #[inline]
44173 fn deref(&self) -> &Self::Target {
44174 &self.inner
44175 }
44176}
44177impl<'a> core::ops::DerefMut for PhysicalDeviceRobustness2PropertiesKHRBuilder<'a> {
44178 #[inline]
44179 fn deref_mut(&mut self) -> &mut Self::Target {
44180 &mut self.inner
44181 }
44182}
44183pub struct PhysicalDeviceImageRobustnessFeaturesBuilder<'a> {
44185 inner: PhysicalDeviceImageRobustnessFeatures,
44186 _marker: core::marker::PhantomData<&'a ()>,
44187}
44188impl PhysicalDeviceImageRobustnessFeatures {
44189 #[inline]
44191 pub fn builder<'a>() -> PhysicalDeviceImageRobustnessFeaturesBuilder<'a> {
44192 PhysicalDeviceImageRobustnessFeaturesBuilder {
44193 inner: PhysicalDeviceImageRobustnessFeatures {
44194 s_type: StructureType::from_raw(1000335000i32),
44195 ..Default::default()
44196 },
44197 _marker: core::marker::PhantomData,
44198 }
44199 }
44200}
44201impl<'a> PhysicalDeviceImageRobustnessFeaturesBuilder<'a> {
44202 #[inline]
44203 pub fn robust_image_access(mut self, value: bool) -> Self {
44204 self.inner.robust_image_access = value as u32;
44205 self
44206 }
44207 #[inline]
44209 pub fn push_next<T: ExtendsPhysicalDeviceImageRobustnessFeatures>(
44210 mut self,
44211 next: &'a mut T,
44212 ) -> Self {
44213 unsafe {
44214 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44215 (*next_ptr).p_next = self.inner.p_next as *mut _;
44216 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44217 core::ffi::c_void,
44218 >(next_ptr);
44219 }
44220 self
44221 }
44222}
44223impl<'a> core::ops::Deref for PhysicalDeviceImageRobustnessFeaturesBuilder<'a> {
44224 type Target = PhysicalDeviceImageRobustnessFeatures;
44225 #[inline]
44226 fn deref(&self) -> &Self::Target {
44227 &self.inner
44228 }
44229}
44230impl<'a> core::ops::DerefMut for PhysicalDeviceImageRobustnessFeaturesBuilder<'a> {
44231 #[inline]
44232 fn deref_mut(&mut self) -> &mut Self::Target {
44233 &mut self.inner
44234 }
44235}
44236pub struct PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
44238 inner: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR,
44239 _marker: core::marker::PhantomData<&'a ()>,
44240}
44241impl PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
44242 #[inline]
44244 pub fn builder<'a>() -> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<
44245 'a,
44246 > {
44247 PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder {
44248 inner: PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
44249 s_type: StructureType::from_raw(1000336000i32),
44250 ..Default::default()
44251 },
44252 _marker: core::marker::PhantomData,
44253 }
44254 }
44255}
44256impl<'a> PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
44257 #[inline]
44258 pub fn workgroup_memory_explicit_layout(mut self, value: bool) -> Self {
44259 self.inner.workgroup_memory_explicit_layout = value as u32;
44260 self
44261 }
44262 #[inline]
44263 pub fn workgroup_memory_explicit_layout_scalar_block_layout(
44264 mut self,
44265 value: bool,
44266 ) -> Self {
44267 self.inner.workgroup_memory_explicit_layout_scalar_block_layout = value as u32;
44268 self
44269 }
44270 #[inline]
44271 pub fn workgroup_memory_explicit_layout8_bit_access(mut self, value: bool) -> Self {
44272 self.inner.workgroup_memory_explicit_layout8_bit_access = value as u32;
44273 self
44274 }
44275 #[inline]
44276 pub fn workgroup_memory_explicit_layout16_bit_access(mut self, value: bool) -> Self {
44277 self.inner.workgroup_memory_explicit_layout16_bit_access = value as u32;
44278 self
44279 }
44280 #[inline]
44282 pub fn push_next<T: ExtendsPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>(
44283 mut self,
44284 next: &'a mut T,
44285 ) -> Self {
44286 unsafe {
44287 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44288 (*next_ptr).p_next = self.inner.p_next as *mut _;
44289 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44290 core::ffi::c_void,
44291 >(next_ptr);
44292 }
44293 self
44294 }
44295}
44296impl<'a> core::ops::Deref
44297for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
44298 type Target = PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
44299 #[inline]
44300 fn deref(&self) -> &Self::Target {
44301 &self.inner
44302 }
44303}
44304impl<'a> core::ops::DerefMut
44305for PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHRBuilder<'a> {
44306 #[inline]
44307 fn deref_mut(&mut self) -> &mut Self::Target {
44308 &mut self.inner
44309 }
44310}
44311pub struct PhysicalDevicePortabilitySubsetFeaturesKHRBuilder<'a> {
44313 inner: PhysicalDevicePortabilitySubsetFeaturesKHR,
44314 _marker: core::marker::PhantomData<&'a ()>,
44315}
44316impl PhysicalDevicePortabilitySubsetFeaturesKHR {
44317 #[inline]
44319 pub fn builder<'a>() -> PhysicalDevicePortabilitySubsetFeaturesKHRBuilder<'a> {
44320 PhysicalDevicePortabilitySubsetFeaturesKHRBuilder {
44321 inner: PhysicalDevicePortabilitySubsetFeaturesKHR {
44322 s_type: StructureType::from_raw(1000163000i32),
44323 ..Default::default()
44324 },
44325 _marker: core::marker::PhantomData,
44326 }
44327 }
44328}
44329impl<'a> PhysicalDevicePortabilitySubsetFeaturesKHRBuilder<'a> {
44330 #[inline]
44331 pub fn constant_alpha_color_blend_factors(mut self, value: bool) -> Self {
44332 self.inner.constant_alpha_color_blend_factors = value as u32;
44333 self
44334 }
44335 #[inline]
44336 pub fn events(mut self, value: bool) -> Self {
44337 self.inner.events = value as u32;
44338 self
44339 }
44340 #[inline]
44341 pub fn image_view_format_reinterpretation(mut self, value: bool) -> Self {
44342 self.inner.image_view_format_reinterpretation = value as u32;
44343 self
44344 }
44345 #[inline]
44346 pub fn image_view_format_swizzle(mut self, value: bool) -> Self {
44347 self.inner.image_view_format_swizzle = value as u32;
44348 self
44349 }
44350 #[inline]
44351 pub fn image_view2_d_on3_d_image(mut self, value: bool) -> Self {
44352 self.inner.image_view2_d_on3_d_image = value as u32;
44353 self
44354 }
44355 #[inline]
44356 pub fn multisample_array_image(mut self, value: bool) -> Self {
44357 self.inner.multisample_array_image = value as u32;
44358 self
44359 }
44360 #[inline]
44361 pub fn mutable_comparison_samplers(mut self, value: bool) -> Self {
44362 self.inner.mutable_comparison_samplers = value as u32;
44363 self
44364 }
44365 #[inline]
44366 pub fn point_polygons(mut self, value: bool) -> Self {
44367 self.inner.point_polygons = value as u32;
44368 self
44369 }
44370 #[inline]
44371 pub fn sampler_mip_lod_bias(mut self, value: bool) -> Self {
44372 self.inner.sampler_mip_lod_bias = value as u32;
44373 self
44374 }
44375 #[inline]
44376 pub fn separate_stencil_mask_ref(mut self, value: bool) -> Self {
44377 self.inner.separate_stencil_mask_ref = value as u32;
44378 self
44379 }
44380 #[inline]
44381 pub fn shader_sample_rate_interpolation_functions(mut self, value: bool) -> Self {
44382 self.inner.shader_sample_rate_interpolation_functions = value as u32;
44383 self
44384 }
44385 #[inline]
44386 pub fn tessellation_isolines(mut self, value: bool) -> Self {
44387 self.inner.tessellation_isolines = value as u32;
44388 self
44389 }
44390 #[inline]
44391 pub fn tessellation_point_mode(mut self, value: bool) -> Self {
44392 self.inner.tessellation_point_mode = value as u32;
44393 self
44394 }
44395 #[inline]
44396 pub fn triangle_fans(mut self, value: bool) -> Self {
44397 self.inner.triangle_fans = value as u32;
44398 self
44399 }
44400 #[inline]
44401 pub fn vertex_attribute_access_beyond_stride(mut self, value: bool) -> Self {
44402 self.inner.vertex_attribute_access_beyond_stride = value as u32;
44403 self
44404 }
44405 #[inline]
44407 pub fn push_next<T: ExtendsPhysicalDevicePortabilitySubsetFeaturesKHR>(
44408 mut self,
44409 next: &'a mut T,
44410 ) -> Self {
44411 unsafe {
44412 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44413 (*next_ptr).p_next = self.inner.p_next as *mut _;
44414 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44415 core::ffi::c_void,
44416 >(next_ptr);
44417 }
44418 self
44419 }
44420}
44421impl<'a> core::ops::Deref for PhysicalDevicePortabilitySubsetFeaturesKHRBuilder<'a> {
44422 type Target = PhysicalDevicePortabilitySubsetFeaturesKHR;
44423 #[inline]
44424 fn deref(&self) -> &Self::Target {
44425 &self.inner
44426 }
44427}
44428impl<'a> core::ops::DerefMut for PhysicalDevicePortabilitySubsetFeaturesKHRBuilder<'a> {
44429 #[inline]
44430 fn deref_mut(&mut self) -> &mut Self::Target {
44431 &mut self.inner
44432 }
44433}
44434pub struct PhysicalDevicePortabilitySubsetPropertiesKHRBuilder<'a> {
44436 inner: PhysicalDevicePortabilitySubsetPropertiesKHR,
44437 _marker: core::marker::PhantomData<&'a ()>,
44438}
44439impl PhysicalDevicePortabilitySubsetPropertiesKHR {
44440 #[inline]
44442 pub fn builder<'a>() -> PhysicalDevicePortabilitySubsetPropertiesKHRBuilder<'a> {
44443 PhysicalDevicePortabilitySubsetPropertiesKHRBuilder {
44444 inner: PhysicalDevicePortabilitySubsetPropertiesKHR {
44445 s_type: StructureType::from_raw(1000163001i32),
44446 ..Default::default()
44447 },
44448 _marker: core::marker::PhantomData,
44449 }
44450 }
44451}
44452impl<'a> PhysicalDevicePortabilitySubsetPropertiesKHRBuilder<'a> {
44453 #[inline]
44454 pub fn min_vertex_input_binding_stride_alignment(mut self, value: u32) -> Self {
44455 self.inner.min_vertex_input_binding_stride_alignment = value;
44456 self
44457 }
44458}
44459impl<'a> core::ops::Deref for PhysicalDevicePortabilitySubsetPropertiesKHRBuilder<'a> {
44460 type Target = PhysicalDevicePortabilitySubsetPropertiesKHR;
44461 #[inline]
44462 fn deref(&self) -> &Self::Target {
44463 &self.inner
44464 }
44465}
44466impl<'a> core::ops::DerefMut
44467for PhysicalDevicePortabilitySubsetPropertiesKHRBuilder<'a> {
44468 #[inline]
44469 fn deref_mut(&mut self) -> &mut Self::Target {
44470 &mut self.inner
44471 }
44472}
44473pub struct PhysicalDevice4444FormatsFeaturesEXTBuilder<'a> {
44475 inner: PhysicalDevice4444FormatsFeaturesEXT,
44476 _marker: core::marker::PhantomData<&'a ()>,
44477}
44478impl PhysicalDevice4444FormatsFeaturesEXT {
44479 #[inline]
44481 pub fn builder<'a>() -> PhysicalDevice4444FormatsFeaturesEXTBuilder<'a> {
44482 PhysicalDevice4444FormatsFeaturesEXTBuilder {
44483 inner: PhysicalDevice4444FormatsFeaturesEXT {
44484 s_type: StructureType::from_raw(1000340000i32),
44485 ..Default::default()
44486 },
44487 _marker: core::marker::PhantomData,
44488 }
44489 }
44490}
44491impl<'a> PhysicalDevice4444FormatsFeaturesEXTBuilder<'a> {
44492 #[inline]
44493 pub fn format_a4r4g4b4(mut self, value: bool) -> Self {
44494 self.inner.format_a4r4g4b4 = value as u32;
44495 self
44496 }
44497 #[inline]
44498 pub fn format_a4b4g4r4(mut self, value: bool) -> Self {
44499 self.inner.format_a4b4g4r4 = value as u32;
44500 self
44501 }
44502 #[inline]
44504 pub fn push_next<T: ExtendsPhysicalDevice4444FormatsFeaturesEXT>(
44505 mut self,
44506 next: &'a mut T,
44507 ) -> Self {
44508 unsafe {
44509 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44510 (*next_ptr).p_next = self.inner.p_next as *mut _;
44511 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44512 core::ffi::c_void,
44513 >(next_ptr);
44514 }
44515 self
44516 }
44517}
44518impl<'a> core::ops::Deref for PhysicalDevice4444FormatsFeaturesEXTBuilder<'a> {
44519 type Target = PhysicalDevice4444FormatsFeaturesEXT;
44520 #[inline]
44521 fn deref(&self) -> &Self::Target {
44522 &self.inner
44523 }
44524}
44525impl<'a> core::ops::DerefMut for PhysicalDevice4444FormatsFeaturesEXTBuilder<'a> {
44526 #[inline]
44527 fn deref_mut(&mut self) -> &mut Self::Target {
44528 &mut self.inner
44529 }
44530}
44531pub struct PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder<'a> {
44533 inner: PhysicalDeviceSubpassShadingFeaturesHUAWEI,
44534 _marker: core::marker::PhantomData<&'a ()>,
44535}
44536impl PhysicalDeviceSubpassShadingFeaturesHUAWEI {
44537 #[inline]
44539 pub fn builder<'a>() -> PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder<'a> {
44540 PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder {
44541 inner: PhysicalDeviceSubpassShadingFeaturesHUAWEI {
44542 s_type: StructureType::from_raw(1000369001i32),
44543 ..Default::default()
44544 },
44545 _marker: core::marker::PhantomData,
44546 }
44547 }
44548}
44549impl<'a> PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder<'a> {
44550 #[inline]
44551 pub fn subpass_shading(mut self, value: bool) -> Self {
44552 self.inner.subpass_shading = value as u32;
44553 self
44554 }
44555 #[inline]
44557 pub fn push_next<T: ExtendsPhysicalDeviceSubpassShadingFeaturesHUAWEI>(
44558 mut self,
44559 next: &'a mut T,
44560 ) -> Self {
44561 unsafe {
44562 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44563 (*next_ptr).p_next = self.inner.p_next as *mut _;
44564 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44565 core::ffi::c_void,
44566 >(next_ptr);
44567 }
44568 self
44569 }
44570}
44571impl<'a> core::ops::Deref for PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder<'a> {
44572 type Target = PhysicalDeviceSubpassShadingFeaturesHUAWEI;
44573 #[inline]
44574 fn deref(&self) -> &Self::Target {
44575 &self.inner
44576 }
44577}
44578impl<'a> core::ops::DerefMut for PhysicalDeviceSubpassShadingFeaturesHUAWEIBuilder<'a> {
44579 #[inline]
44580 fn deref_mut(&mut self) -> &mut Self::Target {
44581 &mut self.inner
44582 }
44583}
44584pub struct PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder<'a> {
44586 inner: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI,
44587 _marker: core::marker::PhantomData<&'a ()>,
44588}
44589impl PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
44590 #[inline]
44592 pub fn builder<'a>() -> PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder<'a> {
44593 PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder {
44594 inner: PhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
44595 s_type: StructureType::from_raw(1000404000i32),
44596 ..Default::default()
44597 },
44598 _marker: core::marker::PhantomData,
44599 }
44600 }
44601}
44602impl<'a> PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder<'a> {
44603 #[inline]
44604 pub fn clusterculling_shader(mut self, value: bool) -> Self {
44605 self.inner.clusterculling_shader = value as u32;
44606 self
44607 }
44608 #[inline]
44609 pub fn multiview_cluster_culling_shader(mut self, value: bool) -> Self {
44610 self.inner.multiview_cluster_culling_shader = value as u32;
44611 self
44612 }
44613 #[inline]
44615 pub fn push_next<T: ExtendsPhysicalDeviceClusterCullingShaderFeaturesHUAWEI>(
44616 mut self,
44617 next: &'a mut T,
44618 ) -> Self {
44619 unsafe {
44620 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44621 (*next_ptr).p_next = self.inner.p_next as *mut _;
44622 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44623 core::ffi::c_void,
44624 >(next_ptr);
44625 }
44626 self
44627 }
44628}
44629impl<'a> core::ops::Deref
44630for PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder<'a> {
44631 type Target = PhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
44632 #[inline]
44633 fn deref(&self) -> &Self::Target {
44634 &self.inner
44635 }
44636}
44637impl<'a> core::ops::DerefMut
44638for PhysicalDeviceClusterCullingShaderFeaturesHUAWEIBuilder<'a> {
44639 #[inline]
44640 fn deref_mut(&mut self) -> &mut Self::Target {
44641 &mut self.inner
44642 }
44643}
44644pub struct PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder<'a> {
44646 inner: PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI,
44647 _marker: core::marker::PhantomData<&'a ()>,
44648}
44649impl PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
44650 #[inline]
44652 pub fn builder<'a>() -> PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder<
44653 'a,
44654 > {
44655 PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder {
44656 inner: PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
44657 s_type: StructureType::from_raw(1000404002i32),
44658 ..Default::default()
44659 },
44660 _marker: core::marker::PhantomData,
44661 }
44662 }
44663}
44664impl<'a> PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder<'a> {
44665 #[inline]
44666 pub fn cluster_shading_rate(mut self, value: bool) -> Self {
44667 self.inner.cluster_shading_rate = value as u32;
44668 self
44669 }
44670 #[inline]
44672 pub fn push_next<T: ExtendsPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>(
44673 mut self,
44674 next: &'a mut T,
44675 ) -> Self {
44676 unsafe {
44677 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44678 (*next_ptr).p_next = self.inner.p_next as *mut _;
44679 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44680 core::ffi::c_void,
44681 >(next_ptr);
44682 }
44683 self
44684 }
44685}
44686impl<'a> core::ops::Deref
44687for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder<'a> {
44688 type Target = PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
44689 #[inline]
44690 fn deref(&self) -> &Self::Target {
44691 &self.inner
44692 }
44693}
44694impl<'a> core::ops::DerefMut
44695for PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEIBuilder<'a> {
44696 #[inline]
44697 fn deref_mut(&mut self) -> &mut Self::Target {
44698 &mut self.inner
44699 }
44700}
44701pub struct BufferCopy2Builder<'a> {
44703 inner: BufferCopy2,
44704 _marker: core::marker::PhantomData<&'a ()>,
44705}
44706impl BufferCopy2 {
44707 #[inline]
44709 pub fn builder<'a>() -> BufferCopy2Builder<'a> {
44710 BufferCopy2Builder {
44711 inner: BufferCopy2 {
44712 s_type: StructureType::from_raw(1000337006i32),
44713 ..Default::default()
44714 },
44715 _marker: core::marker::PhantomData,
44716 }
44717 }
44718}
44719impl<'a> BufferCopy2Builder<'a> {
44720 #[inline]
44721 pub fn src_offset(mut self, value: u64) -> Self {
44722 self.inner.src_offset = value;
44723 self
44724 }
44725 #[inline]
44726 pub fn dst_offset(mut self, value: u64) -> Self {
44727 self.inner.dst_offset = value;
44728 self
44729 }
44730 #[inline]
44731 pub fn size(mut self, value: u64) -> Self {
44732 self.inner.size = value;
44733 self
44734 }
44735 #[inline]
44737 pub fn push_next<T: ExtendsBufferCopy2>(mut self, next: &'a mut T) -> Self {
44738 unsafe {
44739 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44740 (*next_ptr).p_next = self.inner.p_next as *mut _;
44741 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44742 core::ffi::c_void,
44743 >(next_ptr) as *const _;
44744 }
44745 self
44746 }
44747}
44748impl<'a> core::ops::Deref for BufferCopy2Builder<'a> {
44749 type Target = BufferCopy2;
44750 #[inline]
44751 fn deref(&self) -> &Self::Target {
44752 &self.inner
44753 }
44754}
44755impl<'a> core::ops::DerefMut for BufferCopy2Builder<'a> {
44756 #[inline]
44757 fn deref_mut(&mut self) -> &mut Self::Target {
44758 &mut self.inner
44759 }
44760}
44761pub struct ImageCopy2Builder<'a> {
44763 inner: ImageCopy2,
44764 _marker: core::marker::PhantomData<&'a ()>,
44765}
44766impl ImageCopy2 {
44767 #[inline]
44769 pub fn builder<'a>() -> ImageCopy2Builder<'a> {
44770 ImageCopy2Builder {
44771 inner: ImageCopy2 {
44772 s_type: StructureType::from_raw(1000337007i32),
44773 ..Default::default()
44774 },
44775 _marker: core::marker::PhantomData,
44776 }
44777 }
44778}
44779impl<'a> ImageCopy2Builder<'a> {
44780 #[inline]
44781 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44782 self.inner.src_subresource = value;
44783 self
44784 }
44785 #[inline]
44786 pub fn src_offset(mut self, value: Offset3D) -> Self {
44787 self.inner.src_offset = value;
44788 self
44789 }
44790 #[inline]
44791 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44792 self.inner.dst_subresource = value;
44793 self
44794 }
44795 #[inline]
44796 pub fn dst_offset(mut self, value: Offset3D) -> Self {
44797 self.inner.dst_offset = value;
44798 self
44799 }
44800 #[inline]
44801 pub fn extent(mut self, value: Extent3D) -> Self {
44802 self.inner.extent = value;
44803 self
44804 }
44805 #[inline]
44807 pub fn push_next<T: ExtendsImageCopy2>(mut self, next: &'a mut T) -> Self {
44808 unsafe {
44809 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44810 (*next_ptr).p_next = self.inner.p_next as *mut _;
44811 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44812 core::ffi::c_void,
44813 >(next_ptr) as *const _;
44814 }
44815 self
44816 }
44817}
44818impl<'a> core::ops::Deref for ImageCopy2Builder<'a> {
44819 type Target = ImageCopy2;
44820 #[inline]
44821 fn deref(&self) -> &Self::Target {
44822 &self.inner
44823 }
44824}
44825impl<'a> core::ops::DerefMut for ImageCopy2Builder<'a> {
44826 #[inline]
44827 fn deref_mut(&mut self) -> &mut Self::Target {
44828 &mut self.inner
44829 }
44830}
44831pub struct ImageBlit2Builder<'a> {
44833 inner: ImageBlit2,
44834 _marker: core::marker::PhantomData<&'a ()>,
44835}
44836impl ImageBlit2 {
44837 #[inline]
44839 pub fn builder<'a>() -> ImageBlit2Builder<'a> {
44840 ImageBlit2Builder {
44841 inner: ImageBlit2 {
44842 s_type: StructureType::from_raw(1000337008i32),
44843 ..Default::default()
44844 },
44845 _marker: core::marker::PhantomData,
44846 }
44847 }
44848}
44849impl<'a> ImageBlit2Builder<'a> {
44850 #[inline]
44851 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44852 self.inner.src_subresource = value;
44853 self
44854 }
44855 #[inline]
44856 pub fn src_offsets(mut self, value: [Offset3D; 2usize]) -> Self {
44857 self.inner.src_offsets = value;
44858 self
44859 }
44860 #[inline]
44861 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44862 self.inner.dst_subresource = value;
44863 self
44864 }
44865 #[inline]
44866 pub fn dst_offsets(mut self, value: [Offset3D; 2usize]) -> Self {
44867 self.inner.dst_offsets = value;
44868 self
44869 }
44870 #[inline]
44872 pub fn push_next<T: ExtendsImageBlit2>(mut self, next: &'a mut T) -> Self {
44873 unsafe {
44874 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44875 (*next_ptr).p_next = self.inner.p_next as *mut _;
44876 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44877 core::ffi::c_void,
44878 >(next_ptr) as *const _;
44879 }
44880 self
44881 }
44882}
44883impl<'a> core::ops::Deref for ImageBlit2Builder<'a> {
44884 type Target = ImageBlit2;
44885 #[inline]
44886 fn deref(&self) -> &Self::Target {
44887 &self.inner
44888 }
44889}
44890impl<'a> core::ops::DerefMut for ImageBlit2Builder<'a> {
44891 #[inline]
44892 fn deref_mut(&mut self) -> &mut Self::Target {
44893 &mut self.inner
44894 }
44895}
44896pub struct BufferImageCopy2Builder<'a> {
44898 inner: BufferImageCopy2,
44899 _marker: core::marker::PhantomData<&'a ()>,
44900}
44901impl BufferImageCopy2 {
44902 #[inline]
44904 pub fn builder<'a>() -> BufferImageCopy2Builder<'a> {
44905 BufferImageCopy2Builder {
44906 inner: BufferImageCopy2 {
44907 s_type: StructureType::from_raw(1000337009i32),
44908 ..Default::default()
44909 },
44910 _marker: core::marker::PhantomData,
44911 }
44912 }
44913}
44914impl<'a> BufferImageCopy2Builder<'a> {
44915 #[inline]
44916 pub fn buffer_offset(mut self, value: u64) -> Self {
44917 self.inner.buffer_offset = value;
44918 self
44919 }
44920 #[inline]
44921 pub fn buffer_row_length(mut self, value: u32) -> Self {
44922 self.inner.buffer_row_length = value;
44923 self
44924 }
44925 #[inline]
44926 pub fn buffer_image_height(mut self, value: u32) -> Self {
44927 self.inner.buffer_image_height = value;
44928 self
44929 }
44930 #[inline]
44931 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44932 self.inner.image_subresource = value;
44933 self
44934 }
44935 #[inline]
44936 pub fn image_offset(mut self, value: Offset3D) -> Self {
44937 self.inner.image_offset = value;
44938 self
44939 }
44940 #[inline]
44941 pub fn image_extent(mut self, value: Extent3D) -> Self {
44942 self.inner.image_extent = value;
44943 self
44944 }
44945 #[inline]
44947 pub fn push_next<T: ExtendsBufferImageCopy2>(mut self, next: &'a mut T) -> Self {
44948 unsafe {
44949 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
44950 (*next_ptr).p_next = self.inner.p_next as *mut _;
44951 self.inner.p_next = <*mut BaseOutStructure>::cast::<
44952 core::ffi::c_void,
44953 >(next_ptr) as *const _;
44954 }
44955 self
44956 }
44957}
44958impl<'a> core::ops::Deref for BufferImageCopy2Builder<'a> {
44959 type Target = BufferImageCopy2;
44960 #[inline]
44961 fn deref(&self) -> &Self::Target {
44962 &self.inner
44963 }
44964}
44965impl<'a> core::ops::DerefMut for BufferImageCopy2Builder<'a> {
44966 #[inline]
44967 fn deref_mut(&mut self) -> &mut Self::Target {
44968 &mut self.inner
44969 }
44970}
44971pub struct ImageResolve2Builder<'a> {
44973 inner: ImageResolve2,
44974 _marker: core::marker::PhantomData<&'a ()>,
44975}
44976impl ImageResolve2 {
44977 #[inline]
44979 pub fn builder<'a>() -> ImageResolve2Builder<'a> {
44980 ImageResolve2Builder {
44981 inner: ImageResolve2 {
44982 s_type: StructureType::from_raw(1000337010i32),
44983 ..Default::default()
44984 },
44985 _marker: core::marker::PhantomData,
44986 }
44987 }
44988}
44989impl<'a> ImageResolve2Builder<'a> {
44990 #[inline]
44991 pub fn src_subresource(mut self, value: ImageSubresourceLayers) -> Self {
44992 self.inner.src_subresource = value;
44993 self
44994 }
44995 #[inline]
44996 pub fn src_offset(mut self, value: Offset3D) -> Self {
44997 self.inner.src_offset = value;
44998 self
44999 }
45000 #[inline]
45001 pub fn dst_subresource(mut self, value: ImageSubresourceLayers) -> Self {
45002 self.inner.dst_subresource = value;
45003 self
45004 }
45005 #[inline]
45006 pub fn dst_offset(mut self, value: Offset3D) -> Self {
45007 self.inner.dst_offset = value;
45008 self
45009 }
45010 #[inline]
45011 pub fn extent(mut self, value: Extent3D) -> Self {
45012 self.inner.extent = value;
45013 self
45014 }
45015 #[inline]
45017 pub fn push_next<T: ExtendsImageResolve2>(mut self, next: &'a mut T) -> Self {
45018 unsafe {
45019 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45020 (*next_ptr).p_next = self.inner.p_next as *mut _;
45021 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45022 core::ffi::c_void,
45023 >(next_ptr) as *const _;
45024 }
45025 self
45026 }
45027}
45028impl<'a> core::ops::Deref for ImageResolve2Builder<'a> {
45029 type Target = ImageResolve2;
45030 #[inline]
45031 fn deref(&self) -> &Self::Target {
45032 &self.inner
45033 }
45034}
45035impl<'a> core::ops::DerefMut for ImageResolve2Builder<'a> {
45036 #[inline]
45037 fn deref_mut(&mut self) -> &mut Self::Target {
45038 &mut self.inner
45039 }
45040}
45041pub struct CopyBufferInfo2Builder<'a> {
45043 inner: CopyBufferInfo2,
45044 _marker: core::marker::PhantomData<&'a ()>,
45045}
45046impl CopyBufferInfo2 {
45047 #[inline]
45049 pub fn builder<'a>() -> CopyBufferInfo2Builder<'a> {
45050 CopyBufferInfo2Builder {
45051 inner: CopyBufferInfo2 {
45052 s_type: StructureType::from_raw(1000337000i32),
45053 ..Default::default()
45054 },
45055 _marker: core::marker::PhantomData,
45056 }
45057 }
45058}
45059impl<'a> CopyBufferInfo2Builder<'a> {
45060 #[inline]
45061 pub fn src_buffer(mut self, value: Buffer) -> Self {
45062 self.inner.src_buffer = value;
45063 self
45064 }
45065 #[inline]
45066 pub fn dst_buffer(mut self, value: Buffer) -> Self {
45067 self.inner.dst_buffer = value;
45068 self
45069 }
45070 #[inline]
45071 pub fn regions(mut self, slice: &'a [BufferCopy2]) -> Self {
45072 self.inner.region_count = slice.len() as u32;
45073 self.inner.p_regions = slice.as_ptr();
45074 self
45075 }
45076 #[inline]
45078 pub fn push_next<T: ExtendsCopyBufferInfo2>(mut self, next: &'a mut T) -> Self {
45079 unsafe {
45080 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45081 (*next_ptr).p_next = self.inner.p_next as *mut _;
45082 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45083 core::ffi::c_void,
45084 >(next_ptr) as *const _;
45085 }
45086 self
45087 }
45088}
45089impl<'a> core::ops::Deref for CopyBufferInfo2Builder<'a> {
45090 type Target = CopyBufferInfo2;
45091 #[inline]
45092 fn deref(&self) -> &Self::Target {
45093 &self.inner
45094 }
45095}
45096impl<'a> core::ops::DerefMut for CopyBufferInfo2Builder<'a> {
45097 #[inline]
45098 fn deref_mut(&mut self) -> &mut Self::Target {
45099 &mut self.inner
45100 }
45101}
45102pub struct CopyImageInfo2Builder<'a> {
45104 inner: CopyImageInfo2,
45105 _marker: core::marker::PhantomData<&'a ()>,
45106}
45107impl CopyImageInfo2 {
45108 #[inline]
45110 pub fn builder<'a>() -> CopyImageInfo2Builder<'a> {
45111 CopyImageInfo2Builder {
45112 inner: CopyImageInfo2 {
45113 s_type: StructureType::from_raw(1000337001i32),
45114 ..Default::default()
45115 },
45116 _marker: core::marker::PhantomData,
45117 }
45118 }
45119}
45120impl<'a> CopyImageInfo2Builder<'a> {
45121 #[inline]
45122 pub fn src_image(mut self, value: Image) -> Self {
45123 self.inner.src_image = value;
45124 self
45125 }
45126 #[inline]
45127 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
45128 self.inner.src_image_layout = value;
45129 self
45130 }
45131 #[inline]
45132 pub fn dst_image(mut self, value: Image) -> Self {
45133 self.inner.dst_image = value;
45134 self
45135 }
45136 #[inline]
45137 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
45138 self.inner.dst_image_layout = value;
45139 self
45140 }
45141 #[inline]
45142 pub fn regions(mut self, slice: &'a [ImageCopy2]) -> Self {
45143 self.inner.region_count = slice.len() as u32;
45144 self.inner.p_regions = slice.as_ptr();
45145 self
45146 }
45147 #[inline]
45149 pub fn push_next<T: ExtendsCopyImageInfo2>(mut self, next: &'a mut T) -> Self {
45150 unsafe {
45151 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45152 (*next_ptr).p_next = self.inner.p_next as *mut _;
45153 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45154 core::ffi::c_void,
45155 >(next_ptr) as *const _;
45156 }
45157 self
45158 }
45159}
45160impl<'a> core::ops::Deref for CopyImageInfo2Builder<'a> {
45161 type Target = CopyImageInfo2;
45162 #[inline]
45163 fn deref(&self) -> &Self::Target {
45164 &self.inner
45165 }
45166}
45167impl<'a> core::ops::DerefMut for CopyImageInfo2Builder<'a> {
45168 #[inline]
45169 fn deref_mut(&mut self) -> &mut Self::Target {
45170 &mut self.inner
45171 }
45172}
45173pub struct BlitImageInfo2Builder<'a> {
45175 inner: BlitImageInfo2,
45176 _marker: core::marker::PhantomData<&'a ()>,
45177}
45178impl BlitImageInfo2 {
45179 #[inline]
45181 pub fn builder<'a>() -> BlitImageInfo2Builder<'a> {
45182 BlitImageInfo2Builder {
45183 inner: BlitImageInfo2 {
45184 s_type: StructureType::from_raw(1000337004i32),
45185 ..Default::default()
45186 },
45187 _marker: core::marker::PhantomData,
45188 }
45189 }
45190}
45191impl<'a> BlitImageInfo2Builder<'a> {
45192 #[inline]
45193 pub fn src_image(mut self, value: Image) -> Self {
45194 self.inner.src_image = value;
45195 self
45196 }
45197 #[inline]
45198 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
45199 self.inner.src_image_layout = value;
45200 self
45201 }
45202 #[inline]
45203 pub fn dst_image(mut self, value: Image) -> Self {
45204 self.inner.dst_image = value;
45205 self
45206 }
45207 #[inline]
45208 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
45209 self.inner.dst_image_layout = value;
45210 self
45211 }
45212 #[inline]
45213 pub fn regions(mut self, slice: &'a [ImageBlit2]) -> Self {
45214 self.inner.region_count = slice.len() as u32;
45215 self.inner.p_regions = slice.as_ptr();
45216 self
45217 }
45218 #[inline]
45219 pub fn filter(mut self, value: Filter) -> Self {
45220 self.inner.filter = value;
45221 self
45222 }
45223 #[inline]
45225 pub fn push_next<T: ExtendsBlitImageInfo2>(mut self, next: &'a mut T) -> Self {
45226 unsafe {
45227 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45228 (*next_ptr).p_next = self.inner.p_next as *mut _;
45229 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45230 core::ffi::c_void,
45231 >(next_ptr) as *const _;
45232 }
45233 self
45234 }
45235}
45236impl<'a> core::ops::Deref for BlitImageInfo2Builder<'a> {
45237 type Target = BlitImageInfo2;
45238 #[inline]
45239 fn deref(&self) -> &Self::Target {
45240 &self.inner
45241 }
45242}
45243impl<'a> core::ops::DerefMut for BlitImageInfo2Builder<'a> {
45244 #[inline]
45245 fn deref_mut(&mut self) -> &mut Self::Target {
45246 &mut self.inner
45247 }
45248}
45249pub struct CopyBufferToImageInfo2Builder<'a> {
45251 inner: CopyBufferToImageInfo2,
45252 _marker: core::marker::PhantomData<&'a ()>,
45253}
45254impl CopyBufferToImageInfo2 {
45255 #[inline]
45257 pub fn builder<'a>() -> CopyBufferToImageInfo2Builder<'a> {
45258 CopyBufferToImageInfo2Builder {
45259 inner: CopyBufferToImageInfo2 {
45260 s_type: StructureType::from_raw(1000337002i32),
45261 ..Default::default()
45262 },
45263 _marker: core::marker::PhantomData,
45264 }
45265 }
45266}
45267impl<'a> CopyBufferToImageInfo2Builder<'a> {
45268 #[inline]
45269 pub fn src_buffer(mut self, value: Buffer) -> Self {
45270 self.inner.src_buffer = value;
45271 self
45272 }
45273 #[inline]
45274 pub fn dst_image(mut self, value: Image) -> Self {
45275 self.inner.dst_image = value;
45276 self
45277 }
45278 #[inline]
45279 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
45280 self.inner.dst_image_layout = value;
45281 self
45282 }
45283 #[inline]
45284 pub fn regions(mut self, slice: &'a [BufferImageCopy2]) -> Self {
45285 self.inner.region_count = slice.len() as u32;
45286 self.inner.p_regions = slice.as_ptr();
45287 self
45288 }
45289 #[inline]
45291 pub fn push_next<T: ExtendsCopyBufferToImageInfo2>(
45292 mut self,
45293 next: &'a mut T,
45294 ) -> Self {
45295 unsafe {
45296 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45297 (*next_ptr).p_next = self.inner.p_next as *mut _;
45298 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45299 core::ffi::c_void,
45300 >(next_ptr) as *const _;
45301 }
45302 self
45303 }
45304}
45305impl<'a> core::ops::Deref for CopyBufferToImageInfo2Builder<'a> {
45306 type Target = CopyBufferToImageInfo2;
45307 #[inline]
45308 fn deref(&self) -> &Self::Target {
45309 &self.inner
45310 }
45311}
45312impl<'a> core::ops::DerefMut for CopyBufferToImageInfo2Builder<'a> {
45313 #[inline]
45314 fn deref_mut(&mut self) -> &mut Self::Target {
45315 &mut self.inner
45316 }
45317}
45318pub struct CopyImageToBufferInfo2Builder<'a> {
45320 inner: CopyImageToBufferInfo2,
45321 _marker: core::marker::PhantomData<&'a ()>,
45322}
45323impl CopyImageToBufferInfo2 {
45324 #[inline]
45326 pub fn builder<'a>() -> CopyImageToBufferInfo2Builder<'a> {
45327 CopyImageToBufferInfo2Builder {
45328 inner: CopyImageToBufferInfo2 {
45329 s_type: StructureType::from_raw(1000337003i32),
45330 ..Default::default()
45331 },
45332 _marker: core::marker::PhantomData,
45333 }
45334 }
45335}
45336impl<'a> CopyImageToBufferInfo2Builder<'a> {
45337 #[inline]
45338 pub fn src_image(mut self, value: Image) -> Self {
45339 self.inner.src_image = value;
45340 self
45341 }
45342 #[inline]
45343 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
45344 self.inner.src_image_layout = value;
45345 self
45346 }
45347 #[inline]
45348 pub fn dst_buffer(mut self, value: Buffer) -> Self {
45349 self.inner.dst_buffer = value;
45350 self
45351 }
45352 #[inline]
45353 pub fn regions(mut self, slice: &'a [BufferImageCopy2]) -> Self {
45354 self.inner.region_count = slice.len() as u32;
45355 self.inner.p_regions = slice.as_ptr();
45356 self
45357 }
45358 #[inline]
45360 pub fn push_next<T: ExtendsCopyImageToBufferInfo2>(
45361 mut self,
45362 next: &'a mut T,
45363 ) -> Self {
45364 unsafe {
45365 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45366 (*next_ptr).p_next = self.inner.p_next as *mut _;
45367 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45368 core::ffi::c_void,
45369 >(next_ptr) as *const _;
45370 }
45371 self
45372 }
45373}
45374impl<'a> core::ops::Deref for CopyImageToBufferInfo2Builder<'a> {
45375 type Target = CopyImageToBufferInfo2;
45376 #[inline]
45377 fn deref(&self) -> &Self::Target {
45378 &self.inner
45379 }
45380}
45381impl<'a> core::ops::DerefMut for CopyImageToBufferInfo2Builder<'a> {
45382 #[inline]
45383 fn deref_mut(&mut self) -> &mut Self::Target {
45384 &mut self.inner
45385 }
45386}
45387pub struct ResolveImageInfo2Builder<'a> {
45389 inner: ResolveImageInfo2,
45390 _marker: core::marker::PhantomData<&'a ()>,
45391}
45392impl ResolveImageInfo2 {
45393 #[inline]
45395 pub fn builder<'a>() -> ResolveImageInfo2Builder<'a> {
45396 ResolveImageInfo2Builder {
45397 inner: ResolveImageInfo2 {
45398 s_type: StructureType::from_raw(1000337005i32),
45399 ..Default::default()
45400 },
45401 _marker: core::marker::PhantomData,
45402 }
45403 }
45404}
45405impl<'a> ResolveImageInfo2Builder<'a> {
45406 #[inline]
45407 pub fn src_image(mut self, value: Image) -> Self {
45408 self.inner.src_image = value;
45409 self
45410 }
45411 #[inline]
45412 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
45413 self.inner.src_image_layout = value;
45414 self
45415 }
45416 #[inline]
45417 pub fn dst_image(mut self, value: Image) -> Self {
45418 self.inner.dst_image = value;
45419 self
45420 }
45421 #[inline]
45422 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
45423 self.inner.dst_image_layout = value;
45424 self
45425 }
45426 #[inline]
45427 pub fn regions(mut self, slice: &'a [ImageResolve2]) -> Self {
45428 self.inner.region_count = slice.len() as u32;
45429 self.inner.p_regions = slice.as_ptr();
45430 self
45431 }
45432 #[inline]
45434 pub fn push_next<T: ExtendsResolveImageInfo2>(mut self, next: &'a mut T) -> Self {
45435 unsafe {
45436 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45437 (*next_ptr).p_next = self.inner.p_next as *mut _;
45438 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45439 core::ffi::c_void,
45440 >(next_ptr) as *const _;
45441 }
45442 self
45443 }
45444}
45445impl<'a> core::ops::Deref for ResolveImageInfo2Builder<'a> {
45446 type Target = ResolveImageInfo2;
45447 #[inline]
45448 fn deref(&self) -> &Self::Target {
45449 &self.inner
45450 }
45451}
45452impl<'a> core::ops::DerefMut for ResolveImageInfo2Builder<'a> {
45453 #[inline]
45454 fn deref_mut(&mut self) -> &mut Self::Target {
45455 &mut self.inner
45456 }
45457}
45458pub struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
45460 inner: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT,
45461 _marker: core::marker::PhantomData<&'a ()>,
45462}
45463impl PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
45464 #[inline]
45466 pub fn builder<'a>() -> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
45467 PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder {
45468 inner: PhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
45469 s_type: StructureType::from_raw(1000234000i32),
45470 ..Default::default()
45471 },
45472 _marker: core::marker::PhantomData,
45473 }
45474 }
45475}
45476impl<'a> PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
45477 #[inline]
45478 pub fn shader_image_int64_atomics(mut self, value: bool) -> Self {
45479 self.inner.shader_image_int64_atomics = value as u32;
45480 self
45481 }
45482 #[inline]
45483 pub fn sparse_image_int64_atomics(mut self, value: bool) -> Self {
45484 self.inner.sparse_image_int64_atomics = value as u32;
45485 self
45486 }
45487 #[inline]
45489 pub fn push_next<T: ExtendsPhysicalDeviceShaderImageAtomicInt64FeaturesEXT>(
45490 mut self,
45491 next: &'a mut T,
45492 ) -> Self {
45493 unsafe {
45494 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45495 (*next_ptr).p_next = self.inner.p_next as *mut _;
45496 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45497 core::ffi::c_void,
45498 >(next_ptr);
45499 }
45500 self
45501 }
45502}
45503impl<'a> core::ops::Deref
45504for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
45505 type Target = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
45506 #[inline]
45507 fn deref(&self) -> &Self::Target {
45508 &self.inner
45509 }
45510}
45511impl<'a> core::ops::DerefMut
45512for PhysicalDeviceShaderImageAtomicInt64FeaturesEXTBuilder<'a> {
45513 #[inline]
45514 fn deref_mut(&mut self) -> &mut Self::Target {
45515 &mut self.inner
45516 }
45517}
45518pub struct FragmentShadingRateAttachmentInfoKHRBuilder<'a> {
45520 inner: FragmentShadingRateAttachmentInfoKHR,
45521 _marker: core::marker::PhantomData<&'a ()>,
45522}
45523impl FragmentShadingRateAttachmentInfoKHR {
45524 #[inline]
45526 pub fn builder<'a>() -> FragmentShadingRateAttachmentInfoKHRBuilder<'a> {
45527 FragmentShadingRateAttachmentInfoKHRBuilder {
45528 inner: FragmentShadingRateAttachmentInfoKHR {
45529 s_type: StructureType::from_raw(1000226000i32),
45530 ..Default::default()
45531 },
45532 _marker: core::marker::PhantomData,
45533 }
45534 }
45535}
45536impl<'a> FragmentShadingRateAttachmentInfoKHRBuilder<'a> {
45537 #[inline]
45538 pub fn fragment_shading_rate_attachment(
45539 mut self,
45540 value: &'a AttachmentReference2,
45541 ) -> Self {
45542 self.inner.p_fragment_shading_rate_attachment = value;
45543 self
45544 }
45545 #[inline]
45546 pub fn shading_rate_attachment_texel_size(mut self, value: Extent2D) -> Self {
45547 self.inner.shading_rate_attachment_texel_size = value;
45548 self
45549 }
45550 #[inline]
45552 pub fn push_next<T: ExtendsFragmentShadingRateAttachmentInfoKHR>(
45553 mut self,
45554 next: &'a mut T,
45555 ) -> Self {
45556 unsafe {
45557 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45558 (*next_ptr).p_next = self.inner.p_next as *mut _;
45559 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45560 core::ffi::c_void,
45561 >(next_ptr) as *const _;
45562 }
45563 self
45564 }
45565}
45566impl<'a> core::ops::Deref for FragmentShadingRateAttachmentInfoKHRBuilder<'a> {
45567 type Target = FragmentShadingRateAttachmentInfoKHR;
45568 #[inline]
45569 fn deref(&self) -> &Self::Target {
45570 &self.inner
45571 }
45572}
45573impl<'a> core::ops::DerefMut for FragmentShadingRateAttachmentInfoKHRBuilder<'a> {
45574 #[inline]
45575 fn deref_mut(&mut self) -> &mut Self::Target {
45576 &mut self.inner
45577 }
45578}
45579pub struct PipelineFragmentShadingRateStateCreateInfoKHRBuilder<'a> {
45581 inner: PipelineFragmentShadingRateStateCreateInfoKHR,
45582 _marker: core::marker::PhantomData<&'a ()>,
45583}
45584impl PipelineFragmentShadingRateStateCreateInfoKHR {
45585 #[inline]
45587 pub fn builder<'a>() -> PipelineFragmentShadingRateStateCreateInfoKHRBuilder<'a> {
45588 PipelineFragmentShadingRateStateCreateInfoKHRBuilder {
45589 inner: PipelineFragmentShadingRateStateCreateInfoKHR {
45590 s_type: StructureType::from_raw(1000226001i32),
45591 ..Default::default()
45592 },
45593 _marker: core::marker::PhantomData,
45594 }
45595 }
45596}
45597impl<'a> PipelineFragmentShadingRateStateCreateInfoKHRBuilder<'a> {
45598 #[inline]
45599 pub fn fragment_size(mut self, value: Extent2D) -> Self {
45600 self.inner.fragment_size = value;
45601 self
45602 }
45603 #[inline]
45604 pub fn combiner_ops(
45605 mut self,
45606 value: [FragmentShadingRateCombinerOpKHR; 2usize],
45607 ) -> Self {
45608 self.inner.combiner_ops = value;
45609 self
45610 }
45611 #[inline]
45613 pub fn push_next<T: ExtendsPipelineFragmentShadingRateStateCreateInfoKHR>(
45614 mut self,
45615 next: &'a mut T,
45616 ) -> Self {
45617 unsafe {
45618 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45619 (*next_ptr).p_next = self.inner.p_next as *mut _;
45620 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45621 core::ffi::c_void,
45622 >(next_ptr) as *const _;
45623 }
45624 self
45625 }
45626}
45627impl<'a> core::ops::Deref for PipelineFragmentShadingRateStateCreateInfoKHRBuilder<'a> {
45628 type Target = PipelineFragmentShadingRateStateCreateInfoKHR;
45629 #[inline]
45630 fn deref(&self) -> &Self::Target {
45631 &self.inner
45632 }
45633}
45634impl<'a> core::ops::DerefMut
45635for PipelineFragmentShadingRateStateCreateInfoKHRBuilder<'a> {
45636 #[inline]
45637 fn deref_mut(&mut self) -> &mut Self::Target {
45638 &mut self.inner
45639 }
45640}
45641pub struct PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder<'a> {
45643 inner: PhysicalDeviceFragmentShadingRateFeaturesKHR,
45644 _marker: core::marker::PhantomData<&'a ()>,
45645}
45646impl PhysicalDeviceFragmentShadingRateFeaturesKHR {
45647 #[inline]
45649 pub fn builder<'a>() -> PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder<'a> {
45650 PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder {
45651 inner: PhysicalDeviceFragmentShadingRateFeaturesKHR {
45652 s_type: StructureType::from_raw(1000226003i32),
45653 ..Default::default()
45654 },
45655 _marker: core::marker::PhantomData,
45656 }
45657 }
45658}
45659impl<'a> PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder<'a> {
45660 #[inline]
45661 pub fn pipeline_fragment_shading_rate(mut self, value: bool) -> Self {
45662 self.inner.pipeline_fragment_shading_rate = value as u32;
45663 self
45664 }
45665 #[inline]
45666 pub fn primitive_fragment_shading_rate(mut self, value: bool) -> Self {
45667 self.inner.primitive_fragment_shading_rate = value as u32;
45668 self
45669 }
45670 #[inline]
45671 pub fn attachment_fragment_shading_rate(mut self, value: bool) -> Self {
45672 self.inner.attachment_fragment_shading_rate = value as u32;
45673 self
45674 }
45675 #[inline]
45677 pub fn push_next<T: ExtendsPhysicalDeviceFragmentShadingRateFeaturesKHR>(
45678 mut self,
45679 next: &'a mut T,
45680 ) -> Self {
45681 unsafe {
45682 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45683 (*next_ptr).p_next = self.inner.p_next as *mut _;
45684 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45685 core::ffi::c_void,
45686 >(next_ptr);
45687 }
45688 self
45689 }
45690}
45691impl<'a> core::ops::Deref for PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder<'a> {
45692 type Target = PhysicalDeviceFragmentShadingRateFeaturesKHR;
45693 #[inline]
45694 fn deref(&self) -> &Self::Target {
45695 &self.inner
45696 }
45697}
45698impl<'a> core::ops::DerefMut
45699for PhysicalDeviceFragmentShadingRateFeaturesKHRBuilder<'a> {
45700 #[inline]
45701 fn deref_mut(&mut self) -> &mut Self::Target {
45702 &mut self.inner
45703 }
45704}
45705pub struct PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder<'a> {
45707 inner: PhysicalDeviceFragmentShadingRatePropertiesKHR,
45708 _marker: core::marker::PhantomData<&'a ()>,
45709}
45710impl PhysicalDeviceFragmentShadingRatePropertiesKHR {
45711 #[inline]
45713 pub fn builder<'a>() -> PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder<'a> {
45714 PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder {
45715 inner: PhysicalDeviceFragmentShadingRatePropertiesKHR {
45716 s_type: StructureType::from_raw(1000226002i32),
45717 ..Default::default()
45718 },
45719 _marker: core::marker::PhantomData,
45720 }
45721 }
45722}
45723impl<'a> PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder<'a> {
45724 #[inline]
45725 pub fn min_fragment_shading_rate_attachment_texel_size(
45726 mut self,
45727 value: Extent2D,
45728 ) -> Self {
45729 self.inner.min_fragment_shading_rate_attachment_texel_size = value;
45730 self
45731 }
45732 #[inline]
45733 pub fn max_fragment_shading_rate_attachment_texel_size(
45734 mut self,
45735 value: Extent2D,
45736 ) -> Self {
45737 self.inner.max_fragment_shading_rate_attachment_texel_size = value;
45738 self
45739 }
45740 #[inline]
45741 pub fn max_fragment_shading_rate_attachment_texel_size_aspect_ratio(
45742 mut self,
45743 value: u32,
45744 ) -> Self {
45745 self.inner.max_fragment_shading_rate_attachment_texel_size_aspect_ratio = value;
45746 self
45747 }
45748 #[inline]
45749 pub fn primitive_fragment_shading_rate_with_multiple_viewports(
45750 mut self,
45751 value: bool,
45752 ) -> Self {
45753 self.inner.primitive_fragment_shading_rate_with_multiple_viewports = value
45754 as u32;
45755 self
45756 }
45757 #[inline]
45758 pub fn layered_shading_rate_attachments(mut self, value: bool) -> Self {
45759 self.inner.layered_shading_rate_attachments = value as u32;
45760 self
45761 }
45762 #[inline]
45763 pub fn fragment_shading_rate_non_trivial_combiner_ops(
45764 mut self,
45765 value: bool,
45766 ) -> Self {
45767 self.inner.fragment_shading_rate_non_trivial_combiner_ops = value as u32;
45768 self
45769 }
45770 #[inline]
45771 pub fn max_fragment_size(mut self, value: Extent2D) -> Self {
45772 self.inner.max_fragment_size = value;
45773 self
45774 }
45775 #[inline]
45776 pub fn max_fragment_size_aspect_ratio(mut self, value: u32) -> Self {
45777 self.inner.max_fragment_size_aspect_ratio = value;
45778 self
45779 }
45780 #[inline]
45781 pub fn max_fragment_shading_rate_coverage_samples(mut self, value: u32) -> Self {
45782 self.inner.max_fragment_shading_rate_coverage_samples = value;
45783 self
45784 }
45785 #[inline]
45786 pub fn max_fragment_shading_rate_rasterization_samples(
45787 mut self,
45788 value: SampleCountFlagBits,
45789 ) -> Self {
45790 self.inner.max_fragment_shading_rate_rasterization_samples = value;
45791 self
45792 }
45793 #[inline]
45794 pub fn fragment_shading_rate_with_shader_depth_stencil_writes(
45795 mut self,
45796 value: bool,
45797 ) -> Self {
45798 self.inner.fragment_shading_rate_with_shader_depth_stencil_writes = value as u32;
45799 self
45800 }
45801 #[inline]
45802 pub fn fragment_shading_rate_with_sample_mask(mut self, value: bool) -> Self {
45803 self.inner.fragment_shading_rate_with_sample_mask = value as u32;
45804 self
45805 }
45806 #[inline]
45807 pub fn fragment_shading_rate_with_shader_sample_mask(mut self, value: bool) -> Self {
45808 self.inner.fragment_shading_rate_with_shader_sample_mask = value as u32;
45809 self
45810 }
45811 #[inline]
45812 pub fn fragment_shading_rate_with_conservative_rasterization(
45813 mut self,
45814 value: bool,
45815 ) -> Self {
45816 self.inner.fragment_shading_rate_with_conservative_rasterization = value as u32;
45817 self
45818 }
45819 #[inline]
45820 pub fn fragment_shading_rate_with_fragment_shader_interlock(
45821 mut self,
45822 value: bool,
45823 ) -> Self {
45824 self.inner.fragment_shading_rate_with_fragment_shader_interlock = value as u32;
45825 self
45826 }
45827 #[inline]
45828 pub fn fragment_shading_rate_with_custom_sample_locations(
45829 mut self,
45830 value: bool,
45831 ) -> Self {
45832 self.inner.fragment_shading_rate_with_custom_sample_locations = value as u32;
45833 self
45834 }
45835 #[inline]
45836 pub fn fragment_shading_rate_strict_multiply_combiner(
45837 mut self,
45838 value: bool,
45839 ) -> Self {
45840 self.inner.fragment_shading_rate_strict_multiply_combiner = value as u32;
45841 self
45842 }
45843}
45844impl<'a> core::ops::Deref for PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder<'a> {
45845 type Target = PhysicalDeviceFragmentShadingRatePropertiesKHR;
45846 #[inline]
45847 fn deref(&self) -> &Self::Target {
45848 &self.inner
45849 }
45850}
45851impl<'a> core::ops::DerefMut
45852for PhysicalDeviceFragmentShadingRatePropertiesKHRBuilder<'a> {
45853 #[inline]
45854 fn deref_mut(&mut self) -> &mut Self::Target {
45855 &mut self.inner
45856 }
45857}
45858pub struct PhysicalDeviceFragmentShadingRateKHRBuilder<'a> {
45860 inner: PhysicalDeviceFragmentShadingRateKHR,
45861 _marker: core::marker::PhantomData<&'a ()>,
45862}
45863impl PhysicalDeviceFragmentShadingRateKHR {
45864 #[inline]
45866 pub fn builder<'a>() -> PhysicalDeviceFragmentShadingRateKHRBuilder<'a> {
45867 PhysicalDeviceFragmentShadingRateKHRBuilder {
45868 inner: PhysicalDeviceFragmentShadingRateKHR {
45869 s_type: StructureType::from_raw(1000226004i32),
45870 ..Default::default()
45871 },
45872 _marker: core::marker::PhantomData,
45873 }
45874 }
45875}
45876impl<'a> PhysicalDeviceFragmentShadingRateKHRBuilder<'a> {
45877 #[inline]
45878 pub fn sample_counts(mut self, value: SampleCountFlags) -> Self {
45879 self.inner.sample_counts = value;
45880 self
45881 }
45882 #[inline]
45883 pub fn fragment_size(mut self, value: Extent2D) -> Self {
45884 self.inner.fragment_size = value;
45885 self
45886 }
45887}
45888impl<'a> core::ops::Deref for PhysicalDeviceFragmentShadingRateKHRBuilder<'a> {
45889 type Target = PhysicalDeviceFragmentShadingRateKHR;
45890 #[inline]
45891 fn deref(&self) -> &Self::Target {
45892 &self.inner
45893 }
45894}
45895impl<'a> core::ops::DerefMut for PhysicalDeviceFragmentShadingRateKHRBuilder<'a> {
45896 #[inline]
45897 fn deref_mut(&mut self) -> &mut Self::Target {
45898 &mut self.inner
45899 }
45900}
45901pub struct PhysicalDeviceShaderTerminateInvocationFeaturesBuilder<'a> {
45903 inner: PhysicalDeviceShaderTerminateInvocationFeatures,
45904 _marker: core::marker::PhantomData<&'a ()>,
45905}
45906impl PhysicalDeviceShaderTerminateInvocationFeatures {
45907 #[inline]
45909 pub fn builder<'a>() -> PhysicalDeviceShaderTerminateInvocationFeaturesBuilder<'a> {
45910 PhysicalDeviceShaderTerminateInvocationFeaturesBuilder {
45911 inner: PhysicalDeviceShaderTerminateInvocationFeatures {
45912 s_type: StructureType::from_raw(1000215000i32),
45913 ..Default::default()
45914 },
45915 _marker: core::marker::PhantomData,
45916 }
45917 }
45918}
45919impl<'a> PhysicalDeviceShaderTerminateInvocationFeaturesBuilder<'a> {
45920 #[inline]
45921 pub fn shader_terminate_invocation(mut self, value: bool) -> Self {
45922 self.inner.shader_terminate_invocation = value as u32;
45923 self
45924 }
45925 #[inline]
45927 pub fn push_next<T: ExtendsPhysicalDeviceShaderTerminateInvocationFeatures>(
45928 mut self,
45929 next: &'a mut T,
45930 ) -> Self {
45931 unsafe {
45932 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45933 (*next_ptr).p_next = self.inner.p_next as *mut _;
45934 self.inner.p_next = <*mut BaseOutStructure>::cast::<
45935 core::ffi::c_void,
45936 >(next_ptr);
45937 }
45938 self
45939 }
45940}
45941impl<'a> core::ops::Deref
45942for PhysicalDeviceShaderTerminateInvocationFeaturesBuilder<'a> {
45943 type Target = PhysicalDeviceShaderTerminateInvocationFeatures;
45944 #[inline]
45945 fn deref(&self) -> &Self::Target {
45946 &self.inner
45947 }
45948}
45949impl<'a> core::ops::DerefMut
45950for PhysicalDeviceShaderTerminateInvocationFeaturesBuilder<'a> {
45951 #[inline]
45952 fn deref_mut(&mut self) -> &mut Self::Target {
45953 &mut self.inner
45954 }
45955}
45956pub struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder<'a> {
45958 inner: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV,
45959 _marker: core::marker::PhantomData<&'a ()>,
45960}
45961impl PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
45962 #[inline]
45964 pub fn builder<'a>() -> PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder<'a> {
45965 PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder {
45966 inner: PhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
45967 s_type: StructureType::from_raw(1000326001i32),
45968 ..Default::default()
45969 },
45970 _marker: core::marker::PhantomData,
45971 }
45972 }
45973}
45974impl<'a> PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder<'a> {
45975 #[inline]
45976 pub fn fragment_shading_rate_enums(mut self, value: bool) -> Self {
45977 self.inner.fragment_shading_rate_enums = value as u32;
45978 self
45979 }
45980 #[inline]
45981 pub fn supersample_fragment_shading_rates(mut self, value: bool) -> Self {
45982 self.inner.supersample_fragment_shading_rates = value as u32;
45983 self
45984 }
45985 #[inline]
45986 pub fn no_invocation_fragment_shading_rates(mut self, value: bool) -> Self {
45987 self.inner.no_invocation_fragment_shading_rates = value as u32;
45988 self
45989 }
45990 #[inline]
45992 pub fn push_next<T: ExtendsPhysicalDeviceFragmentShadingRateEnumsFeaturesNV>(
45993 mut self,
45994 next: &'a mut T,
45995 ) -> Self {
45996 unsafe {
45997 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
45998 (*next_ptr).p_next = self.inner.p_next as *mut _;
45999 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46000 core::ffi::c_void,
46001 >(next_ptr);
46002 }
46003 self
46004 }
46005}
46006impl<'a> core::ops::Deref
46007for PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder<'a> {
46008 type Target = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
46009 #[inline]
46010 fn deref(&self) -> &Self::Target {
46011 &self.inner
46012 }
46013}
46014impl<'a> core::ops::DerefMut
46015for PhysicalDeviceFragmentShadingRateEnumsFeaturesNVBuilder<'a> {
46016 #[inline]
46017 fn deref_mut(&mut self) -> &mut Self::Target {
46018 &mut self.inner
46019 }
46020}
46021pub struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder<'a> {
46023 inner: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV,
46024 _marker: core::marker::PhantomData<&'a ()>,
46025}
46026impl PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
46027 #[inline]
46029 pub fn builder<'a>() -> PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder<
46030 'a,
46031 > {
46032 PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder {
46033 inner: PhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
46034 s_type: StructureType::from_raw(1000326000i32),
46035 ..Default::default()
46036 },
46037 _marker: core::marker::PhantomData,
46038 }
46039 }
46040}
46041impl<'a> PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder<'a> {
46042 #[inline]
46043 pub fn max_fragment_shading_rate_invocation_count(
46044 mut self,
46045 value: SampleCountFlagBits,
46046 ) -> Self {
46047 self.inner.max_fragment_shading_rate_invocation_count = value;
46048 self
46049 }
46050}
46051impl<'a> core::ops::Deref
46052for PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder<'a> {
46053 type Target = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
46054 #[inline]
46055 fn deref(&self) -> &Self::Target {
46056 &self.inner
46057 }
46058}
46059impl<'a> core::ops::DerefMut
46060for PhysicalDeviceFragmentShadingRateEnumsPropertiesNVBuilder<'a> {
46061 #[inline]
46062 fn deref_mut(&mut self) -> &mut Self::Target {
46063 &mut self.inner
46064 }
46065}
46066pub struct PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder<'a> {
46068 inner: PipelineFragmentShadingRateEnumStateCreateInfoNV,
46069 _marker: core::marker::PhantomData<&'a ()>,
46070}
46071impl PipelineFragmentShadingRateEnumStateCreateInfoNV {
46072 #[inline]
46074 pub fn builder<'a>() -> PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder<'a> {
46075 PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder {
46076 inner: PipelineFragmentShadingRateEnumStateCreateInfoNV {
46077 s_type: StructureType::from_raw(1000326002i32),
46078 ..Default::default()
46079 },
46080 _marker: core::marker::PhantomData,
46081 }
46082 }
46083}
46084impl<'a> PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder<'a> {
46085 #[inline]
46086 pub fn shading_rate_type(mut self, value: FragmentShadingRateTypeNV) -> Self {
46087 self.inner.shading_rate_type = value;
46088 self
46089 }
46090 #[inline]
46091 pub fn shading_rate(mut self, value: FragmentShadingRateNV) -> Self {
46092 self.inner.shading_rate = value;
46093 self
46094 }
46095 #[inline]
46096 pub fn combiner_ops(
46097 mut self,
46098 value: [FragmentShadingRateCombinerOpKHR; 2usize],
46099 ) -> Self {
46100 self.inner.combiner_ops = value;
46101 self
46102 }
46103 #[inline]
46105 pub fn push_next<T: ExtendsPipelineFragmentShadingRateEnumStateCreateInfoNV>(
46106 mut self,
46107 next: &'a mut T,
46108 ) -> Self {
46109 unsafe {
46110 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46111 (*next_ptr).p_next = self.inner.p_next as *mut _;
46112 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46113 core::ffi::c_void,
46114 >(next_ptr) as *const _;
46115 }
46116 self
46117 }
46118}
46119impl<'a> core::ops::Deref
46120for PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder<'a> {
46121 type Target = PipelineFragmentShadingRateEnumStateCreateInfoNV;
46122 #[inline]
46123 fn deref(&self) -> &Self::Target {
46124 &self.inner
46125 }
46126}
46127impl<'a> core::ops::DerefMut
46128for PipelineFragmentShadingRateEnumStateCreateInfoNVBuilder<'a> {
46129 #[inline]
46130 fn deref_mut(&mut self) -> &mut Self::Target {
46131 &mut self.inner
46132 }
46133}
46134pub struct AccelerationStructureBuildSizesInfoKHRBuilder<'a> {
46136 inner: AccelerationStructureBuildSizesInfoKHR,
46137 _marker: core::marker::PhantomData<&'a ()>,
46138}
46139impl AccelerationStructureBuildSizesInfoKHR {
46140 #[inline]
46142 pub fn builder<'a>() -> AccelerationStructureBuildSizesInfoKHRBuilder<'a> {
46143 AccelerationStructureBuildSizesInfoKHRBuilder {
46144 inner: AccelerationStructureBuildSizesInfoKHR {
46145 s_type: StructureType::from_raw(1000150020i32),
46146 ..Default::default()
46147 },
46148 _marker: core::marker::PhantomData,
46149 }
46150 }
46151}
46152impl<'a> AccelerationStructureBuildSizesInfoKHRBuilder<'a> {
46153 #[inline]
46154 pub fn acceleration_structure_size(mut self, value: u64) -> Self {
46155 self.inner.acceleration_structure_size = value;
46156 self
46157 }
46158 #[inline]
46159 pub fn update_scratch_size(mut self, value: u64) -> Self {
46160 self.inner.update_scratch_size = value;
46161 self
46162 }
46163 #[inline]
46164 pub fn build_scratch_size(mut self, value: u64) -> Self {
46165 self.inner.build_scratch_size = value;
46166 self
46167 }
46168}
46169impl<'a> core::ops::Deref for AccelerationStructureBuildSizesInfoKHRBuilder<'a> {
46170 type Target = AccelerationStructureBuildSizesInfoKHR;
46171 #[inline]
46172 fn deref(&self) -> &Self::Target {
46173 &self.inner
46174 }
46175}
46176impl<'a> core::ops::DerefMut for AccelerationStructureBuildSizesInfoKHRBuilder<'a> {
46177 #[inline]
46178 fn deref_mut(&mut self) -> &mut Self::Target {
46179 &mut self.inner
46180 }
46181}
46182pub struct PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder<'a> {
46184 inner: PhysicalDeviceImage2DViewOf3DFeaturesEXT,
46185 _marker: core::marker::PhantomData<&'a ()>,
46186}
46187impl PhysicalDeviceImage2DViewOf3DFeaturesEXT {
46188 #[inline]
46190 pub fn builder<'a>() -> PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder<'a> {
46191 PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder {
46192 inner: PhysicalDeviceImage2DViewOf3DFeaturesEXT {
46193 s_type: StructureType::from_raw(1000393000i32),
46194 ..Default::default()
46195 },
46196 _marker: core::marker::PhantomData,
46197 }
46198 }
46199}
46200impl<'a> PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder<'a> {
46201 #[inline]
46202 pub fn image2_d_view_of3_d(mut self, value: bool) -> Self {
46203 self.inner.image2_d_view_of3_d = value as u32;
46204 self
46205 }
46206 #[inline]
46207 pub fn sampler2_d_view_of3_d(mut self, value: bool) -> Self {
46208 self.inner.sampler2_d_view_of3_d = value as u32;
46209 self
46210 }
46211 #[inline]
46213 pub fn push_next<T: ExtendsPhysicalDeviceImage2DViewOf3DFeaturesEXT>(
46214 mut self,
46215 next: &'a mut T,
46216 ) -> Self {
46217 unsafe {
46218 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46219 (*next_ptr).p_next = self.inner.p_next as *mut _;
46220 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46221 core::ffi::c_void,
46222 >(next_ptr);
46223 }
46224 self
46225 }
46226}
46227impl<'a> core::ops::Deref for PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder<'a> {
46228 type Target = PhysicalDeviceImage2DViewOf3DFeaturesEXT;
46229 #[inline]
46230 fn deref(&self) -> &Self::Target {
46231 &self.inner
46232 }
46233}
46234impl<'a> core::ops::DerefMut for PhysicalDeviceImage2DViewOf3DFeaturesEXTBuilder<'a> {
46235 #[inline]
46236 fn deref_mut(&mut self) -> &mut Self::Target {
46237 &mut self.inner
46238 }
46239}
46240pub struct PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder<'a> {
46242 inner: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT,
46243 _marker: core::marker::PhantomData<&'a ()>,
46244}
46245impl PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
46246 #[inline]
46248 pub fn builder<'a>() -> PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder<'a> {
46249 PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder {
46250 inner: PhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
46251 s_type: StructureType::from_raw(1000418000i32),
46252 ..Default::default()
46253 },
46254 _marker: core::marker::PhantomData,
46255 }
46256 }
46257}
46258impl<'a> PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder<'a> {
46259 #[inline]
46260 pub fn image_sliced_view_of3_d(mut self, value: bool) -> Self {
46261 self.inner.image_sliced_view_of3_d = value as u32;
46262 self
46263 }
46264 #[inline]
46266 pub fn push_next<T: ExtendsPhysicalDeviceImageSlicedViewOf3DFeaturesEXT>(
46267 mut self,
46268 next: &'a mut T,
46269 ) -> Self {
46270 unsafe {
46271 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46272 (*next_ptr).p_next = self.inner.p_next as *mut _;
46273 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46274 core::ffi::c_void,
46275 >(next_ptr);
46276 }
46277 self
46278 }
46279}
46280impl<'a> core::ops::Deref for PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder<'a> {
46281 type Target = PhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
46282 #[inline]
46283 fn deref(&self) -> &Self::Target {
46284 &self.inner
46285 }
46286}
46287impl<'a> core::ops::DerefMut
46288for PhysicalDeviceImageSlicedViewOf3DFeaturesEXTBuilder<'a> {
46289 #[inline]
46290 fn deref_mut(&mut self) -> &mut Self::Target {
46291 &mut self.inner
46292 }
46293}
46294pub struct PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder<'a> {
46296 inner: PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT,
46297 _marker: core::marker::PhantomData<&'a ()>,
46298}
46299impl PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
46300 #[inline]
46302 pub fn builder<'a>() -> PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder<
46303 'a,
46304 > {
46305 PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder {
46306 inner: PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
46307 s_type: StructureType::from_raw(1000524000i32),
46308 ..Default::default()
46309 },
46310 _marker: core::marker::PhantomData,
46311 }
46312 }
46313}
46314impl<'a> PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder<'a> {
46315 #[inline]
46316 pub fn attachment_feedback_loop_dynamic_state(mut self, value: bool) -> Self {
46317 self.inner.attachment_feedback_loop_dynamic_state = value as u32;
46318 self
46319 }
46320 #[inline]
46322 pub fn push_next<
46323 T: ExtendsPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT,
46324 >(mut self, next: &'a mut T) -> Self {
46325 unsafe {
46326 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46327 (*next_ptr).p_next = self.inner.p_next as *mut _;
46328 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46329 core::ffi::c_void,
46330 >(next_ptr);
46331 }
46332 self
46333 }
46334}
46335impl<'a> core::ops::Deref
46336for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder<'a> {
46337 type Target = PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
46338 #[inline]
46339 fn deref(&self) -> &Self::Target {
46340 &self.inner
46341 }
46342}
46343impl<'a> core::ops::DerefMut
46344for PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXTBuilder<'a> {
46345 #[inline]
46346 fn deref_mut(&mut self) -> &mut Self::Target {
46347 &mut self.inner
46348 }
46349}
46350pub struct PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder<'a> {
46352 inner: PhysicalDeviceLegacyVertexAttributesFeaturesEXT,
46353 _marker: core::marker::PhantomData<&'a ()>,
46354}
46355impl PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
46356 #[inline]
46358 pub fn builder<'a>() -> PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder<'a> {
46359 PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder {
46360 inner: PhysicalDeviceLegacyVertexAttributesFeaturesEXT {
46361 s_type: StructureType::from_raw(1000495000i32),
46362 ..Default::default()
46363 },
46364 _marker: core::marker::PhantomData,
46365 }
46366 }
46367}
46368impl<'a> PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder<'a> {
46369 #[inline]
46370 pub fn legacy_vertex_attributes(mut self, value: bool) -> Self {
46371 self.inner.legacy_vertex_attributes = value as u32;
46372 self
46373 }
46374 #[inline]
46376 pub fn push_next<T: ExtendsPhysicalDeviceLegacyVertexAttributesFeaturesEXT>(
46377 mut self,
46378 next: &'a mut T,
46379 ) -> Self {
46380 unsafe {
46381 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46382 (*next_ptr).p_next = self.inner.p_next as *mut _;
46383 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46384 core::ffi::c_void,
46385 >(next_ptr);
46386 }
46387 self
46388 }
46389}
46390impl<'a> core::ops::Deref
46391for PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder<'a> {
46392 type Target = PhysicalDeviceLegacyVertexAttributesFeaturesEXT;
46393 #[inline]
46394 fn deref(&self) -> &Self::Target {
46395 &self.inner
46396 }
46397}
46398impl<'a> core::ops::DerefMut
46399for PhysicalDeviceLegacyVertexAttributesFeaturesEXTBuilder<'a> {
46400 #[inline]
46401 fn deref_mut(&mut self) -> &mut Self::Target {
46402 &mut self.inner
46403 }
46404}
46405pub struct PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder<'a> {
46407 inner: PhysicalDeviceLegacyVertexAttributesPropertiesEXT,
46408 _marker: core::marker::PhantomData<&'a ()>,
46409}
46410impl PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
46411 #[inline]
46413 pub fn builder<'a>() -> PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder<
46414 'a,
46415 > {
46416 PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder {
46417 inner: PhysicalDeviceLegacyVertexAttributesPropertiesEXT {
46418 s_type: StructureType::from_raw(1000495001i32),
46419 ..Default::default()
46420 },
46421 _marker: core::marker::PhantomData,
46422 }
46423 }
46424}
46425impl<'a> PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder<'a> {
46426 #[inline]
46427 pub fn native_unaligned_performance(mut self, value: bool) -> Self {
46428 self.inner.native_unaligned_performance = value as u32;
46429 self
46430 }
46431}
46432impl<'a> core::ops::Deref
46433for PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder<'a> {
46434 type Target = PhysicalDeviceLegacyVertexAttributesPropertiesEXT;
46435 #[inline]
46436 fn deref(&self) -> &Self::Target {
46437 &self.inner
46438 }
46439}
46440impl<'a> core::ops::DerefMut
46441for PhysicalDeviceLegacyVertexAttributesPropertiesEXTBuilder<'a> {
46442 #[inline]
46443 fn deref_mut(&mut self) -> &mut Self::Target {
46444 &mut self.inner
46445 }
46446}
46447pub struct PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder<'a> {
46449 inner: PhysicalDeviceMutableDescriptorTypeFeaturesEXT,
46450 _marker: core::marker::PhantomData<&'a ()>,
46451}
46452impl PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
46453 #[inline]
46455 pub fn builder<'a>() -> PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder<'a> {
46456 PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder {
46457 inner: PhysicalDeviceMutableDescriptorTypeFeaturesEXT {
46458 s_type: StructureType::from_raw(1000351000i32),
46459 ..Default::default()
46460 },
46461 _marker: core::marker::PhantomData,
46462 }
46463 }
46464}
46465impl<'a> PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder<'a> {
46466 #[inline]
46467 pub fn mutable_descriptor_type(mut self, value: bool) -> Self {
46468 self.inner.mutable_descriptor_type = value as u32;
46469 self
46470 }
46471 #[inline]
46473 pub fn push_next<T: ExtendsPhysicalDeviceMutableDescriptorTypeFeaturesEXT>(
46474 mut self,
46475 next: &'a mut T,
46476 ) -> Self {
46477 unsafe {
46478 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46479 (*next_ptr).p_next = self.inner.p_next as *mut _;
46480 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46481 core::ffi::c_void,
46482 >(next_ptr);
46483 }
46484 self
46485 }
46486}
46487impl<'a> core::ops::Deref for PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder<'a> {
46488 type Target = PhysicalDeviceMutableDescriptorTypeFeaturesEXT;
46489 #[inline]
46490 fn deref(&self) -> &Self::Target {
46491 &self.inner
46492 }
46493}
46494impl<'a> core::ops::DerefMut
46495for PhysicalDeviceMutableDescriptorTypeFeaturesEXTBuilder<'a> {
46496 #[inline]
46497 fn deref_mut(&mut self) -> &mut Self::Target {
46498 &mut self.inner
46499 }
46500}
46501pub struct MutableDescriptorTypeListEXTBuilder<'a> {
46503 inner: MutableDescriptorTypeListEXT,
46504 _marker: core::marker::PhantomData<&'a ()>,
46505}
46506impl MutableDescriptorTypeListEXT {
46507 #[inline]
46509 pub fn builder<'a>() -> MutableDescriptorTypeListEXTBuilder<'a> {
46510 MutableDescriptorTypeListEXTBuilder {
46511 inner: MutableDescriptorTypeListEXT {
46512 ..Default::default()
46513 },
46514 _marker: core::marker::PhantomData,
46515 }
46516 }
46517}
46518impl<'a> MutableDescriptorTypeListEXTBuilder<'a> {
46519 #[inline]
46520 pub fn descriptor_types(mut self, slice: &'a [DescriptorType]) -> Self {
46521 self.inner.descriptor_type_count = slice.len() as u32;
46522 self.inner.p_descriptor_types = slice.as_ptr();
46523 self
46524 }
46525}
46526impl<'a> core::ops::Deref for MutableDescriptorTypeListEXTBuilder<'a> {
46527 type Target = MutableDescriptorTypeListEXT;
46528 #[inline]
46529 fn deref(&self) -> &Self::Target {
46530 &self.inner
46531 }
46532}
46533impl<'a> core::ops::DerefMut for MutableDescriptorTypeListEXTBuilder<'a> {
46534 #[inline]
46535 fn deref_mut(&mut self) -> &mut Self::Target {
46536 &mut self.inner
46537 }
46538}
46539pub struct MutableDescriptorTypeCreateInfoEXTBuilder<'a> {
46541 inner: MutableDescriptorTypeCreateInfoEXT,
46542 _marker: core::marker::PhantomData<&'a ()>,
46543}
46544impl MutableDescriptorTypeCreateInfoEXT {
46545 #[inline]
46547 pub fn builder<'a>() -> MutableDescriptorTypeCreateInfoEXTBuilder<'a> {
46548 MutableDescriptorTypeCreateInfoEXTBuilder {
46549 inner: MutableDescriptorTypeCreateInfoEXT {
46550 s_type: StructureType::from_raw(1000351002i32),
46551 ..Default::default()
46552 },
46553 _marker: core::marker::PhantomData,
46554 }
46555 }
46556}
46557impl<'a> MutableDescriptorTypeCreateInfoEXTBuilder<'a> {
46558 #[inline]
46559 pub fn mutable_descriptor_type_lists(
46560 mut self,
46561 slice: &'a [MutableDescriptorTypeListEXT],
46562 ) -> Self {
46563 self.inner.mutable_descriptor_type_list_count = slice.len() as u32;
46564 self.inner.p_mutable_descriptor_type_lists = slice.as_ptr();
46565 self
46566 }
46567 #[inline]
46569 pub fn push_next<T: ExtendsMutableDescriptorTypeCreateInfoEXT>(
46570 mut self,
46571 next: &'a mut T,
46572 ) -> Self {
46573 unsafe {
46574 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46575 (*next_ptr).p_next = self.inner.p_next as *mut _;
46576 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46577 core::ffi::c_void,
46578 >(next_ptr) as *const _;
46579 }
46580 self
46581 }
46582}
46583impl<'a> core::ops::Deref for MutableDescriptorTypeCreateInfoEXTBuilder<'a> {
46584 type Target = MutableDescriptorTypeCreateInfoEXT;
46585 #[inline]
46586 fn deref(&self) -> &Self::Target {
46587 &self.inner
46588 }
46589}
46590impl<'a> core::ops::DerefMut for MutableDescriptorTypeCreateInfoEXTBuilder<'a> {
46591 #[inline]
46592 fn deref_mut(&mut self) -> &mut Self::Target {
46593 &mut self.inner
46594 }
46595}
46596pub struct PhysicalDeviceDepthClipControlFeaturesEXTBuilder<'a> {
46598 inner: PhysicalDeviceDepthClipControlFeaturesEXT,
46599 _marker: core::marker::PhantomData<&'a ()>,
46600}
46601impl PhysicalDeviceDepthClipControlFeaturesEXT {
46602 #[inline]
46604 pub fn builder<'a>() -> PhysicalDeviceDepthClipControlFeaturesEXTBuilder<'a> {
46605 PhysicalDeviceDepthClipControlFeaturesEXTBuilder {
46606 inner: PhysicalDeviceDepthClipControlFeaturesEXT {
46607 s_type: StructureType::from_raw(1000355000i32),
46608 ..Default::default()
46609 },
46610 _marker: core::marker::PhantomData,
46611 }
46612 }
46613}
46614impl<'a> PhysicalDeviceDepthClipControlFeaturesEXTBuilder<'a> {
46615 #[inline]
46616 pub fn depth_clip_control(mut self, value: bool) -> Self {
46617 self.inner.depth_clip_control = value as u32;
46618 self
46619 }
46620 #[inline]
46622 pub fn push_next<T: ExtendsPhysicalDeviceDepthClipControlFeaturesEXT>(
46623 mut self,
46624 next: &'a mut T,
46625 ) -> Self {
46626 unsafe {
46627 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46628 (*next_ptr).p_next = self.inner.p_next as *mut _;
46629 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46630 core::ffi::c_void,
46631 >(next_ptr);
46632 }
46633 self
46634 }
46635}
46636impl<'a> core::ops::Deref for PhysicalDeviceDepthClipControlFeaturesEXTBuilder<'a> {
46637 type Target = PhysicalDeviceDepthClipControlFeaturesEXT;
46638 #[inline]
46639 fn deref(&self) -> &Self::Target {
46640 &self.inner
46641 }
46642}
46643impl<'a> core::ops::DerefMut for PhysicalDeviceDepthClipControlFeaturesEXTBuilder<'a> {
46644 #[inline]
46645 fn deref_mut(&mut self) -> &mut Self::Target {
46646 &mut self.inner
46647 }
46648}
46649pub struct PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder<'a> {
46651 inner: PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT,
46652 _marker: core::marker::PhantomData<&'a ()>,
46653}
46654impl PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
46655 #[inline]
46657 pub fn builder<'a>() -> PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder<
46658 'a,
46659 > {
46660 PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder {
46661 inner: PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
46662 s_type: StructureType::from_raw(1000620000i32),
46663 ..Default::default()
46664 },
46665 _marker: core::marker::PhantomData,
46666 }
46667 }
46668}
46669impl<'a> PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder<'a> {
46670 #[inline]
46671 pub fn zero_initialize_device_memory(mut self, value: bool) -> Self {
46672 self.inner.zero_initialize_device_memory = value as u32;
46673 self
46674 }
46675 #[inline]
46677 pub fn push_next<T: ExtendsPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT>(
46678 mut self,
46679 next: &'a mut T,
46680 ) -> Self {
46681 unsafe {
46682 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46683 (*next_ptr).p_next = self.inner.p_next as *mut _;
46684 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46685 core::ffi::c_void,
46686 >(next_ptr);
46687 }
46688 self
46689 }
46690}
46691impl<'a> core::ops::Deref
46692for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder<'a> {
46693 type Target = PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
46694 #[inline]
46695 fn deref(&self) -> &Self::Target {
46696 &self.inner
46697 }
46698}
46699impl<'a> core::ops::DerefMut
46700for PhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXTBuilder<'a> {
46701 #[inline]
46702 fn deref_mut(&mut self) -> &mut Self::Target {
46703 &mut self.inner
46704 }
46705}
46706pub struct BeginCustomResolveInfoEXTBuilder<'a> {
46708 inner: BeginCustomResolveInfoEXT,
46709 _marker: core::marker::PhantomData<&'a ()>,
46710}
46711impl BeginCustomResolveInfoEXT {
46712 #[inline]
46714 pub fn builder<'a>() -> BeginCustomResolveInfoEXTBuilder<'a> {
46715 BeginCustomResolveInfoEXTBuilder {
46716 inner: BeginCustomResolveInfoEXT {
46717 s_type: StructureType::from_raw(1000628001i32),
46718 ..Default::default()
46719 },
46720 _marker: core::marker::PhantomData,
46721 }
46722 }
46723}
46724impl<'a> BeginCustomResolveInfoEXTBuilder<'a> {
46725 #[inline]
46727 pub fn push_next<T: ExtendsBeginCustomResolveInfoEXT>(
46728 mut self,
46729 next: &'a mut T,
46730 ) -> Self {
46731 unsafe {
46732 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46733 (*next_ptr).p_next = self.inner.p_next as *mut _;
46734 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46735 core::ffi::c_void,
46736 >(next_ptr);
46737 }
46738 self
46739 }
46740}
46741impl<'a> core::ops::Deref for BeginCustomResolveInfoEXTBuilder<'a> {
46742 type Target = BeginCustomResolveInfoEXT;
46743 #[inline]
46744 fn deref(&self) -> &Self::Target {
46745 &self.inner
46746 }
46747}
46748impl<'a> core::ops::DerefMut for BeginCustomResolveInfoEXTBuilder<'a> {
46749 #[inline]
46750 fn deref_mut(&mut self) -> &mut Self::Target {
46751 &mut self.inner
46752 }
46753}
46754pub struct PhysicalDeviceCustomResolveFeaturesEXTBuilder<'a> {
46756 inner: PhysicalDeviceCustomResolveFeaturesEXT,
46757 _marker: core::marker::PhantomData<&'a ()>,
46758}
46759impl PhysicalDeviceCustomResolveFeaturesEXT {
46760 #[inline]
46762 pub fn builder<'a>() -> PhysicalDeviceCustomResolveFeaturesEXTBuilder<'a> {
46763 PhysicalDeviceCustomResolveFeaturesEXTBuilder {
46764 inner: PhysicalDeviceCustomResolveFeaturesEXT {
46765 s_type: StructureType::from_raw(1000628000i32),
46766 ..Default::default()
46767 },
46768 _marker: core::marker::PhantomData,
46769 }
46770 }
46771}
46772impl<'a> PhysicalDeviceCustomResolveFeaturesEXTBuilder<'a> {
46773 #[inline]
46774 pub fn custom_resolve(mut self, value: bool) -> Self {
46775 self.inner.custom_resolve = value as u32;
46776 self
46777 }
46778 #[inline]
46780 pub fn push_next<T: ExtendsPhysicalDeviceCustomResolveFeaturesEXT>(
46781 mut self,
46782 next: &'a mut T,
46783 ) -> Self {
46784 unsafe {
46785 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46786 (*next_ptr).p_next = self.inner.p_next as *mut _;
46787 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46788 core::ffi::c_void,
46789 >(next_ptr);
46790 }
46791 self
46792 }
46793}
46794impl<'a> core::ops::Deref for PhysicalDeviceCustomResolveFeaturesEXTBuilder<'a> {
46795 type Target = PhysicalDeviceCustomResolveFeaturesEXT;
46796 #[inline]
46797 fn deref(&self) -> &Self::Target {
46798 &self.inner
46799 }
46800}
46801impl<'a> core::ops::DerefMut for PhysicalDeviceCustomResolveFeaturesEXTBuilder<'a> {
46802 #[inline]
46803 fn deref_mut(&mut self) -> &mut Self::Target {
46804 &mut self.inner
46805 }
46806}
46807pub struct CustomResolveCreateInfoEXTBuilder<'a> {
46809 inner: CustomResolveCreateInfoEXT,
46810 _marker: core::marker::PhantomData<&'a ()>,
46811}
46812impl CustomResolveCreateInfoEXT {
46813 #[inline]
46815 pub fn builder<'a>() -> CustomResolveCreateInfoEXTBuilder<'a> {
46816 CustomResolveCreateInfoEXTBuilder {
46817 inner: CustomResolveCreateInfoEXT {
46818 s_type: StructureType::from_raw(1000628002i32),
46819 ..Default::default()
46820 },
46821 _marker: core::marker::PhantomData,
46822 }
46823 }
46824}
46825impl<'a> CustomResolveCreateInfoEXTBuilder<'a> {
46826 #[inline]
46827 pub fn custom_resolve(mut self, value: bool) -> Self {
46828 self.inner.custom_resolve = value as u32;
46829 self
46830 }
46831 #[inline]
46832 pub fn color_attachment_formats(mut self, slice: &'a [Format]) -> Self {
46833 self.inner.color_attachment_count = slice.len() as u32;
46834 self.inner.p_color_attachment_formats = slice.as_ptr();
46835 self
46836 }
46837 #[inline]
46838 pub fn depth_attachment_format(mut self, value: Format) -> Self {
46839 self.inner.depth_attachment_format = value;
46840 self
46841 }
46842 #[inline]
46843 pub fn stencil_attachment_format(mut self, value: Format) -> Self {
46844 self.inner.stencil_attachment_format = value;
46845 self
46846 }
46847 #[inline]
46849 pub fn push_next<T: ExtendsCustomResolveCreateInfoEXT>(
46850 mut self,
46851 next: &'a mut T,
46852 ) -> Self {
46853 unsafe {
46854 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46855 (*next_ptr).p_next = self.inner.p_next as *mut _;
46856 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46857 core::ffi::c_void,
46858 >(next_ptr) as *const _;
46859 }
46860 self
46861 }
46862}
46863impl<'a> core::ops::Deref for CustomResolveCreateInfoEXTBuilder<'a> {
46864 type Target = CustomResolveCreateInfoEXT;
46865 #[inline]
46866 fn deref(&self) -> &Self::Target {
46867 &self.inner
46868 }
46869}
46870impl<'a> core::ops::DerefMut for CustomResolveCreateInfoEXTBuilder<'a> {
46871 #[inline]
46872 fn deref_mut(&mut self) -> &mut Self::Target {
46873 &mut self.inner
46874 }
46875}
46876pub struct PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder<'a> {
46878 inner: PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT,
46879 _marker: core::marker::PhantomData<&'a ()>,
46880}
46881impl PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
46882 #[inline]
46884 pub fn builder<'a>() -> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder<'a> {
46885 PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder {
46886 inner: PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
46887 s_type: StructureType::from_raw(1000572000i32),
46888 ..Default::default()
46889 },
46890 _marker: core::marker::PhantomData,
46891 }
46892 }
46893}
46894impl<'a> PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder<'a> {
46895 #[inline]
46896 pub fn device_generated_commands(mut self, value: bool) -> Self {
46897 self.inner.device_generated_commands = value as u32;
46898 self
46899 }
46900 #[inline]
46901 pub fn dynamic_generated_pipeline_layout(mut self, value: bool) -> Self {
46902 self.inner.dynamic_generated_pipeline_layout = value as u32;
46903 self
46904 }
46905 #[inline]
46907 pub fn push_next<T: ExtendsPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT>(
46908 mut self,
46909 next: &'a mut T,
46910 ) -> Self {
46911 unsafe {
46912 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
46913 (*next_ptr).p_next = self.inner.p_next as *mut _;
46914 self.inner.p_next = <*mut BaseOutStructure>::cast::<
46915 core::ffi::c_void,
46916 >(next_ptr);
46917 }
46918 self
46919 }
46920}
46921impl<'a> core::ops::Deref
46922for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder<'a> {
46923 type Target = PhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
46924 #[inline]
46925 fn deref(&self) -> &Self::Target {
46926 &self.inner
46927 }
46928}
46929impl<'a> core::ops::DerefMut
46930for PhysicalDeviceDeviceGeneratedCommandsFeaturesEXTBuilder<'a> {
46931 #[inline]
46932 fn deref_mut(&mut self) -> &mut Self::Target {
46933 &mut self.inner
46934 }
46935}
46936pub struct PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder<'a> {
46938 inner: PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT,
46939 _marker: core::marker::PhantomData<&'a ()>,
46940}
46941impl PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
46942 #[inline]
46944 pub fn builder<'a>() -> PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder<
46945 'a,
46946 > {
46947 PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder {
46948 inner: PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
46949 s_type: StructureType::from_raw(1000572001i32),
46950 ..Default::default()
46951 },
46952 _marker: core::marker::PhantomData,
46953 }
46954 }
46955}
46956impl<'a> PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder<'a> {
46957 #[inline]
46958 pub fn max_indirect_pipeline_count(mut self, value: u32) -> Self {
46959 self.inner.max_indirect_pipeline_count = value;
46960 self
46961 }
46962 #[inline]
46963 pub fn max_indirect_shader_object_count(mut self, value: u32) -> Self {
46964 self.inner.max_indirect_shader_object_count = value;
46965 self
46966 }
46967 #[inline]
46968 pub fn max_indirect_sequence_count(mut self, value: u32) -> Self {
46969 self.inner.max_indirect_sequence_count = value;
46970 self
46971 }
46972 #[inline]
46973 pub fn max_indirect_commands_token_count(mut self, value: u32) -> Self {
46974 self.inner.max_indirect_commands_token_count = value;
46975 self
46976 }
46977 #[inline]
46978 pub fn max_indirect_commands_token_offset(mut self, value: u32) -> Self {
46979 self.inner.max_indirect_commands_token_offset = value;
46980 self
46981 }
46982 #[inline]
46983 pub fn max_indirect_commands_indirect_stride(mut self, value: u32) -> Self {
46984 self.inner.max_indirect_commands_indirect_stride = value;
46985 self
46986 }
46987 #[inline]
46988 pub fn supported_indirect_commands_input_modes(
46989 mut self,
46990 value: IndirectCommandsInputModeFlagsEXT,
46991 ) -> Self {
46992 self.inner.supported_indirect_commands_input_modes = value;
46993 self
46994 }
46995 #[inline]
46996 pub fn supported_indirect_commands_shader_stages(
46997 mut self,
46998 value: ShaderStageFlags,
46999 ) -> Self {
47000 self.inner.supported_indirect_commands_shader_stages = value;
47001 self
47002 }
47003 #[inline]
47004 pub fn supported_indirect_commands_shader_stages_pipeline_binding(
47005 mut self,
47006 value: ShaderStageFlags,
47007 ) -> Self {
47008 self.inner.supported_indirect_commands_shader_stages_pipeline_binding = value;
47009 self
47010 }
47011 #[inline]
47012 pub fn supported_indirect_commands_shader_stages_shader_binding(
47013 mut self,
47014 value: ShaderStageFlags,
47015 ) -> Self {
47016 self.inner.supported_indirect_commands_shader_stages_shader_binding = value;
47017 self
47018 }
47019 #[inline]
47020 pub fn device_generated_commands_transform_feedback(mut self, value: bool) -> Self {
47021 self.inner.device_generated_commands_transform_feedback = value as u32;
47022 self
47023 }
47024 #[inline]
47025 pub fn device_generated_commands_multi_draw_indirect_count(
47026 mut self,
47027 value: bool,
47028 ) -> Self {
47029 self.inner.device_generated_commands_multi_draw_indirect_count = value as u32;
47030 self
47031 }
47032}
47033impl<'a> core::ops::Deref
47034for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder<'a> {
47035 type Target = PhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
47036 #[inline]
47037 fn deref(&self) -> &Self::Target {
47038 &self.inner
47039 }
47040}
47041impl<'a> core::ops::DerefMut
47042for PhysicalDeviceDeviceGeneratedCommandsPropertiesEXTBuilder<'a> {
47043 #[inline]
47044 fn deref_mut(&mut self) -> &mut Self::Target {
47045 &mut self.inner
47046 }
47047}
47048pub struct GeneratedCommandsPipelineInfoEXTBuilder<'a> {
47050 inner: GeneratedCommandsPipelineInfoEXT,
47051 _marker: core::marker::PhantomData<&'a ()>,
47052}
47053impl GeneratedCommandsPipelineInfoEXT {
47054 #[inline]
47056 pub fn builder<'a>() -> GeneratedCommandsPipelineInfoEXTBuilder<'a> {
47057 GeneratedCommandsPipelineInfoEXTBuilder {
47058 inner: GeneratedCommandsPipelineInfoEXT {
47059 s_type: StructureType::from_raw(1000572013i32),
47060 ..Default::default()
47061 },
47062 _marker: core::marker::PhantomData,
47063 }
47064 }
47065}
47066impl<'a> GeneratedCommandsPipelineInfoEXTBuilder<'a> {
47067 #[inline]
47068 pub fn pipeline(mut self, value: Pipeline) -> Self {
47069 self.inner.pipeline = value;
47070 self
47071 }
47072 #[inline]
47074 pub fn push_next<T: ExtendsGeneratedCommandsPipelineInfoEXT>(
47075 mut self,
47076 next: &'a mut T,
47077 ) -> Self {
47078 unsafe {
47079 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47080 (*next_ptr).p_next = self.inner.p_next as *mut _;
47081 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47082 core::ffi::c_void,
47083 >(next_ptr);
47084 }
47085 self
47086 }
47087}
47088impl<'a> core::ops::Deref for GeneratedCommandsPipelineInfoEXTBuilder<'a> {
47089 type Target = GeneratedCommandsPipelineInfoEXT;
47090 #[inline]
47091 fn deref(&self) -> &Self::Target {
47092 &self.inner
47093 }
47094}
47095impl<'a> core::ops::DerefMut for GeneratedCommandsPipelineInfoEXTBuilder<'a> {
47096 #[inline]
47097 fn deref_mut(&mut self) -> &mut Self::Target {
47098 &mut self.inner
47099 }
47100}
47101pub struct GeneratedCommandsShaderInfoEXTBuilder<'a> {
47103 inner: GeneratedCommandsShaderInfoEXT,
47104 _marker: core::marker::PhantomData<&'a ()>,
47105}
47106impl GeneratedCommandsShaderInfoEXT {
47107 #[inline]
47109 pub fn builder<'a>() -> GeneratedCommandsShaderInfoEXTBuilder<'a> {
47110 GeneratedCommandsShaderInfoEXTBuilder {
47111 inner: GeneratedCommandsShaderInfoEXT {
47112 s_type: StructureType::from_raw(1000572014i32),
47113 ..Default::default()
47114 },
47115 _marker: core::marker::PhantomData,
47116 }
47117 }
47118}
47119impl<'a> GeneratedCommandsShaderInfoEXTBuilder<'a> {
47120 #[inline]
47121 pub fn shaders(mut self, slice: &'a [ShaderEXT]) -> Self {
47122 self.inner.shader_count = slice.len() as u32;
47123 self.inner.p_shaders = slice.as_ptr();
47124 self
47125 }
47126 #[inline]
47128 pub fn push_next<T: ExtendsGeneratedCommandsShaderInfoEXT>(
47129 mut self,
47130 next: &'a mut T,
47131 ) -> Self {
47132 unsafe {
47133 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47134 (*next_ptr).p_next = self.inner.p_next as *mut _;
47135 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47136 core::ffi::c_void,
47137 >(next_ptr);
47138 }
47139 self
47140 }
47141}
47142impl<'a> core::ops::Deref for GeneratedCommandsShaderInfoEXTBuilder<'a> {
47143 type Target = GeneratedCommandsShaderInfoEXT;
47144 #[inline]
47145 fn deref(&self) -> &Self::Target {
47146 &self.inner
47147 }
47148}
47149impl<'a> core::ops::DerefMut for GeneratedCommandsShaderInfoEXTBuilder<'a> {
47150 #[inline]
47151 fn deref_mut(&mut self) -> &mut Self::Target {
47152 &mut self.inner
47153 }
47154}
47155pub struct GeneratedCommandsMemoryRequirementsInfoEXTBuilder<'a> {
47157 inner: GeneratedCommandsMemoryRequirementsInfoEXT,
47158 _marker: core::marker::PhantomData<&'a ()>,
47159}
47160impl GeneratedCommandsMemoryRequirementsInfoEXT {
47161 #[inline]
47163 pub fn builder<'a>() -> GeneratedCommandsMemoryRequirementsInfoEXTBuilder<'a> {
47164 GeneratedCommandsMemoryRequirementsInfoEXTBuilder {
47165 inner: GeneratedCommandsMemoryRequirementsInfoEXT {
47166 s_type: StructureType::from_raw(1000572002i32),
47167 ..Default::default()
47168 },
47169 _marker: core::marker::PhantomData,
47170 }
47171 }
47172}
47173impl<'a> GeneratedCommandsMemoryRequirementsInfoEXTBuilder<'a> {
47174 #[inline]
47175 pub fn indirect_execution_set(mut self, value: IndirectExecutionSetEXT) -> Self {
47176 self.inner.indirect_execution_set = value;
47177 self
47178 }
47179 #[inline]
47180 pub fn indirect_commands_layout(mut self, value: IndirectCommandsLayoutEXT) -> Self {
47181 self.inner.indirect_commands_layout = value;
47182 self
47183 }
47184 #[inline]
47185 pub fn max_sequence_count(mut self, value: u32) -> Self {
47186 self.inner.max_sequence_count = value;
47187 self
47188 }
47189 #[inline]
47190 pub fn max_draw_count(mut self, value: u32) -> Self {
47191 self.inner.max_draw_count = value;
47192 self
47193 }
47194 #[inline]
47196 pub fn push_next<T: ExtendsGeneratedCommandsMemoryRequirementsInfoEXT>(
47197 mut self,
47198 next: &'a mut T,
47199 ) -> Self {
47200 unsafe {
47201 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47202 (*next_ptr).p_next = self.inner.p_next as *mut _;
47203 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47204 core::ffi::c_void,
47205 >(next_ptr) as *const _;
47206 }
47207 self
47208 }
47209}
47210impl<'a> core::ops::Deref for GeneratedCommandsMemoryRequirementsInfoEXTBuilder<'a> {
47211 type Target = GeneratedCommandsMemoryRequirementsInfoEXT;
47212 #[inline]
47213 fn deref(&self) -> &Self::Target {
47214 &self.inner
47215 }
47216}
47217impl<'a> core::ops::DerefMut for GeneratedCommandsMemoryRequirementsInfoEXTBuilder<'a> {
47218 #[inline]
47219 fn deref_mut(&mut self) -> &mut Self::Target {
47220 &mut self.inner
47221 }
47222}
47223pub struct IndirectExecutionSetPipelineInfoEXTBuilder<'a> {
47225 inner: IndirectExecutionSetPipelineInfoEXT,
47226 _marker: core::marker::PhantomData<&'a ()>,
47227}
47228impl IndirectExecutionSetPipelineInfoEXT {
47229 #[inline]
47231 pub fn builder<'a>() -> IndirectExecutionSetPipelineInfoEXTBuilder<'a> {
47232 IndirectExecutionSetPipelineInfoEXTBuilder {
47233 inner: IndirectExecutionSetPipelineInfoEXT {
47234 s_type: StructureType::from_raw(1000572010i32),
47235 ..Default::default()
47236 },
47237 _marker: core::marker::PhantomData,
47238 }
47239 }
47240}
47241impl<'a> IndirectExecutionSetPipelineInfoEXTBuilder<'a> {
47242 #[inline]
47243 pub fn initial_pipeline(mut self, value: Pipeline) -> Self {
47244 self.inner.initial_pipeline = value;
47245 self
47246 }
47247 #[inline]
47248 pub fn max_pipeline_count(mut self, value: u32) -> Self {
47249 self.inner.max_pipeline_count = value;
47250 self
47251 }
47252 #[inline]
47254 pub fn push_next<T: ExtendsIndirectExecutionSetPipelineInfoEXT>(
47255 mut self,
47256 next: &'a mut T,
47257 ) -> Self {
47258 unsafe {
47259 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47260 (*next_ptr).p_next = self.inner.p_next as *mut _;
47261 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47262 core::ffi::c_void,
47263 >(next_ptr) as *const _;
47264 }
47265 self
47266 }
47267}
47268impl<'a> core::ops::Deref for IndirectExecutionSetPipelineInfoEXTBuilder<'a> {
47269 type Target = IndirectExecutionSetPipelineInfoEXT;
47270 #[inline]
47271 fn deref(&self) -> &Self::Target {
47272 &self.inner
47273 }
47274}
47275impl<'a> core::ops::DerefMut for IndirectExecutionSetPipelineInfoEXTBuilder<'a> {
47276 #[inline]
47277 fn deref_mut(&mut self) -> &mut Self::Target {
47278 &mut self.inner
47279 }
47280}
47281pub struct IndirectExecutionSetShaderLayoutInfoEXTBuilder<'a> {
47283 inner: IndirectExecutionSetShaderLayoutInfoEXT,
47284 _marker: core::marker::PhantomData<&'a ()>,
47285}
47286impl IndirectExecutionSetShaderLayoutInfoEXT {
47287 #[inline]
47289 pub fn builder<'a>() -> IndirectExecutionSetShaderLayoutInfoEXTBuilder<'a> {
47290 IndirectExecutionSetShaderLayoutInfoEXTBuilder {
47291 inner: IndirectExecutionSetShaderLayoutInfoEXT {
47292 s_type: StructureType::from_raw(1000572012i32),
47293 ..Default::default()
47294 },
47295 _marker: core::marker::PhantomData,
47296 }
47297 }
47298}
47299impl<'a> IndirectExecutionSetShaderLayoutInfoEXTBuilder<'a> {
47300 #[inline]
47301 pub fn set_layout_count(mut self, value: u32) -> Self {
47302 self.inner.set_layout_count = value;
47303 self
47304 }
47305 #[inline]
47306 pub fn set_layouts(mut self, slice: &'a [DescriptorSetLayout]) -> Self {
47307 self.inner.set_layout_count = slice.len() as u32;
47308 self.inner.p_set_layouts = slice.as_ptr();
47309 self
47310 }
47311 #[inline]
47313 pub fn push_next<T: ExtendsIndirectExecutionSetShaderLayoutInfoEXT>(
47314 mut self,
47315 next: &'a mut T,
47316 ) -> Self {
47317 unsafe {
47318 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47319 (*next_ptr).p_next = self.inner.p_next as *mut _;
47320 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47321 core::ffi::c_void,
47322 >(next_ptr) as *const _;
47323 }
47324 self
47325 }
47326}
47327impl<'a> core::ops::Deref for IndirectExecutionSetShaderLayoutInfoEXTBuilder<'a> {
47328 type Target = IndirectExecutionSetShaderLayoutInfoEXT;
47329 #[inline]
47330 fn deref(&self) -> &Self::Target {
47331 &self.inner
47332 }
47333}
47334impl<'a> core::ops::DerefMut for IndirectExecutionSetShaderLayoutInfoEXTBuilder<'a> {
47335 #[inline]
47336 fn deref_mut(&mut self) -> &mut Self::Target {
47337 &mut self.inner
47338 }
47339}
47340pub struct IndirectExecutionSetShaderInfoEXTBuilder<'a> {
47342 inner: IndirectExecutionSetShaderInfoEXT,
47343 _marker: core::marker::PhantomData<&'a ()>,
47344}
47345impl IndirectExecutionSetShaderInfoEXT {
47346 #[inline]
47348 pub fn builder<'a>() -> IndirectExecutionSetShaderInfoEXTBuilder<'a> {
47349 IndirectExecutionSetShaderInfoEXTBuilder {
47350 inner: IndirectExecutionSetShaderInfoEXT {
47351 s_type: StructureType::from_raw(1000572011i32),
47352 ..Default::default()
47353 },
47354 _marker: core::marker::PhantomData,
47355 }
47356 }
47357}
47358impl<'a> IndirectExecutionSetShaderInfoEXTBuilder<'a> {
47359 #[inline]
47360 pub fn initial_shaders(mut self, slice: &'a [ShaderEXT]) -> Self {
47361 self.inner.shader_count = slice.len() as u32;
47362 self.inner.p_initial_shaders = slice.as_ptr();
47363 self
47364 }
47365 #[inline]
47366 pub fn set_layout_infos(
47367 mut self,
47368 slice: &'a [IndirectExecutionSetShaderLayoutInfoEXT],
47369 ) -> Self {
47370 self.inner.shader_count = slice.len() as u32;
47371 self.inner.p_set_layout_infos = slice.as_ptr();
47372 self
47373 }
47374 #[inline]
47375 pub fn max_shader_count(mut self, value: u32) -> Self {
47376 self.inner.max_shader_count = value;
47377 self
47378 }
47379 #[inline]
47380 pub fn push_constant_ranges(mut self, slice: &'a [PushConstantRange]) -> Self {
47381 self.inner.push_constant_range_count = slice.len() as u32;
47382 self.inner.p_push_constant_ranges = slice.as_ptr();
47383 self
47384 }
47385 #[inline]
47387 pub fn push_next<T: ExtendsIndirectExecutionSetShaderInfoEXT>(
47388 mut self,
47389 next: &'a mut T,
47390 ) -> Self {
47391 unsafe {
47392 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47393 (*next_ptr).p_next = self.inner.p_next as *mut _;
47394 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47395 core::ffi::c_void,
47396 >(next_ptr) as *const _;
47397 }
47398 self
47399 }
47400}
47401impl<'a> core::ops::Deref for IndirectExecutionSetShaderInfoEXTBuilder<'a> {
47402 type Target = IndirectExecutionSetShaderInfoEXT;
47403 #[inline]
47404 fn deref(&self) -> &Self::Target {
47405 &self.inner
47406 }
47407}
47408impl<'a> core::ops::DerefMut for IndirectExecutionSetShaderInfoEXTBuilder<'a> {
47409 #[inline]
47410 fn deref_mut(&mut self) -> &mut Self::Target {
47411 &mut self.inner
47412 }
47413}
47414pub struct IndirectExecutionSetCreateInfoEXTBuilder<'a> {
47416 inner: IndirectExecutionSetCreateInfoEXT,
47417 _marker: core::marker::PhantomData<&'a ()>,
47418}
47419impl IndirectExecutionSetCreateInfoEXT {
47420 #[inline]
47422 pub fn builder<'a>() -> IndirectExecutionSetCreateInfoEXTBuilder<'a> {
47423 IndirectExecutionSetCreateInfoEXTBuilder {
47424 inner: IndirectExecutionSetCreateInfoEXT {
47425 s_type: StructureType::from_raw(1000572003i32),
47426 ..Default::default()
47427 },
47428 _marker: core::marker::PhantomData,
47429 }
47430 }
47431}
47432impl<'a> IndirectExecutionSetCreateInfoEXTBuilder<'a> {
47433 #[inline]
47434 pub fn r#type(mut self, value: IndirectExecutionSetInfoTypeEXT) -> Self {
47435 self.inner.r#type = value;
47436 self
47437 }
47438 #[inline]
47439 pub fn info(mut self, value: IndirectExecutionSetInfoEXT) -> Self {
47440 self.inner.info = value;
47441 self
47442 }
47443 #[inline]
47445 pub fn push_next<T: ExtendsIndirectExecutionSetCreateInfoEXT>(
47446 mut self,
47447 next: &'a mut T,
47448 ) -> Self {
47449 unsafe {
47450 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47451 (*next_ptr).p_next = self.inner.p_next as *mut _;
47452 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47453 core::ffi::c_void,
47454 >(next_ptr) as *const _;
47455 }
47456 self
47457 }
47458}
47459impl<'a> core::ops::Deref for IndirectExecutionSetCreateInfoEXTBuilder<'a> {
47460 type Target = IndirectExecutionSetCreateInfoEXT;
47461 #[inline]
47462 fn deref(&self) -> &Self::Target {
47463 &self.inner
47464 }
47465}
47466impl<'a> core::ops::DerefMut for IndirectExecutionSetCreateInfoEXTBuilder<'a> {
47467 #[inline]
47468 fn deref_mut(&mut self) -> &mut Self::Target {
47469 &mut self.inner
47470 }
47471}
47472pub struct GeneratedCommandsInfoEXTBuilder<'a> {
47474 inner: GeneratedCommandsInfoEXT,
47475 _marker: core::marker::PhantomData<&'a ()>,
47476}
47477impl GeneratedCommandsInfoEXT {
47478 #[inline]
47480 pub fn builder<'a>() -> GeneratedCommandsInfoEXTBuilder<'a> {
47481 GeneratedCommandsInfoEXTBuilder {
47482 inner: GeneratedCommandsInfoEXT {
47483 s_type: StructureType::from_raw(1000572004i32),
47484 ..Default::default()
47485 },
47486 _marker: core::marker::PhantomData,
47487 }
47488 }
47489}
47490impl<'a> GeneratedCommandsInfoEXTBuilder<'a> {
47491 #[inline]
47492 pub fn shader_stages(mut self, value: ShaderStageFlags) -> Self {
47493 self.inner.shader_stages = value;
47494 self
47495 }
47496 #[inline]
47497 pub fn indirect_execution_set(mut self, value: IndirectExecutionSetEXT) -> Self {
47498 self.inner.indirect_execution_set = value;
47499 self
47500 }
47501 #[inline]
47502 pub fn indirect_commands_layout(mut self, value: IndirectCommandsLayoutEXT) -> Self {
47503 self.inner.indirect_commands_layout = value;
47504 self
47505 }
47506 #[inline]
47507 pub fn indirect_address(mut self, value: u64) -> Self {
47508 self.inner.indirect_address = value;
47509 self
47510 }
47511 #[inline]
47512 pub fn indirect_address_size(mut self, value: u64) -> Self {
47513 self.inner.indirect_address_size = value;
47514 self
47515 }
47516 #[inline]
47517 pub fn preprocess_address(mut self, value: u64) -> Self {
47518 self.inner.preprocess_address = value;
47519 self
47520 }
47521 #[inline]
47522 pub fn preprocess_size(mut self, value: u64) -> Self {
47523 self.inner.preprocess_size = value;
47524 self
47525 }
47526 #[inline]
47527 pub fn max_sequence_count(mut self, value: u32) -> Self {
47528 self.inner.max_sequence_count = value;
47529 self
47530 }
47531 #[inline]
47532 pub fn sequence_count_address(mut self, value: u64) -> Self {
47533 self.inner.sequence_count_address = value;
47534 self
47535 }
47536 #[inline]
47537 pub fn max_draw_count(mut self, value: u32) -> Self {
47538 self.inner.max_draw_count = value;
47539 self
47540 }
47541 #[inline]
47543 pub fn push_next<T: ExtendsGeneratedCommandsInfoEXT>(
47544 mut self,
47545 next: &'a mut T,
47546 ) -> Self {
47547 unsafe {
47548 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47549 (*next_ptr).p_next = self.inner.p_next as *mut _;
47550 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47551 core::ffi::c_void,
47552 >(next_ptr) as *const _;
47553 }
47554 self
47555 }
47556}
47557impl<'a> core::ops::Deref for GeneratedCommandsInfoEXTBuilder<'a> {
47558 type Target = GeneratedCommandsInfoEXT;
47559 #[inline]
47560 fn deref(&self) -> &Self::Target {
47561 &self.inner
47562 }
47563}
47564impl<'a> core::ops::DerefMut for GeneratedCommandsInfoEXTBuilder<'a> {
47565 #[inline]
47566 fn deref_mut(&mut self) -> &mut Self::Target {
47567 &mut self.inner
47568 }
47569}
47570pub struct WriteIndirectExecutionSetPipelineEXTBuilder<'a> {
47572 inner: WriteIndirectExecutionSetPipelineEXT,
47573 _marker: core::marker::PhantomData<&'a ()>,
47574}
47575impl WriteIndirectExecutionSetPipelineEXT {
47576 #[inline]
47578 pub fn builder<'a>() -> WriteIndirectExecutionSetPipelineEXTBuilder<'a> {
47579 WriteIndirectExecutionSetPipelineEXTBuilder {
47580 inner: WriteIndirectExecutionSetPipelineEXT {
47581 s_type: StructureType::from_raw(1000572008i32),
47582 ..Default::default()
47583 },
47584 _marker: core::marker::PhantomData,
47585 }
47586 }
47587}
47588impl<'a> WriteIndirectExecutionSetPipelineEXTBuilder<'a> {
47589 #[inline]
47590 pub fn index(mut self, value: u32) -> Self {
47591 self.inner.index = value;
47592 self
47593 }
47594 #[inline]
47595 pub fn pipeline(mut self, value: Pipeline) -> Self {
47596 self.inner.pipeline = value;
47597 self
47598 }
47599 #[inline]
47601 pub fn push_next<T: ExtendsWriteIndirectExecutionSetPipelineEXT>(
47602 mut self,
47603 next: &'a mut T,
47604 ) -> Self {
47605 unsafe {
47606 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47607 (*next_ptr).p_next = self.inner.p_next as *mut _;
47608 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47609 core::ffi::c_void,
47610 >(next_ptr) as *const _;
47611 }
47612 self
47613 }
47614}
47615impl<'a> core::ops::Deref for WriteIndirectExecutionSetPipelineEXTBuilder<'a> {
47616 type Target = WriteIndirectExecutionSetPipelineEXT;
47617 #[inline]
47618 fn deref(&self) -> &Self::Target {
47619 &self.inner
47620 }
47621}
47622impl<'a> core::ops::DerefMut for WriteIndirectExecutionSetPipelineEXTBuilder<'a> {
47623 #[inline]
47624 fn deref_mut(&mut self) -> &mut Self::Target {
47625 &mut self.inner
47626 }
47627}
47628pub struct WriteIndirectExecutionSetShaderEXTBuilder<'a> {
47630 inner: WriteIndirectExecutionSetShaderEXT,
47631 _marker: core::marker::PhantomData<&'a ()>,
47632}
47633impl WriteIndirectExecutionSetShaderEXT {
47634 #[inline]
47636 pub fn builder<'a>() -> WriteIndirectExecutionSetShaderEXTBuilder<'a> {
47637 WriteIndirectExecutionSetShaderEXTBuilder {
47638 inner: WriteIndirectExecutionSetShaderEXT {
47639 s_type: StructureType::from_raw(1000572009i32),
47640 ..Default::default()
47641 },
47642 _marker: core::marker::PhantomData,
47643 }
47644 }
47645}
47646impl<'a> WriteIndirectExecutionSetShaderEXTBuilder<'a> {
47647 #[inline]
47648 pub fn index(mut self, value: u32) -> Self {
47649 self.inner.index = value;
47650 self
47651 }
47652 #[inline]
47653 pub fn shader(mut self, value: ShaderEXT) -> Self {
47654 self.inner.shader = value;
47655 self
47656 }
47657 #[inline]
47659 pub fn push_next<T: ExtendsWriteIndirectExecutionSetShaderEXT>(
47660 mut self,
47661 next: &'a mut T,
47662 ) -> Self {
47663 unsafe {
47664 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47665 (*next_ptr).p_next = self.inner.p_next as *mut _;
47666 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47667 core::ffi::c_void,
47668 >(next_ptr) as *const _;
47669 }
47670 self
47671 }
47672}
47673impl<'a> core::ops::Deref for WriteIndirectExecutionSetShaderEXTBuilder<'a> {
47674 type Target = WriteIndirectExecutionSetShaderEXT;
47675 #[inline]
47676 fn deref(&self) -> &Self::Target {
47677 &self.inner
47678 }
47679}
47680impl<'a> core::ops::DerefMut for WriteIndirectExecutionSetShaderEXTBuilder<'a> {
47681 #[inline]
47682 fn deref_mut(&mut self) -> &mut Self::Target {
47683 &mut self.inner
47684 }
47685}
47686pub struct IndirectCommandsLayoutCreateInfoEXTBuilder<'a> {
47688 inner: IndirectCommandsLayoutCreateInfoEXT,
47689 _marker: core::marker::PhantomData<&'a ()>,
47690}
47691impl IndirectCommandsLayoutCreateInfoEXT {
47692 #[inline]
47694 pub fn builder<'a>() -> IndirectCommandsLayoutCreateInfoEXTBuilder<'a> {
47695 IndirectCommandsLayoutCreateInfoEXTBuilder {
47696 inner: IndirectCommandsLayoutCreateInfoEXT {
47697 s_type: StructureType::from_raw(1000572006i32),
47698 ..Default::default()
47699 },
47700 _marker: core::marker::PhantomData,
47701 }
47702 }
47703}
47704impl<'a> IndirectCommandsLayoutCreateInfoEXTBuilder<'a> {
47705 #[inline]
47706 pub fn flags(mut self, value: IndirectCommandsLayoutUsageFlagsEXT) -> Self {
47707 self.inner.flags = value;
47708 self
47709 }
47710 #[inline]
47711 pub fn shader_stages(mut self, value: ShaderStageFlags) -> Self {
47712 self.inner.shader_stages = value;
47713 self
47714 }
47715 #[inline]
47716 pub fn indirect_stride(mut self, value: u32) -> Self {
47717 self.inner.indirect_stride = value;
47718 self
47719 }
47720 #[inline]
47721 pub fn pipeline_layout(mut self, value: PipelineLayout) -> Self {
47722 self.inner.pipeline_layout = value;
47723 self
47724 }
47725 #[inline]
47726 pub fn tokens(mut self, slice: &'a [IndirectCommandsLayoutTokenEXT]) -> Self {
47727 self.inner.token_count = slice.len() as u32;
47728 self.inner.p_tokens = slice.as_ptr();
47729 self
47730 }
47731 #[inline]
47733 pub fn push_next<T: ExtendsIndirectCommandsLayoutCreateInfoEXT>(
47734 mut self,
47735 next: &'a mut T,
47736 ) -> Self {
47737 unsafe {
47738 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47739 (*next_ptr).p_next = self.inner.p_next as *mut _;
47740 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47741 core::ffi::c_void,
47742 >(next_ptr) as *const _;
47743 }
47744 self
47745 }
47746}
47747impl<'a> core::ops::Deref for IndirectCommandsLayoutCreateInfoEXTBuilder<'a> {
47748 type Target = IndirectCommandsLayoutCreateInfoEXT;
47749 #[inline]
47750 fn deref(&self) -> &Self::Target {
47751 &self.inner
47752 }
47753}
47754impl<'a> core::ops::DerefMut for IndirectCommandsLayoutCreateInfoEXTBuilder<'a> {
47755 #[inline]
47756 fn deref_mut(&mut self) -> &mut Self::Target {
47757 &mut self.inner
47758 }
47759}
47760pub struct IndirectCommandsLayoutTokenEXTBuilder<'a> {
47762 inner: IndirectCommandsLayoutTokenEXT,
47763 _marker: core::marker::PhantomData<&'a ()>,
47764}
47765impl IndirectCommandsLayoutTokenEXT {
47766 #[inline]
47768 pub fn builder<'a>() -> IndirectCommandsLayoutTokenEXTBuilder<'a> {
47769 IndirectCommandsLayoutTokenEXTBuilder {
47770 inner: IndirectCommandsLayoutTokenEXT {
47771 s_type: StructureType::from_raw(1000572007i32),
47772 ..Default::default()
47773 },
47774 _marker: core::marker::PhantomData,
47775 }
47776 }
47777}
47778impl<'a> IndirectCommandsLayoutTokenEXTBuilder<'a> {
47779 #[inline]
47780 pub fn r#type(mut self, value: IndirectCommandsTokenTypeEXT) -> Self {
47781 self.inner.r#type = value;
47782 self
47783 }
47784 #[inline]
47785 pub fn data(mut self, value: IndirectCommandsTokenDataEXT) -> Self {
47786 self.inner.data = value;
47787 self
47788 }
47789 #[inline]
47790 pub fn offset(mut self, value: u32) -> Self {
47791 self.inner.offset = value;
47792 self
47793 }
47794 #[inline]
47796 pub fn push_next<T: ExtendsIndirectCommandsLayoutTokenEXT>(
47797 mut self,
47798 next: &'a mut T,
47799 ) -> Self {
47800 unsafe {
47801 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
47802 (*next_ptr).p_next = self.inner.p_next as *mut _;
47803 self.inner.p_next = <*mut BaseOutStructure>::cast::<
47804 core::ffi::c_void,
47805 >(next_ptr) as *const _;
47806 }
47807 self
47808 }
47809}
47810impl<'a> core::ops::Deref for IndirectCommandsLayoutTokenEXTBuilder<'a> {
47811 type Target = IndirectCommandsLayoutTokenEXT;
47812 #[inline]
47813 fn deref(&self) -> &Self::Target {
47814 &self.inner
47815 }
47816}
47817impl<'a> core::ops::DerefMut for IndirectCommandsLayoutTokenEXTBuilder<'a> {
47818 #[inline]
47819 fn deref_mut(&mut self) -> &mut Self::Target {
47820 &mut self.inner
47821 }
47822}
47823pub struct DrawIndirectCountIndirectCommandEXTBuilder {
47825 inner: DrawIndirectCountIndirectCommandEXT,
47826}
47827impl DrawIndirectCountIndirectCommandEXT {
47828 #[inline]
47830 pub fn builder() -> DrawIndirectCountIndirectCommandEXTBuilder {
47831 DrawIndirectCountIndirectCommandEXTBuilder {
47832 inner: DrawIndirectCountIndirectCommandEXT {
47833 ..Default::default()
47834 },
47835 }
47836 }
47837}
47838impl DrawIndirectCountIndirectCommandEXTBuilder {
47839 #[inline]
47840 pub fn buffer_address(mut self, value: u64) -> Self {
47841 self.inner.buffer_address = value;
47842 self
47843 }
47844 #[inline]
47845 pub fn stride(mut self, value: u32) -> Self {
47846 self.inner.stride = value;
47847 self
47848 }
47849 #[inline]
47850 pub fn command_count(mut self, value: u32) -> Self {
47851 self.inner.command_count = value;
47852 self
47853 }
47854}
47855impl core::ops::Deref for DrawIndirectCountIndirectCommandEXTBuilder {
47856 type Target = DrawIndirectCountIndirectCommandEXT;
47857 #[inline]
47858 fn deref(&self) -> &Self::Target {
47859 &self.inner
47860 }
47861}
47862impl core::ops::DerefMut for DrawIndirectCountIndirectCommandEXTBuilder {
47863 #[inline]
47864 fn deref_mut(&mut self) -> &mut Self::Target {
47865 &mut self.inner
47866 }
47867}
47868pub struct IndirectCommandsVertexBufferTokenEXTBuilder {
47870 inner: IndirectCommandsVertexBufferTokenEXT,
47871}
47872impl IndirectCommandsVertexBufferTokenEXT {
47873 #[inline]
47875 pub fn builder() -> IndirectCommandsVertexBufferTokenEXTBuilder {
47876 IndirectCommandsVertexBufferTokenEXTBuilder {
47877 inner: IndirectCommandsVertexBufferTokenEXT {
47878 ..Default::default()
47879 },
47880 }
47881 }
47882}
47883impl IndirectCommandsVertexBufferTokenEXTBuilder {
47884 #[inline]
47885 pub fn vertex_binding_unit(mut self, value: u32) -> Self {
47886 self.inner.vertex_binding_unit = value;
47887 self
47888 }
47889}
47890impl core::ops::Deref for IndirectCommandsVertexBufferTokenEXTBuilder {
47891 type Target = IndirectCommandsVertexBufferTokenEXT;
47892 #[inline]
47893 fn deref(&self) -> &Self::Target {
47894 &self.inner
47895 }
47896}
47897impl core::ops::DerefMut for IndirectCommandsVertexBufferTokenEXTBuilder {
47898 #[inline]
47899 fn deref_mut(&mut self) -> &mut Self::Target {
47900 &mut self.inner
47901 }
47902}
47903pub struct BindVertexBufferIndirectCommandEXTBuilder {
47905 inner: BindVertexBufferIndirectCommandEXT,
47906}
47907impl BindVertexBufferIndirectCommandEXT {
47908 #[inline]
47910 pub fn builder() -> BindVertexBufferIndirectCommandEXTBuilder {
47911 BindVertexBufferIndirectCommandEXTBuilder {
47912 inner: BindVertexBufferIndirectCommandEXT {
47913 ..Default::default()
47914 },
47915 }
47916 }
47917}
47918impl BindVertexBufferIndirectCommandEXTBuilder {
47919 #[inline]
47920 pub fn buffer_address(mut self, value: u64) -> Self {
47921 self.inner.buffer_address = value;
47922 self
47923 }
47924 #[inline]
47925 pub fn size(mut self, value: u32) -> Self {
47926 self.inner.size = value;
47927 self
47928 }
47929 #[inline]
47930 pub fn stride(mut self, value: u32) -> Self {
47931 self.inner.stride = value;
47932 self
47933 }
47934}
47935impl core::ops::Deref for BindVertexBufferIndirectCommandEXTBuilder {
47936 type Target = BindVertexBufferIndirectCommandEXT;
47937 #[inline]
47938 fn deref(&self) -> &Self::Target {
47939 &self.inner
47940 }
47941}
47942impl core::ops::DerefMut for BindVertexBufferIndirectCommandEXTBuilder {
47943 #[inline]
47944 fn deref_mut(&mut self) -> &mut Self::Target {
47945 &mut self.inner
47946 }
47947}
47948pub struct IndirectCommandsIndexBufferTokenEXTBuilder {
47950 inner: IndirectCommandsIndexBufferTokenEXT,
47951}
47952impl IndirectCommandsIndexBufferTokenEXT {
47953 #[inline]
47955 pub fn builder() -> IndirectCommandsIndexBufferTokenEXTBuilder {
47956 IndirectCommandsIndexBufferTokenEXTBuilder {
47957 inner: IndirectCommandsIndexBufferTokenEXT {
47958 ..Default::default()
47959 },
47960 }
47961 }
47962}
47963impl IndirectCommandsIndexBufferTokenEXTBuilder {
47964 #[inline]
47965 pub fn mode(mut self, value: IndirectCommandsInputModeFlagBitsEXT) -> Self {
47966 self.inner.mode = value;
47967 self
47968 }
47969}
47970impl core::ops::Deref for IndirectCommandsIndexBufferTokenEXTBuilder {
47971 type Target = IndirectCommandsIndexBufferTokenEXT;
47972 #[inline]
47973 fn deref(&self) -> &Self::Target {
47974 &self.inner
47975 }
47976}
47977impl core::ops::DerefMut for IndirectCommandsIndexBufferTokenEXTBuilder {
47978 #[inline]
47979 fn deref_mut(&mut self) -> &mut Self::Target {
47980 &mut self.inner
47981 }
47982}
47983pub struct BindIndexBufferIndirectCommandEXTBuilder {
47985 inner: BindIndexBufferIndirectCommandEXT,
47986}
47987impl BindIndexBufferIndirectCommandEXT {
47988 #[inline]
47990 pub fn builder() -> BindIndexBufferIndirectCommandEXTBuilder {
47991 BindIndexBufferIndirectCommandEXTBuilder {
47992 inner: BindIndexBufferIndirectCommandEXT {
47993 ..Default::default()
47994 },
47995 }
47996 }
47997}
47998impl BindIndexBufferIndirectCommandEXTBuilder {
47999 #[inline]
48000 pub fn buffer_address(mut self, value: u64) -> Self {
48001 self.inner.buffer_address = value;
48002 self
48003 }
48004 #[inline]
48005 pub fn size(mut self, value: u32) -> Self {
48006 self.inner.size = value;
48007 self
48008 }
48009 #[inline]
48010 pub fn index_type(mut self, value: IndexType) -> Self {
48011 self.inner.index_type = value;
48012 self
48013 }
48014}
48015impl core::ops::Deref for BindIndexBufferIndirectCommandEXTBuilder {
48016 type Target = BindIndexBufferIndirectCommandEXT;
48017 #[inline]
48018 fn deref(&self) -> &Self::Target {
48019 &self.inner
48020 }
48021}
48022impl core::ops::DerefMut for BindIndexBufferIndirectCommandEXTBuilder {
48023 #[inline]
48024 fn deref_mut(&mut self) -> &mut Self::Target {
48025 &mut self.inner
48026 }
48027}
48028pub struct IndirectCommandsPushConstantTokenEXTBuilder {
48030 inner: IndirectCommandsPushConstantTokenEXT,
48031}
48032impl IndirectCommandsPushConstantTokenEXT {
48033 #[inline]
48035 pub fn builder() -> IndirectCommandsPushConstantTokenEXTBuilder {
48036 IndirectCommandsPushConstantTokenEXTBuilder {
48037 inner: IndirectCommandsPushConstantTokenEXT {
48038 ..Default::default()
48039 },
48040 }
48041 }
48042}
48043impl IndirectCommandsPushConstantTokenEXTBuilder {
48044 #[inline]
48045 pub fn update_range(mut self, value: PushConstantRange) -> Self {
48046 self.inner.update_range = value;
48047 self
48048 }
48049}
48050impl core::ops::Deref for IndirectCommandsPushConstantTokenEXTBuilder {
48051 type Target = IndirectCommandsPushConstantTokenEXT;
48052 #[inline]
48053 fn deref(&self) -> &Self::Target {
48054 &self.inner
48055 }
48056}
48057impl core::ops::DerefMut for IndirectCommandsPushConstantTokenEXTBuilder {
48058 #[inline]
48059 fn deref_mut(&mut self) -> &mut Self::Target {
48060 &mut self.inner
48061 }
48062}
48063pub struct IndirectCommandsExecutionSetTokenEXTBuilder {
48065 inner: IndirectCommandsExecutionSetTokenEXT,
48066}
48067impl IndirectCommandsExecutionSetTokenEXT {
48068 #[inline]
48070 pub fn builder() -> IndirectCommandsExecutionSetTokenEXTBuilder {
48071 IndirectCommandsExecutionSetTokenEXTBuilder {
48072 inner: IndirectCommandsExecutionSetTokenEXT {
48073 ..Default::default()
48074 },
48075 }
48076 }
48077}
48078impl IndirectCommandsExecutionSetTokenEXTBuilder {
48079 #[inline]
48080 pub fn r#type(mut self, value: IndirectExecutionSetInfoTypeEXT) -> Self {
48081 self.inner.r#type = value;
48082 self
48083 }
48084 #[inline]
48085 pub fn shader_stages(mut self, value: ShaderStageFlags) -> Self {
48086 self.inner.shader_stages = value;
48087 self
48088 }
48089}
48090impl core::ops::Deref for IndirectCommandsExecutionSetTokenEXTBuilder {
48091 type Target = IndirectCommandsExecutionSetTokenEXT;
48092 #[inline]
48093 fn deref(&self) -> &Self::Target {
48094 &self.inner
48095 }
48096}
48097impl core::ops::DerefMut for IndirectCommandsExecutionSetTokenEXTBuilder {
48098 #[inline]
48099 fn deref_mut(&mut self) -> &mut Self::Target {
48100 &mut self.inner
48101 }
48102}
48103pub struct PipelineViewportDepthClipControlCreateInfoEXTBuilder<'a> {
48105 inner: PipelineViewportDepthClipControlCreateInfoEXT,
48106 _marker: core::marker::PhantomData<&'a ()>,
48107}
48108impl PipelineViewportDepthClipControlCreateInfoEXT {
48109 #[inline]
48111 pub fn builder<'a>() -> PipelineViewportDepthClipControlCreateInfoEXTBuilder<'a> {
48112 PipelineViewportDepthClipControlCreateInfoEXTBuilder {
48113 inner: PipelineViewportDepthClipControlCreateInfoEXT {
48114 s_type: StructureType::from_raw(1000355001i32),
48115 ..Default::default()
48116 },
48117 _marker: core::marker::PhantomData,
48118 }
48119 }
48120}
48121impl<'a> PipelineViewportDepthClipControlCreateInfoEXTBuilder<'a> {
48122 #[inline]
48123 pub fn negative_one_to_one(mut self, value: bool) -> Self {
48124 self.inner.negative_one_to_one = value as u32;
48125 self
48126 }
48127 #[inline]
48129 pub fn push_next<T: ExtendsPipelineViewportDepthClipControlCreateInfoEXT>(
48130 mut self,
48131 next: &'a mut T,
48132 ) -> Self {
48133 unsafe {
48134 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48135 (*next_ptr).p_next = self.inner.p_next as *mut _;
48136 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48137 core::ffi::c_void,
48138 >(next_ptr) as *const _;
48139 }
48140 self
48141 }
48142}
48143impl<'a> core::ops::Deref for PipelineViewportDepthClipControlCreateInfoEXTBuilder<'a> {
48144 type Target = PipelineViewportDepthClipControlCreateInfoEXT;
48145 #[inline]
48146 fn deref(&self) -> &Self::Target {
48147 &self.inner
48148 }
48149}
48150impl<'a> core::ops::DerefMut
48151for PipelineViewportDepthClipControlCreateInfoEXTBuilder<'a> {
48152 #[inline]
48153 fn deref_mut(&mut self) -> &mut Self::Target {
48154 &mut self.inner
48155 }
48156}
48157pub struct PhysicalDeviceDepthClampControlFeaturesEXTBuilder<'a> {
48159 inner: PhysicalDeviceDepthClampControlFeaturesEXT,
48160 _marker: core::marker::PhantomData<&'a ()>,
48161}
48162impl PhysicalDeviceDepthClampControlFeaturesEXT {
48163 #[inline]
48165 pub fn builder<'a>() -> PhysicalDeviceDepthClampControlFeaturesEXTBuilder<'a> {
48166 PhysicalDeviceDepthClampControlFeaturesEXTBuilder {
48167 inner: PhysicalDeviceDepthClampControlFeaturesEXT {
48168 s_type: StructureType::from_raw(1000582000i32),
48169 ..Default::default()
48170 },
48171 _marker: core::marker::PhantomData,
48172 }
48173 }
48174}
48175impl<'a> PhysicalDeviceDepthClampControlFeaturesEXTBuilder<'a> {
48176 #[inline]
48177 pub fn depth_clamp_control(mut self, value: bool) -> Self {
48178 self.inner.depth_clamp_control = value as u32;
48179 self
48180 }
48181 #[inline]
48183 pub fn push_next<T: ExtendsPhysicalDeviceDepthClampControlFeaturesEXT>(
48184 mut self,
48185 next: &'a mut T,
48186 ) -> Self {
48187 unsafe {
48188 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48189 (*next_ptr).p_next = self.inner.p_next as *mut _;
48190 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48191 core::ffi::c_void,
48192 >(next_ptr);
48193 }
48194 self
48195 }
48196}
48197impl<'a> core::ops::Deref for PhysicalDeviceDepthClampControlFeaturesEXTBuilder<'a> {
48198 type Target = PhysicalDeviceDepthClampControlFeaturesEXT;
48199 #[inline]
48200 fn deref(&self) -> &Self::Target {
48201 &self.inner
48202 }
48203}
48204impl<'a> core::ops::DerefMut for PhysicalDeviceDepthClampControlFeaturesEXTBuilder<'a> {
48205 #[inline]
48206 fn deref_mut(&mut self) -> &mut Self::Target {
48207 &mut self.inner
48208 }
48209}
48210pub struct PipelineViewportDepthClampControlCreateInfoEXTBuilder<'a> {
48212 inner: PipelineViewportDepthClampControlCreateInfoEXT,
48213 _marker: core::marker::PhantomData<&'a ()>,
48214}
48215impl PipelineViewportDepthClampControlCreateInfoEXT {
48216 #[inline]
48218 pub fn builder<'a>() -> PipelineViewportDepthClampControlCreateInfoEXTBuilder<'a> {
48219 PipelineViewportDepthClampControlCreateInfoEXTBuilder {
48220 inner: PipelineViewportDepthClampControlCreateInfoEXT {
48221 s_type: StructureType::from_raw(1000582001i32),
48222 ..Default::default()
48223 },
48224 _marker: core::marker::PhantomData,
48225 }
48226 }
48227}
48228impl<'a> PipelineViewportDepthClampControlCreateInfoEXTBuilder<'a> {
48229 #[inline]
48230 pub fn depth_clamp_mode(mut self, value: DepthClampModeEXT) -> Self {
48231 self.inner.depth_clamp_mode = value;
48232 self
48233 }
48234 #[inline]
48235 pub fn depth_clamp_range(mut self, value: &'a DepthClampRangeEXT) -> Self {
48236 self.inner.p_depth_clamp_range = value;
48237 self
48238 }
48239 #[inline]
48241 pub fn push_next<T: ExtendsPipelineViewportDepthClampControlCreateInfoEXT>(
48242 mut self,
48243 next: &'a mut T,
48244 ) -> Self {
48245 unsafe {
48246 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48247 (*next_ptr).p_next = self.inner.p_next as *mut _;
48248 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48249 core::ffi::c_void,
48250 >(next_ptr) as *const _;
48251 }
48252 self
48253 }
48254}
48255impl<'a> core::ops::Deref for PipelineViewportDepthClampControlCreateInfoEXTBuilder<'a> {
48256 type Target = PipelineViewportDepthClampControlCreateInfoEXT;
48257 #[inline]
48258 fn deref(&self) -> &Self::Target {
48259 &self.inner
48260 }
48261}
48262impl<'a> core::ops::DerefMut
48263for PipelineViewportDepthClampControlCreateInfoEXTBuilder<'a> {
48264 #[inline]
48265 fn deref_mut(&mut self) -> &mut Self::Target {
48266 &mut self.inner
48267 }
48268}
48269pub struct PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder<'a> {
48271 inner: PhysicalDeviceVertexInputDynamicStateFeaturesEXT,
48272 _marker: core::marker::PhantomData<&'a ()>,
48273}
48274impl PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
48275 #[inline]
48277 pub fn builder<'a>() -> PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder<'a> {
48278 PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder {
48279 inner: PhysicalDeviceVertexInputDynamicStateFeaturesEXT {
48280 s_type: StructureType::from_raw(1000352000i32),
48281 ..Default::default()
48282 },
48283 _marker: core::marker::PhantomData,
48284 }
48285 }
48286}
48287impl<'a> PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder<'a> {
48288 #[inline]
48289 pub fn vertex_input_dynamic_state(mut self, value: bool) -> Self {
48290 self.inner.vertex_input_dynamic_state = value as u32;
48291 self
48292 }
48293 #[inline]
48295 pub fn push_next<T: ExtendsPhysicalDeviceVertexInputDynamicStateFeaturesEXT>(
48296 mut self,
48297 next: &'a mut T,
48298 ) -> Self {
48299 unsafe {
48300 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48301 (*next_ptr).p_next = self.inner.p_next as *mut _;
48302 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48303 core::ffi::c_void,
48304 >(next_ptr);
48305 }
48306 self
48307 }
48308}
48309impl<'a> core::ops::Deref
48310for PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder<'a> {
48311 type Target = PhysicalDeviceVertexInputDynamicStateFeaturesEXT;
48312 #[inline]
48313 fn deref(&self) -> &Self::Target {
48314 &self.inner
48315 }
48316}
48317impl<'a> core::ops::DerefMut
48318for PhysicalDeviceVertexInputDynamicStateFeaturesEXTBuilder<'a> {
48319 #[inline]
48320 fn deref_mut(&mut self) -> &mut Self::Target {
48321 &mut self.inner
48322 }
48323}
48324pub struct PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder<'a> {
48326 inner: PhysicalDeviceExternalMemoryRDMAFeaturesNV,
48327 _marker: core::marker::PhantomData<&'a ()>,
48328}
48329impl PhysicalDeviceExternalMemoryRDMAFeaturesNV {
48330 #[inline]
48332 pub fn builder<'a>() -> PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder<'a> {
48333 PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder {
48334 inner: PhysicalDeviceExternalMemoryRDMAFeaturesNV {
48335 s_type: StructureType::from_raw(1000371001i32),
48336 ..Default::default()
48337 },
48338 _marker: core::marker::PhantomData,
48339 }
48340 }
48341}
48342impl<'a> PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder<'a> {
48343 #[inline]
48344 pub fn external_memory_rdma(mut self, value: bool) -> Self {
48345 self.inner.external_memory_rdma = value as u32;
48346 self
48347 }
48348 #[inline]
48350 pub fn push_next<T: ExtendsPhysicalDeviceExternalMemoryRDMAFeaturesNV>(
48351 mut self,
48352 next: &'a mut T,
48353 ) -> Self {
48354 unsafe {
48355 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48356 (*next_ptr).p_next = self.inner.p_next as *mut _;
48357 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48358 core::ffi::c_void,
48359 >(next_ptr);
48360 }
48361 self
48362 }
48363}
48364impl<'a> core::ops::Deref for PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder<'a> {
48365 type Target = PhysicalDeviceExternalMemoryRDMAFeaturesNV;
48366 #[inline]
48367 fn deref(&self) -> &Self::Target {
48368 &self.inner
48369 }
48370}
48371impl<'a> core::ops::DerefMut for PhysicalDeviceExternalMemoryRDMAFeaturesNVBuilder<'a> {
48372 #[inline]
48373 fn deref_mut(&mut self) -> &mut Self::Target {
48374 &mut self.inner
48375 }
48376}
48377pub struct PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder<'a> {
48379 inner: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR,
48380 _marker: core::marker::PhantomData<&'a ()>,
48381}
48382impl PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
48383 #[inline]
48385 pub fn builder<'a>() -> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder<
48386 'a,
48387 > {
48388 PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder {
48389 inner: PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
48390 s_type: StructureType::from_raw(1000558000i32),
48391 ..Default::default()
48392 },
48393 _marker: core::marker::PhantomData,
48394 }
48395 }
48396}
48397impl<'a> PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder<'a> {
48398 #[inline]
48399 pub fn shader_relaxed_extended_instruction(mut self, value: bool) -> Self {
48400 self.inner.shader_relaxed_extended_instruction = value as u32;
48401 self
48402 }
48403 #[inline]
48405 pub fn push_next<
48406 T: ExtendsPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR,
48407 >(mut self, next: &'a mut T) -> Self {
48408 unsafe {
48409 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48410 (*next_ptr).p_next = self.inner.p_next as *mut _;
48411 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48412 core::ffi::c_void,
48413 >(next_ptr);
48414 }
48415 self
48416 }
48417}
48418impl<'a> core::ops::Deref
48419for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder<'a> {
48420 type Target = PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
48421 #[inline]
48422 fn deref(&self) -> &Self::Target {
48423 &self.inner
48424 }
48425}
48426impl<'a> core::ops::DerefMut
48427for PhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHRBuilder<'a> {
48428 #[inline]
48429 fn deref_mut(&mut self) -> &mut Self::Target {
48430 &mut self.inner
48431 }
48432}
48433pub struct VertexInputBindingDescription2EXTBuilder<'a> {
48435 inner: VertexInputBindingDescription2EXT,
48436 _marker: core::marker::PhantomData<&'a ()>,
48437}
48438impl VertexInputBindingDescription2EXT {
48439 #[inline]
48441 pub fn builder<'a>() -> VertexInputBindingDescription2EXTBuilder<'a> {
48442 VertexInputBindingDescription2EXTBuilder {
48443 inner: VertexInputBindingDescription2EXT {
48444 s_type: StructureType::from_raw(1000352001i32),
48445 ..Default::default()
48446 },
48447 _marker: core::marker::PhantomData,
48448 }
48449 }
48450}
48451impl<'a> VertexInputBindingDescription2EXTBuilder<'a> {
48452 #[inline]
48453 pub fn binding(mut self, value: u32) -> Self {
48454 self.inner.binding = value;
48455 self
48456 }
48457 #[inline]
48458 pub fn stride(mut self, value: u32) -> Self {
48459 self.inner.stride = value;
48460 self
48461 }
48462 #[inline]
48463 pub fn input_rate(mut self, value: VertexInputRate) -> Self {
48464 self.inner.input_rate = value;
48465 self
48466 }
48467 #[inline]
48468 pub fn divisor(mut self, value: u32) -> Self {
48469 self.inner.divisor = value;
48470 self
48471 }
48472 #[inline]
48474 pub fn push_next<T: ExtendsVertexInputBindingDescription2EXT>(
48475 mut self,
48476 next: &'a mut T,
48477 ) -> Self {
48478 unsafe {
48479 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48480 (*next_ptr).p_next = self.inner.p_next as *mut _;
48481 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48482 core::ffi::c_void,
48483 >(next_ptr);
48484 }
48485 self
48486 }
48487}
48488impl<'a> core::ops::Deref for VertexInputBindingDescription2EXTBuilder<'a> {
48489 type Target = VertexInputBindingDescription2EXT;
48490 #[inline]
48491 fn deref(&self) -> &Self::Target {
48492 &self.inner
48493 }
48494}
48495impl<'a> core::ops::DerefMut for VertexInputBindingDescription2EXTBuilder<'a> {
48496 #[inline]
48497 fn deref_mut(&mut self) -> &mut Self::Target {
48498 &mut self.inner
48499 }
48500}
48501pub struct VertexInputAttributeDescription2EXTBuilder<'a> {
48503 inner: VertexInputAttributeDescription2EXT,
48504 _marker: core::marker::PhantomData<&'a ()>,
48505}
48506impl VertexInputAttributeDescription2EXT {
48507 #[inline]
48509 pub fn builder<'a>() -> VertexInputAttributeDescription2EXTBuilder<'a> {
48510 VertexInputAttributeDescription2EXTBuilder {
48511 inner: VertexInputAttributeDescription2EXT {
48512 s_type: StructureType::from_raw(1000352002i32),
48513 ..Default::default()
48514 },
48515 _marker: core::marker::PhantomData,
48516 }
48517 }
48518}
48519impl<'a> VertexInputAttributeDescription2EXTBuilder<'a> {
48520 #[inline]
48521 pub fn location(mut self, value: u32) -> Self {
48522 self.inner.location = value;
48523 self
48524 }
48525 #[inline]
48526 pub fn binding(mut self, value: u32) -> Self {
48527 self.inner.binding = value;
48528 self
48529 }
48530 #[inline]
48531 pub fn format(mut self, value: Format) -> Self {
48532 self.inner.format = value;
48533 self
48534 }
48535 #[inline]
48536 pub fn offset(mut self, value: u32) -> Self {
48537 self.inner.offset = value;
48538 self
48539 }
48540 #[inline]
48542 pub fn push_next<T: ExtendsVertexInputAttributeDescription2EXT>(
48543 mut self,
48544 next: &'a mut T,
48545 ) -> Self {
48546 unsafe {
48547 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48548 (*next_ptr).p_next = self.inner.p_next as *mut _;
48549 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48550 core::ffi::c_void,
48551 >(next_ptr);
48552 }
48553 self
48554 }
48555}
48556impl<'a> core::ops::Deref for VertexInputAttributeDescription2EXTBuilder<'a> {
48557 type Target = VertexInputAttributeDescription2EXT;
48558 #[inline]
48559 fn deref(&self) -> &Self::Target {
48560 &self.inner
48561 }
48562}
48563impl<'a> core::ops::DerefMut for VertexInputAttributeDescription2EXTBuilder<'a> {
48564 #[inline]
48565 fn deref_mut(&mut self) -> &mut Self::Target {
48566 &mut self.inner
48567 }
48568}
48569pub struct PhysicalDeviceColorWriteEnableFeaturesEXTBuilder<'a> {
48571 inner: PhysicalDeviceColorWriteEnableFeaturesEXT,
48572 _marker: core::marker::PhantomData<&'a ()>,
48573}
48574impl PhysicalDeviceColorWriteEnableFeaturesEXT {
48575 #[inline]
48577 pub fn builder<'a>() -> PhysicalDeviceColorWriteEnableFeaturesEXTBuilder<'a> {
48578 PhysicalDeviceColorWriteEnableFeaturesEXTBuilder {
48579 inner: PhysicalDeviceColorWriteEnableFeaturesEXT {
48580 s_type: StructureType::from_raw(1000381000i32),
48581 ..Default::default()
48582 },
48583 _marker: core::marker::PhantomData,
48584 }
48585 }
48586}
48587impl<'a> PhysicalDeviceColorWriteEnableFeaturesEXTBuilder<'a> {
48588 #[inline]
48589 pub fn color_write_enable(mut self, value: bool) -> Self {
48590 self.inner.color_write_enable = value as u32;
48591 self
48592 }
48593 #[inline]
48595 pub fn push_next<T: ExtendsPhysicalDeviceColorWriteEnableFeaturesEXT>(
48596 mut self,
48597 next: &'a mut T,
48598 ) -> Self {
48599 unsafe {
48600 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48601 (*next_ptr).p_next = self.inner.p_next as *mut _;
48602 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48603 core::ffi::c_void,
48604 >(next_ptr);
48605 }
48606 self
48607 }
48608}
48609impl<'a> core::ops::Deref for PhysicalDeviceColorWriteEnableFeaturesEXTBuilder<'a> {
48610 type Target = PhysicalDeviceColorWriteEnableFeaturesEXT;
48611 #[inline]
48612 fn deref(&self) -> &Self::Target {
48613 &self.inner
48614 }
48615}
48616impl<'a> core::ops::DerefMut for PhysicalDeviceColorWriteEnableFeaturesEXTBuilder<'a> {
48617 #[inline]
48618 fn deref_mut(&mut self) -> &mut Self::Target {
48619 &mut self.inner
48620 }
48621}
48622pub struct PipelineColorWriteCreateInfoEXTBuilder<'a> {
48624 inner: PipelineColorWriteCreateInfoEXT,
48625 _marker: core::marker::PhantomData<&'a ()>,
48626}
48627impl PipelineColorWriteCreateInfoEXT {
48628 #[inline]
48630 pub fn builder<'a>() -> PipelineColorWriteCreateInfoEXTBuilder<'a> {
48631 PipelineColorWriteCreateInfoEXTBuilder {
48632 inner: PipelineColorWriteCreateInfoEXT {
48633 s_type: StructureType::from_raw(1000381001i32),
48634 ..Default::default()
48635 },
48636 _marker: core::marker::PhantomData,
48637 }
48638 }
48639}
48640impl<'a> PipelineColorWriteCreateInfoEXTBuilder<'a> {
48641 #[inline]
48642 pub fn color_write_enables(mut self, slice: &'a [u32]) -> Self {
48643 self.inner.attachment_count = slice.len() as u32;
48644 self.inner.p_color_write_enables = slice.as_ptr();
48645 self
48646 }
48647 #[inline]
48649 pub fn push_next<T: ExtendsPipelineColorWriteCreateInfoEXT>(
48650 mut self,
48651 next: &'a mut T,
48652 ) -> Self {
48653 unsafe {
48654 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48655 (*next_ptr).p_next = self.inner.p_next as *mut _;
48656 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48657 core::ffi::c_void,
48658 >(next_ptr) as *const _;
48659 }
48660 self
48661 }
48662}
48663impl<'a> core::ops::Deref for PipelineColorWriteCreateInfoEXTBuilder<'a> {
48664 type Target = PipelineColorWriteCreateInfoEXT;
48665 #[inline]
48666 fn deref(&self) -> &Self::Target {
48667 &self.inner
48668 }
48669}
48670impl<'a> core::ops::DerefMut for PipelineColorWriteCreateInfoEXTBuilder<'a> {
48671 #[inline]
48672 fn deref_mut(&mut self) -> &mut Self::Target {
48673 &mut self.inner
48674 }
48675}
48676pub struct MemoryBarrier2Builder<'a> {
48678 inner: MemoryBarrier2,
48679 _marker: core::marker::PhantomData<&'a ()>,
48680}
48681impl MemoryBarrier2 {
48682 #[inline]
48684 pub fn builder<'a>() -> MemoryBarrier2Builder<'a> {
48685 MemoryBarrier2Builder {
48686 inner: MemoryBarrier2 {
48687 s_type: StructureType::from_raw(1000314000i32),
48688 ..Default::default()
48689 },
48690 _marker: core::marker::PhantomData,
48691 }
48692 }
48693}
48694impl<'a> MemoryBarrier2Builder<'a> {
48695 #[inline]
48696 pub fn src_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48697 self.inner.src_stage_mask = value;
48698 self
48699 }
48700 #[inline]
48701 pub fn src_access_mask(mut self, value: AccessFlags2) -> Self {
48702 self.inner.src_access_mask = value;
48703 self
48704 }
48705 #[inline]
48706 pub fn dst_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48707 self.inner.dst_stage_mask = value;
48708 self
48709 }
48710 #[inline]
48711 pub fn dst_access_mask(mut self, value: AccessFlags2) -> Self {
48712 self.inner.dst_access_mask = value;
48713 self
48714 }
48715 #[inline]
48717 pub fn push_next<T: ExtendsMemoryBarrier2>(mut self, next: &'a mut T) -> Self {
48718 unsafe {
48719 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48720 (*next_ptr).p_next = self.inner.p_next as *mut _;
48721 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48722 core::ffi::c_void,
48723 >(next_ptr) as *const _;
48724 }
48725 self
48726 }
48727}
48728impl<'a> core::ops::Deref for MemoryBarrier2Builder<'a> {
48729 type Target = MemoryBarrier2;
48730 #[inline]
48731 fn deref(&self) -> &Self::Target {
48732 &self.inner
48733 }
48734}
48735impl<'a> core::ops::DerefMut for MemoryBarrier2Builder<'a> {
48736 #[inline]
48737 fn deref_mut(&mut self) -> &mut Self::Target {
48738 &mut self.inner
48739 }
48740}
48741pub struct ImageMemoryBarrier2Builder<'a> {
48743 inner: ImageMemoryBarrier2,
48744 _marker: core::marker::PhantomData<&'a ()>,
48745}
48746impl ImageMemoryBarrier2 {
48747 #[inline]
48749 pub fn builder<'a>() -> ImageMemoryBarrier2Builder<'a> {
48750 ImageMemoryBarrier2Builder {
48751 inner: ImageMemoryBarrier2 {
48752 s_type: StructureType::from_raw(1000314002i32),
48753 ..Default::default()
48754 },
48755 _marker: core::marker::PhantomData,
48756 }
48757 }
48758}
48759impl<'a> ImageMemoryBarrier2Builder<'a> {
48760 #[inline]
48761 pub fn src_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48762 self.inner.src_stage_mask = value;
48763 self
48764 }
48765 #[inline]
48766 pub fn src_access_mask(mut self, value: AccessFlags2) -> Self {
48767 self.inner.src_access_mask = value;
48768 self
48769 }
48770 #[inline]
48771 pub fn dst_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48772 self.inner.dst_stage_mask = value;
48773 self
48774 }
48775 #[inline]
48776 pub fn dst_access_mask(mut self, value: AccessFlags2) -> Self {
48777 self.inner.dst_access_mask = value;
48778 self
48779 }
48780 #[inline]
48781 pub fn old_layout(mut self, value: ImageLayout) -> Self {
48782 self.inner.old_layout = value;
48783 self
48784 }
48785 #[inline]
48786 pub fn new_layout(mut self, value: ImageLayout) -> Self {
48787 self.inner.new_layout = value;
48788 self
48789 }
48790 #[inline]
48791 pub fn src_queue_family_index(mut self, value: u32) -> Self {
48792 self.inner.src_queue_family_index = value;
48793 self
48794 }
48795 #[inline]
48796 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
48797 self.inner.dst_queue_family_index = value;
48798 self
48799 }
48800 #[inline]
48801 pub fn image(mut self, value: Image) -> Self {
48802 self.inner.image = value;
48803 self
48804 }
48805 #[inline]
48806 pub fn subresource_range(mut self, value: ImageSubresourceRange) -> Self {
48807 self.inner.subresource_range = value;
48808 self
48809 }
48810 #[inline]
48812 pub fn push_next<T: ExtendsImageMemoryBarrier2>(mut self, next: &'a mut T) -> Self {
48813 unsafe {
48814 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48815 (*next_ptr).p_next = self.inner.p_next as *mut _;
48816 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48817 core::ffi::c_void,
48818 >(next_ptr) as *const _;
48819 }
48820 self
48821 }
48822}
48823impl<'a> core::ops::Deref for ImageMemoryBarrier2Builder<'a> {
48824 type Target = ImageMemoryBarrier2;
48825 #[inline]
48826 fn deref(&self) -> &Self::Target {
48827 &self.inner
48828 }
48829}
48830impl<'a> core::ops::DerefMut for ImageMemoryBarrier2Builder<'a> {
48831 #[inline]
48832 fn deref_mut(&mut self) -> &mut Self::Target {
48833 &mut self.inner
48834 }
48835}
48836pub struct BufferMemoryBarrier2Builder<'a> {
48838 inner: BufferMemoryBarrier2,
48839 _marker: core::marker::PhantomData<&'a ()>,
48840}
48841impl BufferMemoryBarrier2 {
48842 #[inline]
48844 pub fn builder<'a>() -> BufferMemoryBarrier2Builder<'a> {
48845 BufferMemoryBarrier2Builder {
48846 inner: BufferMemoryBarrier2 {
48847 s_type: StructureType::from_raw(1000314001i32),
48848 ..Default::default()
48849 },
48850 _marker: core::marker::PhantomData,
48851 }
48852 }
48853}
48854impl<'a> BufferMemoryBarrier2Builder<'a> {
48855 #[inline]
48856 pub fn src_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48857 self.inner.src_stage_mask = value;
48858 self
48859 }
48860 #[inline]
48861 pub fn src_access_mask(mut self, value: AccessFlags2) -> Self {
48862 self.inner.src_access_mask = value;
48863 self
48864 }
48865 #[inline]
48866 pub fn dst_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
48867 self.inner.dst_stage_mask = value;
48868 self
48869 }
48870 #[inline]
48871 pub fn dst_access_mask(mut self, value: AccessFlags2) -> Self {
48872 self.inner.dst_access_mask = value;
48873 self
48874 }
48875 #[inline]
48876 pub fn src_queue_family_index(mut self, value: u32) -> Self {
48877 self.inner.src_queue_family_index = value;
48878 self
48879 }
48880 #[inline]
48881 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
48882 self.inner.dst_queue_family_index = value;
48883 self
48884 }
48885 #[inline]
48886 pub fn buffer(mut self, value: Buffer) -> Self {
48887 self.inner.buffer = value;
48888 self
48889 }
48890 #[inline]
48891 pub fn offset(mut self, value: u64) -> Self {
48892 self.inner.offset = value;
48893 self
48894 }
48895 #[inline]
48896 pub fn size(mut self, value: u64) -> Self {
48897 self.inner.size = value;
48898 self
48899 }
48900 #[inline]
48902 pub fn push_next<T: ExtendsBufferMemoryBarrier2>(mut self, next: &'a mut T) -> Self {
48903 unsafe {
48904 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48905 (*next_ptr).p_next = self.inner.p_next as *mut _;
48906 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48907 core::ffi::c_void,
48908 >(next_ptr) as *const _;
48909 }
48910 self
48911 }
48912}
48913impl<'a> core::ops::Deref for BufferMemoryBarrier2Builder<'a> {
48914 type Target = BufferMemoryBarrier2;
48915 #[inline]
48916 fn deref(&self) -> &Self::Target {
48917 &self.inner
48918 }
48919}
48920impl<'a> core::ops::DerefMut for BufferMemoryBarrier2Builder<'a> {
48921 #[inline]
48922 fn deref_mut(&mut self) -> &mut Self::Target {
48923 &mut self.inner
48924 }
48925}
48926pub struct MemoryBarrierAccessFlags3KHRBuilder<'a> {
48928 inner: MemoryBarrierAccessFlags3KHR,
48929 _marker: core::marker::PhantomData<&'a ()>,
48930}
48931impl MemoryBarrierAccessFlags3KHR {
48932 #[inline]
48934 pub fn builder<'a>() -> MemoryBarrierAccessFlags3KHRBuilder<'a> {
48935 MemoryBarrierAccessFlags3KHRBuilder {
48936 inner: MemoryBarrierAccessFlags3KHR {
48937 s_type: StructureType::from_raw(1000574002i32),
48938 ..Default::default()
48939 },
48940 _marker: core::marker::PhantomData,
48941 }
48942 }
48943}
48944impl<'a> MemoryBarrierAccessFlags3KHRBuilder<'a> {
48945 #[inline]
48946 pub fn src_access_mask3(mut self, value: AccessFlags3KHR) -> Self {
48947 self.inner.src_access_mask3 = value;
48948 self
48949 }
48950 #[inline]
48951 pub fn dst_access_mask3(mut self, value: AccessFlags3KHR) -> Self {
48952 self.inner.dst_access_mask3 = value;
48953 self
48954 }
48955 #[inline]
48957 pub fn push_next<T: ExtendsMemoryBarrierAccessFlags3KHR>(
48958 mut self,
48959 next: &'a mut T,
48960 ) -> Self {
48961 unsafe {
48962 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
48963 (*next_ptr).p_next = self.inner.p_next as *mut _;
48964 self.inner.p_next = <*mut BaseOutStructure>::cast::<
48965 core::ffi::c_void,
48966 >(next_ptr) as *const _;
48967 }
48968 self
48969 }
48970}
48971impl<'a> core::ops::Deref for MemoryBarrierAccessFlags3KHRBuilder<'a> {
48972 type Target = MemoryBarrierAccessFlags3KHR;
48973 #[inline]
48974 fn deref(&self) -> &Self::Target {
48975 &self.inner
48976 }
48977}
48978impl<'a> core::ops::DerefMut for MemoryBarrierAccessFlags3KHRBuilder<'a> {
48979 #[inline]
48980 fn deref_mut(&mut self) -> &mut Self::Target {
48981 &mut self.inner
48982 }
48983}
48984pub struct DependencyInfoBuilder<'a> {
48986 inner: DependencyInfo,
48987 _marker: core::marker::PhantomData<&'a ()>,
48988}
48989impl DependencyInfo {
48990 #[inline]
48992 pub fn builder<'a>() -> DependencyInfoBuilder<'a> {
48993 DependencyInfoBuilder {
48994 inner: DependencyInfo {
48995 s_type: StructureType::from_raw(1000314003i32),
48996 ..Default::default()
48997 },
48998 _marker: core::marker::PhantomData,
48999 }
49000 }
49001}
49002impl<'a> DependencyInfoBuilder<'a> {
49003 #[inline]
49004 pub fn dependency_flags(mut self, value: DependencyFlags) -> Self {
49005 self.inner.dependency_flags = value;
49006 self
49007 }
49008 #[inline]
49009 pub fn memory_barriers(mut self, slice: &'a [MemoryBarrier2]) -> Self {
49010 self.inner.memory_barrier_count = slice.len() as u32;
49011 self.inner.p_memory_barriers = slice.as_ptr();
49012 self
49013 }
49014 #[inline]
49015 pub fn buffer_memory_barriers(mut self, slice: &'a [BufferMemoryBarrier2]) -> Self {
49016 self.inner.buffer_memory_barrier_count = slice.len() as u32;
49017 self.inner.p_buffer_memory_barriers = slice.as_ptr();
49018 self
49019 }
49020 #[inline]
49021 pub fn image_memory_barriers(mut self, slice: &'a [ImageMemoryBarrier2]) -> Self {
49022 self.inner.image_memory_barrier_count = slice.len() as u32;
49023 self.inner.p_image_memory_barriers = slice.as_ptr();
49024 self
49025 }
49026 #[inline]
49028 pub fn push_next<T: ExtendsDependencyInfo>(mut self, next: &'a mut T) -> Self {
49029 unsafe {
49030 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49031 (*next_ptr).p_next = self.inner.p_next as *mut _;
49032 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49033 core::ffi::c_void,
49034 >(next_ptr) as *const _;
49035 }
49036 self
49037 }
49038}
49039impl<'a> core::ops::Deref for DependencyInfoBuilder<'a> {
49040 type Target = DependencyInfo;
49041 #[inline]
49042 fn deref(&self) -> &Self::Target {
49043 &self.inner
49044 }
49045}
49046impl<'a> core::ops::DerefMut for DependencyInfoBuilder<'a> {
49047 #[inline]
49048 fn deref_mut(&mut self) -> &mut Self::Target {
49049 &mut self.inner
49050 }
49051}
49052pub struct SemaphoreSubmitInfoBuilder<'a> {
49054 inner: SemaphoreSubmitInfo,
49055 _marker: core::marker::PhantomData<&'a ()>,
49056}
49057impl SemaphoreSubmitInfo {
49058 #[inline]
49060 pub fn builder<'a>() -> SemaphoreSubmitInfoBuilder<'a> {
49061 SemaphoreSubmitInfoBuilder {
49062 inner: SemaphoreSubmitInfo {
49063 s_type: StructureType::from_raw(1000314005i32),
49064 ..Default::default()
49065 },
49066 _marker: core::marker::PhantomData,
49067 }
49068 }
49069}
49070impl<'a> SemaphoreSubmitInfoBuilder<'a> {
49071 #[inline]
49072 pub fn semaphore(mut self, value: Semaphore) -> Self {
49073 self.inner.semaphore = value;
49074 self
49075 }
49076 #[inline]
49077 pub fn value(mut self, value: u64) -> Self {
49078 self.inner.value = value;
49079 self
49080 }
49081 #[inline]
49082 pub fn stage_mask(mut self, value: PipelineStageFlags2) -> Self {
49083 self.inner.stage_mask = value;
49084 self
49085 }
49086 #[inline]
49087 pub fn device_index(mut self, value: u32) -> Self {
49088 self.inner.device_index = value;
49089 self
49090 }
49091 #[inline]
49093 pub fn push_next<T: ExtendsSemaphoreSubmitInfo>(mut self, next: &'a mut T) -> Self {
49094 unsafe {
49095 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49096 (*next_ptr).p_next = self.inner.p_next as *mut _;
49097 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49098 core::ffi::c_void,
49099 >(next_ptr) as *const _;
49100 }
49101 self
49102 }
49103}
49104impl<'a> core::ops::Deref for SemaphoreSubmitInfoBuilder<'a> {
49105 type Target = SemaphoreSubmitInfo;
49106 #[inline]
49107 fn deref(&self) -> &Self::Target {
49108 &self.inner
49109 }
49110}
49111impl<'a> core::ops::DerefMut for SemaphoreSubmitInfoBuilder<'a> {
49112 #[inline]
49113 fn deref_mut(&mut self) -> &mut Self::Target {
49114 &mut self.inner
49115 }
49116}
49117pub struct CommandBufferSubmitInfoBuilder<'a> {
49119 inner: CommandBufferSubmitInfo,
49120 _marker: core::marker::PhantomData<&'a ()>,
49121}
49122impl CommandBufferSubmitInfo {
49123 #[inline]
49125 pub fn builder<'a>() -> CommandBufferSubmitInfoBuilder<'a> {
49126 CommandBufferSubmitInfoBuilder {
49127 inner: CommandBufferSubmitInfo {
49128 s_type: StructureType::from_raw(1000314006i32),
49129 ..Default::default()
49130 },
49131 _marker: core::marker::PhantomData,
49132 }
49133 }
49134}
49135impl<'a> CommandBufferSubmitInfoBuilder<'a> {
49136 #[inline]
49137 pub fn command_buffer(mut self, value: CommandBuffer) -> Self {
49138 self.inner.command_buffer = value;
49139 self
49140 }
49141 #[inline]
49142 pub fn device_mask(mut self, value: u32) -> Self {
49143 self.inner.device_mask = value;
49144 self
49145 }
49146 #[inline]
49148 pub fn push_next<T: ExtendsCommandBufferSubmitInfo>(
49149 mut self,
49150 next: &'a mut T,
49151 ) -> Self {
49152 unsafe {
49153 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49154 (*next_ptr).p_next = self.inner.p_next as *mut _;
49155 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49156 core::ffi::c_void,
49157 >(next_ptr) as *const _;
49158 }
49159 self
49160 }
49161}
49162impl<'a> core::ops::Deref for CommandBufferSubmitInfoBuilder<'a> {
49163 type Target = CommandBufferSubmitInfo;
49164 #[inline]
49165 fn deref(&self) -> &Self::Target {
49166 &self.inner
49167 }
49168}
49169impl<'a> core::ops::DerefMut for CommandBufferSubmitInfoBuilder<'a> {
49170 #[inline]
49171 fn deref_mut(&mut self) -> &mut Self::Target {
49172 &mut self.inner
49173 }
49174}
49175pub struct SubmitInfo2Builder<'a> {
49177 inner: SubmitInfo2,
49178 _marker: core::marker::PhantomData<&'a ()>,
49179}
49180impl SubmitInfo2 {
49181 #[inline]
49183 pub fn builder<'a>() -> SubmitInfo2Builder<'a> {
49184 SubmitInfo2Builder {
49185 inner: SubmitInfo2 {
49186 s_type: StructureType::from_raw(1000314004i32),
49187 ..Default::default()
49188 },
49189 _marker: core::marker::PhantomData,
49190 }
49191 }
49192}
49193impl<'a> SubmitInfo2Builder<'a> {
49194 #[inline]
49195 pub fn flags(mut self, value: SubmitFlags) -> Self {
49196 self.inner.flags = value;
49197 self
49198 }
49199 #[inline]
49200 pub fn wait_semaphore_infos(mut self, slice: &'a [SemaphoreSubmitInfo]) -> Self {
49201 self.inner.wait_semaphore_info_count = slice.len() as u32;
49202 self.inner.p_wait_semaphore_infos = slice.as_ptr();
49203 self
49204 }
49205 #[inline]
49206 pub fn command_buffer_infos(mut self, slice: &'a [CommandBufferSubmitInfo]) -> Self {
49207 self.inner.command_buffer_info_count = slice.len() as u32;
49208 self.inner.p_command_buffer_infos = slice.as_ptr();
49209 self
49210 }
49211 #[inline]
49212 pub fn signal_semaphore_infos(mut self, slice: &'a [SemaphoreSubmitInfo]) -> Self {
49213 self.inner.signal_semaphore_info_count = slice.len() as u32;
49214 self.inner.p_signal_semaphore_infos = slice.as_ptr();
49215 self
49216 }
49217 #[inline]
49219 pub fn push_next<T: ExtendsSubmitInfo2>(mut self, next: &'a mut T) -> Self {
49220 unsafe {
49221 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49222 (*next_ptr).p_next = self.inner.p_next as *mut _;
49223 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49224 core::ffi::c_void,
49225 >(next_ptr) as *const _;
49226 }
49227 self
49228 }
49229}
49230impl<'a> core::ops::Deref for SubmitInfo2Builder<'a> {
49231 type Target = SubmitInfo2;
49232 #[inline]
49233 fn deref(&self) -> &Self::Target {
49234 &self.inner
49235 }
49236}
49237impl<'a> core::ops::DerefMut for SubmitInfo2Builder<'a> {
49238 #[inline]
49239 fn deref_mut(&mut self) -> &mut Self::Target {
49240 &mut self.inner
49241 }
49242}
49243pub struct QueueFamilyCheckpointProperties2NVBuilder<'a> {
49245 inner: QueueFamilyCheckpointProperties2NV,
49246 _marker: core::marker::PhantomData<&'a ()>,
49247}
49248impl QueueFamilyCheckpointProperties2NV {
49249 #[inline]
49251 pub fn builder<'a>() -> QueueFamilyCheckpointProperties2NVBuilder<'a> {
49252 QueueFamilyCheckpointProperties2NVBuilder {
49253 inner: QueueFamilyCheckpointProperties2NV {
49254 s_type: StructureType::from_raw(1000314008i32),
49255 ..Default::default()
49256 },
49257 _marker: core::marker::PhantomData,
49258 }
49259 }
49260}
49261impl<'a> QueueFamilyCheckpointProperties2NVBuilder<'a> {
49262 #[inline]
49263 pub fn checkpoint_execution_stage_mask(
49264 mut self,
49265 value: PipelineStageFlags2,
49266 ) -> Self {
49267 self.inner.checkpoint_execution_stage_mask = value;
49268 self
49269 }
49270}
49271impl<'a> core::ops::Deref for QueueFamilyCheckpointProperties2NVBuilder<'a> {
49272 type Target = QueueFamilyCheckpointProperties2NV;
49273 #[inline]
49274 fn deref(&self) -> &Self::Target {
49275 &self.inner
49276 }
49277}
49278impl<'a> core::ops::DerefMut for QueueFamilyCheckpointProperties2NVBuilder<'a> {
49279 #[inline]
49280 fn deref_mut(&mut self) -> &mut Self::Target {
49281 &mut self.inner
49282 }
49283}
49284pub struct CheckpointData2NVBuilder<'a> {
49286 inner: CheckpointData2NV,
49287 _marker: core::marker::PhantomData<&'a ()>,
49288}
49289impl CheckpointData2NV {
49290 #[inline]
49292 pub fn builder<'a>() -> CheckpointData2NVBuilder<'a> {
49293 CheckpointData2NVBuilder {
49294 inner: CheckpointData2NV {
49295 s_type: StructureType::from_raw(1000314009i32),
49296 ..Default::default()
49297 },
49298 _marker: core::marker::PhantomData,
49299 }
49300 }
49301}
49302impl<'a> CheckpointData2NVBuilder<'a> {
49303 #[inline]
49304 pub fn stage(mut self, value: PipelineStageFlags2) -> Self {
49305 self.inner.stage = value;
49306 self
49307 }
49308 #[inline]
49309 pub fn checkpoint_marker(mut self, value: *mut core::ffi::c_void) -> Self {
49310 self.inner.p_checkpoint_marker = value;
49311 self
49312 }
49313}
49314impl<'a> core::ops::Deref for CheckpointData2NVBuilder<'a> {
49315 type Target = CheckpointData2NV;
49316 #[inline]
49317 fn deref(&self) -> &Self::Target {
49318 &self.inner
49319 }
49320}
49321impl<'a> core::ops::DerefMut for CheckpointData2NVBuilder<'a> {
49322 #[inline]
49323 fn deref_mut(&mut self) -> &mut Self::Target {
49324 &mut self.inner
49325 }
49326}
49327pub struct PhysicalDeviceSynchronization2FeaturesBuilder<'a> {
49329 inner: PhysicalDeviceSynchronization2Features,
49330 _marker: core::marker::PhantomData<&'a ()>,
49331}
49332impl PhysicalDeviceSynchronization2Features {
49333 #[inline]
49335 pub fn builder<'a>() -> PhysicalDeviceSynchronization2FeaturesBuilder<'a> {
49336 PhysicalDeviceSynchronization2FeaturesBuilder {
49337 inner: PhysicalDeviceSynchronization2Features {
49338 s_type: StructureType::from_raw(1000314007i32),
49339 ..Default::default()
49340 },
49341 _marker: core::marker::PhantomData,
49342 }
49343 }
49344}
49345impl<'a> PhysicalDeviceSynchronization2FeaturesBuilder<'a> {
49346 #[inline]
49347 pub fn synchronization2(mut self, value: bool) -> Self {
49348 self.inner.synchronization2 = value as u32;
49349 self
49350 }
49351 #[inline]
49353 pub fn push_next<T: ExtendsPhysicalDeviceSynchronization2Features>(
49354 mut self,
49355 next: &'a mut T,
49356 ) -> Self {
49357 unsafe {
49358 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49359 (*next_ptr).p_next = self.inner.p_next as *mut _;
49360 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49361 core::ffi::c_void,
49362 >(next_ptr);
49363 }
49364 self
49365 }
49366}
49367impl<'a> core::ops::Deref for PhysicalDeviceSynchronization2FeaturesBuilder<'a> {
49368 type Target = PhysicalDeviceSynchronization2Features;
49369 #[inline]
49370 fn deref(&self) -> &Self::Target {
49371 &self.inner
49372 }
49373}
49374impl<'a> core::ops::DerefMut for PhysicalDeviceSynchronization2FeaturesBuilder<'a> {
49375 #[inline]
49376 fn deref_mut(&mut self) -> &mut Self::Target {
49377 &mut self.inner
49378 }
49379}
49380pub struct PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder<'a> {
49382 inner: PhysicalDeviceUnifiedImageLayoutsFeaturesKHR,
49383 _marker: core::marker::PhantomData<&'a ()>,
49384}
49385impl PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
49386 #[inline]
49388 pub fn builder<'a>() -> PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder<'a> {
49389 PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder {
49390 inner: PhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
49391 s_type: StructureType::from_raw(1000527000i32),
49392 ..Default::default()
49393 },
49394 _marker: core::marker::PhantomData,
49395 }
49396 }
49397}
49398impl<'a> PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder<'a> {
49399 #[inline]
49400 pub fn unified_image_layouts(mut self, value: bool) -> Self {
49401 self.inner.unified_image_layouts = value as u32;
49402 self
49403 }
49404 #[inline]
49405 pub fn unified_image_layouts_video(mut self, value: bool) -> Self {
49406 self.inner.unified_image_layouts_video = value as u32;
49407 self
49408 }
49409 #[inline]
49411 pub fn push_next<T: ExtendsPhysicalDeviceUnifiedImageLayoutsFeaturesKHR>(
49412 mut self,
49413 next: &'a mut T,
49414 ) -> Self {
49415 unsafe {
49416 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49417 (*next_ptr).p_next = self.inner.p_next as *mut _;
49418 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49419 core::ffi::c_void,
49420 >(next_ptr);
49421 }
49422 self
49423 }
49424}
49425impl<'a> core::ops::Deref for PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder<'a> {
49426 type Target = PhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
49427 #[inline]
49428 fn deref(&self) -> &Self::Target {
49429 &self.inner
49430 }
49431}
49432impl<'a> core::ops::DerefMut
49433for PhysicalDeviceUnifiedImageLayoutsFeaturesKHRBuilder<'a> {
49434 #[inline]
49435 fn deref_mut(&mut self) -> &mut Self::Target {
49436 &mut self.inner
49437 }
49438}
49439pub struct PhysicalDeviceHostImageCopyFeaturesBuilder<'a> {
49441 inner: PhysicalDeviceHostImageCopyFeatures,
49442 _marker: core::marker::PhantomData<&'a ()>,
49443}
49444impl PhysicalDeviceHostImageCopyFeatures {
49445 #[inline]
49447 pub fn builder<'a>() -> PhysicalDeviceHostImageCopyFeaturesBuilder<'a> {
49448 PhysicalDeviceHostImageCopyFeaturesBuilder {
49449 inner: PhysicalDeviceHostImageCopyFeatures {
49450 s_type: StructureType::from_raw(1000270000i32),
49451 ..Default::default()
49452 },
49453 _marker: core::marker::PhantomData,
49454 }
49455 }
49456}
49457impl<'a> PhysicalDeviceHostImageCopyFeaturesBuilder<'a> {
49458 #[inline]
49459 pub fn host_image_copy(mut self, value: bool) -> Self {
49460 self.inner.host_image_copy = value as u32;
49461 self
49462 }
49463 #[inline]
49465 pub fn push_next<T: ExtendsPhysicalDeviceHostImageCopyFeatures>(
49466 mut self,
49467 next: &'a mut T,
49468 ) -> Self {
49469 unsafe {
49470 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49471 (*next_ptr).p_next = self.inner.p_next as *mut _;
49472 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49473 core::ffi::c_void,
49474 >(next_ptr);
49475 }
49476 self
49477 }
49478}
49479impl<'a> core::ops::Deref for PhysicalDeviceHostImageCopyFeaturesBuilder<'a> {
49480 type Target = PhysicalDeviceHostImageCopyFeatures;
49481 #[inline]
49482 fn deref(&self) -> &Self::Target {
49483 &self.inner
49484 }
49485}
49486impl<'a> core::ops::DerefMut for PhysicalDeviceHostImageCopyFeaturesBuilder<'a> {
49487 #[inline]
49488 fn deref_mut(&mut self) -> &mut Self::Target {
49489 &mut self.inner
49490 }
49491}
49492pub struct PhysicalDeviceHostImageCopyPropertiesBuilder<'a> {
49494 inner: PhysicalDeviceHostImageCopyProperties,
49495 _marker: core::marker::PhantomData<&'a ()>,
49496}
49497impl PhysicalDeviceHostImageCopyProperties {
49498 #[inline]
49500 pub fn builder<'a>() -> PhysicalDeviceHostImageCopyPropertiesBuilder<'a> {
49501 PhysicalDeviceHostImageCopyPropertiesBuilder {
49502 inner: PhysicalDeviceHostImageCopyProperties {
49503 s_type: StructureType::from_raw(1000270001i32),
49504 ..Default::default()
49505 },
49506 _marker: core::marker::PhantomData,
49507 }
49508 }
49509}
49510impl<'a> PhysicalDeviceHostImageCopyPropertiesBuilder<'a> {
49511 #[inline]
49512 pub fn copy_src_layout_count(mut self, value: u32) -> Self {
49513 self.inner.copy_src_layout_count = value;
49514 self
49515 }
49516 #[inline]
49517 pub fn copy_src_layouts(mut self, slice: &'a mut [ImageLayout]) -> Self {
49518 self.inner.copy_src_layout_count = slice.len() as u32;
49519 self.inner.p_copy_src_layouts = slice.as_mut_ptr();
49520 self
49521 }
49522 #[inline]
49523 pub fn copy_dst_layout_count(mut self, value: u32) -> Self {
49524 self.inner.copy_dst_layout_count = value;
49525 self
49526 }
49527 #[inline]
49528 pub fn copy_dst_layouts(mut self, slice: &'a mut [ImageLayout]) -> Self {
49529 self.inner.copy_dst_layout_count = slice.len() as u32;
49530 self.inner.p_copy_dst_layouts = slice.as_mut_ptr();
49531 self
49532 }
49533 #[inline]
49534 pub fn optimal_tiling_layout_uuid(
49535 mut self,
49536 value: [u8; UUID_SIZE as usize],
49537 ) -> Self {
49538 self.inner.optimal_tiling_layout_uuid = value;
49539 self
49540 }
49541 #[inline]
49542 pub fn identical_memory_type_requirements(mut self, value: bool) -> Self {
49543 self.inner.identical_memory_type_requirements = value as u32;
49544 self
49545 }
49546 #[inline]
49548 pub fn push_next<T: ExtendsPhysicalDeviceHostImageCopyProperties>(
49549 mut self,
49550 next: &'a mut T,
49551 ) -> Self {
49552 unsafe {
49553 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49554 (*next_ptr).p_next = self.inner.p_next as *mut _;
49555 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49556 core::ffi::c_void,
49557 >(next_ptr);
49558 }
49559 self
49560 }
49561}
49562impl<'a> core::ops::Deref for PhysicalDeviceHostImageCopyPropertiesBuilder<'a> {
49563 type Target = PhysicalDeviceHostImageCopyProperties;
49564 #[inline]
49565 fn deref(&self) -> &Self::Target {
49566 &self.inner
49567 }
49568}
49569impl<'a> core::ops::DerefMut for PhysicalDeviceHostImageCopyPropertiesBuilder<'a> {
49570 #[inline]
49571 fn deref_mut(&mut self) -> &mut Self::Target {
49572 &mut self.inner
49573 }
49574}
49575pub struct MemoryToImageCopyBuilder<'a> {
49577 inner: MemoryToImageCopy,
49578 _marker: core::marker::PhantomData<&'a ()>,
49579}
49580impl MemoryToImageCopy {
49581 #[inline]
49583 pub fn builder<'a>() -> MemoryToImageCopyBuilder<'a> {
49584 MemoryToImageCopyBuilder {
49585 inner: MemoryToImageCopy {
49586 s_type: StructureType::from_raw(1000270002i32),
49587 ..Default::default()
49588 },
49589 _marker: core::marker::PhantomData,
49590 }
49591 }
49592}
49593impl<'a> MemoryToImageCopyBuilder<'a> {
49594 #[inline]
49595 pub fn host_pointer(mut self, value: *const core::ffi::c_void) -> Self {
49596 self.inner.p_host_pointer = value;
49597 self
49598 }
49599 #[inline]
49600 pub fn memory_row_length(mut self, value: u32) -> Self {
49601 self.inner.memory_row_length = value;
49602 self
49603 }
49604 #[inline]
49605 pub fn memory_image_height(mut self, value: u32) -> Self {
49606 self.inner.memory_image_height = value;
49607 self
49608 }
49609 #[inline]
49610 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
49611 self.inner.image_subresource = value;
49612 self
49613 }
49614 #[inline]
49615 pub fn image_offset(mut self, value: Offset3D) -> Self {
49616 self.inner.image_offset = value;
49617 self
49618 }
49619 #[inline]
49620 pub fn image_extent(mut self, value: Extent3D) -> Self {
49621 self.inner.image_extent = value;
49622 self
49623 }
49624 #[inline]
49626 pub fn push_next<T: ExtendsMemoryToImageCopy>(mut self, next: &'a mut T) -> Self {
49627 unsafe {
49628 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49629 (*next_ptr).p_next = self.inner.p_next as *mut _;
49630 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49631 core::ffi::c_void,
49632 >(next_ptr) as *const _;
49633 }
49634 self
49635 }
49636}
49637impl<'a> core::ops::Deref for MemoryToImageCopyBuilder<'a> {
49638 type Target = MemoryToImageCopy;
49639 #[inline]
49640 fn deref(&self) -> &Self::Target {
49641 &self.inner
49642 }
49643}
49644impl<'a> core::ops::DerefMut for MemoryToImageCopyBuilder<'a> {
49645 #[inline]
49646 fn deref_mut(&mut self) -> &mut Self::Target {
49647 &mut self.inner
49648 }
49649}
49650pub struct ImageToMemoryCopyBuilder<'a> {
49652 inner: ImageToMemoryCopy,
49653 _marker: core::marker::PhantomData<&'a ()>,
49654}
49655impl ImageToMemoryCopy {
49656 #[inline]
49658 pub fn builder<'a>() -> ImageToMemoryCopyBuilder<'a> {
49659 ImageToMemoryCopyBuilder {
49660 inner: ImageToMemoryCopy {
49661 s_type: StructureType::from_raw(1000270003i32),
49662 ..Default::default()
49663 },
49664 _marker: core::marker::PhantomData,
49665 }
49666 }
49667}
49668impl<'a> ImageToMemoryCopyBuilder<'a> {
49669 #[inline]
49670 pub fn host_pointer(mut self, value: *mut core::ffi::c_void) -> Self {
49671 self.inner.p_host_pointer = value;
49672 self
49673 }
49674 #[inline]
49675 pub fn memory_row_length(mut self, value: u32) -> Self {
49676 self.inner.memory_row_length = value;
49677 self
49678 }
49679 #[inline]
49680 pub fn memory_image_height(mut self, value: u32) -> Self {
49681 self.inner.memory_image_height = value;
49682 self
49683 }
49684 #[inline]
49685 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
49686 self.inner.image_subresource = value;
49687 self
49688 }
49689 #[inline]
49690 pub fn image_offset(mut self, value: Offset3D) -> Self {
49691 self.inner.image_offset = value;
49692 self
49693 }
49694 #[inline]
49695 pub fn image_extent(mut self, value: Extent3D) -> Self {
49696 self.inner.image_extent = value;
49697 self
49698 }
49699 #[inline]
49701 pub fn push_next<T: ExtendsImageToMemoryCopy>(mut self, next: &'a mut T) -> Self {
49702 unsafe {
49703 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49704 (*next_ptr).p_next = self.inner.p_next as *mut _;
49705 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49706 core::ffi::c_void,
49707 >(next_ptr) as *const _;
49708 }
49709 self
49710 }
49711}
49712impl<'a> core::ops::Deref for ImageToMemoryCopyBuilder<'a> {
49713 type Target = ImageToMemoryCopy;
49714 #[inline]
49715 fn deref(&self) -> &Self::Target {
49716 &self.inner
49717 }
49718}
49719impl<'a> core::ops::DerefMut for ImageToMemoryCopyBuilder<'a> {
49720 #[inline]
49721 fn deref_mut(&mut self) -> &mut Self::Target {
49722 &mut self.inner
49723 }
49724}
49725pub struct CopyMemoryToImageInfoBuilder<'a> {
49727 inner: CopyMemoryToImageInfo,
49728 _marker: core::marker::PhantomData<&'a ()>,
49729}
49730impl CopyMemoryToImageInfo {
49731 #[inline]
49733 pub fn builder<'a>() -> CopyMemoryToImageInfoBuilder<'a> {
49734 CopyMemoryToImageInfoBuilder {
49735 inner: CopyMemoryToImageInfo {
49736 s_type: StructureType::from_raw(1000270005i32),
49737 ..Default::default()
49738 },
49739 _marker: core::marker::PhantomData,
49740 }
49741 }
49742}
49743impl<'a> CopyMemoryToImageInfoBuilder<'a> {
49744 #[inline]
49745 pub fn flags(mut self, value: HostImageCopyFlags) -> Self {
49746 self.inner.flags = value;
49747 self
49748 }
49749 #[inline]
49750 pub fn dst_image(mut self, value: Image) -> Self {
49751 self.inner.dst_image = value;
49752 self
49753 }
49754 #[inline]
49755 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
49756 self.inner.dst_image_layout = value;
49757 self
49758 }
49759 #[inline]
49760 pub fn regions(mut self, slice: &'a [MemoryToImageCopy]) -> Self {
49761 self.inner.region_count = slice.len() as u32;
49762 self.inner.p_regions = slice.as_ptr();
49763 self
49764 }
49765 #[inline]
49767 pub fn push_next<T: ExtendsCopyMemoryToImageInfo>(
49768 mut self,
49769 next: &'a mut T,
49770 ) -> Self {
49771 unsafe {
49772 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49773 (*next_ptr).p_next = self.inner.p_next as *mut _;
49774 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49775 core::ffi::c_void,
49776 >(next_ptr) as *const _;
49777 }
49778 self
49779 }
49780}
49781impl<'a> core::ops::Deref for CopyMemoryToImageInfoBuilder<'a> {
49782 type Target = CopyMemoryToImageInfo;
49783 #[inline]
49784 fn deref(&self) -> &Self::Target {
49785 &self.inner
49786 }
49787}
49788impl<'a> core::ops::DerefMut for CopyMemoryToImageInfoBuilder<'a> {
49789 #[inline]
49790 fn deref_mut(&mut self) -> &mut Self::Target {
49791 &mut self.inner
49792 }
49793}
49794pub struct CopyImageToMemoryInfoBuilder<'a> {
49796 inner: CopyImageToMemoryInfo,
49797 _marker: core::marker::PhantomData<&'a ()>,
49798}
49799impl CopyImageToMemoryInfo {
49800 #[inline]
49802 pub fn builder<'a>() -> CopyImageToMemoryInfoBuilder<'a> {
49803 CopyImageToMemoryInfoBuilder {
49804 inner: CopyImageToMemoryInfo {
49805 s_type: StructureType::from_raw(1000270004i32),
49806 ..Default::default()
49807 },
49808 _marker: core::marker::PhantomData,
49809 }
49810 }
49811}
49812impl<'a> CopyImageToMemoryInfoBuilder<'a> {
49813 #[inline]
49814 pub fn flags(mut self, value: HostImageCopyFlags) -> Self {
49815 self.inner.flags = value;
49816 self
49817 }
49818 #[inline]
49819 pub fn src_image(mut self, value: Image) -> Self {
49820 self.inner.src_image = value;
49821 self
49822 }
49823 #[inline]
49824 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
49825 self.inner.src_image_layout = value;
49826 self
49827 }
49828 #[inline]
49829 pub fn regions(mut self, slice: &'a [ImageToMemoryCopy]) -> Self {
49830 self.inner.region_count = slice.len() as u32;
49831 self.inner.p_regions = slice.as_ptr();
49832 self
49833 }
49834 #[inline]
49836 pub fn push_next<T: ExtendsCopyImageToMemoryInfo>(
49837 mut self,
49838 next: &'a mut T,
49839 ) -> Self {
49840 unsafe {
49841 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49842 (*next_ptr).p_next = self.inner.p_next as *mut _;
49843 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49844 core::ffi::c_void,
49845 >(next_ptr) as *const _;
49846 }
49847 self
49848 }
49849}
49850impl<'a> core::ops::Deref for CopyImageToMemoryInfoBuilder<'a> {
49851 type Target = CopyImageToMemoryInfo;
49852 #[inline]
49853 fn deref(&self) -> &Self::Target {
49854 &self.inner
49855 }
49856}
49857impl<'a> core::ops::DerefMut for CopyImageToMemoryInfoBuilder<'a> {
49858 #[inline]
49859 fn deref_mut(&mut self) -> &mut Self::Target {
49860 &mut self.inner
49861 }
49862}
49863pub struct CopyImageToImageInfoBuilder<'a> {
49865 inner: CopyImageToImageInfo,
49866 _marker: core::marker::PhantomData<&'a ()>,
49867}
49868impl CopyImageToImageInfo {
49869 #[inline]
49871 pub fn builder<'a>() -> CopyImageToImageInfoBuilder<'a> {
49872 CopyImageToImageInfoBuilder {
49873 inner: CopyImageToImageInfo {
49874 s_type: StructureType::from_raw(1000270007i32),
49875 ..Default::default()
49876 },
49877 _marker: core::marker::PhantomData,
49878 }
49879 }
49880}
49881impl<'a> CopyImageToImageInfoBuilder<'a> {
49882 #[inline]
49883 pub fn flags(mut self, value: HostImageCopyFlags) -> Self {
49884 self.inner.flags = value;
49885 self
49886 }
49887 #[inline]
49888 pub fn src_image(mut self, value: Image) -> Self {
49889 self.inner.src_image = value;
49890 self
49891 }
49892 #[inline]
49893 pub fn src_image_layout(mut self, value: ImageLayout) -> Self {
49894 self.inner.src_image_layout = value;
49895 self
49896 }
49897 #[inline]
49898 pub fn dst_image(mut self, value: Image) -> Self {
49899 self.inner.dst_image = value;
49900 self
49901 }
49902 #[inline]
49903 pub fn dst_image_layout(mut self, value: ImageLayout) -> Self {
49904 self.inner.dst_image_layout = value;
49905 self
49906 }
49907 #[inline]
49908 pub fn regions(mut self, slice: &'a [ImageCopy2]) -> Self {
49909 self.inner.region_count = slice.len() as u32;
49910 self.inner.p_regions = slice.as_ptr();
49911 self
49912 }
49913 #[inline]
49915 pub fn push_next<T: ExtendsCopyImageToImageInfo>(mut self, next: &'a mut T) -> Self {
49916 unsafe {
49917 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49918 (*next_ptr).p_next = self.inner.p_next as *mut _;
49919 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49920 core::ffi::c_void,
49921 >(next_ptr) as *const _;
49922 }
49923 self
49924 }
49925}
49926impl<'a> core::ops::Deref for CopyImageToImageInfoBuilder<'a> {
49927 type Target = CopyImageToImageInfo;
49928 #[inline]
49929 fn deref(&self) -> &Self::Target {
49930 &self.inner
49931 }
49932}
49933impl<'a> core::ops::DerefMut for CopyImageToImageInfoBuilder<'a> {
49934 #[inline]
49935 fn deref_mut(&mut self) -> &mut Self::Target {
49936 &mut self.inner
49937 }
49938}
49939pub struct HostImageLayoutTransitionInfoBuilder<'a> {
49941 inner: HostImageLayoutTransitionInfo,
49942 _marker: core::marker::PhantomData<&'a ()>,
49943}
49944impl HostImageLayoutTransitionInfo {
49945 #[inline]
49947 pub fn builder<'a>() -> HostImageLayoutTransitionInfoBuilder<'a> {
49948 HostImageLayoutTransitionInfoBuilder {
49949 inner: HostImageLayoutTransitionInfo {
49950 s_type: StructureType::from_raw(1000270006i32),
49951 ..Default::default()
49952 },
49953 _marker: core::marker::PhantomData,
49954 }
49955 }
49956}
49957impl<'a> HostImageLayoutTransitionInfoBuilder<'a> {
49958 #[inline]
49959 pub fn image(mut self, value: Image) -> Self {
49960 self.inner.image = value;
49961 self
49962 }
49963 #[inline]
49964 pub fn old_layout(mut self, value: ImageLayout) -> Self {
49965 self.inner.old_layout = value;
49966 self
49967 }
49968 #[inline]
49969 pub fn new_layout(mut self, value: ImageLayout) -> Self {
49970 self.inner.new_layout = value;
49971 self
49972 }
49973 #[inline]
49974 pub fn subresource_range(mut self, value: ImageSubresourceRange) -> Self {
49975 self.inner.subresource_range = value;
49976 self
49977 }
49978 #[inline]
49980 pub fn push_next<T: ExtendsHostImageLayoutTransitionInfo>(
49981 mut self,
49982 next: &'a mut T,
49983 ) -> Self {
49984 unsafe {
49985 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
49986 (*next_ptr).p_next = self.inner.p_next as *mut _;
49987 self.inner.p_next = <*mut BaseOutStructure>::cast::<
49988 core::ffi::c_void,
49989 >(next_ptr) as *const _;
49990 }
49991 self
49992 }
49993}
49994impl<'a> core::ops::Deref for HostImageLayoutTransitionInfoBuilder<'a> {
49995 type Target = HostImageLayoutTransitionInfo;
49996 #[inline]
49997 fn deref(&self) -> &Self::Target {
49998 &self.inner
49999 }
50000}
50001impl<'a> core::ops::DerefMut for HostImageLayoutTransitionInfoBuilder<'a> {
50002 #[inline]
50003 fn deref_mut(&mut self) -> &mut Self::Target {
50004 &mut self.inner
50005 }
50006}
50007pub struct SubresourceHostMemcpySizeBuilder<'a> {
50009 inner: SubresourceHostMemcpySize,
50010 _marker: core::marker::PhantomData<&'a ()>,
50011}
50012impl SubresourceHostMemcpySize {
50013 #[inline]
50015 pub fn builder<'a>() -> SubresourceHostMemcpySizeBuilder<'a> {
50016 SubresourceHostMemcpySizeBuilder {
50017 inner: SubresourceHostMemcpySize {
50018 s_type: StructureType::from_raw(1000270008i32),
50019 ..Default::default()
50020 },
50021 _marker: core::marker::PhantomData,
50022 }
50023 }
50024}
50025impl<'a> SubresourceHostMemcpySizeBuilder<'a> {
50026 #[inline]
50027 pub fn size(mut self, value: u64) -> Self {
50028 self.inner.size = value;
50029 self
50030 }
50031}
50032impl<'a> core::ops::Deref for SubresourceHostMemcpySizeBuilder<'a> {
50033 type Target = SubresourceHostMemcpySize;
50034 #[inline]
50035 fn deref(&self) -> &Self::Target {
50036 &self.inner
50037 }
50038}
50039impl<'a> core::ops::DerefMut for SubresourceHostMemcpySizeBuilder<'a> {
50040 #[inline]
50041 fn deref_mut(&mut self) -> &mut Self::Target {
50042 &mut self.inner
50043 }
50044}
50045pub struct HostImageCopyDevicePerformanceQueryBuilder<'a> {
50047 inner: HostImageCopyDevicePerformanceQuery,
50048 _marker: core::marker::PhantomData<&'a ()>,
50049}
50050impl HostImageCopyDevicePerformanceQuery {
50051 #[inline]
50053 pub fn builder<'a>() -> HostImageCopyDevicePerformanceQueryBuilder<'a> {
50054 HostImageCopyDevicePerformanceQueryBuilder {
50055 inner: HostImageCopyDevicePerformanceQuery {
50056 s_type: StructureType::from_raw(1000270009i32),
50057 ..Default::default()
50058 },
50059 _marker: core::marker::PhantomData,
50060 }
50061 }
50062}
50063impl<'a> HostImageCopyDevicePerformanceQueryBuilder<'a> {
50064 #[inline]
50065 pub fn optimal_device_access(mut self, value: bool) -> Self {
50066 self.inner.optimal_device_access = value as u32;
50067 self
50068 }
50069 #[inline]
50070 pub fn identical_memory_layout(mut self, value: bool) -> Self {
50071 self.inner.identical_memory_layout = value as u32;
50072 self
50073 }
50074}
50075impl<'a> core::ops::Deref for HostImageCopyDevicePerformanceQueryBuilder<'a> {
50076 type Target = HostImageCopyDevicePerformanceQuery;
50077 #[inline]
50078 fn deref(&self) -> &Self::Target {
50079 &self.inner
50080 }
50081}
50082impl<'a> core::ops::DerefMut for HostImageCopyDevicePerformanceQueryBuilder<'a> {
50083 #[inline]
50084 fn deref_mut(&mut self) -> &mut Self::Target {
50085 &mut self.inner
50086 }
50087}
50088pub struct PhysicalDeviceVulkanSC10PropertiesBuilder<'a> {
50090 inner: PhysicalDeviceVulkanSC10Properties,
50091 _marker: core::marker::PhantomData<&'a ()>,
50092}
50093impl PhysicalDeviceVulkanSC10Properties {
50094 #[inline]
50096 pub fn builder<'a>() -> PhysicalDeviceVulkanSC10PropertiesBuilder<'a> {
50097 PhysicalDeviceVulkanSC10PropertiesBuilder {
50098 inner: PhysicalDeviceVulkanSC10Properties {
50099 s_type: StructureType::from_raw(1000298001i32),
50100 ..Default::default()
50101 },
50102 _marker: core::marker::PhantomData,
50103 }
50104 }
50105}
50106impl<'a> PhysicalDeviceVulkanSC10PropertiesBuilder<'a> {
50107 #[inline]
50108 pub fn device_no_dynamic_host_allocations(mut self, value: bool) -> Self {
50109 self.inner.device_no_dynamic_host_allocations = value as u32;
50110 self
50111 }
50112 #[inline]
50113 pub fn device_destroy_frees_memory(mut self, value: bool) -> Self {
50114 self.inner.device_destroy_frees_memory = value as u32;
50115 self
50116 }
50117 #[inline]
50118 pub fn command_pool_multiple_command_buffers_recording(
50119 mut self,
50120 value: bool,
50121 ) -> Self {
50122 self.inner.command_pool_multiple_command_buffers_recording = value as u32;
50123 self
50124 }
50125 #[inline]
50126 pub fn command_pool_reset_command_buffer(mut self, value: bool) -> Self {
50127 self.inner.command_pool_reset_command_buffer = value as u32;
50128 self
50129 }
50130 #[inline]
50131 pub fn command_buffer_simultaneous_use(mut self, value: bool) -> Self {
50132 self.inner.command_buffer_simultaneous_use = value as u32;
50133 self
50134 }
50135 #[inline]
50136 pub fn secondary_command_buffer_null_or_imageless_framebuffer(
50137 mut self,
50138 value: bool,
50139 ) -> Self {
50140 self.inner.secondary_command_buffer_null_or_imageless_framebuffer = value as u32;
50141 self
50142 }
50143 #[inline]
50144 pub fn recycle_descriptor_set_memory(mut self, value: bool) -> Self {
50145 self.inner.recycle_descriptor_set_memory = value as u32;
50146 self
50147 }
50148 #[inline]
50149 pub fn recycle_pipeline_memory(mut self, value: bool) -> Self {
50150 self.inner.recycle_pipeline_memory = value as u32;
50151 self
50152 }
50153 #[inline]
50154 pub fn max_render_pass_subpasses(mut self, value: u32) -> Self {
50155 self.inner.max_render_pass_subpasses = value;
50156 self
50157 }
50158 #[inline]
50159 pub fn max_render_pass_dependencies(mut self, value: u32) -> Self {
50160 self.inner.max_render_pass_dependencies = value;
50161 self
50162 }
50163 #[inline]
50164 pub fn max_subpass_input_attachments(mut self, value: u32) -> Self {
50165 self.inner.max_subpass_input_attachments = value;
50166 self
50167 }
50168 #[inline]
50169 pub fn max_subpass_preserve_attachments(mut self, value: u32) -> Self {
50170 self.inner.max_subpass_preserve_attachments = value;
50171 self
50172 }
50173 #[inline]
50174 pub fn max_framebuffer_attachments(mut self, value: u32) -> Self {
50175 self.inner.max_framebuffer_attachments = value;
50176 self
50177 }
50178 #[inline]
50179 pub fn max_descriptor_set_layout_bindings(mut self, value: u32) -> Self {
50180 self.inner.max_descriptor_set_layout_bindings = value;
50181 self
50182 }
50183 #[inline]
50184 pub fn max_query_fault_count(mut self, value: u32) -> Self {
50185 self.inner.max_query_fault_count = value;
50186 self
50187 }
50188 #[inline]
50189 pub fn max_callback_fault_count(mut self, value: u32) -> Self {
50190 self.inner.max_callback_fault_count = value;
50191 self
50192 }
50193 #[inline]
50194 pub fn max_command_pool_command_buffers(mut self, value: u32) -> Self {
50195 self.inner.max_command_pool_command_buffers = value;
50196 self
50197 }
50198 #[inline]
50199 pub fn max_command_buffer_size(mut self, value: u64) -> Self {
50200 self.inner.max_command_buffer_size = value;
50201 self
50202 }
50203}
50204impl<'a> core::ops::Deref for PhysicalDeviceVulkanSC10PropertiesBuilder<'a> {
50205 type Target = PhysicalDeviceVulkanSC10Properties;
50206 #[inline]
50207 fn deref(&self) -> &Self::Target {
50208 &self.inner
50209 }
50210}
50211impl<'a> core::ops::DerefMut for PhysicalDeviceVulkanSC10PropertiesBuilder<'a> {
50212 #[inline]
50213 fn deref_mut(&mut self) -> &mut Self::Target {
50214 &mut self.inner
50215 }
50216}
50217pub struct PipelinePoolSizeBuilder<'a> {
50219 inner: PipelinePoolSize,
50220 _marker: core::marker::PhantomData<&'a ()>,
50221}
50222impl PipelinePoolSize {
50223 #[inline]
50225 pub fn builder<'a>() -> PipelinePoolSizeBuilder<'a> {
50226 PipelinePoolSizeBuilder {
50227 inner: PipelinePoolSize {
50228 s_type: StructureType::from_raw(1000298005i32),
50229 ..Default::default()
50230 },
50231 _marker: core::marker::PhantomData,
50232 }
50233 }
50234}
50235impl<'a> PipelinePoolSizeBuilder<'a> {
50236 #[inline]
50237 pub fn pool_entry_size(mut self, value: u64) -> Self {
50238 self.inner.pool_entry_size = value;
50239 self
50240 }
50241 #[inline]
50242 pub fn pool_entry_count(mut self, value: u32) -> Self {
50243 self.inner.pool_entry_count = value;
50244 self
50245 }
50246 #[inline]
50248 pub fn push_next<T: ExtendsPipelinePoolSize>(mut self, next: &'a mut T) -> Self {
50249 unsafe {
50250 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50251 (*next_ptr).p_next = self.inner.p_next as *mut _;
50252 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50253 core::ffi::c_void,
50254 >(next_ptr) as *const _;
50255 }
50256 self
50257 }
50258}
50259impl<'a> core::ops::Deref for PipelinePoolSizeBuilder<'a> {
50260 type Target = PipelinePoolSize;
50261 #[inline]
50262 fn deref(&self) -> &Self::Target {
50263 &self.inner
50264 }
50265}
50266impl<'a> core::ops::DerefMut for PipelinePoolSizeBuilder<'a> {
50267 #[inline]
50268 fn deref_mut(&mut self) -> &mut Self::Target {
50269 &mut self.inner
50270 }
50271}
50272pub struct DeviceObjectReservationCreateInfoBuilder<'a> {
50274 inner: DeviceObjectReservationCreateInfo,
50275 _marker: core::marker::PhantomData<&'a ()>,
50276}
50277impl DeviceObjectReservationCreateInfo {
50278 #[inline]
50280 pub fn builder<'a>() -> DeviceObjectReservationCreateInfoBuilder<'a> {
50281 DeviceObjectReservationCreateInfoBuilder {
50282 inner: DeviceObjectReservationCreateInfo {
50283 s_type: StructureType::from_raw(1000298002i32),
50284 ..Default::default()
50285 },
50286 _marker: core::marker::PhantomData,
50287 }
50288 }
50289}
50290impl<'a> DeviceObjectReservationCreateInfoBuilder<'a> {
50291 #[inline]
50292 pub fn pipeline_cache_create_infos(
50293 mut self,
50294 slice: &'a [PipelineCacheCreateInfo],
50295 ) -> Self {
50296 self.inner.pipeline_cache_create_info_count = slice.len() as u32;
50297 self.inner.p_pipeline_cache_create_infos = slice.as_ptr();
50298 self
50299 }
50300 #[inline]
50301 pub fn pipeline_pool_sizes(mut self, slice: &'a [PipelinePoolSize]) -> Self {
50302 self.inner.pipeline_pool_size_count = slice.len() as u32;
50303 self.inner.p_pipeline_pool_sizes = slice.as_ptr();
50304 self
50305 }
50306 #[inline]
50307 pub fn semaphore_request_count(mut self, value: u32) -> Self {
50308 self.inner.semaphore_request_count = value;
50309 self
50310 }
50311 #[inline]
50312 pub fn command_buffer_request_count(mut self, value: u32) -> Self {
50313 self.inner.command_buffer_request_count = value;
50314 self
50315 }
50316 #[inline]
50317 pub fn fence_request_count(mut self, value: u32) -> Self {
50318 self.inner.fence_request_count = value;
50319 self
50320 }
50321 #[inline]
50322 pub fn device_memory_request_count(mut self, value: u32) -> Self {
50323 self.inner.device_memory_request_count = value;
50324 self
50325 }
50326 #[inline]
50327 pub fn buffer_request_count(mut self, value: u32) -> Self {
50328 self.inner.buffer_request_count = value;
50329 self
50330 }
50331 #[inline]
50332 pub fn image_request_count(mut self, value: u32) -> Self {
50333 self.inner.image_request_count = value;
50334 self
50335 }
50336 #[inline]
50337 pub fn event_request_count(mut self, value: u32) -> Self {
50338 self.inner.event_request_count = value;
50339 self
50340 }
50341 #[inline]
50342 pub fn query_pool_request_count(mut self, value: u32) -> Self {
50343 self.inner.query_pool_request_count = value;
50344 self
50345 }
50346 #[inline]
50347 pub fn buffer_view_request_count(mut self, value: u32) -> Self {
50348 self.inner.buffer_view_request_count = value;
50349 self
50350 }
50351 #[inline]
50352 pub fn image_view_request_count(mut self, value: u32) -> Self {
50353 self.inner.image_view_request_count = value;
50354 self
50355 }
50356 #[inline]
50357 pub fn layered_image_view_request_count(mut self, value: u32) -> Self {
50358 self.inner.layered_image_view_request_count = value;
50359 self
50360 }
50361 #[inline]
50362 pub fn pipeline_cache_request_count(mut self, value: u32) -> Self {
50363 self.inner.pipeline_cache_request_count = value;
50364 self
50365 }
50366 #[inline]
50367 pub fn pipeline_layout_request_count(mut self, value: u32) -> Self {
50368 self.inner.pipeline_layout_request_count = value;
50369 self
50370 }
50371 #[inline]
50372 pub fn render_pass_request_count(mut self, value: u32) -> Self {
50373 self.inner.render_pass_request_count = value;
50374 self
50375 }
50376 #[inline]
50377 pub fn graphics_pipeline_request_count(mut self, value: u32) -> Self {
50378 self.inner.graphics_pipeline_request_count = value;
50379 self
50380 }
50381 #[inline]
50382 pub fn compute_pipeline_request_count(mut self, value: u32) -> Self {
50383 self.inner.compute_pipeline_request_count = value;
50384 self
50385 }
50386 #[inline]
50387 pub fn descriptor_set_layout_request_count(mut self, value: u32) -> Self {
50388 self.inner.descriptor_set_layout_request_count = value;
50389 self
50390 }
50391 #[inline]
50392 pub fn sampler_request_count(mut self, value: u32) -> Self {
50393 self.inner.sampler_request_count = value;
50394 self
50395 }
50396 #[inline]
50397 pub fn descriptor_pool_request_count(mut self, value: u32) -> Self {
50398 self.inner.descriptor_pool_request_count = value;
50399 self
50400 }
50401 #[inline]
50402 pub fn descriptor_set_request_count(mut self, value: u32) -> Self {
50403 self.inner.descriptor_set_request_count = value;
50404 self
50405 }
50406 #[inline]
50407 pub fn framebuffer_request_count(mut self, value: u32) -> Self {
50408 self.inner.framebuffer_request_count = value;
50409 self
50410 }
50411 #[inline]
50412 pub fn command_pool_request_count(mut self, value: u32) -> Self {
50413 self.inner.command_pool_request_count = value;
50414 self
50415 }
50416 #[inline]
50417 pub fn sampler_ycbcr_conversion_request_count(mut self, value: u32) -> Self {
50418 self.inner.sampler_ycbcr_conversion_request_count = value;
50419 self
50420 }
50421 #[inline]
50422 pub fn surface_request_count(mut self, value: u32) -> Self {
50423 self.inner.surface_request_count = value;
50424 self
50425 }
50426 #[inline]
50427 pub fn swapchain_request_count(mut self, value: u32) -> Self {
50428 self.inner.swapchain_request_count = value;
50429 self
50430 }
50431 #[inline]
50432 pub fn display_mode_request_count(mut self, value: u32) -> Self {
50433 self.inner.display_mode_request_count = value;
50434 self
50435 }
50436 #[inline]
50437 pub fn subpass_description_request_count(mut self, value: u32) -> Self {
50438 self.inner.subpass_description_request_count = value;
50439 self
50440 }
50441 #[inline]
50442 pub fn attachment_description_request_count(mut self, value: u32) -> Self {
50443 self.inner.attachment_description_request_count = value;
50444 self
50445 }
50446 #[inline]
50447 pub fn descriptor_set_layout_binding_request_count(mut self, value: u32) -> Self {
50448 self.inner.descriptor_set_layout_binding_request_count = value;
50449 self
50450 }
50451 #[inline]
50452 pub fn descriptor_set_layout_binding_limit(mut self, value: u32) -> Self {
50453 self.inner.descriptor_set_layout_binding_limit = value;
50454 self
50455 }
50456 #[inline]
50457 pub fn max_image_view_mip_levels(mut self, value: u32) -> Self {
50458 self.inner.max_image_view_mip_levels = value;
50459 self
50460 }
50461 #[inline]
50462 pub fn max_image_view_array_layers(mut self, value: u32) -> Self {
50463 self.inner.max_image_view_array_layers = value;
50464 self
50465 }
50466 #[inline]
50467 pub fn max_layered_image_view_mip_levels(mut self, value: u32) -> Self {
50468 self.inner.max_layered_image_view_mip_levels = value;
50469 self
50470 }
50471 #[inline]
50472 pub fn max_occlusion_queries_per_pool(mut self, value: u32) -> Self {
50473 self.inner.max_occlusion_queries_per_pool = value;
50474 self
50475 }
50476 #[inline]
50477 pub fn max_pipeline_statistics_queries_per_pool(mut self, value: u32) -> Self {
50478 self.inner.max_pipeline_statistics_queries_per_pool = value;
50479 self
50480 }
50481 #[inline]
50482 pub fn max_timestamp_queries_per_pool(mut self, value: u32) -> Self {
50483 self.inner.max_timestamp_queries_per_pool = value;
50484 self
50485 }
50486 #[inline]
50487 pub fn max_immutable_samplers_per_descriptor_set_layout(
50488 mut self,
50489 value: u32,
50490 ) -> Self {
50491 self.inner.max_immutable_samplers_per_descriptor_set_layout = value;
50492 self
50493 }
50494 #[inline]
50496 pub fn push_next<T: ExtendsDeviceObjectReservationCreateInfo>(
50497 mut self,
50498 next: &'a mut T,
50499 ) -> Self {
50500 unsafe {
50501 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50502 (*next_ptr).p_next = self.inner.p_next as *mut _;
50503 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50504 core::ffi::c_void,
50505 >(next_ptr) as *const _;
50506 }
50507 self
50508 }
50509}
50510impl<'a> core::ops::Deref for DeviceObjectReservationCreateInfoBuilder<'a> {
50511 type Target = DeviceObjectReservationCreateInfo;
50512 #[inline]
50513 fn deref(&self) -> &Self::Target {
50514 &self.inner
50515 }
50516}
50517impl<'a> core::ops::DerefMut for DeviceObjectReservationCreateInfoBuilder<'a> {
50518 #[inline]
50519 fn deref_mut(&mut self) -> &mut Self::Target {
50520 &mut self.inner
50521 }
50522}
50523pub struct CommandPoolMemoryReservationCreateInfoBuilder<'a> {
50525 inner: CommandPoolMemoryReservationCreateInfo,
50526 _marker: core::marker::PhantomData<&'a ()>,
50527}
50528impl CommandPoolMemoryReservationCreateInfo {
50529 #[inline]
50531 pub fn builder<'a>() -> CommandPoolMemoryReservationCreateInfoBuilder<'a> {
50532 CommandPoolMemoryReservationCreateInfoBuilder {
50533 inner: CommandPoolMemoryReservationCreateInfo {
50534 s_type: StructureType::from_raw(1000298003i32),
50535 ..Default::default()
50536 },
50537 _marker: core::marker::PhantomData,
50538 }
50539 }
50540}
50541impl<'a> CommandPoolMemoryReservationCreateInfoBuilder<'a> {
50542 #[inline]
50543 pub fn command_pool_reserved_size(mut self, value: u64) -> Self {
50544 self.inner.command_pool_reserved_size = value;
50545 self
50546 }
50547 #[inline]
50548 pub fn command_pool_max_command_buffers(mut self, value: u32) -> Self {
50549 self.inner.command_pool_max_command_buffers = value;
50550 self
50551 }
50552 #[inline]
50554 pub fn push_next<T: ExtendsCommandPoolMemoryReservationCreateInfo>(
50555 mut self,
50556 next: &'a mut T,
50557 ) -> Self {
50558 unsafe {
50559 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50560 (*next_ptr).p_next = self.inner.p_next as *mut _;
50561 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50562 core::ffi::c_void,
50563 >(next_ptr) as *const _;
50564 }
50565 self
50566 }
50567}
50568impl<'a> core::ops::Deref for CommandPoolMemoryReservationCreateInfoBuilder<'a> {
50569 type Target = CommandPoolMemoryReservationCreateInfo;
50570 #[inline]
50571 fn deref(&self) -> &Self::Target {
50572 &self.inner
50573 }
50574}
50575impl<'a> core::ops::DerefMut for CommandPoolMemoryReservationCreateInfoBuilder<'a> {
50576 #[inline]
50577 fn deref_mut(&mut self) -> &mut Self::Target {
50578 &mut self.inner
50579 }
50580}
50581pub struct CommandPoolMemoryConsumptionBuilder<'a> {
50583 inner: CommandPoolMemoryConsumption,
50584 _marker: core::marker::PhantomData<&'a ()>,
50585}
50586impl CommandPoolMemoryConsumption {
50587 #[inline]
50589 pub fn builder<'a>() -> CommandPoolMemoryConsumptionBuilder<'a> {
50590 CommandPoolMemoryConsumptionBuilder {
50591 inner: CommandPoolMemoryConsumption {
50592 s_type: StructureType::from_raw(1000298004i32),
50593 ..Default::default()
50594 },
50595 _marker: core::marker::PhantomData,
50596 }
50597 }
50598}
50599impl<'a> CommandPoolMemoryConsumptionBuilder<'a> {
50600 #[inline]
50601 pub fn command_pool_allocated(mut self, value: u64) -> Self {
50602 self.inner.command_pool_allocated = value;
50603 self
50604 }
50605 #[inline]
50606 pub fn command_pool_reserved_size(mut self, value: u64) -> Self {
50607 self.inner.command_pool_reserved_size = value;
50608 self
50609 }
50610 #[inline]
50611 pub fn command_buffer_allocated(mut self, value: u64) -> Self {
50612 self.inner.command_buffer_allocated = value;
50613 self
50614 }
50615}
50616impl<'a> core::ops::Deref for CommandPoolMemoryConsumptionBuilder<'a> {
50617 type Target = CommandPoolMemoryConsumption;
50618 #[inline]
50619 fn deref(&self) -> &Self::Target {
50620 &self.inner
50621 }
50622}
50623impl<'a> core::ops::DerefMut for CommandPoolMemoryConsumptionBuilder<'a> {
50624 #[inline]
50625 fn deref_mut(&mut self) -> &mut Self::Target {
50626 &mut self.inner
50627 }
50628}
50629pub struct PhysicalDeviceVulkanSC10FeaturesBuilder<'a> {
50631 inner: PhysicalDeviceVulkanSC10Features,
50632 _marker: core::marker::PhantomData<&'a ()>,
50633}
50634impl PhysicalDeviceVulkanSC10Features {
50635 #[inline]
50637 pub fn builder<'a>() -> PhysicalDeviceVulkanSC10FeaturesBuilder<'a> {
50638 PhysicalDeviceVulkanSC10FeaturesBuilder {
50639 inner: PhysicalDeviceVulkanSC10Features {
50640 s_type: StructureType::from_raw(1000298000i32),
50641 ..Default::default()
50642 },
50643 _marker: core::marker::PhantomData,
50644 }
50645 }
50646}
50647impl<'a> PhysicalDeviceVulkanSC10FeaturesBuilder<'a> {
50648 #[inline]
50649 pub fn shader_atomic_instructions(mut self, value: bool) -> Self {
50650 self.inner.shader_atomic_instructions = value as u32;
50651 self
50652 }
50653 #[inline]
50655 pub fn push_next<T: ExtendsPhysicalDeviceVulkanSC10Features>(
50656 mut self,
50657 next: &'a mut T,
50658 ) -> Self {
50659 unsafe {
50660 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50661 (*next_ptr).p_next = self.inner.p_next as *mut _;
50662 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50663 core::ffi::c_void,
50664 >(next_ptr);
50665 }
50666 self
50667 }
50668}
50669impl<'a> core::ops::Deref for PhysicalDeviceVulkanSC10FeaturesBuilder<'a> {
50670 type Target = PhysicalDeviceVulkanSC10Features;
50671 #[inline]
50672 fn deref(&self) -> &Self::Target {
50673 &self.inner
50674 }
50675}
50676impl<'a> core::ops::DerefMut for PhysicalDeviceVulkanSC10FeaturesBuilder<'a> {
50677 #[inline]
50678 fn deref_mut(&mut self) -> &mut Self::Target {
50679 &mut self.inner
50680 }
50681}
50682pub struct PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder<'a> {
50684 inner: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT,
50685 _marker: core::marker::PhantomData<&'a ()>,
50686}
50687impl PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
50688 #[inline]
50690 pub fn builder<'a>() -> PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder<
50691 'a,
50692 > {
50693 PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder {
50694 inner: PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
50695 s_type: StructureType::from_raw(1000382000i32),
50696 ..Default::default()
50697 },
50698 _marker: core::marker::PhantomData,
50699 }
50700 }
50701}
50702impl<'a> PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder<'a> {
50703 #[inline]
50704 pub fn primitives_generated_query(mut self, value: bool) -> Self {
50705 self.inner.primitives_generated_query = value as u32;
50706 self
50707 }
50708 #[inline]
50709 pub fn primitives_generated_query_with_rasterizer_discard(
50710 mut self,
50711 value: bool,
50712 ) -> Self {
50713 self.inner.primitives_generated_query_with_rasterizer_discard = value as u32;
50714 self
50715 }
50716 #[inline]
50717 pub fn primitives_generated_query_with_non_zero_streams(
50718 mut self,
50719 value: bool,
50720 ) -> Self {
50721 self.inner.primitives_generated_query_with_non_zero_streams = value as u32;
50722 self
50723 }
50724 #[inline]
50726 pub fn push_next<T: ExtendsPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>(
50727 mut self,
50728 next: &'a mut T,
50729 ) -> Self {
50730 unsafe {
50731 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50732 (*next_ptr).p_next = self.inner.p_next as *mut _;
50733 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50734 core::ffi::c_void,
50735 >(next_ptr);
50736 }
50737 self
50738 }
50739}
50740impl<'a> core::ops::Deref
50741for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder<'a> {
50742 type Target = PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
50743 #[inline]
50744 fn deref(&self) -> &Self::Target {
50745 &self.inner
50746 }
50747}
50748impl<'a> core::ops::DerefMut
50749for PhysicalDevicePrimitivesGeneratedQueryFeaturesEXTBuilder<'a> {
50750 #[inline]
50751 fn deref_mut(&mut self) -> &mut Self::Target {
50752 &mut self.inner
50753 }
50754}
50755pub struct PhysicalDeviceLegacyDitheringFeaturesEXTBuilder<'a> {
50757 inner: PhysicalDeviceLegacyDitheringFeaturesEXT,
50758 _marker: core::marker::PhantomData<&'a ()>,
50759}
50760impl PhysicalDeviceLegacyDitheringFeaturesEXT {
50761 #[inline]
50763 pub fn builder<'a>() -> PhysicalDeviceLegacyDitheringFeaturesEXTBuilder<'a> {
50764 PhysicalDeviceLegacyDitheringFeaturesEXTBuilder {
50765 inner: PhysicalDeviceLegacyDitheringFeaturesEXT {
50766 s_type: StructureType::from_raw(1000465000i32),
50767 ..Default::default()
50768 },
50769 _marker: core::marker::PhantomData,
50770 }
50771 }
50772}
50773impl<'a> PhysicalDeviceLegacyDitheringFeaturesEXTBuilder<'a> {
50774 #[inline]
50775 pub fn legacy_dithering(mut self, value: bool) -> Self {
50776 self.inner.legacy_dithering = value as u32;
50777 self
50778 }
50779 #[inline]
50781 pub fn push_next<T: ExtendsPhysicalDeviceLegacyDitheringFeaturesEXT>(
50782 mut self,
50783 next: &'a mut T,
50784 ) -> Self {
50785 unsafe {
50786 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50787 (*next_ptr).p_next = self.inner.p_next as *mut _;
50788 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50789 core::ffi::c_void,
50790 >(next_ptr);
50791 }
50792 self
50793 }
50794}
50795impl<'a> core::ops::Deref for PhysicalDeviceLegacyDitheringFeaturesEXTBuilder<'a> {
50796 type Target = PhysicalDeviceLegacyDitheringFeaturesEXT;
50797 #[inline]
50798 fn deref(&self) -> &Self::Target {
50799 &self.inner
50800 }
50801}
50802impl<'a> core::ops::DerefMut for PhysicalDeviceLegacyDitheringFeaturesEXTBuilder<'a> {
50803 #[inline]
50804 fn deref_mut(&mut self) -> &mut Self::Target {
50805 &mut self.inner
50806 }
50807}
50808pub struct PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder<'a> {
50810 inner: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT,
50811 _marker: core::marker::PhantomData<&'a ()>,
50812}
50813impl PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
50814 #[inline]
50816 pub fn builder<'a>() -> PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder<
50817 'a,
50818 > {
50819 PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder {
50820 inner: PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
50821 s_type: StructureType::from_raw(1000376000i32),
50822 ..Default::default()
50823 },
50824 _marker: core::marker::PhantomData,
50825 }
50826 }
50827}
50828impl<'a> PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder<'a> {
50829 #[inline]
50830 pub fn multisampled_render_to_single_sampled(mut self, value: bool) -> Self {
50831 self.inner.multisampled_render_to_single_sampled = value as u32;
50832 self
50833 }
50834 #[inline]
50836 pub fn push_next<
50837 T: ExtendsPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT,
50838 >(mut self, next: &'a mut T) -> Self {
50839 unsafe {
50840 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50841 (*next_ptr).p_next = self.inner.p_next as *mut _;
50842 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50843 core::ffi::c_void,
50844 >(next_ptr);
50845 }
50846 self
50847 }
50848}
50849impl<'a> core::ops::Deref
50850for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder<'a> {
50851 type Target = PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
50852 #[inline]
50853 fn deref(&self) -> &Self::Target {
50854 &self.inner
50855 }
50856}
50857impl<'a> core::ops::DerefMut
50858for PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXTBuilder<'a> {
50859 #[inline]
50860 fn deref_mut(&mut self) -> &mut Self::Target {
50861 &mut self.inner
50862 }
50863}
50864pub struct SurfaceCapabilitiesPresentId2KHRBuilder<'a> {
50866 inner: SurfaceCapabilitiesPresentId2KHR,
50867 _marker: core::marker::PhantomData<&'a ()>,
50868}
50869impl SurfaceCapabilitiesPresentId2KHR {
50870 #[inline]
50872 pub fn builder<'a>() -> SurfaceCapabilitiesPresentId2KHRBuilder<'a> {
50873 SurfaceCapabilitiesPresentId2KHRBuilder {
50874 inner: SurfaceCapabilitiesPresentId2KHR {
50875 s_type: StructureType::from_raw(1000479000i32),
50876 ..Default::default()
50877 },
50878 _marker: core::marker::PhantomData,
50879 }
50880 }
50881}
50882impl<'a> SurfaceCapabilitiesPresentId2KHRBuilder<'a> {
50883 #[inline]
50884 pub fn present_id2_supported(mut self, value: bool) -> Self {
50885 self.inner.present_id2_supported = value as u32;
50886 self
50887 }
50888 #[inline]
50890 pub fn push_next<T: ExtendsSurfaceCapabilitiesPresentId2KHR>(
50891 mut self,
50892 next: &'a mut T,
50893 ) -> Self {
50894 unsafe {
50895 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50896 (*next_ptr).p_next = self.inner.p_next as *mut _;
50897 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50898 core::ffi::c_void,
50899 >(next_ptr);
50900 }
50901 self
50902 }
50903}
50904impl<'a> core::ops::Deref for SurfaceCapabilitiesPresentId2KHRBuilder<'a> {
50905 type Target = SurfaceCapabilitiesPresentId2KHR;
50906 #[inline]
50907 fn deref(&self) -> &Self::Target {
50908 &self.inner
50909 }
50910}
50911impl<'a> core::ops::DerefMut for SurfaceCapabilitiesPresentId2KHRBuilder<'a> {
50912 #[inline]
50913 fn deref_mut(&mut self) -> &mut Self::Target {
50914 &mut self.inner
50915 }
50916}
50917pub struct SurfaceCapabilitiesPresentWait2KHRBuilder<'a> {
50919 inner: SurfaceCapabilitiesPresentWait2KHR,
50920 _marker: core::marker::PhantomData<&'a ()>,
50921}
50922impl SurfaceCapabilitiesPresentWait2KHR {
50923 #[inline]
50925 pub fn builder<'a>() -> SurfaceCapabilitiesPresentWait2KHRBuilder<'a> {
50926 SurfaceCapabilitiesPresentWait2KHRBuilder {
50927 inner: SurfaceCapabilitiesPresentWait2KHR {
50928 s_type: StructureType::from_raw(1000480000i32),
50929 ..Default::default()
50930 },
50931 _marker: core::marker::PhantomData,
50932 }
50933 }
50934}
50935impl<'a> SurfaceCapabilitiesPresentWait2KHRBuilder<'a> {
50936 #[inline]
50937 pub fn present_wait2_supported(mut self, value: bool) -> Self {
50938 self.inner.present_wait2_supported = value as u32;
50939 self
50940 }
50941 #[inline]
50943 pub fn push_next<T: ExtendsSurfaceCapabilitiesPresentWait2KHR>(
50944 mut self,
50945 next: &'a mut T,
50946 ) -> Self {
50947 unsafe {
50948 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
50949 (*next_ptr).p_next = self.inner.p_next as *mut _;
50950 self.inner.p_next = <*mut BaseOutStructure>::cast::<
50951 core::ffi::c_void,
50952 >(next_ptr);
50953 }
50954 self
50955 }
50956}
50957impl<'a> core::ops::Deref for SurfaceCapabilitiesPresentWait2KHRBuilder<'a> {
50958 type Target = SurfaceCapabilitiesPresentWait2KHR;
50959 #[inline]
50960 fn deref(&self) -> &Self::Target {
50961 &self.inner
50962 }
50963}
50964impl<'a> core::ops::DerefMut for SurfaceCapabilitiesPresentWait2KHRBuilder<'a> {
50965 #[inline]
50966 fn deref_mut(&mut self) -> &mut Self::Target {
50967 &mut self.inner
50968 }
50969}
50970pub struct SubpassResolvePerformanceQueryEXTBuilder<'a> {
50972 inner: SubpassResolvePerformanceQueryEXT,
50973 _marker: core::marker::PhantomData<&'a ()>,
50974}
50975impl SubpassResolvePerformanceQueryEXT {
50976 #[inline]
50978 pub fn builder<'a>() -> SubpassResolvePerformanceQueryEXTBuilder<'a> {
50979 SubpassResolvePerformanceQueryEXTBuilder {
50980 inner: SubpassResolvePerformanceQueryEXT {
50981 s_type: StructureType::from_raw(1000376001i32),
50982 ..Default::default()
50983 },
50984 _marker: core::marker::PhantomData,
50985 }
50986 }
50987}
50988impl<'a> SubpassResolvePerformanceQueryEXTBuilder<'a> {
50989 #[inline]
50990 pub fn optimal(mut self, value: bool) -> Self {
50991 self.inner.optimal = value as u32;
50992 self
50993 }
50994}
50995impl<'a> core::ops::Deref for SubpassResolvePerformanceQueryEXTBuilder<'a> {
50996 type Target = SubpassResolvePerformanceQueryEXT;
50997 #[inline]
50998 fn deref(&self) -> &Self::Target {
50999 &self.inner
51000 }
51001}
51002impl<'a> core::ops::DerefMut for SubpassResolvePerformanceQueryEXTBuilder<'a> {
51003 #[inline]
51004 fn deref_mut(&mut self) -> &mut Self::Target {
51005 &mut self.inner
51006 }
51007}
51008pub struct MultisampledRenderToSingleSampledInfoEXTBuilder<'a> {
51010 inner: MultisampledRenderToSingleSampledInfoEXT,
51011 _marker: core::marker::PhantomData<&'a ()>,
51012}
51013impl MultisampledRenderToSingleSampledInfoEXT {
51014 #[inline]
51016 pub fn builder<'a>() -> MultisampledRenderToSingleSampledInfoEXTBuilder<'a> {
51017 MultisampledRenderToSingleSampledInfoEXTBuilder {
51018 inner: MultisampledRenderToSingleSampledInfoEXT {
51019 s_type: StructureType::from_raw(1000376002i32),
51020 ..Default::default()
51021 },
51022 _marker: core::marker::PhantomData,
51023 }
51024 }
51025}
51026impl<'a> MultisampledRenderToSingleSampledInfoEXTBuilder<'a> {
51027 #[inline]
51028 pub fn multisampled_render_to_single_sampled_enable(mut self, value: bool) -> Self {
51029 self.inner.multisampled_render_to_single_sampled_enable = value as u32;
51030 self
51031 }
51032 #[inline]
51033 pub fn rasterization_samples(mut self, value: SampleCountFlagBits) -> Self {
51034 self.inner.rasterization_samples = value;
51035 self
51036 }
51037 #[inline]
51039 pub fn push_next<T: ExtendsMultisampledRenderToSingleSampledInfoEXT>(
51040 mut self,
51041 next: &'a mut T,
51042 ) -> Self {
51043 unsafe {
51044 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51045 (*next_ptr).p_next = self.inner.p_next as *mut _;
51046 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51047 core::ffi::c_void,
51048 >(next_ptr) as *const _;
51049 }
51050 self
51051 }
51052}
51053impl<'a> core::ops::Deref for MultisampledRenderToSingleSampledInfoEXTBuilder<'a> {
51054 type Target = MultisampledRenderToSingleSampledInfoEXT;
51055 #[inline]
51056 fn deref(&self) -> &Self::Target {
51057 &self.inner
51058 }
51059}
51060impl<'a> core::ops::DerefMut for MultisampledRenderToSingleSampledInfoEXTBuilder<'a> {
51061 #[inline]
51062 fn deref_mut(&mut self) -> &mut Self::Target {
51063 &mut self.inner
51064 }
51065}
51066pub struct PhysicalDevicePipelineProtectedAccessFeaturesBuilder<'a> {
51068 inner: PhysicalDevicePipelineProtectedAccessFeatures,
51069 _marker: core::marker::PhantomData<&'a ()>,
51070}
51071impl PhysicalDevicePipelineProtectedAccessFeatures {
51072 #[inline]
51074 pub fn builder<'a>() -> PhysicalDevicePipelineProtectedAccessFeaturesBuilder<'a> {
51075 PhysicalDevicePipelineProtectedAccessFeaturesBuilder {
51076 inner: PhysicalDevicePipelineProtectedAccessFeatures {
51077 s_type: StructureType::from_raw(1000466000i32),
51078 ..Default::default()
51079 },
51080 _marker: core::marker::PhantomData,
51081 }
51082 }
51083}
51084impl<'a> PhysicalDevicePipelineProtectedAccessFeaturesBuilder<'a> {
51085 #[inline]
51086 pub fn pipeline_protected_access(mut self, value: bool) -> Self {
51087 self.inner.pipeline_protected_access = value as u32;
51088 self
51089 }
51090 #[inline]
51092 pub fn push_next<T: ExtendsPhysicalDevicePipelineProtectedAccessFeatures>(
51093 mut self,
51094 next: &'a mut T,
51095 ) -> Self {
51096 unsafe {
51097 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51098 (*next_ptr).p_next = self.inner.p_next as *mut _;
51099 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51100 core::ffi::c_void,
51101 >(next_ptr);
51102 }
51103 self
51104 }
51105}
51106impl<'a> core::ops::Deref for PhysicalDevicePipelineProtectedAccessFeaturesBuilder<'a> {
51107 type Target = PhysicalDevicePipelineProtectedAccessFeatures;
51108 #[inline]
51109 fn deref(&self) -> &Self::Target {
51110 &self.inner
51111 }
51112}
51113impl<'a> core::ops::DerefMut
51114for PhysicalDevicePipelineProtectedAccessFeaturesBuilder<'a> {
51115 #[inline]
51116 fn deref_mut(&mut self) -> &mut Self::Target {
51117 &mut self.inner
51118 }
51119}
51120pub struct QueueFamilyVideoPropertiesKHRBuilder<'a> {
51122 inner: QueueFamilyVideoPropertiesKHR,
51123 _marker: core::marker::PhantomData<&'a ()>,
51124}
51125impl QueueFamilyVideoPropertiesKHR {
51126 #[inline]
51128 pub fn builder<'a>() -> QueueFamilyVideoPropertiesKHRBuilder<'a> {
51129 QueueFamilyVideoPropertiesKHRBuilder {
51130 inner: QueueFamilyVideoPropertiesKHR {
51131 s_type: StructureType::from_raw(1000023012i32),
51132 ..Default::default()
51133 },
51134 _marker: core::marker::PhantomData,
51135 }
51136 }
51137}
51138impl<'a> QueueFamilyVideoPropertiesKHRBuilder<'a> {
51139 #[inline]
51140 pub fn video_codec_operations(mut self, value: VideoCodecOperationFlagsKHR) -> Self {
51141 self.inner.video_codec_operations = value;
51142 self
51143 }
51144}
51145impl<'a> core::ops::Deref for QueueFamilyVideoPropertiesKHRBuilder<'a> {
51146 type Target = QueueFamilyVideoPropertiesKHR;
51147 #[inline]
51148 fn deref(&self) -> &Self::Target {
51149 &self.inner
51150 }
51151}
51152impl<'a> core::ops::DerefMut for QueueFamilyVideoPropertiesKHRBuilder<'a> {
51153 #[inline]
51154 fn deref_mut(&mut self) -> &mut Self::Target {
51155 &mut self.inner
51156 }
51157}
51158pub struct QueueFamilyQueryResultStatusPropertiesKHRBuilder<'a> {
51160 inner: QueueFamilyQueryResultStatusPropertiesKHR,
51161 _marker: core::marker::PhantomData<&'a ()>,
51162}
51163impl QueueFamilyQueryResultStatusPropertiesKHR {
51164 #[inline]
51166 pub fn builder<'a>() -> QueueFamilyQueryResultStatusPropertiesKHRBuilder<'a> {
51167 QueueFamilyQueryResultStatusPropertiesKHRBuilder {
51168 inner: QueueFamilyQueryResultStatusPropertiesKHR {
51169 s_type: StructureType::from_raw(1000023016i32),
51170 ..Default::default()
51171 },
51172 _marker: core::marker::PhantomData,
51173 }
51174 }
51175}
51176impl<'a> QueueFamilyQueryResultStatusPropertiesKHRBuilder<'a> {
51177 #[inline]
51178 pub fn query_result_status_support(mut self, value: bool) -> Self {
51179 self.inner.query_result_status_support = value as u32;
51180 self
51181 }
51182}
51183impl<'a> core::ops::Deref for QueueFamilyQueryResultStatusPropertiesKHRBuilder<'a> {
51184 type Target = QueueFamilyQueryResultStatusPropertiesKHR;
51185 #[inline]
51186 fn deref(&self) -> &Self::Target {
51187 &self.inner
51188 }
51189}
51190impl<'a> core::ops::DerefMut for QueueFamilyQueryResultStatusPropertiesKHRBuilder<'a> {
51191 #[inline]
51192 fn deref_mut(&mut self) -> &mut Self::Target {
51193 &mut self.inner
51194 }
51195}
51196pub struct VideoProfileListInfoKHRBuilder<'a> {
51198 inner: VideoProfileListInfoKHR,
51199 _marker: core::marker::PhantomData<&'a ()>,
51200}
51201impl VideoProfileListInfoKHR {
51202 #[inline]
51204 pub fn builder<'a>() -> VideoProfileListInfoKHRBuilder<'a> {
51205 VideoProfileListInfoKHRBuilder {
51206 inner: VideoProfileListInfoKHR {
51207 s_type: StructureType::from_raw(1000023013i32),
51208 ..Default::default()
51209 },
51210 _marker: core::marker::PhantomData,
51211 }
51212 }
51213}
51214impl<'a> VideoProfileListInfoKHRBuilder<'a> {
51215 #[inline]
51216 pub fn profiles(mut self, slice: &'a [VideoProfileInfoKHR]) -> Self {
51217 self.inner.profile_count = slice.len() as u32;
51218 self.inner.p_profiles = slice.as_ptr();
51219 self
51220 }
51221 #[inline]
51223 pub fn push_next<T: ExtendsVideoProfileListInfoKHR>(
51224 mut self,
51225 next: &'a mut T,
51226 ) -> Self {
51227 unsafe {
51228 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51229 (*next_ptr).p_next = self.inner.p_next as *mut _;
51230 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51231 core::ffi::c_void,
51232 >(next_ptr) as *const _;
51233 }
51234 self
51235 }
51236}
51237impl<'a> core::ops::Deref for VideoProfileListInfoKHRBuilder<'a> {
51238 type Target = VideoProfileListInfoKHR;
51239 #[inline]
51240 fn deref(&self) -> &Self::Target {
51241 &self.inner
51242 }
51243}
51244impl<'a> core::ops::DerefMut for VideoProfileListInfoKHRBuilder<'a> {
51245 #[inline]
51246 fn deref_mut(&mut self) -> &mut Self::Target {
51247 &mut self.inner
51248 }
51249}
51250pub struct PhysicalDeviceVideoFormatInfoKHRBuilder<'a> {
51252 inner: PhysicalDeviceVideoFormatInfoKHR,
51253 _marker: core::marker::PhantomData<&'a ()>,
51254}
51255impl PhysicalDeviceVideoFormatInfoKHR {
51256 #[inline]
51258 pub fn builder<'a>() -> PhysicalDeviceVideoFormatInfoKHRBuilder<'a> {
51259 PhysicalDeviceVideoFormatInfoKHRBuilder {
51260 inner: PhysicalDeviceVideoFormatInfoKHR {
51261 s_type: StructureType::from_raw(1000023014i32),
51262 ..Default::default()
51263 },
51264 _marker: core::marker::PhantomData,
51265 }
51266 }
51267}
51268impl<'a> PhysicalDeviceVideoFormatInfoKHRBuilder<'a> {
51269 #[inline]
51270 pub fn image_usage(mut self, value: ImageUsageFlags) -> Self {
51271 self.inner.image_usage = value;
51272 self
51273 }
51274 #[inline]
51276 pub fn push_next<T: ExtendsPhysicalDeviceVideoFormatInfoKHR>(
51277 mut self,
51278 next: &'a mut T,
51279 ) -> Self {
51280 unsafe {
51281 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51282 (*next_ptr).p_next = self.inner.p_next as *mut _;
51283 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51284 core::ffi::c_void,
51285 >(next_ptr) as *const _;
51286 }
51287 self
51288 }
51289}
51290impl<'a> core::ops::Deref for PhysicalDeviceVideoFormatInfoKHRBuilder<'a> {
51291 type Target = PhysicalDeviceVideoFormatInfoKHR;
51292 #[inline]
51293 fn deref(&self) -> &Self::Target {
51294 &self.inner
51295 }
51296}
51297impl<'a> core::ops::DerefMut for PhysicalDeviceVideoFormatInfoKHRBuilder<'a> {
51298 #[inline]
51299 fn deref_mut(&mut self) -> &mut Self::Target {
51300 &mut self.inner
51301 }
51302}
51303pub struct VideoFormatPropertiesKHRBuilder<'a> {
51305 inner: VideoFormatPropertiesKHR,
51306 _marker: core::marker::PhantomData<&'a ()>,
51307}
51308impl VideoFormatPropertiesKHR {
51309 #[inline]
51311 pub fn builder<'a>() -> VideoFormatPropertiesKHRBuilder<'a> {
51312 VideoFormatPropertiesKHRBuilder {
51313 inner: VideoFormatPropertiesKHR {
51314 s_type: StructureType::from_raw(1000023015i32),
51315 ..Default::default()
51316 },
51317 _marker: core::marker::PhantomData,
51318 }
51319 }
51320}
51321impl<'a> VideoFormatPropertiesKHRBuilder<'a> {
51322 #[inline]
51323 pub fn format(mut self, value: Format) -> Self {
51324 self.inner.format = value;
51325 self
51326 }
51327 #[inline]
51328 pub fn component_mapping(mut self, value: ComponentMapping) -> Self {
51329 self.inner.component_mapping = value;
51330 self
51331 }
51332 #[inline]
51333 pub fn image_create_flags(mut self, value: ImageCreateFlags) -> Self {
51334 self.inner.image_create_flags = value;
51335 self
51336 }
51337 #[inline]
51338 pub fn image_type(mut self, value: ImageType) -> Self {
51339 self.inner.image_type = value;
51340 self
51341 }
51342 #[inline]
51343 pub fn image_tiling(mut self, value: ImageTiling) -> Self {
51344 self.inner.image_tiling = value;
51345 self
51346 }
51347 #[inline]
51348 pub fn image_usage_flags(mut self, value: ImageUsageFlags) -> Self {
51349 self.inner.image_usage_flags = value;
51350 self
51351 }
51352}
51353impl<'a> core::ops::Deref for VideoFormatPropertiesKHRBuilder<'a> {
51354 type Target = VideoFormatPropertiesKHR;
51355 #[inline]
51356 fn deref(&self) -> &Self::Target {
51357 &self.inner
51358 }
51359}
51360impl<'a> core::ops::DerefMut for VideoFormatPropertiesKHRBuilder<'a> {
51361 #[inline]
51362 fn deref_mut(&mut self) -> &mut Self::Target {
51363 &mut self.inner
51364 }
51365}
51366pub struct VideoEncodeQuantizationMapCapabilitiesKHRBuilder<'a> {
51368 inner: VideoEncodeQuantizationMapCapabilitiesKHR,
51369 _marker: core::marker::PhantomData<&'a ()>,
51370}
51371impl VideoEncodeQuantizationMapCapabilitiesKHR {
51372 #[inline]
51374 pub fn builder<'a>() -> VideoEncodeQuantizationMapCapabilitiesKHRBuilder<'a> {
51375 VideoEncodeQuantizationMapCapabilitiesKHRBuilder {
51376 inner: VideoEncodeQuantizationMapCapabilitiesKHR {
51377 s_type: StructureType::from_raw(1000553000i32),
51378 ..Default::default()
51379 },
51380 _marker: core::marker::PhantomData,
51381 }
51382 }
51383}
51384impl<'a> VideoEncodeQuantizationMapCapabilitiesKHRBuilder<'a> {
51385 #[inline]
51386 pub fn max_quantization_map_extent(mut self, value: Extent2D) -> Self {
51387 self.inner.max_quantization_map_extent = value;
51388 self
51389 }
51390}
51391impl<'a> core::ops::Deref for VideoEncodeQuantizationMapCapabilitiesKHRBuilder<'a> {
51392 type Target = VideoEncodeQuantizationMapCapabilitiesKHR;
51393 #[inline]
51394 fn deref(&self) -> &Self::Target {
51395 &self.inner
51396 }
51397}
51398impl<'a> core::ops::DerefMut for VideoEncodeQuantizationMapCapabilitiesKHRBuilder<'a> {
51399 #[inline]
51400 fn deref_mut(&mut self) -> &mut Self::Target {
51401 &mut self.inner
51402 }
51403}
51404pub struct VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder<'a> {
51406 inner: VideoEncodeH264QuantizationMapCapabilitiesKHR,
51407 _marker: core::marker::PhantomData<&'a ()>,
51408}
51409impl VideoEncodeH264QuantizationMapCapabilitiesKHR {
51410 #[inline]
51412 pub fn builder<'a>() -> VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder<'a> {
51413 VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder {
51414 inner: VideoEncodeH264QuantizationMapCapabilitiesKHR {
51415 s_type: StructureType::from_raw(1000553003i32),
51416 ..Default::default()
51417 },
51418 _marker: core::marker::PhantomData,
51419 }
51420 }
51421}
51422impl<'a> VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder<'a> {
51423 #[inline]
51424 pub fn min_qp_delta(mut self, value: i32) -> Self {
51425 self.inner.min_qp_delta = value;
51426 self
51427 }
51428 #[inline]
51429 pub fn max_qp_delta(mut self, value: i32) -> Self {
51430 self.inner.max_qp_delta = value;
51431 self
51432 }
51433}
51434impl<'a> core::ops::Deref for VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder<'a> {
51435 type Target = VideoEncodeH264QuantizationMapCapabilitiesKHR;
51436 #[inline]
51437 fn deref(&self) -> &Self::Target {
51438 &self.inner
51439 }
51440}
51441impl<'a> core::ops::DerefMut
51442for VideoEncodeH264QuantizationMapCapabilitiesKHRBuilder<'a> {
51443 #[inline]
51444 fn deref_mut(&mut self) -> &mut Self::Target {
51445 &mut self.inner
51446 }
51447}
51448pub struct VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder<'a> {
51450 inner: VideoEncodeH265QuantizationMapCapabilitiesKHR,
51451 _marker: core::marker::PhantomData<&'a ()>,
51452}
51453impl VideoEncodeH265QuantizationMapCapabilitiesKHR {
51454 #[inline]
51456 pub fn builder<'a>() -> VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder<'a> {
51457 VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder {
51458 inner: VideoEncodeH265QuantizationMapCapabilitiesKHR {
51459 s_type: StructureType::from_raw(1000553004i32),
51460 ..Default::default()
51461 },
51462 _marker: core::marker::PhantomData,
51463 }
51464 }
51465}
51466impl<'a> VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder<'a> {
51467 #[inline]
51468 pub fn min_qp_delta(mut self, value: i32) -> Self {
51469 self.inner.min_qp_delta = value;
51470 self
51471 }
51472 #[inline]
51473 pub fn max_qp_delta(mut self, value: i32) -> Self {
51474 self.inner.max_qp_delta = value;
51475 self
51476 }
51477}
51478impl<'a> core::ops::Deref for VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder<'a> {
51479 type Target = VideoEncodeH265QuantizationMapCapabilitiesKHR;
51480 #[inline]
51481 fn deref(&self) -> &Self::Target {
51482 &self.inner
51483 }
51484}
51485impl<'a> core::ops::DerefMut
51486for VideoEncodeH265QuantizationMapCapabilitiesKHRBuilder<'a> {
51487 #[inline]
51488 fn deref_mut(&mut self) -> &mut Self::Target {
51489 &mut self.inner
51490 }
51491}
51492pub struct VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder<'a> {
51494 inner: VideoEncodeAV1QuantizationMapCapabilitiesKHR,
51495 _marker: core::marker::PhantomData<&'a ()>,
51496}
51497impl VideoEncodeAV1QuantizationMapCapabilitiesKHR {
51498 #[inline]
51500 pub fn builder<'a>() -> VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder<'a> {
51501 VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder {
51502 inner: VideoEncodeAV1QuantizationMapCapabilitiesKHR {
51503 s_type: StructureType::from_raw(1000553007i32),
51504 ..Default::default()
51505 },
51506 _marker: core::marker::PhantomData,
51507 }
51508 }
51509}
51510impl<'a> VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder<'a> {
51511 #[inline]
51512 pub fn min_q_index_delta(mut self, value: i32) -> Self {
51513 self.inner.min_q_index_delta = value;
51514 self
51515 }
51516 #[inline]
51517 pub fn max_q_index_delta(mut self, value: i32) -> Self {
51518 self.inner.max_q_index_delta = value;
51519 self
51520 }
51521}
51522impl<'a> core::ops::Deref for VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder<'a> {
51523 type Target = VideoEncodeAV1QuantizationMapCapabilitiesKHR;
51524 #[inline]
51525 fn deref(&self) -> &Self::Target {
51526 &self.inner
51527 }
51528}
51529impl<'a> core::ops::DerefMut
51530for VideoEncodeAV1QuantizationMapCapabilitiesKHRBuilder<'a> {
51531 #[inline]
51532 fn deref_mut(&mut self) -> &mut Self::Target {
51533 &mut self.inner
51534 }
51535}
51536pub struct VideoFormatQuantizationMapPropertiesKHRBuilder<'a> {
51538 inner: VideoFormatQuantizationMapPropertiesKHR,
51539 _marker: core::marker::PhantomData<&'a ()>,
51540}
51541impl VideoFormatQuantizationMapPropertiesKHR {
51542 #[inline]
51544 pub fn builder<'a>() -> VideoFormatQuantizationMapPropertiesKHRBuilder<'a> {
51545 VideoFormatQuantizationMapPropertiesKHRBuilder {
51546 inner: VideoFormatQuantizationMapPropertiesKHR {
51547 s_type: StructureType::from_raw(1000553001i32),
51548 ..Default::default()
51549 },
51550 _marker: core::marker::PhantomData,
51551 }
51552 }
51553}
51554impl<'a> VideoFormatQuantizationMapPropertiesKHRBuilder<'a> {
51555 #[inline]
51556 pub fn quantization_map_texel_size(mut self, value: Extent2D) -> Self {
51557 self.inner.quantization_map_texel_size = value;
51558 self
51559 }
51560}
51561impl<'a> core::ops::Deref for VideoFormatQuantizationMapPropertiesKHRBuilder<'a> {
51562 type Target = VideoFormatQuantizationMapPropertiesKHR;
51563 #[inline]
51564 fn deref(&self) -> &Self::Target {
51565 &self.inner
51566 }
51567}
51568impl<'a> core::ops::DerefMut for VideoFormatQuantizationMapPropertiesKHRBuilder<'a> {
51569 #[inline]
51570 fn deref_mut(&mut self) -> &mut Self::Target {
51571 &mut self.inner
51572 }
51573}
51574pub struct VideoFormatH265QuantizationMapPropertiesKHRBuilder<'a> {
51576 inner: VideoFormatH265QuantizationMapPropertiesKHR,
51577 _marker: core::marker::PhantomData<&'a ()>,
51578}
51579impl VideoFormatH265QuantizationMapPropertiesKHR {
51580 #[inline]
51582 pub fn builder<'a>() -> VideoFormatH265QuantizationMapPropertiesKHRBuilder<'a> {
51583 VideoFormatH265QuantizationMapPropertiesKHRBuilder {
51584 inner: VideoFormatH265QuantizationMapPropertiesKHR {
51585 s_type: StructureType::from_raw(1000553006i32),
51586 ..Default::default()
51587 },
51588 _marker: core::marker::PhantomData,
51589 }
51590 }
51591}
51592impl<'a> VideoFormatH265QuantizationMapPropertiesKHRBuilder<'a> {
51593 #[inline]
51594 pub fn compatible_ctb_sizes(
51595 mut self,
51596 value: VideoEncodeH265CtbSizeFlagsKHR,
51597 ) -> Self {
51598 self.inner.compatible_ctb_sizes = value;
51599 self
51600 }
51601}
51602impl<'a> core::ops::Deref for VideoFormatH265QuantizationMapPropertiesKHRBuilder<'a> {
51603 type Target = VideoFormatH265QuantizationMapPropertiesKHR;
51604 #[inline]
51605 fn deref(&self) -> &Self::Target {
51606 &self.inner
51607 }
51608}
51609impl<'a> core::ops::DerefMut for VideoFormatH265QuantizationMapPropertiesKHRBuilder<'a> {
51610 #[inline]
51611 fn deref_mut(&mut self) -> &mut Self::Target {
51612 &mut self.inner
51613 }
51614}
51615pub struct VideoFormatAV1QuantizationMapPropertiesKHRBuilder<'a> {
51617 inner: VideoFormatAV1QuantizationMapPropertiesKHR,
51618 _marker: core::marker::PhantomData<&'a ()>,
51619}
51620impl VideoFormatAV1QuantizationMapPropertiesKHR {
51621 #[inline]
51623 pub fn builder<'a>() -> VideoFormatAV1QuantizationMapPropertiesKHRBuilder<'a> {
51624 VideoFormatAV1QuantizationMapPropertiesKHRBuilder {
51625 inner: VideoFormatAV1QuantizationMapPropertiesKHR {
51626 s_type: StructureType::from_raw(1000553008i32),
51627 ..Default::default()
51628 },
51629 _marker: core::marker::PhantomData,
51630 }
51631 }
51632}
51633impl<'a> VideoFormatAV1QuantizationMapPropertiesKHRBuilder<'a> {
51634 #[inline]
51635 pub fn compatible_superblock_sizes(
51636 mut self,
51637 value: VideoEncodeAV1SuperblockSizeFlagsKHR,
51638 ) -> Self {
51639 self.inner.compatible_superblock_sizes = value;
51640 self
51641 }
51642}
51643impl<'a> core::ops::Deref for VideoFormatAV1QuantizationMapPropertiesKHRBuilder<'a> {
51644 type Target = VideoFormatAV1QuantizationMapPropertiesKHR;
51645 #[inline]
51646 fn deref(&self) -> &Self::Target {
51647 &self.inner
51648 }
51649}
51650impl<'a> core::ops::DerefMut for VideoFormatAV1QuantizationMapPropertiesKHRBuilder<'a> {
51651 #[inline]
51652 fn deref_mut(&mut self) -> &mut Self::Target {
51653 &mut self.inner
51654 }
51655}
51656pub struct VideoProfileInfoKHRBuilder<'a> {
51658 inner: VideoProfileInfoKHR,
51659 _marker: core::marker::PhantomData<&'a ()>,
51660}
51661impl VideoProfileInfoKHR {
51662 #[inline]
51664 pub fn builder<'a>() -> VideoProfileInfoKHRBuilder<'a> {
51665 VideoProfileInfoKHRBuilder {
51666 inner: VideoProfileInfoKHR {
51667 s_type: StructureType::from_raw(1000023000i32),
51668 ..Default::default()
51669 },
51670 _marker: core::marker::PhantomData,
51671 }
51672 }
51673}
51674impl<'a> VideoProfileInfoKHRBuilder<'a> {
51675 #[inline]
51676 pub fn video_codec_operation(
51677 mut self,
51678 value: VideoCodecOperationFlagBitsKHR,
51679 ) -> Self {
51680 self.inner.video_codec_operation = value;
51681 self
51682 }
51683 #[inline]
51684 pub fn chroma_subsampling(mut self, value: VideoChromaSubsamplingFlagsKHR) -> Self {
51685 self.inner.chroma_subsampling = value;
51686 self
51687 }
51688 #[inline]
51689 pub fn luma_bit_depth(mut self, value: VideoComponentBitDepthFlagsKHR) -> Self {
51690 self.inner.luma_bit_depth = value;
51691 self
51692 }
51693 #[inline]
51694 pub fn chroma_bit_depth(mut self, value: VideoComponentBitDepthFlagsKHR) -> Self {
51695 self.inner.chroma_bit_depth = value;
51696 self
51697 }
51698 #[inline]
51700 pub fn push_next<T: ExtendsVideoProfileInfoKHR>(mut self, next: &'a mut T) -> Self {
51701 unsafe {
51702 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51703 (*next_ptr).p_next = self.inner.p_next as *mut _;
51704 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51705 core::ffi::c_void,
51706 >(next_ptr) as *const _;
51707 }
51708 self
51709 }
51710}
51711impl<'a> core::ops::Deref for VideoProfileInfoKHRBuilder<'a> {
51712 type Target = VideoProfileInfoKHR;
51713 #[inline]
51714 fn deref(&self) -> &Self::Target {
51715 &self.inner
51716 }
51717}
51718impl<'a> core::ops::DerefMut for VideoProfileInfoKHRBuilder<'a> {
51719 #[inline]
51720 fn deref_mut(&mut self) -> &mut Self::Target {
51721 &mut self.inner
51722 }
51723}
51724pub struct VideoCapabilitiesKHRBuilder<'a> {
51726 inner: VideoCapabilitiesKHR,
51727 _marker: core::marker::PhantomData<&'a ()>,
51728}
51729impl VideoCapabilitiesKHR {
51730 #[inline]
51732 pub fn builder<'a>() -> VideoCapabilitiesKHRBuilder<'a> {
51733 VideoCapabilitiesKHRBuilder {
51734 inner: VideoCapabilitiesKHR {
51735 s_type: StructureType::from_raw(1000023001i32),
51736 ..Default::default()
51737 },
51738 _marker: core::marker::PhantomData,
51739 }
51740 }
51741}
51742impl<'a> VideoCapabilitiesKHRBuilder<'a> {
51743 #[inline]
51744 pub fn flags(mut self, value: VideoCapabilityFlagsKHR) -> Self {
51745 self.inner.flags = value;
51746 self
51747 }
51748 #[inline]
51749 pub fn min_bitstream_buffer_offset_alignment(mut self, value: u64) -> Self {
51750 self.inner.min_bitstream_buffer_offset_alignment = value;
51751 self
51752 }
51753 #[inline]
51754 pub fn min_bitstream_buffer_size_alignment(mut self, value: u64) -> Self {
51755 self.inner.min_bitstream_buffer_size_alignment = value;
51756 self
51757 }
51758 #[inline]
51759 pub fn picture_access_granularity(mut self, value: Extent2D) -> Self {
51760 self.inner.picture_access_granularity = value;
51761 self
51762 }
51763 #[inline]
51764 pub fn min_coded_extent(mut self, value: Extent2D) -> Self {
51765 self.inner.min_coded_extent = value;
51766 self
51767 }
51768 #[inline]
51769 pub fn max_coded_extent(mut self, value: Extent2D) -> Self {
51770 self.inner.max_coded_extent = value;
51771 self
51772 }
51773 #[inline]
51774 pub fn max_dpb_slots(mut self, value: u32) -> Self {
51775 self.inner.max_dpb_slots = value;
51776 self
51777 }
51778 #[inline]
51779 pub fn max_active_reference_pictures(mut self, value: u32) -> Self {
51780 self.inner.max_active_reference_pictures = value;
51781 self
51782 }
51783 #[inline]
51784 pub fn std_header_version(mut self, value: ExtensionProperties) -> Self {
51785 self.inner.std_header_version = value;
51786 self
51787 }
51788}
51789impl<'a> core::ops::Deref for VideoCapabilitiesKHRBuilder<'a> {
51790 type Target = VideoCapabilitiesKHR;
51791 #[inline]
51792 fn deref(&self) -> &Self::Target {
51793 &self.inner
51794 }
51795}
51796impl<'a> core::ops::DerefMut for VideoCapabilitiesKHRBuilder<'a> {
51797 #[inline]
51798 fn deref_mut(&mut self) -> &mut Self::Target {
51799 &mut self.inner
51800 }
51801}
51802pub struct VideoSessionMemoryRequirementsKHRBuilder<'a> {
51804 inner: VideoSessionMemoryRequirementsKHR,
51805 _marker: core::marker::PhantomData<&'a ()>,
51806}
51807impl VideoSessionMemoryRequirementsKHR {
51808 #[inline]
51810 pub fn builder<'a>() -> VideoSessionMemoryRequirementsKHRBuilder<'a> {
51811 VideoSessionMemoryRequirementsKHRBuilder {
51812 inner: VideoSessionMemoryRequirementsKHR {
51813 s_type: StructureType::from_raw(1000023003i32),
51814 ..Default::default()
51815 },
51816 _marker: core::marker::PhantomData,
51817 }
51818 }
51819}
51820impl<'a> VideoSessionMemoryRequirementsKHRBuilder<'a> {
51821 #[inline]
51822 pub fn memory_bind_index(mut self, value: u32) -> Self {
51823 self.inner.memory_bind_index = value;
51824 self
51825 }
51826 #[inline]
51827 pub fn memory_requirements(mut self, value: MemoryRequirements) -> Self {
51828 self.inner.memory_requirements = value;
51829 self
51830 }
51831}
51832impl<'a> core::ops::Deref for VideoSessionMemoryRequirementsKHRBuilder<'a> {
51833 type Target = VideoSessionMemoryRequirementsKHR;
51834 #[inline]
51835 fn deref(&self) -> &Self::Target {
51836 &self.inner
51837 }
51838}
51839impl<'a> core::ops::DerefMut for VideoSessionMemoryRequirementsKHRBuilder<'a> {
51840 #[inline]
51841 fn deref_mut(&mut self) -> &mut Self::Target {
51842 &mut self.inner
51843 }
51844}
51845pub struct BindVideoSessionMemoryInfoKHRBuilder<'a> {
51847 inner: BindVideoSessionMemoryInfoKHR,
51848 _marker: core::marker::PhantomData<&'a ()>,
51849}
51850impl BindVideoSessionMemoryInfoKHR {
51851 #[inline]
51853 pub fn builder<'a>() -> BindVideoSessionMemoryInfoKHRBuilder<'a> {
51854 BindVideoSessionMemoryInfoKHRBuilder {
51855 inner: BindVideoSessionMemoryInfoKHR {
51856 s_type: StructureType::from_raw(1000023004i32),
51857 ..Default::default()
51858 },
51859 _marker: core::marker::PhantomData,
51860 }
51861 }
51862}
51863impl<'a> BindVideoSessionMemoryInfoKHRBuilder<'a> {
51864 #[inline]
51865 pub fn memory_bind_index(mut self, value: u32) -> Self {
51866 self.inner.memory_bind_index = value;
51867 self
51868 }
51869 #[inline]
51870 pub fn memory(mut self, value: DeviceMemory) -> Self {
51871 self.inner.memory = value;
51872 self
51873 }
51874 #[inline]
51875 pub fn memory_offset(mut self, value: u64) -> Self {
51876 self.inner.memory_offset = value;
51877 self
51878 }
51879 #[inline]
51880 pub fn memory_size(mut self, value: u64) -> Self {
51881 self.inner.memory_size = value;
51882 self
51883 }
51884 #[inline]
51886 pub fn push_next<T: ExtendsBindVideoSessionMemoryInfoKHR>(
51887 mut self,
51888 next: &'a mut T,
51889 ) -> Self {
51890 unsafe {
51891 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51892 (*next_ptr).p_next = self.inner.p_next as *mut _;
51893 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51894 core::ffi::c_void,
51895 >(next_ptr) as *const _;
51896 }
51897 self
51898 }
51899}
51900impl<'a> core::ops::Deref for BindVideoSessionMemoryInfoKHRBuilder<'a> {
51901 type Target = BindVideoSessionMemoryInfoKHR;
51902 #[inline]
51903 fn deref(&self) -> &Self::Target {
51904 &self.inner
51905 }
51906}
51907impl<'a> core::ops::DerefMut for BindVideoSessionMemoryInfoKHRBuilder<'a> {
51908 #[inline]
51909 fn deref_mut(&mut self) -> &mut Self::Target {
51910 &mut self.inner
51911 }
51912}
51913pub struct VideoPictureResourceInfoKHRBuilder<'a> {
51915 inner: VideoPictureResourceInfoKHR,
51916 _marker: core::marker::PhantomData<&'a ()>,
51917}
51918impl VideoPictureResourceInfoKHR {
51919 #[inline]
51921 pub fn builder<'a>() -> VideoPictureResourceInfoKHRBuilder<'a> {
51922 VideoPictureResourceInfoKHRBuilder {
51923 inner: VideoPictureResourceInfoKHR {
51924 s_type: StructureType::from_raw(1000023002i32),
51925 ..Default::default()
51926 },
51927 _marker: core::marker::PhantomData,
51928 }
51929 }
51930}
51931impl<'a> VideoPictureResourceInfoKHRBuilder<'a> {
51932 #[inline]
51933 pub fn coded_offset(mut self, value: Offset2D) -> Self {
51934 self.inner.coded_offset = value;
51935 self
51936 }
51937 #[inline]
51938 pub fn coded_extent(mut self, value: Extent2D) -> Self {
51939 self.inner.coded_extent = value;
51940 self
51941 }
51942 #[inline]
51943 pub fn base_array_layer(mut self, value: u32) -> Self {
51944 self.inner.base_array_layer = value;
51945 self
51946 }
51947 #[inline]
51948 pub fn image_view_binding(mut self, value: ImageView) -> Self {
51949 self.inner.image_view_binding = value;
51950 self
51951 }
51952 #[inline]
51954 pub fn push_next<T: ExtendsVideoPictureResourceInfoKHR>(
51955 mut self,
51956 next: &'a mut T,
51957 ) -> Self {
51958 unsafe {
51959 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
51960 (*next_ptr).p_next = self.inner.p_next as *mut _;
51961 self.inner.p_next = <*mut BaseOutStructure>::cast::<
51962 core::ffi::c_void,
51963 >(next_ptr) as *const _;
51964 }
51965 self
51966 }
51967}
51968impl<'a> core::ops::Deref for VideoPictureResourceInfoKHRBuilder<'a> {
51969 type Target = VideoPictureResourceInfoKHR;
51970 #[inline]
51971 fn deref(&self) -> &Self::Target {
51972 &self.inner
51973 }
51974}
51975impl<'a> core::ops::DerefMut for VideoPictureResourceInfoKHRBuilder<'a> {
51976 #[inline]
51977 fn deref_mut(&mut self) -> &mut Self::Target {
51978 &mut self.inner
51979 }
51980}
51981pub struct VideoReferenceSlotInfoKHRBuilder<'a> {
51983 inner: VideoReferenceSlotInfoKHR,
51984 _marker: core::marker::PhantomData<&'a ()>,
51985}
51986impl VideoReferenceSlotInfoKHR {
51987 #[inline]
51989 pub fn builder<'a>() -> VideoReferenceSlotInfoKHRBuilder<'a> {
51990 VideoReferenceSlotInfoKHRBuilder {
51991 inner: VideoReferenceSlotInfoKHR {
51992 s_type: StructureType::from_raw(1000023011i32),
51993 ..Default::default()
51994 },
51995 _marker: core::marker::PhantomData,
51996 }
51997 }
51998}
51999impl<'a> VideoReferenceSlotInfoKHRBuilder<'a> {
52000 #[inline]
52001 pub fn slot_index(mut self, value: i32) -> Self {
52002 self.inner.slot_index = value;
52003 self
52004 }
52005 #[inline]
52006 pub fn picture_resource(mut self, value: &'a VideoPictureResourceInfoKHR) -> Self {
52007 self.inner.p_picture_resource = value;
52008 self
52009 }
52010 #[inline]
52012 pub fn push_next<T: ExtendsVideoReferenceSlotInfoKHR>(
52013 mut self,
52014 next: &'a mut T,
52015 ) -> Self {
52016 unsafe {
52017 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52018 (*next_ptr).p_next = self.inner.p_next as *mut _;
52019 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52020 core::ffi::c_void,
52021 >(next_ptr) as *const _;
52022 }
52023 self
52024 }
52025}
52026impl<'a> core::ops::Deref for VideoReferenceSlotInfoKHRBuilder<'a> {
52027 type Target = VideoReferenceSlotInfoKHR;
52028 #[inline]
52029 fn deref(&self) -> &Self::Target {
52030 &self.inner
52031 }
52032}
52033impl<'a> core::ops::DerefMut for VideoReferenceSlotInfoKHRBuilder<'a> {
52034 #[inline]
52035 fn deref_mut(&mut self) -> &mut Self::Target {
52036 &mut self.inner
52037 }
52038}
52039pub struct VideoDecodeCapabilitiesKHRBuilder<'a> {
52041 inner: VideoDecodeCapabilitiesKHR,
52042 _marker: core::marker::PhantomData<&'a ()>,
52043}
52044impl VideoDecodeCapabilitiesKHR {
52045 #[inline]
52047 pub fn builder<'a>() -> VideoDecodeCapabilitiesKHRBuilder<'a> {
52048 VideoDecodeCapabilitiesKHRBuilder {
52049 inner: VideoDecodeCapabilitiesKHR {
52050 s_type: StructureType::from_raw(1000024001i32),
52051 ..Default::default()
52052 },
52053 _marker: core::marker::PhantomData,
52054 }
52055 }
52056}
52057impl<'a> VideoDecodeCapabilitiesKHRBuilder<'a> {
52058 #[inline]
52059 pub fn flags(mut self, value: VideoDecodeCapabilityFlagsKHR) -> Self {
52060 self.inner.flags = value;
52061 self
52062 }
52063}
52064impl<'a> core::ops::Deref for VideoDecodeCapabilitiesKHRBuilder<'a> {
52065 type Target = VideoDecodeCapabilitiesKHR;
52066 #[inline]
52067 fn deref(&self) -> &Self::Target {
52068 &self.inner
52069 }
52070}
52071impl<'a> core::ops::DerefMut for VideoDecodeCapabilitiesKHRBuilder<'a> {
52072 #[inline]
52073 fn deref_mut(&mut self) -> &mut Self::Target {
52074 &mut self.inner
52075 }
52076}
52077pub struct VideoDecodeUsageInfoKHRBuilder<'a> {
52079 inner: VideoDecodeUsageInfoKHR,
52080 _marker: core::marker::PhantomData<&'a ()>,
52081}
52082impl VideoDecodeUsageInfoKHR {
52083 #[inline]
52085 pub fn builder<'a>() -> VideoDecodeUsageInfoKHRBuilder<'a> {
52086 VideoDecodeUsageInfoKHRBuilder {
52087 inner: VideoDecodeUsageInfoKHR {
52088 s_type: StructureType::from_raw(1000024002i32),
52089 ..Default::default()
52090 },
52091 _marker: core::marker::PhantomData,
52092 }
52093 }
52094}
52095impl<'a> VideoDecodeUsageInfoKHRBuilder<'a> {
52096 #[inline]
52097 pub fn video_usage_hints(mut self, value: VideoDecodeUsageFlagsKHR) -> Self {
52098 self.inner.video_usage_hints = value;
52099 self
52100 }
52101 #[inline]
52103 pub fn push_next<T: ExtendsVideoDecodeUsageInfoKHR>(
52104 mut self,
52105 next: &'a mut T,
52106 ) -> Self {
52107 unsafe {
52108 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52109 (*next_ptr).p_next = self.inner.p_next as *mut _;
52110 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52111 core::ffi::c_void,
52112 >(next_ptr) as *const _;
52113 }
52114 self
52115 }
52116}
52117impl<'a> core::ops::Deref for VideoDecodeUsageInfoKHRBuilder<'a> {
52118 type Target = VideoDecodeUsageInfoKHR;
52119 #[inline]
52120 fn deref(&self) -> &Self::Target {
52121 &self.inner
52122 }
52123}
52124impl<'a> core::ops::DerefMut for VideoDecodeUsageInfoKHRBuilder<'a> {
52125 #[inline]
52126 fn deref_mut(&mut self) -> &mut Self::Target {
52127 &mut self.inner
52128 }
52129}
52130pub struct VideoDecodeInfoKHRBuilder<'a> {
52132 inner: VideoDecodeInfoKHR,
52133 _marker: core::marker::PhantomData<&'a ()>,
52134}
52135impl VideoDecodeInfoKHR {
52136 #[inline]
52138 pub fn builder<'a>() -> VideoDecodeInfoKHRBuilder<'a> {
52139 VideoDecodeInfoKHRBuilder {
52140 inner: VideoDecodeInfoKHR {
52141 s_type: StructureType::from_raw(1000024000i32),
52142 ..Default::default()
52143 },
52144 _marker: core::marker::PhantomData,
52145 }
52146 }
52147}
52148impl<'a> VideoDecodeInfoKHRBuilder<'a> {
52149 #[inline]
52150 pub fn flags(mut self, value: VideoDecodeFlagsKHR) -> Self {
52151 self.inner.flags = value;
52152 self
52153 }
52154 #[inline]
52155 pub fn src_buffer(mut self, value: Buffer) -> Self {
52156 self.inner.src_buffer = value;
52157 self
52158 }
52159 #[inline]
52160 pub fn src_buffer_offset(mut self, value: u64) -> Self {
52161 self.inner.src_buffer_offset = value;
52162 self
52163 }
52164 #[inline]
52165 pub fn src_buffer_range(mut self, value: u64) -> Self {
52166 self.inner.src_buffer_range = value;
52167 self
52168 }
52169 #[inline]
52170 pub fn dst_picture_resource(mut self, value: VideoPictureResourceInfoKHR) -> Self {
52171 self.inner.dst_picture_resource = value;
52172 self
52173 }
52174 #[inline]
52175 pub fn setup_reference_slot(mut self, value: &'a VideoReferenceSlotInfoKHR) -> Self {
52176 self.inner.p_setup_reference_slot = value;
52177 self
52178 }
52179 #[inline]
52180 pub fn reference_slots(mut self, slice: &'a [VideoReferenceSlotInfoKHR]) -> Self {
52181 self.inner.reference_slot_count = slice.len() as u32;
52182 self.inner.p_reference_slots = slice.as_ptr();
52183 self
52184 }
52185 #[inline]
52187 pub fn push_next<T: ExtendsVideoDecodeInfoKHR>(mut self, next: &'a mut T) -> Self {
52188 unsafe {
52189 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52190 (*next_ptr).p_next = self.inner.p_next as *mut _;
52191 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52192 core::ffi::c_void,
52193 >(next_ptr) as *const _;
52194 }
52195 self
52196 }
52197}
52198impl<'a> core::ops::Deref for VideoDecodeInfoKHRBuilder<'a> {
52199 type Target = VideoDecodeInfoKHR;
52200 #[inline]
52201 fn deref(&self) -> &Self::Target {
52202 &self.inner
52203 }
52204}
52205impl<'a> core::ops::DerefMut for VideoDecodeInfoKHRBuilder<'a> {
52206 #[inline]
52207 fn deref_mut(&mut self) -> &mut Self::Target {
52208 &mut self.inner
52209 }
52210}
52211pub struct PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder<'a> {
52213 inner: PhysicalDeviceVideoMaintenance1FeaturesKHR,
52214 _marker: core::marker::PhantomData<&'a ()>,
52215}
52216impl PhysicalDeviceVideoMaintenance1FeaturesKHR {
52217 #[inline]
52219 pub fn builder<'a>() -> PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder<'a> {
52220 PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder {
52221 inner: PhysicalDeviceVideoMaintenance1FeaturesKHR {
52222 s_type: StructureType::from_raw(1000515000i32),
52223 ..Default::default()
52224 },
52225 _marker: core::marker::PhantomData,
52226 }
52227 }
52228}
52229impl<'a> PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder<'a> {
52230 #[inline]
52231 pub fn video_maintenance1(mut self, value: bool) -> Self {
52232 self.inner.video_maintenance1 = value as u32;
52233 self
52234 }
52235 #[inline]
52237 pub fn push_next<T: ExtendsPhysicalDeviceVideoMaintenance1FeaturesKHR>(
52238 mut self,
52239 next: &'a mut T,
52240 ) -> Self {
52241 unsafe {
52242 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52243 (*next_ptr).p_next = self.inner.p_next as *mut _;
52244 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52245 core::ffi::c_void,
52246 >(next_ptr);
52247 }
52248 self
52249 }
52250}
52251impl<'a> core::ops::Deref for PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder<'a> {
52252 type Target = PhysicalDeviceVideoMaintenance1FeaturesKHR;
52253 #[inline]
52254 fn deref(&self) -> &Self::Target {
52255 &self.inner
52256 }
52257}
52258impl<'a> core::ops::DerefMut for PhysicalDeviceVideoMaintenance1FeaturesKHRBuilder<'a> {
52259 #[inline]
52260 fn deref_mut(&mut self) -> &mut Self::Target {
52261 &mut self.inner
52262 }
52263}
52264pub struct PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder<'a> {
52266 inner: PhysicalDeviceVideoMaintenance2FeaturesKHR,
52267 _marker: core::marker::PhantomData<&'a ()>,
52268}
52269impl PhysicalDeviceVideoMaintenance2FeaturesKHR {
52270 #[inline]
52272 pub fn builder<'a>() -> PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder<'a> {
52273 PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder {
52274 inner: PhysicalDeviceVideoMaintenance2FeaturesKHR {
52275 s_type: StructureType::from_raw(1000586000i32),
52276 ..Default::default()
52277 },
52278 _marker: core::marker::PhantomData,
52279 }
52280 }
52281}
52282impl<'a> PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder<'a> {
52283 #[inline]
52284 pub fn video_maintenance2(mut self, value: bool) -> Self {
52285 self.inner.video_maintenance2 = value as u32;
52286 self
52287 }
52288 #[inline]
52290 pub fn push_next<T: ExtendsPhysicalDeviceVideoMaintenance2FeaturesKHR>(
52291 mut self,
52292 next: &'a mut T,
52293 ) -> Self {
52294 unsafe {
52295 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52296 (*next_ptr).p_next = self.inner.p_next as *mut _;
52297 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52298 core::ffi::c_void,
52299 >(next_ptr);
52300 }
52301 self
52302 }
52303}
52304impl<'a> core::ops::Deref for PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder<'a> {
52305 type Target = PhysicalDeviceVideoMaintenance2FeaturesKHR;
52306 #[inline]
52307 fn deref(&self) -> &Self::Target {
52308 &self.inner
52309 }
52310}
52311impl<'a> core::ops::DerefMut for PhysicalDeviceVideoMaintenance2FeaturesKHRBuilder<'a> {
52312 #[inline]
52313 fn deref_mut(&mut self) -> &mut Self::Target {
52314 &mut self.inner
52315 }
52316}
52317pub struct VideoInlineQueryInfoKHRBuilder<'a> {
52319 inner: VideoInlineQueryInfoKHR,
52320 _marker: core::marker::PhantomData<&'a ()>,
52321}
52322impl VideoInlineQueryInfoKHR {
52323 #[inline]
52325 pub fn builder<'a>() -> VideoInlineQueryInfoKHRBuilder<'a> {
52326 VideoInlineQueryInfoKHRBuilder {
52327 inner: VideoInlineQueryInfoKHR {
52328 s_type: StructureType::from_raw(1000515001i32),
52329 ..Default::default()
52330 },
52331 _marker: core::marker::PhantomData,
52332 }
52333 }
52334}
52335impl<'a> VideoInlineQueryInfoKHRBuilder<'a> {
52336 #[inline]
52337 pub fn query_pool(mut self, value: QueryPool) -> Self {
52338 self.inner.query_pool = value;
52339 self
52340 }
52341 #[inline]
52342 pub fn first_query(mut self, value: u32) -> Self {
52343 self.inner.first_query = value;
52344 self
52345 }
52346 #[inline]
52347 pub fn query_count(mut self, value: u32) -> Self {
52348 self.inner.query_count = value;
52349 self
52350 }
52351 #[inline]
52353 pub fn push_next<T: ExtendsVideoInlineQueryInfoKHR>(
52354 mut self,
52355 next: &'a mut T,
52356 ) -> Self {
52357 unsafe {
52358 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52359 (*next_ptr).p_next = self.inner.p_next as *mut _;
52360 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52361 core::ffi::c_void,
52362 >(next_ptr) as *const _;
52363 }
52364 self
52365 }
52366}
52367impl<'a> core::ops::Deref for VideoInlineQueryInfoKHRBuilder<'a> {
52368 type Target = VideoInlineQueryInfoKHR;
52369 #[inline]
52370 fn deref(&self) -> &Self::Target {
52371 &self.inner
52372 }
52373}
52374impl<'a> core::ops::DerefMut for VideoInlineQueryInfoKHRBuilder<'a> {
52375 #[inline]
52376 fn deref_mut(&mut self) -> &mut Self::Target {
52377 &mut self.inner
52378 }
52379}
52380pub struct VideoDecodeH264ProfileInfoKHRBuilder<'a> {
52382 inner: VideoDecodeH264ProfileInfoKHR,
52383 _marker: core::marker::PhantomData<&'a ()>,
52384}
52385impl VideoDecodeH264ProfileInfoKHR {
52386 #[inline]
52388 pub fn builder<'a>() -> VideoDecodeH264ProfileInfoKHRBuilder<'a> {
52389 VideoDecodeH264ProfileInfoKHRBuilder {
52390 inner: VideoDecodeH264ProfileInfoKHR {
52391 s_type: StructureType::from_raw(1000040003i32),
52392 ..Default::default()
52393 },
52394 _marker: core::marker::PhantomData,
52395 }
52396 }
52397}
52398impl<'a> VideoDecodeH264ProfileInfoKHRBuilder<'a> {
52399 #[inline]
52400 pub fn std_profile_idc(mut self, value: StdVideoH264ProfileIdc) -> Self {
52401 self.inner.std_profile_idc = value;
52402 self
52403 }
52404 #[inline]
52405 pub fn picture_layout(
52406 mut self,
52407 value: VideoDecodeH264PictureLayoutFlagBitsKHR,
52408 ) -> Self {
52409 self.inner.picture_layout = value;
52410 self
52411 }
52412 #[inline]
52414 pub fn push_next<T: ExtendsVideoDecodeH264ProfileInfoKHR>(
52415 mut self,
52416 next: &'a mut T,
52417 ) -> Self {
52418 unsafe {
52419 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52420 (*next_ptr).p_next = self.inner.p_next as *mut _;
52421 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52422 core::ffi::c_void,
52423 >(next_ptr) as *const _;
52424 }
52425 self
52426 }
52427}
52428impl<'a> core::ops::Deref for VideoDecodeH264ProfileInfoKHRBuilder<'a> {
52429 type Target = VideoDecodeH264ProfileInfoKHR;
52430 #[inline]
52431 fn deref(&self) -> &Self::Target {
52432 &self.inner
52433 }
52434}
52435impl<'a> core::ops::DerefMut for VideoDecodeH264ProfileInfoKHRBuilder<'a> {
52436 #[inline]
52437 fn deref_mut(&mut self) -> &mut Self::Target {
52438 &mut self.inner
52439 }
52440}
52441pub struct VideoDecodeH264CapabilitiesKHRBuilder<'a> {
52443 inner: VideoDecodeH264CapabilitiesKHR,
52444 _marker: core::marker::PhantomData<&'a ()>,
52445}
52446impl VideoDecodeH264CapabilitiesKHR {
52447 #[inline]
52449 pub fn builder<'a>() -> VideoDecodeH264CapabilitiesKHRBuilder<'a> {
52450 VideoDecodeH264CapabilitiesKHRBuilder {
52451 inner: VideoDecodeH264CapabilitiesKHR {
52452 s_type: StructureType::from_raw(1000040000i32),
52453 ..Default::default()
52454 },
52455 _marker: core::marker::PhantomData,
52456 }
52457 }
52458}
52459impl<'a> VideoDecodeH264CapabilitiesKHRBuilder<'a> {
52460 #[inline]
52461 pub fn max_level_idc(mut self, value: StdVideoH264LevelIdc) -> Self {
52462 self.inner.max_level_idc = value;
52463 self
52464 }
52465 #[inline]
52466 pub fn field_offset_granularity(mut self, value: Offset2D) -> Self {
52467 self.inner.field_offset_granularity = value;
52468 self
52469 }
52470}
52471impl<'a> core::ops::Deref for VideoDecodeH264CapabilitiesKHRBuilder<'a> {
52472 type Target = VideoDecodeH264CapabilitiesKHR;
52473 #[inline]
52474 fn deref(&self) -> &Self::Target {
52475 &self.inner
52476 }
52477}
52478impl<'a> core::ops::DerefMut for VideoDecodeH264CapabilitiesKHRBuilder<'a> {
52479 #[inline]
52480 fn deref_mut(&mut self) -> &mut Self::Target {
52481 &mut self.inner
52482 }
52483}
52484pub struct VideoDecodeH264SessionParametersAddInfoKHRBuilder<'a> {
52486 inner: VideoDecodeH264SessionParametersAddInfoKHR,
52487 _marker: core::marker::PhantomData<&'a ()>,
52488}
52489impl VideoDecodeH264SessionParametersAddInfoKHR {
52490 #[inline]
52492 pub fn builder<'a>() -> VideoDecodeH264SessionParametersAddInfoKHRBuilder<'a> {
52493 VideoDecodeH264SessionParametersAddInfoKHRBuilder {
52494 inner: VideoDecodeH264SessionParametersAddInfoKHR {
52495 s_type: StructureType::from_raw(1000040005i32),
52496 ..Default::default()
52497 },
52498 _marker: core::marker::PhantomData,
52499 }
52500 }
52501}
52502impl<'a> VideoDecodeH264SessionParametersAddInfoKHRBuilder<'a> {
52503 #[inline]
52504 pub fn std_sp_ss(mut self, slice: &'a [StdVideoH264SequenceParameterSet]) -> Self {
52505 self.inner.std_sps_count = slice.len() as u32;
52506 self.inner.p_std_sp_ss = slice.as_ptr();
52507 self
52508 }
52509 #[inline]
52510 pub fn std_pp_ss(mut self, slice: &'a [StdVideoH264PictureParameterSet]) -> Self {
52511 self.inner.std_pps_count = slice.len() as u32;
52512 self.inner.p_std_pp_ss = slice.as_ptr();
52513 self
52514 }
52515 #[inline]
52517 pub fn push_next<T: ExtendsVideoDecodeH264SessionParametersAddInfoKHR>(
52518 mut self,
52519 next: &'a mut T,
52520 ) -> Self {
52521 unsafe {
52522 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52523 (*next_ptr).p_next = self.inner.p_next as *mut _;
52524 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52525 core::ffi::c_void,
52526 >(next_ptr) as *const _;
52527 }
52528 self
52529 }
52530}
52531impl<'a> core::ops::Deref for VideoDecodeH264SessionParametersAddInfoKHRBuilder<'a> {
52532 type Target = VideoDecodeH264SessionParametersAddInfoKHR;
52533 #[inline]
52534 fn deref(&self) -> &Self::Target {
52535 &self.inner
52536 }
52537}
52538impl<'a> core::ops::DerefMut for VideoDecodeH264SessionParametersAddInfoKHRBuilder<'a> {
52539 #[inline]
52540 fn deref_mut(&mut self) -> &mut Self::Target {
52541 &mut self.inner
52542 }
52543}
52544pub struct VideoDecodeH264SessionParametersCreateInfoKHRBuilder<'a> {
52546 inner: VideoDecodeH264SessionParametersCreateInfoKHR,
52547 _marker: core::marker::PhantomData<&'a ()>,
52548}
52549impl VideoDecodeH264SessionParametersCreateInfoKHR {
52550 #[inline]
52552 pub fn builder<'a>() -> VideoDecodeH264SessionParametersCreateInfoKHRBuilder<'a> {
52553 VideoDecodeH264SessionParametersCreateInfoKHRBuilder {
52554 inner: VideoDecodeH264SessionParametersCreateInfoKHR {
52555 s_type: StructureType::from_raw(1000040004i32),
52556 ..Default::default()
52557 },
52558 _marker: core::marker::PhantomData,
52559 }
52560 }
52561}
52562impl<'a> VideoDecodeH264SessionParametersCreateInfoKHRBuilder<'a> {
52563 #[inline]
52564 pub fn max_std_sps_count(mut self, value: u32) -> Self {
52565 self.inner.max_std_sps_count = value;
52566 self
52567 }
52568 #[inline]
52569 pub fn max_std_pps_count(mut self, value: u32) -> Self {
52570 self.inner.max_std_pps_count = value;
52571 self
52572 }
52573 #[inline]
52574 pub fn parameters_add_info(
52575 mut self,
52576 value: &'a VideoDecodeH264SessionParametersAddInfoKHR,
52577 ) -> Self {
52578 self.inner.p_parameters_add_info = value;
52579 self
52580 }
52581 #[inline]
52583 pub fn push_next<T: ExtendsVideoDecodeH264SessionParametersCreateInfoKHR>(
52584 mut self,
52585 next: &'a mut T,
52586 ) -> Self {
52587 unsafe {
52588 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52589 (*next_ptr).p_next = self.inner.p_next as *mut _;
52590 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52591 core::ffi::c_void,
52592 >(next_ptr) as *const _;
52593 }
52594 self
52595 }
52596}
52597impl<'a> core::ops::Deref for VideoDecodeH264SessionParametersCreateInfoKHRBuilder<'a> {
52598 type Target = VideoDecodeH264SessionParametersCreateInfoKHR;
52599 #[inline]
52600 fn deref(&self) -> &Self::Target {
52601 &self.inner
52602 }
52603}
52604impl<'a> core::ops::DerefMut
52605for VideoDecodeH264SessionParametersCreateInfoKHRBuilder<'a> {
52606 #[inline]
52607 fn deref_mut(&mut self) -> &mut Self::Target {
52608 &mut self.inner
52609 }
52610}
52611pub struct VideoDecodeH264InlineSessionParametersInfoKHRBuilder<'a> {
52613 inner: VideoDecodeH264InlineSessionParametersInfoKHR,
52614 _marker: core::marker::PhantomData<&'a ()>,
52615}
52616impl VideoDecodeH264InlineSessionParametersInfoKHR {
52617 #[inline]
52619 pub fn builder<'a>() -> VideoDecodeH264InlineSessionParametersInfoKHRBuilder<'a> {
52620 VideoDecodeH264InlineSessionParametersInfoKHRBuilder {
52621 inner: VideoDecodeH264InlineSessionParametersInfoKHR {
52622 s_type: StructureType::from_raw(1000586001i32),
52623 ..Default::default()
52624 },
52625 _marker: core::marker::PhantomData,
52626 }
52627 }
52628}
52629impl<'a> VideoDecodeH264InlineSessionParametersInfoKHRBuilder<'a> {
52630 #[inline]
52631 pub fn std_sps(mut self, value: *const StdVideoH264SequenceParameterSet) -> Self {
52632 self.inner.p_std_sps = value;
52633 self
52634 }
52635 #[inline]
52636 pub fn std_pps(mut self, value: *const StdVideoH264PictureParameterSet) -> Self {
52637 self.inner.p_std_pps = value;
52638 self
52639 }
52640 #[inline]
52642 pub fn push_next<T: ExtendsVideoDecodeH264InlineSessionParametersInfoKHR>(
52643 mut self,
52644 next: &'a mut T,
52645 ) -> Self {
52646 unsafe {
52647 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52648 (*next_ptr).p_next = self.inner.p_next as *mut _;
52649 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52650 core::ffi::c_void,
52651 >(next_ptr) as *const _;
52652 }
52653 self
52654 }
52655}
52656impl<'a> core::ops::Deref for VideoDecodeH264InlineSessionParametersInfoKHRBuilder<'a> {
52657 type Target = VideoDecodeH264InlineSessionParametersInfoKHR;
52658 #[inline]
52659 fn deref(&self) -> &Self::Target {
52660 &self.inner
52661 }
52662}
52663impl<'a> core::ops::DerefMut
52664for VideoDecodeH264InlineSessionParametersInfoKHRBuilder<'a> {
52665 #[inline]
52666 fn deref_mut(&mut self) -> &mut Self::Target {
52667 &mut self.inner
52668 }
52669}
52670pub struct VideoDecodeH264PictureInfoKHRBuilder<'a> {
52672 inner: VideoDecodeH264PictureInfoKHR,
52673 _marker: core::marker::PhantomData<&'a ()>,
52674}
52675impl VideoDecodeH264PictureInfoKHR {
52676 #[inline]
52678 pub fn builder<'a>() -> VideoDecodeH264PictureInfoKHRBuilder<'a> {
52679 VideoDecodeH264PictureInfoKHRBuilder {
52680 inner: VideoDecodeH264PictureInfoKHR {
52681 s_type: StructureType::from_raw(1000040001i32),
52682 ..Default::default()
52683 },
52684 _marker: core::marker::PhantomData,
52685 }
52686 }
52687}
52688impl<'a> VideoDecodeH264PictureInfoKHRBuilder<'a> {
52689 #[inline]
52690 pub fn std_picture_info(
52691 mut self,
52692 value: *const StdVideoDecodeH264PictureInfo,
52693 ) -> Self {
52694 self.inner.p_std_picture_info = value;
52695 self
52696 }
52697 #[inline]
52698 pub fn slice_offsets(mut self, slice: &'a [u32]) -> Self {
52699 self.inner.slice_count = slice.len() as u32;
52700 self.inner.p_slice_offsets = slice.as_ptr();
52701 self
52702 }
52703 #[inline]
52705 pub fn push_next<T: ExtendsVideoDecodeH264PictureInfoKHR>(
52706 mut self,
52707 next: &'a mut T,
52708 ) -> Self {
52709 unsafe {
52710 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52711 (*next_ptr).p_next = self.inner.p_next as *mut _;
52712 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52713 core::ffi::c_void,
52714 >(next_ptr) as *const _;
52715 }
52716 self
52717 }
52718}
52719impl<'a> core::ops::Deref for VideoDecodeH264PictureInfoKHRBuilder<'a> {
52720 type Target = VideoDecodeH264PictureInfoKHR;
52721 #[inline]
52722 fn deref(&self) -> &Self::Target {
52723 &self.inner
52724 }
52725}
52726impl<'a> core::ops::DerefMut for VideoDecodeH264PictureInfoKHRBuilder<'a> {
52727 #[inline]
52728 fn deref_mut(&mut self) -> &mut Self::Target {
52729 &mut self.inner
52730 }
52731}
52732pub struct VideoDecodeH264DpbSlotInfoKHRBuilder<'a> {
52734 inner: VideoDecodeH264DpbSlotInfoKHR,
52735 _marker: core::marker::PhantomData<&'a ()>,
52736}
52737impl VideoDecodeH264DpbSlotInfoKHR {
52738 #[inline]
52740 pub fn builder<'a>() -> VideoDecodeH264DpbSlotInfoKHRBuilder<'a> {
52741 VideoDecodeH264DpbSlotInfoKHRBuilder {
52742 inner: VideoDecodeH264DpbSlotInfoKHR {
52743 s_type: StructureType::from_raw(1000040006i32),
52744 ..Default::default()
52745 },
52746 _marker: core::marker::PhantomData,
52747 }
52748 }
52749}
52750impl<'a> VideoDecodeH264DpbSlotInfoKHRBuilder<'a> {
52751 #[inline]
52752 pub fn std_reference_info(
52753 mut self,
52754 value: *const StdVideoDecodeH264ReferenceInfo,
52755 ) -> Self {
52756 self.inner.p_std_reference_info = value;
52757 self
52758 }
52759 #[inline]
52761 pub fn push_next<T: ExtendsVideoDecodeH264DpbSlotInfoKHR>(
52762 mut self,
52763 next: &'a mut T,
52764 ) -> Self {
52765 unsafe {
52766 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52767 (*next_ptr).p_next = self.inner.p_next as *mut _;
52768 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52769 core::ffi::c_void,
52770 >(next_ptr) as *const _;
52771 }
52772 self
52773 }
52774}
52775impl<'a> core::ops::Deref for VideoDecodeH264DpbSlotInfoKHRBuilder<'a> {
52776 type Target = VideoDecodeH264DpbSlotInfoKHR;
52777 #[inline]
52778 fn deref(&self) -> &Self::Target {
52779 &self.inner
52780 }
52781}
52782impl<'a> core::ops::DerefMut for VideoDecodeH264DpbSlotInfoKHRBuilder<'a> {
52783 #[inline]
52784 fn deref_mut(&mut self) -> &mut Self::Target {
52785 &mut self.inner
52786 }
52787}
52788pub struct VideoDecodeH265ProfileInfoKHRBuilder<'a> {
52790 inner: VideoDecodeH265ProfileInfoKHR,
52791 _marker: core::marker::PhantomData<&'a ()>,
52792}
52793impl VideoDecodeH265ProfileInfoKHR {
52794 #[inline]
52796 pub fn builder<'a>() -> VideoDecodeH265ProfileInfoKHRBuilder<'a> {
52797 VideoDecodeH265ProfileInfoKHRBuilder {
52798 inner: VideoDecodeH265ProfileInfoKHR {
52799 s_type: StructureType::from_raw(1000187003i32),
52800 ..Default::default()
52801 },
52802 _marker: core::marker::PhantomData,
52803 }
52804 }
52805}
52806impl<'a> VideoDecodeH265ProfileInfoKHRBuilder<'a> {
52807 #[inline]
52808 pub fn std_profile_idc(mut self, value: StdVideoH265ProfileIdc) -> Self {
52809 self.inner.std_profile_idc = value;
52810 self
52811 }
52812 #[inline]
52814 pub fn push_next<T: ExtendsVideoDecodeH265ProfileInfoKHR>(
52815 mut self,
52816 next: &'a mut T,
52817 ) -> Self {
52818 unsafe {
52819 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52820 (*next_ptr).p_next = self.inner.p_next as *mut _;
52821 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52822 core::ffi::c_void,
52823 >(next_ptr) as *const _;
52824 }
52825 self
52826 }
52827}
52828impl<'a> core::ops::Deref for VideoDecodeH265ProfileInfoKHRBuilder<'a> {
52829 type Target = VideoDecodeH265ProfileInfoKHR;
52830 #[inline]
52831 fn deref(&self) -> &Self::Target {
52832 &self.inner
52833 }
52834}
52835impl<'a> core::ops::DerefMut for VideoDecodeH265ProfileInfoKHRBuilder<'a> {
52836 #[inline]
52837 fn deref_mut(&mut self) -> &mut Self::Target {
52838 &mut self.inner
52839 }
52840}
52841pub struct VideoDecodeH265CapabilitiesKHRBuilder<'a> {
52843 inner: VideoDecodeH265CapabilitiesKHR,
52844 _marker: core::marker::PhantomData<&'a ()>,
52845}
52846impl VideoDecodeH265CapabilitiesKHR {
52847 #[inline]
52849 pub fn builder<'a>() -> VideoDecodeH265CapabilitiesKHRBuilder<'a> {
52850 VideoDecodeH265CapabilitiesKHRBuilder {
52851 inner: VideoDecodeH265CapabilitiesKHR {
52852 s_type: StructureType::from_raw(1000187000i32),
52853 ..Default::default()
52854 },
52855 _marker: core::marker::PhantomData,
52856 }
52857 }
52858}
52859impl<'a> VideoDecodeH265CapabilitiesKHRBuilder<'a> {
52860 #[inline]
52861 pub fn max_level_idc(mut self, value: StdVideoH265LevelIdc) -> Self {
52862 self.inner.max_level_idc = value;
52863 self
52864 }
52865}
52866impl<'a> core::ops::Deref for VideoDecodeH265CapabilitiesKHRBuilder<'a> {
52867 type Target = VideoDecodeH265CapabilitiesKHR;
52868 #[inline]
52869 fn deref(&self) -> &Self::Target {
52870 &self.inner
52871 }
52872}
52873impl<'a> core::ops::DerefMut for VideoDecodeH265CapabilitiesKHRBuilder<'a> {
52874 #[inline]
52875 fn deref_mut(&mut self) -> &mut Self::Target {
52876 &mut self.inner
52877 }
52878}
52879pub struct VideoDecodeH265SessionParametersAddInfoKHRBuilder<'a> {
52881 inner: VideoDecodeH265SessionParametersAddInfoKHR,
52882 _marker: core::marker::PhantomData<&'a ()>,
52883}
52884impl VideoDecodeH265SessionParametersAddInfoKHR {
52885 #[inline]
52887 pub fn builder<'a>() -> VideoDecodeH265SessionParametersAddInfoKHRBuilder<'a> {
52888 VideoDecodeH265SessionParametersAddInfoKHRBuilder {
52889 inner: VideoDecodeH265SessionParametersAddInfoKHR {
52890 s_type: StructureType::from_raw(1000187002i32),
52891 ..Default::default()
52892 },
52893 _marker: core::marker::PhantomData,
52894 }
52895 }
52896}
52897impl<'a> VideoDecodeH265SessionParametersAddInfoKHRBuilder<'a> {
52898 #[inline]
52899 pub fn std_vp_ss(mut self, slice: &'a [StdVideoH265VideoParameterSet]) -> Self {
52900 self.inner.std_vps_count = slice.len() as u32;
52901 self.inner.p_std_vp_ss = slice.as_ptr();
52902 self
52903 }
52904 #[inline]
52905 pub fn std_sp_ss(mut self, slice: &'a [StdVideoH265SequenceParameterSet]) -> Self {
52906 self.inner.std_sps_count = slice.len() as u32;
52907 self.inner.p_std_sp_ss = slice.as_ptr();
52908 self
52909 }
52910 #[inline]
52911 pub fn std_pp_ss(mut self, slice: &'a [StdVideoH265PictureParameterSet]) -> Self {
52912 self.inner.std_pps_count = slice.len() as u32;
52913 self.inner.p_std_pp_ss = slice.as_ptr();
52914 self
52915 }
52916 #[inline]
52918 pub fn push_next<T: ExtendsVideoDecodeH265SessionParametersAddInfoKHR>(
52919 mut self,
52920 next: &'a mut T,
52921 ) -> Self {
52922 unsafe {
52923 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52924 (*next_ptr).p_next = self.inner.p_next as *mut _;
52925 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52926 core::ffi::c_void,
52927 >(next_ptr) as *const _;
52928 }
52929 self
52930 }
52931}
52932impl<'a> core::ops::Deref for VideoDecodeH265SessionParametersAddInfoKHRBuilder<'a> {
52933 type Target = VideoDecodeH265SessionParametersAddInfoKHR;
52934 #[inline]
52935 fn deref(&self) -> &Self::Target {
52936 &self.inner
52937 }
52938}
52939impl<'a> core::ops::DerefMut for VideoDecodeH265SessionParametersAddInfoKHRBuilder<'a> {
52940 #[inline]
52941 fn deref_mut(&mut self) -> &mut Self::Target {
52942 &mut self.inner
52943 }
52944}
52945pub struct VideoDecodeH265SessionParametersCreateInfoKHRBuilder<'a> {
52947 inner: VideoDecodeH265SessionParametersCreateInfoKHR,
52948 _marker: core::marker::PhantomData<&'a ()>,
52949}
52950impl VideoDecodeH265SessionParametersCreateInfoKHR {
52951 #[inline]
52953 pub fn builder<'a>() -> VideoDecodeH265SessionParametersCreateInfoKHRBuilder<'a> {
52954 VideoDecodeH265SessionParametersCreateInfoKHRBuilder {
52955 inner: VideoDecodeH265SessionParametersCreateInfoKHR {
52956 s_type: StructureType::from_raw(1000187001i32),
52957 ..Default::default()
52958 },
52959 _marker: core::marker::PhantomData,
52960 }
52961 }
52962}
52963impl<'a> VideoDecodeH265SessionParametersCreateInfoKHRBuilder<'a> {
52964 #[inline]
52965 pub fn max_std_vps_count(mut self, value: u32) -> Self {
52966 self.inner.max_std_vps_count = value;
52967 self
52968 }
52969 #[inline]
52970 pub fn max_std_sps_count(mut self, value: u32) -> Self {
52971 self.inner.max_std_sps_count = value;
52972 self
52973 }
52974 #[inline]
52975 pub fn max_std_pps_count(mut self, value: u32) -> Self {
52976 self.inner.max_std_pps_count = value;
52977 self
52978 }
52979 #[inline]
52980 pub fn parameters_add_info(
52981 mut self,
52982 value: &'a VideoDecodeH265SessionParametersAddInfoKHR,
52983 ) -> Self {
52984 self.inner.p_parameters_add_info = value;
52985 self
52986 }
52987 #[inline]
52989 pub fn push_next<T: ExtendsVideoDecodeH265SessionParametersCreateInfoKHR>(
52990 mut self,
52991 next: &'a mut T,
52992 ) -> Self {
52993 unsafe {
52994 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
52995 (*next_ptr).p_next = self.inner.p_next as *mut _;
52996 self.inner.p_next = <*mut BaseOutStructure>::cast::<
52997 core::ffi::c_void,
52998 >(next_ptr) as *const _;
52999 }
53000 self
53001 }
53002}
53003impl<'a> core::ops::Deref for VideoDecodeH265SessionParametersCreateInfoKHRBuilder<'a> {
53004 type Target = VideoDecodeH265SessionParametersCreateInfoKHR;
53005 #[inline]
53006 fn deref(&self) -> &Self::Target {
53007 &self.inner
53008 }
53009}
53010impl<'a> core::ops::DerefMut
53011for VideoDecodeH265SessionParametersCreateInfoKHRBuilder<'a> {
53012 #[inline]
53013 fn deref_mut(&mut self) -> &mut Self::Target {
53014 &mut self.inner
53015 }
53016}
53017pub struct VideoDecodeH265InlineSessionParametersInfoKHRBuilder<'a> {
53019 inner: VideoDecodeH265InlineSessionParametersInfoKHR,
53020 _marker: core::marker::PhantomData<&'a ()>,
53021}
53022impl VideoDecodeH265InlineSessionParametersInfoKHR {
53023 #[inline]
53025 pub fn builder<'a>() -> VideoDecodeH265InlineSessionParametersInfoKHRBuilder<'a> {
53026 VideoDecodeH265InlineSessionParametersInfoKHRBuilder {
53027 inner: VideoDecodeH265InlineSessionParametersInfoKHR {
53028 s_type: StructureType::from_raw(1000586002i32),
53029 ..Default::default()
53030 },
53031 _marker: core::marker::PhantomData,
53032 }
53033 }
53034}
53035impl<'a> VideoDecodeH265InlineSessionParametersInfoKHRBuilder<'a> {
53036 #[inline]
53037 pub fn std_vps(mut self, value: *const StdVideoH265VideoParameterSet) -> Self {
53038 self.inner.p_std_vps = value;
53039 self
53040 }
53041 #[inline]
53042 pub fn std_sps(mut self, value: *const StdVideoH265SequenceParameterSet) -> Self {
53043 self.inner.p_std_sps = value;
53044 self
53045 }
53046 #[inline]
53047 pub fn std_pps(mut self, value: *const StdVideoH265PictureParameterSet) -> Self {
53048 self.inner.p_std_pps = value;
53049 self
53050 }
53051 #[inline]
53053 pub fn push_next<T: ExtendsVideoDecodeH265InlineSessionParametersInfoKHR>(
53054 mut self,
53055 next: &'a mut T,
53056 ) -> Self {
53057 unsafe {
53058 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53059 (*next_ptr).p_next = self.inner.p_next as *mut _;
53060 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53061 core::ffi::c_void,
53062 >(next_ptr) as *const _;
53063 }
53064 self
53065 }
53066}
53067impl<'a> core::ops::Deref for VideoDecodeH265InlineSessionParametersInfoKHRBuilder<'a> {
53068 type Target = VideoDecodeH265InlineSessionParametersInfoKHR;
53069 #[inline]
53070 fn deref(&self) -> &Self::Target {
53071 &self.inner
53072 }
53073}
53074impl<'a> core::ops::DerefMut
53075for VideoDecodeH265InlineSessionParametersInfoKHRBuilder<'a> {
53076 #[inline]
53077 fn deref_mut(&mut self) -> &mut Self::Target {
53078 &mut self.inner
53079 }
53080}
53081pub struct VideoDecodeH265PictureInfoKHRBuilder<'a> {
53083 inner: VideoDecodeH265PictureInfoKHR,
53084 _marker: core::marker::PhantomData<&'a ()>,
53085}
53086impl VideoDecodeH265PictureInfoKHR {
53087 #[inline]
53089 pub fn builder<'a>() -> VideoDecodeH265PictureInfoKHRBuilder<'a> {
53090 VideoDecodeH265PictureInfoKHRBuilder {
53091 inner: VideoDecodeH265PictureInfoKHR {
53092 s_type: StructureType::from_raw(1000187004i32),
53093 ..Default::default()
53094 },
53095 _marker: core::marker::PhantomData,
53096 }
53097 }
53098}
53099impl<'a> VideoDecodeH265PictureInfoKHRBuilder<'a> {
53100 #[inline]
53101 pub fn std_picture_info(
53102 mut self,
53103 value: *const StdVideoDecodeH265PictureInfo,
53104 ) -> Self {
53105 self.inner.p_std_picture_info = value;
53106 self
53107 }
53108 #[inline]
53109 pub fn slice_segment_offsets(mut self, slice: &'a [u32]) -> Self {
53110 self.inner.slice_segment_count = slice.len() as u32;
53111 self.inner.p_slice_segment_offsets = slice.as_ptr();
53112 self
53113 }
53114 #[inline]
53116 pub fn push_next<T: ExtendsVideoDecodeH265PictureInfoKHR>(
53117 mut self,
53118 next: &'a mut T,
53119 ) -> Self {
53120 unsafe {
53121 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53122 (*next_ptr).p_next = self.inner.p_next as *mut _;
53123 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53124 core::ffi::c_void,
53125 >(next_ptr) as *const _;
53126 }
53127 self
53128 }
53129}
53130impl<'a> core::ops::Deref for VideoDecodeH265PictureInfoKHRBuilder<'a> {
53131 type Target = VideoDecodeH265PictureInfoKHR;
53132 #[inline]
53133 fn deref(&self) -> &Self::Target {
53134 &self.inner
53135 }
53136}
53137impl<'a> core::ops::DerefMut for VideoDecodeH265PictureInfoKHRBuilder<'a> {
53138 #[inline]
53139 fn deref_mut(&mut self) -> &mut Self::Target {
53140 &mut self.inner
53141 }
53142}
53143pub struct VideoDecodeH265DpbSlotInfoKHRBuilder<'a> {
53145 inner: VideoDecodeH265DpbSlotInfoKHR,
53146 _marker: core::marker::PhantomData<&'a ()>,
53147}
53148impl VideoDecodeH265DpbSlotInfoKHR {
53149 #[inline]
53151 pub fn builder<'a>() -> VideoDecodeH265DpbSlotInfoKHRBuilder<'a> {
53152 VideoDecodeH265DpbSlotInfoKHRBuilder {
53153 inner: VideoDecodeH265DpbSlotInfoKHR {
53154 s_type: StructureType::from_raw(1000187005i32),
53155 ..Default::default()
53156 },
53157 _marker: core::marker::PhantomData,
53158 }
53159 }
53160}
53161impl<'a> VideoDecodeH265DpbSlotInfoKHRBuilder<'a> {
53162 #[inline]
53163 pub fn std_reference_info(
53164 mut self,
53165 value: *const StdVideoDecodeH265ReferenceInfo,
53166 ) -> Self {
53167 self.inner.p_std_reference_info = value;
53168 self
53169 }
53170 #[inline]
53172 pub fn push_next<T: ExtendsVideoDecodeH265DpbSlotInfoKHR>(
53173 mut self,
53174 next: &'a mut T,
53175 ) -> Self {
53176 unsafe {
53177 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53178 (*next_ptr).p_next = self.inner.p_next as *mut _;
53179 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53180 core::ffi::c_void,
53181 >(next_ptr) as *const _;
53182 }
53183 self
53184 }
53185}
53186impl<'a> core::ops::Deref for VideoDecodeH265DpbSlotInfoKHRBuilder<'a> {
53187 type Target = VideoDecodeH265DpbSlotInfoKHR;
53188 #[inline]
53189 fn deref(&self) -> &Self::Target {
53190 &self.inner
53191 }
53192}
53193impl<'a> core::ops::DerefMut for VideoDecodeH265DpbSlotInfoKHRBuilder<'a> {
53194 #[inline]
53195 fn deref_mut(&mut self) -> &mut Self::Target {
53196 &mut self.inner
53197 }
53198}
53199pub struct PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder<'a> {
53201 inner: PhysicalDeviceVideoDecodeVP9FeaturesKHR,
53202 _marker: core::marker::PhantomData<&'a ()>,
53203}
53204impl PhysicalDeviceVideoDecodeVP9FeaturesKHR {
53205 #[inline]
53207 pub fn builder<'a>() -> PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder<'a> {
53208 PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder {
53209 inner: PhysicalDeviceVideoDecodeVP9FeaturesKHR {
53210 s_type: StructureType::from_raw(1000514000i32),
53211 ..Default::default()
53212 },
53213 _marker: core::marker::PhantomData,
53214 }
53215 }
53216}
53217impl<'a> PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder<'a> {
53218 #[inline]
53219 pub fn video_decode_vp9(mut self, value: bool) -> Self {
53220 self.inner.video_decode_vp9 = value as u32;
53221 self
53222 }
53223 #[inline]
53225 pub fn push_next<T: ExtendsPhysicalDeviceVideoDecodeVP9FeaturesKHR>(
53226 mut self,
53227 next: &'a mut T,
53228 ) -> Self {
53229 unsafe {
53230 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53231 (*next_ptr).p_next = self.inner.p_next as *mut _;
53232 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53233 core::ffi::c_void,
53234 >(next_ptr);
53235 }
53236 self
53237 }
53238}
53239impl<'a> core::ops::Deref for PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder<'a> {
53240 type Target = PhysicalDeviceVideoDecodeVP9FeaturesKHR;
53241 #[inline]
53242 fn deref(&self) -> &Self::Target {
53243 &self.inner
53244 }
53245}
53246impl<'a> core::ops::DerefMut for PhysicalDeviceVideoDecodeVP9FeaturesKHRBuilder<'a> {
53247 #[inline]
53248 fn deref_mut(&mut self) -> &mut Self::Target {
53249 &mut self.inner
53250 }
53251}
53252pub struct VideoDecodeVP9ProfileInfoKHRBuilder<'a> {
53254 inner: VideoDecodeVP9ProfileInfoKHR,
53255 _marker: core::marker::PhantomData<&'a ()>,
53256}
53257impl VideoDecodeVP9ProfileInfoKHR {
53258 #[inline]
53260 pub fn builder<'a>() -> VideoDecodeVP9ProfileInfoKHRBuilder<'a> {
53261 VideoDecodeVP9ProfileInfoKHRBuilder {
53262 inner: VideoDecodeVP9ProfileInfoKHR {
53263 s_type: StructureType::from_raw(1000514003i32),
53264 ..Default::default()
53265 },
53266 _marker: core::marker::PhantomData,
53267 }
53268 }
53269}
53270impl<'a> VideoDecodeVP9ProfileInfoKHRBuilder<'a> {
53271 #[inline]
53272 pub fn std_profile(mut self, value: StdVideoVP9Profile) -> Self {
53273 self.inner.std_profile = value;
53274 self
53275 }
53276 #[inline]
53278 pub fn push_next<T: ExtendsVideoDecodeVP9ProfileInfoKHR>(
53279 mut self,
53280 next: &'a mut T,
53281 ) -> Self {
53282 unsafe {
53283 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53284 (*next_ptr).p_next = self.inner.p_next as *mut _;
53285 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53286 core::ffi::c_void,
53287 >(next_ptr) as *const _;
53288 }
53289 self
53290 }
53291}
53292impl<'a> core::ops::Deref for VideoDecodeVP9ProfileInfoKHRBuilder<'a> {
53293 type Target = VideoDecodeVP9ProfileInfoKHR;
53294 #[inline]
53295 fn deref(&self) -> &Self::Target {
53296 &self.inner
53297 }
53298}
53299impl<'a> core::ops::DerefMut for VideoDecodeVP9ProfileInfoKHRBuilder<'a> {
53300 #[inline]
53301 fn deref_mut(&mut self) -> &mut Self::Target {
53302 &mut self.inner
53303 }
53304}
53305pub struct VideoDecodeVP9CapabilitiesKHRBuilder<'a> {
53307 inner: VideoDecodeVP9CapabilitiesKHR,
53308 _marker: core::marker::PhantomData<&'a ()>,
53309}
53310impl VideoDecodeVP9CapabilitiesKHR {
53311 #[inline]
53313 pub fn builder<'a>() -> VideoDecodeVP9CapabilitiesKHRBuilder<'a> {
53314 VideoDecodeVP9CapabilitiesKHRBuilder {
53315 inner: VideoDecodeVP9CapabilitiesKHR {
53316 s_type: StructureType::from_raw(1000514001i32),
53317 ..Default::default()
53318 },
53319 _marker: core::marker::PhantomData,
53320 }
53321 }
53322}
53323impl<'a> VideoDecodeVP9CapabilitiesKHRBuilder<'a> {
53324 #[inline]
53325 pub fn max_level(mut self, value: StdVideoVP9Level) -> Self {
53326 self.inner.max_level = value;
53327 self
53328 }
53329}
53330impl<'a> core::ops::Deref for VideoDecodeVP9CapabilitiesKHRBuilder<'a> {
53331 type Target = VideoDecodeVP9CapabilitiesKHR;
53332 #[inline]
53333 fn deref(&self) -> &Self::Target {
53334 &self.inner
53335 }
53336}
53337impl<'a> core::ops::DerefMut for VideoDecodeVP9CapabilitiesKHRBuilder<'a> {
53338 #[inline]
53339 fn deref_mut(&mut self) -> &mut Self::Target {
53340 &mut self.inner
53341 }
53342}
53343pub struct VideoDecodeVP9PictureInfoKHRBuilder<'a> {
53345 inner: VideoDecodeVP9PictureInfoKHR,
53346 _marker: core::marker::PhantomData<&'a ()>,
53347}
53348impl VideoDecodeVP9PictureInfoKHR {
53349 #[inline]
53351 pub fn builder<'a>() -> VideoDecodeVP9PictureInfoKHRBuilder<'a> {
53352 VideoDecodeVP9PictureInfoKHRBuilder {
53353 inner: VideoDecodeVP9PictureInfoKHR {
53354 s_type: StructureType::from_raw(1000514002i32),
53355 ..Default::default()
53356 },
53357 _marker: core::marker::PhantomData,
53358 }
53359 }
53360}
53361impl<'a> VideoDecodeVP9PictureInfoKHRBuilder<'a> {
53362 #[inline]
53363 pub fn std_picture_info(
53364 mut self,
53365 value: *const StdVideoDecodeVP9PictureInfo,
53366 ) -> Self {
53367 self.inner.p_std_picture_info = value;
53368 self
53369 }
53370 #[inline]
53371 pub fn reference_name_slot_indices(
53372 mut self,
53373 value: [i32; MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR as usize],
53374 ) -> Self {
53375 self.inner.reference_name_slot_indices = value;
53376 self
53377 }
53378 #[inline]
53379 pub fn uncompressed_header_offset(mut self, value: u32) -> Self {
53380 self.inner.uncompressed_header_offset = value;
53381 self
53382 }
53383 #[inline]
53384 pub fn compressed_header_offset(mut self, value: u32) -> Self {
53385 self.inner.compressed_header_offset = value;
53386 self
53387 }
53388 #[inline]
53389 pub fn tiles_offset(mut self, value: u32) -> Self {
53390 self.inner.tiles_offset = value;
53391 self
53392 }
53393 #[inline]
53395 pub fn push_next<T: ExtendsVideoDecodeVP9PictureInfoKHR>(
53396 mut self,
53397 next: &'a mut T,
53398 ) -> Self {
53399 unsafe {
53400 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53401 (*next_ptr).p_next = self.inner.p_next as *mut _;
53402 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53403 core::ffi::c_void,
53404 >(next_ptr) as *const _;
53405 }
53406 self
53407 }
53408}
53409impl<'a> core::ops::Deref for VideoDecodeVP9PictureInfoKHRBuilder<'a> {
53410 type Target = VideoDecodeVP9PictureInfoKHR;
53411 #[inline]
53412 fn deref(&self) -> &Self::Target {
53413 &self.inner
53414 }
53415}
53416impl<'a> core::ops::DerefMut for VideoDecodeVP9PictureInfoKHRBuilder<'a> {
53417 #[inline]
53418 fn deref_mut(&mut self) -> &mut Self::Target {
53419 &mut self.inner
53420 }
53421}
53422pub struct VideoDecodeAV1ProfileInfoKHRBuilder<'a> {
53424 inner: VideoDecodeAV1ProfileInfoKHR,
53425 _marker: core::marker::PhantomData<&'a ()>,
53426}
53427impl VideoDecodeAV1ProfileInfoKHR {
53428 #[inline]
53430 pub fn builder<'a>() -> VideoDecodeAV1ProfileInfoKHRBuilder<'a> {
53431 VideoDecodeAV1ProfileInfoKHRBuilder {
53432 inner: VideoDecodeAV1ProfileInfoKHR {
53433 s_type: StructureType::from_raw(1000512003i32),
53434 ..Default::default()
53435 },
53436 _marker: core::marker::PhantomData,
53437 }
53438 }
53439}
53440impl<'a> VideoDecodeAV1ProfileInfoKHRBuilder<'a> {
53441 #[inline]
53442 pub fn std_profile(mut self, value: StdVideoAV1Profile) -> Self {
53443 self.inner.std_profile = value;
53444 self
53445 }
53446 #[inline]
53447 pub fn film_grain_support(mut self, value: bool) -> Self {
53448 self.inner.film_grain_support = value as u32;
53449 self
53450 }
53451 #[inline]
53453 pub fn push_next<T: ExtendsVideoDecodeAV1ProfileInfoKHR>(
53454 mut self,
53455 next: &'a mut T,
53456 ) -> Self {
53457 unsafe {
53458 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53459 (*next_ptr).p_next = self.inner.p_next as *mut _;
53460 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53461 core::ffi::c_void,
53462 >(next_ptr) as *const _;
53463 }
53464 self
53465 }
53466}
53467impl<'a> core::ops::Deref for VideoDecodeAV1ProfileInfoKHRBuilder<'a> {
53468 type Target = VideoDecodeAV1ProfileInfoKHR;
53469 #[inline]
53470 fn deref(&self) -> &Self::Target {
53471 &self.inner
53472 }
53473}
53474impl<'a> core::ops::DerefMut for VideoDecodeAV1ProfileInfoKHRBuilder<'a> {
53475 #[inline]
53476 fn deref_mut(&mut self) -> &mut Self::Target {
53477 &mut self.inner
53478 }
53479}
53480pub struct VideoDecodeAV1CapabilitiesKHRBuilder<'a> {
53482 inner: VideoDecodeAV1CapabilitiesKHR,
53483 _marker: core::marker::PhantomData<&'a ()>,
53484}
53485impl VideoDecodeAV1CapabilitiesKHR {
53486 #[inline]
53488 pub fn builder<'a>() -> VideoDecodeAV1CapabilitiesKHRBuilder<'a> {
53489 VideoDecodeAV1CapabilitiesKHRBuilder {
53490 inner: VideoDecodeAV1CapabilitiesKHR {
53491 s_type: StructureType::from_raw(1000512000i32),
53492 ..Default::default()
53493 },
53494 _marker: core::marker::PhantomData,
53495 }
53496 }
53497}
53498impl<'a> VideoDecodeAV1CapabilitiesKHRBuilder<'a> {
53499 #[inline]
53500 pub fn max_level(mut self, value: StdVideoAV1Level) -> Self {
53501 self.inner.max_level = value;
53502 self
53503 }
53504}
53505impl<'a> core::ops::Deref for VideoDecodeAV1CapabilitiesKHRBuilder<'a> {
53506 type Target = VideoDecodeAV1CapabilitiesKHR;
53507 #[inline]
53508 fn deref(&self) -> &Self::Target {
53509 &self.inner
53510 }
53511}
53512impl<'a> core::ops::DerefMut for VideoDecodeAV1CapabilitiesKHRBuilder<'a> {
53513 #[inline]
53514 fn deref_mut(&mut self) -> &mut Self::Target {
53515 &mut self.inner
53516 }
53517}
53518pub struct VideoDecodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
53520 inner: VideoDecodeAV1SessionParametersCreateInfoKHR,
53521 _marker: core::marker::PhantomData<&'a ()>,
53522}
53523impl VideoDecodeAV1SessionParametersCreateInfoKHR {
53524 #[inline]
53526 pub fn builder<'a>() -> VideoDecodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
53527 VideoDecodeAV1SessionParametersCreateInfoKHRBuilder {
53528 inner: VideoDecodeAV1SessionParametersCreateInfoKHR {
53529 s_type: StructureType::from_raw(1000512004i32),
53530 ..Default::default()
53531 },
53532 _marker: core::marker::PhantomData,
53533 }
53534 }
53535}
53536impl<'a> VideoDecodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
53537 #[inline]
53538 pub fn std_sequence_header(
53539 mut self,
53540 value: *const StdVideoAV1SequenceHeader,
53541 ) -> Self {
53542 self.inner.p_std_sequence_header = value;
53543 self
53544 }
53545 #[inline]
53547 pub fn push_next<T: ExtendsVideoDecodeAV1SessionParametersCreateInfoKHR>(
53548 mut self,
53549 next: &'a mut T,
53550 ) -> Self {
53551 unsafe {
53552 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53553 (*next_ptr).p_next = self.inner.p_next as *mut _;
53554 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53555 core::ffi::c_void,
53556 >(next_ptr) as *const _;
53557 }
53558 self
53559 }
53560}
53561impl<'a> core::ops::Deref for VideoDecodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
53562 type Target = VideoDecodeAV1SessionParametersCreateInfoKHR;
53563 #[inline]
53564 fn deref(&self) -> &Self::Target {
53565 &self.inner
53566 }
53567}
53568impl<'a> core::ops::DerefMut
53569for VideoDecodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
53570 #[inline]
53571 fn deref_mut(&mut self) -> &mut Self::Target {
53572 &mut self.inner
53573 }
53574}
53575pub struct VideoDecodeAV1InlineSessionParametersInfoKHRBuilder<'a> {
53577 inner: VideoDecodeAV1InlineSessionParametersInfoKHR,
53578 _marker: core::marker::PhantomData<&'a ()>,
53579}
53580impl VideoDecodeAV1InlineSessionParametersInfoKHR {
53581 #[inline]
53583 pub fn builder<'a>() -> VideoDecodeAV1InlineSessionParametersInfoKHRBuilder<'a> {
53584 VideoDecodeAV1InlineSessionParametersInfoKHRBuilder {
53585 inner: VideoDecodeAV1InlineSessionParametersInfoKHR {
53586 s_type: StructureType::from_raw(1000586003i32),
53587 ..Default::default()
53588 },
53589 _marker: core::marker::PhantomData,
53590 }
53591 }
53592}
53593impl<'a> VideoDecodeAV1InlineSessionParametersInfoKHRBuilder<'a> {
53594 #[inline]
53595 pub fn std_sequence_header(
53596 mut self,
53597 value: *const StdVideoAV1SequenceHeader,
53598 ) -> Self {
53599 self.inner.p_std_sequence_header = value;
53600 self
53601 }
53602 #[inline]
53604 pub fn push_next<T: ExtendsVideoDecodeAV1InlineSessionParametersInfoKHR>(
53605 mut self,
53606 next: &'a mut T,
53607 ) -> Self {
53608 unsafe {
53609 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53610 (*next_ptr).p_next = self.inner.p_next as *mut _;
53611 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53612 core::ffi::c_void,
53613 >(next_ptr) as *const _;
53614 }
53615 self
53616 }
53617}
53618impl<'a> core::ops::Deref for VideoDecodeAV1InlineSessionParametersInfoKHRBuilder<'a> {
53619 type Target = VideoDecodeAV1InlineSessionParametersInfoKHR;
53620 #[inline]
53621 fn deref(&self) -> &Self::Target {
53622 &self.inner
53623 }
53624}
53625impl<'a> core::ops::DerefMut
53626for VideoDecodeAV1InlineSessionParametersInfoKHRBuilder<'a> {
53627 #[inline]
53628 fn deref_mut(&mut self) -> &mut Self::Target {
53629 &mut self.inner
53630 }
53631}
53632pub struct VideoDecodeAV1PictureInfoKHRBuilder<'a> {
53634 inner: VideoDecodeAV1PictureInfoKHR,
53635 _marker: core::marker::PhantomData<&'a ()>,
53636}
53637impl VideoDecodeAV1PictureInfoKHR {
53638 #[inline]
53640 pub fn builder<'a>() -> VideoDecodeAV1PictureInfoKHRBuilder<'a> {
53641 VideoDecodeAV1PictureInfoKHRBuilder {
53642 inner: VideoDecodeAV1PictureInfoKHR {
53643 s_type: StructureType::from_raw(1000512001i32),
53644 ..Default::default()
53645 },
53646 _marker: core::marker::PhantomData,
53647 }
53648 }
53649}
53650impl<'a> VideoDecodeAV1PictureInfoKHRBuilder<'a> {
53651 #[inline]
53652 pub fn std_picture_info(
53653 mut self,
53654 value: *const StdVideoDecodeAV1PictureInfo,
53655 ) -> Self {
53656 self.inner.p_std_picture_info = value;
53657 self
53658 }
53659 #[inline]
53660 pub fn reference_name_slot_indices(
53661 mut self,
53662 value: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR as usize],
53663 ) -> Self {
53664 self.inner.reference_name_slot_indices = value;
53665 self
53666 }
53667 #[inline]
53668 pub fn frame_header_offset(mut self, value: u32) -> Self {
53669 self.inner.frame_header_offset = value;
53670 self
53671 }
53672 #[inline]
53673 pub fn tile_offsets(mut self, slice: &'a [u32]) -> Self {
53674 self.inner.tile_count = slice.len() as u32;
53675 self.inner.p_tile_offsets = slice.as_ptr();
53676 self
53677 }
53678 #[inline]
53679 pub fn tile_sizes(mut self, slice: &'a [u32]) -> Self {
53680 self.inner.tile_count = slice.len() as u32;
53681 self.inner.p_tile_sizes = slice.as_ptr();
53682 self
53683 }
53684 #[inline]
53686 pub fn push_next<T: ExtendsVideoDecodeAV1PictureInfoKHR>(
53687 mut self,
53688 next: &'a mut T,
53689 ) -> Self {
53690 unsafe {
53691 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53692 (*next_ptr).p_next = self.inner.p_next as *mut _;
53693 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53694 core::ffi::c_void,
53695 >(next_ptr) as *const _;
53696 }
53697 self
53698 }
53699}
53700impl<'a> core::ops::Deref for VideoDecodeAV1PictureInfoKHRBuilder<'a> {
53701 type Target = VideoDecodeAV1PictureInfoKHR;
53702 #[inline]
53703 fn deref(&self) -> &Self::Target {
53704 &self.inner
53705 }
53706}
53707impl<'a> core::ops::DerefMut for VideoDecodeAV1PictureInfoKHRBuilder<'a> {
53708 #[inline]
53709 fn deref_mut(&mut self) -> &mut Self::Target {
53710 &mut self.inner
53711 }
53712}
53713pub struct VideoDecodeAV1DpbSlotInfoKHRBuilder<'a> {
53715 inner: VideoDecodeAV1DpbSlotInfoKHR,
53716 _marker: core::marker::PhantomData<&'a ()>,
53717}
53718impl VideoDecodeAV1DpbSlotInfoKHR {
53719 #[inline]
53721 pub fn builder<'a>() -> VideoDecodeAV1DpbSlotInfoKHRBuilder<'a> {
53722 VideoDecodeAV1DpbSlotInfoKHRBuilder {
53723 inner: VideoDecodeAV1DpbSlotInfoKHR {
53724 s_type: StructureType::from_raw(1000512005i32),
53725 ..Default::default()
53726 },
53727 _marker: core::marker::PhantomData,
53728 }
53729 }
53730}
53731impl<'a> VideoDecodeAV1DpbSlotInfoKHRBuilder<'a> {
53732 #[inline]
53733 pub fn std_reference_info(
53734 mut self,
53735 value: *const StdVideoDecodeAV1ReferenceInfo,
53736 ) -> Self {
53737 self.inner.p_std_reference_info = value;
53738 self
53739 }
53740 #[inline]
53742 pub fn push_next<T: ExtendsVideoDecodeAV1DpbSlotInfoKHR>(
53743 mut self,
53744 next: &'a mut T,
53745 ) -> Self {
53746 unsafe {
53747 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53748 (*next_ptr).p_next = self.inner.p_next as *mut _;
53749 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53750 core::ffi::c_void,
53751 >(next_ptr) as *const _;
53752 }
53753 self
53754 }
53755}
53756impl<'a> core::ops::Deref for VideoDecodeAV1DpbSlotInfoKHRBuilder<'a> {
53757 type Target = VideoDecodeAV1DpbSlotInfoKHR;
53758 #[inline]
53759 fn deref(&self) -> &Self::Target {
53760 &self.inner
53761 }
53762}
53763impl<'a> core::ops::DerefMut for VideoDecodeAV1DpbSlotInfoKHRBuilder<'a> {
53764 #[inline]
53765 fn deref_mut(&mut self) -> &mut Self::Target {
53766 &mut self.inner
53767 }
53768}
53769pub struct VideoSessionCreateInfoKHRBuilder<'a> {
53771 inner: VideoSessionCreateInfoKHR,
53772 _marker: core::marker::PhantomData<&'a ()>,
53773}
53774impl VideoSessionCreateInfoKHR {
53775 #[inline]
53777 pub fn builder<'a>() -> VideoSessionCreateInfoKHRBuilder<'a> {
53778 VideoSessionCreateInfoKHRBuilder {
53779 inner: VideoSessionCreateInfoKHR {
53780 s_type: StructureType::from_raw(1000023005i32),
53781 ..Default::default()
53782 },
53783 _marker: core::marker::PhantomData,
53784 }
53785 }
53786}
53787impl<'a> VideoSessionCreateInfoKHRBuilder<'a> {
53788 #[inline]
53789 pub fn queue_family_index(mut self, value: u32) -> Self {
53790 self.inner.queue_family_index = value;
53791 self
53792 }
53793 #[inline]
53794 pub fn flags(mut self, value: VideoSessionCreateFlagsKHR) -> Self {
53795 self.inner.flags = value;
53796 self
53797 }
53798 #[inline]
53799 pub fn video_profile(mut self, value: &'a VideoProfileInfoKHR) -> Self {
53800 self.inner.p_video_profile = value;
53801 self
53802 }
53803 #[inline]
53804 pub fn picture_format(mut self, value: Format) -> Self {
53805 self.inner.picture_format = value;
53806 self
53807 }
53808 #[inline]
53809 pub fn max_coded_extent(mut self, value: Extent2D) -> Self {
53810 self.inner.max_coded_extent = value;
53811 self
53812 }
53813 #[inline]
53814 pub fn reference_picture_format(mut self, value: Format) -> Self {
53815 self.inner.reference_picture_format = value;
53816 self
53817 }
53818 #[inline]
53819 pub fn max_dpb_slots(mut self, value: u32) -> Self {
53820 self.inner.max_dpb_slots = value;
53821 self
53822 }
53823 #[inline]
53824 pub fn max_active_reference_pictures(mut self, value: u32) -> Self {
53825 self.inner.max_active_reference_pictures = value;
53826 self
53827 }
53828 #[inline]
53829 pub fn std_header_version(mut self, value: &'a ExtensionProperties) -> Self {
53830 self.inner.p_std_header_version = value;
53831 self
53832 }
53833 #[inline]
53835 pub fn push_next<T: ExtendsVideoSessionCreateInfoKHR>(
53836 mut self,
53837 next: &'a mut T,
53838 ) -> Self {
53839 unsafe {
53840 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53841 (*next_ptr).p_next = self.inner.p_next as *mut _;
53842 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53843 core::ffi::c_void,
53844 >(next_ptr) as *const _;
53845 }
53846 self
53847 }
53848}
53849impl<'a> core::ops::Deref for VideoSessionCreateInfoKHRBuilder<'a> {
53850 type Target = VideoSessionCreateInfoKHR;
53851 #[inline]
53852 fn deref(&self) -> &Self::Target {
53853 &self.inner
53854 }
53855}
53856impl<'a> core::ops::DerefMut for VideoSessionCreateInfoKHRBuilder<'a> {
53857 #[inline]
53858 fn deref_mut(&mut self) -> &mut Self::Target {
53859 &mut self.inner
53860 }
53861}
53862pub struct VideoSessionParametersCreateInfoKHRBuilder<'a> {
53864 inner: VideoSessionParametersCreateInfoKHR,
53865 _marker: core::marker::PhantomData<&'a ()>,
53866}
53867impl VideoSessionParametersCreateInfoKHR {
53868 #[inline]
53870 pub fn builder<'a>() -> VideoSessionParametersCreateInfoKHRBuilder<'a> {
53871 VideoSessionParametersCreateInfoKHRBuilder {
53872 inner: VideoSessionParametersCreateInfoKHR {
53873 s_type: StructureType::from_raw(1000023006i32),
53874 ..Default::default()
53875 },
53876 _marker: core::marker::PhantomData,
53877 }
53878 }
53879}
53880impl<'a> VideoSessionParametersCreateInfoKHRBuilder<'a> {
53881 #[inline]
53882 pub fn flags(mut self, value: VideoSessionParametersCreateFlagsKHR) -> Self {
53883 self.inner.flags = value;
53884 self
53885 }
53886 #[inline]
53887 pub fn video_session_parameters_template(
53888 mut self,
53889 value: VideoSessionParametersKHR,
53890 ) -> Self {
53891 self.inner.video_session_parameters_template = value;
53892 self
53893 }
53894 #[inline]
53895 pub fn video_session(mut self, value: VideoSessionKHR) -> Self {
53896 self.inner.video_session = value;
53897 self
53898 }
53899 #[inline]
53901 pub fn push_next<T: ExtendsVideoSessionParametersCreateInfoKHR>(
53902 mut self,
53903 next: &'a mut T,
53904 ) -> Self {
53905 unsafe {
53906 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53907 (*next_ptr).p_next = self.inner.p_next as *mut _;
53908 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53909 core::ffi::c_void,
53910 >(next_ptr) as *const _;
53911 }
53912 self
53913 }
53914}
53915impl<'a> core::ops::Deref for VideoSessionParametersCreateInfoKHRBuilder<'a> {
53916 type Target = VideoSessionParametersCreateInfoKHR;
53917 #[inline]
53918 fn deref(&self) -> &Self::Target {
53919 &self.inner
53920 }
53921}
53922impl<'a> core::ops::DerefMut for VideoSessionParametersCreateInfoKHRBuilder<'a> {
53923 #[inline]
53924 fn deref_mut(&mut self) -> &mut Self::Target {
53925 &mut self.inner
53926 }
53927}
53928pub struct VideoSessionParametersUpdateInfoKHRBuilder<'a> {
53930 inner: VideoSessionParametersUpdateInfoKHR,
53931 _marker: core::marker::PhantomData<&'a ()>,
53932}
53933impl VideoSessionParametersUpdateInfoKHR {
53934 #[inline]
53936 pub fn builder<'a>() -> VideoSessionParametersUpdateInfoKHRBuilder<'a> {
53937 VideoSessionParametersUpdateInfoKHRBuilder {
53938 inner: VideoSessionParametersUpdateInfoKHR {
53939 s_type: StructureType::from_raw(1000023007i32),
53940 ..Default::default()
53941 },
53942 _marker: core::marker::PhantomData,
53943 }
53944 }
53945}
53946impl<'a> VideoSessionParametersUpdateInfoKHRBuilder<'a> {
53947 #[inline]
53948 pub fn update_sequence_count(mut self, value: u32) -> Self {
53949 self.inner.update_sequence_count = value;
53950 self
53951 }
53952 #[inline]
53954 pub fn push_next<T: ExtendsVideoSessionParametersUpdateInfoKHR>(
53955 mut self,
53956 next: &'a mut T,
53957 ) -> Self {
53958 unsafe {
53959 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
53960 (*next_ptr).p_next = self.inner.p_next as *mut _;
53961 self.inner.p_next = <*mut BaseOutStructure>::cast::<
53962 core::ffi::c_void,
53963 >(next_ptr) as *const _;
53964 }
53965 self
53966 }
53967}
53968impl<'a> core::ops::Deref for VideoSessionParametersUpdateInfoKHRBuilder<'a> {
53969 type Target = VideoSessionParametersUpdateInfoKHR;
53970 #[inline]
53971 fn deref(&self) -> &Self::Target {
53972 &self.inner
53973 }
53974}
53975impl<'a> core::ops::DerefMut for VideoSessionParametersUpdateInfoKHRBuilder<'a> {
53976 #[inline]
53977 fn deref_mut(&mut self) -> &mut Self::Target {
53978 &mut self.inner
53979 }
53980}
53981pub struct VideoEncodeSessionParametersGetInfoKHRBuilder<'a> {
53983 inner: VideoEncodeSessionParametersGetInfoKHR,
53984 _marker: core::marker::PhantomData<&'a ()>,
53985}
53986impl VideoEncodeSessionParametersGetInfoKHR {
53987 #[inline]
53989 pub fn builder<'a>() -> VideoEncodeSessionParametersGetInfoKHRBuilder<'a> {
53990 VideoEncodeSessionParametersGetInfoKHRBuilder {
53991 inner: VideoEncodeSessionParametersGetInfoKHR {
53992 s_type: StructureType::from_raw(1000299009i32),
53993 ..Default::default()
53994 },
53995 _marker: core::marker::PhantomData,
53996 }
53997 }
53998}
53999impl<'a> VideoEncodeSessionParametersGetInfoKHRBuilder<'a> {
54000 #[inline]
54001 pub fn video_session_parameters(mut self, value: VideoSessionParametersKHR) -> Self {
54002 self.inner.video_session_parameters = value;
54003 self
54004 }
54005 #[inline]
54007 pub fn push_next<T: ExtendsVideoEncodeSessionParametersGetInfoKHR>(
54008 mut self,
54009 next: &'a mut T,
54010 ) -> Self {
54011 unsafe {
54012 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54013 (*next_ptr).p_next = self.inner.p_next as *mut _;
54014 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54015 core::ffi::c_void,
54016 >(next_ptr) as *const _;
54017 }
54018 self
54019 }
54020}
54021impl<'a> core::ops::Deref for VideoEncodeSessionParametersGetInfoKHRBuilder<'a> {
54022 type Target = VideoEncodeSessionParametersGetInfoKHR;
54023 #[inline]
54024 fn deref(&self) -> &Self::Target {
54025 &self.inner
54026 }
54027}
54028impl<'a> core::ops::DerefMut for VideoEncodeSessionParametersGetInfoKHRBuilder<'a> {
54029 #[inline]
54030 fn deref_mut(&mut self) -> &mut Self::Target {
54031 &mut self.inner
54032 }
54033}
54034pub struct VideoEncodeSessionParametersFeedbackInfoKHRBuilder<'a> {
54036 inner: VideoEncodeSessionParametersFeedbackInfoKHR,
54037 _marker: core::marker::PhantomData<&'a ()>,
54038}
54039impl VideoEncodeSessionParametersFeedbackInfoKHR {
54040 #[inline]
54042 pub fn builder<'a>() -> VideoEncodeSessionParametersFeedbackInfoKHRBuilder<'a> {
54043 VideoEncodeSessionParametersFeedbackInfoKHRBuilder {
54044 inner: VideoEncodeSessionParametersFeedbackInfoKHR {
54045 s_type: StructureType::from_raw(1000299010i32),
54046 ..Default::default()
54047 },
54048 _marker: core::marker::PhantomData,
54049 }
54050 }
54051}
54052impl<'a> VideoEncodeSessionParametersFeedbackInfoKHRBuilder<'a> {
54053 #[inline]
54054 pub fn has_overrides(mut self, value: bool) -> Self {
54055 self.inner.has_overrides = value as u32;
54056 self
54057 }
54058}
54059impl<'a> core::ops::Deref for VideoEncodeSessionParametersFeedbackInfoKHRBuilder<'a> {
54060 type Target = VideoEncodeSessionParametersFeedbackInfoKHR;
54061 #[inline]
54062 fn deref(&self) -> &Self::Target {
54063 &self.inner
54064 }
54065}
54066impl<'a> core::ops::DerefMut for VideoEncodeSessionParametersFeedbackInfoKHRBuilder<'a> {
54067 #[inline]
54068 fn deref_mut(&mut self) -> &mut Self::Target {
54069 &mut self.inner
54070 }
54071}
54072pub struct VideoBeginCodingInfoKHRBuilder<'a> {
54074 inner: VideoBeginCodingInfoKHR,
54075 _marker: core::marker::PhantomData<&'a ()>,
54076}
54077impl VideoBeginCodingInfoKHR {
54078 #[inline]
54080 pub fn builder<'a>() -> VideoBeginCodingInfoKHRBuilder<'a> {
54081 VideoBeginCodingInfoKHRBuilder {
54082 inner: VideoBeginCodingInfoKHR {
54083 s_type: StructureType::from_raw(1000023008i32),
54084 ..Default::default()
54085 },
54086 _marker: core::marker::PhantomData,
54087 }
54088 }
54089}
54090impl<'a> VideoBeginCodingInfoKHRBuilder<'a> {
54091 #[inline]
54092 pub fn flags(mut self, value: VideoBeginCodingFlagsKHR) -> Self {
54093 self.inner.flags = value;
54094 self
54095 }
54096 #[inline]
54097 pub fn video_session(mut self, value: VideoSessionKHR) -> Self {
54098 self.inner.video_session = value;
54099 self
54100 }
54101 #[inline]
54102 pub fn video_session_parameters(mut self, value: VideoSessionParametersKHR) -> Self {
54103 self.inner.video_session_parameters = value;
54104 self
54105 }
54106 #[inline]
54107 pub fn reference_slots(mut self, slice: &'a [VideoReferenceSlotInfoKHR]) -> Self {
54108 self.inner.reference_slot_count = slice.len() as u32;
54109 self.inner.p_reference_slots = slice.as_ptr();
54110 self
54111 }
54112 #[inline]
54114 pub fn push_next<T: ExtendsVideoBeginCodingInfoKHR>(
54115 mut self,
54116 next: &'a mut T,
54117 ) -> Self {
54118 unsafe {
54119 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54120 (*next_ptr).p_next = self.inner.p_next as *mut _;
54121 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54122 core::ffi::c_void,
54123 >(next_ptr) as *const _;
54124 }
54125 self
54126 }
54127}
54128impl<'a> core::ops::Deref for VideoBeginCodingInfoKHRBuilder<'a> {
54129 type Target = VideoBeginCodingInfoKHR;
54130 #[inline]
54131 fn deref(&self) -> &Self::Target {
54132 &self.inner
54133 }
54134}
54135impl<'a> core::ops::DerefMut for VideoBeginCodingInfoKHRBuilder<'a> {
54136 #[inline]
54137 fn deref_mut(&mut self) -> &mut Self::Target {
54138 &mut self.inner
54139 }
54140}
54141pub struct VideoEndCodingInfoKHRBuilder<'a> {
54143 inner: VideoEndCodingInfoKHR,
54144 _marker: core::marker::PhantomData<&'a ()>,
54145}
54146impl VideoEndCodingInfoKHR {
54147 #[inline]
54149 pub fn builder<'a>() -> VideoEndCodingInfoKHRBuilder<'a> {
54150 VideoEndCodingInfoKHRBuilder {
54151 inner: VideoEndCodingInfoKHR {
54152 s_type: StructureType::from_raw(1000023009i32),
54153 ..Default::default()
54154 },
54155 _marker: core::marker::PhantomData,
54156 }
54157 }
54158}
54159impl<'a> VideoEndCodingInfoKHRBuilder<'a> {
54160 #[inline]
54161 pub fn flags(mut self, value: VideoEndCodingFlagsKHR) -> Self {
54162 self.inner.flags = value;
54163 self
54164 }
54165 #[inline]
54167 pub fn push_next<T: ExtendsVideoEndCodingInfoKHR>(
54168 mut self,
54169 next: &'a mut T,
54170 ) -> Self {
54171 unsafe {
54172 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54173 (*next_ptr).p_next = self.inner.p_next as *mut _;
54174 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54175 core::ffi::c_void,
54176 >(next_ptr) as *const _;
54177 }
54178 self
54179 }
54180}
54181impl<'a> core::ops::Deref for VideoEndCodingInfoKHRBuilder<'a> {
54182 type Target = VideoEndCodingInfoKHR;
54183 #[inline]
54184 fn deref(&self) -> &Self::Target {
54185 &self.inner
54186 }
54187}
54188impl<'a> core::ops::DerefMut for VideoEndCodingInfoKHRBuilder<'a> {
54189 #[inline]
54190 fn deref_mut(&mut self) -> &mut Self::Target {
54191 &mut self.inner
54192 }
54193}
54194pub struct VideoCodingControlInfoKHRBuilder<'a> {
54196 inner: VideoCodingControlInfoKHR,
54197 _marker: core::marker::PhantomData<&'a ()>,
54198}
54199impl VideoCodingControlInfoKHR {
54200 #[inline]
54202 pub fn builder<'a>() -> VideoCodingControlInfoKHRBuilder<'a> {
54203 VideoCodingControlInfoKHRBuilder {
54204 inner: VideoCodingControlInfoKHR {
54205 s_type: StructureType::from_raw(1000023010i32),
54206 ..Default::default()
54207 },
54208 _marker: core::marker::PhantomData,
54209 }
54210 }
54211}
54212impl<'a> VideoCodingControlInfoKHRBuilder<'a> {
54213 #[inline]
54214 pub fn flags(mut self, value: VideoCodingControlFlagsKHR) -> Self {
54215 self.inner.flags = value;
54216 self
54217 }
54218 #[inline]
54220 pub fn push_next<T: ExtendsVideoCodingControlInfoKHR>(
54221 mut self,
54222 next: &'a mut T,
54223 ) -> Self {
54224 unsafe {
54225 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54226 (*next_ptr).p_next = self.inner.p_next as *mut _;
54227 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54228 core::ffi::c_void,
54229 >(next_ptr) as *const _;
54230 }
54231 self
54232 }
54233}
54234impl<'a> core::ops::Deref for VideoCodingControlInfoKHRBuilder<'a> {
54235 type Target = VideoCodingControlInfoKHR;
54236 #[inline]
54237 fn deref(&self) -> &Self::Target {
54238 &self.inner
54239 }
54240}
54241impl<'a> core::ops::DerefMut for VideoCodingControlInfoKHRBuilder<'a> {
54242 #[inline]
54243 fn deref_mut(&mut self) -> &mut Self::Target {
54244 &mut self.inner
54245 }
54246}
54247pub struct VideoEncodeUsageInfoKHRBuilder<'a> {
54249 inner: VideoEncodeUsageInfoKHR,
54250 _marker: core::marker::PhantomData<&'a ()>,
54251}
54252impl VideoEncodeUsageInfoKHR {
54253 #[inline]
54255 pub fn builder<'a>() -> VideoEncodeUsageInfoKHRBuilder<'a> {
54256 VideoEncodeUsageInfoKHRBuilder {
54257 inner: VideoEncodeUsageInfoKHR {
54258 s_type: StructureType::from_raw(1000299004i32),
54259 ..Default::default()
54260 },
54261 _marker: core::marker::PhantomData,
54262 }
54263 }
54264}
54265impl<'a> VideoEncodeUsageInfoKHRBuilder<'a> {
54266 #[inline]
54267 pub fn video_usage_hints(mut self, value: VideoEncodeUsageFlagsKHR) -> Self {
54268 self.inner.video_usage_hints = value;
54269 self
54270 }
54271 #[inline]
54272 pub fn video_content_hints(mut self, value: VideoEncodeContentFlagsKHR) -> Self {
54273 self.inner.video_content_hints = value;
54274 self
54275 }
54276 #[inline]
54277 pub fn tuning_mode(mut self, value: VideoEncodeTuningModeKHR) -> Self {
54278 self.inner.tuning_mode = value;
54279 self
54280 }
54281 #[inline]
54283 pub fn push_next<T: ExtendsVideoEncodeUsageInfoKHR>(
54284 mut self,
54285 next: &'a mut T,
54286 ) -> Self {
54287 unsafe {
54288 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54289 (*next_ptr).p_next = self.inner.p_next as *mut _;
54290 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54291 core::ffi::c_void,
54292 >(next_ptr) as *const _;
54293 }
54294 self
54295 }
54296}
54297impl<'a> core::ops::Deref for VideoEncodeUsageInfoKHRBuilder<'a> {
54298 type Target = VideoEncodeUsageInfoKHR;
54299 #[inline]
54300 fn deref(&self) -> &Self::Target {
54301 &self.inner
54302 }
54303}
54304impl<'a> core::ops::DerefMut for VideoEncodeUsageInfoKHRBuilder<'a> {
54305 #[inline]
54306 fn deref_mut(&mut self) -> &mut Self::Target {
54307 &mut self.inner
54308 }
54309}
54310pub struct VideoEncodeInfoKHRBuilder<'a> {
54312 inner: VideoEncodeInfoKHR,
54313 _marker: core::marker::PhantomData<&'a ()>,
54314}
54315impl VideoEncodeInfoKHR {
54316 #[inline]
54318 pub fn builder<'a>() -> VideoEncodeInfoKHRBuilder<'a> {
54319 VideoEncodeInfoKHRBuilder {
54320 inner: VideoEncodeInfoKHR {
54321 s_type: StructureType::from_raw(1000299000i32),
54322 ..Default::default()
54323 },
54324 _marker: core::marker::PhantomData,
54325 }
54326 }
54327}
54328impl<'a> VideoEncodeInfoKHRBuilder<'a> {
54329 #[inline]
54330 pub fn flags(mut self, value: VideoEncodeFlagsKHR) -> Self {
54331 self.inner.flags = value;
54332 self
54333 }
54334 #[inline]
54335 pub fn dst_buffer(mut self, value: Buffer) -> Self {
54336 self.inner.dst_buffer = value;
54337 self
54338 }
54339 #[inline]
54340 pub fn dst_buffer_offset(mut self, value: u64) -> Self {
54341 self.inner.dst_buffer_offset = value;
54342 self
54343 }
54344 #[inline]
54345 pub fn dst_buffer_range(mut self, value: u64) -> Self {
54346 self.inner.dst_buffer_range = value;
54347 self
54348 }
54349 #[inline]
54350 pub fn src_picture_resource(mut self, value: VideoPictureResourceInfoKHR) -> Self {
54351 self.inner.src_picture_resource = value;
54352 self
54353 }
54354 #[inline]
54355 pub fn setup_reference_slot(mut self, value: &'a VideoReferenceSlotInfoKHR) -> Self {
54356 self.inner.p_setup_reference_slot = value;
54357 self
54358 }
54359 #[inline]
54360 pub fn reference_slots(mut self, slice: &'a [VideoReferenceSlotInfoKHR]) -> Self {
54361 self.inner.reference_slot_count = slice.len() as u32;
54362 self.inner.p_reference_slots = slice.as_ptr();
54363 self
54364 }
54365 #[inline]
54366 pub fn preceding_externally_encoded_bytes(mut self, value: u32) -> Self {
54367 self.inner.preceding_externally_encoded_bytes = value;
54368 self
54369 }
54370 #[inline]
54372 pub fn push_next<T: ExtendsVideoEncodeInfoKHR>(mut self, next: &'a mut T) -> Self {
54373 unsafe {
54374 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54375 (*next_ptr).p_next = self.inner.p_next as *mut _;
54376 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54377 core::ffi::c_void,
54378 >(next_ptr) as *const _;
54379 }
54380 self
54381 }
54382}
54383impl<'a> core::ops::Deref for VideoEncodeInfoKHRBuilder<'a> {
54384 type Target = VideoEncodeInfoKHR;
54385 #[inline]
54386 fn deref(&self) -> &Self::Target {
54387 &self.inner
54388 }
54389}
54390impl<'a> core::ops::DerefMut for VideoEncodeInfoKHRBuilder<'a> {
54391 #[inline]
54392 fn deref_mut(&mut self) -> &mut Self::Target {
54393 &mut self.inner
54394 }
54395}
54396pub struct VideoEncodeQuantizationMapInfoKHRBuilder<'a> {
54398 inner: VideoEncodeQuantizationMapInfoKHR,
54399 _marker: core::marker::PhantomData<&'a ()>,
54400}
54401impl VideoEncodeQuantizationMapInfoKHR {
54402 #[inline]
54404 pub fn builder<'a>() -> VideoEncodeQuantizationMapInfoKHRBuilder<'a> {
54405 VideoEncodeQuantizationMapInfoKHRBuilder {
54406 inner: VideoEncodeQuantizationMapInfoKHR {
54407 s_type: StructureType::from_raw(1000553002i32),
54408 ..Default::default()
54409 },
54410 _marker: core::marker::PhantomData,
54411 }
54412 }
54413}
54414impl<'a> VideoEncodeQuantizationMapInfoKHRBuilder<'a> {
54415 #[inline]
54416 pub fn quantization_map(mut self, value: ImageView) -> Self {
54417 self.inner.quantization_map = value;
54418 self
54419 }
54420 #[inline]
54421 pub fn quantization_map_extent(mut self, value: Extent2D) -> Self {
54422 self.inner.quantization_map_extent = value;
54423 self
54424 }
54425 #[inline]
54427 pub fn push_next<T: ExtendsVideoEncodeQuantizationMapInfoKHR>(
54428 mut self,
54429 next: &'a mut T,
54430 ) -> Self {
54431 unsafe {
54432 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54433 (*next_ptr).p_next = self.inner.p_next as *mut _;
54434 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54435 core::ffi::c_void,
54436 >(next_ptr) as *const _;
54437 }
54438 self
54439 }
54440}
54441impl<'a> core::ops::Deref for VideoEncodeQuantizationMapInfoKHRBuilder<'a> {
54442 type Target = VideoEncodeQuantizationMapInfoKHR;
54443 #[inline]
54444 fn deref(&self) -> &Self::Target {
54445 &self.inner
54446 }
54447}
54448impl<'a> core::ops::DerefMut for VideoEncodeQuantizationMapInfoKHRBuilder<'a> {
54449 #[inline]
54450 fn deref_mut(&mut self) -> &mut Self::Target {
54451 &mut self.inner
54452 }
54453}
54454pub struct VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder<'a> {
54456 inner: VideoEncodeQuantizationMapSessionParametersCreateInfoKHR,
54457 _marker: core::marker::PhantomData<&'a ()>,
54458}
54459impl VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
54460 #[inline]
54462 pub fn builder<'a>() -> VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder<
54463 'a,
54464 > {
54465 VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder {
54466 inner: VideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
54467 s_type: StructureType::from_raw(1000553005i32),
54468 ..Default::default()
54469 },
54470 _marker: core::marker::PhantomData,
54471 }
54472 }
54473}
54474impl<'a> VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder<'a> {
54475 #[inline]
54476 pub fn quantization_map_texel_size(mut self, value: Extent2D) -> Self {
54477 self.inner.quantization_map_texel_size = value;
54478 self
54479 }
54480 #[inline]
54482 pub fn push_next<T: ExtendsVideoEncodeQuantizationMapSessionParametersCreateInfoKHR>(
54483 mut self,
54484 next: &'a mut T,
54485 ) -> Self {
54486 unsafe {
54487 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54488 (*next_ptr).p_next = self.inner.p_next as *mut _;
54489 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54490 core::ffi::c_void,
54491 >(next_ptr) as *const _;
54492 }
54493 self
54494 }
54495}
54496impl<'a> core::ops::Deref
54497for VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder<'a> {
54498 type Target = VideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
54499 #[inline]
54500 fn deref(&self) -> &Self::Target {
54501 &self.inner
54502 }
54503}
54504impl<'a> core::ops::DerefMut
54505for VideoEncodeQuantizationMapSessionParametersCreateInfoKHRBuilder<'a> {
54506 #[inline]
54507 fn deref_mut(&mut self) -> &mut Self::Target {
54508 &mut self.inner
54509 }
54510}
54511pub struct PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder<'a> {
54513 inner: PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR,
54514 _marker: core::marker::PhantomData<&'a ()>,
54515}
54516impl PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
54517 #[inline]
54519 pub fn builder<'a>() -> PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder<
54520 'a,
54521 > {
54522 PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder {
54523 inner: PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
54524 s_type: StructureType::from_raw(1000553009i32),
54525 ..Default::default()
54526 },
54527 _marker: core::marker::PhantomData,
54528 }
54529 }
54530}
54531impl<'a> PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder<'a> {
54532 #[inline]
54533 pub fn video_encode_quantization_map(mut self, value: bool) -> Self {
54534 self.inner.video_encode_quantization_map = value as u32;
54535 self
54536 }
54537 #[inline]
54539 pub fn push_next<T: ExtendsPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR>(
54540 mut self,
54541 next: &'a mut T,
54542 ) -> Self {
54543 unsafe {
54544 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54545 (*next_ptr).p_next = self.inner.p_next as *mut _;
54546 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54547 core::ffi::c_void,
54548 >(next_ptr);
54549 }
54550 self
54551 }
54552}
54553impl<'a> core::ops::Deref
54554for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder<'a> {
54555 type Target = PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
54556 #[inline]
54557 fn deref(&self) -> &Self::Target {
54558 &self.inner
54559 }
54560}
54561impl<'a> core::ops::DerefMut
54562for PhysicalDeviceVideoEncodeQuantizationMapFeaturesKHRBuilder<'a> {
54563 #[inline]
54564 fn deref_mut(&mut self) -> &mut Self::Target {
54565 &mut self.inner
54566 }
54567}
54568pub struct QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder<'a> {
54570 inner: QueryPoolVideoEncodeFeedbackCreateInfoKHR,
54571 _marker: core::marker::PhantomData<&'a ()>,
54572}
54573impl QueryPoolVideoEncodeFeedbackCreateInfoKHR {
54574 #[inline]
54576 pub fn builder<'a>() -> QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder<'a> {
54577 QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder {
54578 inner: QueryPoolVideoEncodeFeedbackCreateInfoKHR {
54579 s_type: StructureType::from_raw(1000299005i32),
54580 ..Default::default()
54581 },
54582 _marker: core::marker::PhantomData,
54583 }
54584 }
54585}
54586impl<'a> QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder<'a> {
54587 #[inline]
54588 pub fn encode_feedback_flags(mut self, value: VideoEncodeFeedbackFlagsKHR) -> Self {
54589 self.inner.encode_feedback_flags = value;
54590 self
54591 }
54592 #[inline]
54594 pub fn push_next<T: ExtendsQueryPoolVideoEncodeFeedbackCreateInfoKHR>(
54595 mut self,
54596 next: &'a mut T,
54597 ) -> Self {
54598 unsafe {
54599 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54600 (*next_ptr).p_next = self.inner.p_next as *mut _;
54601 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54602 core::ffi::c_void,
54603 >(next_ptr) as *const _;
54604 }
54605 self
54606 }
54607}
54608impl<'a> core::ops::Deref for QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder<'a> {
54609 type Target = QueryPoolVideoEncodeFeedbackCreateInfoKHR;
54610 #[inline]
54611 fn deref(&self) -> &Self::Target {
54612 &self.inner
54613 }
54614}
54615impl<'a> core::ops::DerefMut for QueryPoolVideoEncodeFeedbackCreateInfoKHRBuilder<'a> {
54616 #[inline]
54617 fn deref_mut(&mut self) -> &mut Self::Target {
54618 &mut self.inner
54619 }
54620}
54621pub struct VideoEncodeQualityLevelInfoKHRBuilder<'a> {
54623 inner: VideoEncodeQualityLevelInfoKHR,
54624 _marker: core::marker::PhantomData<&'a ()>,
54625}
54626impl VideoEncodeQualityLevelInfoKHR {
54627 #[inline]
54629 pub fn builder<'a>() -> VideoEncodeQualityLevelInfoKHRBuilder<'a> {
54630 VideoEncodeQualityLevelInfoKHRBuilder {
54631 inner: VideoEncodeQualityLevelInfoKHR {
54632 s_type: StructureType::from_raw(1000299008i32),
54633 ..Default::default()
54634 },
54635 _marker: core::marker::PhantomData,
54636 }
54637 }
54638}
54639impl<'a> VideoEncodeQualityLevelInfoKHRBuilder<'a> {
54640 #[inline]
54641 pub fn quality_level(mut self, value: u32) -> Self {
54642 self.inner.quality_level = value;
54643 self
54644 }
54645 #[inline]
54647 pub fn push_next<T: ExtendsVideoEncodeQualityLevelInfoKHR>(
54648 mut self,
54649 next: &'a mut T,
54650 ) -> Self {
54651 unsafe {
54652 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54653 (*next_ptr).p_next = self.inner.p_next as *mut _;
54654 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54655 core::ffi::c_void,
54656 >(next_ptr) as *const _;
54657 }
54658 self
54659 }
54660}
54661impl<'a> core::ops::Deref for VideoEncodeQualityLevelInfoKHRBuilder<'a> {
54662 type Target = VideoEncodeQualityLevelInfoKHR;
54663 #[inline]
54664 fn deref(&self) -> &Self::Target {
54665 &self.inner
54666 }
54667}
54668impl<'a> core::ops::DerefMut for VideoEncodeQualityLevelInfoKHRBuilder<'a> {
54669 #[inline]
54670 fn deref_mut(&mut self) -> &mut Self::Target {
54671 &mut self.inner
54672 }
54673}
54674pub struct PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder<'a> {
54676 inner: PhysicalDeviceVideoEncodeQualityLevelInfoKHR,
54677 _marker: core::marker::PhantomData<&'a ()>,
54678}
54679impl PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
54680 #[inline]
54682 pub fn builder<'a>() -> PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder<'a> {
54683 PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder {
54684 inner: PhysicalDeviceVideoEncodeQualityLevelInfoKHR {
54685 s_type: StructureType::from_raw(1000299006i32),
54686 ..Default::default()
54687 },
54688 _marker: core::marker::PhantomData,
54689 }
54690 }
54691}
54692impl<'a> PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder<'a> {
54693 #[inline]
54694 pub fn video_profile(mut self, value: &'a VideoProfileInfoKHR) -> Self {
54695 self.inner.p_video_profile = value;
54696 self
54697 }
54698 #[inline]
54699 pub fn quality_level(mut self, value: u32) -> Self {
54700 self.inner.quality_level = value;
54701 self
54702 }
54703 #[inline]
54705 pub fn push_next<T: ExtendsPhysicalDeviceVideoEncodeQualityLevelInfoKHR>(
54706 mut self,
54707 next: &'a mut T,
54708 ) -> Self {
54709 unsafe {
54710 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54711 (*next_ptr).p_next = self.inner.p_next as *mut _;
54712 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54713 core::ffi::c_void,
54714 >(next_ptr) as *const _;
54715 }
54716 self
54717 }
54718}
54719impl<'a> core::ops::Deref for PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder<'a> {
54720 type Target = PhysicalDeviceVideoEncodeQualityLevelInfoKHR;
54721 #[inline]
54722 fn deref(&self) -> &Self::Target {
54723 &self.inner
54724 }
54725}
54726impl<'a> core::ops::DerefMut
54727for PhysicalDeviceVideoEncodeQualityLevelInfoKHRBuilder<'a> {
54728 #[inline]
54729 fn deref_mut(&mut self) -> &mut Self::Target {
54730 &mut self.inner
54731 }
54732}
54733pub struct VideoEncodeQualityLevelPropertiesKHRBuilder<'a> {
54735 inner: VideoEncodeQualityLevelPropertiesKHR,
54736 _marker: core::marker::PhantomData<&'a ()>,
54737}
54738impl VideoEncodeQualityLevelPropertiesKHR {
54739 #[inline]
54741 pub fn builder<'a>() -> VideoEncodeQualityLevelPropertiesKHRBuilder<'a> {
54742 VideoEncodeQualityLevelPropertiesKHRBuilder {
54743 inner: VideoEncodeQualityLevelPropertiesKHR {
54744 s_type: StructureType::from_raw(1000299007i32),
54745 ..Default::default()
54746 },
54747 _marker: core::marker::PhantomData,
54748 }
54749 }
54750}
54751impl<'a> VideoEncodeQualityLevelPropertiesKHRBuilder<'a> {
54752 #[inline]
54753 pub fn preferred_rate_control_mode(
54754 mut self,
54755 value: VideoEncodeRateControlModeFlagBitsKHR,
54756 ) -> Self {
54757 self.inner.preferred_rate_control_mode = value;
54758 self
54759 }
54760 #[inline]
54761 pub fn preferred_rate_control_layer_count(mut self, value: u32) -> Self {
54762 self.inner.preferred_rate_control_layer_count = value;
54763 self
54764 }
54765}
54766impl<'a> core::ops::Deref for VideoEncodeQualityLevelPropertiesKHRBuilder<'a> {
54767 type Target = VideoEncodeQualityLevelPropertiesKHR;
54768 #[inline]
54769 fn deref(&self) -> &Self::Target {
54770 &self.inner
54771 }
54772}
54773impl<'a> core::ops::DerefMut for VideoEncodeQualityLevelPropertiesKHRBuilder<'a> {
54774 #[inline]
54775 fn deref_mut(&mut self) -> &mut Self::Target {
54776 &mut self.inner
54777 }
54778}
54779pub struct VideoEncodeRateControlInfoKHRBuilder<'a> {
54781 inner: VideoEncodeRateControlInfoKHR,
54782 _marker: core::marker::PhantomData<&'a ()>,
54783}
54784impl VideoEncodeRateControlInfoKHR {
54785 #[inline]
54787 pub fn builder<'a>() -> VideoEncodeRateControlInfoKHRBuilder<'a> {
54788 VideoEncodeRateControlInfoKHRBuilder {
54789 inner: VideoEncodeRateControlInfoKHR {
54790 s_type: StructureType::from_raw(1000299001i32),
54791 ..Default::default()
54792 },
54793 _marker: core::marker::PhantomData,
54794 }
54795 }
54796}
54797impl<'a> VideoEncodeRateControlInfoKHRBuilder<'a> {
54798 #[inline]
54799 pub fn flags(mut self, value: VideoEncodeRateControlFlagsKHR) -> Self {
54800 self.inner.flags = value;
54801 self
54802 }
54803 #[inline]
54804 pub fn rate_control_mode(
54805 mut self,
54806 value: VideoEncodeRateControlModeFlagBitsKHR,
54807 ) -> Self {
54808 self.inner.rate_control_mode = value;
54809 self
54810 }
54811 #[inline]
54812 pub fn layers(mut self, slice: &'a [VideoEncodeRateControlLayerInfoKHR]) -> Self {
54813 self.inner.layer_count = slice.len() as u32;
54814 self.inner.p_layers = slice.as_ptr();
54815 self
54816 }
54817 #[inline]
54818 pub fn virtual_buffer_size_in_ms(mut self, value: u32) -> Self {
54819 self.inner.virtual_buffer_size_in_ms = value;
54820 self
54821 }
54822 #[inline]
54823 pub fn initial_virtual_buffer_size_in_ms(mut self, value: u32) -> Self {
54824 self.inner.initial_virtual_buffer_size_in_ms = value;
54825 self
54826 }
54827 #[inline]
54829 pub fn push_next<T: ExtendsVideoEncodeRateControlInfoKHR>(
54830 mut self,
54831 next: &'a mut T,
54832 ) -> Self {
54833 unsafe {
54834 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54835 (*next_ptr).p_next = self.inner.p_next as *mut _;
54836 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54837 core::ffi::c_void,
54838 >(next_ptr) as *const _;
54839 }
54840 self
54841 }
54842}
54843impl<'a> core::ops::Deref for VideoEncodeRateControlInfoKHRBuilder<'a> {
54844 type Target = VideoEncodeRateControlInfoKHR;
54845 #[inline]
54846 fn deref(&self) -> &Self::Target {
54847 &self.inner
54848 }
54849}
54850impl<'a> core::ops::DerefMut for VideoEncodeRateControlInfoKHRBuilder<'a> {
54851 #[inline]
54852 fn deref_mut(&mut self) -> &mut Self::Target {
54853 &mut self.inner
54854 }
54855}
54856pub struct VideoEncodeRateControlLayerInfoKHRBuilder<'a> {
54858 inner: VideoEncodeRateControlLayerInfoKHR,
54859 _marker: core::marker::PhantomData<&'a ()>,
54860}
54861impl VideoEncodeRateControlLayerInfoKHR {
54862 #[inline]
54864 pub fn builder<'a>() -> VideoEncodeRateControlLayerInfoKHRBuilder<'a> {
54865 VideoEncodeRateControlLayerInfoKHRBuilder {
54866 inner: VideoEncodeRateControlLayerInfoKHR {
54867 s_type: StructureType::from_raw(1000299002i32),
54868 ..Default::default()
54869 },
54870 _marker: core::marker::PhantomData,
54871 }
54872 }
54873}
54874impl<'a> VideoEncodeRateControlLayerInfoKHRBuilder<'a> {
54875 #[inline]
54876 pub fn average_bitrate(mut self, value: u64) -> Self {
54877 self.inner.average_bitrate = value;
54878 self
54879 }
54880 #[inline]
54881 pub fn max_bitrate(mut self, value: u64) -> Self {
54882 self.inner.max_bitrate = value;
54883 self
54884 }
54885 #[inline]
54886 pub fn frame_rate_numerator(mut self, value: u32) -> Self {
54887 self.inner.frame_rate_numerator = value;
54888 self
54889 }
54890 #[inline]
54891 pub fn frame_rate_denominator(mut self, value: u32) -> Self {
54892 self.inner.frame_rate_denominator = value;
54893 self
54894 }
54895 #[inline]
54897 pub fn push_next<T: ExtendsVideoEncodeRateControlLayerInfoKHR>(
54898 mut self,
54899 next: &'a mut T,
54900 ) -> Self {
54901 unsafe {
54902 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
54903 (*next_ptr).p_next = self.inner.p_next as *mut _;
54904 self.inner.p_next = <*mut BaseOutStructure>::cast::<
54905 core::ffi::c_void,
54906 >(next_ptr) as *const _;
54907 }
54908 self
54909 }
54910}
54911impl<'a> core::ops::Deref for VideoEncodeRateControlLayerInfoKHRBuilder<'a> {
54912 type Target = VideoEncodeRateControlLayerInfoKHR;
54913 #[inline]
54914 fn deref(&self) -> &Self::Target {
54915 &self.inner
54916 }
54917}
54918impl<'a> core::ops::DerefMut for VideoEncodeRateControlLayerInfoKHRBuilder<'a> {
54919 #[inline]
54920 fn deref_mut(&mut self) -> &mut Self::Target {
54921 &mut self.inner
54922 }
54923}
54924pub struct VideoEncodeCapabilitiesKHRBuilder<'a> {
54926 inner: VideoEncodeCapabilitiesKHR,
54927 _marker: core::marker::PhantomData<&'a ()>,
54928}
54929impl VideoEncodeCapabilitiesKHR {
54930 #[inline]
54932 pub fn builder<'a>() -> VideoEncodeCapabilitiesKHRBuilder<'a> {
54933 VideoEncodeCapabilitiesKHRBuilder {
54934 inner: VideoEncodeCapabilitiesKHR {
54935 s_type: StructureType::from_raw(1000299003i32),
54936 ..Default::default()
54937 },
54938 _marker: core::marker::PhantomData,
54939 }
54940 }
54941}
54942impl<'a> VideoEncodeCapabilitiesKHRBuilder<'a> {
54943 #[inline]
54944 pub fn flags(mut self, value: VideoEncodeCapabilityFlagsKHR) -> Self {
54945 self.inner.flags = value;
54946 self
54947 }
54948 #[inline]
54949 pub fn rate_control_modes(
54950 mut self,
54951 value: VideoEncodeRateControlModeFlagsKHR,
54952 ) -> Self {
54953 self.inner.rate_control_modes = value;
54954 self
54955 }
54956 #[inline]
54957 pub fn max_rate_control_layers(mut self, value: u32) -> Self {
54958 self.inner.max_rate_control_layers = value;
54959 self
54960 }
54961 #[inline]
54962 pub fn max_bitrate(mut self, value: u64) -> Self {
54963 self.inner.max_bitrate = value;
54964 self
54965 }
54966 #[inline]
54967 pub fn max_quality_levels(mut self, value: u32) -> Self {
54968 self.inner.max_quality_levels = value;
54969 self
54970 }
54971 #[inline]
54972 pub fn encode_input_picture_granularity(mut self, value: Extent2D) -> Self {
54973 self.inner.encode_input_picture_granularity = value;
54974 self
54975 }
54976 #[inline]
54977 pub fn supported_encode_feedback_flags(
54978 mut self,
54979 value: VideoEncodeFeedbackFlagsKHR,
54980 ) -> Self {
54981 self.inner.supported_encode_feedback_flags = value;
54982 self
54983 }
54984}
54985impl<'a> core::ops::Deref for VideoEncodeCapabilitiesKHRBuilder<'a> {
54986 type Target = VideoEncodeCapabilitiesKHR;
54987 #[inline]
54988 fn deref(&self) -> &Self::Target {
54989 &self.inner
54990 }
54991}
54992impl<'a> core::ops::DerefMut for VideoEncodeCapabilitiesKHRBuilder<'a> {
54993 #[inline]
54994 fn deref_mut(&mut self) -> &mut Self::Target {
54995 &mut self.inner
54996 }
54997}
54998pub struct VideoEncodeH264CapabilitiesKHRBuilder<'a> {
55000 inner: VideoEncodeH264CapabilitiesKHR,
55001 _marker: core::marker::PhantomData<&'a ()>,
55002}
55003impl VideoEncodeH264CapabilitiesKHR {
55004 #[inline]
55006 pub fn builder<'a>() -> VideoEncodeH264CapabilitiesKHRBuilder<'a> {
55007 VideoEncodeH264CapabilitiesKHRBuilder {
55008 inner: VideoEncodeH264CapabilitiesKHR {
55009 s_type: StructureType::from_raw(1000038000i32),
55010 ..Default::default()
55011 },
55012 _marker: core::marker::PhantomData,
55013 }
55014 }
55015}
55016impl<'a> VideoEncodeH264CapabilitiesKHRBuilder<'a> {
55017 #[inline]
55018 pub fn flags(mut self, value: VideoEncodeH264CapabilityFlagsKHR) -> Self {
55019 self.inner.flags = value;
55020 self
55021 }
55022 #[inline]
55023 pub fn max_level_idc(mut self, value: StdVideoH264LevelIdc) -> Self {
55024 self.inner.max_level_idc = value;
55025 self
55026 }
55027 #[inline]
55028 pub fn max_slice_count(mut self, value: u32) -> Self {
55029 self.inner.max_slice_count = value;
55030 self
55031 }
55032 #[inline]
55033 pub fn max_p_picture_l0_reference_count(mut self, value: u32) -> Self {
55034 self.inner.max_p_picture_l0_reference_count = value;
55035 self
55036 }
55037 #[inline]
55038 pub fn max_b_picture_l0_reference_count(mut self, value: u32) -> Self {
55039 self.inner.max_b_picture_l0_reference_count = value;
55040 self
55041 }
55042 #[inline]
55043 pub fn max_l1_reference_count(mut self, value: u32) -> Self {
55044 self.inner.max_l1_reference_count = value;
55045 self
55046 }
55047 #[inline]
55048 pub fn max_temporal_layer_count(mut self, value: u32) -> Self {
55049 self.inner.max_temporal_layer_count = value;
55050 self
55051 }
55052 #[inline]
55053 pub fn expect_dyadic_temporal_layer_pattern(mut self, value: bool) -> Self {
55054 self.inner.expect_dyadic_temporal_layer_pattern = value as u32;
55055 self
55056 }
55057 #[inline]
55058 pub fn min_qp(mut self, value: i32) -> Self {
55059 self.inner.min_qp = value;
55060 self
55061 }
55062 #[inline]
55063 pub fn max_qp(mut self, value: i32) -> Self {
55064 self.inner.max_qp = value;
55065 self
55066 }
55067 #[inline]
55068 pub fn prefers_gop_remaining_frames(mut self, value: bool) -> Self {
55069 self.inner.prefers_gop_remaining_frames = value as u32;
55070 self
55071 }
55072 #[inline]
55073 pub fn requires_gop_remaining_frames(mut self, value: bool) -> Self {
55074 self.inner.requires_gop_remaining_frames = value as u32;
55075 self
55076 }
55077 #[inline]
55078 pub fn std_syntax_flags(mut self, value: VideoEncodeH264StdFlagsKHR) -> Self {
55079 self.inner.std_syntax_flags = value;
55080 self
55081 }
55082}
55083impl<'a> core::ops::Deref for VideoEncodeH264CapabilitiesKHRBuilder<'a> {
55084 type Target = VideoEncodeH264CapabilitiesKHR;
55085 #[inline]
55086 fn deref(&self) -> &Self::Target {
55087 &self.inner
55088 }
55089}
55090impl<'a> core::ops::DerefMut for VideoEncodeH264CapabilitiesKHRBuilder<'a> {
55091 #[inline]
55092 fn deref_mut(&mut self) -> &mut Self::Target {
55093 &mut self.inner
55094 }
55095}
55096pub struct VideoEncodeH264QualityLevelPropertiesKHRBuilder<'a> {
55098 inner: VideoEncodeH264QualityLevelPropertiesKHR,
55099 _marker: core::marker::PhantomData<&'a ()>,
55100}
55101impl VideoEncodeH264QualityLevelPropertiesKHR {
55102 #[inline]
55104 pub fn builder<'a>() -> VideoEncodeH264QualityLevelPropertiesKHRBuilder<'a> {
55105 VideoEncodeH264QualityLevelPropertiesKHRBuilder {
55106 inner: VideoEncodeH264QualityLevelPropertiesKHR {
55107 s_type: StructureType::from_raw(1000038011i32),
55108 ..Default::default()
55109 },
55110 _marker: core::marker::PhantomData,
55111 }
55112 }
55113}
55114impl<'a> VideoEncodeH264QualityLevelPropertiesKHRBuilder<'a> {
55115 #[inline]
55116 pub fn preferred_rate_control_flags(
55117 mut self,
55118 value: VideoEncodeH264RateControlFlagsKHR,
55119 ) -> Self {
55120 self.inner.preferred_rate_control_flags = value;
55121 self
55122 }
55123 #[inline]
55124 pub fn preferred_gop_frame_count(mut self, value: u32) -> Self {
55125 self.inner.preferred_gop_frame_count = value;
55126 self
55127 }
55128 #[inline]
55129 pub fn preferred_idr_period(mut self, value: u32) -> Self {
55130 self.inner.preferred_idr_period = value;
55131 self
55132 }
55133 #[inline]
55134 pub fn preferred_consecutive_b_frame_count(mut self, value: u32) -> Self {
55135 self.inner.preferred_consecutive_b_frame_count = value;
55136 self
55137 }
55138 #[inline]
55139 pub fn preferred_temporal_layer_count(mut self, value: u32) -> Self {
55140 self.inner.preferred_temporal_layer_count = value;
55141 self
55142 }
55143 #[inline]
55144 pub fn preferred_constant_qp(mut self, value: VideoEncodeH264QpKHR) -> Self {
55145 self.inner.preferred_constant_qp = value;
55146 self
55147 }
55148 #[inline]
55149 pub fn preferred_max_l0_reference_count(mut self, value: u32) -> Self {
55150 self.inner.preferred_max_l0_reference_count = value;
55151 self
55152 }
55153 #[inline]
55154 pub fn preferred_max_l1_reference_count(mut self, value: u32) -> Self {
55155 self.inner.preferred_max_l1_reference_count = value;
55156 self
55157 }
55158 #[inline]
55159 pub fn preferred_std_entropy_coding_mode_flag(mut self, value: bool) -> Self {
55160 self.inner.preferred_std_entropy_coding_mode_flag = value as u32;
55161 self
55162 }
55163}
55164impl<'a> core::ops::Deref for VideoEncodeH264QualityLevelPropertiesKHRBuilder<'a> {
55165 type Target = VideoEncodeH264QualityLevelPropertiesKHR;
55166 #[inline]
55167 fn deref(&self) -> &Self::Target {
55168 &self.inner
55169 }
55170}
55171impl<'a> core::ops::DerefMut for VideoEncodeH264QualityLevelPropertiesKHRBuilder<'a> {
55172 #[inline]
55173 fn deref_mut(&mut self) -> &mut Self::Target {
55174 &mut self.inner
55175 }
55176}
55177pub struct VideoEncodeH264SessionCreateInfoKHRBuilder<'a> {
55179 inner: VideoEncodeH264SessionCreateInfoKHR,
55180 _marker: core::marker::PhantomData<&'a ()>,
55181}
55182impl VideoEncodeH264SessionCreateInfoKHR {
55183 #[inline]
55185 pub fn builder<'a>() -> VideoEncodeH264SessionCreateInfoKHRBuilder<'a> {
55186 VideoEncodeH264SessionCreateInfoKHRBuilder {
55187 inner: VideoEncodeH264SessionCreateInfoKHR {
55188 s_type: StructureType::from_raw(1000038010i32),
55189 ..Default::default()
55190 },
55191 _marker: core::marker::PhantomData,
55192 }
55193 }
55194}
55195impl<'a> VideoEncodeH264SessionCreateInfoKHRBuilder<'a> {
55196 #[inline]
55197 pub fn use_max_level_idc(mut self, value: bool) -> Self {
55198 self.inner.use_max_level_idc = value as u32;
55199 self
55200 }
55201 #[inline]
55202 pub fn max_level_idc(mut self, value: StdVideoH264LevelIdc) -> Self {
55203 self.inner.max_level_idc = value;
55204 self
55205 }
55206 #[inline]
55208 pub fn push_next<T: ExtendsVideoEncodeH264SessionCreateInfoKHR>(
55209 mut self,
55210 next: &'a mut T,
55211 ) -> Self {
55212 unsafe {
55213 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55214 (*next_ptr).p_next = self.inner.p_next as *mut _;
55215 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55216 core::ffi::c_void,
55217 >(next_ptr) as *const _;
55218 }
55219 self
55220 }
55221}
55222impl<'a> core::ops::Deref for VideoEncodeH264SessionCreateInfoKHRBuilder<'a> {
55223 type Target = VideoEncodeH264SessionCreateInfoKHR;
55224 #[inline]
55225 fn deref(&self) -> &Self::Target {
55226 &self.inner
55227 }
55228}
55229impl<'a> core::ops::DerefMut for VideoEncodeH264SessionCreateInfoKHRBuilder<'a> {
55230 #[inline]
55231 fn deref_mut(&mut self) -> &mut Self::Target {
55232 &mut self.inner
55233 }
55234}
55235pub struct VideoEncodeH264SessionParametersAddInfoKHRBuilder<'a> {
55237 inner: VideoEncodeH264SessionParametersAddInfoKHR,
55238 _marker: core::marker::PhantomData<&'a ()>,
55239}
55240impl VideoEncodeH264SessionParametersAddInfoKHR {
55241 #[inline]
55243 pub fn builder<'a>() -> VideoEncodeH264SessionParametersAddInfoKHRBuilder<'a> {
55244 VideoEncodeH264SessionParametersAddInfoKHRBuilder {
55245 inner: VideoEncodeH264SessionParametersAddInfoKHR {
55246 s_type: StructureType::from_raw(1000038002i32),
55247 ..Default::default()
55248 },
55249 _marker: core::marker::PhantomData,
55250 }
55251 }
55252}
55253impl<'a> VideoEncodeH264SessionParametersAddInfoKHRBuilder<'a> {
55254 #[inline]
55255 pub fn std_sps_count(mut self, value: u32) -> Self {
55256 self.inner.std_sps_count = value;
55257 self
55258 }
55259 #[inline]
55260 pub fn std_sp_ss(mut self, slice: &'a [StdVideoH264SequenceParameterSet]) -> Self {
55261 self.inner.std_sps_count = slice.len() as u32;
55262 self.inner.p_std_sp_ss = slice.as_ptr();
55263 self
55264 }
55265 #[inline]
55266 pub fn std_pps_count(mut self, value: u32) -> Self {
55267 self.inner.std_pps_count = value;
55268 self
55269 }
55270 #[inline]
55271 pub fn std_pp_ss(mut self, slice: &'a [StdVideoH264PictureParameterSet]) -> Self {
55272 self.inner.std_pps_count = slice.len() as u32;
55273 self.inner.p_std_pp_ss = slice.as_ptr();
55274 self
55275 }
55276 #[inline]
55278 pub fn push_next<T: ExtendsVideoEncodeH264SessionParametersAddInfoKHR>(
55279 mut self,
55280 next: &'a mut T,
55281 ) -> Self {
55282 unsafe {
55283 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55284 (*next_ptr).p_next = self.inner.p_next as *mut _;
55285 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55286 core::ffi::c_void,
55287 >(next_ptr) as *const _;
55288 }
55289 self
55290 }
55291}
55292impl<'a> core::ops::Deref for VideoEncodeH264SessionParametersAddInfoKHRBuilder<'a> {
55293 type Target = VideoEncodeH264SessionParametersAddInfoKHR;
55294 #[inline]
55295 fn deref(&self) -> &Self::Target {
55296 &self.inner
55297 }
55298}
55299impl<'a> core::ops::DerefMut for VideoEncodeH264SessionParametersAddInfoKHRBuilder<'a> {
55300 #[inline]
55301 fn deref_mut(&mut self) -> &mut Self::Target {
55302 &mut self.inner
55303 }
55304}
55305pub struct VideoEncodeH264SessionParametersCreateInfoKHRBuilder<'a> {
55307 inner: VideoEncodeH264SessionParametersCreateInfoKHR,
55308 _marker: core::marker::PhantomData<&'a ()>,
55309}
55310impl VideoEncodeH264SessionParametersCreateInfoKHR {
55311 #[inline]
55313 pub fn builder<'a>() -> VideoEncodeH264SessionParametersCreateInfoKHRBuilder<'a> {
55314 VideoEncodeH264SessionParametersCreateInfoKHRBuilder {
55315 inner: VideoEncodeH264SessionParametersCreateInfoKHR {
55316 s_type: StructureType::from_raw(1000038001i32),
55317 ..Default::default()
55318 },
55319 _marker: core::marker::PhantomData,
55320 }
55321 }
55322}
55323impl<'a> VideoEncodeH264SessionParametersCreateInfoKHRBuilder<'a> {
55324 #[inline]
55325 pub fn max_std_sps_count(mut self, value: u32) -> Self {
55326 self.inner.max_std_sps_count = value;
55327 self
55328 }
55329 #[inline]
55330 pub fn max_std_pps_count(mut self, value: u32) -> Self {
55331 self.inner.max_std_pps_count = value;
55332 self
55333 }
55334 #[inline]
55335 pub fn parameters_add_info(
55336 mut self,
55337 value: &'a VideoEncodeH264SessionParametersAddInfoKHR,
55338 ) -> Self {
55339 self.inner.p_parameters_add_info = value;
55340 self
55341 }
55342 #[inline]
55344 pub fn push_next<T: ExtendsVideoEncodeH264SessionParametersCreateInfoKHR>(
55345 mut self,
55346 next: &'a mut T,
55347 ) -> Self {
55348 unsafe {
55349 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55350 (*next_ptr).p_next = self.inner.p_next as *mut _;
55351 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55352 core::ffi::c_void,
55353 >(next_ptr) as *const _;
55354 }
55355 self
55356 }
55357}
55358impl<'a> core::ops::Deref for VideoEncodeH264SessionParametersCreateInfoKHRBuilder<'a> {
55359 type Target = VideoEncodeH264SessionParametersCreateInfoKHR;
55360 #[inline]
55361 fn deref(&self) -> &Self::Target {
55362 &self.inner
55363 }
55364}
55365impl<'a> core::ops::DerefMut
55366for VideoEncodeH264SessionParametersCreateInfoKHRBuilder<'a> {
55367 #[inline]
55368 fn deref_mut(&mut self) -> &mut Self::Target {
55369 &mut self.inner
55370 }
55371}
55372pub struct VideoEncodeH264SessionParametersGetInfoKHRBuilder<'a> {
55374 inner: VideoEncodeH264SessionParametersGetInfoKHR,
55375 _marker: core::marker::PhantomData<&'a ()>,
55376}
55377impl VideoEncodeH264SessionParametersGetInfoKHR {
55378 #[inline]
55380 pub fn builder<'a>() -> VideoEncodeH264SessionParametersGetInfoKHRBuilder<'a> {
55381 VideoEncodeH264SessionParametersGetInfoKHRBuilder {
55382 inner: VideoEncodeH264SessionParametersGetInfoKHR {
55383 s_type: StructureType::from_raw(1000038012i32),
55384 ..Default::default()
55385 },
55386 _marker: core::marker::PhantomData,
55387 }
55388 }
55389}
55390impl<'a> VideoEncodeH264SessionParametersGetInfoKHRBuilder<'a> {
55391 #[inline]
55392 pub fn write_std_sps(mut self, value: bool) -> Self {
55393 self.inner.write_std_sps = value as u32;
55394 self
55395 }
55396 #[inline]
55397 pub fn write_std_pps(mut self, value: bool) -> Self {
55398 self.inner.write_std_pps = value as u32;
55399 self
55400 }
55401 #[inline]
55402 pub fn std_sps_id(mut self, value: u32) -> Self {
55403 self.inner.std_sps_id = value;
55404 self
55405 }
55406 #[inline]
55407 pub fn std_pps_id(mut self, value: u32) -> Self {
55408 self.inner.std_pps_id = value;
55409 self
55410 }
55411 #[inline]
55413 pub fn push_next<T: ExtendsVideoEncodeH264SessionParametersGetInfoKHR>(
55414 mut self,
55415 next: &'a mut T,
55416 ) -> Self {
55417 unsafe {
55418 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55419 (*next_ptr).p_next = self.inner.p_next as *mut _;
55420 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55421 core::ffi::c_void,
55422 >(next_ptr) as *const _;
55423 }
55424 self
55425 }
55426}
55427impl<'a> core::ops::Deref for VideoEncodeH264SessionParametersGetInfoKHRBuilder<'a> {
55428 type Target = VideoEncodeH264SessionParametersGetInfoKHR;
55429 #[inline]
55430 fn deref(&self) -> &Self::Target {
55431 &self.inner
55432 }
55433}
55434impl<'a> core::ops::DerefMut for VideoEncodeH264SessionParametersGetInfoKHRBuilder<'a> {
55435 #[inline]
55436 fn deref_mut(&mut self) -> &mut Self::Target {
55437 &mut self.inner
55438 }
55439}
55440pub struct VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder<'a> {
55442 inner: VideoEncodeH264SessionParametersFeedbackInfoKHR,
55443 _marker: core::marker::PhantomData<&'a ()>,
55444}
55445impl VideoEncodeH264SessionParametersFeedbackInfoKHR {
55446 #[inline]
55448 pub fn builder<'a>() -> VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder<'a> {
55449 VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder {
55450 inner: VideoEncodeH264SessionParametersFeedbackInfoKHR {
55451 s_type: StructureType::from_raw(1000038013i32),
55452 ..Default::default()
55453 },
55454 _marker: core::marker::PhantomData,
55455 }
55456 }
55457}
55458impl<'a> VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder<'a> {
55459 #[inline]
55460 pub fn has_std_sps_overrides(mut self, value: bool) -> Self {
55461 self.inner.has_std_sps_overrides = value as u32;
55462 self
55463 }
55464 #[inline]
55465 pub fn has_std_pps_overrides(mut self, value: bool) -> Self {
55466 self.inner.has_std_pps_overrides = value as u32;
55467 self
55468 }
55469}
55470impl<'a> core::ops::Deref
55471for VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder<'a> {
55472 type Target = VideoEncodeH264SessionParametersFeedbackInfoKHR;
55473 #[inline]
55474 fn deref(&self) -> &Self::Target {
55475 &self.inner
55476 }
55477}
55478impl<'a> core::ops::DerefMut
55479for VideoEncodeH264SessionParametersFeedbackInfoKHRBuilder<'a> {
55480 #[inline]
55481 fn deref_mut(&mut self) -> &mut Self::Target {
55482 &mut self.inner
55483 }
55484}
55485pub struct VideoEncodeH264DpbSlotInfoKHRBuilder<'a> {
55487 inner: VideoEncodeH264DpbSlotInfoKHR,
55488 _marker: core::marker::PhantomData<&'a ()>,
55489}
55490impl VideoEncodeH264DpbSlotInfoKHR {
55491 #[inline]
55493 pub fn builder<'a>() -> VideoEncodeH264DpbSlotInfoKHRBuilder<'a> {
55494 VideoEncodeH264DpbSlotInfoKHRBuilder {
55495 inner: VideoEncodeH264DpbSlotInfoKHR {
55496 s_type: StructureType::from_raw(1000038004i32),
55497 ..Default::default()
55498 },
55499 _marker: core::marker::PhantomData,
55500 }
55501 }
55502}
55503impl<'a> VideoEncodeH264DpbSlotInfoKHRBuilder<'a> {
55504 #[inline]
55505 pub fn std_reference_info(
55506 mut self,
55507 value: *const StdVideoEncodeH264ReferenceInfo,
55508 ) -> Self {
55509 self.inner.p_std_reference_info = value;
55510 self
55511 }
55512 #[inline]
55514 pub fn push_next<T: ExtendsVideoEncodeH264DpbSlotInfoKHR>(
55515 mut self,
55516 next: &'a mut T,
55517 ) -> Self {
55518 unsafe {
55519 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55520 (*next_ptr).p_next = self.inner.p_next as *mut _;
55521 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55522 core::ffi::c_void,
55523 >(next_ptr) as *const _;
55524 }
55525 self
55526 }
55527}
55528impl<'a> core::ops::Deref for VideoEncodeH264DpbSlotInfoKHRBuilder<'a> {
55529 type Target = VideoEncodeH264DpbSlotInfoKHR;
55530 #[inline]
55531 fn deref(&self) -> &Self::Target {
55532 &self.inner
55533 }
55534}
55535impl<'a> core::ops::DerefMut for VideoEncodeH264DpbSlotInfoKHRBuilder<'a> {
55536 #[inline]
55537 fn deref_mut(&mut self) -> &mut Self::Target {
55538 &mut self.inner
55539 }
55540}
55541pub struct VideoEncodeH264PictureInfoKHRBuilder<'a> {
55543 inner: VideoEncodeH264PictureInfoKHR,
55544 _marker: core::marker::PhantomData<&'a ()>,
55545}
55546impl VideoEncodeH264PictureInfoKHR {
55547 #[inline]
55549 pub fn builder<'a>() -> VideoEncodeH264PictureInfoKHRBuilder<'a> {
55550 VideoEncodeH264PictureInfoKHRBuilder {
55551 inner: VideoEncodeH264PictureInfoKHR {
55552 s_type: StructureType::from_raw(1000038003i32),
55553 ..Default::default()
55554 },
55555 _marker: core::marker::PhantomData,
55556 }
55557 }
55558}
55559impl<'a> VideoEncodeH264PictureInfoKHRBuilder<'a> {
55560 #[inline]
55561 pub fn nalu_slice_entries(
55562 mut self,
55563 slice: &'a [VideoEncodeH264NaluSliceInfoKHR],
55564 ) -> Self {
55565 self.inner.nalu_slice_entry_count = slice.len() as u32;
55566 self.inner.p_nalu_slice_entries = slice.as_ptr();
55567 self
55568 }
55569 #[inline]
55570 pub fn std_picture_info(
55571 mut self,
55572 value: *const StdVideoEncodeH264PictureInfo,
55573 ) -> Self {
55574 self.inner.p_std_picture_info = value;
55575 self
55576 }
55577 #[inline]
55578 pub fn generate_prefix_nalu(mut self, value: bool) -> Self {
55579 self.inner.generate_prefix_nalu = value as u32;
55580 self
55581 }
55582 #[inline]
55584 pub fn push_next<T: ExtendsVideoEncodeH264PictureInfoKHR>(
55585 mut self,
55586 next: &'a mut T,
55587 ) -> Self {
55588 unsafe {
55589 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55590 (*next_ptr).p_next = self.inner.p_next as *mut _;
55591 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55592 core::ffi::c_void,
55593 >(next_ptr) as *const _;
55594 }
55595 self
55596 }
55597}
55598impl<'a> core::ops::Deref for VideoEncodeH264PictureInfoKHRBuilder<'a> {
55599 type Target = VideoEncodeH264PictureInfoKHR;
55600 #[inline]
55601 fn deref(&self) -> &Self::Target {
55602 &self.inner
55603 }
55604}
55605impl<'a> core::ops::DerefMut for VideoEncodeH264PictureInfoKHRBuilder<'a> {
55606 #[inline]
55607 fn deref_mut(&mut self) -> &mut Self::Target {
55608 &mut self.inner
55609 }
55610}
55611pub struct VideoEncodeH264ProfileInfoKHRBuilder<'a> {
55613 inner: VideoEncodeH264ProfileInfoKHR,
55614 _marker: core::marker::PhantomData<&'a ()>,
55615}
55616impl VideoEncodeH264ProfileInfoKHR {
55617 #[inline]
55619 pub fn builder<'a>() -> VideoEncodeH264ProfileInfoKHRBuilder<'a> {
55620 VideoEncodeH264ProfileInfoKHRBuilder {
55621 inner: VideoEncodeH264ProfileInfoKHR {
55622 s_type: StructureType::from_raw(1000038007i32),
55623 ..Default::default()
55624 },
55625 _marker: core::marker::PhantomData,
55626 }
55627 }
55628}
55629impl<'a> VideoEncodeH264ProfileInfoKHRBuilder<'a> {
55630 #[inline]
55631 pub fn std_profile_idc(mut self, value: StdVideoH264ProfileIdc) -> Self {
55632 self.inner.std_profile_idc = value;
55633 self
55634 }
55635 #[inline]
55637 pub fn push_next<T: ExtendsVideoEncodeH264ProfileInfoKHR>(
55638 mut self,
55639 next: &'a mut T,
55640 ) -> Self {
55641 unsafe {
55642 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55643 (*next_ptr).p_next = self.inner.p_next as *mut _;
55644 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55645 core::ffi::c_void,
55646 >(next_ptr) as *const _;
55647 }
55648 self
55649 }
55650}
55651impl<'a> core::ops::Deref for VideoEncodeH264ProfileInfoKHRBuilder<'a> {
55652 type Target = VideoEncodeH264ProfileInfoKHR;
55653 #[inline]
55654 fn deref(&self) -> &Self::Target {
55655 &self.inner
55656 }
55657}
55658impl<'a> core::ops::DerefMut for VideoEncodeH264ProfileInfoKHRBuilder<'a> {
55659 #[inline]
55660 fn deref_mut(&mut self) -> &mut Self::Target {
55661 &mut self.inner
55662 }
55663}
55664pub struct VideoEncodeH264NaluSliceInfoKHRBuilder<'a> {
55666 inner: VideoEncodeH264NaluSliceInfoKHR,
55667 _marker: core::marker::PhantomData<&'a ()>,
55668}
55669impl VideoEncodeH264NaluSliceInfoKHR {
55670 #[inline]
55672 pub fn builder<'a>() -> VideoEncodeH264NaluSliceInfoKHRBuilder<'a> {
55673 VideoEncodeH264NaluSliceInfoKHRBuilder {
55674 inner: VideoEncodeH264NaluSliceInfoKHR {
55675 s_type: StructureType::from_raw(1000038005i32),
55676 ..Default::default()
55677 },
55678 _marker: core::marker::PhantomData,
55679 }
55680 }
55681}
55682impl<'a> VideoEncodeH264NaluSliceInfoKHRBuilder<'a> {
55683 #[inline]
55684 pub fn constant_qp(mut self, value: i32) -> Self {
55685 self.inner.constant_qp = value;
55686 self
55687 }
55688 #[inline]
55689 pub fn std_slice_header(
55690 mut self,
55691 value: *const StdVideoEncodeH264SliceHeader,
55692 ) -> Self {
55693 self.inner.p_std_slice_header = value;
55694 self
55695 }
55696 #[inline]
55698 pub fn push_next<T: ExtendsVideoEncodeH264NaluSliceInfoKHR>(
55699 mut self,
55700 next: &'a mut T,
55701 ) -> Self {
55702 unsafe {
55703 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55704 (*next_ptr).p_next = self.inner.p_next as *mut _;
55705 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55706 core::ffi::c_void,
55707 >(next_ptr) as *const _;
55708 }
55709 self
55710 }
55711}
55712impl<'a> core::ops::Deref for VideoEncodeH264NaluSliceInfoKHRBuilder<'a> {
55713 type Target = VideoEncodeH264NaluSliceInfoKHR;
55714 #[inline]
55715 fn deref(&self) -> &Self::Target {
55716 &self.inner
55717 }
55718}
55719impl<'a> core::ops::DerefMut for VideoEncodeH264NaluSliceInfoKHRBuilder<'a> {
55720 #[inline]
55721 fn deref_mut(&mut self) -> &mut Self::Target {
55722 &mut self.inner
55723 }
55724}
55725pub struct VideoEncodeH264RateControlInfoKHRBuilder<'a> {
55727 inner: VideoEncodeH264RateControlInfoKHR,
55728 _marker: core::marker::PhantomData<&'a ()>,
55729}
55730impl VideoEncodeH264RateControlInfoKHR {
55731 #[inline]
55733 pub fn builder<'a>() -> VideoEncodeH264RateControlInfoKHRBuilder<'a> {
55734 VideoEncodeH264RateControlInfoKHRBuilder {
55735 inner: VideoEncodeH264RateControlInfoKHR {
55736 s_type: StructureType::from_raw(1000038008i32),
55737 ..Default::default()
55738 },
55739 _marker: core::marker::PhantomData,
55740 }
55741 }
55742}
55743impl<'a> VideoEncodeH264RateControlInfoKHRBuilder<'a> {
55744 #[inline]
55745 pub fn flags(mut self, value: VideoEncodeH264RateControlFlagsKHR) -> Self {
55746 self.inner.flags = value;
55747 self
55748 }
55749 #[inline]
55750 pub fn gop_frame_count(mut self, value: u32) -> Self {
55751 self.inner.gop_frame_count = value;
55752 self
55753 }
55754 #[inline]
55755 pub fn idr_period(mut self, value: u32) -> Self {
55756 self.inner.idr_period = value;
55757 self
55758 }
55759 #[inline]
55760 pub fn consecutive_b_frame_count(mut self, value: u32) -> Self {
55761 self.inner.consecutive_b_frame_count = value;
55762 self
55763 }
55764 #[inline]
55765 pub fn temporal_layer_count(mut self, value: u32) -> Self {
55766 self.inner.temporal_layer_count = value;
55767 self
55768 }
55769 #[inline]
55771 pub fn push_next<T: ExtendsVideoEncodeH264RateControlInfoKHR>(
55772 mut self,
55773 next: &'a mut T,
55774 ) -> Self {
55775 unsafe {
55776 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55777 (*next_ptr).p_next = self.inner.p_next as *mut _;
55778 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55779 core::ffi::c_void,
55780 >(next_ptr) as *const _;
55781 }
55782 self
55783 }
55784}
55785impl<'a> core::ops::Deref for VideoEncodeH264RateControlInfoKHRBuilder<'a> {
55786 type Target = VideoEncodeH264RateControlInfoKHR;
55787 #[inline]
55788 fn deref(&self) -> &Self::Target {
55789 &self.inner
55790 }
55791}
55792impl<'a> core::ops::DerefMut for VideoEncodeH264RateControlInfoKHRBuilder<'a> {
55793 #[inline]
55794 fn deref_mut(&mut self) -> &mut Self::Target {
55795 &mut self.inner
55796 }
55797}
55798pub struct VideoEncodeH264QpKHRBuilder {
55800 inner: VideoEncodeH264QpKHR,
55801}
55802impl VideoEncodeH264QpKHR {
55803 #[inline]
55805 pub fn builder() -> VideoEncodeH264QpKHRBuilder {
55806 VideoEncodeH264QpKHRBuilder {
55807 inner: VideoEncodeH264QpKHR {
55808 ..Default::default()
55809 },
55810 }
55811 }
55812}
55813impl VideoEncodeH264QpKHRBuilder {
55814 #[inline]
55815 pub fn qp_i(mut self, value: i32) -> Self {
55816 self.inner.qp_i = value;
55817 self
55818 }
55819 #[inline]
55820 pub fn qp_p(mut self, value: i32) -> Self {
55821 self.inner.qp_p = value;
55822 self
55823 }
55824 #[inline]
55825 pub fn qp_b(mut self, value: i32) -> Self {
55826 self.inner.qp_b = value;
55827 self
55828 }
55829}
55830impl core::ops::Deref for VideoEncodeH264QpKHRBuilder {
55831 type Target = VideoEncodeH264QpKHR;
55832 #[inline]
55833 fn deref(&self) -> &Self::Target {
55834 &self.inner
55835 }
55836}
55837impl core::ops::DerefMut for VideoEncodeH264QpKHRBuilder {
55838 #[inline]
55839 fn deref_mut(&mut self) -> &mut Self::Target {
55840 &mut self.inner
55841 }
55842}
55843pub struct VideoEncodeH264FrameSizeKHRBuilder {
55845 inner: VideoEncodeH264FrameSizeKHR,
55846}
55847impl VideoEncodeH264FrameSizeKHR {
55848 #[inline]
55850 pub fn builder() -> VideoEncodeH264FrameSizeKHRBuilder {
55851 VideoEncodeH264FrameSizeKHRBuilder {
55852 inner: VideoEncodeH264FrameSizeKHR {
55853 ..Default::default()
55854 },
55855 }
55856 }
55857}
55858impl VideoEncodeH264FrameSizeKHRBuilder {
55859 #[inline]
55860 pub fn frame_i_size(mut self, value: u32) -> Self {
55861 self.inner.frame_i_size = value;
55862 self
55863 }
55864 #[inline]
55865 pub fn frame_p_size(mut self, value: u32) -> Self {
55866 self.inner.frame_p_size = value;
55867 self
55868 }
55869 #[inline]
55870 pub fn frame_b_size(mut self, value: u32) -> Self {
55871 self.inner.frame_b_size = value;
55872 self
55873 }
55874}
55875impl core::ops::Deref for VideoEncodeH264FrameSizeKHRBuilder {
55876 type Target = VideoEncodeH264FrameSizeKHR;
55877 #[inline]
55878 fn deref(&self) -> &Self::Target {
55879 &self.inner
55880 }
55881}
55882impl core::ops::DerefMut for VideoEncodeH264FrameSizeKHRBuilder {
55883 #[inline]
55884 fn deref_mut(&mut self) -> &mut Self::Target {
55885 &mut self.inner
55886 }
55887}
55888pub struct VideoEncodeH264GopRemainingFrameInfoKHRBuilder<'a> {
55890 inner: VideoEncodeH264GopRemainingFrameInfoKHR,
55891 _marker: core::marker::PhantomData<&'a ()>,
55892}
55893impl VideoEncodeH264GopRemainingFrameInfoKHR {
55894 #[inline]
55896 pub fn builder<'a>() -> VideoEncodeH264GopRemainingFrameInfoKHRBuilder<'a> {
55897 VideoEncodeH264GopRemainingFrameInfoKHRBuilder {
55898 inner: VideoEncodeH264GopRemainingFrameInfoKHR {
55899 s_type: StructureType::from_raw(1000038006i32),
55900 ..Default::default()
55901 },
55902 _marker: core::marker::PhantomData,
55903 }
55904 }
55905}
55906impl<'a> VideoEncodeH264GopRemainingFrameInfoKHRBuilder<'a> {
55907 #[inline]
55908 pub fn use_gop_remaining_frames(mut self, value: bool) -> Self {
55909 self.inner.use_gop_remaining_frames = value as u32;
55910 self
55911 }
55912 #[inline]
55913 pub fn gop_remaining_i(mut self, value: u32) -> Self {
55914 self.inner.gop_remaining_i = value;
55915 self
55916 }
55917 #[inline]
55918 pub fn gop_remaining_p(mut self, value: u32) -> Self {
55919 self.inner.gop_remaining_p = value;
55920 self
55921 }
55922 #[inline]
55923 pub fn gop_remaining_b(mut self, value: u32) -> Self {
55924 self.inner.gop_remaining_b = value;
55925 self
55926 }
55927 #[inline]
55929 pub fn push_next<T: ExtendsVideoEncodeH264GopRemainingFrameInfoKHR>(
55930 mut self,
55931 next: &'a mut T,
55932 ) -> Self {
55933 unsafe {
55934 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
55935 (*next_ptr).p_next = self.inner.p_next as *mut _;
55936 self.inner.p_next = <*mut BaseOutStructure>::cast::<
55937 core::ffi::c_void,
55938 >(next_ptr) as *const _;
55939 }
55940 self
55941 }
55942}
55943impl<'a> core::ops::Deref for VideoEncodeH264GopRemainingFrameInfoKHRBuilder<'a> {
55944 type Target = VideoEncodeH264GopRemainingFrameInfoKHR;
55945 #[inline]
55946 fn deref(&self) -> &Self::Target {
55947 &self.inner
55948 }
55949}
55950impl<'a> core::ops::DerefMut for VideoEncodeH264GopRemainingFrameInfoKHRBuilder<'a> {
55951 #[inline]
55952 fn deref_mut(&mut self) -> &mut Self::Target {
55953 &mut self.inner
55954 }
55955}
55956pub struct VideoEncodeH264RateControlLayerInfoKHRBuilder<'a> {
55958 inner: VideoEncodeH264RateControlLayerInfoKHR,
55959 _marker: core::marker::PhantomData<&'a ()>,
55960}
55961impl VideoEncodeH264RateControlLayerInfoKHR {
55962 #[inline]
55964 pub fn builder<'a>() -> VideoEncodeH264RateControlLayerInfoKHRBuilder<'a> {
55965 VideoEncodeH264RateControlLayerInfoKHRBuilder {
55966 inner: VideoEncodeH264RateControlLayerInfoKHR {
55967 s_type: StructureType::from_raw(1000038009i32),
55968 ..Default::default()
55969 },
55970 _marker: core::marker::PhantomData,
55971 }
55972 }
55973}
55974impl<'a> VideoEncodeH264RateControlLayerInfoKHRBuilder<'a> {
55975 #[inline]
55976 pub fn use_min_qp(mut self, value: bool) -> Self {
55977 self.inner.use_min_qp = value as u32;
55978 self
55979 }
55980 #[inline]
55981 pub fn min_qp(mut self, value: VideoEncodeH264QpKHR) -> Self {
55982 self.inner.min_qp = value;
55983 self
55984 }
55985 #[inline]
55986 pub fn use_max_qp(mut self, value: bool) -> Self {
55987 self.inner.use_max_qp = value as u32;
55988 self
55989 }
55990 #[inline]
55991 pub fn max_qp(mut self, value: VideoEncodeH264QpKHR) -> Self {
55992 self.inner.max_qp = value;
55993 self
55994 }
55995 #[inline]
55996 pub fn use_max_frame_size(mut self, value: bool) -> Self {
55997 self.inner.use_max_frame_size = value as u32;
55998 self
55999 }
56000 #[inline]
56001 pub fn max_frame_size(mut self, value: VideoEncodeH264FrameSizeKHR) -> Self {
56002 self.inner.max_frame_size = value;
56003 self
56004 }
56005 #[inline]
56007 pub fn push_next<T: ExtendsVideoEncodeH264RateControlLayerInfoKHR>(
56008 mut self,
56009 next: &'a mut T,
56010 ) -> Self {
56011 unsafe {
56012 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56013 (*next_ptr).p_next = self.inner.p_next as *mut _;
56014 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56015 core::ffi::c_void,
56016 >(next_ptr) as *const _;
56017 }
56018 self
56019 }
56020}
56021impl<'a> core::ops::Deref for VideoEncodeH264RateControlLayerInfoKHRBuilder<'a> {
56022 type Target = VideoEncodeH264RateControlLayerInfoKHR;
56023 #[inline]
56024 fn deref(&self) -> &Self::Target {
56025 &self.inner
56026 }
56027}
56028impl<'a> core::ops::DerefMut for VideoEncodeH264RateControlLayerInfoKHRBuilder<'a> {
56029 #[inline]
56030 fn deref_mut(&mut self) -> &mut Self::Target {
56031 &mut self.inner
56032 }
56033}
56034pub struct VideoEncodeH265CapabilitiesKHRBuilder<'a> {
56036 inner: VideoEncodeH265CapabilitiesKHR,
56037 _marker: core::marker::PhantomData<&'a ()>,
56038}
56039impl VideoEncodeH265CapabilitiesKHR {
56040 #[inline]
56042 pub fn builder<'a>() -> VideoEncodeH265CapabilitiesKHRBuilder<'a> {
56043 VideoEncodeH265CapabilitiesKHRBuilder {
56044 inner: VideoEncodeH265CapabilitiesKHR {
56045 s_type: StructureType::from_raw(1000039000i32),
56046 ..Default::default()
56047 },
56048 _marker: core::marker::PhantomData,
56049 }
56050 }
56051}
56052impl<'a> VideoEncodeH265CapabilitiesKHRBuilder<'a> {
56053 #[inline]
56054 pub fn flags(mut self, value: VideoEncodeH265CapabilityFlagsKHR) -> Self {
56055 self.inner.flags = value;
56056 self
56057 }
56058 #[inline]
56059 pub fn max_level_idc(mut self, value: StdVideoH265LevelIdc) -> Self {
56060 self.inner.max_level_idc = value;
56061 self
56062 }
56063 #[inline]
56064 pub fn max_slice_segment_count(mut self, value: u32) -> Self {
56065 self.inner.max_slice_segment_count = value;
56066 self
56067 }
56068 #[inline]
56069 pub fn max_tiles(mut self, value: Extent2D) -> Self {
56070 self.inner.max_tiles = value;
56071 self
56072 }
56073 #[inline]
56074 pub fn ctb_sizes(mut self, value: VideoEncodeH265CtbSizeFlagsKHR) -> Self {
56075 self.inner.ctb_sizes = value;
56076 self
56077 }
56078 #[inline]
56079 pub fn transform_block_sizes(
56080 mut self,
56081 value: VideoEncodeH265TransformBlockSizeFlagsKHR,
56082 ) -> Self {
56083 self.inner.transform_block_sizes = value;
56084 self
56085 }
56086 #[inline]
56087 pub fn max_p_picture_l0_reference_count(mut self, value: u32) -> Self {
56088 self.inner.max_p_picture_l0_reference_count = value;
56089 self
56090 }
56091 #[inline]
56092 pub fn max_b_picture_l0_reference_count(mut self, value: u32) -> Self {
56093 self.inner.max_b_picture_l0_reference_count = value;
56094 self
56095 }
56096 #[inline]
56097 pub fn max_l1_reference_count(mut self, value: u32) -> Self {
56098 self.inner.max_l1_reference_count = value;
56099 self
56100 }
56101 #[inline]
56102 pub fn max_sub_layer_count(mut self, value: u32) -> Self {
56103 self.inner.max_sub_layer_count = value;
56104 self
56105 }
56106 #[inline]
56107 pub fn expect_dyadic_temporal_sub_layer_pattern(mut self, value: bool) -> Self {
56108 self.inner.expect_dyadic_temporal_sub_layer_pattern = value as u32;
56109 self
56110 }
56111 #[inline]
56112 pub fn min_qp(mut self, value: i32) -> Self {
56113 self.inner.min_qp = value;
56114 self
56115 }
56116 #[inline]
56117 pub fn max_qp(mut self, value: i32) -> Self {
56118 self.inner.max_qp = value;
56119 self
56120 }
56121 #[inline]
56122 pub fn prefers_gop_remaining_frames(mut self, value: bool) -> Self {
56123 self.inner.prefers_gop_remaining_frames = value as u32;
56124 self
56125 }
56126 #[inline]
56127 pub fn requires_gop_remaining_frames(mut self, value: bool) -> Self {
56128 self.inner.requires_gop_remaining_frames = value as u32;
56129 self
56130 }
56131 #[inline]
56132 pub fn std_syntax_flags(mut self, value: VideoEncodeH265StdFlagsKHR) -> Self {
56133 self.inner.std_syntax_flags = value;
56134 self
56135 }
56136}
56137impl<'a> core::ops::Deref for VideoEncodeH265CapabilitiesKHRBuilder<'a> {
56138 type Target = VideoEncodeH265CapabilitiesKHR;
56139 #[inline]
56140 fn deref(&self) -> &Self::Target {
56141 &self.inner
56142 }
56143}
56144impl<'a> core::ops::DerefMut for VideoEncodeH265CapabilitiesKHRBuilder<'a> {
56145 #[inline]
56146 fn deref_mut(&mut self) -> &mut Self::Target {
56147 &mut self.inner
56148 }
56149}
56150pub struct VideoEncodeH265QualityLevelPropertiesKHRBuilder<'a> {
56152 inner: VideoEncodeH265QualityLevelPropertiesKHR,
56153 _marker: core::marker::PhantomData<&'a ()>,
56154}
56155impl VideoEncodeH265QualityLevelPropertiesKHR {
56156 #[inline]
56158 pub fn builder<'a>() -> VideoEncodeH265QualityLevelPropertiesKHRBuilder<'a> {
56159 VideoEncodeH265QualityLevelPropertiesKHRBuilder {
56160 inner: VideoEncodeH265QualityLevelPropertiesKHR {
56161 s_type: StructureType::from_raw(1000039012i32),
56162 ..Default::default()
56163 },
56164 _marker: core::marker::PhantomData,
56165 }
56166 }
56167}
56168impl<'a> VideoEncodeH265QualityLevelPropertiesKHRBuilder<'a> {
56169 #[inline]
56170 pub fn preferred_rate_control_flags(
56171 mut self,
56172 value: VideoEncodeH265RateControlFlagsKHR,
56173 ) -> Self {
56174 self.inner.preferred_rate_control_flags = value;
56175 self
56176 }
56177 #[inline]
56178 pub fn preferred_gop_frame_count(mut self, value: u32) -> Self {
56179 self.inner.preferred_gop_frame_count = value;
56180 self
56181 }
56182 #[inline]
56183 pub fn preferred_idr_period(mut self, value: u32) -> Self {
56184 self.inner.preferred_idr_period = value;
56185 self
56186 }
56187 #[inline]
56188 pub fn preferred_consecutive_b_frame_count(mut self, value: u32) -> Self {
56189 self.inner.preferred_consecutive_b_frame_count = value;
56190 self
56191 }
56192 #[inline]
56193 pub fn preferred_sub_layer_count(mut self, value: u32) -> Self {
56194 self.inner.preferred_sub_layer_count = value;
56195 self
56196 }
56197 #[inline]
56198 pub fn preferred_constant_qp(mut self, value: VideoEncodeH265QpKHR) -> Self {
56199 self.inner.preferred_constant_qp = value;
56200 self
56201 }
56202 #[inline]
56203 pub fn preferred_max_l0_reference_count(mut self, value: u32) -> Self {
56204 self.inner.preferred_max_l0_reference_count = value;
56205 self
56206 }
56207 #[inline]
56208 pub fn preferred_max_l1_reference_count(mut self, value: u32) -> Self {
56209 self.inner.preferred_max_l1_reference_count = value;
56210 self
56211 }
56212}
56213impl<'a> core::ops::Deref for VideoEncodeH265QualityLevelPropertiesKHRBuilder<'a> {
56214 type Target = VideoEncodeH265QualityLevelPropertiesKHR;
56215 #[inline]
56216 fn deref(&self) -> &Self::Target {
56217 &self.inner
56218 }
56219}
56220impl<'a> core::ops::DerefMut for VideoEncodeH265QualityLevelPropertiesKHRBuilder<'a> {
56221 #[inline]
56222 fn deref_mut(&mut self) -> &mut Self::Target {
56223 &mut self.inner
56224 }
56225}
56226pub struct VideoEncodeH265SessionCreateInfoKHRBuilder<'a> {
56228 inner: VideoEncodeH265SessionCreateInfoKHR,
56229 _marker: core::marker::PhantomData<&'a ()>,
56230}
56231impl VideoEncodeH265SessionCreateInfoKHR {
56232 #[inline]
56234 pub fn builder<'a>() -> VideoEncodeH265SessionCreateInfoKHRBuilder<'a> {
56235 VideoEncodeH265SessionCreateInfoKHRBuilder {
56236 inner: VideoEncodeH265SessionCreateInfoKHR {
56237 s_type: StructureType::from_raw(1000039011i32),
56238 ..Default::default()
56239 },
56240 _marker: core::marker::PhantomData,
56241 }
56242 }
56243}
56244impl<'a> VideoEncodeH265SessionCreateInfoKHRBuilder<'a> {
56245 #[inline]
56246 pub fn use_max_level_idc(mut self, value: bool) -> Self {
56247 self.inner.use_max_level_idc = value as u32;
56248 self
56249 }
56250 #[inline]
56251 pub fn max_level_idc(mut self, value: StdVideoH265LevelIdc) -> Self {
56252 self.inner.max_level_idc = value;
56253 self
56254 }
56255 #[inline]
56257 pub fn push_next<T: ExtendsVideoEncodeH265SessionCreateInfoKHR>(
56258 mut self,
56259 next: &'a mut T,
56260 ) -> Self {
56261 unsafe {
56262 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56263 (*next_ptr).p_next = self.inner.p_next as *mut _;
56264 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56265 core::ffi::c_void,
56266 >(next_ptr) as *const _;
56267 }
56268 self
56269 }
56270}
56271impl<'a> core::ops::Deref for VideoEncodeH265SessionCreateInfoKHRBuilder<'a> {
56272 type Target = VideoEncodeH265SessionCreateInfoKHR;
56273 #[inline]
56274 fn deref(&self) -> &Self::Target {
56275 &self.inner
56276 }
56277}
56278impl<'a> core::ops::DerefMut for VideoEncodeH265SessionCreateInfoKHRBuilder<'a> {
56279 #[inline]
56280 fn deref_mut(&mut self) -> &mut Self::Target {
56281 &mut self.inner
56282 }
56283}
56284pub struct VideoEncodeH265SessionParametersAddInfoKHRBuilder<'a> {
56286 inner: VideoEncodeH265SessionParametersAddInfoKHR,
56287 _marker: core::marker::PhantomData<&'a ()>,
56288}
56289impl VideoEncodeH265SessionParametersAddInfoKHR {
56290 #[inline]
56292 pub fn builder<'a>() -> VideoEncodeH265SessionParametersAddInfoKHRBuilder<'a> {
56293 VideoEncodeH265SessionParametersAddInfoKHRBuilder {
56294 inner: VideoEncodeH265SessionParametersAddInfoKHR {
56295 s_type: StructureType::from_raw(1000039002i32),
56296 ..Default::default()
56297 },
56298 _marker: core::marker::PhantomData,
56299 }
56300 }
56301}
56302impl<'a> VideoEncodeH265SessionParametersAddInfoKHRBuilder<'a> {
56303 #[inline]
56304 pub fn std_vps_count(mut self, value: u32) -> Self {
56305 self.inner.std_vps_count = value;
56306 self
56307 }
56308 #[inline]
56309 pub fn std_vp_ss(mut self, slice: &'a [StdVideoH265VideoParameterSet]) -> Self {
56310 self.inner.std_vps_count = slice.len() as u32;
56311 self.inner.p_std_vp_ss = slice.as_ptr();
56312 self
56313 }
56314 #[inline]
56315 pub fn std_sps_count(mut self, value: u32) -> Self {
56316 self.inner.std_sps_count = value;
56317 self
56318 }
56319 #[inline]
56320 pub fn std_sp_ss(mut self, slice: &'a [StdVideoH265SequenceParameterSet]) -> Self {
56321 self.inner.std_sps_count = slice.len() as u32;
56322 self.inner.p_std_sp_ss = slice.as_ptr();
56323 self
56324 }
56325 #[inline]
56326 pub fn std_pps_count(mut self, value: u32) -> Self {
56327 self.inner.std_pps_count = value;
56328 self
56329 }
56330 #[inline]
56331 pub fn std_pp_ss(mut self, slice: &'a [StdVideoH265PictureParameterSet]) -> Self {
56332 self.inner.std_pps_count = slice.len() as u32;
56333 self.inner.p_std_pp_ss = slice.as_ptr();
56334 self
56335 }
56336 #[inline]
56338 pub fn push_next<T: ExtendsVideoEncodeH265SessionParametersAddInfoKHR>(
56339 mut self,
56340 next: &'a mut T,
56341 ) -> Self {
56342 unsafe {
56343 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56344 (*next_ptr).p_next = self.inner.p_next as *mut _;
56345 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56346 core::ffi::c_void,
56347 >(next_ptr) as *const _;
56348 }
56349 self
56350 }
56351}
56352impl<'a> core::ops::Deref for VideoEncodeH265SessionParametersAddInfoKHRBuilder<'a> {
56353 type Target = VideoEncodeH265SessionParametersAddInfoKHR;
56354 #[inline]
56355 fn deref(&self) -> &Self::Target {
56356 &self.inner
56357 }
56358}
56359impl<'a> core::ops::DerefMut for VideoEncodeH265SessionParametersAddInfoKHRBuilder<'a> {
56360 #[inline]
56361 fn deref_mut(&mut self) -> &mut Self::Target {
56362 &mut self.inner
56363 }
56364}
56365pub struct VideoEncodeH265SessionParametersCreateInfoKHRBuilder<'a> {
56367 inner: VideoEncodeH265SessionParametersCreateInfoKHR,
56368 _marker: core::marker::PhantomData<&'a ()>,
56369}
56370impl VideoEncodeH265SessionParametersCreateInfoKHR {
56371 #[inline]
56373 pub fn builder<'a>() -> VideoEncodeH265SessionParametersCreateInfoKHRBuilder<'a> {
56374 VideoEncodeH265SessionParametersCreateInfoKHRBuilder {
56375 inner: VideoEncodeH265SessionParametersCreateInfoKHR {
56376 s_type: StructureType::from_raw(1000039001i32),
56377 ..Default::default()
56378 },
56379 _marker: core::marker::PhantomData,
56380 }
56381 }
56382}
56383impl<'a> VideoEncodeH265SessionParametersCreateInfoKHRBuilder<'a> {
56384 #[inline]
56385 pub fn max_std_vps_count(mut self, value: u32) -> Self {
56386 self.inner.max_std_vps_count = value;
56387 self
56388 }
56389 #[inline]
56390 pub fn max_std_sps_count(mut self, value: u32) -> Self {
56391 self.inner.max_std_sps_count = value;
56392 self
56393 }
56394 #[inline]
56395 pub fn max_std_pps_count(mut self, value: u32) -> Self {
56396 self.inner.max_std_pps_count = value;
56397 self
56398 }
56399 #[inline]
56400 pub fn parameters_add_info(
56401 mut self,
56402 value: &'a VideoEncodeH265SessionParametersAddInfoKHR,
56403 ) -> Self {
56404 self.inner.p_parameters_add_info = value;
56405 self
56406 }
56407 #[inline]
56409 pub fn push_next<T: ExtendsVideoEncodeH265SessionParametersCreateInfoKHR>(
56410 mut self,
56411 next: &'a mut T,
56412 ) -> Self {
56413 unsafe {
56414 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56415 (*next_ptr).p_next = self.inner.p_next as *mut _;
56416 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56417 core::ffi::c_void,
56418 >(next_ptr) as *const _;
56419 }
56420 self
56421 }
56422}
56423impl<'a> core::ops::Deref for VideoEncodeH265SessionParametersCreateInfoKHRBuilder<'a> {
56424 type Target = VideoEncodeH265SessionParametersCreateInfoKHR;
56425 #[inline]
56426 fn deref(&self) -> &Self::Target {
56427 &self.inner
56428 }
56429}
56430impl<'a> core::ops::DerefMut
56431for VideoEncodeH265SessionParametersCreateInfoKHRBuilder<'a> {
56432 #[inline]
56433 fn deref_mut(&mut self) -> &mut Self::Target {
56434 &mut self.inner
56435 }
56436}
56437pub struct VideoEncodeH265SessionParametersGetInfoKHRBuilder<'a> {
56439 inner: VideoEncodeH265SessionParametersGetInfoKHR,
56440 _marker: core::marker::PhantomData<&'a ()>,
56441}
56442impl VideoEncodeH265SessionParametersGetInfoKHR {
56443 #[inline]
56445 pub fn builder<'a>() -> VideoEncodeH265SessionParametersGetInfoKHRBuilder<'a> {
56446 VideoEncodeH265SessionParametersGetInfoKHRBuilder {
56447 inner: VideoEncodeH265SessionParametersGetInfoKHR {
56448 s_type: StructureType::from_raw(1000039013i32),
56449 ..Default::default()
56450 },
56451 _marker: core::marker::PhantomData,
56452 }
56453 }
56454}
56455impl<'a> VideoEncodeH265SessionParametersGetInfoKHRBuilder<'a> {
56456 #[inline]
56457 pub fn write_std_vps(mut self, value: bool) -> Self {
56458 self.inner.write_std_vps = value as u32;
56459 self
56460 }
56461 #[inline]
56462 pub fn write_std_sps(mut self, value: bool) -> Self {
56463 self.inner.write_std_sps = value as u32;
56464 self
56465 }
56466 #[inline]
56467 pub fn write_std_pps(mut self, value: bool) -> Self {
56468 self.inner.write_std_pps = value as u32;
56469 self
56470 }
56471 #[inline]
56472 pub fn std_vps_id(mut self, value: u32) -> Self {
56473 self.inner.std_vps_id = value;
56474 self
56475 }
56476 #[inline]
56477 pub fn std_sps_id(mut self, value: u32) -> Self {
56478 self.inner.std_sps_id = value;
56479 self
56480 }
56481 #[inline]
56482 pub fn std_pps_id(mut self, value: u32) -> Self {
56483 self.inner.std_pps_id = value;
56484 self
56485 }
56486 #[inline]
56488 pub fn push_next<T: ExtendsVideoEncodeH265SessionParametersGetInfoKHR>(
56489 mut self,
56490 next: &'a mut T,
56491 ) -> Self {
56492 unsafe {
56493 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56494 (*next_ptr).p_next = self.inner.p_next as *mut _;
56495 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56496 core::ffi::c_void,
56497 >(next_ptr) as *const _;
56498 }
56499 self
56500 }
56501}
56502impl<'a> core::ops::Deref for VideoEncodeH265SessionParametersGetInfoKHRBuilder<'a> {
56503 type Target = VideoEncodeH265SessionParametersGetInfoKHR;
56504 #[inline]
56505 fn deref(&self) -> &Self::Target {
56506 &self.inner
56507 }
56508}
56509impl<'a> core::ops::DerefMut for VideoEncodeH265SessionParametersGetInfoKHRBuilder<'a> {
56510 #[inline]
56511 fn deref_mut(&mut self) -> &mut Self::Target {
56512 &mut self.inner
56513 }
56514}
56515pub struct VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder<'a> {
56517 inner: VideoEncodeH265SessionParametersFeedbackInfoKHR,
56518 _marker: core::marker::PhantomData<&'a ()>,
56519}
56520impl VideoEncodeH265SessionParametersFeedbackInfoKHR {
56521 #[inline]
56523 pub fn builder<'a>() -> VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder<'a> {
56524 VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder {
56525 inner: VideoEncodeH265SessionParametersFeedbackInfoKHR {
56526 s_type: StructureType::from_raw(1000039014i32),
56527 ..Default::default()
56528 },
56529 _marker: core::marker::PhantomData,
56530 }
56531 }
56532}
56533impl<'a> VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder<'a> {
56534 #[inline]
56535 pub fn has_std_vps_overrides(mut self, value: bool) -> Self {
56536 self.inner.has_std_vps_overrides = value as u32;
56537 self
56538 }
56539 #[inline]
56540 pub fn has_std_sps_overrides(mut self, value: bool) -> Self {
56541 self.inner.has_std_sps_overrides = value as u32;
56542 self
56543 }
56544 #[inline]
56545 pub fn has_std_pps_overrides(mut self, value: bool) -> Self {
56546 self.inner.has_std_pps_overrides = value as u32;
56547 self
56548 }
56549}
56550impl<'a> core::ops::Deref
56551for VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder<'a> {
56552 type Target = VideoEncodeH265SessionParametersFeedbackInfoKHR;
56553 #[inline]
56554 fn deref(&self) -> &Self::Target {
56555 &self.inner
56556 }
56557}
56558impl<'a> core::ops::DerefMut
56559for VideoEncodeH265SessionParametersFeedbackInfoKHRBuilder<'a> {
56560 #[inline]
56561 fn deref_mut(&mut self) -> &mut Self::Target {
56562 &mut self.inner
56563 }
56564}
56565pub struct VideoEncodeH265PictureInfoKHRBuilder<'a> {
56567 inner: VideoEncodeH265PictureInfoKHR,
56568 _marker: core::marker::PhantomData<&'a ()>,
56569}
56570impl VideoEncodeH265PictureInfoKHR {
56571 #[inline]
56573 pub fn builder<'a>() -> VideoEncodeH265PictureInfoKHRBuilder<'a> {
56574 VideoEncodeH265PictureInfoKHRBuilder {
56575 inner: VideoEncodeH265PictureInfoKHR {
56576 s_type: StructureType::from_raw(1000039003i32),
56577 ..Default::default()
56578 },
56579 _marker: core::marker::PhantomData,
56580 }
56581 }
56582}
56583impl<'a> VideoEncodeH265PictureInfoKHRBuilder<'a> {
56584 #[inline]
56585 pub fn nalu_slice_segment_entries(
56586 mut self,
56587 slice: &'a [VideoEncodeH265NaluSliceSegmentInfoKHR],
56588 ) -> Self {
56589 self.inner.nalu_slice_segment_entry_count = slice.len() as u32;
56590 self.inner.p_nalu_slice_segment_entries = slice.as_ptr();
56591 self
56592 }
56593 #[inline]
56594 pub fn std_picture_info(
56595 mut self,
56596 value: *const StdVideoEncodeH265PictureInfo,
56597 ) -> Self {
56598 self.inner.p_std_picture_info = value;
56599 self
56600 }
56601 #[inline]
56603 pub fn push_next<T: ExtendsVideoEncodeH265PictureInfoKHR>(
56604 mut self,
56605 next: &'a mut T,
56606 ) -> Self {
56607 unsafe {
56608 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56609 (*next_ptr).p_next = self.inner.p_next as *mut _;
56610 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56611 core::ffi::c_void,
56612 >(next_ptr) as *const _;
56613 }
56614 self
56615 }
56616}
56617impl<'a> core::ops::Deref for VideoEncodeH265PictureInfoKHRBuilder<'a> {
56618 type Target = VideoEncodeH265PictureInfoKHR;
56619 #[inline]
56620 fn deref(&self) -> &Self::Target {
56621 &self.inner
56622 }
56623}
56624impl<'a> core::ops::DerefMut for VideoEncodeH265PictureInfoKHRBuilder<'a> {
56625 #[inline]
56626 fn deref_mut(&mut self) -> &mut Self::Target {
56627 &mut self.inner
56628 }
56629}
56630pub struct VideoEncodeH265NaluSliceSegmentInfoKHRBuilder<'a> {
56632 inner: VideoEncodeH265NaluSliceSegmentInfoKHR,
56633 _marker: core::marker::PhantomData<&'a ()>,
56634}
56635impl VideoEncodeH265NaluSliceSegmentInfoKHR {
56636 #[inline]
56638 pub fn builder<'a>() -> VideoEncodeH265NaluSliceSegmentInfoKHRBuilder<'a> {
56639 VideoEncodeH265NaluSliceSegmentInfoKHRBuilder {
56640 inner: VideoEncodeH265NaluSliceSegmentInfoKHR {
56641 s_type: StructureType::from_raw(1000039005i32),
56642 ..Default::default()
56643 },
56644 _marker: core::marker::PhantomData,
56645 }
56646 }
56647}
56648impl<'a> VideoEncodeH265NaluSliceSegmentInfoKHRBuilder<'a> {
56649 #[inline]
56650 pub fn constant_qp(mut self, value: i32) -> Self {
56651 self.inner.constant_qp = value;
56652 self
56653 }
56654 #[inline]
56655 pub fn std_slice_segment_header(
56656 mut self,
56657 value: *const StdVideoEncodeH265SliceSegmentHeader,
56658 ) -> Self {
56659 self.inner.p_std_slice_segment_header = value;
56660 self
56661 }
56662 #[inline]
56664 pub fn push_next<T: ExtendsVideoEncodeH265NaluSliceSegmentInfoKHR>(
56665 mut self,
56666 next: &'a mut T,
56667 ) -> Self {
56668 unsafe {
56669 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56670 (*next_ptr).p_next = self.inner.p_next as *mut _;
56671 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56672 core::ffi::c_void,
56673 >(next_ptr) as *const _;
56674 }
56675 self
56676 }
56677}
56678impl<'a> core::ops::Deref for VideoEncodeH265NaluSliceSegmentInfoKHRBuilder<'a> {
56679 type Target = VideoEncodeH265NaluSliceSegmentInfoKHR;
56680 #[inline]
56681 fn deref(&self) -> &Self::Target {
56682 &self.inner
56683 }
56684}
56685impl<'a> core::ops::DerefMut for VideoEncodeH265NaluSliceSegmentInfoKHRBuilder<'a> {
56686 #[inline]
56687 fn deref_mut(&mut self) -> &mut Self::Target {
56688 &mut self.inner
56689 }
56690}
56691pub struct VideoEncodeH265RateControlInfoKHRBuilder<'a> {
56693 inner: VideoEncodeH265RateControlInfoKHR,
56694 _marker: core::marker::PhantomData<&'a ()>,
56695}
56696impl VideoEncodeH265RateControlInfoKHR {
56697 #[inline]
56699 pub fn builder<'a>() -> VideoEncodeH265RateControlInfoKHRBuilder<'a> {
56700 VideoEncodeH265RateControlInfoKHRBuilder {
56701 inner: VideoEncodeH265RateControlInfoKHR {
56702 s_type: StructureType::from_raw(1000039009i32),
56703 ..Default::default()
56704 },
56705 _marker: core::marker::PhantomData,
56706 }
56707 }
56708}
56709impl<'a> VideoEncodeH265RateControlInfoKHRBuilder<'a> {
56710 #[inline]
56711 pub fn flags(mut self, value: VideoEncodeH265RateControlFlagsKHR) -> Self {
56712 self.inner.flags = value;
56713 self
56714 }
56715 #[inline]
56716 pub fn gop_frame_count(mut self, value: u32) -> Self {
56717 self.inner.gop_frame_count = value;
56718 self
56719 }
56720 #[inline]
56721 pub fn idr_period(mut self, value: u32) -> Self {
56722 self.inner.idr_period = value;
56723 self
56724 }
56725 #[inline]
56726 pub fn consecutive_b_frame_count(mut self, value: u32) -> Self {
56727 self.inner.consecutive_b_frame_count = value;
56728 self
56729 }
56730 #[inline]
56731 pub fn sub_layer_count(mut self, value: u32) -> Self {
56732 self.inner.sub_layer_count = value;
56733 self
56734 }
56735 #[inline]
56737 pub fn push_next<T: ExtendsVideoEncodeH265RateControlInfoKHR>(
56738 mut self,
56739 next: &'a mut T,
56740 ) -> Self {
56741 unsafe {
56742 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56743 (*next_ptr).p_next = self.inner.p_next as *mut _;
56744 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56745 core::ffi::c_void,
56746 >(next_ptr) as *const _;
56747 }
56748 self
56749 }
56750}
56751impl<'a> core::ops::Deref for VideoEncodeH265RateControlInfoKHRBuilder<'a> {
56752 type Target = VideoEncodeH265RateControlInfoKHR;
56753 #[inline]
56754 fn deref(&self) -> &Self::Target {
56755 &self.inner
56756 }
56757}
56758impl<'a> core::ops::DerefMut for VideoEncodeH265RateControlInfoKHRBuilder<'a> {
56759 #[inline]
56760 fn deref_mut(&mut self) -> &mut Self::Target {
56761 &mut self.inner
56762 }
56763}
56764pub struct VideoEncodeH265QpKHRBuilder {
56766 inner: VideoEncodeH265QpKHR,
56767}
56768impl VideoEncodeH265QpKHR {
56769 #[inline]
56771 pub fn builder() -> VideoEncodeH265QpKHRBuilder {
56772 VideoEncodeH265QpKHRBuilder {
56773 inner: VideoEncodeH265QpKHR {
56774 ..Default::default()
56775 },
56776 }
56777 }
56778}
56779impl VideoEncodeH265QpKHRBuilder {
56780 #[inline]
56781 pub fn qp_i(mut self, value: i32) -> Self {
56782 self.inner.qp_i = value;
56783 self
56784 }
56785 #[inline]
56786 pub fn qp_p(mut self, value: i32) -> Self {
56787 self.inner.qp_p = value;
56788 self
56789 }
56790 #[inline]
56791 pub fn qp_b(mut self, value: i32) -> Self {
56792 self.inner.qp_b = value;
56793 self
56794 }
56795}
56796impl core::ops::Deref for VideoEncodeH265QpKHRBuilder {
56797 type Target = VideoEncodeH265QpKHR;
56798 #[inline]
56799 fn deref(&self) -> &Self::Target {
56800 &self.inner
56801 }
56802}
56803impl core::ops::DerefMut for VideoEncodeH265QpKHRBuilder {
56804 #[inline]
56805 fn deref_mut(&mut self) -> &mut Self::Target {
56806 &mut self.inner
56807 }
56808}
56809pub struct VideoEncodeH265FrameSizeKHRBuilder {
56811 inner: VideoEncodeH265FrameSizeKHR,
56812}
56813impl VideoEncodeH265FrameSizeKHR {
56814 #[inline]
56816 pub fn builder() -> VideoEncodeH265FrameSizeKHRBuilder {
56817 VideoEncodeH265FrameSizeKHRBuilder {
56818 inner: VideoEncodeH265FrameSizeKHR {
56819 ..Default::default()
56820 },
56821 }
56822 }
56823}
56824impl VideoEncodeH265FrameSizeKHRBuilder {
56825 #[inline]
56826 pub fn frame_i_size(mut self, value: u32) -> Self {
56827 self.inner.frame_i_size = value;
56828 self
56829 }
56830 #[inline]
56831 pub fn frame_p_size(mut self, value: u32) -> Self {
56832 self.inner.frame_p_size = value;
56833 self
56834 }
56835 #[inline]
56836 pub fn frame_b_size(mut self, value: u32) -> Self {
56837 self.inner.frame_b_size = value;
56838 self
56839 }
56840}
56841impl core::ops::Deref for VideoEncodeH265FrameSizeKHRBuilder {
56842 type Target = VideoEncodeH265FrameSizeKHR;
56843 #[inline]
56844 fn deref(&self) -> &Self::Target {
56845 &self.inner
56846 }
56847}
56848impl core::ops::DerefMut for VideoEncodeH265FrameSizeKHRBuilder {
56849 #[inline]
56850 fn deref_mut(&mut self) -> &mut Self::Target {
56851 &mut self.inner
56852 }
56853}
56854pub struct VideoEncodeH265GopRemainingFrameInfoKHRBuilder<'a> {
56856 inner: VideoEncodeH265GopRemainingFrameInfoKHR,
56857 _marker: core::marker::PhantomData<&'a ()>,
56858}
56859impl VideoEncodeH265GopRemainingFrameInfoKHR {
56860 #[inline]
56862 pub fn builder<'a>() -> VideoEncodeH265GopRemainingFrameInfoKHRBuilder<'a> {
56863 VideoEncodeH265GopRemainingFrameInfoKHRBuilder {
56864 inner: VideoEncodeH265GopRemainingFrameInfoKHR {
56865 s_type: StructureType::from_raw(1000039006i32),
56866 ..Default::default()
56867 },
56868 _marker: core::marker::PhantomData,
56869 }
56870 }
56871}
56872impl<'a> VideoEncodeH265GopRemainingFrameInfoKHRBuilder<'a> {
56873 #[inline]
56874 pub fn use_gop_remaining_frames(mut self, value: bool) -> Self {
56875 self.inner.use_gop_remaining_frames = value as u32;
56876 self
56877 }
56878 #[inline]
56879 pub fn gop_remaining_i(mut self, value: u32) -> Self {
56880 self.inner.gop_remaining_i = value;
56881 self
56882 }
56883 #[inline]
56884 pub fn gop_remaining_p(mut self, value: u32) -> Self {
56885 self.inner.gop_remaining_p = value;
56886 self
56887 }
56888 #[inline]
56889 pub fn gop_remaining_b(mut self, value: u32) -> Self {
56890 self.inner.gop_remaining_b = value;
56891 self
56892 }
56893 #[inline]
56895 pub fn push_next<T: ExtendsVideoEncodeH265GopRemainingFrameInfoKHR>(
56896 mut self,
56897 next: &'a mut T,
56898 ) -> Self {
56899 unsafe {
56900 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56901 (*next_ptr).p_next = self.inner.p_next as *mut _;
56902 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56903 core::ffi::c_void,
56904 >(next_ptr) as *const _;
56905 }
56906 self
56907 }
56908}
56909impl<'a> core::ops::Deref for VideoEncodeH265GopRemainingFrameInfoKHRBuilder<'a> {
56910 type Target = VideoEncodeH265GopRemainingFrameInfoKHR;
56911 #[inline]
56912 fn deref(&self) -> &Self::Target {
56913 &self.inner
56914 }
56915}
56916impl<'a> core::ops::DerefMut for VideoEncodeH265GopRemainingFrameInfoKHRBuilder<'a> {
56917 #[inline]
56918 fn deref_mut(&mut self) -> &mut Self::Target {
56919 &mut self.inner
56920 }
56921}
56922pub struct VideoEncodeH265RateControlLayerInfoKHRBuilder<'a> {
56924 inner: VideoEncodeH265RateControlLayerInfoKHR,
56925 _marker: core::marker::PhantomData<&'a ()>,
56926}
56927impl VideoEncodeH265RateControlLayerInfoKHR {
56928 #[inline]
56930 pub fn builder<'a>() -> VideoEncodeH265RateControlLayerInfoKHRBuilder<'a> {
56931 VideoEncodeH265RateControlLayerInfoKHRBuilder {
56932 inner: VideoEncodeH265RateControlLayerInfoKHR {
56933 s_type: StructureType::from_raw(1000039010i32),
56934 ..Default::default()
56935 },
56936 _marker: core::marker::PhantomData,
56937 }
56938 }
56939}
56940impl<'a> VideoEncodeH265RateControlLayerInfoKHRBuilder<'a> {
56941 #[inline]
56942 pub fn use_min_qp(mut self, value: bool) -> Self {
56943 self.inner.use_min_qp = value as u32;
56944 self
56945 }
56946 #[inline]
56947 pub fn min_qp(mut self, value: VideoEncodeH265QpKHR) -> Self {
56948 self.inner.min_qp = value;
56949 self
56950 }
56951 #[inline]
56952 pub fn use_max_qp(mut self, value: bool) -> Self {
56953 self.inner.use_max_qp = value as u32;
56954 self
56955 }
56956 #[inline]
56957 pub fn max_qp(mut self, value: VideoEncodeH265QpKHR) -> Self {
56958 self.inner.max_qp = value;
56959 self
56960 }
56961 #[inline]
56962 pub fn use_max_frame_size(mut self, value: bool) -> Self {
56963 self.inner.use_max_frame_size = value as u32;
56964 self
56965 }
56966 #[inline]
56967 pub fn max_frame_size(mut self, value: VideoEncodeH265FrameSizeKHR) -> Self {
56968 self.inner.max_frame_size = value;
56969 self
56970 }
56971 #[inline]
56973 pub fn push_next<T: ExtendsVideoEncodeH265RateControlLayerInfoKHR>(
56974 mut self,
56975 next: &'a mut T,
56976 ) -> Self {
56977 unsafe {
56978 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
56979 (*next_ptr).p_next = self.inner.p_next as *mut _;
56980 self.inner.p_next = <*mut BaseOutStructure>::cast::<
56981 core::ffi::c_void,
56982 >(next_ptr) as *const _;
56983 }
56984 self
56985 }
56986}
56987impl<'a> core::ops::Deref for VideoEncodeH265RateControlLayerInfoKHRBuilder<'a> {
56988 type Target = VideoEncodeH265RateControlLayerInfoKHR;
56989 #[inline]
56990 fn deref(&self) -> &Self::Target {
56991 &self.inner
56992 }
56993}
56994impl<'a> core::ops::DerefMut for VideoEncodeH265RateControlLayerInfoKHRBuilder<'a> {
56995 #[inline]
56996 fn deref_mut(&mut self) -> &mut Self::Target {
56997 &mut self.inner
56998 }
56999}
57000pub struct VideoEncodeH265ProfileInfoKHRBuilder<'a> {
57002 inner: VideoEncodeH265ProfileInfoKHR,
57003 _marker: core::marker::PhantomData<&'a ()>,
57004}
57005impl VideoEncodeH265ProfileInfoKHR {
57006 #[inline]
57008 pub fn builder<'a>() -> VideoEncodeH265ProfileInfoKHRBuilder<'a> {
57009 VideoEncodeH265ProfileInfoKHRBuilder {
57010 inner: VideoEncodeH265ProfileInfoKHR {
57011 s_type: StructureType::from_raw(1000039007i32),
57012 ..Default::default()
57013 },
57014 _marker: core::marker::PhantomData,
57015 }
57016 }
57017}
57018impl<'a> VideoEncodeH265ProfileInfoKHRBuilder<'a> {
57019 #[inline]
57020 pub fn std_profile_idc(mut self, value: StdVideoH265ProfileIdc) -> Self {
57021 self.inner.std_profile_idc = value;
57022 self
57023 }
57024 #[inline]
57026 pub fn push_next<T: ExtendsVideoEncodeH265ProfileInfoKHR>(
57027 mut self,
57028 next: &'a mut T,
57029 ) -> Self {
57030 unsafe {
57031 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57032 (*next_ptr).p_next = self.inner.p_next as *mut _;
57033 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57034 core::ffi::c_void,
57035 >(next_ptr) as *const _;
57036 }
57037 self
57038 }
57039}
57040impl<'a> core::ops::Deref for VideoEncodeH265ProfileInfoKHRBuilder<'a> {
57041 type Target = VideoEncodeH265ProfileInfoKHR;
57042 #[inline]
57043 fn deref(&self) -> &Self::Target {
57044 &self.inner
57045 }
57046}
57047impl<'a> core::ops::DerefMut for VideoEncodeH265ProfileInfoKHRBuilder<'a> {
57048 #[inline]
57049 fn deref_mut(&mut self) -> &mut Self::Target {
57050 &mut self.inner
57051 }
57052}
57053pub struct VideoEncodeH265DpbSlotInfoKHRBuilder<'a> {
57055 inner: VideoEncodeH265DpbSlotInfoKHR,
57056 _marker: core::marker::PhantomData<&'a ()>,
57057}
57058impl VideoEncodeH265DpbSlotInfoKHR {
57059 #[inline]
57061 pub fn builder<'a>() -> VideoEncodeH265DpbSlotInfoKHRBuilder<'a> {
57062 VideoEncodeH265DpbSlotInfoKHRBuilder {
57063 inner: VideoEncodeH265DpbSlotInfoKHR {
57064 s_type: StructureType::from_raw(1000039004i32),
57065 ..Default::default()
57066 },
57067 _marker: core::marker::PhantomData,
57068 }
57069 }
57070}
57071impl<'a> VideoEncodeH265DpbSlotInfoKHRBuilder<'a> {
57072 #[inline]
57073 pub fn std_reference_info(
57074 mut self,
57075 value: *const StdVideoEncodeH265ReferenceInfo,
57076 ) -> Self {
57077 self.inner.p_std_reference_info = value;
57078 self
57079 }
57080 #[inline]
57082 pub fn push_next<T: ExtendsVideoEncodeH265DpbSlotInfoKHR>(
57083 mut self,
57084 next: &'a mut T,
57085 ) -> Self {
57086 unsafe {
57087 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57088 (*next_ptr).p_next = self.inner.p_next as *mut _;
57089 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57090 core::ffi::c_void,
57091 >(next_ptr) as *const _;
57092 }
57093 self
57094 }
57095}
57096impl<'a> core::ops::Deref for VideoEncodeH265DpbSlotInfoKHRBuilder<'a> {
57097 type Target = VideoEncodeH265DpbSlotInfoKHR;
57098 #[inline]
57099 fn deref(&self) -> &Self::Target {
57100 &self.inner
57101 }
57102}
57103impl<'a> core::ops::DerefMut for VideoEncodeH265DpbSlotInfoKHRBuilder<'a> {
57104 #[inline]
57105 fn deref_mut(&mut self) -> &mut Self::Target {
57106 &mut self.inner
57107 }
57108}
57109pub struct VideoEncodeAV1CapabilitiesKHRBuilder<'a> {
57111 inner: VideoEncodeAV1CapabilitiesKHR,
57112 _marker: core::marker::PhantomData<&'a ()>,
57113}
57114impl VideoEncodeAV1CapabilitiesKHR {
57115 #[inline]
57117 pub fn builder<'a>() -> VideoEncodeAV1CapabilitiesKHRBuilder<'a> {
57118 VideoEncodeAV1CapabilitiesKHRBuilder {
57119 inner: VideoEncodeAV1CapabilitiesKHR {
57120 s_type: StructureType::from_raw(1000513000i32),
57121 ..Default::default()
57122 },
57123 _marker: core::marker::PhantomData,
57124 }
57125 }
57126}
57127impl<'a> VideoEncodeAV1CapabilitiesKHRBuilder<'a> {
57128 #[inline]
57129 pub fn flags(mut self, value: VideoEncodeAV1CapabilityFlagsKHR) -> Self {
57130 self.inner.flags = value;
57131 self
57132 }
57133 #[inline]
57134 pub fn max_level(mut self, value: StdVideoAV1Level) -> Self {
57135 self.inner.max_level = value;
57136 self
57137 }
57138 #[inline]
57139 pub fn coded_picture_alignment(mut self, value: Extent2D) -> Self {
57140 self.inner.coded_picture_alignment = value;
57141 self
57142 }
57143 #[inline]
57144 pub fn max_tiles(mut self, value: Extent2D) -> Self {
57145 self.inner.max_tiles = value;
57146 self
57147 }
57148 #[inline]
57149 pub fn min_tile_size(mut self, value: Extent2D) -> Self {
57150 self.inner.min_tile_size = value;
57151 self
57152 }
57153 #[inline]
57154 pub fn max_tile_size(mut self, value: Extent2D) -> Self {
57155 self.inner.max_tile_size = value;
57156 self
57157 }
57158 #[inline]
57159 pub fn superblock_sizes(
57160 mut self,
57161 value: VideoEncodeAV1SuperblockSizeFlagsKHR,
57162 ) -> Self {
57163 self.inner.superblock_sizes = value;
57164 self
57165 }
57166 #[inline]
57167 pub fn max_single_reference_count(mut self, value: u32) -> Self {
57168 self.inner.max_single_reference_count = value;
57169 self
57170 }
57171 #[inline]
57172 pub fn single_reference_name_mask(mut self, value: u32) -> Self {
57173 self.inner.single_reference_name_mask = value;
57174 self
57175 }
57176 #[inline]
57177 pub fn max_unidirectional_compound_reference_count(mut self, value: u32) -> Self {
57178 self.inner.max_unidirectional_compound_reference_count = value;
57179 self
57180 }
57181 #[inline]
57182 pub fn max_unidirectional_compound_group1_reference_count(
57183 mut self,
57184 value: u32,
57185 ) -> Self {
57186 self.inner.max_unidirectional_compound_group1_reference_count = value;
57187 self
57188 }
57189 #[inline]
57190 pub fn unidirectional_compound_reference_name_mask(mut self, value: u32) -> Self {
57191 self.inner.unidirectional_compound_reference_name_mask = value;
57192 self
57193 }
57194 #[inline]
57195 pub fn max_bidirectional_compound_reference_count(mut self, value: u32) -> Self {
57196 self.inner.max_bidirectional_compound_reference_count = value;
57197 self
57198 }
57199 #[inline]
57200 pub fn max_bidirectional_compound_group1_reference_count(
57201 mut self,
57202 value: u32,
57203 ) -> Self {
57204 self.inner.max_bidirectional_compound_group1_reference_count = value;
57205 self
57206 }
57207 #[inline]
57208 pub fn max_bidirectional_compound_group2_reference_count(
57209 mut self,
57210 value: u32,
57211 ) -> Self {
57212 self.inner.max_bidirectional_compound_group2_reference_count = value;
57213 self
57214 }
57215 #[inline]
57216 pub fn bidirectional_compound_reference_name_mask(mut self, value: u32) -> Self {
57217 self.inner.bidirectional_compound_reference_name_mask = value;
57218 self
57219 }
57220 #[inline]
57221 pub fn max_temporal_layer_count(mut self, value: u32) -> Self {
57222 self.inner.max_temporal_layer_count = value;
57223 self
57224 }
57225 #[inline]
57226 pub fn max_spatial_layer_count(mut self, value: u32) -> Self {
57227 self.inner.max_spatial_layer_count = value;
57228 self
57229 }
57230 #[inline]
57231 pub fn max_operating_points(mut self, value: u32) -> Self {
57232 self.inner.max_operating_points = value;
57233 self
57234 }
57235 #[inline]
57236 pub fn min_q_index(mut self, value: u32) -> Self {
57237 self.inner.min_q_index = value;
57238 self
57239 }
57240 #[inline]
57241 pub fn max_q_index(mut self, value: u32) -> Self {
57242 self.inner.max_q_index = value;
57243 self
57244 }
57245 #[inline]
57246 pub fn prefers_gop_remaining_frames(mut self, value: bool) -> Self {
57247 self.inner.prefers_gop_remaining_frames = value as u32;
57248 self
57249 }
57250 #[inline]
57251 pub fn requires_gop_remaining_frames(mut self, value: bool) -> Self {
57252 self.inner.requires_gop_remaining_frames = value as u32;
57253 self
57254 }
57255 #[inline]
57256 pub fn std_syntax_flags(mut self, value: VideoEncodeAV1StdFlagsKHR) -> Self {
57257 self.inner.std_syntax_flags = value;
57258 self
57259 }
57260}
57261impl<'a> core::ops::Deref for VideoEncodeAV1CapabilitiesKHRBuilder<'a> {
57262 type Target = VideoEncodeAV1CapabilitiesKHR;
57263 #[inline]
57264 fn deref(&self) -> &Self::Target {
57265 &self.inner
57266 }
57267}
57268impl<'a> core::ops::DerefMut for VideoEncodeAV1CapabilitiesKHRBuilder<'a> {
57269 #[inline]
57270 fn deref_mut(&mut self) -> &mut Self::Target {
57271 &mut self.inner
57272 }
57273}
57274pub struct VideoEncodeAV1QualityLevelPropertiesKHRBuilder<'a> {
57276 inner: VideoEncodeAV1QualityLevelPropertiesKHR,
57277 _marker: core::marker::PhantomData<&'a ()>,
57278}
57279impl VideoEncodeAV1QualityLevelPropertiesKHR {
57280 #[inline]
57282 pub fn builder<'a>() -> VideoEncodeAV1QualityLevelPropertiesKHRBuilder<'a> {
57283 VideoEncodeAV1QualityLevelPropertiesKHRBuilder {
57284 inner: VideoEncodeAV1QualityLevelPropertiesKHR {
57285 s_type: StructureType::from_raw(1000513008i32),
57286 ..Default::default()
57287 },
57288 _marker: core::marker::PhantomData,
57289 }
57290 }
57291}
57292impl<'a> VideoEncodeAV1QualityLevelPropertiesKHRBuilder<'a> {
57293 #[inline]
57294 pub fn preferred_rate_control_flags(
57295 mut self,
57296 value: VideoEncodeAV1RateControlFlagsKHR,
57297 ) -> Self {
57298 self.inner.preferred_rate_control_flags = value;
57299 self
57300 }
57301 #[inline]
57302 pub fn preferred_gop_frame_count(mut self, value: u32) -> Self {
57303 self.inner.preferred_gop_frame_count = value;
57304 self
57305 }
57306 #[inline]
57307 pub fn preferred_key_frame_period(mut self, value: u32) -> Self {
57308 self.inner.preferred_key_frame_period = value;
57309 self
57310 }
57311 #[inline]
57312 pub fn preferred_consecutive_bipredictive_frame_count(mut self, value: u32) -> Self {
57313 self.inner.preferred_consecutive_bipredictive_frame_count = value;
57314 self
57315 }
57316 #[inline]
57317 pub fn preferred_temporal_layer_count(mut self, value: u32) -> Self {
57318 self.inner.preferred_temporal_layer_count = value;
57319 self
57320 }
57321 #[inline]
57322 pub fn preferred_constant_q_index(mut self, value: VideoEncodeAV1QIndexKHR) -> Self {
57323 self.inner.preferred_constant_q_index = value;
57324 self
57325 }
57326 #[inline]
57327 pub fn preferred_max_single_reference_count(mut self, value: u32) -> Self {
57328 self.inner.preferred_max_single_reference_count = value;
57329 self
57330 }
57331 #[inline]
57332 pub fn preferred_single_reference_name_mask(mut self, value: u32) -> Self {
57333 self.inner.preferred_single_reference_name_mask = value;
57334 self
57335 }
57336 #[inline]
57337 pub fn preferred_max_unidirectional_compound_reference_count(
57338 mut self,
57339 value: u32,
57340 ) -> Self {
57341 self.inner.preferred_max_unidirectional_compound_reference_count = value;
57342 self
57343 }
57344 #[inline]
57345 pub fn preferred_max_unidirectional_compound_group1_reference_count(
57346 mut self,
57347 value: u32,
57348 ) -> Self {
57349 self.inner.preferred_max_unidirectional_compound_group1_reference_count = value;
57350 self
57351 }
57352 #[inline]
57353 pub fn preferred_unidirectional_compound_reference_name_mask(
57354 mut self,
57355 value: u32,
57356 ) -> Self {
57357 self.inner.preferred_unidirectional_compound_reference_name_mask = value;
57358 self
57359 }
57360 #[inline]
57361 pub fn preferred_max_bidirectional_compound_reference_count(
57362 mut self,
57363 value: u32,
57364 ) -> Self {
57365 self.inner.preferred_max_bidirectional_compound_reference_count = value;
57366 self
57367 }
57368 #[inline]
57369 pub fn preferred_max_bidirectional_compound_group1_reference_count(
57370 mut self,
57371 value: u32,
57372 ) -> Self {
57373 self.inner.preferred_max_bidirectional_compound_group1_reference_count = value;
57374 self
57375 }
57376 #[inline]
57377 pub fn preferred_max_bidirectional_compound_group2_reference_count(
57378 mut self,
57379 value: u32,
57380 ) -> Self {
57381 self.inner.preferred_max_bidirectional_compound_group2_reference_count = value;
57382 self
57383 }
57384 #[inline]
57385 pub fn preferred_bidirectional_compound_reference_name_mask(
57386 mut self,
57387 value: u32,
57388 ) -> Self {
57389 self.inner.preferred_bidirectional_compound_reference_name_mask = value;
57390 self
57391 }
57392}
57393impl<'a> core::ops::Deref for VideoEncodeAV1QualityLevelPropertiesKHRBuilder<'a> {
57394 type Target = VideoEncodeAV1QualityLevelPropertiesKHR;
57395 #[inline]
57396 fn deref(&self) -> &Self::Target {
57397 &self.inner
57398 }
57399}
57400impl<'a> core::ops::DerefMut for VideoEncodeAV1QualityLevelPropertiesKHRBuilder<'a> {
57401 #[inline]
57402 fn deref_mut(&mut self) -> &mut Self::Target {
57403 &mut self.inner
57404 }
57405}
57406pub struct PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder<'a> {
57408 inner: PhysicalDeviceVideoEncodeAV1FeaturesKHR,
57409 _marker: core::marker::PhantomData<&'a ()>,
57410}
57411impl PhysicalDeviceVideoEncodeAV1FeaturesKHR {
57412 #[inline]
57414 pub fn builder<'a>() -> PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder<'a> {
57415 PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder {
57416 inner: PhysicalDeviceVideoEncodeAV1FeaturesKHR {
57417 s_type: StructureType::from_raw(1000513004i32),
57418 ..Default::default()
57419 },
57420 _marker: core::marker::PhantomData,
57421 }
57422 }
57423}
57424impl<'a> PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder<'a> {
57425 #[inline]
57426 pub fn video_encode_av1(mut self, value: bool) -> Self {
57427 self.inner.video_encode_av1 = value as u32;
57428 self
57429 }
57430 #[inline]
57432 pub fn push_next<T: ExtendsPhysicalDeviceVideoEncodeAV1FeaturesKHR>(
57433 mut self,
57434 next: &'a mut T,
57435 ) -> Self {
57436 unsafe {
57437 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57438 (*next_ptr).p_next = self.inner.p_next as *mut _;
57439 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57440 core::ffi::c_void,
57441 >(next_ptr);
57442 }
57443 self
57444 }
57445}
57446impl<'a> core::ops::Deref for PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder<'a> {
57447 type Target = PhysicalDeviceVideoEncodeAV1FeaturesKHR;
57448 #[inline]
57449 fn deref(&self) -> &Self::Target {
57450 &self.inner
57451 }
57452}
57453impl<'a> core::ops::DerefMut for PhysicalDeviceVideoEncodeAV1FeaturesKHRBuilder<'a> {
57454 #[inline]
57455 fn deref_mut(&mut self) -> &mut Self::Target {
57456 &mut self.inner
57457 }
57458}
57459pub struct VideoEncodeAV1SessionCreateInfoKHRBuilder<'a> {
57461 inner: VideoEncodeAV1SessionCreateInfoKHR,
57462 _marker: core::marker::PhantomData<&'a ()>,
57463}
57464impl VideoEncodeAV1SessionCreateInfoKHR {
57465 #[inline]
57467 pub fn builder<'a>() -> VideoEncodeAV1SessionCreateInfoKHRBuilder<'a> {
57468 VideoEncodeAV1SessionCreateInfoKHRBuilder {
57469 inner: VideoEncodeAV1SessionCreateInfoKHR {
57470 s_type: StructureType::from_raw(1000513009i32),
57471 ..Default::default()
57472 },
57473 _marker: core::marker::PhantomData,
57474 }
57475 }
57476}
57477impl<'a> VideoEncodeAV1SessionCreateInfoKHRBuilder<'a> {
57478 #[inline]
57479 pub fn use_max_level(mut self, value: bool) -> Self {
57480 self.inner.use_max_level = value as u32;
57481 self
57482 }
57483 #[inline]
57484 pub fn max_level(mut self, value: StdVideoAV1Level) -> Self {
57485 self.inner.max_level = value;
57486 self
57487 }
57488 #[inline]
57490 pub fn push_next<T: ExtendsVideoEncodeAV1SessionCreateInfoKHR>(
57491 mut self,
57492 next: &'a mut T,
57493 ) -> Self {
57494 unsafe {
57495 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57496 (*next_ptr).p_next = self.inner.p_next as *mut _;
57497 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57498 core::ffi::c_void,
57499 >(next_ptr) as *const _;
57500 }
57501 self
57502 }
57503}
57504impl<'a> core::ops::Deref for VideoEncodeAV1SessionCreateInfoKHRBuilder<'a> {
57505 type Target = VideoEncodeAV1SessionCreateInfoKHR;
57506 #[inline]
57507 fn deref(&self) -> &Self::Target {
57508 &self.inner
57509 }
57510}
57511impl<'a> core::ops::DerefMut for VideoEncodeAV1SessionCreateInfoKHRBuilder<'a> {
57512 #[inline]
57513 fn deref_mut(&mut self) -> &mut Self::Target {
57514 &mut self.inner
57515 }
57516}
57517pub struct VideoEncodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
57519 inner: VideoEncodeAV1SessionParametersCreateInfoKHR,
57520 _marker: core::marker::PhantomData<&'a ()>,
57521}
57522impl VideoEncodeAV1SessionParametersCreateInfoKHR {
57523 #[inline]
57525 pub fn builder<'a>() -> VideoEncodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
57526 VideoEncodeAV1SessionParametersCreateInfoKHRBuilder {
57527 inner: VideoEncodeAV1SessionParametersCreateInfoKHR {
57528 s_type: StructureType::from_raw(1000513001i32),
57529 ..Default::default()
57530 },
57531 _marker: core::marker::PhantomData,
57532 }
57533 }
57534}
57535impl<'a> VideoEncodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
57536 #[inline]
57537 pub fn std_sequence_header(
57538 mut self,
57539 value: *const StdVideoAV1SequenceHeader,
57540 ) -> Self {
57541 self.inner.p_std_sequence_header = value;
57542 self
57543 }
57544 #[inline]
57545 pub fn std_decoder_model_info(
57546 mut self,
57547 value: *const StdVideoEncodeAV1DecoderModelInfo,
57548 ) -> Self {
57549 self.inner.p_std_decoder_model_info = value;
57550 self
57551 }
57552 #[inline]
57553 pub fn std_operating_point_count(mut self, value: u32) -> Self {
57554 self.inner.std_operating_point_count = value;
57555 self
57556 }
57557 #[inline]
57558 pub fn std_operating_points(
57559 mut self,
57560 slice: &'a [StdVideoEncodeAV1OperatingPointInfo],
57561 ) -> Self {
57562 self.inner.std_operating_point_count = slice.len() as u32;
57563 self.inner.p_std_operating_points = slice.as_ptr();
57564 self
57565 }
57566 #[inline]
57568 pub fn push_next<T: ExtendsVideoEncodeAV1SessionParametersCreateInfoKHR>(
57569 mut self,
57570 next: &'a mut T,
57571 ) -> Self {
57572 unsafe {
57573 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57574 (*next_ptr).p_next = self.inner.p_next as *mut _;
57575 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57576 core::ffi::c_void,
57577 >(next_ptr) as *const _;
57578 }
57579 self
57580 }
57581}
57582impl<'a> core::ops::Deref for VideoEncodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
57583 type Target = VideoEncodeAV1SessionParametersCreateInfoKHR;
57584 #[inline]
57585 fn deref(&self) -> &Self::Target {
57586 &self.inner
57587 }
57588}
57589impl<'a> core::ops::DerefMut
57590for VideoEncodeAV1SessionParametersCreateInfoKHRBuilder<'a> {
57591 #[inline]
57592 fn deref_mut(&mut self) -> &mut Self::Target {
57593 &mut self.inner
57594 }
57595}
57596pub struct VideoEncodeAV1DpbSlotInfoKHRBuilder<'a> {
57598 inner: VideoEncodeAV1DpbSlotInfoKHR,
57599 _marker: core::marker::PhantomData<&'a ()>,
57600}
57601impl VideoEncodeAV1DpbSlotInfoKHR {
57602 #[inline]
57604 pub fn builder<'a>() -> VideoEncodeAV1DpbSlotInfoKHRBuilder<'a> {
57605 VideoEncodeAV1DpbSlotInfoKHRBuilder {
57606 inner: VideoEncodeAV1DpbSlotInfoKHR {
57607 s_type: StructureType::from_raw(1000513003i32),
57608 ..Default::default()
57609 },
57610 _marker: core::marker::PhantomData,
57611 }
57612 }
57613}
57614impl<'a> VideoEncodeAV1DpbSlotInfoKHRBuilder<'a> {
57615 #[inline]
57616 pub fn std_reference_info(
57617 mut self,
57618 value: *const StdVideoEncodeAV1ReferenceInfo,
57619 ) -> Self {
57620 self.inner.p_std_reference_info = value;
57621 self
57622 }
57623 #[inline]
57625 pub fn push_next<T: ExtendsVideoEncodeAV1DpbSlotInfoKHR>(
57626 mut self,
57627 next: &'a mut T,
57628 ) -> Self {
57629 unsafe {
57630 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57631 (*next_ptr).p_next = self.inner.p_next as *mut _;
57632 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57633 core::ffi::c_void,
57634 >(next_ptr) as *const _;
57635 }
57636 self
57637 }
57638}
57639impl<'a> core::ops::Deref for VideoEncodeAV1DpbSlotInfoKHRBuilder<'a> {
57640 type Target = VideoEncodeAV1DpbSlotInfoKHR;
57641 #[inline]
57642 fn deref(&self) -> &Self::Target {
57643 &self.inner
57644 }
57645}
57646impl<'a> core::ops::DerefMut for VideoEncodeAV1DpbSlotInfoKHRBuilder<'a> {
57647 #[inline]
57648 fn deref_mut(&mut self) -> &mut Self::Target {
57649 &mut self.inner
57650 }
57651}
57652pub struct VideoEncodeAV1PictureInfoKHRBuilder<'a> {
57654 inner: VideoEncodeAV1PictureInfoKHR,
57655 _marker: core::marker::PhantomData<&'a ()>,
57656}
57657impl VideoEncodeAV1PictureInfoKHR {
57658 #[inline]
57660 pub fn builder<'a>() -> VideoEncodeAV1PictureInfoKHRBuilder<'a> {
57661 VideoEncodeAV1PictureInfoKHRBuilder {
57662 inner: VideoEncodeAV1PictureInfoKHR {
57663 s_type: StructureType::from_raw(1000513002i32),
57664 ..Default::default()
57665 },
57666 _marker: core::marker::PhantomData,
57667 }
57668 }
57669}
57670impl<'a> VideoEncodeAV1PictureInfoKHRBuilder<'a> {
57671 #[inline]
57672 pub fn prediction_mode(mut self, value: VideoEncodeAV1PredictionModeKHR) -> Self {
57673 self.inner.prediction_mode = value;
57674 self
57675 }
57676 #[inline]
57677 pub fn rate_control_group(
57678 mut self,
57679 value: VideoEncodeAV1RateControlGroupKHR,
57680 ) -> Self {
57681 self.inner.rate_control_group = value;
57682 self
57683 }
57684 #[inline]
57685 pub fn constant_q_index(mut self, value: u32) -> Self {
57686 self.inner.constant_q_index = value;
57687 self
57688 }
57689 #[inline]
57690 pub fn std_picture_info(
57691 mut self,
57692 value: *const StdVideoEncodeAV1PictureInfo,
57693 ) -> Self {
57694 self.inner.p_std_picture_info = value;
57695 self
57696 }
57697 #[inline]
57698 pub fn reference_name_slot_indices(
57699 mut self,
57700 value: [i32; MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR as usize],
57701 ) -> Self {
57702 self.inner.reference_name_slot_indices = value;
57703 self
57704 }
57705 #[inline]
57706 pub fn primary_reference_cdf_only(mut self, value: bool) -> Self {
57707 self.inner.primary_reference_cdf_only = value as u32;
57708 self
57709 }
57710 #[inline]
57711 pub fn generate_obu_extension_header(mut self, value: bool) -> Self {
57712 self.inner.generate_obu_extension_header = value as u32;
57713 self
57714 }
57715 #[inline]
57717 pub fn push_next<T: ExtendsVideoEncodeAV1PictureInfoKHR>(
57718 mut self,
57719 next: &'a mut T,
57720 ) -> Self {
57721 unsafe {
57722 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57723 (*next_ptr).p_next = self.inner.p_next as *mut _;
57724 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57725 core::ffi::c_void,
57726 >(next_ptr) as *const _;
57727 }
57728 self
57729 }
57730}
57731impl<'a> core::ops::Deref for VideoEncodeAV1PictureInfoKHRBuilder<'a> {
57732 type Target = VideoEncodeAV1PictureInfoKHR;
57733 #[inline]
57734 fn deref(&self) -> &Self::Target {
57735 &self.inner
57736 }
57737}
57738impl<'a> core::ops::DerefMut for VideoEncodeAV1PictureInfoKHRBuilder<'a> {
57739 #[inline]
57740 fn deref_mut(&mut self) -> &mut Self::Target {
57741 &mut self.inner
57742 }
57743}
57744pub struct VideoEncodeAV1ProfileInfoKHRBuilder<'a> {
57746 inner: VideoEncodeAV1ProfileInfoKHR,
57747 _marker: core::marker::PhantomData<&'a ()>,
57748}
57749impl VideoEncodeAV1ProfileInfoKHR {
57750 #[inline]
57752 pub fn builder<'a>() -> VideoEncodeAV1ProfileInfoKHRBuilder<'a> {
57753 VideoEncodeAV1ProfileInfoKHRBuilder {
57754 inner: VideoEncodeAV1ProfileInfoKHR {
57755 s_type: StructureType::from_raw(1000513005i32),
57756 ..Default::default()
57757 },
57758 _marker: core::marker::PhantomData,
57759 }
57760 }
57761}
57762impl<'a> VideoEncodeAV1ProfileInfoKHRBuilder<'a> {
57763 #[inline]
57764 pub fn std_profile(mut self, value: StdVideoAV1Profile) -> Self {
57765 self.inner.std_profile = value;
57766 self
57767 }
57768 #[inline]
57770 pub fn push_next<T: ExtendsVideoEncodeAV1ProfileInfoKHR>(
57771 mut self,
57772 next: &'a mut T,
57773 ) -> Self {
57774 unsafe {
57775 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57776 (*next_ptr).p_next = self.inner.p_next as *mut _;
57777 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57778 core::ffi::c_void,
57779 >(next_ptr) as *const _;
57780 }
57781 self
57782 }
57783}
57784impl<'a> core::ops::Deref for VideoEncodeAV1ProfileInfoKHRBuilder<'a> {
57785 type Target = VideoEncodeAV1ProfileInfoKHR;
57786 #[inline]
57787 fn deref(&self) -> &Self::Target {
57788 &self.inner
57789 }
57790}
57791impl<'a> core::ops::DerefMut for VideoEncodeAV1ProfileInfoKHRBuilder<'a> {
57792 #[inline]
57793 fn deref_mut(&mut self) -> &mut Self::Target {
57794 &mut self.inner
57795 }
57796}
57797pub struct VideoEncodeAV1RateControlInfoKHRBuilder<'a> {
57799 inner: VideoEncodeAV1RateControlInfoKHR,
57800 _marker: core::marker::PhantomData<&'a ()>,
57801}
57802impl VideoEncodeAV1RateControlInfoKHR {
57803 #[inline]
57805 pub fn builder<'a>() -> VideoEncodeAV1RateControlInfoKHRBuilder<'a> {
57806 VideoEncodeAV1RateControlInfoKHRBuilder {
57807 inner: VideoEncodeAV1RateControlInfoKHR {
57808 s_type: StructureType::from_raw(1000513006i32),
57809 ..Default::default()
57810 },
57811 _marker: core::marker::PhantomData,
57812 }
57813 }
57814}
57815impl<'a> VideoEncodeAV1RateControlInfoKHRBuilder<'a> {
57816 #[inline]
57817 pub fn flags(mut self, value: VideoEncodeAV1RateControlFlagsKHR) -> Self {
57818 self.inner.flags = value;
57819 self
57820 }
57821 #[inline]
57822 pub fn gop_frame_count(mut self, value: u32) -> Self {
57823 self.inner.gop_frame_count = value;
57824 self
57825 }
57826 #[inline]
57827 pub fn key_frame_period(mut self, value: u32) -> Self {
57828 self.inner.key_frame_period = value;
57829 self
57830 }
57831 #[inline]
57832 pub fn consecutive_bipredictive_frame_count(mut self, value: u32) -> Self {
57833 self.inner.consecutive_bipredictive_frame_count = value;
57834 self
57835 }
57836 #[inline]
57837 pub fn temporal_layer_count(mut self, value: u32) -> Self {
57838 self.inner.temporal_layer_count = value;
57839 self
57840 }
57841 #[inline]
57843 pub fn push_next<T: ExtendsVideoEncodeAV1RateControlInfoKHR>(
57844 mut self,
57845 next: &'a mut T,
57846 ) -> Self {
57847 unsafe {
57848 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
57849 (*next_ptr).p_next = self.inner.p_next as *mut _;
57850 self.inner.p_next = <*mut BaseOutStructure>::cast::<
57851 core::ffi::c_void,
57852 >(next_ptr) as *const _;
57853 }
57854 self
57855 }
57856}
57857impl<'a> core::ops::Deref for VideoEncodeAV1RateControlInfoKHRBuilder<'a> {
57858 type Target = VideoEncodeAV1RateControlInfoKHR;
57859 #[inline]
57860 fn deref(&self) -> &Self::Target {
57861 &self.inner
57862 }
57863}
57864impl<'a> core::ops::DerefMut for VideoEncodeAV1RateControlInfoKHRBuilder<'a> {
57865 #[inline]
57866 fn deref_mut(&mut self) -> &mut Self::Target {
57867 &mut self.inner
57868 }
57869}
57870pub struct VideoEncodeAV1QIndexKHRBuilder {
57872 inner: VideoEncodeAV1QIndexKHR,
57873}
57874impl VideoEncodeAV1QIndexKHR {
57875 #[inline]
57877 pub fn builder() -> VideoEncodeAV1QIndexKHRBuilder {
57878 VideoEncodeAV1QIndexKHRBuilder {
57879 inner: VideoEncodeAV1QIndexKHR {
57880 ..Default::default()
57881 },
57882 }
57883 }
57884}
57885impl VideoEncodeAV1QIndexKHRBuilder {
57886 #[inline]
57887 pub fn intra_q_index(mut self, value: u32) -> Self {
57888 self.inner.intra_q_index = value;
57889 self
57890 }
57891 #[inline]
57892 pub fn predictive_q_index(mut self, value: u32) -> Self {
57893 self.inner.predictive_q_index = value;
57894 self
57895 }
57896 #[inline]
57897 pub fn bipredictive_q_index(mut self, value: u32) -> Self {
57898 self.inner.bipredictive_q_index = value;
57899 self
57900 }
57901}
57902impl core::ops::Deref for VideoEncodeAV1QIndexKHRBuilder {
57903 type Target = VideoEncodeAV1QIndexKHR;
57904 #[inline]
57905 fn deref(&self) -> &Self::Target {
57906 &self.inner
57907 }
57908}
57909impl core::ops::DerefMut for VideoEncodeAV1QIndexKHRBuilder {
57910 #[inline]
57911 fn deref_mut(&mut self) -> &mut Self::Target {
57912 &mut self.inner
57913 }
57914}
57915pub struct VideoEncodeAV1FrameSizeKHRBuilder {
57917 inner: VideoEncodeAV1FrameSizeKHR,
57918}
57919impl VideoEncodeAV1FrameSizeKHR {
57920 #[inline]
57922 pub fn builder() -> VideoEncodeAV1FrameSizeKHRBuilder {
57923 VideoEncodeAV1FrameSizeKHRBuilder {
57924 inner: VideoEncodeAV1FrameSizeKHR {
57925 ..Default::default()
57926 },
57927 }
57928 }
57929}
57930impl VideoEncodeAV1FrameSizeKHRBuilder {
57931 #[inline]
57932 pub fn intra_frame_size(mut self, value: u32) -> Self {
57933 self.inner.intra_frame_size = value;
57934 self
57935 }
57936 #[inline]
57937 pub fn predictive_frame_size(mut self, value: u32) -> Self {
57938 self.inner.predictive_frame_size = value;
57939 self
57940 }
57941 #[inline]
57942 pub fn bipredictive_frame_size(mut self, value: u32) -> Self {
57943 self.inner.bipredictive_frame_size = value;
57944 self
57945 }
57946}
57947impl core::ops::Deref for VideoEncodeAV1FrameSizeKHRBuilder {
57948 type Target = VideoEncodeAV1FrameSizeKHR;
57949 #[inline]
57950 fn deref(&self) -> &Self::Target {
57951 &self.inner
57952 }
57953}
57954impl core::ops::DerefMut for VideoEncodeAV1FrameSizeKHRBuilder {
57955 #[inline]
57956 fn deref_mut(&mut self) -> &mut Self::Target {
57957 &mut self.inner
57958 }
57959}
57960pub struct VideoEncodeAV1GopRemainingFrameInfoKHRBuilder<'a> {
57962 inner: VideoEncodeAV1GopRemainingFrameInfoKHR,
57963 _marker: core::marker::PhantomData<&'a ()>,
57964}
57965impl VideoEncodeAV1GopRemainingFrameInfoKHR {
57966 #[inline]
57968 pub fn builder<'a>() -> VideoEncodeAV1GopRemainingFrameInfoKHRBuilder<'a> {
57969 VideoEncodeAV1GopRemainingFrameInfoKHRBuilder {
57970 inner: VideoEncodeAV1GopRemainingFrameInfoKHR {
57971 s_type: StructureType::from_raw(1000513010i32),
57972 ..Default::default()
57973 },
57974 _marker: core::marker::PhantomData,
57975 }
57976 }
57977}
57978impl<'a> VideoEncodeAV1GopRemainingFrameInfoKHRBuilder<'a> {
57979 #[inline]
57980 pub fn use_gop_remaining_frames(mut self, value: bool) -> Self {
57981 self.inner.use_gop_remaining_frames = value as u32;
57982 self
57983 }
57984 #[inline]
57985 pub fn gop_remaining_intra(mut self, value: u32) -> Self {
57986 self.inner.gop_remaining_intra = value;
57987 self
57988 }
57989 #[inline]
57990 pub fn gop_remaining_predictive(mut self, value: u32) -> Self {
57991 self.inner.gop_remaining_predictive = value;
57992 self
57993 }
57994 #[inline]
57995 pub fn gop_remaining_bipredictive(mut self, value: u32) -> Self {
57996 self.inner.gop_remaining_bipredictive = value;
57997 self
57998 }
57999 #[inline]
58001 pub fn push_next<T: ExtendsVideoEncodeAV1GopRemainingFrameInfoKHR>(
58002 mut self,
58003 next: &'a mut T,
58004 ) -> Self {
58005 unsafe {
58006 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58007 (*next_ptr).p_next = self.inner.p_next as *mut _;
58008 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58009 core::ffi::c_void,
58010 >(next_ptr) as *const _;
58011 }
58012 self
58013 }
58014}
58015impl<'a> core::ops::Deref for VideoEncodeAV1GopRemainingFrameInfoKHRBuilder<'a> {
58016 type Target = VideoEncodeAV1GopRemainingFrameInfoKHR;
58017 #[inline]
58018 fn deref(&self) -> &Self::Target {
58019 &self.inner
58020 }
58021}
58022impl<'a> core::ops::DerefMut for VideoEncodeAV1GopRemainingFrameInfoKHRBuilder<'a> {
58023 #[inline]
58024 fn deref_mut(&mut self) -> &mut Self::Target {
58025 &mut self.inner
58026 }
58027}
58028pub struct VideoEncodeAV1RateControlLayerInfoKHRBuilder<'a> {
58030 inner: VideoEncodeAV1RateControlLayerInfoKHR,
58031 _marker: core::marker::PhantomData<&'a ()>,
58032}
58033impl VideoEncodeAV1RateControlLayerInfoKHR {
58034 #[inline]
58036 pub fn builder<'a>() -> VideoEncodeAV1RateControlLayerInfoKHRBuilder<'a> {
58037 VideoEncodeAV1RateControlLayerInfoKHRBuilder {
58038 inner: VideoEncodeAV1RateControlLayerInfoKHR {
58039 s_type: StructureType::from_raw(1000513007i32),
58040 ..Default::default()
58041 },
58042 _marker: core::marker::PhantomData,
58043 }
58044 }
58045}
58046impl<'a> VideoEncodeAV1RateControlLayerInfoKHRBuilder<'a> {
58047 #[inline]
58048 pub fn use_min_q_index(mut self, value: bool) -> Self {
58049 self.inner.use_min_q_index = value as u32;
58050 self
58051 }
58052 #[inline]
58053 pub fn min_q_index(mut self, value: VideoEncodeAV1QIndexKHR) -> Self {
58054 self.inner.min_q_index = value;
58055 self
58056 }
58057 #[inline]
58058 pub fn use_max_q_index(mut self, value: bool) -> Self {
58059 self.inner.use_max_q_index = value as u32;
58060 self
58061 }
58062 #[inline]
58063 pub fn max_q_index(mut self, value: VideoEncodeAV1QIndexKHR) -> Self {
58064 self.inner.max_q_index = value;
58065 self
58066 }
58067 #[inline]
58068 pub fn use_max_frame_size(mut self, value: bool) -> Self {
58069 self.inner.use_max_frame_size = value as u32;
58070 self
58071 }
58072 #[inline]
58073 pub fn max_frame_size(mut self, value: VideoEncodeAV1FrameSizeKHR) -> Self {
58074 self.inner.max_frame_size = value;
58075 self
58076 }
58077 #[inline]
58079 pub fn push_next<T: ExtendsVideoEncodeAV1RateControlLayerInfoKHR>(
58080 mut self,
58081 next: &'a mut T,
58082 ) -> Self {
58083 unsafe {
58084 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58085 (*next_ptr).p_next = self.inner.p_next as *mut _;
58086 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58087 core::ffi::c_void,
58088 >(next_ptr) as *const _;
58089 }
58090 self
58091 }
58092}
58093impl<'a> core::ops::Deref for VideoEncodeAV1RateControlLayerInfoKHRBuilder<'a> {
58094 type Target = VideoEncodeAV1RateControlLayerInfoKHR;
58095 #[inline]
58096 fn deref(&self) -> &Self::Target {
58097 &self.inner
58098 }
58099}
58100impl<'a> core::ops::DerefMut for VideoEncodeAV1RateControlLayerInfoKHRBuilder<'a> {
58101 #[inline]
58102 fn deref_mut(&mut self) -> &mut Self::Target {
58103 &mut self.inner
58104 }
58105}
58106pub struct PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder<'a> {
58108 inner: PhysicalDeviceInheritedViewportScissorFeaturesNV,
58109 _marker: core::marker::PhantomData<&'a ()>,
58110}
58111impl PhysicalDeviceInheritedViewportScissorFeaturesNV {
58112 #[inline]
58114 pub fn builder<'a>() -> PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder<'a> {
58115 PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder {
58116 inner: PhysicalDeviceInheritedViewportScissorFeaturesNV {
58117 s_type: StructureType::from_raw(1000278000i32),
58118 ..Default::default()
58119 },
58120 _marker: core::marker::PhantomData,
58121 }
58122 }
58123}
58124impl<'a> PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder<'a> {
58125 #[inline]
58126 pub fn inherited_viewport_scissor2_d(mut self, value: bool) -> Self {
58127 self.inner.inherited_viewport_scissor2_d = value as u32;
58128 self
58129 }
58130 #[inline]
58132 pub fn push_next<T: ExtendsPhysicalDeviceInheritedViewportScissorFeaturesNV>(
58133 mut self,
58134 next: &'a mut T,
58135 ) -> Self {
58136 unsafe {
58137 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58138 (*next_ptr).p_next = self.inner.p_next as *mut _;
58139 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58140 core::ffi::c_void,
58141 >(next_ptr);
58142 }
58143 self
58144 }
58145}
58146impl<'a> core::ops::Deref
58147for PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder<'a> {
58148 type Target = PhysicalDeviceInheritedViewportScissorFeaturesNV;
58149 #[inline]
58150 fn deref(&self) -> &Self::Target {
58151 &self.inner
58152 }
58153}
58154impl<'a> core::ops::DerefMut
58155for PhysicalDeviceInheritedViewportScissorFeaturesNVBuilder<'a> {
58156 #[inline]
58157 fn deref_mut(&mut self) -> &mut Self::Target {
58158 &mut self.inner
58159 }
58160}
58161pub struct CommandBufferInheritanceViewportScissorInfoNVBuilder<'a> {
58163 inner: CommandBufferInheritanceViewportScissorInfoNV,
58164 _marker: core::marker::PhantomData<&'a ()>,
58165}
58166impl CommandBufferInheritanceViewportScissorInfoNV {
58167 #[inline]
58169 pub fn builder<'a>() -> CommandBufferInheritanceViewportScissorInfoNVBuilder<'a> {
58170 CommandBufferInheritanceViewportScissorInfoNVBuilder {
58171 inner: CommandBufferInheritanceViewportScissorInfoNV {
58172 s_type: StructureType::from_raw(1000278001i32),
58173 ..Default::default()
58174 },
58175 _marker: core::marker::PhantomData,
58176 }
58177 }
58178}
58179impl<'a> CommandBufferInheritanceViewportScissorInfoNVBuilder<'a> {
58180 #[inline]
58181 pub fn viewport_scissor2_d(mut self, value: bool) -> Self {
58182 self.inner.viewport_scissor2_d = value as u32;
58183 self
58184 }
58185 #[inline]
58186 pub fn viewport_depth_count(mut self, value: u32) -> Self {
58187 self.inner.viewport_depth_count = value;
58188 self
58189 }
58190 #[inline]
58191 pub fn viewport_depths(mut self, value: &'a Viewport) -> Self {
58192 self.inner.p_viewport_depths = value;
58193 self
58194 }
58195 #[inline]
58197 pub fn push_next<T: ExtendsCommandBufferInheritanceViewportScissorInfoNV>(
58198 mut self,
58199 next: &'a mut T,
58200 ) -> Self {
58201 unsafe {
58202 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58203 (*next_ptr).p_next = self.inner.p_next as *mut _;
58204 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58205 core::ffi::c_void,
58206 >(next_ptr) as *const _;
58207 }
58208 self
58209 }
58210}
58211impl<'a> core::ops::Deref for CommandBufferInheritanceViewportScissorInfoNVBuilder<'a> {
58212 type Target = CommandBufferInheritanceViewportScissorInfoNV;
58213 #[inline]
58214 fn deref(&self) -> &Self::Target {
58215 &self.inner
58216 }
58217}
58218impl<'a> core::ops::DerefMut
58219for CommandBufferInheritanceViewportScissorInfoNVBuilder<'a> {
58220 #[inline]
58221 fn deref_mut(&mut self) -> &mut Self::Target {
58222 &mut self.inner
58223 }
58224}
58225pub struct PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder<'a> {
58227 inner: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT,
58228 _marker: core::marker::PhantomData<&'a ()>,
58229}
58230impl PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
58231 #[inline]
58233 pub fn builder<'a>() -> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder<'a> {
58234 PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder {
58235 inner: PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
58236 s_type: StructureType::from_raw(1000330000i32),
58237 ..Default::default()
58238 },
58239 _marker: core::marker::PhantomData,
58240 }
58241 }
58242}
58243impl<'a> PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder<'a> {
58244 #[inline]
58245 pub fn ycbcr2plane444_formats(mut self, value: bool) -> Self {
58246 self.inner.ycbcr2plane444_formats = value as u32;
58247 self
58248 }
58249 #[inline]
58251 pub fn push_next<T: ExtendsPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>(
58252 mut self,
58253 next: &'a mut T,
58254 ) -> Self {
58255 unsafe {
58256 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58257 (*next_ptr).p_next = self.inner.p_next as *mut _;
58258 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58259 core::ffi::c_void,
58260 >(next_ptr);
58261 }
58262 self
58263 }
58264}
58265impl<'a> core::ops::Deref for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder<'a> {
58266 type Target = PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
58267 #[inline]
58268 fn deref(&self) -> &Self::Target {
58269 &self.inner
58270 }
58271}
58272impl<'a> core::ops::DerefMut
58273for PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXTBuilder<'a> {
58274 #[inline]
58275 fn deref_mut(&mut self) -> &mut Self::Target {
58276 &mut self.inner
58277 }
58278}
58279pub struct PhysicalDeviceProvokingVertexFeaturesEXTBuilder<'a> {
58281 inner: PhysicalDeviceProvokingVertexFeaturesEXT,
58282 _marker: core::marker::PhantomData<&'a ()>,
58283}
58284impl PhysicalDeviceProvokingVertexFeaturesEXT {
58285 #[inline]
58287 pub fn builder<'a>() -> PhysicalDeviceProvokingVertexFeaturesEXTBuilder<'a> {
58288 PhysicalDeviceProvokingVertexFeaturesEXTBuilder {
58289 inner: PhysicalDeviceProvokingVertexFeaturesEXT {
58290 s_type: StructureType::from_raw(1000254000i32),
58291 ..Default::default()
58292 },
58293 _marker: core::marker::PhantomData,
58294 }
58295 }
58296}
58297impl<'a> PhysicalDeviceProvokingVertexFeaturesEXTBuilder<'a> {
58298 #[inline]
58299 pub fn provoking_vertex_last(mut self, value: bool) -> Self {
58300 self.inner.provoking_vertex_last = value as u32;
58301 self
58302 }
58303 #[inline]
58304 pub fn transform_feedback_preserves_provoking_vertex(mut self, value: bool) -> Self {
58305 self.inner.transform_feedback_preserves_provoking_vertex = value as u32;
58306 self
58307 }
58308 #[inline]
58310 pub fn push_next<T: ExtendsPhysicalDeviceProvokingVertexFeaturesEXT>(
58311 mut self,
58312 next: &'a mut T,
58313 ) -> Self {
58314 unsafe {
58315 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58316 (*next_ptr).p_next = self.inner.p_next as *mut _;
58317 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58318 core::ffi::c_void,
58319 >(next_ptr);
58320 }
58321 self
58322 }
58323}
58324impl<'a> core::ops::Deref for PhysicalDeviceProvokingVertexFeaturesEXTBuilder<'a> {
58325 type Target = PhysicalDeviceProvokingVertexFeaturesEXT;
58326 #[inline]
58327 fn deref(&self) -> &Self::Target {
58328 &self.inner
58329 }
58330}
58331impl<'a> core::ops::DerefMut for PhysicalDeviceProvokingVertexFeaturesEXTBuilder<'a> {
58332 #[inline]
58333 fn deref_mut(&mut self) -> &mut Self::Target {
58334 &mut self.inner
58335 }
58336}
58337pub struct PhysicalDeviceProvokingVertexPropertiesEXTBuilder<'a> {
58339 inner: PhysicalDeviceProvokingVertexPropertiesEXT,
58340 _marker: core::marker::PhantomData<&'a ()>,
58341}
58342impl PhysicalDeviceProvokingVertexPropertiesEXT {
58343 #[inline]
58345 pub fn builder<'a>() -> PhysicalDeviceProvokingVertexPropertiesEXTBuilder<'a> {
58346 PhysicalDeviceProvokingVertexPropertiesEXTBuilder {
58347 inner: PhysicalDeviceProvokingVertexPropertiesEXT {
58348 s_type: StructureType::from_raw(1000254002i32),
58349 ..Default::default()
58350 },
58351 _marker: core::marker::PhantomData,
58352 }
58353 }
58354}
58355impl<'a> PhysicalDeviceProvokingVertexPropertiesEXTBuilder<'a> {
58356 #[inline]
58357 pub fn provoking_vertex_mode_per_pipeline(mut self, value: bool) -> Self {
58358 self.inner.provoking_vertex_mode_per_pipeline = value as u32;
58359 self
58360 }
58361 #[inline]
58362 pub fn transform_feedback_preserves_triangle_fan_provoking_vertex(
58363 mut self,
58364 value: bool,
58365 ) -> Self {
58366 self.inner.transform_feedback_preserves_triangle_fan_provoking_vertex = value
58367 as u32;
58368 self
58369 }
58370}
58371impl<'a> core::ops::Deref for PhysicalDeviceProvokingVertexPropertiesEXTBuilder<'a> {
58372 type Target = PhysicalDeviceProvokingVertexPropertiesEXT;
58373 #[inline]
58374 fn deref(&self) -> &Self::Target {
58375 &self.inner
58376 }
58377}
58378impl<'a> core::ops::DerefMut for PhysicalDeviceProvokingVertexPropertiesEXTBuilder<'a> {
58379 #[inline]
58380 fn deref_mut(&mut self) -> &mut Self::Target {
58381 &mut self.inner
58382 }
58383}
58384pub struct PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder<'a> {
58386 inner: PipelineRasterizationProvokingVertexStateCreateInfoEXT,
58387 _marker: core::marker::PhantomData<&'a ()>,
58388}
58389impl PipelineRasterizationProvokingVertexStateCreateInfoEXT {
58390 #[inline]
58392 pub fn builder<'a>() -> PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder<
58393 'a,
58394 > {
58395 PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder {
58396 inner: PipelineRasterizationProvokingVertexStateCreateInfoEXT {
58397 s_type: StructureType::from_raw(1000254001i32),
58398 ..Default::default()
58399 },
58400 _marker: core::marker::PhantomData,
58401 }
58402 }
58403}
58404impl<'a> PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder<'a> {
58405 #[inline]
58406 pub fn provoking_vertex_mode(mut self, value: ProvokingVertexModeEXT) -> Self {
58407 self.inner.provoking_vertex_mode = value;
58408 self
58409 }
58410 #[inline]
58412 pub fn push_next<T: ExtendsPipelineRasterizationProvokingVertexStateCreateInfoEXT>(
58413 mut self,
58414 next: &'a mut T,
58415 ) -> Self {
58416 unsafe {
58417 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58418 (*next_ptr).p_next = self.inner.p_next as *mut _;
58419 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58420 core::ffi::c_void,
58421 >(next_ptr) as *const _;
58422 }
58423 self
58424 }
58425}
58426impl<'a> core::ops::Deref
58427for PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder<'a> {
58428 type Target = PipelineRasterizationProvokingVertexStateCreateInfoEXT;
58429 #[inline]
58430 fn deref(&self) -> &Self::Target {
58431 &self.inner
58432 }
58433}
58434impl<'a> core::ops::DerefMut
58435for PipelineRasterizationProvokingVertexStateCreateInfoEXTBuilder<'a> {
58436 #[inline]
58437 fn deref_mut(&mut self) -> &mut Self::Target {
58438 &mut self.inner
58439 }
58440}
58441pub struct VideoEncodeIntraRefreshCapabilitiesKHRBuilder<'a> {
58443 inner: VideoEncodeIntraRefreshCapabilitiesKHR,
58444 _marker: core::marker::PhantomData<&'a ()>,
58445}
58446impl VideoEncodeIntraRefreshCapabilitiesKHR {
58447 #[inline]
58449 pub fn builder<'a>() -> VideoEncodeIntraRefreshCapabilitiesKHRBuilder<'a> {
58450 VideoEncodeIntraRefreshCapabilitiesKHRBuilder {
58451 inner: VideoEncodeIntraRefreshCapabilitiesKHR {
58452 s_type: StructureType::from_raw(1000552000i32),
58453 ..Default::default()
58454 },
58455 _marker: core::marker::PhantomData,
58456 }
58457 }
58458}
58459impl<'a> VideoEncodeIntraRefreshCapabilitiesKHRBuilder<'a> {
58460 #[inline]
58461 pub fn intra_refresh_modes(
58462 mut self,
58463 value: VideoEncodeIntraRefreshModeFlagsKHR,
58464 ) -> Self {
58465 self.inner.intra_refresh_modes = value;
58466 self
58467 }
58468 #[inline]
58469 pub fn max_intra_refresh_cycle_duration(mut self, value: u32) -> Self {
58470 self.inner.max_intra_refresh_cycle_duration = value;
58471 self
58472 }
58473 #[inline]
58474 pub fn max_intra_refresh_active_reference_pictures(mut self, value: u32) -> Self {
58475 self.inner.max_intra_refresh_active_reference_pictures = value;
58476 self
58477 }
58478 #[inline]
58479 pub fn partition_independent_intra_refresh_regions(mut self, value: bool) -> Self {
58480 self.inner.partition_independent_intra_refresh_regions = value as u32;
58481 self
58482 }
58483 #[inline]
58484 pub fn non_rectangular_intra_refresh_regions(mut self, value: bool) -> Self {
58485 self.inner.non_rectangular_intra_refresh_regions = value as u32;
58486 self
58487 }
58488}
58489impl<'a> core::ops::Deref for VideoEncodeIntraRefreshCapabilitiesKHRBuilder<'a> {
58490 type Target = VideoEncodeIntraRefreshCapabilitiesKHR;
58491 #[inline]
58492 fn deref(&self) -> &Self::Target {
58493 &self.inner
58494 }
58495}
58496impl<'a> core::ops::DerefMut for VideoEncodeIntraRefreshCapabilitiesKHRBuilder<'a> {
58497 #[inline]
58498 fn deref_mut(&mut self) -> &mut Self::Target {
58499 &mut self.inner
58500 }
58501}
58502pub struct VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder<'a> {
58504 inner: VideoEncodeSessionIntraRefreshCreateInfoKHR,
58505 _marker: core::marker::PhantomData<&'a ()>,
58506}
58507impl VideoEncodeSessionIntraRefreshCreateInfoKHR {
58508 #[inline]
58510 pub fn builder<'a>() -> VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder<'a> {
58511 VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder {
58512 inner: VideoEncodeSessionIntraRefreshCreateInfoKHR {
58513 s_type: StructureType::from_raw(1000552001i32),
58514 ..Default::default()
58515 },
58516 _marker: core::marker::PhantomData,
58517 }
58518 }
58519}
58520impl<'a> VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder<'a> {
58521 #[inline]
58522 pub fn intra_refresh_mode(
58523 mut self,
58524 value: VideoEncodeIntraRefreshModeFlagBitsKHR,
58525 ) -> Self {
58526 self.inner.intra_refresh_mode = value;
58527 self
58528 }
58529 #[inline]
58531 pub fn push_next<T: ExtendsVideoEncodeSessionIntraRefreshCreateInfoKHR>(
58532 mut self,
58533 next: &'a mut T,
58534 ) -> Self {
58535 unsafe {
58536 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58537 (*next_ptr).p_next = self.inner.p_next as *mut _;
58538 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58539 core::ffi::c_void,
58540 >(next_ptr) as *const _;
58541 }
58542 self
58543 }
58544}
58545impl<'a> core::ops::Deref for VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder<'a> {
58546 type Target = VideoEncodeSessionIntraRefreshCreateInfoKHR;
58547 #[inline]
58548 fn deref(&self) -> &Self::Target {
58549 &self.inner
58550 }
58551}
58552impl<'a> core::ops::DerefMut for VideoEncodeSessionIntraRefreshCreateInfoKHRBuilder<'a> {
58553 #[inline]
58554 fn deref_mut(&mut self) -> &mut Self::Target {
58555 &mut self.inner
58556 }
58557}
58558pub struct VideoEncodeIntraRefreshInfoKHRBuilder<'a> {
58560 inner: VideoEncodeIntraRefreshInfoKHR,
58561 _marker: core::marker::PhantomData<&'a ()>,
58562}
58563impl VideoEncodeIntraRefreshInfoKHR {
58564 #[inline]
58566 pub fn builder<'a>() -> VideoEncodeIntraRefreshInfoKHRBuilder<'a> {
58567 VideoEncodeIntraRefreshInfoKHRBuilder {
58568 inner: VideoEncodeIntraRefreshInfoKHR {
58569 s_type: StructureType::from_raw(1000552002i32),
58570 ..Default::default()
58571 },
58572 _marker: core::marker::PhantomData,
58573 }
58574 }
58575}
58576impl<'a> VideoEncodeIntraRefreshInfoKHRBuilder<'a> {
58577 #[inline]
58578 pub fn intra_refresh_cycle_duration(mut self, value: u32) -> Self {
58579 self.inner.intra_refresh_cycle_duration = value;
58580 self
58581 }
58582 #[inline]
58583 pub fn intra_refresh_index(mut self, value: u32) -> Self {
58584 self.inner.intra_refresh_index = value;
58585 self
58586 }
58587 #[inline]
58589 pub fn push_next<T: ExtendsVideoEncodeIntraRefreshInfoKHR>(
58590 mut self,
58591 next: &'a mut T,
58592 ) -> Self {
58593 unsafe {
58594 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58595 (*next_ptr).p_next = self.inner.p_next as *mut _;
58596 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58597 core::ffi::c_void,
58598 >(next_ptr) as *const _;
58599 }
58600 self
58601 }
58602}
58603impl<'a> core::ops::Deref for VideoEncodeIntraRefreshInfoKHRBuilder<'a> {
58604 type Target = VideoEncodeIntraRefreshInfoKHR;
58605 #[inline]
58606 fn deref(&self) -> &Self::Target {
58607 &self.inner
58608 }
58609}
58610impl<'a> core::ops::DerefMut for VideoEncodeIntraRefreshInfoKHRBuilder<'a> {
58611 #[inline]
58612 fn deref_mut(&mut self) -> &mut Self::Target {
58613 &mut self.inner
58614 }
58615}
58616pub struct VideoReferenceIntraRefreshInfoKHRBuilder<'a> {
58618 inner: VideoReferenceIntraRefreshInfoKHR,
58619 _marker: core::marker::PhantomData<&'a ()>,
58620}
58621impl VideoReferenceIntraRefreshInfoKHR {
58622 #[inline]
58624 pub fn builder<'a>() -> VideoReferenceIntraRefreshInfoKHRBuilder<'a> {
58625 VideoReferenceIntraRefreshInfoKHRBuilder {
58626 inner: VideoReferenceIntraRefreshInfoKHR {
58627 s_type: StructureType::from_raw(1000552003i32),
58628 ..Default::default()
58629 },
58630 _marker: core::marker::PhantomData,
58631 }
58632 }
58633}
58634impl<'a> VideoReferenceIntraRefreshInfoKHRBuilder<'a> {
58635 #[inline]
58636 pub fn dirty_intra_refresh_regions(mut self, value: u32) -> Self {
58637 self.inner.dirty_intra_refresh_regions = value;
58638 self
58639 }
58640 #[inline]
58642 pub fn push_next<T: ExtendsVideoReferenceIntraRefreshInfoKHR>(
58643 mut self,
58644 next: &'a mut T,
58645 ) -> Self {
58646 unsafe {
58647 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58648 (*next_ptr).p_next = self.inner.p_next as *mut _;
58649 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58650 core::ffi::c_void,
58651 >(next_ptr) as *const _;
58652 }
58653 self
58654 }
58655}
58656impl<'a> core::ops::Deref for VideoReferenceIntraRefreshInfoKHRBuilder<'a> {
58657 type Target = VideoReferenceIntraRefreshInfoKHR;
58658 #[inline]
58659 fn deref(&self) -> &Self::Target {
58660 &self.inner
58661 }
58662}
58663impl<'a> core::ops::DerefMut for VideoReferenceIntraRefreshInfoKHRBuilder<'a> {
58664 #[inline]
58665 fn deref_mut(&mut self) -> &mut Self::Target {
58666 &mut self.inner
58667 }
58668}
58669pub struct PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder<'a> {
58671 inner: PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR,
58672 _marker: core::marker::PhantomData<&'a ()>,
58673}
58674impl PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
58675 #[inline]
58677 pub fn builder<'a>() -> PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder<'a> {
58678 PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder {
58679 inner: PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
58680 s_type: StructureType::from_raw(1000552004i32),
58681 ..Default::default()
58682 },
58683 _marker: core::marker::PhantomData,
58684 }
58685 }
58686}
58687impl<'a> PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder<'a> {
58688 #[inline]
58689 pub fn video_encode_intra_refresh(mut self, value: bool) -> Self {
58690 self.inner.video_encode_intra_refresh = value as u32;
58691 self
58692 }
58693 #[inline]
58695 pub fn push_next<T: ExtendsPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR>(
58696 mut self,
58697 next: &'a mut T,
58698 ) -> Self {
58699 unsafe {
58700 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58701 (*next_ptr).p_next = self.inner.p_next as *mut _;
58702 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58703 core::ffi::c_void,
58704 >(next_ptr);
58705 }
58706 self
58707 }
58708}
58709impl<'a> core::ops::Deref
58710for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder<'a> {
58711 type Target = PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
58712 #[inline]
58713 fn deref(&self) -> &Self::Target {
58714 &self.inner
58715 }
58716}
58717impl<'a> core::ops::DerefMut
58718for PhysicalDeviceVideoEncodeIntraRefreshFeaturesKHRBuilder<'a> {
58719 #[inline]
58720 fn deref_mut(&mut self) -> &mut Self::Target {
58721 &mut self.inner
58722 }
58723}
58724pub struct CuModuleCreateInfoNVXBuilder<'a> {
58726 inner: CuModuleCreateInfoNVX,
58727 _marker: core::marker::PhantomData<&'a ()>,
58728}
58729impl CuModuleCreateInfoNVX {
58730 #[inline]
58732 pub fn builder<'a>() -> CuModuleCreateInfoNVXBuilder<'a> {
58733 CuModuleCreateInfoNVXBuilder {
58734 inner: CuModuleCreateInfoNVX {
58735 s_type: StructureType::from_raw(1000029000i32),
58736 ..Default::default()
58737 },
58738 _marker: core::marker::PhantomData,
58739 }
58740 }
58741}
58742impl<'a> CuModuleCreateInfoNVXBuilder<'a> {
58743 #[inline]
58744 pub fn data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
58745 self.inner.data_size = slice.len();
58746 self.inner.p_data = slice.as_ptr();
58747 self
58748 }
58749 #[inline]
58751 pub fn push_next<T: ExtendsCuModuleCreateInfoNVX>(
58752 mut self,
58753 next: &'a mut T,
58754 ) -> Self {
58755 unsafe {
58756 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58757 (*next_ptr).p_next = self.inner.p_next as *mut _;
58758 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58759 core::ffi::c_void,
58760 >(next_ptr) as *const _;
58761 }
58762 self
58763 }
58764}
58765impl<'a> core::ops::Deref for CuModuleCreateInfoNVXBuilder<'a> {
58766 type Target = CuModuleCreateInfoNVX;
58767 #[inline]
58768 fn deref(&self) -> &Self::Target {
58769 &self.inner
58770 }
58771}
58772impl<'a> core::ops::DerefMut for CuModuleCreateInfoNVXBuilder<'a> {
58773 #[inline]
58774 fn deref_mut(&mut self) -> &mut Self::Target {
58775 &mut self.inner
58776 }
58777}
58778pub struct CuModuleTexturingModeCreateInfoNVXBuilder<'a> {
58780 inner: CuModuleTexturingModeCreateInfoNVX,
58781 _marker: core::marker::PhantomData<&'a ()>,
58782}
58783impl CuModuleTexturingModeCreateInfoNVX {
58784 #[inline]
58786 pub fn builder<'a>() -> CuModuleTexturingModeCreateInfoNVXBuilder<'a> {
58787 CuModuleTexturingModeCreateInfoNVXBuilder {
58788 inner: CuModuleTexturingModeCreateInfoNVX {
58789 s_type: StructureType::from_raw(1000029004i32),
58790 ..Default::default()
58791 },
58792 _marker: core::marker::PhantomData,
58793 }
58794 }
58795}
58796impl<'a> CuModuleTexturingModeCreateInfoNVXBuilder<'a> {
58797 #[inline]
58798 pub fn use64bit_texturing(mut self, value: bool) -> Self {
58799 self.inner.use64bit_texturing = value as u32;
58800 self
58801 }
58802 #[inline]
58804 pub fn push_next<T: ExtendsCuModuleTexturingModeCreateInfoNVX>(
58805 mut self,
58806 next: &'a mut T,
58807 ) -> Self {
58808 unsafe {
58809 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58810 (*next_ptr).p_next = self.inner.p_next as *mut _;
58811 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58812 core::ffi::c_void,
58813 >(next_ptr) as *const _;
58814 }
58815 self
58816 }
58817}
58818impl<'a> core::ops::Deref for CuModuleTexturingModeCreateInfoNVXBuilder<'a> {
58819 type Target = CuModuleTexturingModeCreateInfoNVX;
58820 #[inline]
58821 fn deref(&self) -> &Self::Target {
58822 &self.inner
58823 }
58824}
58825impl<'a> core::ops::DerefMut for CuModuleTexturingModeCreateInfoNVXBuilder<'a> {
58826 #[inline]
58827 fn deref_mut(&mut self) -> &mut Self::Target {
58828 &mut self.inner
58829 }
58830}
58831pub struct CuFunctionCreateInfoNVXBuilder<'a> {
58833 inner: CuFunctionCreateInfoNVX,
58834 _marker: core::marker::PhantomData<&'a ()>,
58835}
58836impl CuFunctionCreateInfoNVX {
58837 #[inline]
58839 pub fn builder<'a>() -> CuFunctionCreateInfoNVXBuilder<'a> {
58840 CuFunctionCreateInfoNVXBuilder {
58841 inner: CuFunctionCreateInfoNVX {
58842 s_type: StructureType::from_raw(1000029001i32),
58843 ..Default::default()
58844 },
58845 _marker: core::marker::PhantomData,
58846 }
58847 }
58848}
58849impl<'a> CuFunctionCreateInfoNVXBuilder<'a> {
58850 #[inline]
58851 pub fn module(mut self, value: CuModuleNVX) -> Self {
58852 self.inner.module = value;
58853 self
58854 }
58855 #[inline]
58856 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
58857 self.inner.p_name = value.as_ptr();
58858 self
58859 }
58860 #[inline]
58862 pub fn push_next<T: ExtendsCuFunctionCreateInfoNVX>(
58863 mut self,
58864 next: &'a mut T,
58865 ) -> Self {
58866 unsafe {
58867 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58868 (*next_ptr).p_next = self.inner.p_next as *mut _;
58869 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58870 core::ffi::c_void,
58871 >(next_ptr) as *const _;
58872 }
58873 self
58874 }
58875}
58876impl<'a> core::ops::Deref for CuFunctionCreateInfoNVXBuilder<'a> {
58877 type Target = CuFunctionCreateInfoNVX;
58878 #[inline]
58879 fn deref(&self) -> &Self::Target {
58880 &self.inner
58881 }
58882}
58883impl<'a> core::ops::DerefMut for CuFunctionCreateInfoNVXBuilder<'a> {
58884 #[inline]
58885 fn deref_mut(&mut self) -> &mut Self::Target {
58886 &mut self.inner
58887 }
58888}
58889pub struct CuLaunchInfoNVXBuilder<'a> {
58891 inner: CuLaunchInfoNVX,
58892 _marker: core::marker::PhantomData<&'a ()>,
58893}
58894impl CuLaunchInfoNVX {
58895 #[inline]
58897 pub fn builder<'a>() -> CuLaunchInfoNVXBuilder<'a> {
58898 CuLaunchInfoNVXBuilder {
58899 inner: CuLaunchInfoNVX {
58900 s_type: StructureType::from_raw(1000029002i32),
58901 ..Default::default()
58902 },
58903 _marker: core::marker::PhantomData,
58904 }
58905 }
58906}
58907impl<'a> CuLaunchInfoNVXBuilder<'a> {
58908 #[inline]
58909 pub fn function(mut self, value: CuFunctionNVX) -> Self {
58910 self.inner.function = value;
58911 self
58912 }
58913 #[inline]
58914 pub fn grid_dim_x(mut self, value: u32) -> Self {
58915 self.inner.grid_dim_x = value;
58916 self
58917 }
58918 #[inline]
58919 pub fn grid_dim_y(mut self, value: u32) -> Self {
58920 self.inner.grid_dim_y = value;
58921 self
58922 }
58923 #[inline]
58924 pub fn grid_dim_z(mut self, value: u32) -> Self {
58925 self.inner.grid_dim_z = value;
58926 self
58927 }
58928 #[inline]
58929 pub fn block_dim_x(mut self, value: u32) -> Self {
58930 self.inner.block_dim_x = value;
58931 self
58932 }
58933 #[inline]
58934 pub fn block_dim_y(mut self, value: u32) -> Self {
58935 self.inner.block_dim_y = value;
58936 self
58937 }
58938 #[inline]
58939 pub fn block_dim_z(mut self, value: u32) -> Self {
58940 self.inner.block_dim_z = value;
58941 self
58942 }
58943 #[inline]
58944 pub fn shared_mem_bytes(mut self, value: u32) -> Self {
58945 self.inner.shared_mem_bytes = value;
58946 self
58947 }
58948 #[inline]
58949 pub fn param_count(mut self, value: usize) -> Self {
58950 self.inner.param_count = value;
58951 self
58952 }
58953 #[inline]
58954 pub fn params(mut self, value: *const *const core::ffi::c_void) -> Self {
58955 self.inner.p_params = value;
58956 self
58957 }
58958 #[inline]
58959 pub fn extra_count(mut self, value: usize) -> Self {
58960 self.inner.extra_count = value;
58961 self
58962 }
58963 #[inline]
58964 pub fn extras(mut self, value: *const *const core::ffi::c_void) -> Self {
58965 self.inner.p_extras = value;
58966 self
58967 }
58968 #[inline]
58970 pub fn push_next<T: ExtendsCuLaunchInfoNVX>(mut self, next: &'a mut T) -> Self {
58971 unsafe {
58972 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
58973 (*next_ptr).p_next = self.inner.p_next as *mut _;
58974 self.inner.p_next = <*mut BaseOutStructure>::cast::<
58975 core::ffi::c_void,
58976 >(next_ptr) as *const _;
58977 }
58978 self
58979 }
58980}
58981impl<'a> core::ops::Deref for CuLaunchInfoNVXBuilder<'a> {
58982 type Target = CuLaunchInfoNVX;
58983 #[inline]
58984 fn deref(&self) -> &Self::Target {
58985 &self.inner
58986 }
58987}
58988impl<'a> core::ops::DerefMut for CuLaunchInfoNVXBuilder<'a> {
58989 #[inline]
58990 fn deref_mut(&mut self) -> &mut Self::Target {
58991 &mut self.inner
58992 }
58993}
58994pub struct PhysicalDeviceDescriptorBufferFeaturesEXTBuilder<'a> {
58996 inner: PhysicalDeviceDescriptorBufferFeaturesEXT,
58997 _marker: core::marker::PhantomData<&'a ()>,
58998}
58999impl PhysicalDeviceDescriptorBufferFeaturesEXT {
59000 #[inline]
59002 pub fn builder<'a>() -> PhysicalDeviceDescriptorBufferFeaturesEXTBuilder<'a> {
59003 PhysicalDeviceDescriptorBufferFeaturesEXTBuilder {
59004 inner: PhysicalDeviceDescriptorBufferFeaturesEXT {
59005 s_type: StructureType::from_raw(1000316002i32),
59006 ..Default::default()
59007 },
59008 _marker: core::marker::PhantomData,
59009 }
59010 }
59011}
59012impl<'a> PhysicalDeviceDescriptorBufferFeaturesEXTBuilder<'a> {
59013 #[inline]
59014 pub fn descriptor_buffer(mut self, value: bool) -> Self {
59015 self.inner.descriptor_buffer = value as u32;
59016 self
59017 }
59018 #[inline]
59019 pub fn descriptor_buffer_capture_replay(mut self, value: bool) -> Self {
59020 self.inner.descriptor_buffer_capture_replay = value as u32;
59021 self
59022 }
59023 #[inline]
59024 pub fn descriptor_buffer_image_layout_ignored(mut self, value: bool) -> Self {
59025 self.inner.descriptor_buffer_image_layout_ignored = value as u32;
59026 self
59027 }
59028 #[inline]
59029 pub fn descriptor_buffer_push_descriptors(mut self, value: bool) -> Self {
59030 self.inner.descriptor_buffer_push_descriptors = value as u32;
59031 self
59032 }
59033 #[inline]
59035 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorBufferFeaturesEXT>(
59036 mut self,
59037 next: &'a mut T,
59038 ) -> Self {
59039 unsafe {
59040 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59041 (*next_ptr).p_next = self.inner.p_next as *mut _;
59042 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59043 core::ffi::c_void,
59044 >(next_ptr);
59045 }
59046 self
59047 }
59048}
59049impl<'a> core::ops::Deref for PhysicalDeviceDescriptorBufferFeaturesEXTBuilder<'a> {
59050 type Target = PhysicalDeviceDescriptorBufferFeaturesEXT;
59051 #[inline]
59052 fn deref(&self) -> &Self::Target {
59053 &self.inner
59054 }
59055}
59056impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorBufferFeaturesEXTBuilder<'a> {
59057 #[inline]
59058 fn deref_mut(&mut self) -> &mut Self::Target {
59059 &mut self.inner
59060 }
59061}
59062pub struct PhysicalDeviceDescriptorBufferPropertiesEXTBuilder<'a> {
59064 inner: PhysicalDeviceDescriptorBufferPropertiesEXT,
59065 _marker: core::marker::PhantomData<&'a ()>,
59066}
59067impl PhysicalDeviceDescriptorBufferPropertiesEXT {
59068 #[inline]
59070 pub fn builder<'a>() -> PhysicalDeviceDescriptorBufferPropertiesEXTBuilder<'a> {
59071 PhysicalDeviceDescriptorBufferPropertiesEXTBuilder {
59072 inner: PhysicalDeviceDescriptorBufferPropertiesEXT {
59073 s_type: StructureType::from_raw(1000316000i32),
59074 ..Default::default()
59075 },
59076 _marker: core::marker::PhantomData,
59077 }
59078 }
59079}
59080impl<'a> PhysicalDeviceDescriptorBufferPropertiesEXTBuilder<'a> {
59081 #[inline]
59082 pub fn combined_image_sampler_descriptor_single_array(
59083 mut self,
59084 value: bool,
59085 ) -> Self {
59086 self.inner.combined_image_sampler_descriptor_single_array = value as u32;
59087 self
59088 }
59089 #[inline]
59090 pub fn bufferless_push_descriptors(mut self, value: bool) -> Self {
59091 self.inner.bufferless_push_descriptors = value as u32;
59092 self
59093 }
59094 #[inline]
59095 pub fn allow_sampler_image_view_post_submit_creation(mut self, value: bool) -> Self {
59096 self.inner.allow_sampler_image_view_post_submit_creation = value as u32;
59097 self
59098 }
59099 #[inline]
59100 pub fn descriptor_buffer_offset_alignment(mut self, value: u64) -> Self {
59101 self.inner.descriptor_buffer_offset_alignment = value;
59102 self
59103 }
59104 #[inline]
59105 pub fn max_descriptor_buffer_bindings(mut self, value: u32) -> Self {
59106 self.inner.max_descriptor_buffer_bindings = value;
59107 self
59108 }
59109 #[inline]
59110 pub fn max_resource_descriptor_buffer_bindings(mut self, value: u32) -> Self {
59111 self.inner.max_resource_descriptor_buffer_bindings = value;
59112 self
59113 }
59114 #[inline]
59115 pub fn max_sampler_descriptor_buffer_bindings(mut self, value: u32) -> Self {
59116 self.inner.max_sampler_descriptor_buffer_bindings = value;
59117 self
59118 }
59119 #[inline]
59120 pub fn max_embedded_immutable_sampler_bindings(mut self, value: u32) -> Self {
59121 self.inner.max_embedded_immutable_sampler_bindings = value;
59122 self
59123 }
59124 #[inline]
59125 pub fn max_embedded_immutable_samplers(mut self, value: u32) -> Self {
59126 self.inner.max_embedded_immutable_samplers = value;
59127 self
59128 }
59129 #[inline]
59130 pub fn buffer_capture_replay_descriptor_data_size(mut self, value: usize) -> Self {
59131 self.inner.buffer_capture_replay_descriptor_data_size = value;
59132 self
59133 }
59134 #[inline]
59135 pub fn image_capture_replay_descriptor_data_size(mut self, value: usize) -> Self {
59136 self.inner.image_capture_replay_descriptor_data_size = value;
59137 self
59138 }
59139 #[inline]
59140 pub fn image_view_capture_replay_descriptor_data_size(
59141 mut self,
59142 value: usize,
59143 ) -> Self {
59144 self.inner.image_view_capture_replay_descriptor_data_size = value;
59145 self
59146 }
59147 #[inline]
59148 pub fn sampler_capture_replay_descriptor_data_size(mut self, value: usize) -> Self {
59149 self.inner.sampler_capture_replay_descriptor_data_size = value;
59150 self
59151 }
59152 #[inline]
59153 pub fn acceleration_structure_capture_replay_descriptor_data_size(
59154 mut self,
59155 value: usize,
59156 ) -> Self {
59157 self.inner.acceleration_structure_capture_replay_descriptor_data_size = value;
59158 self
59159 }
59160 #[inline]
59161 pub fn sampler_descriptor_size(mut self, value: usize) -> Self {
59162 self.inner.sampler_descriptor_size = value;
59163 self
59164 }
59165 #[inline]
59166 pub fn combined_image_sampler_descriptor_size(mut self, value: usize) -> Self {
59167 self.inner.combined_image_sampler_descriptor_size = value;
59168 self
59169 }
59170 #[inline]
59171 pub fn sampled_image_descriptor_size(mut self, value: usize) -> Self {
59172 self.inner.sampled_image_descriptor_size = value;
59173 self
59174 }
59175 #[inline]
59176 pub fn storage_image_descriptor_size(mut self, value: usize) -> Self {
59177 self.inner.storage_image_descriptor_size = value;
59178 self
59179 }
59180 #[inline]
59181 pub fn uniform_texel_buffer_descriptor_size(mut self, value: usize) -> Self {
59182 self.inner.uniform_texel_buffer_descriptor_size = value;
59183 self
59184 }
59185 #[inline]
59186 pub fn robust_uniform_texel_buffer_descriptor_size(mut self, value: usize) -> Self {
59187 self.inner.robust_uniform_texel_buffer_descriptor_size = value;
59188 self
59189 }
59190 #[inline]
59191 pub fn storage_texel_buffer_descriptor_size(mut self, value: usize) -> Self {
59192 self.inner.storage_texel_buffer_descriptor_size = value;
59193 self
59194 }
59195 #[inline]
59196 pub fn robust_storage_texel_buffer_descriptor_size(mut self, value: usize) -> Self {
59197 self.inner.robust_storage_texel_buffer_descriptor_size = value;
59198 self
59199 }
59200 #[inline]
59201 pub fn uniform_buffer_descriptor_size(mut self, value: usize) -> Self {
59202 self.inner.uniform_buffer_descriptor_size = value;
59203 self
59204 }
59205 #[inline]
59206 pub fn robust_uniform_buffer_descriptor_size(mut self, value: usize) -> Self {
59207 self.inner.robust_uniform_buffer_descriptor_size = value;
59208 self
59209 }
59210 #[inline]
59211 pub fn storage_buffer_descriptor_size(mut self, value: usize) -> Self {
59212 self.inner.storage_buffer_descriptor_size = value;
59213 self
59214 }
59215 #[inline]
59216 pub fn robust_storage_buffer_descriptor_size(mut self, value: usize) -> Self {
59217 self.inner.robust_storage_buffer_descriptor_size = value;
59218 self
59219 }
59220 #[inline]
59221 pub fn input_attachment_descriptor_size(mut self, value: usize) -> Self {
59222 self.inner.input_attachment_descriptor_size = value;
59223 self
59224 }
59225 #[inline]
59226 pub fn acceleration_structure_descriptor_size(mut self, value: usize) -> Self {
59227 self.inner.acceleration_structure_descriptor_size = value;
59228 self
59229 }
59230 #[inline]
59231 pub fn max_sampler_descriptor_buffer_range(mut self, value: u64) -> Self {
59232 self.inner.max_sampler_descriptor_buffer_range = value;
59233 self
59234 }
59235 #[inline]
59236 pub fn max_resource_descriptor_buffer_range(mut self, value: u64) -> Self {
59237 self.inner.max_resource_descriptor_buffer_range = value;
59238 self
59239 }
59240 #[inline]
59241 pub fn sampler_descriptor_buffer_address_space_size(mut self, value: u64) -> Self {
59242 self.inner.sampler_descriptor_buffer_address_space_size = value;
59243 self
59244 }
59245 #[inline]
59246 pub fn resource_descriptor_buffer_address_space_size(mut self, value: u64) -> Self {
59247 self.inner.resource_descriptor_buffer_address_space_size = value;
59248 self
59249 }
59250 #[inline]
59251 pub fn descriptor_buffer_address_space_size(mut self, value: u64) -> Self {
59252 self.inner.descriptor_buffer_address_space_size = value;
59253 self
59254 }
59255}
59256impl<'a> core::ops::Deref for PhysicalDeviceDescriptorBufferPropertiesEXTBuilder<'a> {
59257 type Target = PhysicalDeviceDescriptorBufferPropertiesEXT;
59258 #[inline]
59259 fn deref(&self) -> &Self::Target {
59260 &self.inner
59261 }
59262}
59263impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorBufferPropertiesEXTBuilder<'a> {
59264 #[inline]
59265 fn deref_mut(&mut self) -> &mut Self::Target {
59266 &mut self.inner
59267 }
59268}
59269pub struct PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder<'a> {
59271 inner: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT,
59272 _marker: core::marker::PhantomData<&'a ()>,
59273}
59274impl PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
59275 #[inline]
59277 pub fn builder<'a>() -> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder<
59278 'a,
59279 > {
59280 PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder {
59281 inner: PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
59282 s_type: StructureType::from_raw(1000316001i32),
59283 ..Default::default()
59284 },
59285 _marker: core::marker::PhantomData,
59286 }
59287 }
59288}
59289impl<'a> PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder<'a> {
59290 #[inline]
59291 pub fn combined_image_sampler_density_map_descriptor_size(
59292 mut self,
59293 value: usize,
59294 ) -> Self {
59295 self.inner.combined_image_sampler_density_map_descriptor_size = value;
59296 self
59297 }
59298}
59299impl<'a> core::ops::Deref
59300for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder<'a> {
59301 type Target = PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
59302 #[inline]
59303 fn deref(&self) -> &Self::Target {
59304 &self.inner
59305 }
59306}
59307impl<'a> core::ops::DerefMut
59308for PhysicalDeviceDescriptorBufferDensityMapPropertiesEXTBuilder<'a> {
59309 #[inline]
59310 fn deref_mut(&mut self) -> &mut Self::Target {
59311 &mut self.inner
59312 }
59313}
59314pub struct DescriptorAddressInfoEXTBuilder<'a> {
59316 inner: DescriptorAddressInfoEXT,
59317 _marker: core::marker::PhantomData<&'a ()>,
59318}
59319impl DescriptorAddressInfoEXT {
59320 #[inline]
59322 pub fn builder<'a>() -> DescriptorAddressInfoEXTBuilder<'a> {
59323 DescriptorAddressInfoEXTBuilder {
59324 inner: DescriptorAddressInfoEXT {
59325 s_type: StructureType::from_raw(1000316003i32),
59326 ..Default::default()
59327 },
59328 _marker: core::marker::PhantomData,
59329 }
59330 }
59331}
59332impl<'a> DescriptorAddressInfoEXTBuilder<'a> {
59333 #[inline]
59334 pub fn address(mut self, value: u64) -> Self {
59335 self.inner.address = value;
59336 self
59337 }
59338 #[inline]
59339 pub fn range(mut self, value: u64) -> Self {
59340 self.inner.range = value;
59341 self
59342 }
59343 #[inline]
59344 pub fn format(mut self, value: Format) -> Self {
59345 self.inner.format = value;
59346 self
59347 }
59348 #[inline]
59350 pub fn push_next<T: ExtendsDescriptorAddressInfoEXT>(
59351 mut self,
59352 next: &'a mut T,
59353 ) -> Self {
59354 unsafe {
59355 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59356 (*next_ptr).p_next = self.inner.p_next as *mut _;
59357 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59358 core::ffi::c_void,
59359 >(next_ptr);
59360 }
59361 self
59362 }
59363}
59364impl<'a> core::ops::Deref for DescriptorAddressInfoEXTBuilder<'a> {
59365 type Target = DescriptorAddressInfoEXT;
59366 #[inline]
59367 fn deref(&self) -> &Self::Target {
59368 &self.inner
59369 }
59370}
59371impl<'a> core::ops::DerefMut for DescriptorAddressInfoEXTBuilder<'a> {
59372 #[inline]
59373 fn deref_mut(&mut self) -> &mut Self::Target {
59374 &mut self.inner
59375 }
59376}
59377pub struct DescriptorBufferBindingInfoEXTBuilder<'a> {
59379 inner: DescriptorBufferBindingInfoEXT,
59380 _marker: core::marker::PhantomData<&'a ()>,
59381}
59382impl DescriptorBufferBindingInfoEXT {
59383 #[inline]
59385 pub fn builder<'a>() -> DescriptorBufferBindingInfoEXTBuilder<'a> {
59386 DescriptorBufferBindingInfoEXTBuilder {
59387 inner: DescriptorBufferBindingInfoEXT {
59388 s_type: StructureType::from_raw(1000316011i32),
59389 ..Default::default()
59390 },
59391 _marker: core::marker::PhantomData,
59392 }
59393 }
59394}
59395impl<'a> DescriptorBufferBindingInfoEXTBuilder<'a> {
59396 #[inline]
59397 pub fn address(mut self, value: u64) -> Self {
59398 self.inner.address = value;
59399 self
59400 }
59401 #[inline]
59402 pub fn usage(mut self, value: BufferUsageFlags) -> Self {
59403 self.inner.usage = value;
59404 self
59405 }
59406 #[inline]
59408 pub fn push_next<T: ExtendsDescriptorBufferBindingInfoEXT>(
59409 mut self,
59410 next: &'a mut T,
59411 ) -> Self {
59412 unsafe {
59413 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59414 (*next_ptr).p_next = self.inner.p_next as *mut _;
59415 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59416 core::ffi::c_void,
59417 >(next_ptr) as *const _;
59418 }
59419 self
59420 }
59421}
59422impl<'a> core::ops::Deref for DescriptorBufferBindingInfoEXTBuilder<'a> {
59423 type Target = DescriptorBufferBindingInfoEXT;
59424 #[inline]
59425 fn deref(&self) -> &Self::Target {
59426 &self.inner
59427 }
59428}
59429impl<'a> core::ops::DerefMut for DescriptorBufferBindingInfoEXTBuilder<'a> {
59430 #[inline]
59431 fn deref_mut(&mut self) -> &mut Self::Target {
59432 &mut self.inner
59433 }
59434}
59435pub struct DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder<'a> {
59437 inner: DescriptorBufferBindingPushDescriptorBufferHandleEXT,
59438 _marker: core::marker::PhantomData<&'a ()>,
59439}
59440impl DescriptorBufferBindingPushDescriptorBufferHandleEXT {
59441 #[inline]
59443 pub fn builder<'a>() -> DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder<
59444 'a,
59445 > {
59446 DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder {
59447 inner: DescriptorBufferBindingPushDescriptorBufferHandleEXT {
59448 s_type: StructureType::from_raw(1000316012i32),
59449 ..Default::default()
59450 },
59451 _marker: core::marker::PhantomData,
59452 }
59453 }
59454}
59455impl<'a> DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder<'a> {
59456 #[inline]
59457 pub fn buffer(mut self, value: Buffer) -> Self {
59458 self.inner.buffer = value;
59459 self
59460 }
59461 #[inline]
59463 pub fn push_next<T: ExtendsDescriptorBufferBindingPushDescriptorBufferHandleEXT>(
59464 mut self,
59465 next: &'a mut T,
59466 ) -> Self {
59467 unsafe {
59468 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59469 (*next_ptr).p_next = self.inner.p_next as *mut _;
59470 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59471 core::ffi::c_void,
59472 >(next_ptr) as *const _;
59473 }
59474 self
59475 }
59476}
59477impl<'a> core::ops::Deref
59478for DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder<'a> {
59479 type Target = DescriptorBufferBindingPushDescriptorBufferHandleEXT;
59480 #[inline]
59481 fn deref(&self) -> &Self::Target {
59482 &self.inner
59483 }
59484}
59485impl<'a> core::ops::DerefMut
59486for DescriptorBufferBindingPushDescriptorBufferHandleEXTBuilder<'a> {
59487 #[inline]
59488 fn deref_mut(&mut self) -> &mut Self::Target {
59489 &mut self.inner
59490 }
59491}
59492pub struct DescriptorGetInfoEXTBuilder<'a> {
59494 inner: DescriptorGetInfoEXT,
59495 _marker: core::marker::PhantomData<&'a ()>,
59496}
59497impl DescriptorGetInfoEXT {
59498 #[inline]
59500 pub fn builder<'a>() -> DescriptorGetInfoEXTBuilder<'a> {
59501 DescriptorGetInfoEXTBuilder {
59502 inner: DescriptorGetInfoEXT {
59503 s_type: StructureType::from_raw(1000316004i32),
59504 ..Default::default()
59505 },
59506 _marker: core::marker::PhantomData,
59507 }
59508 }
59509}
59510impl<'a> DescriptorGetInfoEXTBuilder<'a> {
59511 #[inline]
59512 pub fn r#type(mut self, value: DescriptorType) -> Self {
59513 self.inner.r#type = value;
59514 self
59515 }
59516 #[inline]
59517 pub fn data(mut self, value: DescriptorDataEXT) -> Self {
59518 self.inner.data = value;
59519 self
59520 }
59521 #[inline]
59523 pub fn push_next<T: ExtendsDescriptorGetInfoEXT>(mut self, next: &'a mut T) -> Self {
59524 unsafe {
59525 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59526 (*next_ptr).p_next = self.inner.p_next as *mut _;
59527 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59528 core::ffi::c_void,
59529 >(next_ptr) as *const _;
59530 }
59531 self
59532 }
59533}
59534impl<'a> core::ops::Deref for DescriptorGetInfoEXTBuilder<'a> {
59535 type Target = DescriptorGetInfoEXT;
59536 #[inline]
59537 fn deref(&self) -> &Self::Target {
59538 &self.inner
59539 }
59540}
59541impl<'a> core::ops::DerefMut for DescriptorGetInfoEXTBuilder<'a> {
59542 #[inline]
59543 fn deref_mut(&mut self) -> &mut Self::Target {
59544 &mut self.inner
59545 }
59546}
59547pub struct BufferCaptureDescriptorDataInfoEXTBuilder<'a> {
59549 inner: BufferCaptureDescriptorDataInfoEXT,
59550 _marker: core::marker::PhantomData<&'a ()>,
59551}
59552impl BufferCaptureDescriptorDataInfoEXT {
59553 #[inline]
59555 pub fn builder<'a>() -> BufferCaptureDescriptorDataInfoEXTBuilder<'a> {
59556 BufferCaptureDescriptorDataInfoEXTBuilder {
59557 inner: BufferCaptureDescriptorDataInfoEXT {
59558 s_type: StructureType::from_raw(1000316005i32),
59559 ..Default::default()
59560 },
59561 _marker: core::marker::PhantomData,
59562 }
59563 }
59564}
59565impl<'a> BufferCaptureDescriptorDataInfoEXTBuilder<'a> {
59566 #[inline]
59567 pub fn buffer(mut self, value: Buffer) -> Self {
59568 self.inner.buffer = value;
59569 self
59570 }
59571 #[inline]
59573 pub fn push_next<T: ExtendsBufferCaptureDescriptorDataInfoEXT>(
59574 mut self,
59575 next: &'a mut T,
59576 ) -> Self {
59577 unsafe {
59578 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59579 (*next_ptr).p_next = self.inner.p_next as *mut _;
59580 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59581 core::ffi::c_void,
59582 >(next_ptr) as *const _;
59583 }
59584 self
59585 }
59586}
59587impl<'a> core::ops::Deref for BufferCaptureDescriptorDataInfoEXTBuilder<'a> {
59588 type Target = BufferCaptureDescriptorDataInfoEXT;
59589 #[inline]
59590 fn deref(&self) -> &Self::Target {
59591 &self.inner
59592 }
59593}
59594impl<'a> core::ops::DerefMut for BufferCaptureDescriptorDataInfoEXTBuilder<'a> {
59595 #[inline]
59596 fn deref_mut(&mut self) -> &mut Self::Target {
59597 &mut self.inner
59598 }
59599}
59600pub struct ImageCaptureDescriptorDataInfoEXTBuilder<'a> {
59602 inner: ImageCaptureDescriptorDataInfoEXT,
59603 _marker: core::marker::PhantomData<&'a ()>,
59604}
59605impl ImageCaptureDescriptorDataInfoEXT {
59606 #[inline]
59608 pub fn builder<'a>() -> ImageCaptureDescriptorDataInfoEXTBuilder<'a> {
59609 ImageCaptureDescriptorDataInfoEXTBuilder {
59610 inner: ImageCaptureDescriptorDataInfoEXT {
59611 s_type: StructureType::from_raw(1000316006i32),
59612 ..Default::default()
59613 },
59614 _marker: core::marker::PhantomData,
59615 }
59616 }
59617}
59618impl<'a> ImageCaptureDescriptorDataInfoEXTBuilder<'a> {
59619 #[inline]
59620 pub fn image(mut self, value: Image) -> Self {
59621 self.inner.image = value;
59622 self
59623 }
59624 #[inline]
59626 pub fn push_next<T: ExtendsImageCaptureDescriptorDataInfoEXT>(
59627 mut self,
59628 next: &'a mut T,
59629 ) -> Self {
59630 unsafe {
59631 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59632 (*next_ptr).p_next = self.inner.p_next as *mut _;
59633 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59634 core::ffi::c_void,
59635 >(next_ptr) as *const _;
59636 }
59637 self
59638 }
59639}
59640impl<'a> core::ops::Deref for ImageCaptureDescriptorDataInfoEXTBuilder<'a> {
59641 type Target = ImageCaptureDescriptorDataInfoEXT;
59642 #[inline]
59643 fn deref(&self) -> &Self::Target {
59644 &self.inner
59645 }
59646}
59647impl<'a> core::ops::DerefMut for ImageCaptureDescriptorDataInfoEXTBuilder<'a> {
59648 #[inline]
59649 fn deref_mut(&mut self) -> &mut Self::Target {
59650 &mut self.inner
59651 }
59652}
59653pub struct ImageViewCaptureDescriptorDataInfoEXTBuilder<'a> {
59655 inner: ImageViewCaptureDescriptorDataInfoEXT,
59656 _marker: core::marker::PhantomData<&'a ()>,
59657}
59658impl ImageViewCaptureDescriptorDataInfoEXT {
59659 #[inline]
59661 pub fn builder<'a>() -> ImageViewCaptureDescriptorDataInfoEXTBuilder<'a> {
59662 ImageViewCaptureDescriptorDataInfoEXTBuilder {
59663 inner: ImageViewCaptureDescriptorDataInfoEXT {
59664 s_type: StructureType::from_raw(1000316007i32),
59665 ..Default::default()
59666 },
59667 _marker: core::marker::PhantomData,
59668 }
59669 }
59670}
59671impl<'a> ImageViewCaptureDescriptorDataInfoEXTBuilder<'a> {
59672 #[inline]
59673 pub fn image_view(mut self, value: ImageView) -> Self {
59674 self.inner.image_view = value;
59675 self
59676 }
59677 #[inline]
59679 pub fn push_next<T: ExtendsImageViewCaptureDescriptorDataInfoEXT>(
59680 mut self,
59681 next: &'a mut T,
59682 ) -> Self {
59683 unsafe {
59684 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59685 (*next_ptr).p_next = self.inner.p_next as *mut _;
59686 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59687 core::ffi::c_void,
59688 >(next_ptr) as *const _;
59689 }
59690 self
59691 }
59692}
59693impl<'a> core::ops::Deref for ImageViewCaptureDescriptorDataInfoEXTBuilder<'a> {
59694 type Target = ImageViewCaptureDescriptorDataInfoEXT;
59695 #[inline]
59696 fn deref(&self) -> &Self::Target {
59697 &self.inner
59698 }
59699}
59700impl<'a> core::ops::DerefMut for ImageViewCaptureDescriptorDataInfoEXTBuilder<'a> {
59701 #[inline]
59702 fn deref_mut(&mut self) -> &mut Self::Target {
59703 &mut self.inner
59704 }
59705}
59706pub struct SamplerCaptureDescriptorDataInfoEXTBuilder<'a> {
59708 inner: SamplerCaptureDescriptorDataInfoEXT,
59709 _marker: core::marker::PhantomData<&'a ()>,
59710}
59711impl SamplerCaptureDescriptorDataInfoEXT {
59712 #[inline]
59714 pub fn builder<'a>() -> SamplerCaptureDescriptorDataInfoEXTBuilder<'a> {
59715 SamplerCaptureDescriptorDataInfoEXTBuilder {
59716 inner: SamplerCaptureDescriptorDataInfoEXT {
59717 s_type: StructureType::from_raw(1000316008i32),
59718 ..Default::default()
59719 },
59720 _marker: core::marker::PhantomData,
59721 }
59722 }
59723}
59724impl<'a> SamplerCaptureDescriptorDataInfoEXTBuilder<'a> {
59725 #[inline]
59726 pub fn sampler(mut self, value: Sampler) -> Self {
59727 self.inner.sampler = value;
59728 self
59729 }
59730 #[inline]
59732 pub fn push_next<T: ExtendsSamplerCaptureDescriptorDataInfoEXT>(
59733 mut self,
59734 next: &'a mut T,
59735 ) -> Self {
59736 unsafe {
59737 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59738 (*next_ptr).p_next = self.inner.p_next as *mut _;
59739 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59740 core::ffi::c_void,
59741 >(next_ptr) as *const _;
59742 }
59743 self
59744 }
59745}
59746impl<'a> core::ops::Deref for SamplerCaptureDescriptorDataInfoEXTBuilder<'a> {
59747 type Target = SamplerCaptureDescriptorDataInfoEXT;
59748 #[inline]
59749 fn deref(&self) -> &Self::Target {
59750 &self.inner
59751 }
59752}
59753impl<'a> core::ops::DerefMut for SamplerCaptureDescriptorDataInfoEXTBuilder<'a> {
59754 #[inline]
59755 fn deref_mut(&mut self) -> &mut Self::Target {
59756 &mut self.inner
59757 }
59758}
59759pub struct AccelerationStructureCaptureDescriptorDataInfoEXTBuilder<'a> {
59761 inner: AccelerationStructureCaptureDescriptorDataInfoEXT,
59762 _marker: core::marker::PhantomData<&'a ()>,
59763}
59764impl AccelerationStructureCaptureDescriptorDataInfoEXT {
59765 #[inline]
59767 pub fn builder<'a>() -> AccelerationStructureCaptureDescriptorDataInfoEXTBuilder<
59768 'a,
59769 > {
59770 AccelerationStructureCaptureDescriptorDataInfoEXTBuilder {
59771 inner: AccelerationStructureCaptureDescriptorDataInfoEXT {
59772 s_type: StructureType::from_raw(1000316009i32),
59773 ..Default::default()
59774 },
59775 _marker: core::marker::PhantomData,
59776 }
59777 }
59778}
59779impl<'a> AccelerationStructureCaptureDescriptorDataInfoEXTBuilder<'a> {
59780 #[inline]
59781 pub fn acceleration_structure(mut self, value: AccelerationStructureKHR) -> Self {
59782 self.inner.acceleration_structure = value;
59783 self
59784 }
59785 #[inline]
59786 pub fn acceleration_structure_nv(mut self, value: AccelerationStructureNV) -> Self {
59787 self.inner.acceleration_structure_nv = value;
59788 self
59789 }
59790 #[inline]
59792 pub fn push_next<T: ExtendsAccelerationStructureCaptureDescriptorDataInfoEXT>(
59793 mut self,
59794 next: &'a mut T,
59795 ) -> Self {
59796 unsafe {
59797 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59798 (*next_ptr).p_next = self.inner.p_next as *mut _;
59799 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59800 core::ffi::c_void,
59801 >(next_ptr) as *const _;
59802 }
59803 self
59804 }
59805}
59806impl<'a> core::ops::Deref
59807for AccelerationStructureCaptureDescriptorDataInfoEXTBuilder<'a> {
59808 type Target = AccelerationStructureCaptureDescriptorDataInfoEXT;
59809 #[inline]
59810 fn deref(&self) -> &Self::Target {
59811 &self.inner
59812 }
59813}
59814impl<'a> core::ops::DerefMut
59815for AccelerationStructureCaptureDescriptorDataInfoEXTBuilder<'a> {
59816 #[inline]
59817 fn deref_mut(&mut self) -> &mut Self::Target {
59818 &mut self.inner
59819 }
59820}
59821pub struct OpaqueCaptureDescriptorDataCreateInfoEXTBuilder<'a> {
59823 inner: OpaqueCaptureDescriptorDataCreateInfoEXT,
59824 _marker: core::marker::PhantomData<&'a ()>,
59825}
59826impl OpaqueCaptureDescriptorDataCreateInfoEXT {
59827 #[inline]
59829 pub fn builder<'a>() -> OpaqueCaptureDescriptorDataCreateInfoEXTBuilder<'a> {
59830 OpaqueCaptureDescriptorDataCreateInfoEXTBuilder {
59831 inner: OpaqueCaptureDescriptorDataCreateInfoEXT {
59832 s_type: StructureType::from_raw(1000316010i32),
59833 ..Default::default()
59834 },
59835 _marker: core::marker::PhantomData,
59836 }
59837 }
59838}
59839impl<'a> OpaqueCaptureDescriptorDataCreateInfoEXTBuilder<'a> {
59840 #[inline]
59841 pub fn opaque_capture_descriptor_data(
59842 mut self,
59843 value: *const core::ffi::c_void,
59844 ) -> Self {
59845 self.inner.opaque_capture_descriptor_data = value;
59846 self
59847 }
59848 #[inline]
59850 pub fn push_next<T: ExtendsOpaqueCaptureDescriptorDataCreateInfoEXT>(
59851 mut self,
59852 next: &'a mut T,
59853 ) -> Self {
59854 unsafe {
59855 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59856 (*next_ptr).p_next = self.inner.p_next as *mut _;
59857 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59858 core::ffi::c_void,
59859 >(next_ptr) as *const _;
59860 }
59861 self
59862 }
59863}
59864impl<'a> core::ops::Deref for OpaqueCaptureDescriptorDataCreateInfoEXTBuilder<'a> {
59865 type Target = OpaqueCaptureDescriptorDataCreateInfoEXT;
59866 #[inline]
59867 fn deref(&self) -> &Self::Target {
59868 &self.inner
59869 }
59870}
59871impl<'a> core::ops::DerefMut for OpaqueCaptureDescriptorDataCreateInfoEXTBuilder<'a> {
59872 #[inline]
59873 fn deref_mut(&mut self) -> &mut Self::Target {
59874 &mut self.inner
59875 }
59876}
59877pub struct PhysicalDeviceShaderIntegerDotProductFeaturesBuilder<'a> {
59879 inner: PhysicalDeviceShaderIntegerDotProductFeatures,
59880 _marker: core::marker::PhantomData<&'a ()>,
59881}
59882impl PhysicalDeviceShaderIntegerDotProductFeatures {
59883 #[inline]
59885 pub fn builder<'a>() -> PhysicalDeviceShaderIntegerDotProductFeaturesBuilder<'a> {
59886 PhysicalDeviceShaderIntegerDotProductFeaturesBuilder {
59887 inner: PhysicalDeviceShaderIntegerDotProductFeatures {
59888 s_type: StructureType::from_raw(1000280000i32),
59889 ..Default::default()
59890 },
59891 _marker: core::marker::PhantomData,
59892 }
59893 }
59894}
59895impl<'a> PhysicalDeviceShaderIntegerDotProductFeaturesBuilder<'a> {
59896 #[inline]
59897 pub fn shader_integer_dot_product(mut self, value: bool) -> Self {
59898 self.inner.shader_integer_dot_product = value as u32;
59899 self
59900 }
59901 #[inline]
59903 pub fn push_next<T: ExtendsPhysicalDeviceShaderIntegerDotProductFeatures>(
59904 mut self,
59905 next: &'a mut T,
59906 ) -> Self {
59907 unsafe {
59908 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
59909 (*next_ptr).p_next = self.inner.p_next as *mut _;
59910 self.inner.p_next = <*mut BaseOutStructure>::cast::<
59911 core::ffi::c_void,
59912 >(next_ptr);
59913 }
59914 self
59915 }
59916}
59917impl<'a> core::ops::Deref for PhysicalDeviceShaderIntegerDotProductFeaturesBuilder<'a> {
59918 type Target = PhysicalDeviceShaderIntegerDotProductFeatures;
59919 #[inline]
59920 fn deref(&self) -> &Self::Target {
59921 &self.inner
59922 }
59923}
59924impl<'a> core::ops::DerefMut
59925for PhysicalDeviceShaderIntegerDotProductFeaturesBuilder<'a> {
59926 #[inline]
59927 fn deref_mut(&mut self) -> &mut Self::Target {
59928 &mut self.inner
59929 }
59930}
59931pub struct PhysicalDeviceShaderIntegerDotProductPropertiesBuilder<'a> {
59933 inner: PhysicalDeviceShaderIntegerDotProductProperties,
59934 _marker: core::marker::PhantomData<&'a ()>,
59935}
59936impl PhysicalDeviceShaderIntegerDotProductProperties {
59937 #[inline]
59939 pub fn builder<'a>() -> PhysicalDeviceShaderIntegerDotProductPropertiesBuilder<'a> {
59940 PhysicalDeviceShaderIntegerDotProductPropertiesBuilder {
59941 inner: PhysicalDeviceShaderIntegerDotProductProperties {
59942 s_type: StructureType::from_raw(1000280001i32),
59943 ..Default::default()
59944 },
59945 _marker: core::marker::PhantomData,
59946 }
59947 }
59948}
59949impl<'a> PhysicalDeviceShaderIntegerDotProductPropertiesBuilder<'a> {
59950 #[inline]
59951 pub fn integer_dot_product8_bit_unsigned_accelerated(mut self, value: bool) -> Self {
59952 self.inner.integer_dot_product8_bit_unsigned_accelerated = value as u32;
59953 self
59954 }
59955 #[inline]
59956 pub fn integer_dot_product8_bit_signed_accelerated(mut self, value: bool) -> Self {
59957 self.inner.integer_dot_product8_bit_signed_accelerated = value as u32;
59958 self
59959 }
59960 #[inline]
59961 pub fn integer_dot_product8_bit_mixed_signedness_accelerated(
59962 mut self,
59963 value: bool,
59964 ) -> Self {
59965 self.inner.integer_dot_product8_bit_mixed_signedness_accelerated = value as u32;
59966 self
59967 }
59968 #[inline]
59969 pub fn integer_dot_product4x8_bit_packed_unsigned_accelerated(
59970 mut self,
59971 value: bool,
59972 ) -> Self {
59973 self.inner.integer_dot_product4x8_bit_packed_unsigned_accelerated = value as u32;
59974 self
59975 }
59976 #[inline]
59977 pub fn integer_dot_product4x8_bit_packed_signed_accelerated(
59978 mut self,
59979 value: bool,
59980 ) -> Self {
59981 self.inner.integer_dot_product4x8_bit_packed_signed_accelerated = value as u32;
59982 self
59983 }
59984 #[inline]
59985 pub fn integer_dot_product4x8_bit_packed_mixed_signedness_accelerated(
59986 mut self,
59987 value: bool,
59988 ) -> Self {
59989 self.inner.integer_dot_product4x8_bit_packed_mixed_signedness_accelerated = value
59990 as u32;
59991 self
59992 }
59993 #[inline]
59994 pub fn integer_dot_product16_bit_unsigned_accelerated(
59995 mut self,
59996 value: bool,
59997 ) -> Self {
59998 self.inner.integer_dot_product16_bit_unsigned_accelerated = value as u32;
59999 self
60000 }
60001 #[inline]
60002 pub fn integer_dot_product16_bit_signed_accelerated(mut self, value: bool) -> Self {
60003 self.inner.integer_dot_product16_bit_signed_accelerated = value as u32;
60004 self
60005 }
60006 #[inline]
60007 pub fn integer_dot_product16_bit_mixed_signedness_accelerated(
60008 mut self,
60009 value: bool,
60010 ) -> Self {
60011 self.inner.integer_dot_product16_bit_mixed_signedness_accelerated = value as u32;
60012 self
60013 }
60014 #[inline]
60015 pub fn integer_dot_product32_bit_unsigned_accelerated(
60016 mut self,
60017 value: bool,
60018 ) -> Self {
60019 self.inner.integer_dot_product32_bit_unsigned_accelerated = value as u32;
60020 self
60021 }
60022 #[inline]
60023 pub fn integer_dot_product32_bit_signed_accelerated(mut self, value: bool) -> Self {
60024 self.inner.integer_dot_product32_bit_signed_accelerated = value as u32;
60025 self
60026 }
60027 #[inline]
60028 pub fn integer_dot_product32_bit_mixed_signedness_accelerated(
60029 mut self,
60030 value: bool,
60031 ) -> Self {
60032 self.inner.integer_dot_product32_bit_mixed_signedness_accelerated = value as u32;
60033 self
60034 }
60035 #[inline]
60036 pub fn integer_dot_product64_bit_unsigned_accelerated(
60037 mut self,
60038 value: bool,
60039 ) -> Self {
60040 self.inner.integer_dot_product64_bit_unsigned_accelerated = value as u32;
60041 self
60042 }
60043 #[inline]
60044 pub fn integer_dot_product64_bit_signed_accelerated(mut self, value: bool) -> Self {
60045 self.inner.integer_dot_product64_bit_signed_accelerated = value as u32;
60046 self
60047 }
60048 #[inline]
60049 pub fn integer_dot_product64_bit_mixed_signedness_accelerated(
60050 mut self,
60051 value: bool,
60052 ) -> Self {
60053 self.inner.integer_dot_product64_bit_mixed_signedness_accelerated = value as u32;
60054 self
60055 }
60056 #[inline]
60057 pub fn integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated(
60058 mut self,
60059 value: bool,
60060 ) -> Self {
60061 self
60062 .inner
60063 .integer_dot_product_accumulating_saturating8_bit_unsigned_accelerated = value
60064 as u32;
60065 self
60066 }
60067 #[inline]
60068 pub fn integer_dot_product_accumulating_saturating8_bit_signed_accelerated(
60069 mut self,
60070 value: bool,
60071 ) -> Self {
60072 self.inner.integer_dot_product_accumulating_saturating8_bit_signed_accelerated = value
60073 as u32;
60074 self
60075 }
60076 #[inline]
60077 pub fn integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated(
60078 mut self,
60079 value: bool,
60080 ) -> Self {
60081 self
60082 .inner
60083 .integer_dot_product_accumulating_saturating8_bit_mixed_signedness_accelerated = value
60084 as u32;
60085 self
60086 }
60087 #[inline]
60088 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated(
60089 mut self,
60090 value: bool,
60091 ) -> Self {
60092 self
60093 .inner
60094 .integer_dot_product_accumulating_saturating4x8_bit_packed_unsigned_accelerated = value
60095 as u32;
60096 self
60097 }
60098 #[inline]
60099 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated(
60100 mut self,
60101 value: bool,
60102 ) -> Self {
60103 self
60104 .inner
60105 .integer_dot_product_accumulating_saturating4x8_bit_packed_signed_accelerated = value
60106 as u32;
60107 self
60108 }
60109 #[inline]
60110 pub fn integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated(
60111 mut self,
60112 value: bool,
60113 ) -> Self {
60114 self
60115 .inner
60116 .integer_dot_product_accumulating_saturating4x8_bit_packed_mixed_signedness_accelerated = value
60117 as u32;
60118 self
60119 }
60120 #[inline]
60121 pub fn integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated(
60122 mut self,
60123 value: bool,
60124 ) -> Self {
60125 self
60126 .inner
60127 .integer_dot_product_accumulating_saturating16_bit_unsigned_accelerated = value
60128 as u32;
60129 self
60130 }
60131 #[inline]
60132 pub fn integer_dot_product_accumulating_saturating16_bit_signed_accelerated(
60133 mut self,
60134 value: bool,
60135 ) -> Self {
60136 self
60137 .inner
60138 .integer_dot_product_accumulating_saturating16_bit_signed_accelerated = value
60139 as u32;
60140 self
60141 }
60142 #[inline]
60143 pub fn integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated(
60144 mut self,
60145 value: bool,
60146 ) -> Self {
60147 self
60148 .inner
60149 .integer_dot_product_accumulating_saturating16_bit_mixed_signedness_accelerated = value
60150 as u32;
60151 self
60152 }
60153 #[inline]
60154 pub fn integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated(
60155 mut self,
60156 value: bool,
60157 ) -> Self {
60158 self
60159 .inner
60160 .integer_dot_product_accumulating_saturating32_bit_unsigned_accelerated = value
60161 as u32;
60162 self
60163 }
60164 #[inline]
60165 pub fn integer_dot_product_accumulating_saturating32_bit_signed_accelerated(
60166 mut self,
60167 value: bool,
60168 ) -> Self {
60169 self
60170 .inner
60171 .integer_dot_product_accumulating_saturating32_bit_signed_accelerated = value
60172 as u32;
60173 self
60174 }
60175 #[inline]
60176 pub fn integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated(
60177 mut self,
60178 value: bool,
60179 ) -> Self {
60180 self
60181 .inner
60182 .integer_dot_product_accumulating_saturating32_bit_mixed_signedness_accelerated = value
60183 as u32;
60184 self
60185 }
60186 #[inline]
60187 pub fn integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated(
60188 mut self,
60189 value: bool,
60190 ) -> Self {
60191 self
60192 .inner
60193 .integer_dot_product_accumulating_saturating64_bit_unsigned_accelerated = value
60194 as u32;
60195 self
60196 }
60197 #[inline]
60198 pub fn integer_dot_product_accumulating_saturating64_bit_signed_accelerated(
60199 mut self,
60200 value: bool,
60201 ) -> Self {
60202 self
60203 .inner
60204 .integer_dot_product_accumulating_saturating64_bit_signed_accelerated = value
60205 as u32;
60206 self
60207 }
60208 #[inline]
60209 pub fn integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated(
60210 mut self,
60211 value: bool,
60212 ) -> Self {
60213 self
60214 .inner
60215 .integer_dot_product_accumulating_saturating64_bit_mixed_signedness_accelerated = value
60216 as u32;
60217 self
60218 }
60219}
60220impl<'a> core::ops::Deref
60221for PhysicalDeviceShaderIntegerDotProductPropertiesBuilder<'a> {
60222 type Target = PhysicalDeviceShaderIntegerDotProductProperties;
60223 #[inline]
60224 fn deref(&self) -> &Self::Target {
60225 &self.inner
60226 }
60227}
60228impl<'a> core::ops::DerefMut
60229for PhysicalDeviceShaderIntegerDotProductPropertiesBuilder<'a> {
60230 #[inline]
60231 fn deref_mut(&mut self) -> &mut Self::Target {
60232 &mut self.inner
60233 }
60234}
60235pub struct PhysicalDeviceDrmPropertiesEXTBuilder<'a> {
60237 inner: PhysicalDeviceDrmPropertiesEXT,
60238 _marker: core::marker::PhantomData<&'a ()>,
60239}
60240impl PhysicalDeviceDrmPropertiesEXT {
60241 #[inline]
60243 pub fn builder<'a>() -> PhysicalDeviceDrmPropertiesEXTBuilder<'a> {
60244 PhysicalDeviceDrmPropertiesEXTBuilder {
60245 inner: PhysicalDeviceDrmPropertiesEXT {
60246 s_type: StructureType::from_raw(1000353000i32),
60247 ..Default::default()
60248 },
60249 _marker: core::marker::PhantomData,
60250 }
60251 }
60252}
60253impl<'a> PhysicalDeviceDrmPropertiesEXTBuilder<'a> {
60254 #[inline]
60255 pub fn has_primary(mut self, value: bool) -> Self {
60256 self.inner.has_primary = value as u32;
60257 self
60258 }
60259 #[inline]
60260 pub fn has_render(mut self, value: bool) -> Self {
60261 self.inner.has_render = value as u32;
60262 self
60263 }
60264 #[inline]
60265 pub fn primary_major(mut self, value: i64) -> Self {
60266 self.inner.primary_major = value;
60267 self
60268 }
60269 #[inline]
60270 pub fn primary_minor(mut self, value: i64) -> Self {
60271 self.inner.primary_minor = value;
60272 self
60273 }
60274 #[inline]
60275 pub fn render_major(mut self, value: i64) -> Self {
60276 self.inner.render_major = value;
60277 self
60278 }
60279 #[inline]
60280 pub fn render_minor(mut self, value: i64) -> Self {
60281 self.inner.render_minor = value;
60282 self
60283 }
60284}
60285impl<'a> core::ops::Deref for PhysicalDeviceDrmPropertiesEXTBuilder<'a> {
60286 type Target = PhysicalDeviceDrmPropertiesEXT;
60287 #[inline]
60288 fn deref(&self) -> &Self::Target {
60289 &self.inner
60290 }
60291}
60292impl<'a> core::ops::DerefMut for PhysicalDeviceDrmPropertiesEXTBuilder<'a> {
60293 #[inline]
60294 fn deref_mut(&mut self) -> &mut Self::Target {
60295 &mut self.inner
60296 }
60297}
60298pub struct PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder<'a> {
60300 inner: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR,
60301 _marker: core::marker::PhantomData<&'a ()>,
60302}
60303impl PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
60304 #[inline]
60306 pub fn builder<'a>() -> PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder<
60307 'a,
60308 > {
60309 PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder {
60310 inner: PhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
60311 s_type: StructureType::from_raw(1000203000i32),
60312 ..Default::default()
60313 },
60314 _marker: core::marker::PhantomData,
60315 }
60316 }
60317}
60318impl<'a> PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder<'a> {
60319 #[inline]
60320 pub fn fragment_shader_barycentric(mut self, value: bool) -> Self {
60321 self.inner.fragment_shader_barycentric = value as u32;
60322 self
60323 }
60324 #[inline]
60326 pub fn push_next<T: ExtendsPhysicalDeviceFragmentShaderBarycentricFeaturesKHR>(
60327 mut self,
60328 next: &'a mut T,
60329 ) -> Self {
60330 unsafe {
60331 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60332 (*next_ptr).p_next = self.inner.p_next as *mut _;
60333 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60334 core::ffi::c_void,
60335 >(next_ptr);
60336 }
60337 self
60338 }
60339}
60340impl<'a> core::ops::Deref
60341for PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder<'a> {
60342 type Target = PhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
60343 #[inline]
60344 fn deref(&self) -> &Self::Target {
60345 &self.inner
60346 }
60347}
60348impl<'a> core::ops::DerefMut
60349for PhysicalDeviceFragmentShaderBarycentricFeaturesKHRBuilder<'a> {
60350 #[inline]
60351 fn deref_mut(&mut self) -> &mut Self::Target {
60352 &mut self.inner
60353 }
60354}
60355pub struct PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder<'a> {
60357 inner: PhysicalDeviceFragmentShaderBarycentricPropertiesKHR,
60358 _marker: core::marker::PhantomData<&'a ()>,
60359}
60360impl PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
60361 #[inline]
60363 pub fn builder<'a>() -> PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder<
60364 'a,
60365 > {
60366 PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder {
60367 inner: PhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
60368 s_type: StructureType::from_raw(1000322000i32),
60369 ..Default::default()
60370 },
60371 _marker: core::marker::PhantomData,
60372 }
60373 }
60374}
60375impl<'a> PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder<'a> {
60376 #[inline]
60377 pub fn tri_strip_vertex_order_independent_of_provoking_vertex(
60378 mut self,
60379 value: bool,
60380 ) -> Self {
60381 self.inner.tri_strip_vertex_order_independent_of_provoking_vertex = value as u32;
60382 self
60383 }
60384}
60385impl<'a> core::ops::Deref
60386for PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder<'a> {
60387 type Target = PhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
60388 #[inline]
60389 fn deref(&self) -> &Self::Target {
60390 &self.inner
60391 }
60392}
60393impl<'a> core::ops::DerefMut
60394for PhysicalDeviceFragmentShaderBarycentricPropertiesKHRBuilder<'a> {
60395 #[inline]
60396 fn deref_mut(&mut self) -> &mut Self::Target {
60397 &mut self.inner
60398 }
60399}
60400pub struct PhysicalDeviceShaderFmaFeaturesKHRBuilder<'a> {
60402 inner: PhysicalDeviceShaderFmaFeaturesKHR,
60403 _marker: core::marker::PhantomData<&'a ()>,
60404}
60405impl PhysicalDeviceShaderFmaFeaturesKHR {
60406 #[inline]
60408 pub fn builder<'a>() -> PhysicalDeviceShaderFmaFeaturesKHRBuilder<'a> {
60409 PhysicalDeviceShaderFmaFeaturesKHRBuilder {
60410 inner: PhysicalDeviceShaderFmaFeaturesKHR {
60411 s_type: StructureType::from_raw(1000579000i32),
60412 ..Default::default()
60413 },
60414 _marker: core::marker::PhantomData,
60415 }
60416 }
60417}
60418impl<'a> PhysicalDeviceShaderFmaFeaturesKHRBuilder<'a> {
60419 #[inline]
60420 pub fn shader_fma_float16(mut self, value: bool) -> Self {
60421 self.inner.shader_fma_float16 = value as u32;
60422 self
60423 }
60424 #[inline]
60425 pub fn shader_fma_float32(mut self, value: bool) -> Self {
60426 self.inner.shader_fma_float32 = value as u32;
60427 self
60428 }
60429 #[inline]
60430 pub fn shader_fma_float64(mut self, value: bool) -> Self {
60431 self.inner.shader_fma_float64 = value as u32;
60432 self
60433 }
60434 #[inline]
60436 pub fn push_next<T: ExtendsPhysicalDeviceShaderFmaFeaturesKHR>(
60437 mut self,
60438 next: &'a mut T,
60439 ) -> Self {
60440 unsafe {
60441 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60442 (*next_ptr).p_next = self.inner.p_next as *mut _;
60443 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60444 core::ffi::c_void,
60445 >(next_ptr);
60446 }
60447 self
60448 }
60449}
60450impl<'a> core::ops::Deref for PhysicalDeviceShaderFmaFeaturesKHRBuilder<'a> {
60451 type Target = PhysicalDeviceShaderFmaFeaturesKHR;
60452 #[inline]
60453 fn deref(&self) -> &Self::Target {
60454 &self.inner
60455 }
60456}
60457impl<'a> core::ops::DerefMut for PhysicalDeviceShaderFmaFeaturesKHRBuilder<'a> {
60458 #[inline]
60459 fn deref_mut(&mut self) -> &mut Self::Target {
60460 &mut self.inner
60461 }
60462}
60463pub struct PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder<'a> {
60465 inner: PhysicalDeviceRayTracingMotionBlurFeaturesNV,
60466 _marker: core::marker::PhantomData<&'a ()>,
60467}
60468impl PhysicalDeviceRayTracingMotionBlurFeaturesNV {
60469 #[inline]
60471 pub fn builder<'a>() -> PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder<'a> {
60472 PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder {
60473 inner: PhysicalDeviceRayTracingMotionBlurFeaturesNV {
60474 s_type: StructureType::from_raw(1000327001i32),
60475 ..Default::default()
60476 },
60477 _marker: core::marker::PhantomData,
60478 }
60479 }
60480}
60481impl<'a> PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder<'a> {
60482 #[inline]
60483 pub fn ray_tracing_motion_blur(mut self, value: bool) -> Self {
60484 self.inner.ray_tracing_motion_blur = value as u32;
60485 self
60486 }
60487 #[inline]
60488 pub fn ray_tracing_motion_blur_pipeline_trace_rays_indirect(
60489 mut self,
60490 value: bool,
60491 ) -> Self {
60492 self.inner.ray_tracing_motion_blur_pipeline_trace_rays_indirect = value as u32;
60493 self
60494 }
60495 #[inline]
60497 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingMotionBlurFeaturesNV>(
60498 mut self,
60499 next: &'a mut T,
60500 ) -> Self {
60501 unsafe {
60502 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60503 (*next_ptr).p_next = self.inner.p_next as *mut _;
60504 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60505 core::ffi::c_void,
60506 >(next_ptr);
60507 }
60508 self
60509 }
60510}
60511impl<'a> core::ops::Deref for PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder<'a> {
60512 type Target = PhysicalDeviceRayTracingMotionBlurFeaturesNV;
60513 #[inline]
60514 fn deref(&self) -> &Self::Target {
60515 &self.inner
60516 }
60517}
60518impl<'a> core::ops::DerefMut
60519for PhysicalDeviceRayTracingMotionBlurFeaturesNVBuilder<'a> {
60520 #[inline]
60521 fn deref_mut(&mut self) -> &mut Self::Target {
60522 &mut self.inner
60523 }
60524}
60525pub struct PhysicalDeviceRayTracingValidationFeaturesNVBuilder<'a> {
60527 inner: PhysicalDeviceRayTracingValidationFeaturesNV,
60528 _marker: core::marker::PhantomData<&'a ()>,
60529}
60530impl PhysicalDeviceRayTracingValidationFeaturesNV {
60531 #[inline]
60533 pub fn builder<'a>() -> PhysicalDeviceRayTracingValidationFeaturesNVBuilder<'a> {
60534 PhysicalDeviceRayTracingValidationFeaturesNVBuilder {
60535 inner: PhysicalDeviceRayTracingValidationFeaturesNV {
60536 s_type: StructureType::from_raw(1000568000i32),
60537 ..Default::default()
60538 },
60539 _marker: core::marker::PhantomData,
60540 }
60541 }
60542}
60543impl<'a> PhysicalDeviceRayTracingValidationFeaturesNVBuilder<'a> {
60544 #[inline]
60545 pub fn ray_tracing_validation(mut self, value: bool) -> Self {
60546 self.inner.ray_tracing_validation = value as u32;
60547 self
60548 }
60549 #[inline]
60551 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingValidationFeaturesNV>(
60552 mut self,
60553 next: &'a mut T,
60554 ) -> Self {
60555 unsafe {
60556 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60557 (*next_ptr).p_next = self.inner.p_next as *mut _;
60558 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60559 core::ffi::c_void,
60560 >(next_ptr);
60561 }
60562 self
60563 }
60564}
60565impl<'a> core::ops::Deref for PhysicalDeviceRayTracingValidationFeaturesNVBuilder<'a> {
60566 type Target = PhysicalDeviceRayTracingValidationFeaturesNV;
60567 #[inline]
60568 fn deref(&self) -> &Self::Target {
60569 &self.inner
60570 }
60571}
60572impl<'a> core::ops::DerefMut
60573for PhysicalDeviceRayTracingValidationFeaturesNVBuilder<'a> {
60574 #[inline]
60575 fn deref_mut(&mut self) -> &mut Self::Target {
60576 &mut self.inner
60577 }
60578}
60579pub struct PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder<'a> {
60581 inner: PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV,
60582 _marker: core::marker::PhantomData<&'a ()>,
60583}
60584impl PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
60585 #[inline]
60587 pub fn builder<'a>() -> PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder<
60588 'a,
60589 > {
60590 PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder {
60591 inner: PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
60592 s_type: StructureType::from_raw(1000429008i32),
60593 ..Default::default()
60594 },
60595 _marker: core::marker::PhantomData,
60596 }
60597 }
60598}
60599impl<'a> PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder<'a> {
60600 #[inline]
60601 pub fn spheres(mut self, value: bool) -> Self {
60602 self.inner.spheres = value as u32;
60603 self
60604 }
60605 #[inline]
60606 pub fn linear_swept_spheres(mut self, value: bool) -> Self {
60607 self.inner.linear_swept_spheres = value as u32;
60608 self
60609 }
60610 #[inline]
60612 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV>(
60613 mut self,
60614 next: &'a mut T,
60615 ) -> Self {
60616 unsafe {
60617 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60618 (*next_ptr).p_next = self.inner.p_next as *mut _;
60619 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60620 core::ffi::c_void,
60621 >(next_ptr);
60622 }
60623 self
60624 }
60625}
60626impl<'a> core::ops::Deref
60627for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder<'a> {
60628 type Target = PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
60629 #[inline]
60630 fn deref(&self) -> &Self::Target {
60631 &self.inner
60632 }
60633}
60634impl<'a> core::ops::DerefMut
60635for PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNVBuilder<'a> {
60636 #[inline]
60637 fn deref_mut(&mut self) -> &mut Self::Target {
60638 &mut self.inner
60639 }
60640}
60641pub struct AccelerationStructureGeometryMotionTrianglesDataNVBuilder<'a> {
60643 inner: AccelerationStructureGeometryMotionTrianglesDataNV,
60644 _marker: core::marker::PhantomData<&'a ()>,
60645}
60646impl AccelerationStructureGeometryMotionTrianglesDataNV {
60647 #[inline]
60649 pub fn builder<'a>() -> AccelerationStructureGeometryMotionTrianglesDataNVBuilder<
60650 'a,
60651 > {
60652 AccelerationStructureGeometryMotionTrianglesDataNVBuilder {
60653 inner: AccelerationStructureGeometryMotionTrianglesDataNV {
60654 s_type: StructureType::from_raw(1000327000i32),
60655 ..Default::default()
60656 },
60657 _marker: core::marker::PhantomData,
60658 }
60659 }
60660}
60661impl<'a> AccelerationStructureGeometryMotionTrianglesDataNVBuilder<'a> {
60662 #[inline]
60663 pub fn vertex_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
60664 self.inner.vertex_data = value;
60665 self
60666 }
60667 #[inline]
60669 pub fn push_next<T: ExtendsAccelerationStructureGeometryMotionTrianglesDataNV>(
60670 mut self,
60671 next: &'a mut T,
60672 ) -> Self {
60673 unsafe {
60674 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60675 (*next_ptr).p_next = self.inner.p_next as *mut _;
60676 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60677 core::ffi::c_void,
60678 >(next_ptr) as *const _;
60679 }
60680 self
60681 }
60682}
60683impl<'a> core::ops::Deref
60684for AccelerationStructureGeometryMotionTrianglesDataNVBuilder<'a> {
60685 type Target = AccelerationStructureGeometryMotionTrianglesDataNV;
60686 #[inline]
60687 fn deref(&self) -> &Self::Target {
60688 &self.inner
60689 }
60690}
60691impl<'a> core::ops::DerefMut
60692for AccelerationStructureGeometryMotionTrianglesDataNVBuilder<'a> {
60693 #[inline]
60694 fn deref_mut(&mut self) -> &mut Self::Target {
60695 &mut self.inner
60696 }
60697}
60698pub struct AccelerationStructureMotionInfoNVBuilder<'a> {
60700 inner: AccelerationStructureMotionInfoNV,
60701 _marker: core::marker::PhantomData<&'a ()>,
60702}
60703impl AccelerationStructureMotionInfoNV {
60704 #[inline]
60706 pub fn builder<'a>() -> AccelerationStructureMotionInfoNVBuilder<'a> {
60707 AccelerationStructureMotionInfoNVBuilder {
60708 inner: AccelerationStructureMotionInfoNV {
60709 s_type: StructureType::from_raw(1000327002i32),
60710 ..Default::default()
60711 },
60712 _marker: core::marker::PhantomData,
60713 }
60714 }
60715}
60716impl<'a> AccelerationStructureMotionInfoNVBuilder<'a> {
60717 #[inline]
60718 pub fn max_instances(mut self, value: u32) -> Self {
60719 self.inner.max_instances = value;
60720 self
60721 }
60722 #[inline]
60723 pub fn flags(mut self, value: AccelerationStructureMotionInfoFlagsNV) -> Self {
60724 self.inner.flags = value;
60725 self
60726 }
60727 #[inline]
60729 pub fn push_next<T: ExtendsAccelerationStructureMotionInfoNV>(
60730 mut self,
60731 next: &'a mut T,
60732 ) -> Self {
60733 unsafe {
60734 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60735 (*next_ptr).p_next = self.inner.p_next as *mut _;
60736 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60737 core::ffi::c_void,
60738 >(next_ptr) as *const _;
60739 }
60740 self
60741 }
60742}
60743impl<'a> core::ops::Deref for AccelerationStructureMotionInfoNVBuilder<'a> {
60744 type Target = AccelerationStructureMotionInfoNV;
60745 #[inline]
60746 fn deref(&self) -> &Self::Target {
60747 &self.inner
60748 }
60749}
60750impl<'a> core::ops::DerefMut for AccelerationStructureMotionInfoNVBuilder<'a> {
60751 #[inline]
60752 fn deref_mut(&mut self) -> &mut Self::Target {
60753 &mut self.inner
60754 }
60755}
60756pub struct SRTDataNVBuilder {
60758 inner: SRTDataNV,
60759}
60760impl SRTDataNV {
60761 #[inline]
60763 pub fn builder() -> SRTDataNVBuilder {
60764 SRTDataNVBuilder {
60765 inner: SRTDataNV { ..Default::default() },
60766 }
60767 }
60768}
60769impl SRTDataNVBuilder {
60770 #[inline]
60771 pub fn sx(mut self, value: f32) -> Self {
60772 self.inner.sx = value;
60773 self
60774 }
60775 #[inline]
60776 pub fn a(mut self, value: f32) -> Self {
60777 self.inner.a = value;
60778 self
60779 }
60780 #[inline]
60781 pub fn b(mut self, value: f32) -> Self {
60782 self.inner.b = value;
60783 self
60784 }
60785 #[inline]
60786 pub fn pvx(mut self, value: f32) -> Self {
60787 self.inner.pvx = value;
60788 self
60789 }
60790 #[inline]
60791 pub fn sy(mut self, value: f32) -> Self {
60792 self.inner.sy = value;
60793 self
60794 }
60795 #[inline]
60796 pub fn c(mut self, value: f32) -> Self {
60797 self.inner.c = value;
60798 self
60799 }
60800 #[inline]
60801 pub fn pvy(mut self, value: f32) -> Self {
60802 self.inner.pvy = value;
60803 self
60804 }
60805 #[inline]
60806 pub fn sz(mut self, value: f32) -> Self {
60807 self.inner.sz = value;
60808 self
60809 }
60810 #[inline]
60811 pub fn pvz(mut self, value: f32) -> Self {
60812 self.inner.pvz = value;
60813 self
60814 }
60815 #[inline]
60816 pub fn qx(mut self, value: f32) -> Self {
60817 self.inner.qx = value;
60818 self
60819 }
60820 #[inline]
60821 pub fn qy(mut self, value: f32) -> Self {
60822 self.inner.qy = value;
60823 self
60824 }
60825 #[inline]
60826 pub fn qz(mut self, value: f32) -> Self {
60827 self.inner.qz = value;
60828 self
60829 }
60830 #[inline]
60831 pub fn qw(mut self, value: f32) -> Self {
60832 self.inner.qw = value;
60833 self
60834 }
60835 #[inline]
60836 pub fn tx(mut self, value: f32) -> Self {
60837 self.inner.tx = value;
60838 self
60839 }
60840 #[inline]
60841 pub fn ty(mut self, value: f32) -> Self {
60842 self.inner.ty = value;
60843 self
60844 }
60845 #[inline]
60846 pub fn tz(mut self, value: f32) -> Self {
60847 self.inner.tz = value;
60848 self
60849 }
60850}
60851impl core::ops::Deref for SRTDataNVBuilder {
60852 type Target = SRTDataNV;
60853 #[inline]
60854 fn deref(&self) -> &Self::Target {
60855 &self.inner
60856 }
60857}
60858impl core::ops::DerefMut for SRTDataNVBuilder {
60859 #[inline]
60860 fn deref_mut(&mut self) -> &mut Self::Target {
60861 &mut self.inner
60862 }
60863}
60864pub struct AccelerationStructureMotionInstanceNVBuilder {
60866 inner: AccelerationStructureMotionInstanceNV,
60867}
60868impl AccelerationStructureMotionInstanceNV {
60869 #[inline]
60871 pub fn builder() -> AccelerationStructureMotionInstanceNVBuilder {
60872 AccelerationStructureMotionInstanceNVBuilder {
60873 inner: AccelerationStructureMotionInstanceNV {
60874 ..Default::default()
60875 },
60876 }
60877 }
60878}
60879impl AccelerationStructureMotionInstanceNVBuilder {
60880 #[inline]
60881 pub fn r#type(mut self, value: AccelerationStructureMotionInstanceTypeNV) -> Self {
60882 self.inner.r#type = value;
60883 self
60884 }
60885 #[inline]
60886 pub fn flags(mut self, value: AccelerationStructureMotionInstanceFlagsNV) -> Self {
60887 self.inner.flags = value;
60888 self
60889 }
60890 #[inline]
60891 pub fn data(mut self, value: AccelerationStructureMotionInstanceDataNV) -> Self {
60892 self.inner.data = value;
60893 self
60894 }
60895}
60896impl core::ops::Deref for AccelerationStructureMotionInstanceNVBuilder {
60897 type Target = AccelerationStructureMotionInstanceNV;
60898 #[inline]
60899 fn deref(&self) -> &Self::Target {
60900 &self.inner
60901 }
60902}
60903impl core::ops::DerefMut for AccelerationStructureMotionInstanceNVBuilder {
60904 #[inline]
60905 fn deref_mut(&mut self) -> &mut Self::Target {
60906 &mut self.inner
60907 }
60908}
60909pub struct MemoryGetRemoteAddressInfoNVBuilder<'a> {
60911 inner: MemoryGetRemoteAddressInfoNV,
60912 _marker: core::marker::PhantomData<&'a ()>,
60913}
60914impl MemoryGetRemoteAddressInfoNV {
60915 #[inline]
60917 pub fn builder<'a>() -> MemoryGetRemoteAddressInfoNVBuilder<'a> {
60918 MemoryGetRemoteAddressInfoNVBuilder {
60919 inner: MemoryGetRemoteAddressInfoNV {
60920 s_type: StructureType::from_raw(1000371000i32),
60921 ..Default::default()
60922 },
60923 _marker: core::marker::PhantomData,
60924 }
60925 }
60926}
60927impl<'a> MemoryGetRemoteAddressInfoNVBuilder<'a> {
60928 #[inline]
60929 pub fn memory(mut self, value: DeviceMemory) -> Self {
60930 self.inner.memory = value;
60931 self
60932 }
60933 #[inline]
60934 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
60935 self.inner.handle_type = value;
60936 self
60937 }
60938 #[inline]
60940 pub fn push_next<T: ExtendsMemoryGetRemoteAddressInfoNV>(
60941 mut self,
60942 next: &'a mut T,
60943 ) -> Self {
60944 unsafe {
60945 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
60946 (*next_ptr).p_next = self.inner.p_next as *mut _;
60947 self.inner.p_next = <*mut BaseOutStructure>::cast::<
60948 core::ffi::c_void,
60949 >(next_ptr) as *const _;
60950 }
60951 self
60952 }
60953}
60954impl<'a> core::ops::Deref for MemoryGetRemoteAddressInfoNVBuilder<'a> {
60955 type Target = MemoryGetRemoteAddressInfoNV;
60956 #[inline]
60957 fn deref(&self) -> &Self::Target {
60958 &self.inner
60959 }
60960}
60961impl<'a> core::ops::DerefMut for MemoryGetRemoteAddressInfoNVBuilder<'a> {
60962 #[inline]
60963 fn deref_mut(&mut self) -> &mut Self::Target {
60964 &mut self.inner
60965 }
60966}
60967pub struct ImportMemoryBufferCollectionFUCHSIABuilder<'a> {
60969 inner: ImportMemoryBufferCollectionFUCHSIA,
60970 _marker: core::marker::PhantomData<&'a ()>,
60971}
60972impl ImportMemoryBufferCollectionFUCHSIA {
60973 #[inline]
60975 pub fn builder<'a>() -> ImportMemoryBufferCollectionFUCHSIABuilder<'a> {
60976 ImportMemoryBufferCollectionFUCHSIABuilder {
60977 inner: ImportMemoryBufferCollectionFUCHSIA {
60978 s_type: StructureType::from_raw(1000366001i32),
60979 ..Default::default()
60980 },
60981 _marker: core::marker::PhantomData,
60982 }
60983 }
60984}
60985impl<'a> ImportMemoryBufferCollectionFUCHSIABuilder<'a> {
60986 #[inline]
60987 pub fn collection(mut self, value: BufferCollectionFUCHSIA) -> Self {
60988 self.inner.collection = value;
60989 self
60990 }
60991 #[inline]
60992 pub fn index(mut self, value: u32) -> Self {
60993 self.inner.index = value;
60994 self
60995 }
60996 #[inline]
60998 pub fn push_next<T: ExtendsImportMemoryBufferCollectionFUCHSIA>(
60999 mut self,
61000 next: &'a mut T,
61001 ) -> Self {
61002 unsafe {
61003 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61004 (*next_ptr).p_next = self.inner.p_next as *mut _;
61005 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61006 core::ffi::c_void,
61007 >(next_ptr) as *const _;
61008 }
61009 self
61010 }
61011}
61012impl<'a> core::ops::Deref for ImportMemoryBufferCollectionFUCHSIABuilder<'a> {
61013 type Target = ImportMemoryBufferCollectionFUCHSIA;
61014 #[inline]
61015 fn deref(&self) -> &Self::Target {
61016 &self.inner
61017 }
61018}
61019impl<'a> core::ops::DerefMut for ImportMemoryBufferCollectionFUCHSIABuilder<'a> {
61020 #[inline]
61021 fn deref_mut(&mut self) -> &mut Self::Target {
61022 &mut self.inner
61023 }
61024}
61025pub struct BufferCollectionImageCreateInfoFUCHSIABuilder<'a> {
61027 inner: BufferCollectionImageCreateInfoFUCHSIA,
61028 _marker: core::marker::PhantomData<&'a ()>,
61029}
61030impl BufferCollectionImageCreateInfoFUCHSIA {
61031 #[inline]
61033 pub fn builder<'a>() -> BufferCollectionImageCreateInfoFUCHSIABuilder<'a> {
61034 BufferCollectionImageCreateInfoFUCHSIABuilder {
61035 inner: BufferCollectionImageCreateInfoFUCHSIA {
61036 s_type: StructureType::from_raw(1000366002i32),
61037 ..Default::default()
61038 },
61039 _marker: core::marker::PhantomData,
61040 }
61041 }
61042}
61043impl<'a> BufferCollectionImageCreateInfoFUCHSIABuilder<'a> {
61044 #[inline]
61045 pub fn collection(mut self, value: BufferCollectionFUCHSIA) -> Self {
61046 self.inner.collection = value;
61047 self
61048 }
61049 #[inline]
61050 pub fn index(mut self, value: u32) -> Self {
61051 self.inner.index = value;
61052 self
61053 }
61054 #[inline]
61056 pub fn push_next<T: ExtendsBufferCollectionImageCreateInfoFUCHSIA>(
61057 mut self,
61058 next: &'a mut T,
61059 ) -> Self {
61060 unsafe {
61061 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61062 (*next_ptr).p_next = self.inner.p_next as *mut _;
61063 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61064 core::ffi::c_void,
61065 >(next_ptr) as *const _;
61066 }
61067 self
61068 }
61069}
61070impl<'a> core::ops::Deref for BufferCollectionImageCreateInfoFUCHSIABuilder<'a> {
61071 type Target = BufferCollectionImageCreateInfoFUCHSIA;
61072 #[inline]
61073 fn deref(&self) -> &Self::Target {
61074 &self.inner
61075 }
61076}
61077impl<'a> core::ops::DerefMut for BufferCollectionImageCreateInfoFUCHSIABuilder<'a> {
61078 #[inline]
61079 fn deref_mut(&mut self) -> &mut Self::Target {
61080 &mut self.inner
61081 }
61082}
61083pub struct BufferCollectionBufferCreateInfoFUCHSIABuilder<'a> {
61085 inner: BufferCollectionBufferCreateInfoFUCHSIA,
61086 _marker: core::marker::PhantomData<&'a ()>,
61087}
61088impl BufferCollectionBufferCreateInfoFUCHSIA {
61089 #[inline]
61091 pub fn builder<'a>() -> BufferCollectionBufferCreateInfoFUCHSIABuilder<'a> {
61092 BufferCollectionBufferCreateInfoFUCHSIABuilder {
61093 inner: BufferCollectionBufferCreateInfoFUCHSIA {
61094 s_type: StructureType::from_raw(1000366005i32),
61095 ..Default::default()
61096 },
61097 _marker: core::marker::PhantomData,
61098 }
61099 }
61100}
61101impl<'a> BufferCollectionBufferCreateInfoFUCHSIABuilder<'a> {
61102 #[inline]
61103 pub fn collection(mut self, value: BufferCollectionFUCHSIA) -> Self {
61104 self.inner.collection = value;
61105 self
61106 }
61107 #[inline]
61108 pub fn index(mut self, value: u32) -> Self {
61109 self.inner.index = value;
61110 self
61111 }
61112 #[inline]
61114 pub fn push_next<T: ExtendsBufferCollectionBufferCreateInfoFUCHSIA>(
61115 mut self,
61116 next: &'a mut T,
61117 ) -> Self {
61118 unsafe {
61119 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61120 (*next_ptr).p_next = self.inner.p_next as *mut _;
61121 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61122 core::ffi::c_void,
61123 >(next_ptr) as *const _;
61124 }
61125 self
61126 }
61127}
61128impl<'a> core::ops::Deref for BufferCollectionBufferCreateInfoFUCHSIABuilder<'a> {
61129 type Target = BufferCollectionBufferCreateInfoFUCHSIA;
61130 #[inline]
61131 fn deref(&self) -> &Self::Target {
61132 &self.inner
61133 }
61134}
61135impl<'a> core::ops::DerefMut for BufferCollectionBufferCreateInfoFUCHSIABuilder<'a> {
61136 #[inline]
61137 fn deref_mut(&mut self) -> &mut Self::Target {
61138 &mut self.inner
61139 }
61140}
61141pub struct BufferCollectionCreateInfoFUCHSIABuilder<'a> {
61143 inner: BufferCollectionCreateInfoFUCHSIA,
61144 _marker: core::marker::PhantomData<&'a ()>,
61145}
61146impl BufferCollectionCreateInfoFUCHSIA {
61147 #[inline]
61149 pub fn builder<'a>() -> BufferCollectionCreateInfoFUCHSIABuilder<'a> {
61150 BufferCollectionCreateInfoFUCHSIABuilder {
61151 inner: BufferCollectionCreateInfoFUCHSIA {
61152 s_type: StructureType::from_raw(1000366000i32),
61153 ..Default::default()
61154 },
61155 _marker: core::marker::PhantomData,
61156 }
61157 }
61158}
61159impl<'a> BufferCollectionCreateInfoFUCHSIABuilder<'a> {
61160 #[inline]
61161 pub fn collection_token(mut self, value: u32) -> Self {
61162 self.inner.collection_token = value;
61163 self
61164 }
61165 #[inline]
61167 pub fn push_next<T: ExtendsBufferCollectionCreateInfoFUCHSIA>(
61168 mut self,
61169 next: &'a mut T,
61170 ) -> Self {
61171 unsafe {
61172 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61173 (*next_ptr).p_next = self.inner.p_next as *mut _;
61174 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61175 core::ffi::c_void,
61176 >(next_ptr) as *const _;
61177 }
61178 self
61179 }
61180}
61181impl<'a> core::ops::Deref for BufferCollectionCreateInfoFUCHSIABuilder<'a> {
61182 type Target = BufferCollectionCreateInfoFUCHSIA;
61183 #[inline]
61184 fn deref(&self) -> &Self::Target {
61185 &self.inner
61186 }
61187}
61188impl<'a> core::ops::DerefMut for BufferCollectionCreateInfoFUCHSIABuilder<'a> {
61189 #[inline]
61190 fn deref_mut(&mut self) -> &mut Self::Target {
61191 &mut self.inner
61192 }
61193}
61194pub struct BufferCollectionPropertiesFUCHSIABuilder<'a> {
61196 inner: BufferCollectionPropertiesFUCHSIA,
61197 _marker: core::marker::PhantomData<&'a ()>,
61198}
61199impl BufferCollectionPropertiesFUCHSIA {
61200 #[inline]
61202 pub fn builder<'a>() -> BufferCollectionPropertiesFUCHSIABuilder<'a> {
61203 BufferCollectionPropertiesFUCHSIABuilder {
61204 inner: BufferCollectionPropertiesFUCHSIA {
61205 s_type: StructureType::from_raw(1000366003i32),
61206 ..Default::default()
61207 },
61208 _marker: core::marker::PhantomData,
61209 }
61210 }
61211}
61212impl<'a> BufferCollectionPropertiesFUCHSIABuilder<'a> {
61213 #[inline]
61214 pub fn memory_type_bits(mut self, value: u32) -> Self {
61215 self.inner.memory_type_bits = value;
61216 self
61217 }
61218 #[inline]
61219 pub fn buffer_count(mut self, value: u32) -> Self {
61220 self.inner.buffer_count = value;
61221 self
61222 }
61223 #[inline]
61224 pub fn create_info_index(mut self, value: u32) -> Self {
61225 self.inner.create_info_index = value;
61226 self
61227 }
61228 #[inline]
61229 pub fn sysmem_pixel_format(mut self, value: u64) -> Self {
61230 self.inner.sysmem_pixel_format = value;
61231 self
61232 }
61233 #[inline]
61234 pub fn format_features(mut self, value: FormatFeatureFlags) -> Self {
61235 self.inner.format_features = value;
61236 self
61237 }
61238 #[inline]
61239 pub fn sysmem_color_space_index(mut self, value: SysmemColorSpaceFUCHSIA) -> Self {
61240 self.inner.sysmem_color_space_index = value;
61241 self
61242 }
61243 #[inline]
61244 pub fn sampler_ycbcr_conversion_components(
61245 mut self,
61246 value: ComponentMapping,
61247 ) -> Self {
61248 self.inner.sampler_ycbcr_conversion_components = value;
61249 self
61250 }
61251 #[inline]
61252 pub fn suggested_ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
61253 self.inner.suggested_ycbcr_model = value;
61254 self
61255 }
61256 #[inline]
61257 pub fn suggested_ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
61258 self.inner.suggested_ycbcr_range = value;
61259 self
61260 }
61261 #[inline]
61262 pub fn suggested_x_chroma_offset(mut self, value: ChromaLocation) -> Self {
61263 self.inner.suggested_x_chroma_offset = value;
61264 self
61265 }
61266 #[inline]
61267 pub fn suggested_y_chroma_offset(mut self, value: ChromaLocation) -> Self {
61268 self.inner.suggested_y_chroma_offset = value;
61269 self
61270 }
61271}
61272impl<'a> core::ops::Deref for BufferCollectionPropertiesFUCHSIABuilder<'a> {
61273 type Target = BufferCollectionPropertiesFUCHSIA;
61274 #[inline]
61275 fn deref(&self) -> &Self::Target {
61276 &self.inner
61277 }
61278}
61279impl<'a> core::ops::DerefMut for BufferCollectionPropertiesFUCHSIABuilder<'a> {
61280 #[inline]
61281 fn deref_mut(&mut self) -> &mut Self::Target {
61282 &mut self.inner
61283 }
61284}
61285pub struct BufferConstraintsInfoFUCHSIABuilder<'a> {
61287 inner: BufferConstraintsInfoFUCHSIA,
61288 _marker: core::marker::PhantomData<&'a ()>,
61289}
61290impl BufferConstraintsInfoFUCHSIA {
61291 #[inline]
61293 pub fn builder<'a>() -> BufferConstraintsInfoFUCHSIABuilder<'a> {
61294 BufferConstraintsInfoFUCHSIABuilder {
61295 inner: BufferConstraintsInfoFUCHSIA {
61296 s_type: StructureType::from_raw(1000366004i32),
61297 ..Default::default()
61298 },
61299 _marker: core::marker::PhantomData,
61300 }
61301 }
61302}
61303impl<'a> BufferConstraintsInfoFUCHSIABuilder<'a> {
61304 #[inline]
61305 pub fn create_info(mut self, value: BufferCreateInfo) -> Self {
61306 self.inner.create_info = value;
61307 self
61308 }
61309 #[inline]
61310 pub fn required_format_features(mut self, value: FormatFeatureFlags) -> Self {
61311 self.inner.required_format_features = value;
61312 self
61313 }
61314 #[inline]
61315 pub fn buffer_collection_constraints(
61316 mut self,
61317 value: BufferCollectionConstraintsInfoFUCHSIA,
61318 ) -> Self {
61319 self.inner.buffer_collection_constraints = value;
61320 self
61321 }
61322 #[inline]
61324 pub fn push_next<T: ExtendsBufferConstraintsInfoFUCHSIA>(
61325 mut self,
61326 next: &'a mut T,
61327 ) -> Self {
61328 unsafe {
61329 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61330 (*next_ptr).p_next = self.inner.p_next as *mut _;
61331 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61332 core::ffi::c_void,
61333 >(next_ptr) as *const _;
61334 }
61335 self
61336 }
61337}
61338impl<'a> core::ops::Deref for BufferConstraintsInfoFUCHSIABuilder<'a> {
61339 type Target = BufferConstraintsInfoFUCHSIA;
61340 #[inline]
61341 fn deref(&self) -> &Self::Target {
61342 &self.inner
61343 }
61344}
61345impl<'a> core::ops::DerefMut for BufferConstraintsInfoFUCHSIABuilder<'a> {
61346 #[inline]
61347 fn deref_mut(&mut self) -> &mut Self::Target {
61348 &mut self.inner
61349 }
61350}
61351pub struct SysmemColorSpaceFUCHSIABuilder<'a> {
61353 inner: SysmemColorSpaceFUCHSIA,
61354 _marker: core::marker::PhantomData<&'a ()>,
61355}
61356impl SysmemColorSpaceFUCHSIA {
61357 #[inline]
61359 pub fn builder<'a>() -> SysmemColorSpaceFUCHSIABuilder<'a> {
61360 SysmemColorSpaceFUCHSIABuilder {
61361 inner: SysmemColorSpaceFUCHSIA {
61362 s_type: StructureType::from_raw(1000366008i32),
61363 ..Default::default()
61364 },
61365 _marker: core::marker::PhantomData,
61366 }
61367 }
61368}
61369impl<'a> SysmemColorSpaceFUCHSIABuilder<'a> {
61370 #[inline]
61371 pub fn color_space(mut self, value: u32) -> Self {
61372 self.inner.color_space = value;
61373 self
61374 }
61375 #[inline]
61377 pub fn push_next<T: ExtendsSysmemColorSpaceFUCHSIA>(
61378 mut self,
61379 next: &'a mut T,
61380 ) -> Self {
61381 unsafe {
61382 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61383 (*next_ptr).p_next = self.inner.p_next as *mut _;
61384 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61385 core::ffi::c_void,
61386 >(next_ptr) as *const _;
61387 }
61388 self
61389 }
61390}
61391impl<'a> core::ops::Deref for SysmemColorSpaceFUCHSIABuilder<'a> {
61392 type Target = SysmemColorSpaceFUCHSIA;
61393 #[inline]
61394 fn deref(&self) -> &Self::Target {
61395 &self.inner
61396 }
61397}
61398impl<'a> core::ops::DerefMut for SysmemColorSpaceFUCHSIABuilder<'a> {
61399 #[inline]
61400 fn deref_mut(&mut self) -> &mut Self::Target {
61401 &mut self.inner
61402 }
61403}
61404pub struct ImageFormatConstraintsInfoFUCHSIABuilder<'a> {
61406 inner: ImageFormatConstraintsInfoFUCHSIA,
61407 _marker: core::marker::PhantomData<&'a ()>,
61408}
61409impl ImageFormatConstraintsInfoFUCHSIA {
61410 #[inline]
61412 pub fn builder<'a>() -> ImageFormatConstraintsInfoFUCHSIABuilder<'a> {
61413 ImageFormatConstraintsInfoFUCHSIABuilder {
61414 inner: ImageFormatConstraintsInfoFUCHSIA {
61415 s_type: StructureType::from_raw(1000366007i32),
61416 ..Default::default()
61417 },
61418 _marker: core::marker::PhantomData,
61419 }
61420 }
61421}
61422impl<'a> ImageFormatConstraintsInfoFUCHSIABuilder<'a> {
61423 #[inline]
61424 pub fn image_create_info(mut self, value: ImageCreateInfo) -> Self {
61425 self.inner.image_create_info = value;
61426 self
61427 }
61428 #[inline]
61429 pub fn required_format_features(mut self, value: FormatFeatureFlags) -> Self {
61430 self.inner.required_format_features = value;
61431 self
61432 }
61433 #[inline]
61434 pub fn flags(mut self, value: ImageFormatConstraintsFlagsFUCHSIA) -> Self {
61435 self.inner.flags = value;
61436 self
61437 }
61438 #[inline]
61439 pub fn sysmem_pixel_format(mut self, value: u64) -> Self {
61440 self.inner.sysmem_pixel_format = value;
61441 self
61442 }
61443 #[inline]
61444 pub fn color_spaces(mut self, slice: &'a [SysmemColorSpaceFUCHSIA]) -> Self {
61445 self.inner.color_space_count = slice.len() as u32;
61446 self.inner.p_color_spaces = slice.as_ptr();
61447 self
61448 }
61449 #[inline]
61451 pub fn push_next<T: ExtendsImageFormatConstraintsInfoFUCHSIA>(
61452 mut self,
61453 next: &'a mut T,
61454 ) -> Self {
61455 unsafe {
61456 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61457 (*next_ptr).p_next = self.inner.p_next as *mut _;
61458 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61459 core::ffi::c_void,
61460 >(next_ptr) as *const _;
61461 }
61462 self
61463 }
61464}
61465impl<'a> core::ops::Deref for ImageFormatConstraintsInfoFUCHSIABuilder<'a> {
61466 type Target = ImageFormatConstraintsInfoFUCHSIA;
61467 #[inline]
61468 fn deref(&self) -> &Self::Target {
61469 &self.inner
61470 }
61471}
61472impl<'a> core::ops::DerefMut for ImageFormatConstraintsInfoFUCHSIABuilder<'a> {
61473 #[inline]
61474 fn deref_mut(&mut self) -> &mut Self::Target {
61475 &mut self.inner
61476 }
61477}
61478pub struct ImageConstraintsInfoFUCHSIABuilder<'a> {
61480 inner: ImageConstraintsInfoFUCHSIA,
61481 _marker: core::marker::PhantomData<&'a ()>,
61482}
61483impl ImageConstraintsInfoFUCHSIA {
61484 #[inline]
61486 pub fn builder<'a>() -> ImageConstraintsInfoFUCHSIABuilder<'a> {
61487 ImageConstraintsInfoFUCHSIABuilder {
61488 inner: ImageConstraintsInfoFUCHSIA {
61489 s_type: StructureType::from_raw(1000366006i32),
61490 ..Default::default()
61491 },
61492 _marker: core::marker::PhantomData,
61493 }
61494 }
61495}
61496impl<'a> ImageConstraintsInfoFUCHSIABuilder<'a> {
61497 #[inline]
61498 pub fn format_constraints(
61499 mut self,
61500 slice: &'a [ImageFormatConstraintsInfoFUCHSIA],
61501 ) -> Self {
61502 self.inner.format_constraints_count = slice.len() as u32;
61503 self.inner.p_format_constraints = slice.as_ptr();
61504 self
61505 }
61506 #[inline]
61507 pub fn buffer_collection_constraints(
61508 mut self,
61509 value: BufferCollectionConstraintsInfoFUCHSIA,
61510 ) -> Self {
61511 self.inner.buffer_collection_constraints = value;
61512 self
61513 }
61514 #[inline]
61515 pub fn flags(mut self, value: ImageConstraintsInfoFlagsFUCHSIA) -> Self {
61516 self.inner.flags = value;
61517 self
61518 }
61519 #[inline]
61521 pub fn push_next<T: ExtendsImageConstraintsInfoFUCHSIA>(
61522 mut self,
61523 next: &'a mut T,
61524 ) -> Self {
61525 unsafe {
61526 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61527 (*next_ptr).p_next = self.inner.p_next as *mut _;
61528 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61529 core::ffi::c_void,
61530 >(next_ptr) as *const _;
61531 }
61532 self
61533 }
61534}
61535impl<'a> core::ops::Deref for ImageConstraintsInfoFUCHSIABuilder<'a> {
61536 type Target = ImageConstraintsInfoFUCHSIA;
61537 #[inline]
61538 fn deref(&self) -> &Self::Target {
61539 &self.inner
61540 }
61541}
61542impl<'a> core::ops::DerefMut for ImageConstraintsInfoFUCHSIABuilder<'a> {
61543 #[inline]
61544 fn deref_mut(&mut self) -> &mut Self::Target {
61545 &mut self.inner
61546 }
61547}
61548pub struct BufferCollectionConstraintsInfoFUCHSIABuilder<'a> {
61550 inner: BufferCollectionConstraintsInfoFUCHSIA,
61551 _marker: core::marker::PhantomData<&'a ()>,
61552}
61553impl BufferCollectionConstraintsInfoFUCHSIA {
61554 #[inline]
61556 pub fn builder<'a>() -> BufferCollectionConstraintsInfoFUCHSIABuilder<'a> {
61557 BufferCollectionConstraintsInfoFUCHSIABuilder {
61558 inner: BufferCollectionConstraintsInfoFUCHSIA {
61559 s_type: StructureType::from_raw(1000366009i32),
61560 ..Default::default()
61561 },
61562 _marker: core::marker::PhantomData,
61563 }
61564 }
61565}
61566impl<'a> BufferCollectionConstraintsInfoFUCHSIABuilder<'a> {
61567 #[inline]
61568 pub fn min_buffer_count(mut self, value: u32) -> Self {
61569 self.inner.min_buffer_count = value;
61570 self
61571 }
61572 #[inline]
61573 pub fn max_buffer_count(mut self, value: u32) -> Self {
61574 self.inner.max_buffer_count = value;
61575 self
61576 }
61577 #[inline]
61578 pub fn min_buffer_count_for_camping(mut self, value: u32) -> Self {
61579 self.inner.min_buffer_count_for_camping = value;
61580 self
61581 }
61582 #[inline]
61583 pub fn min_buffer_count_for_dedicated_slack(mut self, value: u32) -> Self {
61584 self.inner.min_buffer_count_for_dedicated_slack = value;
61585 self
61586 }
61587 #[inline]
61588 pub fn min_buffer_count_for_shared_slack(mut self, value: u32) -> Self {
61589 self.inner.min_buffer_count_for_shared_slack = value;
61590 self
61591 }
61592 #[inline]
61594 pub fn push_next<T: ExtendsBufferCollectionConstraintsInfoFUCHSIA>(
61595 mut self,
61596 next: &'a mut T,
61597 ) -> Self {
61598 unsafe {
61599 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61600 (*next_ptr).p_next = self.inner.p_next as *mut _;
61601 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61602 core::ffi::c_void,
61603 >(next_ptr) as *const _;
61604 }
61605 self
61606 }
61607}
61608impl<'a> core::ops::Deref for BufferCollectionConstraintsInfoFUCHSIABuilder<'a> {
61609 type Target = BufferCollectionConstraintsInfoFUCHSIA;
61610 #[inline]
61611 fn deref(&self) -> &Self::Target {
61612 &self.inner
61613 }
61614}
61615impl<'a> core::ops::DerefMut for BufferCollectionConstraintsInfoFUCHSIABuilder<'a> {
61616 #[inline]
61617 fn deref_mut(&mut self) -> &mut Self::Target {
61618 &mut self.inner
61619 }
61620}
61621pub struct CudaModuleCreateInfoNVBuilder<'a> {
61623 inner: CudaModuleCreateInfoNV,
61624 _marker: core::marker::PhantomData<&'a ()>,
61625}
61626impl CudaModuleCreateInfoNV {
61627 #[inline]
61629 pub fn builder<'a>() -> CudaModuleCreateInfoNVBuilder<'a> {
61630 CudaModuleCreateInfoNVBuilder {
61631 inner: CudaModuleCreateInfoNV {
61632 s_type: StructureType::from_raw(1000307000i32),
61633 ..Default::default()
61634 },
61635 _marker: core::marker::PhantomData,
61636 }
61637 }
61638}
61639impl<'a> CudaModuleCreateInfoNVBuilder<'a> {
61640 #[inline]
61641 pub fn data(mut self, slice: &'a [core::ffi::c_void]) -> Self {
61642 self.inner.data_size = slice.len();
61643 self.inner.p_data = slice.as_ptr();
61644 self
61645 }
61646 #[inline]
61648 pub fn push_next<T: ExtendsCudaModuleCreateInfoNV>(
61649 mut self,
61650 next: &'a mut T,
61651 ) -> Self {
61652 unsafe {
61653 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61654 (*next_ptr).p_next = self.inner.p_next as *mut _;
61655 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61656 core::ffi::c_void,
61657 >(next_ptr) as *const _;
61658 }
61659 self
61660 }
61661}
61662impl<'a> core::ops::Deref for CudaModuleCreateInfoNVBuilder<'a> {
61663 type Target = CudaModuleCreateInfoNV;
61664 #[inline]
61665 fn deref(&self) -> &Self::Target {
61666 &self.inner
61667 }
61668}
61669impl<'a> core::ops::DerefMut for CudaModuleCreateInfoNVBuilder<'a> {
61670 #[inline]
61671 fn deref_mut(&mut self) -> &mut Self::Target {
61672 &mut self.inner
61673 }
61674}
61675pub struct CudaFunctionCreateInfoNVBuilder<'a> {
61677 inner: CudaFunctionCreateInfoNV,
61678 _marker: core::marker::PhantomData<&'a ()>,
61679}
61680impl CudaFunctionCreateInfoNV {
61681 #[inline]
61683 pub fn builder<'a>() -> CudaFunctionCreateInfoNVBuilder<'a> {
61684 CudaFunctionCreateInfoNVBuilder {
61685 inner: CudaFunctionCreateInfoNV {
61686 s_type: StructureType::from_raw(1000307001i32),
61687 ..Default::default()
61688 },
61689 _marker: core::marker::PhantomData,
61690 }
61691 }
61692}
61693impl<'a> CudaFunctionCreateInfoNVBuilder<'a> {
61694 #[inline]
61695 pub fn module(mut self, value: CudaModuleNV) -> Self {
61696 self.inner.module = value;
61697 self
61698 }
61699 #[inline]
61700 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
61701 self.inner.p_name = value.as_ptr();
61702 self
61703 }
61704 #[inline]
61706 pub fn push_next<T: ExtendsCudaFunctionCreateInfoNV>(
61707 mut self,
61708 next: &'a mut T,
61709 ) -> Self {
61710 unsafe {
61711 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61712 (*next_ptr).p_next = self.inner.p_next as *mut _;
61713 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61714 core::ffi::c_void,
61715 >(next_ptr) as *const _;
61716 }
61717 self
61718 }
61719}
61720impl<'a> core::ops::Deref for CudaFunctionCreateInfoNVBuilder<'a> {
61721 type Target = CudaFunctionCreateInfoNV;
61722 #[inline]
61723 fn deref(&self) -> &Self::Target {
61724 &self.inner
61725 }
61726}
61727impl<'a> core::ops::DerefMut for CudaFunctionCreateInfoNVBuilder<'a> {
61728 #[inline]
61729 fn deref_mut(&mut self) -> &mut Self::Target {
61730 &mut self.inner
61731 }
61732}
61733pub struct CudaLaunchInfoNVBuilder<'a> {
61735 inner: CudaLaunchInfoNV,
61736 _marker: core::marker::PhantomData<&'a ()>,
61737}
61738impl CudaLaunchInfoNV {
61739 #[inline]
61741 pub fn builder<'a>() -> CudaLaunchInfoNVBuilder<'a> {
61742 CudaLaunchInfoNVBuilder {
61743 inner: CudaLaunchInfoNV {
61744 s_type: StructureType::from_raw(1000307002i32),
61745 ..Default::default()
61746 },
61747 _marker: core::marker::PhantomData,
61748 }
61749 }
61750}
61751impl<'a> CudaLaunchInfoNVBuilder<'a> {
61752 #[inline]
61753 pub fn function(mut self, value: CudaFunctionNV) -> Self {
61754 self.inner.function = value;
61755 self
61756 }
61757 #[inline]
61758 pub fn grid_dim_x(mut self, value: u32) -> Self {
61759 self.inner.grid_dim_x = value;
61760 self
61761 }
61762 #[inline]
61763 pub fn grid_dim_y(mut self, value: u32) -> Self {
61764 self.inner.grid_dim_y = value;
61765 self
61766 }
61767 #[inline]
61768 pub fn grid_dim_z(mut self, value: u32) -> Self {
61769 self.inner.grid_dim_z = value;
61770 self
61771 }
61772 #[inline]
61773 pub fn block_dim_x(mut self, value: u32) -> Self {
61774 self.inner.block_dim_x = value;
61775 self
61776 }
61777 #[inline]
61778 pub fn block_dim_y(mut self, value: u32) -> Self {
61779 self.inner.block_dim_y = value;
61780 self
61781 }
61782 #[inline]
61783 pub fn block_dim_z(mut self, value: u32) -> Self {
61784 self.inner.block_dim_z = value;
61785 self
61786 }
61787 #[inline]
61788 pub fn shared_mem_bytes(mut self, value: u32) -> Self {
61789 self.inner.shared_mem_bytes = value;
61790 self
61791 }
61792 #[inline]
61793 pub fn param_count(mut self, value: usize) -> Self {
61794 self.inner.param_count = value;
61795 self
61796 }
61797 #[inline]
61798 pub fn params(mut self, value: *const *const core::ffi::c_void) -> Self {
61799 self.inner.p_params = value;
61800 self
61801 }
61802 #[inline]
61803 pub fn extra_count(mut self, value: usize) -> Self {
61804 self.inner.extra_count = value;
61805 self
61806 }
61807 #[inline]
61808 pub fn extras(mut self, value: *const *const core::ffi::c_void) -> Self {
61809 self.inner.p_extras = value;
61810 self
61811 }
61812 #[inline]
61814 pub fn push_next<T: ExtendsCudaLaunchInfoNV>(mut self, next: &'a mut T) -> Self {
61815 unsafe {
61816 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61817 (*next_ptr).p_next = self.inner.p_next as *mut _;
61818 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61819 core::ffi::c_void,
61820 >(next_ptr) as *const _;
61821 }
61822 self
61823 }
61824}
61825impl<'a> core::ops::Deref for CudaLaunchInfoNVBuilder<'a> {
61826 type Target = CudaLaunchInfoNV;
61827 #[inline]
61828 fn deref(&self) -> &Self::Target {
61829 &self.inner
61830 }
61831}
61832impl<'a> core::ops::DerefMut for CudaLaunchInfoNVBuilder<'a> {
61833 #[inline]
61834 fn deref_mut(&mut self) -> &mut Self::Target {
61835 &mut self.inner
61836 }
61837}
61838pub struct PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder<'a> {
61840 inner: PhysicalDeviceRGBA10X6FormatsFeaturesEXT,
61841 _marker: core::marker::PhantomData<&'a ()>,
61842}
61843impl PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
61844 #[inline]
61846 pub fn builder<'a>() -> PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder<'a> {
61847 PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder {
61848 inner: PhysicalDeviceRGBA10X6FormatsFeaturesEXT {
61849 s_type: StructureType::from_raw(1000344000i32),
61850 ..Default::default()
61851 },
61852 _marker: core::marker::PhantomData,
61853 }
61854 }
61855}
61856impl<'a> PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder<'a> {
61857 #[inline]
61858 pub fn format_rgba10x6_without_y_cb_cr_sampler(mut self, value: bool) -> Self {
61859 self.inner.format_rgba10x6_without_y_cb_cr_sampler = value as u32;
61860 self
61861 }
61862 #[inline]
61864 pub fn push_next<T: ExtendsPhysicalDeviceRGBA10X6FormatsFeaturesEXT>(
61865 mut self,
61866 next: &'a mut T,
61867 ) -> Self {
61868 unsafe {
61869 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
61870 (*next_ptr).p_next = self.inner.p_next as *mut _;
61871 self.inner.p_next = <*mut BaseOutStructure>::cast::<
61872 core::ffi::c_void,
61873 >(next_ptr);
61874 }
61875 self
61876 }
61877}
61878impl<'a> core::ops::Deref for PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder<'a> {
61879 type Target = PhysicalDeviceRGBA10X6FormatsFeaturesEXT;
61880 #[inline]
61881 fn deref(&self) -> &Self::Target {
61882 &self.inner
61883 }
61884}
61885impl<'a> core::ops::DerefMut for PhysicalDeviceRGBA10X6FormatsFeaturesEXTBuilder<'a> {
61886 #[inline]
61887 fn deref_mut(&mut self) -> &mut Self::Target {
61888 &mut self.inner
61889 }
61890}
61891pub struct FormatProperties3Builder<'a> {
61893 inner: FormatProperties3,
61894 _marker: core::marker::PhantomData<&'a ()>,
61895}
61896impl FormatProperties3 {
61897 #[inline]
61899 pub fn builder<'a>() -> FormatProperties3Builder<'a> {
61900 FormatProperties3Builder {
61901 inner: FormatProperties3 {
61902 s_type: StructureType::from_raw(1000360000i32),
61903 ..Default::default()
61904 },
61905 _marker: core::marker::PhantomData,
61906 }
61907 }
61908}
61909impl<'a> FormatProperties3Builder<'a> {
61910 #[inline]
61911 pub fn linear_tiling_features(mut self, value: FormatFeatureFlags2) -> Self {
61912 self.inner.linear_tiling_features = value;
61913 self
61914 }
61915 #[inline]
61916 pub fn optimal_tiling_features(mut self, value: FormatFeatureFlags2) -> Self {
61917 self.inner.optimal_tiling_features = value;
61918 self
61919 }
61920 #[inline]
61921 pub fn buffer_features(mut self, value: FormatFeatureFlags2) -> Self {
61922 self.inner.buffer_features = value;
61923 self
61924 }
61925}
61926impl<'a> core::ops::Deref for FormatProperties3Builder<'a> {
61927 type Target = FormatProperties3;
61928 #[inline]
61929 fn deref(&self) -> &Self::Target {
61930 &self.inner
61931 }
61932}
61933impl<'a> core::ops::DerefMut for FormatProperties3Builder<'a> {
61934 #[inline]
61935 fn deref_mut(&mut self) -> &mut Self::Target {
61936 &mut self.inner
61937 }
61938}
61939pub struct DrmFormatModifierPropertiesList2EXTBuilder<'a> {
61941 inner: DrmFormatModifierPropertiesList2EXT,
61942 _marker: core::marker::PhantomData<&'a ()>,
61943}
61944impl DrmFormatModifierPropertiesList2EXT {
61945 #[inline]
61947 pub fn builder<'a>() -> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
61948 DrmFormatModifierPropertiesList2EXTBuilder {
61949 inner: DrmFormatModifierPropertiesList2EXT {
61950 s_type: StructureType::from_raw(1000158006i32),
61951 ..Default::default()
61952 },
61953 _marker: core::marker::PhantomData,
61954 }
61955 }
61956}
61957impl<'a> DrmFormatModifierPropertiesList2EXTBuilder<'a> {
61958 #[inline]
61959 pub fn drm_format_modifier_count(mut self, value: u32) -> Self {
61960 self.inner.drm_format_modifier_count = value;
61961 self
61962 }
61963 #[inline]
61964 pub fn drm_format_modifier_properties(
61965 mut self,
61966 slice: &'a mut [DrmFormatModifierProperties2EXT],
61967 ) -> Self {
61968 self.inner.drm_format_modifier_count = slice.len() as u32;
61969 self.inner.p_drm_format_modifier_properties = slice.as_mut_ptr();
61970 self
61971 }
61972}
61973impl<'a> core::ops::Deref for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
61974 type Target = DrmFormatModifierPropertiesList2EXT;
61975 #[inline]
61976 fn deref(&self) -> &Self::Target {
61977 &self.inner
61978 }
61979}
61980impl<'a> core::ops::DerefMut for DrmFormatModifierPropertiesList2EXTBuilder<'a> {
61981 #[inline]
61982 fn deref_mut(&mut self) -> &mut Self::Target {
61983 &mut self.inner
61984 }
61985}
61986pub struct DrmFormatModifierProperties2EXTBuilder {
61988 inner: DrmFormatModifierProperties2EXT,
61989}
61990impl DrmFormatModifierProperties2EXT {
61991 #[inline]
61993 pub fn builder() -> DrmFormatModifierProperties2EXTBuilder {
61994 DrmFormatModifierProperties2EXTBuilder {
61995 inner: DrmFormatModifierProperties2EXT {
61996 ..Default::default()
61997 },
61998 }
61999 }
62000}
62001impl DrmFormatModifierProperties2EXTBuilder {
62002 #[inline]
62003 pub fn drm_format_modifier(mut self, value: u64) -> Self {
62004 self.inner.drm_format_modifier = value;
62005 self
62006 }
62007 #[inline]
62008 pub fn drm_format_modifier_plane_count(mut self, value: u32) -> Self {
62009 self.inner.drm_format_modifier_plane_count = value;
62010 self
62011 }
62012 #[inline]
62013 pub fn drm_format_modifier_tiling_features(
62014 mut self,
62015 value: FormatFeatureFlags2,
62016 ) -> Self {
62017 self.inner.drm_format_modifier_tiling_features = value;
62018 self
62019 }
62020}
62021impl core::ops::Deref for DrmFormatModifierProperties2EXTBuilder {
62022 type Target = DrmFormatModifierProperties2EXT;
62023 #[inline]
62024 fn deref(&self) -> &Self::Target {
62025 &self.inner
62026 }
62027}
62028impl core::ops::DerefMut for DrmFormatModifierProperties2EXTBuilder {
62029 #[inline]
62030 fn deref_mut(&mut self) -> &mut Self::Target {
62031 &mut self.inner
62032 }
62033}
62034pub struct AndroidHardwareBufferFormatProperties2ANDROIDBuilder<'a> {
62036 inner: AndroidHardwareBufferFormatProperties2ANDROID,
62037 _marker: core::marker::PhantomData<&'a ()>,
62038}
62039impl AndroidHardwareBufferFormatProperties2ANDROID {
62040 #[inline]
62042 pub fn builder<'a>() -> AndroidHardwareBufferFormatProperties2ANDROIDBuilder<'a> {
62043 AndroidHardwareBufferFormatProperties2ANDROIDBuilder {
62044 inner: AndroidHardwareBufferFormatProperties2ANDROID {
62045 s_type: StructureType::from_raw(1000129006i32),
62046 ..Default::default()
62047 },
62048 _marker: core::marker::PhantomData,
62049 }
62050 }
62051}
62052impl<'a> AndroidHardwareBufferFormatProperties2ANDROIDBuilder<'a> {
62053 #[inline]
62054 pub fn format(mut self, value: Format) -> Self {
62055 self.inner.format = value;
62056 self
62057 }
62058 #[inline]
62059 pub fn external_format(mut self, value: u64) -> Self {
62060 self.inner.external_format = value;
62061 self
62062 }
62063 #[inline]
62064 pub fn format_features(mut self, value: FormatFeatureFlags2) -> Self {
62065 self.inner.format_features = value;
62066 self
62067 }
62068 #[inline]
62069 pub fn sampler_ycbcr_conversion_components(
62070 mut self,
62071 value: ComponentMapping,
62072 ) -> Self {
62073 self.inner.sampler_ycbcr_conversion_components = value;
62074 self
62075 }
62076 #[inline]
62077 pub fn suggested_ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
62078 self.inner.suggested_ycbcr_model = value;
62079 self
62080 }
62081 #[inline]
62082 pub fn suggested_ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
62083 self.inner.suggested_ycbcr_range = value;
62084 self
62085 }
62086 #[inline]
62087 pub fn suggested_x_chroma_offset(mut self, value: ChromaLocation) -> Self {
62088 self.inner.suggested_x_chroma_offset = value;
62089 self
62090 }
62091 #[inline]
62092 pub fn suggested_y_chroma_offset(mut self, value: ChromaLocation) -> Self {
62093 self.inner.suggested_y_chroma_offset = value;
62094 self
62095 }
62096}
62097impl<'a> core::ops::Deref for AndroidHardwareBufferFormatProperties2ANDROIDBuilder<'a> {
62098 type Target = AndroidHardwareBufferFormatProperties2ANDROID;
62099 #[inline]
62100 fn deref(&self) -> &Self::Target {
62101 &self.inner
62102 }
62103}
62104impl<'a> core::ops::DerefMut
62105for AndroidHardwareBufferFormatProperties2ANDROIDBuilder<'a> {
62106 #[inline]
62107 fn deref_mut(&mut self) -> &mut Self::Target {
62108 &mut self.inner
62109 }
62110}
62111pub struct PipelineRenderingCreateInfoBuilder<'a> {
62113 inner: PipelineRenderingCreateInfo,
62114 _marker: core::marker::PhantomData<&'a ()>,
62115}
62116impl PipelineRenderingCreateInfo {
62117 #[inline]
62119 pub fn builder<'a>() -> PipelineRenderingCreateInfoBuilder<'a> {
62120 PipelineRenderingCreateInfoBuilder {
62121 inner: PipelineRenderingCreateInfo {
62122 s_type: StructureType::from_raw(1000044002i32),
62123 ..Default::default()
62124 },
62125 _marker: core::marker::PhantomData,
62126 }
62127 }
62128}
62129impl<'a> PipelineRenderingCreateInfoBuilder<'a> {
62130 #[inline]
62131 pub fn view_mask(mut self, value: u32) -> Self {
62132 self.inner.view_mask = value;
62133 self
62134 }
62135 #[inline]
62136 pub fn color_attachment_formats(mut self, slice: &'a [Format]) -> Self {
62137 self.inner.color_attachment_count = slice.len() as u32;
62138 self.inner.p_color_attachment_formats = slice.as_ptr();
62139 self
62140 }
62141 #[inline]
62142 pub fn depth_attachment_format(mut self, value: Format) -> Self {
62143 self.inner.depth_attachment_format = value;
62144 self
62145 }
62146 #[inline]
62147 pub fn stencil_attachment_format(mut self, value: Format) -> Self {
62148 self.inner.stencil_attachment_format = value;
62149 self
62150 }
62151 #[inline]
62153 pub fn push_next<T: ExtendsPipelineRenderingCreateInfo>(
62154 mut self,
62155 next: &'a mut T,
62156 ) -> Self {
62157 unsafe {
62158 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62159 (*next_ptr).p_next = self.inner.p_next as *mut _;
62160 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62161 core::ffi::c_void,
62162 >(next_ptr) as *const _;
62163 }
62164 self
62165 }
62166}
62167impl<'a> core::ops::Deref for PipelineRenderingCreateInfoBuilder<'a> {
62168 type Target = PipelineRenderingCreateInfo;
62169 #[inline]
62170 fn deref(&self) -> &Self::Target {
62171 &self.inner
62172 }
62173}
62174impl<'a> core::ops::DerefMut for PipelineRenderingCreateInfoBuilder<'a> {
62175 #[inline]
62176 fn deref_mut(&mut self) -> &mut Self::Target {
62177 &mut self.inner
62178 }
62179}
62180pub struct RenderingInfoBuilder<'a> {
62182 inner: RenderingInfo,
62183 _marker: core::marker::PhantomData<&'a ()>,
62184}
62185impl RenderingInfo {
62186 #[inline]
62188 pub fn builder<'a>() -> RenderingInfoBuilder<'a> {
62189 RenderingInfoBuilder {
62190 inner: RenderingInfo {
62191 s_type: StructureType::from_raw(1000044000i32),
62192 ..Default::default()
62193 },
62194 _marker: core::marker::PhantomData,
62195 }
62196 }
62197}
62198impl<'a> RenderingInfoBuilder<'a> {
62199 #[inline]
62200 pub fn flags(mut self, value: RenderingFlags) -> Self {
62201 self.inner.flags = value;
62202 self
62203 }
62204 #[inline]
62205 pub fn render_area(mut self, value: Rect2D) -> Self {
62206 self.inner.render_area = value;
62207 self
62208 }
62209 #[inline]
62210 pub fn layer_count(mut self, value: u32) -> Self {
62211 self.inner.layer_count = value;
62212 self
62213 }
62214 #[inline]
62215 pub fn view_mask(mut self, value: u32) -> Self {
62216 self.inner.view_mask = value;
62217 self
62218 }
62219 #[inline]
62220 pub fn color_attachments(mut self, slice: &'a [RenderingAttachmentInfo]) -> Self {
62221 self.inner.color_attachment_count = slice.len() as u32;
62222 self.inner.p_color_attachments = slice.as_ptr();
62223 self
62224 }
62225 #[inline]
62226 pub fn depth_attachment(mut self, value: &'a RenderingAttachmentInfo) -> Self {
62227 self.inner.p_depth_attachment = value;
62228 self
62229 }
62230 #[inline]
62231 pub fn stencil_attachment(mut self, value: &'a RenderingAttachmentInfo) -> Self {
62232 self.inner.p_stencil_attachment = value;
62233 self
62234 }
62235 #[inline]
62237 pub fn push_next<T: ExtendsRenderingInfo>(mut self, next: &'a mut T) -> Self {
62238 unsafe {
62239 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62240 (*next_ptr).p_next = self.inner.p_next as *mut _;
62241 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62242 core::ffi::c_void,
62243 >(next_ptr) as *const _;
62244 }
62245 self
62246 }
62247}
62248impl<'a> core::ops::Deref for RenderingInfoBuilder<'a> {
62249 type Target = RenderingInfo;
62250 #[inline]
62251 fn deref(&self) -> &Self::Target {
62252 &self.inner
62253 }
62254}
62255impl<'a> core::ops::DerefMut for RenderingInfoBuilder<'a> {
62256 #[inline]
62257 fn deref_mut(&mut self) -> &mut Self::Target {
62258 &mut self.inner
62259 }
62260}
62261pub struct RenderingEndInfoKHRBuilder<'a> {
62263 inner: RenderingEndInfoKHR,
62264 _marker: core::marker::PhantomData<&'a ()>,
62265}
62266impl RenderingEndInfoKHR {
62267 #[inline]
62269 pub fn builder<'a>() -> RenderingEndInfoKHRBuilder<'a> {
62270 RenderingEndInfoKHRBuilder {
62271 inner: RenderingEndInfoKHR {
62272 s_type: StructureType::from_raw(1000619003i32),
62273 ..Default::default()
62274 },
62275 _marker: core::marker::PhantomData,
62276 }
62277 }
62278}
62279impl<'a> RenderingEndInfoKHRBuilder<'a> {
62280 #[inline]
62282 pub fn push_next<T: ExtendsRenderingEndInfoKHR>(mut self, next: &'a mut T) -> Self {
62283 unsafe {
62284 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62285 (*next_ptr).p_next = self.inner.p_next as *mut _;
62286 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62287 core::ffi::c_void,
62288 >(next_ptr) as *const _;
62289 }
62290 self
62291 }
62292}
62293impl<'a> core::ops::Deref for RenderingEndInfoKHRBuilder<'a> {
62294 type Target = RenderingEndInfoKHR;
62295 #[inline]
62296 fn deref(&self) -> &Self::Target {
62297 &self.inner
62298 }
62299}
62300impl<'a> core::ops::DerefMut for RenderingEndInfoKHRBuilder<'a> {
62301 #[inline]
62302 fn deref_mut(&mut self) -> &mut Self::Target {
62303 &mut self.inner
62304 }
62305}
62306pub struct RenderingAttachmentInfoBuilder<'a> {
62308 inner: RenderingAttachmentInfo,
62309 _marker: core::marker::PhantomData<&'a ()>,
62310}
62311impl RenderingAttachmentInfo {
62312 #[inline]
62314 pub fn builder<'a>() -> RenderingAttachmentInfoBuilder<'a> {
62315 RenderingAttachmentInfoBuilder {
62316 inner: RenderingAttachmentInfo {
62317 s_type: StructureType::from_raw(1000044001i32),
62318 ..Default::default()
62319 },
62320 _marker: core::marker::PhantomData,
62321 }
62322 }
62323}
62324impl<'a> RenderingAttachmentInfoBuilder<'a> {
62325 #[inline]
62326 pub fn image_view(mut self, value: ImageView) -> Self {
62327 self.inner.image_view = value;
62328 self
62329 }
62330 #[inline]
62331 pub fn image_layout(mut self, value: ImageLayout) -> Self {
62332 self.inner.image_layout = value;
62333 self
62334 }
62335 #[inline]
62336 pub fn resolve_mode(mut self, value: ResolveModeFlagBits) -> Self {
62337 self.inner.resolve_mode = value;
62338 self
62339 }
62340 #[inline]
62341 pub fn resolve_image_view(mut self, value: ImageView) -> Self {
62342 self.inner.resolve_image_view = value;
62343 self
62344 }
62345 #[inline]
62346 pub fn resolve_image_layout(mut self, value: ImageLayout) -> Self {
62347 self.inner.resolve_image_layout = value;
62348 self
62349 }
62350 #[inline]
62351 pub fn load_op(mut self, value: AttachmentLoadOp) -> Self {
62352 self.inner.load_op = value;
62353 self
62354 }
62355 #[inline]
62356 pub fn store_op(mut self, value: AttachmentStoreOp) -> Self {
62357 self.inner.store_op = value;
62358 self
62359 }
62360 #[inline]
62361 pub fn clear_value(mut self, value: ClearValue) -> Self {
62362 self.inner.clear_value = value;
62363 self
62364 }
62365 #[inline]
62367 pub fn push_next<T: ExtendsRenderingAttachmentInfo>(
62368 mut self,
62369 next: &'a mut T,
62370 ) -> Self {
62371 unsafe {
62372 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62373 (*next_ptr).p_next = self.inner.p_next as *mut _;
62374 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62375 core::ffi::c_void,
62376 >(next_ptr) as *const _;
62377 }
62378 self
62379 }
62380}
62381impl<'a> core::ops::Deref for RenderingAttachmentInfoBuilder<'a> {
62382 type Target = RenderingAttachmentInfo;
62383 #[inline]
62384 fn deref(&self) -> &Self::Target {
62385 &self.inner
62386 }
62387}
62388impl<'a> core::ops::DerefMut for RenderingAttachmentInfoBuilder<'a> {
62389 #[inline]
62390 fn deref_mut(&mut self) -> &mut Self::Target {
62391 &mut self.inner
62392 }
62393}
62394pub struct RenderingFragmentShadingRateAttachmentInfoKHRBuilder<'a> {
62396 inner: RenderingFragmentShadingRateAttachmentInfoKHR,
62397 _marker: core::marker::PhantomData<&'a ()>,
62398}
62399impl RenderingFragmentShadingRateAttachmentInfoKHR {
62400 #[inline]
62402 pub fn builder<'a>() -> RenderingFragmentShadingRateAttachmentInfoKHRBuilder<'a> {
62403 RenderingFragmentShadingRateAttachmentInfoKHRBuilder {
62404 inner: RenderingFragmentShadingRateAttachmentInfoKHR {
62405 s_type: StructureType::from_raw(1000044006i32),
62406 ..Default::default()
62407 },
62408 _marker: core::marker::PhantomData,
62409 }
62410 }
62411}
62412impl<'a> RenderingFragmentShadingRateAttachmentInfoKHRBuilder<'a> {
62413 #[inline]
62414 pub fn image_view(mut self, value: ImageView) -> Self {
62415 self.inner.image_view = value;
62416 self
62417 }
62418 #[inline]
62419 pub fn image_layout(mut self, value: ImageLayout) -> Self {
62420 self.inner.image_layout = value;
62421 self
62422 }
62423 #[inline]
62424 pub fn shading_rate_attachment_texel_size(mut self, value: Extent2D) -> Self {
62425 self.inner.shading_rate_attachment_texel_size = value;
62426 self
62427 }
62428 #[inline]
62430 pub fn push_next<T: ExtendsRenderingFragmentShadingRateAttachmentInfoKHR>(
62431 mut self,
62432 next: &'a mut T,
62433 ) -> Self {
62434 unsafe {
62435 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62436 (*next_ptr).p_next = self.inner.p_next as *mut _;
62437 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62438 core::ffi::c_void,
62439 >(next_ptr) as *const _;
62440 }
62441 self
62442 }
62443}
62444impl<'a> core::ops::Deref for RenderingFragmentShadingRateAttachmentInfoKHRBuilder<'a> {
62445 type Target = RenderingFragmentShadingRateAttachmentInfoKHR;
62446 #[inline]
62447 fn deref(&self) -> &Self::Target {
62448 &self.inner
62449 }
62450}
62451impl<'a> core::ops::DerefMut
62452for RenderingFragmentShadingRateAttachmentInfoKHRBuilder<'a> {
62453 #[inline]
62454 fn deref_mut(&mut self) -> &mut Self::Target {
62455 &mut self.inner
62456 }
62457}
62458pub struct RenderingFragmentDensityMapAttachmentInfoEXTBuilder<'a> {
62460 inner: RenderingFragmentDensityMapAttachmentInfoEXT,
62461 _marker: core::marker::PhantomData<&'a ()>,
62462}
62463impl RenderingFragmentDensityMapAttachmentInfoEXT {
62464 #[inline]
62466 pub fn builder<'a>() -> RenderingFragmentDensityMapAttachmentInfoEXTBuilder<'a> {
62467 RenderingFragmentDensityMapAttachmentInfoEXTBuilder {
62468 inner: RenderingFragmentDensityMapAttachmentInfoEXT {
62469 s_type: StructureType::from_raw(1000044007i32),
62470 ..Default::default()
62471 },
62472 _marker: core::marker::PhantomData,
62473 }
62474 }
62475}
62476impl<'a> RenderingFragmentDensityMapAttachmentInfoEXTBuilder<'a> {
62477 #[inline]
62478 pub fn image_view(mut self, value: ImageView) -> Self {
62479 self.inner.image_view = value;
62480 self
62481 }
62482 #[inline]
62483 pub fn image_layout(mut self, value: ImageLayout) -> Self {
62484 self.inner.image_layout = value;
62485 self
62486 }
62487 #[inline]
62489 pub fn push_next<T: ExtendsRenderingFragmentDensityMapAttachmentInfoEXT>(
62490 mut self,
62491 next: &'a mut T,
62492 ) -> Self {
62493 unsafe {
62494 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62495 (*next_ptr).p_next = self.inner.p_next as *mut _;
62496 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62497 core::ffi::c_void,
62498 >(next_ptr) as *const _;
62499 }
62500 self
62501 }
62502}
62503impl<'a> core::ops::Deref for RenderingFragmentDensityMapAttachmentInfoEXTBuilder<'a> {
62504 type Target = RenderingFragmentDensityMapAttachmentInfoEXT;
62505 #[inline]
62506 fn deref(&self) -> &Self::Target {
62507 &self.inner
62508 }
62509}
62510impl<'a> core::ops::DerefMut
62511for RenderingFragmentDensityMapAttachmentInfoEXTBuilder<'a> {
62512 #[inline]
62513 fn deref_mut(&mut self) -> &mut Self::Target {
62514 &mut self.inner
62515 }
62516}
62517pub struct PhysicalDeviceDynamicRenderingFeaturesBuilder<'a> {
62519 inner: PhysicalDeviceDynamicRenderingFeatures,
62520 _marker: core::marker::PhantomData<&'a ()>,
62521}
62522impl PhysicalDeviceDynamicRenderingFeatures {
62523 #[inline]
62525 pub fn builder<'a>() -> PhysicalDeviceDynamicRenderingFeaturesBuilder<'a> {
62526 PhysicalDeviceDynamicRenderingFeaturesBuilder {
62527 inner: PhysicalDeviceDynamicRenderingFeatures {
62528 s_type: StructureType::from_raw(1000044003i32),
62529 ..Default::default()
62530 },
62531 _marker: core::marker::PhantomData,
62532 }
62533 }
62534}
62535impl<'a> PhysicalDeviceDynamicRenderingFeaturesBuilder<'a> {
62536 #[inline]
62537 pub fn dynamic_rendering(mut self, value: bool) -> Self {
62538 self.inner.dynamic_rendering = value as u32;
62539 self
62540 }
62541 #[inline]
62543 pub fn push_next<T: ExtendsPhysicalDeviceDynamicRenderingFeatures>(
62544 mut self,
62545 next: &'a mut T,
62546 ) -> Self {
62547 unsafe {
62548 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62549 (*next_ptr).p_next = self.inner.p_next as *mut _;
62550 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62551 core::ffi::c_void,
62552 >(next_ptr);
62553 }
62554 self
62555 }
62556}
62557impl<'a> core::ops::Deref for PhysicalDeviceDynamicRenderingFeaturesBuilder<'a> {
62558 type Target = PhysicalDeviceDynamicRenderingFeatures;
62559 #[inline]
62560 fn deref(&self) -> &Self::Target {
62561 &self.inner
62562 }
62563}
62564impl<'a> core::ops::DerefMut for PhysicalDeviceDynamicRenderingFeaturesBuilder<'a> {
62565 #[inline]
62566 fn deref_mut(&mut self) -> &mut Self::Target {
62567 &mut self.inner
62568 }
62569}
62570pub struct CommandBufferInheritanceRenderingInfoBuilder<'a> {
62572 inner: CommandBufferInheritanceRenderingInfo,
62573 _marker: core::marker::PhantomData<&'a ()>,
62574}
62575impl CommandBufferInheritanceRenderingInfo {
62576 #[inline]
62578 pub fn builder<'a>() -> CommandBufferInheritanceRenderingInfoBuilder<'a> {
62579 CommandBufferInheritanceRenderingInfoBuilder {
62580 inner: CommandBufferInheritanceRenderingInfo {
62581 s_type: StructureType::from_raw(1000044004i32),
62582 ..Default::default()
62583 },
62584 _marker: core::marker::PhantomData,
62585 }
62586 }
62587}
62588impl<'a> CommandBufferInheritanceRenderingInfoBuilder<'a> {
62589 #[inline]
62590 pub fn flags(mut self, value: RenderingFlags) -> Self {
62591 self.inner.flags = value;
62592 self
62593 }
62594 #[inline]
62595 pub fn view_mask(mut self, value: u32) -> Self {
62596 self.inner.view_mask = value;
62597 self
62598 }
62599 #[inline]
62600 pub fn color_attachment_formats(mut self, slice: &'a [Format]) -> Self {
62601 self.inner.color_attachment_count = slice.len() as u32;
62602 self.inner.p_color_attachment_formats = slice.as_ptr();
62603 self
62604 }
62605 #[inline]
62606 pub fn depth_attachment_format(mut self, value: Format) -> Self {
62607 self.inner.depth_attachment_format = value;
62608 self
62609 }
62610 #[inline]
62611 pub fn stencil_attachment_format(mut self, value: Format) -> Self {
62612 self.inner.stencil_attachment_format = value;
62613 self
62614 }
62615 #[inline]
62616 pub fn rasterization_samples(mut self, value: SampleCountFlagBits) -> Self {
62617 self.inner.rasterization_samples = value;
62618 self
62619 }
62620 #[inline]
62622 pub fn push_next<T: ExtendsCommandBufferInheritanceRenderingInfo>(
62623 mut self,
62624 next: &'a mut T,
62625 ) -> Self {
62626 unsafe {
62627 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62628 (*next_ptr).p_next = self.inner.p_next as *mut _;
62629 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62630 core::ffi::c_void,
62631 >(next_ptr) as *const _;
62632 }
62633 self
62634 }
62635}
62636impl<'a> core::ops::Deref for CommandBufferInheritanceRenderingInfoBuilder<'a> {
62637 type Target = CommandBufferInheritanceRenderingInfo;
62638 #[inline]
62639 fn deref(&self) -> &Self::Target {
62640 &self.inner
62641 }
62642}
62643impl<'a> core::ops::DerefMut for CommandBufferInheritanceRenderingInfoBuilder<'a> {
62644 #[inline]
62645 fn deref_mut(&mut self) -> &mut Self::Target {
62646 &mut self.inner
62647 }
62648}
62649pub struct AttachmentSampleCountInfoAMDBuilder<'a> {
62651 inner: AttachmentSampleCountInfoAMD,
62652 _marker: core::marker::PhantomData<&'a ()>,
62653}
62654impl AttachmentSampleCountInfoAMD {
62655 #[inline]
62657 pub fn builder<'a>() -> AttachmentSampleCountInfoAMDBuilder<'a> {
62658 AttachmentSampleCountInfoAMDBuilder {
62659 inner: AttachmentSampleCountInfoAMD {
62660 s_type: StructureType::from_raw(1000044008i32),
62661 ..Default::default()
62662 },
62663 _marker: core::marker::PhantomData,
62664 }
62665 }
62666}
62667impl<'a> AttachmentSampleCountInfoAMDBuilder<'a> {
62668 #[inline]
62669 pub fn color_attachment_samples(mut self, slice: &'a [SampleCountFlagBits]) -> Self {
62670 self.inner.color_attachment_count = slice.len() as u32;
62671 self.inner.p_color_attachment_samples = slice.as_ptr();
62672 self
62673 }
62674 #[inline]
62675 pub fn depth_stencil_attachment_samples(
62676 mut self,
62677 value: SampleCountFlagBits,
62678 ) -> Self {
62679 self.inner.depth_stencil_attachment_samples = value;
62680 self
62681 }
62682 #[inline]
62684 pub fn push_next<T: ExtendsAttachmentSampleCountInfoAMD>(
62685 mut self,
62686 next: &'a mut T,
62687 ) -> Self {
62688 unsafe {
62689 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62690 (*next_ptr).p_next = self.inner.p_next as *mut _;
62691 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62692 core::ffi::c_void,
62693 >(next_ptr) as *const _;
62694 }
62695 self
62696 }
62697}
62698impl<'a> core::ops::Deref for AttachmentSampleCountInfoAMDBuilder<'a> {
62699 type Target = AttachmentSampleCountInfoAMD;
62700 #[inline]
62701 fn deref(&self) -> &Self::Target {
62702 &self.inner
62703 }
62704}
62705impl<'a> core::ops::DerefMut for AttachmentSampleCountInfoAMDBuilder<'a> {
62706 #[inline]
62707 fn deref_mut(&mut self) -> &mut Self::Target {
62708 &mut self.inner
62709 }
62710}
62711pub struct MultiviewPerViewAttributesInfoNVXBuilder<'a> {
62713 inner: MultiviewPerViewAttributesInfoNVX,
62714 _marker: core::marker::PhantomData<&'a ()>,
62715}
62716impl MultiviewPerViewAttributesInfoNVX {
62717 #[inline]
62719 pub fn builder<'a>() -> MultiviewPerViewAttributesInfoNVXBuilder<'a> {
62720 MultiviewPerViewAttributesInfoNVXBuilder {
62721 inner: MultiviewPerViewAttributesInfoNVX {
62722 s_type: StructureType::from_raw(1000044009i32),
62723 ..Default::default()
62724 },
62725 _marker: core::marker::PhantomData,
62726 }
62727 }
62728}
62729impl<'a> MultiviewPerViewAttributesInfoNVXBuilder<'a> {
62730 #[inline]
62731 pub fn per_view_attributes(mut self, value: bool) -> Self {
62732 self.inner.per_view_attributes = value as u32;
62733 self
62734 }
62735 #[inline]
62736 pub fn per_view_attributes_position_x_only(mut self, value: bool) -> Self {
62737 self.inner.per_view_attributes_position_x_only = value as u32;
62738 self
62739 }
62740 #[inline]
62742 pub fn push_next<T: ExtendsMultiviewPerViewAttributesInfoNVX>(
62743 mut self,
62744 next: &'a mut T,
62745 ) -> Self {
62746 unsafe {
62747 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62748 (*next_ptr).p_next = self.inner.p_next as *mut _;
62749 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62750 core::ffi::c_void,
62751 >(next_ptr) as *const _;
62752 }
62753 self
62754 }
62755}
62756impl<'a> core::ops::Deref for MultiviewPerViewAttributesInfoNVXBuilder<'a> {
62757 type Target = MultiviewPerViewAttributesInfoNVX;
62758 #[inline]
62759 fn deref(&self) -> &Self::Target {
62760 &self.inner
62761 }
62762}
62763impl<'a> core::ops::DerefMut for MultiviewPerViewAttributesInfoNVXBuilder<'a> {
62764 #[inline]
62765 fn deref_mut(&mut self) -> &mut Self::Target {
62766 &mut self.inner
62767 }
62768}
62769pub struct PhysicalDeviceImageViewMinLodFeaturesEXTBuilder<'a> {
62771 inner: PhysicalDeviceImageViewMinLodFeaturesEXT,
62772 _marker: core::marker::PhantomData<&'a ()>,
62773}
62774impl PhysicalDeviceImageViewMinLodFeaturesEXT {
62775 #[inline]
62777 pub fn builder<'a>() -> PhysicalDeviceImageViewMinLodFeaturesEXTBuilder<'a> {
62778 PhysicalDeviceImageViewMinLodFeaturesEXTBuilder {
62779 inner: PhysicalDeviceImageViewMinLodFeaturesEXT {
62780 s_type: StructureType::from_raw(1000391000i32),
62781 ..Default::default()
62782 },
62783 _marker: core::marker::PhantomData,
62784 }
62785 }
62786}
62787impl<'a> PhysicalDeviceImageViewMinLodFeaturesEXTBuilder<'a> {
62788 #[inline]
62789 pub fn min_lod(mut self, value: bool) -> Self {
62790 self.inner.min_lod = value as u32;
62791 self
62792 }
62793 #[inline]
62795 pub fn push_next<T: ExtendsPhysicalDeviceImageViewMinLodFeaturesEXT>(
62796 mut self,
62797 next: &'a mut T,
62798 ) -> Self {
62799 unsafe {
62800 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62801 (*next_ptr).p_next = self.inner.p_next as *mut _;
62802 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62803 core::ffi::c_void,
62804 >(next_ptr);
62805 }
62806 self
62807 }
62808}
62809impl<'a> core::ops::Deref for PhysicalDeviceImageViewMinLodFeaturesEXTBuilder<'a> {
62810 type Target = PhysicalDeviceImageViewMinLodFeaturesEXT;
62811 #[inline]
62812 fn deref(&self) -> &Self::Target {
62813 &self.inner
62814 }
62815}
62816impl<'a> core::ops::DerefMut for PhysicalDeviceImageViewMinLodFeaturesEXTBuilder<'a> {
62817 #[inline]
62818 fn deref_mut(&mut self) -> &mut Self::Target {
62819 &mut self.inner
62820 }
62821}
62822pub struct ImageViewMinLodCreateInfoEXTBuilder<'a> {
62824 inner: ImageViewMinLodCreateInfoEXT,
62825 _marker: core::marker::PhantomData<&'a ()>,
62826}
62827impl ImageViewMinLodCreateInfoEXT {
62828 #[inline]
62830 pub fn builder<'a>() -> ImageViewMinLodCreateInfoEXTBuilder<'a> {
62831 ImageViewMinLodCreateInfoEXTBuilder {
62832 inner: ImageViewMinLodCreateInfoEXT {
62833 s_type: StructureType::from_raw(1000391001i32),
62834 ..Default::default()
62835 },
62836 _marker: core::marker::PhantomData,
62837 }
62838 }
62839}
62840impl<'a> ImageViewMinLodCreateInfoEXTBuilder<'a> {
62841 #[inline]
62842 pub fn min_lod(mut self, value: f32) -> Self {
62843 self.inner.min_lod = value;
62844 self
62845 }
62846 #[inline]
62848 pub fn push_next<T: ExtendsImageViewMinLodCreateInfoEXT>(
62849 mut self,
62850 next: &'a mut T,
62851 ) -> Self {
62852 unsafe {
62853 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62854 (*next_ptr).p_next = self.inner.p_next as *mut _;
62855 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62856 core::ffi::c_void,
62857 >(next_ptr) as *const _;
62858 }
62859 self
62860 }
62861}
62862impl<'a> core::ops::Deref for ImageViewMinLodCreateInfoEXTBuilder<'a> {
62863 type Target = ImageViewMinLodCreateInfoEXT;
62864 #[inline]
62865 fn deref(&self) -> &Self::Target {
62866 &self.inner
62867 }
62868}
62869impl<'a> core::ops::DerefMut for ImageViewMinLodCreateInfoEXTBuilder<'a> {
62870 #[inline]
62871 fn deref_mut(&mut self) -> &mut Self::Target {
62872 &mut self.inner
62873 }
62874}
62875pub struct PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder<'a> {
62877 inner: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT,
62878 _marker: core::marker::PhantomData<&'a ()>,
62879}
62880impl PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
62881 #[inline]
62883 pub fn builder<'a>() -> PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder<
62884 'a,
62885 > {
62886 PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder {
62887 inner: PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
62888 s_type: StructureType::from_raw(1000342000i32),
62889 ..Default::default()
62890 },
62891 _marker: core::marker::PhantomData,
62892 }
62893 }
62894}
62895impl<'a> PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder<'a> {
62896 #[inline]
62897 pub fn rasterization_order_color_attachment_access(mut self, value: bool) -> Self {
62898 self.inner.rasterization_order_color_attachment_access = value as u32;
62899 self
62900 }
62901 #[inline]
62902 pub fn rasterization_order_depth_attachment_access(mut self, value: bool) -> Self {
62903 self.inner.rasterization_order_depth_attachment_access = value as u32;
62904 self
62905 }
62906 #[inline]
62907 pub fn rasterization_order_stencil_attachment_access(mut self, value: bool) -> Self {
62908 self.inner.rasterization_order_stencil_attachment_access = value as u32;
62909 self
62910 }
62911 #[inline]
62913 pub fn push_next<
62914 T: ExtendsPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT,
62915 >(mut self, next: &'a mut T) -> Self {
62916 unsafe {
62917 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62918 (*next_ptr).p_next = self.inner.p_next as *mut _;
62919 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62920 core::ffi::c_void,
62921 >(next_ptr);
62922 }
62923 self
62924 }
62925}
62926impl<'a> core::ops::Deref
62927for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder<'a> {
62928 type Target = PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
62929 #[inline]
62930 fn deref(&self) -> &Self::Target {
62931 &self.inner
62932 }
62933}
62934impl<'a> core::ops::DerefMut
62935for PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXTBuilder<'a> {
62936 #[inline]
62937 fn deref_mut(&mut self) -> &mut Self::Target {
62938 &mut self.inner
62939 }
62940}
62941pub struct PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder<'a> {
62943 inner: PhysicalDeviceLinearColorAttachmentFeaturesNV,
62944 _marker: core::marker::PhantomData<&'a ()>,
62945}
62946impl PhysicalDeviceLinearColorAttachmentFeaturesNV {
62947 #[inline]
62949 pub fn builder<'a>() -> PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder<'a> {
62950 PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder {
62951 inner: PhysicalDeviceLinearColorAttachmentFeaturesNV {
62952 s_type: StructureType::from_raw(1000430000i32),
62953 ..Default::default()
62954 },
62955 _marker: core::marker::PhantomData,
62956 }
62957 }
62958}
62959impl<'a> PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder<'a> {
62960 #[inline]
62961 pub fn linear_color_attachment(mut self, value: bool) -> Self {
62962 self.inner.linear_color_attachment = value as u32;
62963 self
62964 }
62965 #[inline]
62967 pub fn push_next<T: ExtendsPhysicalDeviceLinearColorAttachmentFeaturesNV>(
62968 mut self,
62969 next: &'a mut T,
62970 ) -> Self {
62971 unsafe {
62972 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
62973 (*next_ptr).p_next = self.inner.p_next as *mut _;
62974 self.inner.p_next = <*mut BaseOutStructure>::cast::<
62975 core::ffi::c_void,
62976 >(next_ptr);
62977 }
62978 self
62979 }
62980}
62981impl<'a> core::ops::Deref for PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder<'a> {
62982 type Target = PhysicalDeviceLinearColorAttachmentFeaturesNV;
62983 #[inline]
62984 fn deref(&self) -> &Self::Target {
62985 &self.inner
62986 }
62987}
62988impl<'a> core::ops::DerefMut
62989for PhysicalDeviceLinearColorAttachmentFeaturesNVBuilder<'a> {
62990 #[inline]
62991 fn deref_mut(&mut self) -> &mut Self::Target {
62992 &mut self.inner
62993 }
62994}
62995pub struct PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder<'a> {
62997 inner: PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT,
62998 _marker: core::marker::PhantomData<&'a ()>,
62999}
63000impl PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
63001 #[inline]
63003 pub fn builder<'a>() -> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder<'a> {
63004 PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder {
63005 inner: PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
63006 s_type: StructureType::from_raw(1000320000i32),
63007 ..Default::default()
63008 },
63009 _marker: core::marker::PhantomData,
63010 }
63011 }
63012}
63013impl<'a> PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder<'a> {
63014 #[inline]
63015 pub fn graphics_pipeline_library(mut self, value: bool) -> Self {
63016 self.inner.graphics_pipeline_library = value as u32;
63017 self
63018 }
63019 #[inline]
63021 pub fn push_next<T: ExtendsPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>(
63022 mut self,
63023 next: &'a mut T,
63024 ) -> Self {
63025 unsafe {
63026 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63027 (*next_ptr).p_next = self.inner.p_next as *mut _;
63028 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63029 core::ffi::c_void,
63030 >(next_ptr);
63031 }
63032 self
63033 }
63034}
63035impl<'a> core::ops::Deref
63036for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder<'a> {
63037 type Target = PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
63038 #[inline]
63039 fn deref(&self) -> &Self::Target {
63040 &self.inner
63041 }
63042}
63043impl<'a> core::ops::DerefMut
63044for PhysicalDeviceGraphicsPipelineLibraryFeaturesEXTBuilder<'a> {
63045 #[inline]
63046 fn deref_mut(&mut self) -> &mut Self::Target {
63047 &mut self.inner
63048 }
63049}
63050pub struct PhysicalDevicePipelineBinaryFeaturesKHRBuilder<'a> {
63052 inner: PhysicalDevicePipelineBinaryFeaturesKHR,
63053 _marker: core::marker::PhantomData<&'a ()>,
63054}
63055impl PhysicalDevicePipelineBinaryFeaturesKHR {
63056 #[inline]
63058 pub fn builder<'a>() -> PhysicalDevicePipelineBinaryFeaturesKHRBuilder<'a> {
63059 PhysicalDevicePipelineBinaryFeaturesKHRBuilder {
63060 inner: PhysicalDevicePipelineBinaryFeaturesKHR {
63061 s_type: StructureType::from_raw(1000483000i32),
63062 ..Default::default()
63063 },
63064 _marker: core::marker::PhantomData,
63065 }
63066 }
63067}
63068impl<'a> PhysicalDevicePipelineBinaryFeaturesKHRBuilder<'a> {
63069 #[inline]
63070 pub fn pipeline_binaries(mut self, value: bool) -> Self {
63071 self.inner.pipeline_binaries = value as u32;
63072 self
63073 }
63074 #[inline]
63076 pub fn push_next<T: ExtendsPhysicalDevicePipelineBinaryFeaturesKHR>(
63077 mut self,
63078 next: &'a mut T,
63079 ) -> Self {
63080 unsafe {
63081 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63082 (*next_ptr).p_next = self.inner.p_next as *mut _;
63083 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63084 core::ffi::c_void,
63085 >(next_ptr);
63086 }
63087 self
63088 }
63089}
63090impl<'a> core::ops::Deref for PhysicalDevicePipelineBinaryFeaturesKHRBuilder<'a> {
63091 type Target = PhysicalDevicePipelineBinaryFeaturesKHR;
63092 #[inline]
63093 fn deref(&self) -> &Self::Target {
63094 &self.inner
63095 }
63096}
63097impl<'a> core::ops::DerefMut for PhysicalDevicePipelineBinaryFeaturesKHRBuilder<'a> {
63098 #[inline]
63099 fn deref_mut(&mut self) -> &mut Self::Target {
63100 &mut self.inner
63101 }
63102}
63103pub struct DevicePipelineBinaryInternalCacheControlKHRBuilder<'a> {
63105 inner: DevicePipelineBinaryInternalCacheControlKHR,
63106 _marker: core::marker::PhantomData<&'a ()>,
63107}
63108impl DevicePipelineBinaryInternalCacheControlKHR {
63109 #[inline]
63111 pub fn builder<'a>() -> DevicePipelineBinaryInternalCacheControlKHRBuilder<'a> {
63112 DevicePipelineBinaryInternalCacheControlKHRBuilder {
63113 inner: DevicePipelineBinaryInternalCacheControlKHR {
63114 s_type: StructureType::from_raw(1000483008i32),
63115 ..Default::default()
63116 },
63117 _marker: core::marker::PhantomData,
63118 }
63119 }
63120}
63121impl<'a> DevicePipelineBinaryInternalCacheControlKHRBuilder<'a> {
63122 #[inline]
63123 pub fn disable_internal_cache(mut self, value: bool) -> Self {
63124 self.inner.disable_internal_cache = value as u32;
63125 self
63126 }
63127 #[inline]
63129 pub fn push_next<T: ExtendsDevicePipelineBinaryInternalCacheControlKHR>(
63130 mut self,
63131 next: &'a mut T,
63132 ) -> Self {
63133 unsafe {
63134 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63135 (*next_ptr).p_next = self.inner.p_next as *mut _;
63136 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63137 core::ffi::c_void,
63138 >(next_ptr) as *const _;
63139 }
63140 self
63141 }
63142}
63143impl<'a> core::ops::Deref for DevicePipelineBinaryInternalCacheControlKHRBuilder<'a> {
63144 type Target = DevicePipelineBinaryInternalCacheControlKHR;
63145 #[inline]
63146 fn deref(&self) -> &Self::Target {
63147 &self.inner
63148 }
63149}
63150impl<'a> core::ops::DerefMut for DevicePipelineBinaryInternalCacheControlKHRBuilder<'a> {
63151 #[inline]
63152 fn deref_mut(&mut self) -> &mut Self::Target {
63153 &mut self.inner
63154 }
63155}
63156pub struct PhysicalDevicePipelineBinaryPropertiesKHRBuilder<'a> {
63158 inner: PhysicalDevicePipelineBinaryPropertiesKHR,
63159 _marker: core::marker::PhantomData<&'a ()>,
63160}
63161impl PhysicalDevicePipelineBinaryPropertiesKHR {
63162 #[inline]
63164 pub fn builder<'a>() -> PhysicalDevicePipelineBinaryPropertiesKHRBuilder<'a> {
63165 PhysicalDevicePipelineBinaryPropertiesKHRBuilder {
63166 inner: PhysicalDevicePipelineBinaryPropertiesKHR {
63167 s_type: StructureType::from_raw(1000483004i32),
63168 ..Default::default()
63169 },
63170 _marker: core::marker::PhantomData,
63171 }
63172 }
63173}
63174impl<'a> PhysicalDevicePipelineBinaryPropertiesKHRBuilder<'a> {
63175 #[inline]
63176 pub fn pipeline_binary_internal_cache(mut self, value: bool) -> Self {
63177 self.inner.pipeline_binary_internal_cache = value as u32;
63178 self
63179 }
63180 #[inline]
63181 pub fn pipeline_binary_internal_cache_control(mut self, value: bool) -> Self {
63182 self.inner.pipeline_binary_internal_cache_control = value as u32;
63183 self
63184 }
63185 #[inline]
63186 pub fn pipeline_binary_prefers_internal_cache(mut self, value: bool) -> Self {
63187 self.inner.pipeline_binary_prefers_internal_cache = value as u32;
63188 self
63189 }
63190 #[inline]
63191 pub fn pipeline_binary_precompiled_internal_cache(mut self, value: bool) -> Self {
63192 self.inner.pipeline_binary_precompiled_internal_cache = value as u32;
63193 self
63194 }
63195 #[inline]
63196 pub fn pipeline_binary_compressed_data(mut self, value: bool) -> Self {
63197 self.inner.pipeline_binary_compressed_data = value as u32;
63198 self
63199 }
63200}
63201impl<'a> core::ops::Deref for PhysicalDevicePipelineBinaryPropertiesKHRBuilder<'a> {
63202 type Target = PhysicalDevicePipelineBinaryPropertiesKHR;
63203 #[inline]
63204 fn deref(&self) -> &Self::Target {
63205 &self.inner
63206 }
63207}
63208impl<'a> core::ops::DerefMut for PhysicalDevicePipelineBinaryPropertiesKHRBuilder<'a> {
63209 #[inline]
63210 fn deref_mut(&mut self) -> &mut Self::Target {
63211 &mut self.inner
63212 }
63213}
63214pub struct PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder<'a> {
63216 inner: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT,
63217 _marker: core::marker::PhantomData<&'a ()>,
63218}
63219impl PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
63220 #[inline]
63222 pub fn builder<'a>() -> PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder<
63223 'a,
63224 > {
63225 PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder {
63226 inner: PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
63227 s_type: StructureType::from_raw(1000320001i32),
63228 ..Default::default()
63229 },
63230 _marker: core::marker::PhantomData,
63231 }
63232 }
63233}
63234impl<'a> PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder<'a> {
63235 #[inline]
63236 pub fn graphics_pipeline_library_fast_linking(mut self, value: bool) -> Self {
63237 self.inner.graphics_pipeline_library_fast_linking = value as u32;
63238 self
63239 }
63240 #[inline]
63241 pub fn graphics_pipeline_library_independent_interpolation_decoration(
63242 mut self,
63243 value: bool,
63244 ) -> Self {
63245 self.inner.graphics_pipeline_library_independent_interpolation_decoration = value
63246 as u32;
63247 self
63248 }
63249}
63250impl<'a> core::ops::Deref
63251for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder<'a> {
63252 type Target = PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
63253 #[inline]
63254 fn deref(&self) -> &Self::Target {
63255 &self.inner
63256 }
63257}
63258impl<'a> core::ops::DerefMut
63259for PhysicalDeviceGraphicsPipelineLibraryPropertiesEXTBuilder<'a> {
63260 #[inline]
63261 fn deref_mut(&mut self) -> &mut Self::Target {
63262 &mut self.inner
63263 }
63264}
63265pub struct GraphicsPipelineLibraryCreateInfoEXTBuilder<'a> {
63267 inner: GraphicsPipelineLibraryCreateInfoEXT,
63268 _marker: core::marker::PhantomData<&'a ()>,
63269}
63270impl GraphicsPipelineLibraryCreateInfoEXT {
63271 #[inline]
63273 pub fn builder<'a>() -> GraphicsPipelineLibraryCreateInfoEXTBuilder<'a> {
63274 GraphicsPipelineLibraryCreateInfoEXTBuilder {
63275 inner: GraphicsPipelineLibraryCreateInfoEXT {
63276 s_type: StructureType::from_raw(1000320002i32),
63277 ..Default::default()
63278 },
63279 _marker: core::marker::PhantomData,
63280 }
63281 }
63282}
63283impl<'a> GraphicsPipelineLibraryCreateInfoEXTBuilder<'a> {
63284 #[inline]
63285 pub fn flags(mut self, value: GraphicsPipelineLibraryFlagsEXT) -> Self {
63286 self.inner.flags = value;
63287 self
63288 }
63289 #[inline]
63291 pub fn push_next<T: ExtendsGraphicsPipelineLibraryCreateInfoEXT>(
63292 mut self,
63293 next: &'a mut T,
63294 ) -> Self {
63295 unsafe {
63296 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63297 (*next_ptr).p_next = self.inner.p_next as *mut _;
63298 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63299 core::ffi::c_void,
63300 >(next_ptr) as *const _;
63301 }
63302 self
63303 }
63304}
63305impl<'a> core::ops::Deref for GraphicsPipelineLibraryCreateInfoEXTBuilder<'a> {
63306 type Target = GraphicsPipelineLibraryCreateInfoEXT;
63307 #[inline]
63308 fn deref(&self) -> &Self::Target {
63309 &self.inner
63310 }
63311}
63312impl<'a> core::ops::DerefMut for GraphicsPipelineLibraryCreateInfoEXTBuilder<'a> {
63313 #[inline]
63314 fn deref_mut(&mut self) -> &mut Self::Target {
63315 &mut self.inner
63316 }
63317}
63318pub struct PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder<'a> {
63320 inner: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE,
63321 _marker: core::marker::PhantomData<&'a ()>,
63322}
63323impl PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
63324 #[inline]
63326 pub fn builder<'a>() -> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder<
63327 'a,
63328 > {
63329 PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder {
63330 inner: PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
63331 s_type: StructureType::from_raw(1000420000i32),
63332 ..Default::default()
63333 },
63334 _marker: core::marker::PhantomData,
63335 }
63336 }
63337}
63338impl<'a> PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder<'a> {
63339 #[inline]
63340 pub fn descriptor_set_host_mapping(mut self, value: bool) -> Self {
63341 self.inner.descriptor_set_host_mapping = value as u32;
63342 self
63343 }
63344 #[inline]
63346 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>(
63347 mut self,
63348 next: &'a mut T,
63349 ) -> Self {
63350 unsafe {
63351 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63352 (*next_ptr).p_next = self.inner.p_next as *mut _;
63353 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63354 core::ffi::c_void,
63355 >(next_ptr);
63356 }
63357 self
63358 }
63359}
63360impl<'a> core::ops::Deref
63361for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder<'a> {
63362 type Target = PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
63363 #[inline]
63364 fn deref(&self) -> &Self::Target {
63365 &self.inner
63366 }
63367}
63368impl<'a> core::ops::DerefMut
63369for PhysicalDeviceDescriptorSetHostMappingFeaturesVALVEBuilder<'a> {
63370 #[inline]
63371 fn deref_mut(&mut self) -> &mut Self::Target {
63372 &mut self.inner
63373 }
63374}
63375pub struct DescriptorSetBindingReferenceVALVEBuilder<'a> {
63377 inner: DescriptorSetBindingReferenceVALVE,
63378 _marker: core::marker::PhantomData<&'a ()>,
63379}
63380impl DescriptorSetBindingReferenceVALVE {
63381 #[inline]
63383 pub fn builder<'a>() -> DescriptorSetBindingReferenceVALVEBuilder<'a> {
63384 DescriptorSetBindingReferenceVALVEBuilder {
63385 inner: DescriptorSetBindingReferenceVALVE {
63386 s_type: StructureType::from_raw(1000420001i32),
63387 ..Default::default()
63388 },
63389 _marker: core::marker::PhantomData,
63390 }
63391 }
63392}
63393impl<'a> DescriptorSetBindingReferenceVALVEBuilder<'a> {
63394 #[inline]
63395 pub fn descriptor_set_layout(mut self, value: DescriptorSetLayout) -> Self {
63396 self.inner.descriptor_set_layout = value;
63397 self
63398 }
63399 #[inline]
63400 pub fn binding(mut self, value: u32) -> Self {
63401 self.inner.binding = value;
63402 self
63403 }
63404 #[inline]
63406 pub fn push_next<T: ExtendsDescriptorSetBindingReferenceVALVE>(
63407 mut self,
63408 next: &'a mut T,
63409 ) -> Self {
63410 unsafe {
63411 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63412 (*next_ptr).p_next = self.inner.p_next as *mut _;
63413 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63414 core::ffi::c_void,
63415 >(next_ptr) as *const _;
63416 }
63417 self
63418 }
63419}
63420impl<'a> core::ops::Deref for DescriptorSetBindingReferenceVALVEBuilder<'a> {
63421 type Target = DescriptorSetBindingReferenceVALVE;
63422 #[inline]
63423 fn deref(&self) -> &Self::Target {
63424 &self.inner
63425 }
63426}
63427impl<'a> core::ops::DerefMut for DescriptorSetBindingReferenceVALVEBuilder<'a> {
63428 #[inline]
63429 fn deref_mut(&mut self) -> &mut Self::Target {
63430 &mut self.inner
63431 }
63432}
63433pub struct DescriptorSetLayoutHostMappingInfoVALVEBuilder<'a> {
63435 inner: DescriptorSetLayoutHostMappingInfoVALVE,
63436 _marker: core::marker::PhantomData<&'a ()>,
63437}
63438impl DescriptorSetLayoutHostMappingInfoVALVE {
63439 #[inline]
63441 pub fn builder<'a>() -> DescriptorSetLayoutHostMappingInfoVALVEBuilder<'a> {
63442 DescriptorSetLayoutHostMappingInfoVALVEBuilder {
63443 inner: DescriptorSetLayoutHostMappingInfoVALVE {
63444 s_type: StructureType::from_raw(1000420002i32),
63445 ..Default::default()
63446 },
63447 _marker: core::marker::PhantomData,
63448 }
63449 }
63450}
63451impl<'a> DescriptorSetLayoutHostMappingInfoVALVEBuilder<'a> {
63452 #[inline]
63453 pub fn descriptor_offset(mut self, value: usize) -> Self {
63454 self.inner.descriptor_offset = value;
63455 self
63456 }
63457 #[inline]
63458 pub fn descriptor_size(mut self, value: u32) -> Self {
63459 self.inner.descriptor_size = value;
63460 self
63461 }
63462 #[inline]
63464 pub fn push_next<T: ExtendsDescriptorSetLayoutHostMappingInfoVALVE>(
63465 mut self,
63466 next: &'a mut T,
63467 ) -> Self {
63468 unsafe {
63469 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63470 (*next_ptr).p_next = self.inner.p_next as *mut _;
63471 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63472 core::ffi::c_void,
63473 >(next_ptr);
63474 }
63475 self
63476 }
63477}
63478impl<'a> core::ops::Deref for DescriptorSetLayoutHostMappingInfoVALVEBuilder<'a> {
63479 type Target = DescriptorSetLayoutHostMappingInfoVALVE;
63480 #[inline]
63481 fn deref(&self) -> &Self::Target {
63482 &self.inner
63483 }
63484}
63485impl<'a> core::ops::DerefMut for DescriptorSetLayoutHostMappingInfoVALVEBuilder<'a> {
63486 #[inline]
63487 fn deref_mut(&mut self) -> &mut Self::Target {
63488 &mut self.inner
63489 }
63490}
63491pub struct PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder<'a> {
63493 inner: PhysicalDeviceNestedCommandBufferFeaturesEXT,
63494 _marker: core::marker::PhantomData<&'a ()>,
63495}
63496impl PhysicalDeviceNestedCommandBufferFeaturesEXT {
63497 #[inline]
63499 pub fn builder<'a>() -> PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder<'a> {
63500 PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder {
63501 inner: PhysicalDeviceNestedCommandBufferFeaturesEXT {
63502 s_type: StructureType::from_raw(1000451000i32),
63503 ..Default::default()
63504 },
63505 _marker: core::marker::PhantomData,
63506 }
63507 }
63508}
63509impl<'a> PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder<'a> {
63510 #[inline]
63511 pub fn nested_command_buffer(mut self, value: bool) -> Self {
63512 self.inner.nested_command_buffer = value as u32;
63513 self
63514 }
63515 #[inline]
63516 pub fn nested_command_buffer_rendering(mut self, value: bool) -> Self {
63517 self.inner.nested_command_buffer_rendering = value as u32;
63518 self
63519 }
63520 #[inline]
63521 pub fn nested_command_buffer_simultaneous_use(mut self, value: bool) -> Self {
63522 self.inner.nested_command_buffer_simultaneous_use = value as u32;
63523 self
63524 }
63525 #[inline]
63527 pub fn push_next<T: ExtendsPhysicalDeviceNestedCommandBufferFeaturesEXT>(
63528 mut self,
63529 next: &'a mut T,
63530 ) -> Self {
63531 unsafe {
63532 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63533 (*next_ptr).p_next = self.inner.p_next as *mut _;
63534 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63535 core::ffi::c_void,
63536 >(next_ptr);
63537 }
63538 self
63539 }
63540}
63541impl<'a> core::ops::Deref for PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder<'a> {
63542 type Target = PhysicalDeviceNestedCommandBufferFeaturesEXT;
63543 #[inline]
63544 fn deref(&self) -> &Self::Target {
63545 &self.inner
63546 }
63547}
63548impl<'a> core::ops::DerefMut
63549for PhysicalDeviceNestedCommandBufferFeaturesEXTBuilder<'a> {
63550 #[inline]
63551 fn deref_mut(&mut self) -> &mut Self::Target {
63552 &mut self.inner
63553 }
63554}
63555pub struct PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder<'a> {
63557 inner: PhysicalDeviceNestedCommandBufferPropertiesEXT,
63558 _marker: core::marker::PhantomData<&'a ()>,
63559}
63560impl PhysicalDeviceNestedCommandBufferPropertiesEXT {
63561 #[inline]
63563 pub fn builder<'a>() -> PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder<'a> {
63564 PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder {
63565 inner: PhysicalDeviceNestedCommandBufferPropertiesEXT {
63566 s_type: StructureType::from_raw(1000451001i32),
63567 ..Default::default()
63568 },
63569 _marker: core::marker::PhantomData,
63570 }
63571 }
63572}
63573impl<'a> PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder<'a> {
63574 #[inline]
63575 pub fn max_command_buffer_nesting_level(mut self, value: u32) -> Self {
63576 self.inner.max_command_buffer_nesting_level = value;
63577 self
63578 }
63579}
63580impl<'a> core::ops::Deref for PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder<'a> {
63581 type Target = PhysicalDeviceNestedCommandBufferPropertiesEXT;
63582 #[inline]
63583 fn deref(&self) -> &Self::Target {
63584 &self.inner
63585 }
63586}
63587impl<'a> core::ops::DerefMut
63588for PhysicalDeviceNestedCommandBufferPropertiesEXTBuilder<'a> {
63589 #[inline]
63590 fn deref_mut(&mut self) -> &mut Self::Target {
63591 &mut self.inner
63592 }
63593}
63594pub struct PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder<'a> {
63596 inner: PhysicalDeviceShaderModuleIdentifierFeaturesEXT,
63597 _marker: core::marker::PhantomData<&'a ()>,
63598}
63599impl PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
63600 #[inline]
63602 pub fn builder<'a>() -> PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder<'a> {
63603 PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder {
63604 inner: PhysicalDeviceShaderModuleIdentifierFeaturesEXT {
63605 s_type: StructureType::from_raw(1000462000i32),
63606 ..Default::default()
63607 },
63608 _marker: core::marker::PhantomData,
63609 }
63610 }
63611}
63612impl<'a> PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder<'a> {
63613 #[inline]
63614 pub fn shader_module_identifier(mut self, value: bool) -> Self {
63615 self.inner.shader_module_identifier = value as u32;
63616 self
63617 }
63618 #[inline]
63620 pub fn push_next<T: ExtendsPhysicalDeviceShaderModuleIdentifierFeaturesEXT>(
63621 mut self,
63622 next: &'a mut T,
63623 ) -> Self {
63624 unsafe {
63625 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63626 (*next_ptr).p_next = self.inner.p_next as *mut _;
63627 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63628 core::ffi::c_void,
63629 >(next_ptr);
63630 }
63631 self
63632 }
63633}
63634impl<'a> core::ops::Deref
63635for PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder<'a> {
63636 type Target = PhysicalDeviceShaderModuleIdentifierFeaturesEXT;
63637 #[inline]
63638 fn deref(&self) -> &Self::Target {
63639 &self.inner
63640 }
63641}
63642impl<'a> core::ops::DerefMut
63643for PhysicalDeviceShaderModuleIdentifierFeaturesEXTBuilder<'a> {
63644 #[inline]
63645 fn deref_mut(&mut self) -> &mut Self::Target {
63646 &mut self.inner
63647 }
63648}
63649pub struct PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder<'a> {
63651 inner: PhysicalDeviceShaderModuleIdentifierPropertiesEXT,
63652 _marker: core::marker::PhantomData<&'a ()>,
63653}
63654impl PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
63655 #[inline]
63657 pub fn builder<'a>() -> PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder<
63658 'a,
63659 > {
63660 PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder {
63661 inner: PhysicalDeviceShaderModuleIdentifierPropertiesEXT {
63662 s_type: StructureType::from_raw(1000462001i32),
63663 ..Default::default()
63664 },
63665 _marker: core::marker::PhantomData,
63666 }
63667 }
63668}
63669impl<'a> PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder<'a> {
63670 #[inline]
63671 pub fn shader_module_identifier_algorithm_uuid(
63672 mut self,
63673 value: [u8; UUID_SIZE as usize],
63674 ) -> Self {
63675 self.inner.shader_module_identifier_algorithm_uuid = value;
63676 self
63677 }
63678}
63679impl<'a> core::ops::Deref
63680for PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder<'a> {
63681 type Target = PhysicalDeviceShaderModuleIdentifierPropertiesEXT;
63682 #[inline]
63683 fn deref(&self) -> &Self::Target {
63684 &self.inner
63685 }
63686}
63687impl<'a> core::ops::DerefMut
63688for PhysicalDeviceShaderModuleIdentifierPropertiesEXTBuilder<'a> {
63689 #[inline]
63690 fn deref_mut(&mut self) -> &mut Self::Target {
63691 &mut self.inner
63692 }
63693}
63694pub struct PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder<'a> {
63696 inner: PipelineShaderStageModuleIdentifierCreateInfoEXT,
63697 _marker: core::marker::PhantomData<&'a ()>,
63698}
63699impl PipelineShaderStageModuleIdentifierCreateInfoEXT {
63700 #[inline]
63702 pub fn builder<'a>() -> PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder<'a> {
63703 PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder {
63704 inner: PipelineShaderStageModuleIdentifierCreateInfoEXT {
63705 s_type: StructureType::from_raw(1000462002i32),
63706 ..Default::default()
63707 },
63708 _marker: core::marker::PhantomData,
63709 }
63710 }
63711}
63712impl<'a> PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder<'a> {
63713 #[inline]
63714 pub fn identifier(mut self, slice: &'a [u8]) -> Self {
63715 self.inner.identifier_size = slice.len() as u32;
63716 self.inner.p_identifier = slice.as_ptr();
63717 self
63718 }
63719 #[inline]
63721 pub fn push_next<T: ExtendsPipelineShaderStageModuleIdentifierCreateInfoEXT>(
63722 mut self,
63723 next: &'a mut T,
63724 ) -> Self {
63725 unsafe {
63726 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63727 (*next_ptr).p_next = self.inner.p_next as *mut _;
63728 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63729 core::ffi::c_void,
63730 >(next_ptr) as *const _;
63731 }
63732 self
63733 }
63734}
63735impl<'a> core::ops::Deref
63736for PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder<'a> {
63737 type Target = PipelineShaderStageModuleIdentifierCreateInfoEXT;
63738 #[inline]
63739 fn deref(&self) -> &Self::Target {
63740 &self.inner
63741 }
63742}
63743impl<'a> core::ops::DerefMut
63744for PipelineShaderStageModuleIdentifierCreateInfoEXTBuilder<'a> {
63745 #[inline]
63746 fn deref_mut(&mut self) -> &mut Self::Target {
63747 &mut self.inner
63748 }
63749}
63750pub struct ShaderModuleIdentifierEXTBuilder<'a> {
63752 inner: ShaderModuleIdentifierEXT,
63753 _marker: core::marker::PhantomData<&'a ()>,
63754}
63755impl ShaderModuleIdentifierEXT {
63756 #[inline]
63758 pub fn builder<'a>() -> ShaderModuleIdentifierEXTBuilder<'a> {
63759 ShaderModuleIdentifierEXTBuilder {
63760 inner: ShaderModuleIdentifierEXT {
63761 s_type: StructureType::from_raw(1000462003i32),
63762 ..Default::default()
63763 },
63764 _marker: core::marker::PhantomData,
63765 }
63766 }
63767}
63768impl<'a> ShaderModuleIdentifierEXTBuilder<'a> {
63769 #[inline]
63770 pub fn identifier_size(mut self, value: u32) -> Self {
63771 self.inner.identifier_size = value;
63772 self
63773 }
63774 #[inline]
63775 pub fn identifier(
63776 mut self,
63777 value: [u8; MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT as usize],
63778 ) -> Self {
63779 self.inner.identifier = value;
63780 self
63781 }
63782}
63783impl<'a> core::ops::Deref for ShaderModuleIdentifierEXTBuilder<'a> {
63784 type Target = ShaderModuleIdentifierEXT;
63785 #[inline]
63786 fn deref(&self) -> &Self::Target {
63787 &self.inner
63788 }
63789}
63790impl<'a> core::ops::DerefMut for ShaderModuleIdentifierEXTBuilder<'a> {
63791 #[inline]
63792 fn deref_mut(&mut self) -> &mut Self::Target {
63793 &mut self.inner
63794 }
63795}
63796pub struct ImageCompressionControlEXTBuilder<'a> {
63798 inner: ImageCompressionControlEXT,
63799 _marker: core::marker::PhantomData<&'a ()>,
63800}
63801impl ImageCompressionControlEXT {
63802 #[inline]
63804 pub fn builder<'a>() -> ImageCompressionControlEXTBuilder<'a> {
63805 ImageCompressionControlEXTBuilder {
63806 inner: ImageCompressionControlEXT {
63807 s_type: StructureType::from_raw(1000338001i32),
63808 ..Default::default()
63809 },
63810 _marker: core::marker::PhantomData,
63811 }
63812 }
63813}
63814impl<'a> ImageCompressionControlEXTBuilder<'a> {
63815 #[inline]
63816 pub fn flags(mut self, value: ImageCompressionFlagsEXT) -> Self {
63817 self.inner.flags = value;
63818 self
63819 }
63820 #[inline]
63821 pub fn fixed_rate_flags(
63822 mut self,
63823 slice: &'a mut [ImageCompressionFixedRateFlagsEXT],
63824 ) -> Self {
63825 self.inner.compression_control_plane_count = slice.len() as u32;
63826 self.inner.p_fixed_rate_flags = slice.as_mut_ptr();
63827 self
63828 }
63829 #[inline]
63831 pub fn push_next<T: ExtendsImageCompressionControlEXT>(
63832 mut self,
63833 next: &'a mut T,
63834 ) -> Self {
63835 unsafe {
63836 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63837 (*next_ptr).p_next = self.inner.p_next as *mut _;
63838 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63839 core::ffi::c_void,
63840 >(next_ptr) as *const _;
63841 }
63842 self
63843 }
63844}
63845impl<'a> core::ops::Deref for ImageCompressionControlEXTBuilder<'a> {
63846 type Target = ImageCompressionControlEXT;
63847 #[inline]
63848 fn deref(&self) -> &Self::Target {
63849 &self.inner
63850 }
63851}
63852impl<'a> core::ops::DerefMut for ImageCompressionControlEXTBuilder<'a> {
63853 #[inline]
63854 fn deref_mut(&mut self) -> &mut Self::Target {
63855 &mut self.inner
63856 }
63857}
63858pub struct PhysicalDeviceImageCompressionControlFeaturesEXTBuilder<'a> {
63860 inner: PhysicalDeviceImageCompressionControlFeaturesEXT,
63861 _marker: core::marker::PhantomData<&'a ()>,
63862}
63863impl PhysicalDeviceImageCompressionControlFeaturesEXT {
63864 #[inline]
63866 pub fn builder<'a>() -> PhysicalDeviceImageCompressionControlFeaturesEXTBuilder<'a> {
63867 PhysicalDeviceImageCompressionControlFeaturesEXTBuilder {
63868 inner: PhysicalDeviceImageCompressionControlFeaturesEXT {
63869 s_type: StructureType::from_raw(1000338000i32),
63870 ..Default::default()
63871 },
63872 _marker: core::marker::PhantomData,
63873 }
63874 }
63875}
63876impl<'a> PhysicalDeviceImageCompressionControlFeaturesEXTBuilder<'a> {
63877 #[inline]
63878 pub fn image_compression_control(mut self, value: bool) -> Self {
63879 self.inner.image_compression_control = value as u32;
63880 self
63881 }
63882 #[inline]
63884 pub fn push_next<T: ExtendsPhysicalDeviceImageCompressionControlFeaturesEXT>(
63885 mut self,
63886 next: &'a mut T,
63887 ) -> Self {
63888 unsafe {
63889 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63890 (*next_ptr).p_next = self.inner.p_next as *mut _;
63891 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63892 core::ffi::c_void,
63893 >(next_ptr);
63894 }
63895 self
63896 }
63897}
63898impl<'a> core::ops::Deref
63899for PhysicalDeviceImageCompressionControlFeaturesEXTBuilder<'a> {
63900 type Target = PhysicalDeviceImageCompressionControlFeaturesEXT;
63901 #[inline]
63902 fn deref(&self) -> &Self::Target {
63903 &self.inner
63904 }
63905}
63906impl<'a> core::ops::DerefMut
63907for PhysicalDeviceImageCompressionControlFeaturesEXTBuilder<'a> {
63908 #[inline]
63909 fn deref_mut(&mut self) -> &mut Self::Target {
63910 &mut self.inner
63911 }
63912}
63913pub struct ImageCompressionPropertiesEXTBuilder<'a> {
63915 inner: ImageCompressionPropertiesEXT,
63916 _marker: core::marker::PhantomData<&'a ()>,
63917}
63918impl ImageCompressionPropertiesEXT {
63919 #[inline]
63921 pub fn builder<'a>() -> ImageCompressionPropertiesEXTBuilder<'a> {
63922 ImageCompressionPropertiesEXTBuilder {
63923 inner: ImageCompressionPropertiesEXT {
63924 s_type: StructureType::from_raw(1000338004i32),
63925 ..Default::default()
63926 },
63927 _marker: core::marker::PhantomData,
63928 }
63929 }
63930}
63931impl<'a> ImageCompressionPropertiesEXTBuilder<'a> {
63932 #[inline]
63933 pub fn image_compression_flags(mut self, value: ImageCompressionFlagsEXT) -> Self {
63934 self.inner.image_compression_flags = value;
63935 self
63936 }
63937 #[inline]
63938 pub fn image_compression_fixed_rate_flags(
63939 mut self,
63940 value: ImageCompressionFixedRateFlagsEXT,
63941 ) -> Self {
63942 self.inner.image_compression_fixed_rate_flags = value;
63943 self
63944 }
63945}
63946impl<'a> core::ops::Deref for ImageCompressionPropertiesEXTBuilder<'a> {
63947 type Target = ImageCompressionPropertiesEXT;
63948 #[inline]
63949 fn deref(&self) -> &Self::Target {
63950 &self.inner
63951 }
63952}
63953impl<'a> core::ops::DerefMut for ImageCompressionPropertiesEXTBuilder<'a> {
63954 #[inline]
63955 fn deref_mut(&mut self) -> &mut Self::Target {
63956 &mut self.inner
63957 }
63958}
63959pub struct PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder<'a> {
63961 inner: PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT,
63962 _marker: core::marker::PhantomData<&'a ()>,
63963}
63964impl PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
63965 #[inline]
63967 pub fn builder<'a>() -> PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder<
63968 'a,
63969 > {
63970 PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder {
63971 inner: PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
63972 s_type: StructureType::from_raw(1000437000i32),
63973 ..Default::default()
63974 },
63975 _marker: core::marker::PhantomData,
63976 }
63977 }
63978}
63979impl<'a> PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder<'a> {
63980 #[inline]
63981 pub fn image_compression_control_swapchain(mut self, value: bool) -> Self {
63982 self.inner.image_compression_control_swapchain = value as u32;
63983 self
63984 }
63985 #[inline]
63987 pub fn push_next<
63988 T: ExtendsPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT,
63989 >(mut self, next: &'a mut T) -> Self {
63990 unsafe {
63991 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
63992 (*next_ptr).p_next = self.inner.p_next as *mut _;
63993 self.inner.p_next = <*mut BaseOutStructure>::cast::<
63994 core::ffi::c_void,
63995 >(next_ptr);
63996 }
63997 self
63998 }
63999}
64000impl<'a> core::ops::Deref
64001for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder<'a> {
64002 type Target = PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
64003 #[inline]
64004 fn deref(&self) -> &Self::Target {
64005 &self.inner
64006 }
64007}
64008impl<'a> core::ops::DerefMut
64009for PhysicalDeviceImageCompressionControlSwapchainFeaturesEXTBuilder<'a> {
64010 #[inline]
64011 fn deref_mut(&mut self) -> &mut Self::Target {
64012 &mut self.inner
64013 }
64014}
64015pub struct ImageSubresource2Builder<'a> {
64017 inner: ImageSubresource2,
64018 _marker: core::marker::PhantomData<&'a ()>,
64019}
64020impl ImageSubresource2 {
64021 #[inline]
64023 pub fn builder<'a>() -> ImageSubresource2Builder<'a> {
64024 ImageSubresource2Builder {
64025 inner: ImageSubresource2 {
64026 s_type: StructureType::from_raw(1000338003i32),
64027 ..Default::default()
64028 },
64029 _marker: core::marker::PhantomData,
64030 }
64031 }
64032}
64033impl<'a> ImageSubresource2Builder<'a> {
64034 #[inline]
64035 pub fn image_subresource(mut self, value: ImageSubresource) -> Self {
64036 self.inner.image_subresource = value;
64037 self
64038 }
64039 #[inline]
64041 pub fn push_next<T: ExtendsImageSubresource2>(mut self, next: &'a mut T) -> Self {
64042 unsafe {
64043 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64044 (*next_ptr).p_next = self.inner.p_next as *mut _;
64045 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64046 core::ffi::c_void,
64047 >(next_ptr);
64048 }
64049 self
64050 }
64051}
64052impl<'a> core::ops::Deref for ImageSubresource2Builder<'a> {
64053 type Target = ImageSubresource2;
64054 #[inline]
64055 fn deref(&self) -> &Self::Target {
64056 &self.inner
64057 }
64058}
64059impl<'a> core::ops::DerefMut for ImageSubresource2Builder<'a> {
64060 #[inline]
64061 fn deref_mut(&mut self) -> &mut Self::Target {
64062 &mut self.inner
64063 }
64064}
64065pub struct SubresourceLayout2Builder<'a> {
64067 inner: SubresourceLayout2,
64068 _marker: core::marker::PhantomData<&'a ()>,
64069}
64070impl SubresourceLayout2 {
64071 #[inline]
64073 pub fn builder<'a>() -> SubresourceLayout2Builder<'a> {
64074 SubresourceLayout2Builder {
64075 inner: SubresourceLayout2 {
64076 s_type: StructureType::from_raw(1000338002i32),
64077 ..Default::default()
64078 },
64079 _marker: core::marker::PhantomData,
64080 }
64081 }
64082}
64083impl<'a> SubresourceLayout2Builder<'a> {
64084 #[inline]
64085 pub fn subresource_layout(mut self, value: SubresourceLayout) -> Self {
64086 self.inner.subresource_layout = value;
64087 self
64088 }
64089}
64090impl<'a> core::ops::Deref for SubresourceLayout2Builder<'a> {
64091 type Target = SubresourceLayout2;
64092 #[inline]
64093 fn deref(&self) -> &Self::Target {
64094 &self.inner
64095 }
64096}
64097impl<'a> core::ops::DerefMut for SubresourceLayout2Builder<'a> {
64098 #[inline]
64099 fn deref_mut(&mut self) -> &mut Self::Target {
64100 &mut self.inner
64101 }
64102}
64103pub struct RenderPassCreationControlEXTBuilder<'a> {
64105 inner: RenderPassCreationControlEXT,
64106 _marker: core::marker::PhantomData<&'a ()>,
64107}
64108impl RenderPassCreationControlEXT {
64109 #[inline]
64111 pub fn builder<'a>() -> RenderPassCreationControlEXTBuilder<'a> {
64112 RenderPassCreationControlEXTBuilder {
64113 inner: RenderPassCreationControlEXT {
64114 s_type: StructureType::from_raw(1000458001i32),
64115 ..Default::default()
64116 },
64117 _marker: core::marker::PhantomData,
64118 }
64119 }
64120}
64121impl<'a> RenderPassCreationControlEXTBuilder<'a> {
64122 #[inline]
64123 pub fn disallow_merging(mut self, value: bool) -> Self {
64124 self.inner.disallow_merging = value as u32;
64125 self
64126 }
64127 #[inline]
64129 pub fn push_next<T: ExtendsRenderPassCreationControlEXT>(
64130 mut self,
64131 next: &'a mut T,
64132 ) -> Self {
64133 unsafe {
64134 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64135 (*next_ptr).p_next = self.inner.p_next as *mut _;
64136 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64137 core::ffi::c_void,
64138 >(next_ptr) as *const _;
64139 }
64140 self
64141 }
64142}
64143impl<'a> core::ops::Deref for RenderPassCreationControlEXTBuilder<'a> {
64144 type Target = RenderPassCreationControlEXT;
64145 #[inline]
64146 fn deref(&self) -> &Self::Target {
64147 &self.inner
64148 }
64149}
64150impl<'a> core::ops::DerefMut for RenderPassCreationControlEXTBuilder<'a> {
64151 #[inline]
64152 fn deref_mut(&mut self) -> &mut Self::Target {
64153 &mut self.inner
64154 }
64155}
64156pub struct RenderPassCreationFeedbackInfoEXTBuilder {
64158 inner: RenderPassCreationFeedbackInfoEXT,
64159}
64160impl RenderPassCreationFeedbackInfoEXT {
64161 #[inline]
64163 pub fn builder() -> RenderPassCreationFeedbackInfoEXTBuilder {
64164 RenderPassCreationFeedbackInfoEXTBuilder {
64165 inner: RenderPassCreationFeedbackInfoEXT {
64166 ..Default::default()
64167 },
64168 }
64169 }
64170}
64171impl RenderPassCreationFeedbackInfoEXTBuilder {
64172 #[inline]
64173 pub fn post_merge_subpass_count(mut self, value: u32) -> Self {
64174 self.inner.post_merge_subpass_count = value;
64175 self
64176 }
64177}
64178impl core::ops::Deref for RenderPassCreationFeedbackInfoEXTBuilder {
64179 type Target = RenderPassCreationFeedbackInfoEXT;
64180 #[inline]
64181 fn deref(&self) -> &Self::Target {
64182 &self.inner
64183 }
64184}
64185impl core::ops::DerefMut for RenderPassCreationFeedbackInfoEXTBuilder {
64186 #[inline]
64187 fn deref_mut(&mut self) -> &mut Self::Target {
64188 &mut self.inner
64189 }
64190}
64191pub struct RenderPassCreationFeedbackCreateInfoEXTBuilder<'a> {
64193 inner: RenderPassCreationFeedbackCreateInfoEXT,
64194 _marker: core::marker::PhantomData<&'a ()>,
64195}
64196impl RenderPassCreationFeedbackCreateInfoEXT {
64197 #[inline]
64199 pub fn builder<'a>() -> RenderPassCreationFeedbackCreateInfoEXTBuilder<'a> {
64200 RenderPassCreationFeedbackCreateInfoEXTBuilder {
64201 inner: RenderPassCreationFeedbackCreateInfoEXT {
64202 s_type: StructureType::from_raw(1000458002i32),
64203 ..Default::default()
64204 },
64205 _marker: core::marker::PhantomData,
64206 }
64207 }
64208}
64209impl<'a> RenderPassCreationFeedbackCreateInfoEXTBuilder<'a> {
64210 #[inline]
64211 pub fn render_pass_feedback(
64212 mut self,
64213 value: *mut RenderPassCreationFeedbackInfoEXT,
64214 ) -> Self {
64215 self.inner.p_render_pass_feedback = value;
64216 self
64217 }
64218 #[inline]
64220 pub fn push_next<T: ExtendsRenderPassCreationFeedbackCreateInfoEXT>(
64221 mut self,
64222 next: &'a mut T,
64223 ) -> Self {
64224 unsafe {
64225 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64226 (*next_ptr).p_next = self.inner.p_next as *mut _;
64227 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64228 core::ffi::c_void,
64229 >(next_ptr) as *const _;
64230 }
64231 self
64232 }
64233}
64234impl<'a> core::ops::Deref for RenderPassCreationFeedbackCreateInfoEXTBuilder<'a> {
64235 type Target = RenderPassCreationFeedbackCreateInfoEXT;
64236 #[inline]
64237 fn deref(&self) -> &Self::Target {
64238 &self.inner
64239 }
64240}
64241impl<'a> core::ops::DerefMut for RenderPassCreationFeedbackCreateInfoEXTBuilder<'a> {
64242 #[inline]
64243 fn deref_mut(&mut self) -> &mut Self::Target {
64244 &mut self.inner
64245 }
64246}
64247pub struct RenderPassSubpassFeedbackInfoEXTBuilder {
64249 inner: RenderPassSubpassFeedbackInfoEXT,
64250}
64251impl RenderPassSubpassFeedbackInfoEXT {
64252 #[inline]
64254 pub fn builder() -> RenderPassSubpassFeedbackInfoEXTBuilder {
64255 RenderPassSubpassFeedbackInfoEXTBuilder {
64256 inner: RenderPassSubpassFeedbackInfoEXT {
64257 ..Default::default()
64258 },
64259 }
64260 }
64261}
64262impl RenderPassSubpassFeedbackInfoEXTBuilder {
64263 #[inline]
64264 pub fn subpass_merge_status(mut self, value: SubpassMergeStatusEXT) -> Self {
64265 self.inner.subpass_merge_status = value;
64266 self
64267 }
64268 #[inline]
64269 pub fn description(
64270 mut self,
64271 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
64272 ) -> Self {
64273 self.inner.description = value;
64274 self
64275 }
64276 #[inline]
64277 pub fn post_merge_index(mut self, value: u32) -> Self {
64278 self.inner.post_merge_index = value;
64279 self
64280 }
64281}
64282impl core::ops::Deref for RenderPassSubpassFeedbackInfoEXTBuilder {
64283 type Target = RenderPassSubpassFeedbackInfoEXT;
64284 #[inline]
64285 fn deref(&self) -> &Self::Target {
64286 &self.inner
64287 }
64288}
64289impl core::ops::DerefMut for RenderPassSubpassFeedbackInfoEXTBuilder {
64290 #[inline]
64291 fn deref_mut(&mut self) -> &mut Self::Target {
64292 &mut self.inner
64293 }
64294}
64295pub struct RenderPassSubpassFeedbackCreateInfoEXTBuilder<'a> {
64297 inner: RenderPassSubpassFeedbackCreateInfoEXT,
64298 _marker: core::marker::PhantomData<&'a ()>,
64299}
64300impl RenderPassSubpassFeedbackCreateInfoEXT {
64301 #[inline]
64303 pub fn builder<'a>() -> RenderPassSubpassFeedbackCreateInfoEXTBuilder<'a> {
64304 RenderPassSubpassFeedbackCreateInfoEXTBuilder {
64305 inner: RenderPassSubpassFeedbackCreateInfoEXT {
64306 s_type: StructureType::from_raw(1000458003i32),
64307 ..Default::default()
64308 },
64309 _marker: core::marker::PhantomData,
64310 }
64311 }
64312}
64313impl<'a> RenderPassSubpassFeedbackCreateInfoEXTBuilder<'a> {
64314 #[inline]
64315 pub fn subpass_feedback(
64316 mut self,
64317 value: *mut RenderPassSubpassFeedbackInfoEXT,
64318 ) -> Self {
64319 self.inner.p_subpass_feedback = value;
64320 self
64321 }
64322 #[inline]
64324 pub fn push_next<T: ExtendsRenderPassSubpassFeedbackCreateInfoEXT>(
64325 mut self,
64326 next: &'a mut T,
64327 ) -> Self {
64328 unsafe {
64329 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64330 (*next_ptr).p_next = self.inner.p_next as *mut _;
64331 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64332 core::ffi::c_void,
64333 >(next_ptr) as *const _;
64334 }
64335 self
64336 }
64337}
64338impl<'a> core::ops::Deref for RenderPassSubpassFeedbackCreateInfoEXTBuilder<'a> {
64339 type Target = RenderPassSubpassFeedbackCreateInfoEXT;
64340 #[inline]
64341 fn deref(&self) -> &Self::Target {
64342 &self.inner
64343 }
64344}
64345impl<'a> core::ops::DerefMut for RenderPassSubpassFeedbackCreateInfoEXTBuilder<'a> {
64346 #[inline]
64347 fn deref_mut(&mut self) -> &mut Self::Target {
64348 &mut self.inner
64349 }
64350}
64351pub struct PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder<'a> {
64353 inner: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT,
64354 _marker: core::marker::PhantomData<&'a ()>,
64355}
64356impl PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
64357 #[inline]
64359 pub fn builder<'a>() -> PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder<'a> {
64360 PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder {
64361 inner: PhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
64362 s_type: StructureType::from_raw(1000458000i32),
64363 ..Default::default()
64364 },
64365 _marker: core::marker::PhantomData,
64366 }
64367 }
64368}
64369impl<'a> PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder<'a> {
64370 #[inline]
64371 pub fn subpass_merge_feedback(mut self, value: bool) -> Self {
64372 self.inner.subpass_merge_feedback = value as u32;
64373 self
64374 }
64375 #[inline]
64377 pub fn push_next<T: ExtendsPhysicalDeviceSubpassMergeFeedbackFeaturesEXT>(
64378 mut self,
64379 next: &'a mut T,
64380 ) -> Self {
64381 unsafe {
64382 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64383 (*next_ptr).p_next = self.inner.p_next as *mut _;
64384 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64385 core::ffi::c_void,
64386 >(next_ptr);
64387 }
64388 self
64389 }
64390}
64391impl<'a> core::ops::Deref for PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder<'a> {
64392 type Target = PhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
64393 #[inline]
64394 fn deref(&self) -> &Self::Target {
64395 &self.inner
64396 }
64397}
64398impl<'a> core::ops::DerefMut
64399for PhysicalDeviceSubpassMergeFeedbackFeaturesEXTBuilder<'a> {
64400 #[inline]
64401 fn deref_mut(&mut self) -> &mut Self::Target {
64402 &mut self.inner
64403 }
64404}
64405pub struct MicromapBuildInfoEXTBuilder<'a> {
64407 inner: MicromapBuildInfoEXT,
64408 _marker: core::marker::PhantomData<&'a ()>,
64409}
64410impl MicromapBuildInfoEXT {
64411 #[inline]
64413 pub fn builder<'a>() -> MicromapBuildInfoEXTBuilder<'a> {
64414 MicromapBuildInfoEXTBuilder {
64415 inner: MicromapBuildInfoEXT {
64416 s_type: StructureType::from_raw(1000396000i32),
64417 ..Default::default()
64418 },
64419 _marker: core::marker::PhantomData,
64420 }
64421 }
64422}
64423impl<'a> MicromapBuildInfoEXTBuilder<'a> {
64424 #[inline]
64425 pub fn r#type(mut self, value: MicromapTypeEXT) -> Self {
64426 self.inner.r#type = value;
64427 self
64428 }
64429 #[inline]
64430 pub fn flags(mut self, value: BuildMicromapFlagsEXT) -> Self {
64431 self.inner.flags = value;
64432 self
64433 }
64434 #[inline]
64435 pub fn mode(mut self, value: BuildMicromapModeEXT) -> Self {
64436 self.inner.mode = value;
64437 self
64438 }
64439 #[inline]
64440 pub fn dst_micromap(mut self, value: MicromapEXT) -> Self {
64441 self.inner.dst_micromap = value;
64442 self
64443 }
64444 #[inline]
64445 pub fn usage_counts_count(mut self, value: u32) -> Self {
64446 self.inner.usage_counts_count = value;
64447 self
64448 }
64449 #[inline]
64450 pub fn usage_counts(mut self, slice: &'a [MicromapUsageEXT]) -> Self {
64451 self.inner.usage_counts_count = slice.len() as u32;
64452 self.inner.p_usage_counts = slice.as_ptr();
64453 self
64454 }
64455 #[inline]
64456 pub fn pp_usage_counts(mut self, value: *const *const MicromapUsageEXT) -> Self {
64457 self.inner.pp_usage_counts = value;
64458 self
64459 }
64460 #[inline]
64461 pub fn data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
64462 self.inner.data = value;
64463 self
64464 }
64465 #[inline]
64466 pub fn scratch_data(mut self, value: DeviceOrHostAddressKHR) -> Self {
64467 self.inner.scratch_data = value;
64468 self
64469 }
64470 #[inline]
64471 pub fn triangle_array(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
64472 self.inner.triangle_array = value;
64473 self
64474 }
64475 #[inline]
64476 pub fn triangle_array_stride(mut self, value: u64) -> Self {
64477 self.inner.triangle_array_stride = value;
64478 self
64479 }
64480 #[inline]
64482 pub fn push_next<T: ExtendsMicromapBuildInfoEXT>(mut self, next: &'a mut T) -> Self {
64483 unsafe {
64484 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64485 (*next_ptr).p_next = self.inner.p_next as *mut _;
64486 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64487 core::ffi::c_void,
64488 >(next_ptr) as *const _;
64489 }
64490 self
64491 }
64492}
64493impl<'a> core::ops::Deref for MicromapBuildInfoEXTBuilder<'a> {
64494 type Target = MicromapBuildInfoEXT;
64495 #[inline]
64496 fn deref(&self) -> &Self::Target {
64497 &self.inner
64498 }
64499}
64500impl<'a> core::ops::DerefMut for MicromapBuildInfoEXTBuilder<'a> {
64501 #[inline]
64502 fn deref_mut(&mut self) -> &mut Self::Target {
64503 &mut self.inner
64504 }
64505}
64506pub struct MicromapCreateInfoEXTBuilder<'a> {
64508 inner: MicromapCreateInfoEXT,
64509 _marker: core::marker::PhantomData<&'a ()>,
64510}
64511impl MicromapCreateInfoEXT {
64512 #[inline]
64514 pub fn builder<'a>() -> MicromapCreateInfoEXTBuilder<'a> {
64515 MicromapCreateInfoEXTBuilder {
64516 inner: MicromapCreateInfoEXT {
64517 s_type: StructureType::from_raw(1000396007i32),
64518 ..Default::default()
64519 },
64520 _marker: core::marker::PhantomData,
64521 }
64522 }
64523}
64524impl<'a> MicromapCreateInfoEXTBuilder<'a> {
64525 #[inline]
64526 pub fn create_flags(mut self, value: MicromapCreateFlagsEXT) -> Self {
64527 self.inner.create_flags = value;
64528 self
64529 }
64530 #[inline]
64531 pub fn buffer(mut self, value: Buffer) -> Self {
64532 self.inner.buffer = value;
64533 self
64534 }
64535 #[inline]
64536 pub fn offset(mut self, value: u64) -> Self {
64537 self.inner.offset = value;
64538 self
64539 }
64540 #[inline]
64541 pub fn size(mut self, value: u64) -> Self {
64542 self.inner.size = value;
64543 self
64544 }
64545 #[inline]
64546 pub fn r#type(mut self, value: MicromapTypeEXT) -> Self {
64547 self.inner.r#type = value;
64548 self
64549 }
64550 #[inline]
64551 pub fn device_address(mut self, value: u64) -> Self {
64552 self.inner.device_address = value;
64553 self
64554 }
64555 #[inline]
64557 pub fn push_next<T: ExtendsMicromapCreateInfoEXT>(
64558 mut self,
64559 next: &'a mut T,
64560 ) -> Self {
64561 unsafe {
64562 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64563 (*next_ptr).p_next = self.inner.p_next as *mut _;
64564 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64565 core::ffi::c_void,
64566 >(next_ptr) as *const _;
64567 }
64568 self
64569 }
64570}
64571impl<'a> core::ops::Deref for MicromapCreateInfoEXTBuilder<'a> {
64572 type Target = MicromapCreateInfoEXT;
64573 #[inline]
64574 fn deref(&self) -> &Self::Target {
64575 &self.inner
64576 }
64577}
64578impl<'a> core::ops::DerefMut for MicromapCreateInfoEXTBuilder<'a> {
64579 #[inline]
64580 fn deref_mut(&mut self) -> &mut Self::Target {
64581 &mut self.inner
64582 }
64583}
64584pub struct MicromapVersionInfoEXTBuilder<'a> {
64586 inner: MicromapVersionInfoEXT,
64587 _marker: core::marker::PhantomData<&'a ()>,
64588}
64589impl MicromapVersionInfoEXT {
64590 #[inline]
64592 pub fn builder<'a>() -> MicromapVersionInfoEXTBuilder<'a> {
64593 MicromapVersionInfoEXTBuilder {
64594 inner: MicromapVersionInfoEXT {
64595 s_type: StructureType::from_raw(1000396001i32),
64596 ..Default::default()
64597 },
64598 _marker: core::marker::PhantomData,
64599 }
64600 }
64601}
64602impl<'a> MicromapVersionInfoEXTBuilder<'a> {
64603 #[inline]
64604 pub fn version_data(mut self, value: *const u8) -> Self {
64605 self.inner.p_version_data = value;
64606 self
64607 }
64608 #[inline]
64610 pub fn push_next<T: ExtendsMicromapVersionInfoEXT>(
64611 mut self,
64612 next: &'a mut T,
64613 ) -> Self {
64614 unsafe {
64615 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64616 (*next_ptr).p_next = self.inner.p_next as *mut _;
64617 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64618 core::ffi::c_void,
64619 >(next_ptr) as *const _;
64620 }
64621 self
64622 }
64623}
64624impl<'a> core::ops::Deref for MicromapVersionInfoEXTBuilder<'a> {
64625 type Target = MicromapVersionInfoEXT;
64626 #[inline]
64627 fn deref(&self) -> &Self::Target {
64628 &self.inner
64629 }
64630}
64631impl<'a> core::ops::DerefMut for MicromapVersionInfoEXTBuilder<'a> {
64632 #[inline]
64633 fn deref_mut(&mut self) -> &mut Self::Target {
64634 &mut self.inner
64635 }
64636}
64637pub struct CopyMicromapInfoEXTBuilder<'a> {
64639 inner: CopyMicromapInfoEXT,
64640 _marker: core::marker::PhantomData<&'a ()>,
64641}
64642impl CopyMicromapInfoEXT {
64643 #[inline]
64645 pub fn builder<'a>() -> CopyMicromapInfoEXTBuilder<'a> {
64646 CopyMicromapInfoEXTBuilder {
64647 inner: CopyMicromapInfoEXT {
64648 s_type: StructureType::from_raw(1000396002i32),
64649 ..Default::default()
64650 },
64651 _marker: core::marker::PhantomData,
64652 }
64653 }
64654}
64655impl<'a> CopyMicromapInfoEXTBuilder<'a> {
64656 #[inline]
64657 pub fn src(mut self, value: MicromapEXT) -> Self {
64658 self.inner.src = value;
64659 self
64660 }
64661 #[inline]
64662 pub fn dst(mut self, value: MicromapEXT) -> Self {
64663 self.inner.dst = value;
64664 self
64665 }
64666 #[inline]
64667 pub fn mode(mut self, value: CopyMicromapModeEXT) -> Self {
64668 self.inner.mode = value;
64669 self
64670 }
64671 #[inline]
64673 pub fn push_next<T: ExtendsCopyMicromapInfoEXT>(mut self, next: &'a mut T) -> Self {
64674 unsafe {
64675 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64676 (*next_ptr).p_next = self.inner.p_next as *mut _;
64677 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64678 core::ffi::c_void,
64679 >(next_ptr) as *const _;
64680 }
64681 self
64682 }
64683}
64684impl<'a> core::ops::Deref for CopyMicromapInfoEXTBuilder<'a> {
64685 type Target = CopyMicromapInfoEXT;
64686 #[inline]
64687 fn deref(&self) -> &Self::Target {
64688 &self.inner
64689 }
64690}
64691impl<'a> core::ops::DerefMut for CopyMicromapInfoEXTBuilder<'a> {
64692 #[inline]
64693 fn deref_mut(&mut self) -> &mut Self::Target {
64694 &mut self.inner
64695 }
64696}
64697pub struct CopyMicromapToMemoryInfoEXTBuilder<'a> {
64699 inner: CopyMicromapToMemoryInfoEXT,
64700 _marker: core::marker::PhantomData<&'a ()>,
64701}
64702impl CopyMicromapToMemoryInfoEXT {
64703 #[inline]
64705 pub fn builder<'a>() -> CopyMicromapToMemoryInfoEXTBuilder<'a> {
64706 CopyMicromapToMemoryInfoEXTBuilder {
64707 inner: CopyMicromapToMemoryInfoEXT {
64708 s_type: StructureType::from_raw(1000396003i32),
64709 ..Default::default()
64710 },
64711 _marker: core::marker::PhantomData,
64712 }
64713 }
64714}
64715impl<'a> CopyMicromapToMemoryInfoEXTBuilder<'a> {
64716 #[inline]
64717 pub fn src(mut self, value: MicromapEXT) -> Self {
64718 self.inner.src = value;
64719 self
64720 }
64721 #[inline]
64722 pub fn dst(mut self, value: DeviceOrHostAddressKHR) -> Self {
64723 self.inner.dst = value;
64724 self
64725 }
64726 #[inline]
64727 pub fn mode(mut self, value: CopyMicromapModeEXT) -> Self {
64728 self.inner.mode = value;
64729 self
64730 }
64731 #[inline]
64733 pub fn push_next<T: ExtendsCopyMicromapToMemoryInfoEXT>(
64734 mut self,
64735 next: &'a mut T,
64736 ) -> Self {
64737 unsafe {
64738 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64739 (*next_ptr).p_next = self.inner.p_next as *mut _;
64740 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64741 core::ffi::c_void,
64742 >(next_ptr) as *const _;
64743 }
64744 self
64745 }
64746}
64747impl<'a> core::ops::Deref for CopyMicromapToMemoryInfoEXTBuilder<'a> {
64748 type Target = CopyMicromapToMemoryInfoEXT;
64749 #[inline]
64750 fn deref(&self) -> &Self::Target {
64751 &self.inner
64752 }
64753}
64754impl<'a> core::ops::DerefMut for CopyMicromapToMemoryInfoEXTBuilder<'a> {
64755 #[inline]
64756 fn deref_mut(&mut self) -> &mut Self::Target {
64757 &mut self.inner
64758 }
64759}
64760pub struct CopyMemoryToMicromapInfoEXTBuilder<'a> {
64762 inner: CopyMemoryToMicromapInfoEXT,
64763 _marker: core::marker::PhantomData<&'a ()>,
64764}
64765impl CopyMemoryToMicromapInfoEXT {
64766 #[inline]
64768 pub fn builder<'a>() -> CopyMemoryToMicromapInfoEXTBuilder<'a> {
64769 CopyMemoryToMicromapInfoEXTBuilder {
64770 inner: CopyMemoryToMicromapInfoEXT {
64771 s_type: StructureType::from_raw(1000396004i32),
64772 ..Default::default()
64773 },
64774 _marker: core::marker::PhantomData,
64775 }
64776 }
64777}
64778impl<'a> CopyMemoryToMicromapInfoEXTBuilder<'a> {
64779 #[inline]
64780 pub fn src(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
64781 self.inner.src = value;
64782 self
64783 }
64784 #[inline]
64785 pub fn dst(mut self, value: MicromapEXT) -> Self {
64786 self.inner.dst = value;
64787 self
64788 }
64789 #[inline]
64790 pub fn mode(mut self, value: CopyMicromapModeEXT) -> Self {
64791 self.inner.mode = value;
64792 self
64793 }
64794 #[inline]
64796 pub fn push_next<T: ExtendsCopyMemoryToMicromapInfoEXT>(
64797 mut self,
64798 next: &'a mut T,
64799 ) -> Self {
64800 unsafe {
64801 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64802 (*next_ptr).p_next = self.inner.p_next as *mut _;
64803 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64804 core::ffi::c_void,
64805 >(next_ptr) as *const _;
64806 }
64807 self
64808 }
64809}
64810impl<'a> core::ops::Deref for CopyMemoryToMicromapInfoEXTBuilder<'a> {
64811 type Target = CopyMemoryToMicromapInfoEXT;
64812 #[inline]
64813 fn deref(&self) -> &Self::Target {
64814 &self.inner
64815 }
64816}
64817impl<'a> core::ops::DerefMut for CopyMemoryToMicromapInfoEXTBuilder<'a> {
64818 #[inline]
64819 fn deref_mut(&mut self) -> &mut Self::Target {
64820 &mut self.inner
64821 }
64822}
64823pub struct MicromapBuildSizesInfoEXTBuilder<'a> {
64825 inner: MicromapBuildSizesInfoEXT,
64826 _marker: core::marker::PhantomData<&'a ()>,
64827}
64828impl MicromapBuildSizesInfoEXT {
64829 #[inline]
64831 pub fn builder<'a>() -> MicromapBuildSizesInfoEXTBuilder<'a> {
64832 MicromapBuildSizesInfoEXTBuilder {
64833 inner: MicromapBuildSizesInfoEXT {
64834 s_type: StructureType::from_raw(1000396008i32),
64835 ..Default::default()
64836 },
64837 _marker: core::marker::PhantomData,
64838 }
64839 }
64840}
64841impl<'a> MicromapBuildSizesInfoEXTBuilder<'a> {
64842 #[inline]
64843 pub fn micromap_size(mut self, value: u64) -> Self {
64844 self.inner.micromap_size = value;
64845 self
64846 }
64847 #[inline]
64848 pub fn build_scratch_size(mut self, value: u64) -> Self {
64849 self.inner.build_scratch_size = value;
64850 self
64851 }
64852 #[inline]
64853 pub fn discardable(mut self, value: bool) -> Self {
64854 self.inner.discardable = value as u32;
64855 self
64856 }
64857 #[inline]
64859 pub fn push_next<T: ExtendsMicromapBuildSizesInfoEXT>(
64860 mut self,
64861 next: &'a mut T,
64862 ) -> Self {
64863 unsafe {
64864 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
64865 (*next_ptr).p_next = self.inner.p_next as *mut _;
64866 self.inner.p_next = <*mut BaseOutStructure>::cast::<
64867 core::ffi::c_void,
64868 >(next_ptr) as *const _;
64869 }
64870 self
64871 }
64872}
64873impl<'a> core::ops::Deref for MicromapBuildSizesInfoEXTBuilder<'a> {
64874 type Target = MicromapBuildSizesInfoEXT;
64875 #[inline]
64876 fn deref(&self) -> &Self::Target {
64877 &self.inner
64878 }
64879}
64880impl<'a> core::ops::DerefMut for MicromapBuildSizesInfoEXTBuilder<'a> {
64881 #[inline]
64882 fn deref_mut(&mut self) -> &mut Self::Target {
64883 &mut self.inner
64884 }
64885}
64886pub struct MicromapUsageEXTBuilder {
64888 inner: MicromapUsageEXT,
64889}
64890impl MicromapUsageEXT {
64891 #[inline]
64893 pub fn builder() -> MicromapUsageEXTBuilder {
64894 MicromapUsageEXTBuilder {
64895 inner: MicromapUsageEXT {
64896 ..Default::default()
64897 },
64898 }
64899 }
64900}
64901impl MicromapUsageEXTBuilder {
64902 #[inline]
64903 pub fn count(mut self, value: u32) -> Self {
64904 self.inner.count = value;
64905 self
64906 }
64907 #[inline]
64908 pub fn subdivision_level(mut self, value: u32) -> Self {
64909 self.inner.subdivision_level = value;
64910 self
64911 }
64912 #[inline]
64913 pub fn format(mut self, value: u32) -> Self {
64914 self.inner.format = value;
64915 self
64916 }
64917}
64918impl core::ops::Deref for MicromapUsageEXTBuilder {
64919 type Target = MicromapUsageEXT;
64920 #[inline]
64921 fn deref(&self) -> &Self::Target {
64922 &self.inner
64923 }
64924}
64925impl core::ops::DerefMut for MicromapUsageEXTBuilder {
64926 #[inline]
64927 fn deref_mut(&mut self) -> &mut Self::Target {
64928 &mut self.inner
64929 }
64930}
64931pub struct MicromapTriangleEXTBuilder {
64933 inner: MicromapTriangleEXT,
64934}
64935impl MicromapTriangleEXT {
64936 #[inline]
64938 pub fn builder() -> MicromapTriangleEXTBuilder {
64939 MicromapTriangleEXTBuilder {
64940 inner: MicromapTriangleEXT {
64941 ..Default::default()
64942 },
64943 }
64944 }
64945}
64946impl MicromapTriangleEXTBuilder {
64947 #[inline]
64948 pub fn data_offset(mut self, value: u32) -> Self {
64949 self.inner.data_offset = value;
64950 self
64951 }
64952 #[inline]
64953 pub fn subdivision_level(mut self, value: u16) -> Self {
64954 self.inner.subdivision_level = value;
64955 self
64956 }
64957 #[inline]
64958 pub fn format(mut self, value: u16) -> Self {
64959 self.inner.format = value;
64960 self
64961 }
64962}
64963impl core::ops::Deref for MicromapTriangleEXTBuilder {
64964 type Target = MicromapTriangleEXT;
64965 #[inline]
64966 fn deref(&self) -> &Self::Target {
64967 &self.inner
64968 }
64969}
64970impl core::ops::DerefMut for MicromapTriangleEXTBuilder {
64971 #[inline]
64972 fn deref_mut(&mut self) -> &mut Self::Target {
64973 &mut self.inner
64974 }
64975}
64976pub struct PhysicalDeviceOpacityMicromapFeaturesEXTBuilder<'a> {
64978 inner: PhysicalDeviceOpacityMicromapFeaturesEXT,
64979 _marker: core::marker::PhantomData<&'a ()>,
64980}
64981impl PhysicalDeviceOpacityMicromapFeaturesEXT {
64982 #[inline]
64984 pub fn builder<'a>() -> PhysicalDeviceOpacityMicromapFeaturesEXTBuilder<'a> {
64985 PhysicalDeviceOpacityMicromapFeaturesEXTBuilder {
64986 inner: PhysicalDeviceOpacityMicromapFeaturesEXT {
64987 s_type: StructureType::from_raw(1000396005i32),
64988 ..Default::default()
64989 },
64990 _marker: core::marker::PhantomData,
64991 }
64992 }
64993}
64994impl<'a> PhysicalDeviceOpacityMicromapFeaturesEXTBuilder<'a> {
64995 #[inline]
64996 pub fn micromap(mut self, value: bool) -> Self {
64997 self.inner.micromap = value as u32;
64998 self
64999 }
65000 #[inline]
65001 pub fn micromap_capture_replay(mut self, value: bool) -> Self {
65002 self.inner.micromap_capture_replay = value as u32;
65003 self
65004 }
65005 #[inline]
65006 pub fn micromap_host_commands(mut self, value: bool) -> Self {
65007 self.inner.micromap_host_commands = value as u32;
65008 self
65009 }
65010 #[inline]
65012 pub fn push_next<T: ExtendsPhysicalDeviceOpacityMicromapFeaturesEXT>(
65013 mut self,
65014 next: &'a mut T,
65015 ) -> Self {
65016 unsafe {
65017 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65018 (*next_ptr).p_next = self.inner.p_next as *mut _;
65019 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65020 core::ffi::c_void,
65021 >(next_ptr);
65022 }
65023 self
65024 }
65025}
65026impl<'a> core::ops::Deref for PhysicalDeviceOpacityMicromapFeaturesEXTBuilder<'a> {
65027 type Target = PhysicalDeviceOpacityMicromapFeaturesEXT;
65028 #[inline]
65029 fn deref(&self) -> &Self::Target {
65030 &self.inner
65031 }
65032}
65033impl<'a> core::ops::DerefMut for PhysicalDeviceOpacityMicromapFeaturesEXTBuilder<'a> {
65034 #[inline]
65035 fn deref_mut(&mut self) -> &mut Self::Target {
65036 &mut self.inner
65037 }
65038}
65039pub struct PhysicalDeviceOpacityMicromapPropertiesEXTBuilder<'a> {
65041 inner: PhysicalDeviceOpacityMicromapPropertiesEXT,
65042 _marker: core::marker::PhantomData<&'a ()>,
65043}
65044impl PhysicalDeviceOpacityMicromapPropertiesEXT {
65045 #[inline]
65047 pub fn builder<'a>() -> PhysicalDeviceOpacityMicromapPropertiesEXTBuilder<'a> {
65048 PhysicalDeviceOpacityMicromapPropertiesEXTBuilder {
65049 inner: PhysicalDeviceOpacityMicromapPropertiesEXT {
65050 s_type: StructureType::from_raw(1000396006i32),
65051 ..Default::default()
65052 },
65053 _marker: core::marker::PhantomData,
65054 }
65055 }
65056}
65057impl<'a> PhysicalDeviceOpacityMicromapPropertiesEXTBuilder<'a> {
65058 #[inline]
65059 pub fn max_opacity2_state_subdivision_level(mut self, value: u32) -> Self {
65060 self.inner.max_opacity2_state_subdivision_level = value;
65061 self
65062 }
65063 #[inline]
65064 pub fn max_opacity4_state_subdivision_level(mut self, value: u32) -> Self {
65065 self.inner.max_opacity4_state_subdivision_level = value;
65066 self
65067 }
65068}
65069impl<'a> core::ops::Deref for PhysicalDeviceOpacityMicromapPropertiesEXTBuilder<'a> {
65070 type Target = PhysicalDeviceOpacityMicromapPropertiesEXT;
65071 #[inline]
65072 fn deref(&self) -> &Self::Target {
65073 &self.inner
65074 }
65075}
65076impl<'a> core::ops::DerefMut for PhysicalDeviceOpacityMicromapPropertiesEXTBuilder<'a> {
65077 #[inline]
65078 fn deref_mut(&mut self) -> &mut Self::Target {
65079 &mut self.inner
65080 }
65081}
65082pub struct AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
65084 inner: AccelerationStructureTrianglesOpacityMicromapEXT,
65085 _marker: core::marker::PhantomData<&'a ()>,
65086}
65087impl AccelerationStructureTrianglesOpacityMicromapEXT {
65088 #[inline]
65090 pub fn builder<'a>() -> AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
65091 AccelerationStructureTrianglesOpacityMicromapEXTBuilder {
65092 inner: AccelerationStructureTrianglesOpacityMicromapEXT {
65093 s_type: StructureType::from_raw(1000396009i32),
65094 ..Default::default()
65095 },
65096 _marker: core::marker::PhantomData,
65097 }
65098 }
65099}
65100impl<'a> AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
65101 #[inline]
65102 pub fn index_type(mut self, value: IndexType) -> Self {
65103 self.inner.index_type = value;
65104 self
65105 }
65106 #[inline]
65107 pub fn index_buffer(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
65108 self.inner.index_buffer = value;
65109 self
65110 }
65111 #[inline]
65112 pub fn index_stride(mut self, value: u64) -> Self {
65113 self.inner.index_stride = value;
65114 self
65115 }
65116 #[inline]
65117 pub fn base_triangle(mut self, value: u32) -> Self {
65118 self.inner.base_triangle = value;
65119 self
65120 }
65121 #[inline]
65122 pub fn usage_counts_count(mut self, value: u32) -> Self {
65123 self.inner.usage_counts_count = value;
65124 self
65125 }
65126 #[inline]
65127 pub fn usage_counts(mut self, slice: &'a [MicromapUsageEXT]) -> Self {
65128 self.inner.usage_counts_count = slice.len() as u32;
65129 self.inner.p_usage_counts = slice.as_ptr();
65130 self
65131 }
65132 #[inline]
65133 pub fn pp_usage_counts(mut self, value: *const *const MicromapUsageEXT) -> Self {
65134 self.inner.pp_usage_counts = value;
65135 self
65136 }
65137 #[inline]
65138 pub fn micromap(mut self, value: MicromapEXT) -> Self {
65139 self.inner.micromap = value;
65140 self
65141 }
65142 #[inline]
65144 pub fn push_next<T: ExtendsAccelerationStructureTrianglesOpacityMicromapEXT>(
65145 mut self,
65146 next: &'a mut T,
65147 ) -> Self {
65148 unsafe {
65149 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65150 (*next_ptr).p_next = self.inner.p_next as *mut _;
65151 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65152 core::ffi::c_void,
65153 >(next_ptr);
65154 }
65155 self
65156 }
65157}
65158impl<'a> core::ops::Deref
65159for AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
65160 type Target = AccelerationStructureTrianglesOpacityMicromapEXT;
65161 #[inline]
65162 fn deref(&self) -> &Self::Target {
65163 &self.inner
65164 }
65165}
65166impl<'a> core::ops::DerefMut
65167for AccelerationStructureTrianglesOpacityMicromapEXTBuilder<'a> {
65168 #[inline]
65169 fn deref_mut(&mut self) -> &mut Self::Target {
65170 &mut self.inner
65171 }
65172}
65173pub struct PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
65175 inner: PhysicalDeviceDisplacementMicromapFeaturesNV,
65176 _marker: core::marker::PhantomData<&'a ()>,
65177}
65178impl PhysicalDeviceDisplacementMicromapFeaturesNV {
65179 #[inline]
65181 pub fn builder<'a>() -> PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
65182 PhysicalDeviceDisplacementMicromapFeaturesNVBuilder {
65183 inner: PhysicalDeviceDisplacementMicromapFeaturesNV {
65184 s_type: StructureType::from_raw(1000397000i32),
65185 ..Default::default()
65186 },
65187 _marker: core::marker::PhantomData,
65188 }
65189 }
65190}
65191impl<'a> PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
65192 #[inline]
65193 pub fn displacement_micromap(mut self, value: bool) -> Self {
65194 self.inner.displacement_micromap = value as u32;
65195 self
65196 }
65197 #[inline]
65199 pub fn push_next<T: ExtendsPhysicalDeviceDisplacementMicromapFeaturesNV>(
65200 mut self,
65201 next: &'a mut T,
65202 ) -> Self {
65203 unsafe {
65204 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65205 (*next_ptr).p_next = self.inner.p_next as *mut _;
65206 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65207 core::ffi::c_void,
65208 >(next_ptr);
65209 }
65210 self
65211 }
65212}
65213impl<'a> core::ops::Deref for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
65214 type Target = PhysicalDeviceDisplacementMicromapFeaturesNV;
65215 #[inline]
65216 fn deref(&self) -> &Self::Target {
65217 &self.inner
65218 }
65219}
65220impl<'a> core::ops::DerefMut
65221for PhysicalDeviceDisplacementMicromapFeaturesNVBuilder<'a> {
65222 #[inline]
65223 fn deref_mut(&mut self) -> &mut Self::Target {
65224 &mut self.inner
65225 }
65226}
65227pub struct PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
65229 inner: PhysicalDeviceDisplacementMicromapPropertiesNV,
65230 _marker: core::marker::PhantomData<&'a ()>,
65231}
65232impl PhysicalDeviceDisplacementMicromapPropertiesNV {
65233 #[inline]
65235 pub fn builder<'a>() -> PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
65236 PhysicalDeviceDisplacementMicromapPropertiesNVBuilder {
65237 inner: PhysicalDeviceDisplacementMicromapPropertiesNV {
65238 s_type: StructureType::from_raw(1000397001i32),
65239 ..Default::default()
65240 },
65241 _marker: core::marker::PhantomData,
65242 }
65243 }
65244}
65245impl<'a> PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
65246 #[inline]
65247 pub fn max_displacement_micromap_subdivision_level(mut self, value: u32) -> Self {
65248 self.inner.max_displacement_micromap_subdivision_level = value;
65249 self
65250 }
65251}
65252impl<'a> core::ops::Deref for PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
65253 type Target = PhysicalDeviceDisplacementMicromapPropertiesNV;
65254 #[inline]
65255 fn deref(&self) -> &Self::Target {
65256 &self.inner
65257 }
65258}
65259impl<'a> core::ops::DerefMut
65260for PhysicalDeviceDisplacementMicromapPropertiesNVBuilder<'a> {
65261 #[inline]
65262 fn deref_mut(&mut self) -> &mut Self::Target {
65263 &mut self.inner
65264 }
65265}
65266pub struct AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
65268 inner: AccelerationStructureTrianglesDisplacementMicromapNV,
65269 _marker: core::marker::PhantomData<&'a ()>,
65270}
65271impl AccelerationStructureTrianglesDisplacementMicromapNV {
65272 #[inline]
65274 pub fn builder<'a>() -> AccelerationStructureTrianglesDisplacementMicromapNVBuilder<
65275 'a,
65276 > {
65277 AccelerationStructureTrianglesDisplacementMicromapNVBuilder {
65278 inner: AccelerationStructureTrianglesDisplacementMicromapNV {
65279 s_type: StructureType::from_raw(1000397002i32),
65280 ..Default::default()
65281 },
65282 _marker: core::marker::PhantomData,
65283 }
65284 }
65285}
65286impl<'a> AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
65287 #[inline]
65288 pub fn displacement_bias_and_scale_format(mut self, value: Format) -> Self {
65289 self.inner.displacement_bias_and_scale_format = value;
65290 self
65291 }
65292 #[inline]
65293 pub fn displacement_vector_format(mut self, value: Format) -> Self {
65294 self.inner.displacement_vector_format = value;
65295 self
65296 }
65297 #[inline]
65298 pub fn displacement_bias_and_scale_buffer(
65299 mut self,
65300 value: DeviceOrHostAddressConstKHR,
65301 ) -> Self {
65302 self.inner.displacement_bias_and_scale_buffer = value;
65303 self
65304 }
65305 #[inline]
65306 pub fn displacement_bias_and_scale_stride(mut self, value: u64) -> Self {
65307 self.inner.displacement_bias_and_scale_stride = value;
65308 self
65309 }
65310 #[inline]
65311 pub fn displacement_vector_buffer(
65312 mut self,
65313 value: DeviceOrHostAddressConstKHR,
65314 ) -> Self {
65315 self.inner.displacement_vector_buffer = value;
65316 self
65317 }
65318 #[inline]
65319 pub fn displacement_vector_stride(mut self, value: u64) -> Self {
65320 self.inner.displacement_vector_stride = value;
65321 self
65322 }
65323 #[inline]
65324 pub fn displaced_micromap_primitive_flags(
65325 mut self,
65326 value: DeviceOrHostAddressConstKHR,
65327 ) -> Self {
65328 self.inner.displaced_micromap_primitive_flags = value;
65329 self
65330 }
65331 #[inline]
65332 pub fn displaced_micromap_primitive_flags_stride(mut self, value: u64) -> Self {
65333 self.inner.displaced_micromap_primitive_flags_stride = value;
65334 self
65335 }
65336 #[inline]
65337 pub fn index_type(mut self, value: IndexType) -> Self {
65338 self.inner.index_type = value;
65339 self
65340 }
65341 #[inline]
65342 pub fn index_buffer(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
65343 self.inner.index_buffer = value;
65344 self
65345 }
65346 #[inline]
65347 pub fn index_stride(mut self, value: u64) -> Self {
65348 self.inner.index_stride = value;
65349 self
65350 }
65351 #[inline]
65352 pub fn base_triangle(mut self, value: u32) -> Self {
65353 self.inner.base_triangle = value;
65354 self
65355 }
65356 #[inline]
65357 pub fn usage_counts_count(mut self, value: u32) -> Self {
65358 self.inner.usage_counts_count = value;
65359 self
65360 }
65361 #[inline]
65362 pub fn usage_counts(mut self, slice: &'a [MicromapUsageEXT]) -> Self {
65363 self.inner.usage_counts_count = slice.len() as u32;
65364 self.inner.p_usage_counts = slice.as_ptr();
65365 self
65366 }
65367 #[inline]
65368 pub fn pp_usage_counts(mut self, value: *const *const MicromapUsageEXT) -> Self {
65369 self.inner.pp_usage_counts = value;
65370 self
65371 }
65372 #[inline]
65373 pub fn micromap(mut self, value: MicromapEXT) -> Self {
65374 self.inner.micromap = value;
65375 self
65376 }
65377 #[inline]
65379 pub fn push_next<T: ExtendsAccelerationStructureTrianglesDisplacementMicromapNV>(
65380 mut self,
65381 next: &'a mut T,
65382 ) -> Self {
65383 unsafe {
65384 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65385 (*next_ptr).p_next = self.inner.p_next as *mut _;
65386 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65387 core::ffi::c_void,
65388 >(next_ptr);
65389 }
65390 self
65391 }
65392}
65393impl<'a> core::ops::Deref
65394for AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
65395 type Target = AccelerationStructureTrianglesDisplacementMicromapNV;
65396 #[inline]
65397 fn deref(&self) -> &Self::Target {
65398 &self.inner
65399 }
65400}
65401impl<'a> core::ops::DerefMut
65402for AccelerationStructureTrianglesDisplacementMicromapNVBuilder<'a> {
65403 #[inline]
65404 fn deref_mut(&mut self) -> &mut Self::Target {
65405 &mut self.inner
65406 }
65407}
65408pub struct PipelinePropertiesIdentifierEXTBuilder<'a> {
65410 inner: PipelinePropertiesIdentifierEXT,
65411 _marker: core::marker::PhantomData<&'a ()>,
65412}
65413impl PipelinePropertiesIdentifierEXT {
65414 #[inline]
65416 pub fn builder<'a>() -> PipelinePropertiesIdentifierEXTBuilder<'a> {
65417 PipelinePropertiesIdentifierEXTBuilder {
65418 inner: PipelinePropertiesIdentifierEXT {
65419 s_type: StructureType::from_raw(1000372000i32),
65420 ..Default::default()
65421 },
65422 _marker: core::marker::PhantomData,
65423 }
65424 }
65425}
65426impl<'a> PipelinePropertiesIdentifierEXTBuilder<'a> {
65427 #[inline]
65428 pub fn pipeline_identifier(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
65429 self.inner.pipeline_identifier = value;
65430 self
65431 }
65432}
65433impl<'a> core::ops::Deref for PipelinePropertiesIdentifierEXTBuilder<'a> {
65434 type Target = PipelinePropertiesIdentifierEXT;
65435 #[inline]
65436 fn deref(&self) -> &Self::Target {
65437 &self.inner
65438 }
65439}
65440impl<'a> core::ops::DerefMut for PipelinePropertiesIdentifierEXTBuilder<'a> {
65441 #[inline]
65442 fn deref_mut(&mut self) -> &mut Self::Target {
65443 &mut self.inner
65444 }
65445}
65446pub struct PhysicalDevicePipelinePropertiesFeaturesEXTBuilder<'a> {
65448 inner: PhysicalDevicePipelinePropertiesFeaturesEXT,
65449 _marker: core::marker::PhantomData<&'a ()>,
65450}
65451impl PhysicalDevicePipelinePropertiesFeaturesEXT {
65452 #[inline]
65454 pub fn builder<'a>() -> PhysicalDevicePipelinePropertiesFeaturesEXTBuilder<'a> {
65455 PhysicalDevicePipelinePropertiesFeaturesEXTBuilder {
65456 inner: PhysicalDevicePipelinePropertiesFeaturesEXT {
65457 s_type: StructureType::from_raw(1000372001i32),
65458 ..Default::default()
65459 },
65460 _marker: core::marker::PhantomData,
65461 }
65462 }
65463}
65464impl<'a> PhysicalDevicePipelinePropertiesFeaturesEXTBuilder<'a> {
65465 #[inline]
65466 pub fn pipeline_properties_identifier(mut self, value: bool) -> Self {
65467 self.inner.pipeline_properties_identifier = value as u32;
65468 self
65469 }
65470 #[inline]
65472 pub fn push_next<T: ExtendsPhysicalDevicePipelinePropertiesFeaturesEXT>(
65473 mut self,
65474 next: &'a mut T,
65475 ) -> Self {
65476 unsafe {
65477 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65478 (*next_ptr).p_next = self.inner.p_next as *mut _;
65479 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65480 core::ffi::c_void,
65481 >(next_ptr);
65482 }
65483 self
65484 }
65485}
65486impl<'a> core::ops::Deref for PhysicalDevicePipelinePropertiesFeaturesEXTBuilder<'a> {
65487 type Target = PhysicalDevicePipelinePropertiesFeaturesEXT;
65488 #[inline]
65489 fn deref(&self) -> &Self::Target {
65490 &self.inner
65491 }
65492}
65493impl<'a> core::ops::DerefMut for PhysicalDevicePipelinePropertiesFeaturesEXTBuilder<'a> {
65494 #[inline]
65495 fn deref_mut(&mut self) -> &mut Self::Target {
65496 &mut self.inner
65497 }
65498}
65499pub struct PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder<'a> {
65501 inner: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD,
65502 _marker: core::marker::PhantomData<&'a ()>,
65503}
65504impl PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
65505 #[inline]
65507 pub fn builder<'a>() -> PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder<
65508 'a,
65509 > {
65510 PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder {
65511 inner: PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
65512 s_type: StructureType::from_raw(1000321000i32),
65513 ..Default::default()
65514 },
65515 _marker: core::marker::PhantomData,
65516 }
65517 }
65518}
65519impl<'a> PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder<'a> {
65520 #[inline]
65521 pub fn shader_early_and_late_fragment_tests(mut self, value: bool) -> Self {
65522 self.inner.shader_early_and_late_fragment_tests = value as u32;
65523 self
65524 }
65525 #[inline]
65527 pub fn push_next<T: ExtendsPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>(
65528 mut self,
65529 next: &'a mut T,
65530 ) -> Self {
65531 unsafe {
65532 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65533 (*next_ptr).p_next = self.inner.p_next as *mut _;
65534 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65535 core::ffi::c_void,
65536 >(next_ptr);
65537 }
65538 self
65539 }
65540}
65541impl<'a> core::ops::Deref
65542for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder<'a> {
65543 type Target = PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
65544 #[inline]
65545 fn deref(&self) -> &Self::Target {
65546 &self.inner
65547 }
65548}
65549impl<'a> core::ops::DerefMut
65550for PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMDBuilder<'a> {
65551 #[inline]
65552 fn deref_mut(&mut self) -> &mut Self::Target {
65553 &mut self.inner
65554 }
65555}
65556pub struct ExternalMemoryAcquireUnmodifiedEXTBuilder<'a> {
65558 inner: ExternalMemoryAcquireUnmodifiedEXT,
65559 _marker: core::marker::PhantomData<&'a ()>,
65560}
65561impl ExternalMemoryAcquireUnmodifiedEXT {
65562 #[inline]
65564 pub fn builder<'a>() -> ExternalMemoryAcquireUnmodifiedEXTBuilder<'a> {
65565 ExternalMemoryAcquireUnmodifiedEXTBuilder {
65566 inner: ExternalMemoryAcquireUnmodifiedEXT {
65567 s_type: StructureType::from_raw(1000453000i32),
65568 ..Default::default()
65569 },
65570 _marker: core::marker::PhantomData,
65571 }
65572 }
65573}
65574impl<'a> ExternalMemoryAcquireUnmodifiedEXTBuilder<'a> {
65575 #[inline]
65576 pub fn acquire_unmodified_memory(mut self, value: bool) -> Self {
65577 self.inner.acquire_unmodified_memory = value as u32;
65578 self
65579 }
65580 #[inline]
65582 pub fn push_next<T: ExtendsExternalMemoryAcquireUnmodifiedEXT>(
65583 mut self,
65584 next: &'a mut T,
65585 ) -> Self {
65586 unsafe {
65587 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65588 (*next_ptr).p_next = self.inner.p_next as *mut _;
65589 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65590 core::ffi::c_void,
65591 >(next_ptr) as *const _;
65592 }
65593 self
65594 }
65595}
65596impl<'a> core::ops::Deref for ExternalMemoryAcquireUnmodifiedEXTBuilder<'a> {
65597 type Target = ExternalMemoryAcquireUnmodifiedEXT;
65598 #[inline]
65599 fn deref(&self) -> &Self::Target {
65600 &self.inner
65601 }
65602}
65603impl<'a> core::ops::DerefMut for ExternalMemoryAcquireUnmodifiedEXTBuilder<'a> {
65604 #[inline]
65605 fn deref_mut(&mut self) -> &mut Self::Target {
65606 &mut self.inner
65607 }
65608}
65609pub struct ExportMetalObjectCreateInfoEXTBuilder<'a> {
65611 inner: ExportMetalObjectCreateInfoEXT,
65612 _marker: core::marker::PhantomData<&'a ()>,
65613}
65614impl ExportMetalObjectCreateInfoEXT {
65615 #[inline]
65617 pub fn builder<'a>() -> ExportMetalObjectCreateInfoEXTBuilder<'a> {
65618 ExportMetalObjectCreateInfoEXTBuilder {
65619 inner: ExportMetalObjectCreateInfoEXT {
65620 s_type: StructureType::from_raw(1000311000i32),
65621 ..Default::default()
65622 },
65623 _marker: core::marker::PhantomData,
65624 }
65625 }
65626}
65627impl<'a> ExportMetalObjectCreateInfoEXTBuilder<'a> {
65628 #[inline]
65629 pub fn export_object_type(
65630 mut self,
65631 value: ExportMetalObjectTypeFlagBitsEXT,
65632 ) -> Self {
65633 self.inner.export_object_type = value;
65634 self
65635 }
65636 #[inline]
65638 pub fn push_next<T: ExtendsExportMetalObjectCreateInfoEXT>(
65639 mut self,
65640 next: &'a mut T,
65641 ) -> Self {
65642 unsafe {
65643 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65644 (*next_ptr).p_next = self.inner.p_next as *mut _;
65645 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65646 core::ffi::c_void,
65647 >(next_ptr) as *const _;
65648 }
65649 self
65650 }
65651}
65652impl<'a> core::ops::Deref for ExportMetalObjectCreateInfoEXTBuilder<'a> {
65653 type Target = ExportMetalObjectCreateInfoEXT;
65654 #[inline]
65655 fn deref(&self) -> &Self::Target {
65656 &self.inner
65657 }
65658}
65659impl<'a> core::ops::DerefMut for ExportMetalObjectCreateInfoEXTBuilder<'a> {
65660 #[inline]
65661 fn deref_mut(&mut self) -> &mut Self::Target {
65662 &mut self.inner
65663 }
65664}
65665pub struct ExportMetalObjectsInfoEXTBuilder<'a> {
65667 inner: ExportMetalObjectsInfoEXT,
65668 _marker: core::marker::PhantomData<&'a ()>,
65669}
65670impl ExportMetalObjectsInfoEXT {
65671 #[inline]
65673 pub fn builder<'a>() -> ExportMetalObjectsInfoEXTBuilder<'a> {
65674 ExportMetalObjectsInfoEXTBuilder {
65675 inner: ExportMetalObjectsInfoEXT {
65676 s_type: StructureType::from_raw(1000311001i32),
65677 ..Default::default()
65678 },
65679 _marker: core::marker::PhantomData,
65680 }
65681 }
65682}
65683impl<'a> ExportMetalObjectsInfoEXTBuilder<'a> {
65684 #[inline]
65686 pub fn push_next<T: ExtendsExportMetalObjectsInfoEXT>(
65687 mut self,
65688 next: &'a mut T,
65689 ) -> Self {
65690 unsafe {
65691 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65692 (*next_ptr).p_next = self.inner.p_next as *mut _;
65693 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65694 core::ffi::c_void,
65695 >(next_ptr) as *const _;
65696 }
65697 self
65698 }
65699}
65700impl<'a> core::ops::Deref for ExportMetalObjectsInfoEXTBuilder<'a> {
65701 type Target = ExportMetalObjectsInfoEXT;
65702 #[inline]
65703 fn deref(&self) -> &Self::Target {
65704 &self.inner
65705 }
65706}
65707impl<'a> core::ops::DerefMut for ExportMetalObjectsInfoEXTBuilder<'a> {
65708 #[inline]
65709 fn deref_mut(&mut self) -> &mut Self::Target {
65710 &mut self.inner
65711 }
65712}
65713pub struct ExportMetalDeviceInfoEXTBuilder<'a> {
65715 inner: ExportMetalDeviceInfoEXT,
65716 _marker: core::marker::PhantomData<&'a ()>,
65717}
65718impl ExportMetalDeviceInfoEXT {
65719 #[inline]
65721 pub fn builder<'a>() -> ExportMetalDeviceInfoEXTBuilder<'a> {
65722 ExportMetalDeviceInfoEXTBuilder {
65723 inner: ExportMetalDeviceInfoEXT {
65724 s_type: StructureType::from_raw(1000311002i32),
65725 ..Default::default()
65726 },
65727 _marker: core::marker::PhantomData,
65728 }
65729 }
65730}
65731impl<'a> ExportMetalDeviceInfoEXTBuilder<'a> {
65732 #[inline]
65733 pub fn mtl_device(mut self, value: *const core::ffi::c_void) -> Self {
65734 self.inner.mtl_device = value;
65735 self
65736 }
65737 #[inline]
65739 pub fn push_next<T: ExtendsExportMetalDeviceInfoEXT>(
65740 mut self,
65741 next: &'a mut T,
65742 ) -> Self {
65743 unsafe {
65744 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65745 (*next_ptr).p_next = self.inner.p_next as *mut _;
65746 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65747 core::ffi::c_void,
65748 >(next_ptr) as *const _;
65749 }
65750 self
65751 }
65752}
65753impl<'a> core::ops::Deref for ExportMetalDeviceInfoEXTBuilder<'a> {
65754 type Target = ExportMetalDeviceInfoEXT;
65755 #[inline]
65756 fn deref(&self) -> &Self::Target {
65757 &self.inner
65758 }
65759}
65760impl<'a> core::ops::DerefMut for ExportMetalDeviceInfoEXTBuilder<'a> {
65761 #[inline]
65762 fn deref_mut(&mut self) -> &mut Self::Target {
65763 &mut self.inner
65764 }
65765}
65766pub struct ExportMetalCommandQueueInfoEXTBuilder<'a> {
65768 inner: ExportMetalCommandQueueInfoEXT,
65769 _marker: core::marker::PhantomData<&'a ()>,
65770}
65771impl ExportMetalCommandQueueInfoEXT {
65772 #[inline]
65774 pub fn builder<'a>() -> ExportMetalCommandQueueInfoEXTBuilder<'a> {
65775 ExportMetalCommandQueueInfoEXTBuilder {
65776 inner: ExportMetalCommandQueueInfoEXT {
65777 s_type: StructureType::from_raw(1000311003i32),
65778 ..Default::default()
65779 },
65780 _marker: core::marker::PhantomData,
65781 }
65782 }
65783}
65784impl<'a> ExportMetalCommandQueueInfoEXTBuilder<'a> {
65785 #[inline]
65786 pub fn queue(mut self, value: Queue) -> Self {
65787 self.inner.queue = value;
65788 self
65789 }
65790 #[inline]
65791 pub fn mtl_command_queue(mut self, value: *const core::ffi::c_void) -> Self {
65792 self.inner.mtl_command_queue = value;
65793 self
65794 }
65795 #[inline]
65797 pub fn push_next<T: ExtendsExportMetalCommandQueueInfoEXT>(
65798 mut self,
65799 next: &'a mut T,
65800 ) -> Self {
65801 unsafe {
65802 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65803 (*next_ptr).p_next = self.inner.p_next as *mut _;
65804 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65805 core::ffi::c_void,
65806 >(next_ptr) as *const _;
65807 }
65808 self
65809 }
65810}
65811impl<'a> core::ops::Deref for ExportMetalCommandQueueInfoEXTBuilder<'a> {
65812 type Target = ExportMetalCommandQueueInfoEXT;
65813 #[inline]
65814 fn deref(&self) -> &Self::Target {
65815 &self.inner
65816 }
65817}
65818impl<'a> core::ops::DerefMut for ExportMetalCommandQueueInfoEXTBuilder<'a> {
65819 #[inline]
65820 fn deref_mut(&mut self) -> &mut Self::Target {
65821 &mut self.inner
65822 }
65823}
65824pub struct ExportMetalBufferInfoEXTBuilder<'a> {
65826 inner: ExportMetalBufferInfoEXT,
65827 _marker: core::marker::PhantomData<&'a ()>,
65828}
65829impl ExportMetalBufferInfoEXT {
65830 #[inline]
65832 pub fn builder<'a>() -> ExportMetalBufferInfoEXTBuilder<'a> {
65833 ExportMetalBufferInfoEXTBuilder {
65834 inner: ExportMetalBufferInfoEXT {
65835 s_type: StructureType::from_raw(1000311004i32),
65836 ..Default::default()
65837 },
65838 _marker: core::marker::PhantomData,
65839 }
65840 }
65841}
65842impl<'a> ExportMetalBufferInfoEXTBuilder<'a> {
65843 #[inline]
65844 pub fn memory(mut self, value: DeviceMemory) -> Self {
65845 self.inner.memory = value;
65846 self
65847 }
65848 #[inline]
65849 pub fn mtl_buffer(mut self, value: *const core::ffi::c_void) -> Self {
65850 self.inner.mtl_buffer = value;
65851 self
65852 }
65853 #[inline]
65855 pub fn push_next<T: ExtendsExportMetalBufferInfoEXT>(
65856 mut self,
65857 next: &'a mut T,
65858 ) -> Self {
65859 unsafe {
65860 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65861 (*next_ptr).p_next = self.inner.p_next as *mut _;
65862 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65863 core::ffi::c_void,
65864 >(next_ptr) as *const _;
65865 }
65866 self
65867 }
65868}
65869impl<'a> core::ops::Deref for ExportMetalBufferInfoEXTBuilder<'a> {
65870 type Target = ExportMetalBufferInfoEXT;
65871 #[inline]
65872 fn deref(&self) -> &Self::Target {
65873 &self.inner
65874 }
65875}
65876impl<'a> core::ops::DerefMut for ExportMetalBufferInfoEXTBuilder<'a> {
65877 #[inline]
65878 fn deref_mut(&mut self) -> &mut Self::Target {
65879 &mut self.inner
65880 }
65881}
65882pub struct ImportMetalBufferInfoEXTBuilder<'a> {
65884 inner: ImportMetalBufferInfoEXT,
65885 _marker: core::marker::PhantomData<&'a ()>,
65886}
65887impl ImportMetalBufferInfoEXT {
65888 #[inline]
65890 pub fn builder<'a>() -> ImportMetalBufferInfoEXTBuilder<'a> {
65891 ImportMetalBufferInfoEXTBuilder {
65892 inner: ImportMetalBufferInfoEXT {
65893 s_type: StructureType::from_raw(1000311005i32),
65894 ..Default::default()
65895 },
65896 _marker: core::marker::PhantomData,
65897 }
65898 }
65899}
65900impl<'a> ImportMetalBufferInfoEXTBuilder<'a> {
65901 #[inline]
65902 pub fn mtl_buffer(mut self, value: *const core::ffi::c_void) -> Self {
65903 self.inner.mtl_buffer = value;
65904 self
65905 }
65906 #[inline]
65908 pub fn push_next<T: ExtendsImportMetalBufferInfoEXT>(
65909 mut self,
65910 next: &'a mut T,
65911 ) -> Self {
65912 unsafe {
65913 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65914 (*next_ptr).p_next = self.inner.p_next as *mut _;
65915 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65916 core::ffi::c_void,
65917 >(next_ptr) as *const _;
65918 }
65919 self
65920 }
65921}
65922impl<'a> core::ops::Deref for ImportMetalBufferInfoEXTBuilder<'a> {
65923 type Target = ImportMetalBufferInfoEXT;
65924 #[inline]
65925 fn deref(&self) -> &Self::Target {
65926 &self.inner
65927 }
65928}
65929impl<'a> core::ops::DerefMut for ImportMetalBufferInfoEXTBuilder<'a> {
65930 #[inline]
65931 fn deref_mut(&mut self) -> &mut Self::Target {
65932 &mut self.inner
65933 }
65934}
65935pub struct ExportMetalTextureInfoEXTBuilder<'a> {
65937 inner: ExportMetalTextureInfoEXT,
65938 _marker: core::marker::PhantomData<&'a ()>,
65939}
65940impl ExportMetalTextureInfoEXT {
65941 #[inline]
65943 pub fn builder<'a>() -> ExportMetalTextureInfoEXTBuilder<'a> {
65944 ExportMetalTextureInfoEXTBuilder {
65945 inner: ExportMetalTextureInfoEXT {
65946 s_type: StructureType::from_raw(1000311006i32),
65947 ..Default::default()
65948 },
65949 _marker: core::marker::PhantomData,
65950 }
65951 }
65952}
65953impl<'a> ExportMetalTextureInfoEXTBuilder<'a> {
65954 #[inline]
65955 pub fn image(mut self, value: Image) -> Self {
65956 self.inner.image = value;
65957 self
65958 }
65959 #[inline]
65960 pub fn image_view(mut self, value: ImageView) -> Self {
65961 self.inner.image_view = value;
65962 self
65963 }
65964 #[inline]
65965 pub fn buffer_view(mut self, value: BufferView) -> Self {
65966 self.inner.buffer_view = value;
65967 self
65968 }
65969 #[inline]
65970 pub fn plane(mut self, value: ImageAspectFlagBits) -> Self {
65971 self.inner.plane = value;
65972 self
65973 }
65974 #[inline]
65975 pub fn mtl_texture(mut self, value: *const core::ffi::c_void) -> Self {
65976 self.inner.mtl_texture = value;
65977 self
65978 }
65979 #[inline]
65981 pub fn push_next<T: ExtendsExportMetalTextureInfoEXT>(
65982 mut self,
65983 next: &'a mut T,
65984 ) -> Self {
65985 unsafe {
65986 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
65987 (*next_ptr).p_next = self.inner.p_next as *mut _;
65988 self.inner.p_next = <*mut BaseOutStructure>::cast::<
65989 core::ffi::c_void,
65990 >(next_ptr) as *const _;
65991 }
65992 self
65993 }
65994}
65995impl<'a> core::ops::Deref for ExportMetalTextureInfoEXTBuilder<'a> {
65996 type Target = ExportMetalTextureInfoEXT;
65997 #[inline]
65998 fn deref(&self) -> &Self::Target {
65999 &self.inner
66000 }
66001}
66002impl<'a> core::ops::DerefMut for ExportMetalTextureInfoEXTBuilder<'a> {
66003 #[inline]
66004 fn deref_mut(&mut self) -> &mut Self::Target {
66005 &mut self.inner
66006 }
66007}
66008pub struct ImportMetalTextureInfoEXTBuilder<'a> {
66010 inner: ImportMetalTextureInfoEXT,
66011 _marker: core::marker::PhantomData<&'a ()>,
66012}
66013impl ImportMetalTextureInfoEXT {
66014 #[inline]
66016 pub fn builder<'a>() -> ImportMetalTextureInfoEXTBuilder<'a> {
66017 ImportMetalTextureInfoEXTBuilder {
66018 inner: ImportMetalTextureInfoEXT {
66019 s_type: StructureType::from_raw(1000311007i32),
66020 ..Default::default()
66021 },
66022 _marker: core::marker::PhantomData,
66023 }
66024 }
66025}
66026impl<'a> ImportMetalTextureInfoEXTBuilder<'a> {
66027 #[inline]
66028 pub fn plane(mut self, value: ImageAspectFlagBits) -> Self {
66029 self.inner.plane = value;
66030 self
66031 }
66032 #[inline]
66033 pub fn mtl_texture(mut self, value: *const core::ffi::c_void) -> Self {
66034 self.inner.mtl_texture = value;
66035 self
66036 }
66037 #[inline]
66039 pub fn push_next<T: ExtendsImportMetalTextureInfoEXT>(
66040 mut self,
66041 next: &'a mut T,
66042 ) -> Self {
66043 unsafe {
66044 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66045 (*next_ptr).p_next = self.inner.p_next as *mut _;
66046 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66047 core::ffi::c_void,
66048 >(next_ptr) as *const _;
66049 }
66050 self
66051 }
66052}
66053impl<'a> core::ops::Deref for ImportMetalTextureInfoEXTBuilder<'a> {
66054 type Target = ImportMetalTextureInfoEXT;
66055 #[inline]
66056 fn deref(&self) -> &Self::Target {
66057 &self.inner
66058 }
66059}
66060impl<'a> core::ops::DerefMut for ImportMetalTextureInfoEXTBuilder<'a> {
66061 #[inline]
66062 fn deref_mut(&mut self) -> &mut Self::Target {
66063 &mut self.inner
66064 }
66065}
66066pub struct ExportMetalIOSurfaceInfoEXTBuilder<'a> {
66068 inner: ExportMetalIOSurfaceInfoEXT,
66069 _marker: core::marker::PhantomData<&'a ()>,
66070}
66071impl ExportMetalIOSurfaceInfoEXT {
66072 #[inline]
66074 pub fn builder<'a>() -> ExportMetalIOSurfaceInfoEXTBuilder<'a> {
66075 ExportMetalIOSurfaceInfoEXTBuilder {
66076 inner: ExportMetalIOSurfaceInfoEXT {
66077 s_type: StructureType::from_raw(1000311008i32),
66078 ..Default::default()
66079 },
66080 _marker: core::marker::PhantomData,
66081 }
66082 }
66083}
66084impl<'a> ExportMetalIOSurfaceInfoEXTBuilder<'a> {
66085 #[inline]
66086 pub fn image(mut self, value: Image) -> Self {
66087 self.inner.image = value;
66088 self
66089 }
66090 #[inline]
66091 pub fn io_surface(mut self, value: *const core::ffi::c_void) -> Self {
66092 self.inner.io_surface = value;
66093 self
66094 }
66095 #[inline]
66097 pub fn push_next<T: ExtendsExportMetalIOSurfaceInfoEXT>(
66098 mut self,
66099 next: &'a mut T,
66100 ) -> Self {
66101 unsafe {
66102 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66103 (*next_ptr).p_next = self.inner.p_next as *mut _;
66104 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66105 core::ffi::c_void,
66106 >(next_ptr) as *const _;
66107 }
66108 self
66109 }
66110}
66111impl<'a> core::ops::Deref for ExportMetalIOSurfaceInfoEXTBuilder<'a> {
66112 type Target = ExportMetalIOSurfaceInfoEXT;
66113 #[inline]
66114 fn deref(&self) -> &Self::Target {
66115 &self.inner
66116 }
66117}
66118impl<'a> core::ops::DerefMut for ExportMetalIOSurfaceInfoEXTBuilder<'a> {
66119 #[inline]
66120 fn deref_mut(&mut self) -> &mut Self::Target {
66121 &mut self.inner
66122 }
66123}
66124pub struct ImportMetalIOSurfaceInfoEXTBuilder<'a> {
66126 inner: ImportMetalIOSurfaceInfoEXT,
66127 _marker: core::marker::PhantomData<&'a ()>,
66128}
66129impl ImportMetalIOSurfaceInfoEXT {
66130 #[inline]
66132 pub fn builder<'a>() -> ImportMetalIOSurfaceInfoEXTBuilder<'a> {
66133 ImportMetalIOSurfaceInfoEXTBuilder {
66134 inner: ImportMetalIOSurfaceInfoEXT {
66135 s_type: StructureType::from_raw(1000311009i32),
66136 ..Default::default()
66137 },
66138 _marker: core::marker::PhantomData,
66139 }
66140 }
66141}
66142impl<'a> ImportMetalIOSurfaceInfoEXTBuilder<'a> {
66143 #[inline]
66144 pub fn io_surface(mut self, value: *const core::ffi::c_void) -> Self {
66145 self.inner.io_surface = value;
66146 self
66147 }
66148 #[inline]
66150 pub fn push_next<T: ExtendsImportMetalIOSurfaceInfoEXT>(
66151 mut self,
66152 next: &'a mut T,
66153 ) -> Self {
66154 unsafe {
66155 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66156 (*next_ptr).p_next = self.inner.p_next as *mut _;
66157 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66158 core::ffi::c_void,
66159 >(next_ptr) as *const _;
66160 }
66161 self
66162 }
66163}
66164impl<'a> core::ops::Deref for ImportMetalIOSurfaceInfoEXTBuilder<'a> {
66165 type Target = ImportMetalIOSurfaceInfoEXT;
66166 #[inline]
66167 fn deref(&self) -> &Self::Target {
66168 &self.inner
66169 }
66170}
66171impl<'a> core::ops::DerefMut for ImportMetalIOSurfaceInfoEXTBuilder<'a> {
66172 #[inline]
66173 fn deref_mut(&mut self) -> &mut Self::Target {
66174 &mut self.inner
66175 }
66176}
66177pub struct ExportMetalSharedEventInfoEXTBuilder<'a> {
66179 inner: ExportMetalSharedEventInfoEXT,
66180 _marker: core::marker::PhantomData<&'a ()>,
66181}
66182impl ExportMetalSharedEventInfoEXT {
66183 #[inline]
66185 pub fn builder<'a>() -> ExportMetalSharedEventInfoEXTBuilder<'a> {
66186 ExportMetalSharedEventInfoEXTBuilder {
66187 inner: ExportMetalSharedEventInfoEXT {
66188 s_type: StructureType::from_raw(1000311010i32),
66189 ..Default::default()
66190 },
66191 _marker: core::marker::PhantomData,
66192 }
66193 }
66194}
66195impl<'a> ExportMetalSharedEventInfoEXTBuilder<'a> {
66196 #[inline]
66197 pub fn semaphore(mut self, value: Semaphore) -> Self {
66198 self.inner.semaphore = value;
66199 self
66200 }
66201 #[inline]
66202 pub fn event(mut self, value: Event) -> Self {
66203 self.inner.event = value;
66204 self
66205 }
66206 #[inline]
66207 pub fn mtl_shared_event(mut self, value: *const core::ffi::c_void) -> Self {
66208 self.inner.mtl_shared_event = value;
66209 self
66210 }
66211 #[inline]
66213 pub fn push_next<T: ExtendsExportMetalSharedEventInfoEXT>(
66214 mut self,
66215 next: &'a mut T,
66216 ) -> Self {
66217 unsafe {
66218 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66219 (*next_ptr).p_next = self.inner.p_next as *mut _;
66220 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66221 core::ffi::c_void,
66222 >(next_ptr) as *const _;
66223 }
66224 self
66225 }
66226}
66227impl<'a> core::ops::Deref for ExportMetalSharedEventInfoEXTBuilder<'a> {
66228 type Target = ExportMetalSharedEventInfoEXT;
66229 #[inline]
66230 fn deref(&self) -> &Self::Target {
66231 &self.inner
66232 }
66233}
66234impl<'a> core::ops::DerefMut for ExportMetalSharedEventInfoEXTBuilder<'a> {
66235 #[inline]
66236 fn deref_mut(&mut self) -> &mut Self::Target {
66237 &mut self.inner
66238 }
66239}
66240pub struct ImportMetalSharedEventInfoEXTBuilder<'a> {
66242 inner: ImportMetalSharedEventInfoEXT,
66243 _marker: core::marker::PhantomData<&'a ()>,
66244}
66245impl ImportMetalSharedEventInfoEXT {
66246 #[inline]
66248 pub fn builder<'a>() -> ImportMetalSharedEventInfoEXTBuilder<'a> {
66249 ImportMetalSharedEventInfoEXTBuilder {
66250 inner: ImportMetalSharedEventInfoEXT {
66251 s_type: StructureType::from_raw(1000311011i32),
66252 ..Default::default()
66253 },
66254 _marker: core::marker::PhantomData,
66255 }
66256 }
66257}
66258impl<'a> ImportMetalSharedEventInfoEXTBuilder<'a> {
66259 #[inline]
66260 pub fn mtl_shared_event(mut self, value: *const core::ffi::c_void) -> Self {
66261 self.inner.mtl_shared_event = value;
66262 self
66263 }
66264 #[inline]
66266 pub fn push_next<T: ExtendsImportMetalSharedEventInfoEXT>(
66267 mut self,
66268 next: &'a mut T,
66269 ) -> Self {
66270 unsafe {
66271 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66272 (*next_ptr).p_next = self.inner.p_next as *mut _;
66273 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66274 core::ffi::c_void,
66275 >(next_ptr) as *const _;
66276 }
66277 self
66278 }
66279}
66280impl<'a> core::ops::Deref for ImportMetalSharedEventInfoEXTBuilder<'a> {
66281 type Target = ImportMetalSharedEventInfoEXT;
66282 #[inline]
66283 fn deref(&self) -> &Self::Target {
66284 &self.inner
66285 }
66286}
66287impl<'a> core::ops::DerefMut for ImportMetalSharedEventInfoEXTBuilder<'a> {
66288 #[inline]
66289 fn deref_mut(&mut self) -> &mut Self::Target {
66290 &mut self.inner
66291 }
66292}
66293pub struct PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder<'a> {
66295 inner: PhysicalDeviceNonSeamlessCubeMapFeaturesEXT,
66296 _marker: core::marker::PhantomData<&'a ()>,
66297}
66298impl PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
66299 #[inline]
66301 pub fn builder<'a>() -> PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder<'a> {
66302 PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder {
66303 inner: PhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
66304 s_type: StructureType::from_raw(1000422000i32),
66305 ..Default::default()
66306 },
66307 _marker: core::marker::PhantomData,
66308 }
66309 }
66310}
66311impl<'a> PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder<'a> {
66312 #[inline]
66313 pub fn non_seamless_cube_map(mut self, value: bool) -> Self {
66314 self.inner.non_seamless_cube_map = value as u32;
66315 self
66316 }
66317 #[inline]
66319 pub fn push_next<T: ExtendsPhysicalDeviceNonSeamlessCubeMapFeaturesEXT>(
66320 mut self,
66321 next: &'a mut T,
66322 ) -> Self {
66323 unsafe {
66324 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66325 (*next_ptr).p_next = self.inner.p_next as *mut _;
66326 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66327 core::ffi::c_void,
66328 >(next_ptr);
66329 }
66330 self
66331 }
66332}
66333impl<'a> core::ops::Deref for PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder<'a> {
66334 type Target = PhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
66335 #[inline]
66336 fn deref(&self) -> &Self::Target {
66337 &self.inner
66338 }
66339}
66340impl<'a> core::ops::DerefMut for PhysicalDeviceNonSeamlessCubeMapFeaturesEXTBuilder<'a> {
66341 #[inline]
66342 fn deref_mut(&mut self) -> &mut Self::Target {
66343 &mut self.inner
66344 }
66345}
66346pub struct PhysicalDevicePipelineRobustnessFeaturesBuilder<'a> {
66348 inner: PhysicalDevicePipelineRobustnessFeatures,
66349 _marker: core::marker::PhantomData<&'a ()>,
66350}
66351impl PhysicalDevicePipelineRobustnessFeatures {
66352 #[inline]
66354 pub fn builder<'a>() -> PhysicalDevicePipelineRobustnessFeaturesBuilder<'a> {
66355 PhysicalDevicePipelineRobustnessFeaturesBuilder {
66356 inner: PhysicalDevicePipelineRobustnessFeatures {
66357 s_type: StructureType::from_raw(1000068001i32),
66358 ..Default::default()
66359 },
66360 _marker: core::marker::PhantomData,
66361 }
66362 }
66363}
66364impl<'a> PhysicalDevicePipelineRobustnessFeaturesBuilder<'a> {
66365 #[inline]
66366 pub fn pipeline_robustness(mut self, value: bool) -> Self {
66367 self.inner.pipeline_robustness = value as u32;
66368 self
66369 }
66370 #[inline]
66372 pub fn push_next<T: ExtendsPhysicalDevicePipelineRobustnessFeatures>(
66373 mut self,
66374 next: &'a mut T,
66375 ) -> Self {
66376 unsafe {
66377 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66378 (*next_ptr).p_next = self.inner.p_next as *mut _;
66379 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66380 core::ffi::c_void,
66381 >(next_ptr);
66382 }
66383 self
66384 }
66385}
66386impl<'a> core::ops::Deref for PhysicalDevicePipelineRobustnessFeaturesBuilder<'a> {
66387 type Target = PhysicalDevicePipelineRobustnessFeatures;
66388 #[inline]
66389 fn deref(&self) -> &Self::Target {
66390 &self.inner
66391 }
66392}
66393impl<'a> core::ops::DerefMut for PhysicalDevicePipelineRobustnessFeaturesBuilder<'a> {
66394 #[inline]
66395 fn deref_mut(&mut self) -> &mut Self::Target {
66396 &mut self.inner
66397 }
66398}
66399pub struct PipelineRobustnessCreateInfoBuilder<'a> {
66401 inner: PipelineRobustnessCreateInfo,
66402 _marker: core::marker::PhantomData<&'a ()>,
66403}
66404impl PipelineRobustnessCreateInfo {
66405 #[inline]
66407 pub fn builder<'a>() -> PipelineRobustnessCreateInfoBuilder<'a> {
66408 PipelineRobustnessCreateInfoBuilder {
66409 inner: PipelineRobustnessCreateInfo {
66410 s_type: StructureType::from_raw(1000068000i32),
66411 ..Default::default()
66412 },
66413 _marker: core::marker::PhantomData,
66414 }
66415 }
66416}
66417impl<'a> PipelineRobustnessCreateInfoBuilder<'a> {
66418 #[inline]
66419 pub fn storage_buffers(mut self, value: PipelineRobustnessBufferBehavior) -> Self {
66420 self.inner.storage_buffers = value;
66421 self
66422 }
66423 #[inline]
66424 pub fn uniform_buffers(mut self, value: PipelineRobustnessBufferBehavior) -> Self {
66425 self.inner.uniform_buffers = value;
66426 self
66427 }
66428 #[inline]
66429 pub fn vertex_inputs(mut self, value: PipelineRobustnessBufferBehavior) -> Self {
66430 self.inner.vertex_inputs = value;
66431 self
66432 }
66433 #[inline]
66434 pub fn images(mut self, value: PipelineRobustnessImageBehavior) -> Self {
66435 self.inner.images = value;
66436 self
66437 }
66438 #[inline]
66440 pub fn push_next<T: ExtendsPipelineRobustnessCreateInfo>(
66441 mut self,
66442 next: &'a mut T,
66443 ) -> Self {
66444 unsafe {
66445 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66446 (*next_ptr).p_next = self.inner.p_next as *mut _;
66447 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66448 core::ffi::c_void,
66449 >(next_ptr) as *const _;
66450 }
66451 self
66452 }
66453}
66454impl<'a> core::ops::Deref for PipelineRobustnessCreateInfoBuilder<'a> {
66455 type Target = PipelineRobustnessCreateInfo;
66456 #[inline]
66457 fn deref(&self) -> &Self::Target {
66458 &self.inner
66459 }
66460}
66461impl<'a> core::ops::DerefMut for PipelineRobustnessCreateInfoBuilder<'a> {
66462 #[inline]
66463 fn deref_mut(&mut self) -> &mut Self::Target {
66464 &mut self.inner
66465 }
66466}
66467pub struct PhysicalDevicePipelineRobustnessPropertiesBuilder<'a> {
66469 inner: PhysicalDevicePipelineRobustnessProperties,
66470 _marker: core::marker::PhantomData<&'a ()>,
66471}
66472impl PhysicalDevicePipelineRobustnessProperties {
66473 #[inline]
66475 pub fn builder<'a>() -> PhysicalDevicePipelineRobustnessPropertiesBuilder<'a> {
66476 PhysicalDevicePipelineRobustnessPropertiesBuilder {
66477 inner: PhysicalDevicePipelineRobustnessProperties {
66478 s_type: StructureType::from_raw(1000068002i32),
66479 ..Default::default()
66480 },
66481 _marker: core::marker::PhantomData,
66482 }
66483 }
66484}
66485impl<'a> PhysicalDevicePipelineRobustnessPropertiesBuilder<'a> {
66486 #[inline]
66487 pub fn default_robustness_storage_buffers(
66488 mut self,
66489 value: PipelineRobustnessBufferBehavior,
66490 ) -> Self {
66491 self.inner.default_robustness_storage_buffers = value;
66492 self
66493 }
66494 #[inline]
66495 pub fn default_robustness_uniform_buffers(
66496 mut self,
66497 value: PipelineRobustnessBufferBehavior,
66498 ) -> Self {
66499 self.inner.default_robustness_uniform_buffers = value;
66500 self
66501 }
66502 #[inline]
66503 pub fn default_robustness_vertex_inputs(
66504 mut self,
66505 value: PipelineRobustnessBufferBehavior,
66506 ) -> Self {
66507 self.inner.default_robustness_vertex_inputs = value;
66508 self
66509 }
66510 #[inline]
66511 pub fn default_robustness_images(
66512 mut self,
66513 value: PipelineRobustnessImageBehavior,
66514 ) -> Self {
66515 self.inner.default_robustness_images = value;
66516 self
66517 }
66518}
66519impl<'a> core::ops::Deref for PhysicalDevicePipelineRobustnessPropertiesBuilder<'a> {
66520 type Target = PhysicalDevicePipelineRobustnessProperties;
66521 #[inline]
66522 fn deref(&self) -> &Self::Target {
66523 &self.inner
66524 }
66525}
66526impl<'a> core::ops::DerefMut for PhysicalDevicePipelineRobustnessPropertiesBuilder<'a> {
66527 #[inline]
66528 fn deref_mut(&mut self) -> &mut Self::Target {
66529 &mut self.inner
66530 }
66531}
66532pub struct ImageViewSampleWeightCreateInfoQCOMBuilder<'a> {
66534 inner: ImageViewSampleWeightCreateInfoQCOM,
66535 _marker: core::marker::PhantomData<&'a ()>,
66536}
66537impl ImageViewSampleWeightCreateInfoQCOM {
66538 #[inline]
66540 pub fn builder<'a>() -> ImageViewSampleWeightCreateInfoQCOMBuilder<'a> {
66541 ImageViewSampleWeightCreateInfoQCOMBuilder {
66542 inner: ImageViewSampleWeightCreateInfoQCOM {
66543 s_type: StructureType::from_raw(1000440002i32),
66544 ..Default::default()
66545 },
66546 _marker: core::marker::PhantomData,
66547 }
66548 }
66549}
66550impl<'a> ImageViewSampleWeightCreateInfoQCOMBuilder<'a> {
66551 #[inline]
66552 pub fn filter_center(mut self, value: Offset2D) -> Self {
66553 self.inner.filter_center = value;
66554 self
66555 }
66556 #[inline]
66557 pub fn filter_size(mut self, value: Extent2D) -> Self {
66558 self.inner.filter_size = value;
66559 self
66560 }
66561 #[inline]
66562 pub fn num_phases(mut self, value: u32) -> Self {
66563 self.inner.num_phases = value;
66564 self
66565 }
66566 #[inline]
66568 pub fn push_next<T: ExtendsImageViewSampleWeightCreateInfoQCOM>(
66569 mut self,
66570 next: &'a mut T,
66571 ) -> Self {
66572 unsafe {
66573 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66574 (*next_ptr).p_next = self.inner.p_next as *mut _;
66575 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66576 core::ffi::c_void,
66577 >(next_ptr) as *const _;
66578 }
66579 self
66580 }
66581}
66582impl<'a> core::ops::Deref for ImageViewSampleWeightCreateInfoQCOMBuilder<'a> {
66583 type Target = ImageViewSampleWeightCreateInfoQCOM;
66584 #[inline]
66585 fn deref(&self) -> &Self::Target {
66586 &self.inner
66587 }
66588}
66589impl<'a> core::ops::DerefMut for ImageViewSampleWeightCreateInfoQCOMBuilder<'a> {
66590 #[inline]
66591 fn deref_mut(&mut self) -> &mut Self::Target {
66592 &mut self.inner
66593 }
66594}
66595pub struct PhysicalDeviceImageProcessingFeaturesQCOMBuilder<'a> {
66597 inner: PhysicalDeviceImageProcessingFeaturesQCOM,
66598 _marker: core::marker::PhantomData<&'a ()>,
66599}
66600impl PhysicalDeviceImageProcessingFeaturesQCOM {
66601 #[inline]
66603 pub fn builder<'a>() -> PhysicalDeviceImageProcessingFeaturesQCOMBuilder<'a> {
66604 PhysicalDeviceImageProcessingFeaturesQCOMBuilder {
66605 inner: PhysicalDeviceImageProcessingFeaturesQCOM {
66606 s_type: StructureType::from_raw(1000440000i32),
66607 ..Default::default()
66608 },
66609 _marker: core::marker::PhantomData,
66610 }
66611 }
66612}
66613impl<'a> PhysicalDeviceImageProcessingFeaturesQCOMBuilder<'a> {
66614 #[inline]
66615 pub fn texture_sample_weighted(mut self, value: bool) -> Self {
66616 self.inner.texture_sample_weighted = value as u32;
66617 self
66618 }
66619 #[inline]
66620 pub fn texture_box_filter(mut self, value: bool) -> Self {
66621 self.inner.texture_box_filter = value as u32;
66622 self
66623 }
66624 #[inline]
66625 pub fn texture_block_match(mut self, value: bool) -> Self {
66626 self.inner.texture_block_match = value as u32;
66627 self
66628 }
66629 #[inline]
66631 pub fn push_next<T: ExtendsPhysicalDeviceImageProcessingFeaturesQCOM>(
66632 mut self,
66633 next: &'a mut T,
66634 ) -> Self {
66635 unsafe {
66636 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66637 (*next_ptr).p_next = self.inner.p_next as *mut _;
66638 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66639 core::ffi::c_void,
66640 >(next_ptr);
66641 }
66642 self
66643 }
66644}
66645impl<'a> core::ops::Deref for PhysicalDeviceImageProcessingFeaturesQCOMBuilder<'a> {
66646 type Target = PhysicalDeviceImageProcessingFeaturesQCOM;
66647 #[inline]
66648 fn deref(&self) -> &Self::Target {
66649 &self.inner
66650 }
66651}
66652impl<'a> core::ops::DerefMut for PhysicalDeviceImageProcessingFeaturesQCOMBuilder<'a> {
66653 #[inline]
66654 fn deref_mut(&mut self) -> &mut Self::Target {
66655 &mut self.inner
66656 }
66657}
66658pub struct PhysicalDeviceImageProcessingPropertiesQCOMBuilder<'a> {
66660 inner: PhysicalDeviceImageProcessingPropertiesQCOM,
66661 _marker: core::marker::PhantomData<&'a ()>,
66662}
66663impl PhysicalDeviceImageProcessingPropertiesQCOM {
66664 #[inline]
66666 pub fn builder<'a>() -> PhysicalDeviceImageProcessingPropertiesQCOMBuilder<'a> {
66667 PhysicalDeviceImageProcessingPropertiesQCOMBuilder {
66668 inner: PhysicalDeviceImageProcessingPropertiesQCOM {
66669 s_type: StructureType::from_raw(1000440001i32),
66670 ..Default::default()
66671 },
66672 _marker: core::marker::PhantomData,
66673 }
66674 }
66675}
66676impl<'a> PhysicalDeviceImageProcessingPropertiesQCOMBuilder<'a> {
66677 #[inline]
66678 pub fn max_weight_filter_phases(mut self, value: u32) -> Self {
66679 self.inner.max_weight_filter_phases = value;
66680 self
66681 }
66682 #[inline]
66683 pub fn max_weight_filter_dimension(mut self, value: Extent2D) -> Self {
66684 self.inner.max_weight_filter_dimension = value;
66685 self
66686 }
66687 #[inline]
66688 pub fn max_block_match_region(mut self, value: Extent2D) -> Self {
66689 self.inner.max_block_match_region = value;
66690 self
66691 }
66692 #[inline]
66693 pub fn max_box_filter_block_size(mut self, value: Extent2D) -> Self {
66694 self.inner.max_box_filter_block_size = value;
66695 self
66696 }
66697}
66698impl<'a> core::ops::Deref for PhysicalDeviceImageProcessingPropertiesQCOMBuilder<'a> {
66699 type Target = PhysicalDeviceImageProcessingPropertiesQCOM;
66700 #[inline]
66701 fn deref(&self) -> &Self::Target {
66702 &self.inner
66703 }
66704}
66705impl<'a> core::ops::DerefMut for PhysicalDeviceImageProcessingPropertiesQCOMBuilder<'a> {
66706 #[inline]
66707 fn deref_mut(&mut self) -> &mut Self::Target {
66708 &mut self.inner
66709 }
66710}
66711pub struct PhysicalDeviceTilePropertiesFeaturesQCOMBuilder<'a> {
66713 inner: PhysicalDeviceTilePropertiesFeaturesQCOM,
66714 _marker: core::marker::PhantomData<&'a ()>,
66715}
66716impl PhysicalDeviceTilePropertiesFeaturesQCOM {
66717 #[inline]
66719 pub fn builder<'a>() -> PhysicalDeviceTilePropertiesFeaturesQCOMBuilder<'a> {
66720 PhysicalDeviceTilePropertiesFeaturesQCOMBuilder {
66721 inner: PhysicalDeviceTilePropertiesFeaturesQCOM {
66722 s_type: StructureType::from_raw(1000484000i32),
66723 ..Default::default()
66724 },
66725 _marker: core::marker::PhantomData,
66726 }
66727 }
66728}
66729impl<'a> PhysicalDeviceTilePropertiesFeaturesQCOMBuilder<'a> {
66730 #[inline]
66731 pub fn tile_properties(mut self, value: bool) -> Self {
66732 self.inner.tile_properties = value as u32;
66733 self
66734 }
66735 #[inline]
66737 pub fn push_next<T: ExtendsPhysicalDeviceTilePropertiesFeaturesQCOM>(
66738 mut self,
66739 next: &'a mut T,
66740 ) -> Self {
66741 unsafe {
66742 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66743 (*next_ptr).p_next = self.inner.p_next as *mut _;
66744 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66745 core::ffi::c_void,
66746 >(next_ptr);
66747 }
66748 self
66749 }
66750}
66751impl<'a> core::ops::Deref for PhysicalDeviceTilePropertiesFeaturesQCOMBuilder<'a> {
66752 type Target = PhysicalDeviceTilePropertiesFeaturesQCOM;
66753 #[inline]
66754 fn deref(&self) -> &Self::Target {
66755 &self.inner
66756 }
66757}
66758impl<'a> core::ops::DerefMut for PhysicalDeviceTilePropertiesFeaturesQCOMBuilder<'a> {
66759 #[inline]
66760 fn deref_mut(&mut self) -> &mut Self::Target {
66761 &mut self.inner
66762 }
66763}
66764pub struct TilePropertiesQCOMBuilder<'a> {
66766 inner: TilePropertiesQCOM,
66767 _marker: core::marker::PhantomData<&'a ()>,
66768}
66769impl TilePropertiesQCOM {
66770 #[inline]
66772 pub fn builder<'a>() -> TilePropertiesQCOMBuilder<'a> {
66773 TilePropertiesQCOMBuilder {
66774 inner: TilePropertiesQCOM {
66775 s_type: StructureType::from_raw(1000484001i32),
66776 ..Default::default()
66777 },
66778 _marker: core::marker::PhantomData,
66779 }
66780 }
66781}
66782impl<'a> TilePropertiesQCOMBuilder<'a> {
66783 #[inline]
66784 pub fn tile_size(mut self, value: Extent3D) -> Self {
66785 self.inner.tile_size = value;
66786 self
66787 }
66788 #[inline]
66789 pub fn apron_size(mut self, value: Extent2D) -> Self {
66790 self.inner.apron_size = value;
66791 self
66792 }
66793 #[inline]
66794 pub fn origin(mut self, value: Offset2D) -> Self {
66795 self.inner.origin = value;
66796 self
66797 }
66798 #[inline]
66800 pub fn push_next<T: ExtendsTilePropertiesQCOM>(mut self, next: &'a mut T) -> Self {
66801 unsafe {
66802 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66803 (*next_ptr).p_next = self.inner.p_next as *mut _;
66804 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66805 core::ffi::c_void,
66806 >(next_ptr);
66807 }
66808 self
66809 }
66810}
66811impl<'a> core::ops::Deref for TilePropertiesQCOMBuilder<'a> {
66812 type Target = TilePropertiesQCOM;
66813 #[inline]
66814 fn deref(&self) -> &Self::Target {
66815 &self.inner
66816 }
66817}
66818impl<'a> core::ops::DerefMut for TilePropertiesQCOMBuilder<'a> {
66819 #[inline]
66820 fn deref_mut(&mut self) -> &mut Self::Target {
66821 &mut self.inner
66822 }
66823}
66824pub struct TileMemoryBindInfoQCOMBuilder<'a> {
66826 inner: TileMemoryBindInfoQCOM,
66827 _marker: core::marker::PhantomData<&'a ()>,
66828}
66829impl TileMemoryBindInfoQCOM {
66830 #[inline]
66832 pub fn builder<'a>() -> TileMemoryBindInfoQCOMBuilder<'a> {
66833 TileMemoryBindInfoQCOMBuilder {
66834 inner: TileMemoryBindInfoQCOM {
66835 s_type: StructureType::from_raw(1000547003i32),
66836 ..Default::default()
66837 },
66838 _marker: core::marker::PhantomData,
66839 }
66840 }
66841}
66842impl<'a> TileMemoryBindInfoQCOMBuilder<'a> {
66843 #[inline]
66844 pub fn memory(mut self, value: DeviceMemory) -> Self {
66845 self.inner.memory = value;
66846 self
66847 }
66848 #[inline]
66850 pub fn push_next<T: ExtendsTileMemoryBindInfoQCOM>(
66851 mut self,
66852 next: &'a mut T,
66853 ) -> Self {
66854 unsafe {
66855 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66856 (*next_ptr).p_next = self.inner.p_next as *mut _;
66857 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66858 core::ffi::c_void,
66859 >(next_ptr) as *const _;
66860 }
66861 self
66862 }
66863}
66864impl<'a> core::ops::Deref for TileMemoryBindInfoQCOMBuilder<'a> {
66865 type Target = TileMemoryBindInfoQCOM;
66866 #[inline]
66867 fn deref(&self) -> &Self::Target {
66868 &self.inner
66869 }
66870}
66871impl<'a> core::ops::DerefMut for TileMemoryBindInfoQCOMBuilder<'a> {
66872 #[inline]
66873 fn deref_mut(&mut self) -> &mut Self::Target {
66874 &mut self.inner
66875 }
66876}
66877pub struct PhysicalDeviceAmigoProfilingFeaturesSECBuilder<'a> {
66879 inner: PhysicalDeviceAmigoProfilingFeaturesSEC,
66880 _marker: core::marker::PhantomData<&'a ()>,
66881}
66882impl PhysicalDeviceAmigoProfilingFeaturesSEC {
66883 #[inline]
66885 pub fn builder<'a>() -> PhysicalDeviceAmigoProfilingFeaturesSECBuilder<'a> {
66886 PhysicalDeviceAmigoProfilingFeaturesSECBuilder {
66887 inner: PhysicalDeviceAmigoProfilingFeaturesSEC {
66888 s_type: StructureType::from_raw(1000485000i32),
66889 ..Default::default()
66890 },
66891 _marker: core::marker::PhantomData,
66892 }
66893 }
66894}
66895impl<'a> PhysicalDeviceAmigoProfilingFeaturesSECBuilder<'a> {
66896 #[inline]
66897 pub fn amigo_profiling(mut self, value: bool) -> Self {
66898 self.inner.amigo_profiling = value as u32;
66899 self
66900 }
66901 #[inline]
66903 pub fn push_next<T: ExtendsPhysicalDeviceAmigoProfilingFeaturesSEC>(
66904 mut self,
66905 next: &'a mut T,
66906 ) -> Self {
66907 unsafe {
66908 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66909 (*next_ptr).p_next = self.inner.p_next as *mut _;
66910 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66911 core::ffi::c_void,
66912 >(next_ptr);
66913 }
66914 self
66915 }
66916}
66917impl<'a> core::ops::Deref for PhysicalDeviceAmigoProfilingFeaturesSECBuilder<'a> {
66918 type Target = PhysicalDeviceAmigoProfilingFeaturesSEC;
66919 #[inline]
66920 fn deref(&self) -> &Self::Target {
66921 &self.inner
66922 }
66923}
66924impl<'a> core::ops::DerefMut for PhysicalDeviceAmigoProfilingFeaturesSECBuilder<'a> {
66925 #[inline]
66926 fn deref_mut(&mut self) -> &mut Self::Target {
66927 &mut self.inner
66928 }
66929}
66930pub struct AmigoProfilingSubmitInfoSECBuilder<'a> {
66932 inner: AmigoProfilingSubmitInfoSEC,
66933 _marker: core::marker::PhantomData<&'a ()>,
66934}
66935impl AmigoProfilingSubmitInfoSEC {
66936 #[inline]
66938 pub fn builder<'a>() -> AmigoProfilingSubmitInfoSECBuilder<'a> {
66939 AmigoProfilingSubmitInfoSECBuilder {
66940 inner: AmigoProfilingSubmitInfoSEC {
66941 s_type: StructureType::from_raw(1000485001i32),
66942 ..Default::default()
66943 },
66944 _marker: core::marker::PhantomData,
66945 }
66946 }
66947}
66948impl<'a> AmigoProfilingSubmitInfoSECBuilder<'a> {
66949 #[inline]
66950 pub fn first_draw_timestamp(mut self, value: u64) -> Self {
66951 self.inner.first_draw_timestamp = value;
66952 self
66953 }
66954 #[inline]
66955 pub fn swap_buffer_timestamp(mut self, value: u64) -> Self {
66956 self.inner.swap_buffer_timestamp = value;
66957 self
66958 }
66959 #[inline]
66961 pub fn push_next<T: ExtendsAmigoProfilingSubmitInfoSEC>(
66962 mut self,
66963 next: &'a mut T,
66964 ) -> Self {
66965 unsafe {
66966 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
66967 (*next_ptr).p_next = self.inner.p_next as *mut _;
66968 self.inner.p_next = <*mut BaseOutStructure>::cast::<
66969 core::ffi::c_void,
66970 >(next_ptr) as *const _;
66971 }
66972 self
66973 }
66974}
66975impl<'a> core::ops::Deref for AmigoProfilingSubmitInfoSECBuilder<'a> {
66976 type Target = AmigoProfilingSubmitInfoSEC;
66977 #[inline]
66978 fn deref(&self) -> &Self::Target {
66979 &self.inner
66980 }
66981}
66982impl<'a> core::ops::DerefMut for AmigoProfilingSubmitInfoSECBuilder<'a> {
66983 #[inline]
66984 fn deref_mut(&mut self) -> &mut Self::Target {
66985 &mut self.inner
66986 }
66987}
66988pub struct PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder<'a> {
66990 inner: PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT,
66991 _marker: core::marker::PhantomData<&'a ()>,
66992}
66993impl PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
66994 #[inline]
66996 pub fn builder<'a>() -> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder<
66997 'a,
66998 > {
66999 PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder {
67000 inner: PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
67001 s_type: StructureType::from_raw(1000339000i32),
67002 ..Default::default()
67003 },
67004 _marker: core::marker::PhantomData,
67005 }
67006 }
67007}
67008impl<'a> PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder<'a> {
67009 #[inline]
67010 pub fn attachment_feedback_loop_layout(mut self, value: bool) -> Self {
67011 self.inner.attachment_feedback_loop_layout = value as u32;
67012 self
67013 }
67014 #[inline]
67016 pub fn push_next<T: ExtendsPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>(
67017 mut self,
67018 next: &'a mut T,
67019 ) -> Self {
67020 unsafe {
67021 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67022 (*next_ptr).p_next = self.inner.p_next as *mut _;
67023 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67024 core::ffi::c_void,
67025 >(next_ptr);
67026 }
67027 self
67028 }
67029}
67030impl<'a> core::ops::Deref
67031for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder<'a> {
67032 type Target = PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
67033 #[inline]
67034 fn deref(&self) -> &Self::Target {
67035 &self.inner
67036 }
67037}
67038impl<'a> core::ops::DerefMut
67039for PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXTBuilder<'a> {
67040 #[inline]
67041 fn deref_mut(&mut self) -> &mut Self::Target {
67042 &mut self.inner
67043 }
67044}
67045pub struct AttachmentFeedbackLoopInfoEXTBuilder<'a> {
67047 inner: AttachmentFeedbackLoopInfoEXT,
67048 _marker: core::marker::PhantomData<&'a ()>,
67049}
67050impl AttachmentFeedbackLoopInfoEXT {
67051 #[inline]
67053 pub fn builder<'a>() -> AttachmentFeedbackLoopInfoEXTBuilder<'a> {
67054 AttachmentFeedbackLoopInfoEXTBuilder {
67055 inner: AttachmentFeedbackLoopInfoEXT {
67056 s_type: StructureType::from_raw(1000527001i32),
67057 ..Default::default()
67058 },
67059 _marker: core::marker::PhantomData,
67060 }
67061 }
67062}
67063impl<'a> AttachmentFeedbackLoopInfoEXTBuilder<'a> {
67064 #[inline]
67065 pub fn feedback_loop_enable(mut self, value: bool) -> Self {
67066 self.inner.feedback_loop_enable = value as u32;
67067 self
67068 }
67069 #[inline]
67071 pub fn push_next<T: ExtendsAttachmentFeedbackLoopInfoEXT>(
67072 mut self,
67073 next: &'a mut T,
67074 ) -> Self {
67075 unsafe {
67076 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67077 (*next_ptr).p_next = self.inner.p_next as *mut _;
67078 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67079 core::ffi::c_void,
67080 >(next_ptr) as *const _;
67081 }
67082 self
67083 }
67084}
67085impl<'a> core::ops::Deref for AttachmentFeedbackLoopInfoEXTBuilder<'a> {
67086 type Target = AttachmentFeedbackLoopInfoEXT;
67087 #[inline]
67088 fn deref(&self) -> &Self::Target {
67089 &self.inner
67090 }
67091}
67092impl<'a> core::ops::DerefMut for AttachmentFeedbackLoopInfoEXTBuilder<'a> {
67093 #[inline]
67094 fn deref_mut(&mut self) -> &mut Self::Target {
67095 &mut self.inner
67096 }
67097}
67098pub struct PhysicalDeviceAddressBindingReportFeaturesEXTBuilder<'a> {
67100 inner: PhysicalDeviceAddressBindingReportFeaturesEXT,
67101 _marker: core::marker::PhantomData<&'a ()>,
67102}
67103impl PhysicalDeviceAddressBindingReportFeaturesEXT {
67104 #[inline]
67106 pub fn builder<'a>() -> PhysicalDeviceAddressBindingReportFeaturesEXTBuilder<'a> {
67107 PhysicalDeviceAddressBindingReportFeaturesEXTBuilder {
67108 inner: PhysicalDeviceAddressBindingReportFeaturesEXT {
67109 s_type: StructureType::from_raw(1000354000i32),
67110 ..Default::default()
67111 },
67112 _marker: core::marker::PhantomData,
67113 }
67114 }
67115}
67116impl<'a> PhysicalDeviceAddressBindingReportFeaturesEXTBuilder<'a> {
67117 #[inline]
67118 pub fn report_address_binding(mut self, value: bool) -> Self {
67119 self.inner.report_address_binding = value as u32;
67120 self
67121 }
67122 #[inline]
67124 pub fn push_next<T: ExtendsPhysicalDeviceAddressBindingReportFeaturesEXT>(
67125 mut self,
67126 next: &'a mut T,
67127 ) -> Self {
67128 unsafe {
67129 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67130 (*next_ptr).p_next = self.inner.p_next as *mut _;
67131 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67132 core::ffi::c_void,
67133 >(next_ptr);
67134 }
67135 self
67136 }
67137}
67138impl<'a> core::ops::Deref for PhysicalDeviceAddressBindingReportFeaturesEXTBuilder<'a> {
67139 type Target = PhysicalDeviceAddressBindingReportFeaturesEXT;
67140 #[inline]
67141 fn deref(&self) -> &Self::Target {
67142 &self.inner
67143 }
67144}
67145impl<'a> core::ops::DerefMut
67146for PhysicalDeviceAddressBindingReportFeaturesEXTBuilder<'a> {
67147 #[inline]
67148 fn deref_mut(&mut self) -> &mut Self::Target {
67149 &mut self.inner
67150 }
67151}
67152pub struct RenderingAttachmentFlagsInfoKHRBuilder<'a> {
67154 inner: RenderingAttachmentFlagsInfoKHR,
67155 _marker: core::marker::PhantomData<&'a ()>,
67156}
67157impl RenderingAttachmentFlagsInfoKHR {
67158 #[inline]
67160 pub fn builder<'a>() -> RenderingAttachmentFlagsInfoKHRBuilder<'a> {
67161 RenderingAttachmentFlagsInfoKHRBuilder {
67162 inner: RenderingAttachmentFlagsInfoKHR {
67163 s_type: StructureType::from_raw(1000630002i32),
67164 ..Default::default()
67165 },
67166 _marker: core::marker::PhantomData,
67167 }
67168 }
67169}
67170impl<'a> RenderingAttachmentFlagsInfoKHRBuilder<'a> {
67171 #[inline]
67172 pub fn flags(mut self, value: RenderingAttachmentFlagsKHR) -> Self {
67173 self.inner.flags = value;
67174 self
67175 }
67176 #[inline]
67178 pub fn push_next<T: ExtendsRenderingAttachmentFlagsInfoKHR>(
67179 mut self,
67180 next: &'a mut T,
67181 ) -> Self {
67182 unsafe {
67183 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67184 (*next_ptr).p_next = self.inner.p_next as *mut _;
67185 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67186 core::ffi::c_void,
67187 >(next_ptr) as *const _;
67188 }
67189 self
67190 }
67191}
67192impl<'a> core::ops::Deref for RenderingAttachmentFlagsInfoKHRBuilder<'a> {
67193 type Target = RenderingAttachmentFlagsInfoKHR;
67194 #[inline]
67195 fn deref(&self) -> &Self::Target {
67196 &self.inner
67197 }
67198}
67199impl<'a> core::ops::DerefMut for RenderingAttachmentFlagsInfoKHRBuilder<'a> {
67200 #[inline]
67201 fn deref_mut(&mut self) -> &mut Self::Target {
67202 &mut self.inner
67203 }
67204}
67205pub struct ResolveImageModeInfoKHRBuilder<'a> {
67207 inner: ResolveImageModeInfoKHR,
67208 _marker: core::marker::PhantomData<&'a ()>,
67209}
67210impl ResolveImageModeInfoKHR {
67211 #[inline]
67213 pub fn builder<'a>() -> ResolveImageModeInfoKHRBuilder<'a> {
67214 ResolveImageModeInfoKHRBuilder {
67215 inner: ResolveImageModeInfoKHR {
67216 s_type: StructureType::from_raw(1000630004i32),
67217 ..Default::default()
67218 },
67219 _marker: core::marker::PhantomData,
67220 }
67221 }
67222}
67223impl<'a> ResolveImageModeInfoKHRBuilder<'a> {
67224 #[inline]
67225 pub fn flags(mut self, value: ResolveImageFlagsKHR) -> Self {
67226 self.inner.flags = value;
67227 self
67228 }
67229 #[inline]
67230 pub fn resolve_mode(mut self, value: ResolveModeFlagBits) -> Self {
67231 self.inner.resolve_mode = value;
67232 self
67233 }
67234 #[inline]
67235 pub fn stencil_resolve_mode(mut self, value: ResolveModeFlagBits) -> Self {
67236 self.inner.stencil_resolve_mode = value;
67237 self
67238 }
67239 #[inline]
67241 pub fn push_next<T: ExtendsResolveImageModeInfoKHR>(
67242 mut self,
67243 next: &'a mut T,
67244 ) -> Self {
67245 unsafe {
67246 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67247 (*next_ptr).p_next = self.inner.p_next as *mut _;
67248 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67249 core::ffi::c_void,
67250 >(next_ptr) as *const _;
67251 }
67252 self
67253 }
67254}
67255impl<'a> core::ops::Deref for ResolveImageModeInfoKHRBuilder<'a> {
67256 type Target = ResolveImageModeInfoKHR;
67257 #[inline]
67258 fn deref(&self) -> &Self::Target {
67259 &self.inner
67260 }
67261}
67262impl<'a> core::ops::DerefMut for ResolveImageModeInfoKHRBuilder<'a> {
67263 #[inline]
67264 fn deref_mut(&mut self) -> &mut Self::Target {
67265 &mut self.inner
67266 }
67267}
67268pub struct DeviceAddressBindingCallbackDataEXTBuilder<'a> {
67270 inner: DeviceAddressBindingCallbackDataEXT,
67271 _marker: core::marker::PhantomData<&'a ()>,
67272}
67273impl DeviceAddressBindingCallbackDataEXT {
67274 #[inline]
67276 pub fn builder<'a>() -> DeviceAddressBindingCallbackDataEXTBuilder<'a> {
67277 DeviceAddressBindingCallbackDataEXTBuilder {
67278 inner: DeviceAddressBindingCallbackDataEXT {
67279 s_type: StructureType::from_raw(1000354001i32),
67280 ..Default::default()
67281 },
67282 _marker: core::marker::PhantomData,
67283 }
67284 }
67285}
67286impl<'a> DeviceAddressBindingCallbackDataEXTBuilder<'a> {
67287 #[inline]
67288 pub fn flags(mut self, value: DeviceAddressBindingFlagsEXT) -> Self {
67289 self.inner.flags = value;
67290 self
67291 }
67292 #[inline]
67293 pub fn base_address(mut self, value: u64) -> Self {
67294 self.inner.base_address = value;
67295 self
67296 }
67297 #[inline]
67298 pub fn size(mut self, value: u64) -> Self {
67299 self.inner.size = value;
67300 self
67301 }
67302 #[inline]
67303 pub fn binding_type(mut self, value: DeviceAddressBindingTypeEXT) -> Self {
67304 self.inner.binding_type = value;
67305 self
67306 }
67307 #[inline]
67309 pub fn push_next<T: ExtendsDeviceAddressBindingCallbackDataEXT>(
67310 mut self,
67311 next: &'a mut T,
67312 ) -> Self {
67313 unsafe {
67314 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67315 (*next_ptr).p_next = self.inner.p_next as *mut _;
67316 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67317 core::ffi::c_void,
67318 >(next_ptr);
67319 }
67320 self
67321 }
67322}
67323impl<'a> core::ops::Deref for DeviceAddressBindingCallbackDataEXTBuilder<'a> {
67324 type Target = DeviceAddressBindingCallbackDataEXT;
67325 #[inline]
67326 fn deref(&self) -> &Self::Target {
67327 &self.inner
67328 }
67329}
67330impl<'a> core::ops::DerefMut for DeviceAddressBindingCallbackDataEXTBuilder<'a> {
67331 #[inline]
67332 fn deref_mut(&mut self) -> &mut Self::Target {
67333 &mut self.inner
67334 }
67335}
67336pub struct PhysicalDeviceOpticalFlowFeaturesNVBuilder<'a> {
67338 inner: PhysicalDeviceOpticalFlowFeaturesNV,
67339 _marker: core::marker::PhantomData<&'a ()>,
67340}
67341impl PhysicalDeviceOpticalFlowFeaturesNV {
67342 #[inline]
67344 pub fn builder<'a>() -> PhysicalDeviceOpticalFlowFeaturesNVBuilder<'a> {
67345 PhysicalDeviceOpticalFlowFeaturesNVBuilder {
67346 inner: PhysicalDeviceOpticalFlowFeaturesNV {
67347 s_type: StructureType::from_raw(1000464000i32),
67348 ..Default::default()
67349 },
67350 _marker: core::marker::PhantomData,
67351 }
67352 }
67353}
67354impl<'a> PhysicalDeviceOpticalFlowFeaturesNVBuilder<'a> {
67355 #[inline]
67356 pub fn optical_flow(mut self, value: bool) -> Self {
67357 self.inner.optical_flow = value as u32;
67358 self
67359 }
67360 #[inline]
67362 pub fn push_next<T: ExtendsPhysicalDeviceOpticalFlowFeaturesNV>(
67363 mut self,
67364 next: &'a mut T,
67365 ) -> Self {
67366 unsafe {
67367 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67368 (*next_ptr).p_next = self.inner.p_next as *mut _;
67369 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67370 core::ffi::c_void,
67371 >(next_ptr);
67372 }
67373 self
67374 }
67375}
67376impl<'a> core::ops::Deref for PhysicalDeviceOpticalFlowFeaturesNVBuilder<'a> {
67377 type Target = PhysicalDeviceOpticalFlowFeaturesNV;
67378 #[inline]
67379 fn deref(&self) -> &Self::Target {
67380 &self.inner
67381 }
67382}
67383impl<'a> core::ops::DerefMut for PhysicalDeviceOpticalFlowFeaturesNVBuilder<'a> {
67384 #[inline]
67385 fn deref_mut(&mut self) -> &mut Self::Target {
67386 &mut self.inner
67387 }
67388}
67389pub struct PhysicalDeviceOpticalFlowPropertiesNVBuilder<'a> {
67391 inner: PhysicalDeviceOpticalFlowPropertiesNV,
67392 _marker: core::marker::PhantomData<&'a ()>,
67393}
67394impl PhysicalDeviceOpticalFlowPropertiesNV {
67395 #[inline]
67397 pub fn builder<'a>() -> PhysicalDeviceOpticalFlowPropertiesNVBuilder<'a> {
67398 PhysicalDeviceOpticalFlowPropertiesNVBuilder {
67399 inner: PhysicalDeviceOpticalFlowPropertiesNV {
67400 s_type: StructureType::from_raw(1000464001i32),
67401 ..Default::default()
67402 },
67403 _marker: core::marker::PhantomData,
67404 }
67405 }
67406}
67407impl<'a> PhysicalDeviceOpticalFlowPropertiesNVBuilder<'a> {
67408 #[inline]
67409 pub fn supported_output_grid_sizes(
67410 mut self,
67411 value: OpticalFlowGridSizeFlagsNV,
67412 ) -> Self {
67413 self.inner.supported_output_grid_sizes = value;
67414 self
67415 }
67416 #[inline]
67417 pub fn supported_hint_grid_sizes(
67418 mut self,
67419 value: OpticalFlowGridSizeFlagsNV,
67420 ) -> Self {
67421 self.inner.supported_hint_grid_sizes = value;
67422 self
67423 }
67424 #[inline]
67425 pub fn hint_supported(mut self, value: bool) -> Self {
67426 self.inner.hint_supported = value as u32;
67427 self
67428 }
67429 #[inline]
67430 pub fn cost_supported(mut self, value: bool) -> Self {
67431 self.inner.cost_supported = value as u32;
67432 self
67433 }
67434 #[inline]
67435 pub fn bidirectional_flow_supported(mut self, value: bool) -> Self {
67436 self.inner.bidirectional_flow_supported = value as u32;
67437 self
67438 }
67439 #[inline]
67440 pub fn global_flow_supported(mut self, value: bool) -> Self {
67441 self.inner.global_flow_supported = value as u32;
67442 self
67443 }
67444 #[inline]
67445 pub fn min_width(mut self, value: u32) -> Self {
67446 self.inner.min_width = value;
67447 self
67448 }
67449 #[inline]
67450 pub fn min_height(mut self, value: u32) -> Self {
67451 self.inner.min_height = value;
67452 self
67453 }
67454 #[inline]
67455 pub fn max_width(mut self, value: u32) -> Self {
67456 self.inner.max_width = value;
67457 self
67458 }
67459 #[inline]
67460 pub fn max_height(mut self, value: u32) -> Self {
67461 self.inner.max_height = value;
67462 self
67463 }
67464 #[inline]
67465 pub fn max_num_regions_of_interest(mut self, value: u32) -> Self {
67466 self.inner.max_num_regions_of_interest = value;
67467 self
67468 }
67469}
67470impl<'a> core::ops::Deref for PhysicalDeviceOpticalFlowPropertiesNVBuilder<'a> {
67471 type Target = PhysicalDeviceOpticalFlowPropertiesNV;
67472 #[inline]
67473 fn deref(&self) -> &Self::Target {
67474 &self.inner
67475 }
67476}
67477impl<'a> core::ops::DerefMut for PhysicalDeviceOpticalFlowPropertiesNVBuilder<'a> {
67478 #[inline]
67479 fn deref_mut(&mut self) -> &mut Self::Target {
67480 &mut self.inner
67481 }
67482}
67483pub struct OpticalFlowImageFormatInfoNVBuilder<'a> {
67485 inner: OpticalFlowImageFormatInfoNV,
67486 _marker: core::marker::PhantomData<&'a ()>,
67487}
67488impl OpticalFlowImageFormatInfoNV {
67489 #[inline]
67491 pub fn builder<'a>() -> OpticalFlowImageFormatInfoNVBuilder<'a> {
67492 OpticalFlowImageFormatInfoNVBuilder {
67493 inner: OpticalFlowImageFormatInfoNV {
67494 s_type: StructureType::from_raw(1000464002i32),
67495 ..Default::default()
67496 },
67497 _marker: core::marker::PhantomData,
67498 }
67499 }
67500}
67501impl<'a> OpticalFlowImageFormatInfoNVBuilder<'a> {
67502 #[inline]
67503 pub fn usage(mut self, value: OpticalFlowUsageFlagsNV) -> Self {
67504 self.inner.usage = value;
67505 self
67506 }
67507 #[inline]
67509 pub fn push_next<T: ExtendsOpticalFlowImageFormatInfoNV>(
67510 mut self,
67511 next: &'a mut T,
67512 ) -> Self {
67513 unsafe {
67514 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67515 (*next_ptr).p_next = self.inner.p_next as *mut _;
67516 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67517 core::ffi::c_void,
67518 >(next_ptr) as *const _;
67519 }
67520 self
67521 }
67522}
67523impl<'a> core::ops::Deref for OpticalFlowImageFormatInfoNVBuilder<'a> {
67524 type Target = OpticalFlowImageFormatInfoNV;
67525 #[inline]
67526 fn deref(&self) -> &Self::Target {
67527 &self.inner
67528 }
67529}
67530impl<'a> core::ops::DerefMut for OpticalFlowImageFormatInfoNVBuilder<'a> {
67531 #[inline]
67532 fn deref_mut(&mut self) -> &mut Self::Target {
67533 &mut self.inner
67534 }
67535}
67536pub struct OpticalFlowImageFormatPropertiesNVBuilder<'a> {
67538 inner: OpticalFlowImageFormatPropertiesNV,
67539 _marker: core::marker::PhantomData<&'a ()>,
67540}
67541impl OpticalFlowImageFormatPropertiesNV {
67542 #[inline]
67544 pub fn builder<'a>() -> OpticalFlowImageFormatPropertiesNVBuilder<'a> {
67545 OpticalFlowImageFormatPropertiesNVBuilder {
67546 inner: OpticalFlowImageFormatPropertiesNV {
67547 s_type: StructureType::from_raw(1000464003i32),
67548 ..Default::default()
67549 },
67550 _marker: core::marker::PhantomData,
67551 }
67552 }
67553}
67554impl<'a> OpticalFlowImageFormatPropertiesNVBuilder<'a> {
67555 #[inline]
67556 pub fn format(mut self, value: Format) -> Self {
67557 self.inner.format = value;
67558 self
67559 }
67560}
67561impl<'a> core::ops::Deref for OpticalFlowImageFormatPropertiesNVBuilder<'a> {
67562 type Target = OpticalFlowImageFormatPropertiesNV;
67563 #[inline]
67564 fn deref(&self) -> &Self::Target {
67565 &self.inner
67566 }
67567}
67568impl<'a> core::ops::DerefMut for OpticalFlowImageFormatPropertiesNVBuilder<'a> {
67569 #[inline]
67570 fn deref_mut(&mut self) -> &mut Self::Target {
67571 &mut self.inner
67572 }
67573}
67574pub struct OpticalFlowSessionCreateInfoNVBuilder<'a> {
67576 inner: OpticalFlowSessionCreateInfoNV,
67577 _marker: core::marker::PhantomData<&'a ()>,
67578}
67579impl OpticalFlowSessionCreateInfoNV {
67580 #[inline]
67582 pub fn builder<'a>() -> OpticalFlowSessionCreateInfoNVBuilder<'a> {
67583 OpticalFlowSessionCreateInfoNVBuilder {
67584 inner: OpticalFlowSessionCreateInfoNV {
67585 s_type: StructureType::from_raw(1000464004i32),
67586 ..Default::default()
67587 },
67588 _marker: core::marker::PhantomData,
67589 }
67590 }
67591}
67592impl<'a> OpticalFlowSessionCreateInfoNVBuilder<'a> {
67593 #[inline]
67594 pub fn width(mut self, value: u32) -> Self {
67595 self.inner.width = value;
67596 self
67597 }
67598 #[inline]
67599 pub fn height(mut self, value: u32) -> Self {
67600 self.inner.height = value;
67601 self
67602 }
67603 #[inline]
67604 pub fn image_format(mut self, value: Format) -> Self {
67605 self.inner.image_format = value;
67606 self
67607 }
67608 #[inline]
67609 pub fn flow_vector_format(mut self, value: Format) -> Self {
67610 self.inner.flow_vector_format = value;
67611 self
67612 }
67613 #[inline]
67614 pub fn cost_format(mut self, value: Format) -> Self {
67615 self.inner.cost_format = value;
67616 self
67617 }
67618 #[inline]
67619 pub fn output_grid_size(mut self, value: OpticalFlowGridSizeFlagsNV) -> Self {
67620 self.inner.output_grid_size = value;
67621 self
67622 }
67623 #[inline]
67624 pub fn hint_grid_size(mut self, value: OpticalFlowGridSizeFlagsNV) -> Self {
67625 self.inner.hint_grid_size = value;
67626 self
67627 }
67628 #[inline]
67629 pub fn performance_level(mut self, value: OpticalFlowPerformanceLevelNV) -> Self {
67630 self.inner.performance_level = value;
67631 self
67632 }
67633 #[inline]
67634 pub fn flags(mut self, value: OpticalFlowSessionCreateFlagsNV) -> Self {
67635 self.inner.flags = value;
67636 self
67637 }
67638 #[inline]
67640 pub fn push_next<T: ExtendsOpticalFlowSessionCreateInfoNV>(
67641 mut self,
67642 next: &'a mut T,
67643 ) -> Self {
67644 unsafe {
67645 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67646 (*next_ptr).p_next = self.inner.p_next as *mut _;
67647 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67648 core::ffi::c_void,
67649 >(next_ptr);
67650 }
67651 self
67652 }
67653}
67654impl<'a> core::ops::Deref for OpticalFlowSessionCreateInfoNVBuilder<'a> {
67655 type Target = OpticalFlowSessionCreateInfoNV;
67656 #[inline]
67657 fn deref(&self) -> &Self::Target {
67658 &self.inner
67659 }
67660}
67661impl<'a> core::ops::DerefMut for OpticalFlowSessionCreateInfoNVBuilder<'a> {
67662 #[inline]
67663 fn deref_mut(&mut self) -> &mut Self::Target {
67664 &mut self.inner
67665 }
67666}
67667pub struct OpticalFlowSessionCreatePrivateDataInfoNVBuilder<'a> {
67669 inner: OpticalFlowSessionCreatePrivateDataInfoNV,
67670 _marker: core::marker::PhantomData<&'a ()>,
67671}
67672impl OpticalFlowSessionCreatePrivateDataInfoNV {
67673 #[inline]
67675 pub fn builder<'a>() -> OpticalFlowSessionCreatePrivateDataInfoNVBuilder<'a> {
67676 OpticalFlowSessionCreatePrivateDataInfoNVBuilder {
67677 inner: OpticalFlowSessionCreatePrivateDataInfoNV {
67678 s_type: StructureType::from_raw(1000464010i32),
67679 ..Default::default()
67680 },
67681 _marker: core::marker::PhantomData,
67682 }
67683 }
67684}
67685impl<'a> OpticalFlowSessionCreatePrivateDataInfoNVBuilder<'a> {
67686 #[inline]
67687 pub fn id(mut self, value: u32) -> Self {
67688 self.inner.id = value;
67689 self
67690 }
67691 #[inline]
67692 pub fn size(mut self, value: u32) -> Self {
67693 self.inner.size = value;
67694 self
67695 }
67696 #[inline]
67697 pub fn private_data(mut self, value: *const core::ffi::c_void) -> Self {
67698 self.inner.p_private_data = value;
67699 self
67700 }
67701 #[inline]
67703 pub fn push_next<T: ExtendsOpticalFlowSessionCreatePrivateDataInfoNV>(
67704 mut self,
67705 next: &'a mut T,
67706 ) -> Self {
67707 unsafe {
67708 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67709 (*next_ptr).p_next = self.inner.p_next as *mut _;
67710 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67711 core::ffi::c_void,
67712 >(next_ptr);
67713 }
67714 self
67715 }
67716}
67717impl<'a> core::ops::Deref for OpticalFlowSessionCreatePrivateDataInfoNVBuilder<'a> {
67718 type Target = OpticalFlowSessionCreatePrivateDataInfoNV;
67719 #[inline]
67720 fn deref(&self) -> &Self::Target {
67721 &self.inner
67722 }
67723}
67724impl<'a> core::ops::DerefMut for OpticalFlowSessionCreatePrivateDataInfoNVBuilder<'a> {
67725 #[inline]
67726 fn deref_mut(&mut self) -> &mut Self::Target {
67727 &mut self.inner
67728 }
67729}
67730pub struct OpticalFlowExecuteInfoNVBuilder<'a> {
67732 inner: OpticalFlowExecuteInfoNV,
67733 _marker: core::marker::PhantomData<&'a ()>,
67734}
67735impl OpticalFlowExecuteInfoNV {
67736 #[inline]
67738 pub fn builder<'a>() -> OpticalFlowExecuteInfoNVBuilder<'a> {
67739 OpticalFlowExecuteInfoNVBuilder {
67740 inner: OpticalFlowExecuteInfoNV {
67741 s_type: StructureType::from_raw(1000464005i32),
67742 ..Default::default()
67743 },
67744 _marker: core::marker::PhantomData,
67745 }
67746 }
67747}
67748impl<'a> OpticalFlowExecuteInfoNVBuilder<'a> {
67749 #[inline]
67750 pub fn flags(mut self, value: OpticalFlowExecuteFlagsNV) -> Self {
67751 self.inner.flags = value;
67752 self
67753 }
67754 #[inline]
67755 pub fn regions(mut self, slice: &'a [Rect2D]) -> Self {
67756 self.inner.region_count = slice.len() as u32;
67757 self.inner.p_regions = slice.as_ptr();
67758 self
67759 }
67760 #[inline]
67762 pub fn push_next<T: ExtendsOpticalFlowExecuteInfoNV>(
67763 mut self,
67764 next: &'a mut T,
67765 ) -> Self {
67766 unsafe {
67767 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67768 (*next_ptr).p_next = self.inner.p_next as *mut _;
67769 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67770 core::ffi::c_void,
67771 >(next_ptr);
67772 }
67773 self
67774 }
67775}
67776impl<'a> core::ops::Deref for OpticalFlowExecuteInfoNVBuilder<'a> {
67777 type Target = OpticalFlowExecuteInfoNV;
67778 #[inline]
67779 fn deref(&self) -> &Self::Target {
67780 &self.inner
67781 }
67782}
67783impl<'a> core::ops::DerefMut for OpticalFlowExecuteInfoNVBuilder<'a> {
67784 #[inline]
67785 fn deref_mut(&mut self) -> &mut Self::Target {
67786 &mut self.inner
67787 }
67788}
67789pub struct PhysicalDeviceFaultFeaturesEXTBuilder<'a> {
67791 inner: PhysicalDeviceFaultFeaturesEXT,
67792 _marker: core::marker::PhantomData<&'a ()>,
67793}
67794impl PhysicalDeviceFaultFeaturesEXT {
67795 #[inline]
67797 pub fn builder<'a>() -> PhysicalDeviceFaultFeaturesEXTBuilder<'a> {
67798 PhysicalDeviceFaultFeaturesEXTBuilder {
67799 inner: PhysicalDeviceFaultFeaturesEXT {
67800 s_type: StructureType::from_raw(1000341000i32),
67801 ..Default::default()
67802 },
67803 _marker: core::marker::PhantomData,
67804 }
67805 }
67806}
67807impl<'a> PhysicalDeviceFaultFeaturesEXTBuilder<'a> {
67808 #[inline]
67809 pub fn device_fault(mut self, value: bool) -> Self {
67810 self.inner.device_fault = value as u32;
67811 self
67812 }
67813 #[inline]
67814 pub fn device_fault_vendor_binary(mut self, value: bool) -> Self {
67815 self.inner.device_fault_vendor_binary = value as u32;
67816 self
67817 }
67818 #[inline]
67820 pub fn push_next<T: ExtendsPhysicalDeviceFaultFeaturesEXT>(
67821 mut self,
67822 next: &'a mut T,
67823 ) -> Self {
67824 unsafe {
67825 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
67826 (*next_ptr).p_next = self.inner.p_next as *mut _;
67827 self.inner.p_next = <*mut BaseOutStructure>::cast::<
67828 core::ffi::c_void,
67829 >(next_ptr);
67830 }
67831 self
67832 }
67833}
67834impl<'a> core::ops::Deref for PhysicalDeviceFaultFeaturesEXTBuilder<'a> {
67835 type Target = PhysicalDeviceFaultFeaturesEXT;
67836 #[inline]
67837 fn deref(&self) -> &Self::Target {
67838 &self.inner
67839 }
67840}
67841impl<'a> core::ops::DerefMut for PhysicalDeviceFaultFeaturesEXTBuilder<'a> {
67842 #[inline]
67843 fn deref_mut(&mut self) -> &mut Self::Target {
67844 &mut self.inner
67845 }
67846}
67847pub struct DeviceFaultAddressInfoKHRBuilder {
67849 inner: DeviceFaultAddressInfoKHR,
67850}
67851impl DeviceFaultAddressInfoKHR {
67852 #[inline]
67854 pub fn builder() -> DeviceFaultAddressInfoKHRBuilder {
67855 DeviceFaultAddressInfoKHRBuilder {
67856 inner: DeviceFaultAddressInfoKHR {
67857 ..Default::default()
67858 },
67859 }
67860 }
67861}
67862impl DeviceFaultAddressInfoKHRBuilder {
67863 #[inline]
67864 pub fn address_type(mut self, value: DeviceFaultAddressTypeKHR) -> Self {
67865 self.inner.address_type = value;
67866 self
67867 }
67868 #[inline]
67869 pub fn reported_address(mut self, value: u64) -> Self {
67870 self.inner.reported_address = value;
67871 self
67872 }
67873 #[inline]
67874 pub fn address_precision(mut self, value: u64) -> Self {
67875 self.inner.address_precision = value;
67876 self
67877 }
67878}
67879impl core::ops::Deref for DeviceFaultAddressInfoKHRBuilder {
67880 type Target = DeviceFaultAddressInfoKHR;
67881 #[inline]
67882 fn deref(&self) -> &Self::Target {
67883 &self.inner
67884 }
67885}
67886impl core::ops::DerefMut for DeviceFaultAddressInfoKHRBuilder {
67887 #[inline]
67888 fn deref_mut(&mut self) -> &mut Self::Target {
67889 &mut self.inner
67890 }
67891}
67892pub struct DeviceFaultVendorInfoKHRBuilder {
67894 inner: DeviceFaultVendorInfoKHR,
67895}
67896impl DeviceFaultVendorInfoKHR {
67897 #[inline]
67899 pub fn builder() -> DeviceFaultVendorInfoKHRBuilder {
67900 DeviceFaultVendorInfoKHRBuilder {
67901 inner: DeviceFaultVendorInfoKHR {
67902 ..Default::default()
67903 },
67904 }
67905 }
67906}
67907impl DeviceFaultVendorInfoKHRBuilder {
67908 #[inline]
67909 pub fn description(
67910 mut self,
67911 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
67912 ) -> Self {
67913 self.inner.description = value;
67914 self
67915 }
67916 #[inline]
67917 pub fn vendor_fault_code(mut self, value: u64) -> Self {
67918 self.inner.vendor_fault_code = value;
67919 self
67920 }
67921 #[inline]
67922 pub fn vendor_fault_data(mut self, value: u64) -> Self {
67923 self.inner.vendor_fault_data = value;
67924 self
67925 }
67926}
67927impl core::ops::Deref for DeviceFaultVendorInfoKHRBuilder {
67928 type Target = DeviceFaultVendorInfoKHR;
67929 #[inline]
67930 fn deref(&self) -> &Self::Target {
67931 &self.inner
67932 }
67933}
67934impl core::ops::DerefMut for DeviceFaultVendorInfoKHRBuilder {
67935 #[inline]
67936 fn deref_mut(&mut self) -> &mut Self::Target {
67937 &mut self.inner
67938 }
67939}
67940pub struct DeviceFaultInfoKHRBuilder<'a> {
67942 inner: DeviceFaultInfoKHR,
67943 _marker: core::marker::PhantomData<&'a ()>,
67944}
67945impl DeviceFaultInfoKHR {
67946 #[inline]
67948 pub fn builder<'a>() -> DeviceFaultInfoKHRBuilder<'a> {
67949 DeviceFaultInfoKHRBuilder {
67950 inner: DeviceFaultInfoKHR {
67951 s_type: StructureType::from_raw(1000573002i32),
67952 ..Default::default()
67953 },
67954 _marker: core::marker::PhantomData,
67955 }
67956 }
67957}
67958impl<'a> DeviceFaultInfoKHRBuilder<'a> {
67959 #[inline]
67960 pub fn flags(mut self, value: DeviceFaultFlagsKHR) -> Self {
67961 self.inner.flags = value;
67962 self
67963 }
67964 #[inline]
67965 pub fn group_id(mut self, value: u64) -> Self {
67966 self.inner.group_id = value;
67967 self
67968 }
67969 #[inline]
67970 pub fn description(
67971 mut self,
67972 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
67973 ) -> Self {
67974 self.inner.description = value;
67975 self
67976 }
67977 #[inline]
67978 pub fn fault_address_info(mut self, value: DeviceFaultAddressInfoKHR) -> Self {
67979 self.inner.fault_address_info = value;
67980 self
67981 }
67982 #[inline]
67983 pub fn instruction_address_info(mut self, value: DeviceFaultAddressInfoKHR) -> Self {
67984 self.inner.instruction_address_info = value;
67985 self
67986 }
67987 #[inline]
67988 pub fn vendor_info(mut self, value: DeviceFaultVendorInfoKHR) -> Self {
67989 self.inner.vendor_info = value;
67990 self
67991 }
67992}
67993impl<'a> core::ops::Deref for DeviceFaultInfoKHRBuilder<'a> {
67994 type Target = DeviceFaultInfoKHR;
67995 #[inline]
67996 fn deref(&self) -> &Self::Target {
67997 &self.inner
67998 }
67999}
68000impl<'a> core::ops::DerefMut for DeviceFaultInfoKHRBuilder<'a> {
68001 #[inline]
68002 fn deref_mut(&mut self) -> &mut Self::Target {
68003 &mut self.inner
68004 }
68005}
68006pub struct DeviceFaultDebugInfoKHRBuilder<'a> {
68008 inner: DeviceFaultDebugInfoKHR,
68009 _marker: core::marker::PhantomData<&'a ()>,
68010}
68011impl DeviceFaultDebugInfoKHR {
68012 #[inline]
68014 pub fn builder<'a>() -> DeviceFaultDebugInfoKHRBuilder<'a> {
68015 DeviceFaultDebugInfoKHRBuilder {
68016 inner: DeviceFaultDebugInfoKHR {
68017 s_type: StructureType::from_raw(1000573003i32),
68018 ..Default::default()
68019 },
68020 _marker: core::marker::PhantomData,
68021 }
68022 }
68023}
68024impl<'a> DeviceFaultDebugInfoKHRBuilder<'a> {
68025 #[inline]
68026 pub fn vendor_binary_size(mut self, value: u32) -> Self {
68027 self.inner.vendor_binary_size = value;
68028 self
68029 }
68030 #[inline]
68031 pub fn vendor_binary_data(mut self, slice: &'a mut [core::ffi::c_void]) -> Self {
68032 self.inner.vendor_binary_size = slice.len() as u32;
68033 self.inner.p_vendor_binary_data = slice.as_mut_ptr();
68034 self
68035 }
68036}
68037impl<'a> core::ops::Deref for DeviceFaultDebugInfoKHRBuilder<'a> {
68038 type Target = DeviceFaultDebugInfoKHR;
68039 #[inline]
68040 fn deref(&self) -> &Self::Target {
68041 &self.inner
68042 }
68043}
68044impl<'a> core::ops::DerefMut for DeviceFaultDebugInfoKHRBuilder<'a> {
68045 #[inline]
68046 fn deref_mut(&mut self) -> &mut Self::Target {
68047 &mut self.inner
68048 }
68049}
68050pub struct DeviceFaultCountsEXTBuilder<'a> {
68052 inner: DeviceFaultCountsEXT,
68053 _marker: core::marker::PhantomData<&'a ()>,
68054}
68055impl DeviceFaultCountsEXT {
68056 #[inline]
68058 pub fn builder<'a>() -> DeviceFaultCountsEXTBuilder<'a> {
68059 DeviceFaultCountsEXTBuilder {
68060 inner: DeviceFaultCountsEXT {
68061 s_type: StructureType::from_raw(1000341001i32),
68062 ..Default::default()
68063 },
68064 _marker: core::marker::PhantomData,
68065 }
68066 }
68067}
68068impl<'a> DeviceFaultCountsEXTBuilder<'a> {
68069 #[inline]
68070 pub fn address_info_count(mut self, value: u32) -> Self {
68071 self.inner.address_info_count = value;
68072 self
68073 }
68074 #[inline]
68075 pub fn vendor_info_count(mut self, value: u32) -> Self {
68076 self.inner.vendor_info_count = value;
68077 self
68078 }
68079 #[inline]
68080 pub fn vendor_binary_size(mut self, value: u64) -> Self {
68081 self.inner.vendor_binary_size = value;
68082 self
68083 }
68084 #[inline]
68086 pub fn push_next<T: ExtendsDeviceFaultCountsEXT>(mut self, next: &'a mut T) -> Self {
68087 unsafe {
68088 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68089 (*next_ptr).p_next = self.inner.p_next as *mut _;
68090 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68091 core::ffi::c_void,
68092 >(next_ptr);
68093 }
68094 self
68095 }
68096}
68097impl<'a> core::ops::Deref for DeviceFaultCountsEXTBuilder<'a> {
68098 type Target = DeviceFaultCountsEXT;
68099 #[inline]
68100 fn deref(&self) -> &Self::Target {
68101 &self.inner
68102 }
68103}
68104impl<'a> core::ops::DerefMut for DeviceFaultCountsEXTBuilder<'a> {
68105 #[inline]
68106 fn deref_mut(&mut self) -> &mut Self::Target {
68107 &mut self.inner
68108 }
68109}
68110pub struct DeviceFaultInfoEXTBuilder<'a> {
68112 inner: DeviceFaultInfoEXT,
68113 _marker: core::marker::PhantomData<&'a ()>,
68114}
68115impl DeviceFaultInfoEXT {
68116 #[inline]
68118 pub fn builder<'a>() -> DeviceFaultInfoEXTBuilder<'a> {
68119 DeviceFaultInfoEXTBuilder {
68120 inner: DeviceFaultInfoEXT {
68121 s_type: StructureType::from_raw(1000341002i32),
68122 ..Default::default()
68123 },
68124 _marker: core::marker::PhantomData,
68125 }
68126 }
68127}
68128impl<'a> DeviceFaultInfoEXTBuilder<'a> {
68129 #[inline]
68130 pub fn description(
68131 mut self,
68132 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
68133 ) -> Self {
68134 self.inner.description = value;
68135 self
68136 }
68137 #[inline]
68138 pub fn address_infos(mut self, value: *mut DeviceFaultAddressInfoKHR) -> Self {
68139 self.inner.p_address_infos = value;
68140 self
68141 }
68142 #[inline]
68143 pub fn vendor_infos(mut self, value: *mut DeviceFaultVendorInfoKHR) -> Self {
68144 self.inner.p_vendor_infos = value;
68145 self
68146 }
68147 #[inline]
68148 pub fn vendor_binary_data(mut self, value: *mut core::ffi::c_void) -> Self {
68149 self.inner.p_vendor_binary_data = value;
68150 self
68151 }
68152}
68153impl<'a> core::ops::Deref for DeviceFaultInfoEXTBuilder<'a> {
68154 type Target = DeviceFaultInfoEXT;
68155 #[inline]
68156 fn deref(&self) -> &Self::Target {
68157 &self.inner
68158 }
68159}
68160impl<'a> core::ops::DerefMut for DeviceFaultInfoEXTBuilder<'a> {
68161 #[inline]
68162 fn deref_mut(&mut self) -> &mut Self::Target {
68163 &mut self.inner
68164 }
68165}
68166pub struct DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68168 inner: DeviceFaultVendorBinaryHeaderVersionOneKHR,
68169}
68170impl DeviceFaultVendorBinaryHeaderVersionOneKHR {
68171 #[inline]
68173 pub fn builder() -> DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68174 DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68175 inner: DeviceFaultVendorBinaryHeaderVersionOneKHR {
68176 ..Default::default()
68177 },
68178 }
68179 }
68180}
68181impl DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68182 #[inline]
68183 pub fn header_size(mut self, value: u32) -> Self {
68184 self.inner.header_size = value;
68185 self
68186 }
68187 #[inline]
68188 pub fn header_version(
68189 mut self,
68190 value: DeviceFaultVendorBinaryHeaderVersionKHR,
68191 ) -> Self {
68192 self.inner.header_version = value;
68193 self
68194 }
68195 #[inline]
68196 pub fn vendor_id(mut self, value: u32) -> Self {
68197 self.inner.vendor_id = value;
68198 self
68199 }
68200 #[inline]
68201 pub fn device_id(mut self, value: u32) -> Self {
68202 self.inner.device_id = value;
68203 self
68204 }
68205 #[inline]
68206 pub fn driver_version(mut self, value: u32) -> Self {
68207 self.inner.driver_version = value;
68208 self
68209 }
68210 #[inline]
68211 pub fn pipeline_cache_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
68212 self.inner.pipeline_cache_uuid = value;
68213 self
68214 }
68215 #[inline]
68216 pub fn application_name_offset(mut self, value: u32) -> Self {
68217 self.inner.application_name_offset = value;
68218 self
68219 }
68220 #[inline]
68221 pub fn application_version(mut self, value: u32) -> Self {
68222 self.inner.application_version = value;
68223 self
68224 }
68225 #[inline]
68226 pub fn engine_name_offset(mut self, value: u32) -> Self {
68227 self.inner.engine_name_offset = value;
68228 self
68229 }
68230 #[inline]
68231 pub fn engine_version(mut self, value: u32) -> Self {
68232 self.inner.engine_version = value;
68233 self
68234 }
68235 #[inline]
68236 pub fn api_version(mut self, value: u32) -> Self {
68237 self.inner.api_version = value;
68238 self
68239 }
68240}
68241impl core::ops::Deref for DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68242 type Target = DeviceFaultVendorBinaryHeaderVersionOneKHR;
68243 #[inline]
68244 fn deref(&self) -> &Self::Target {
68245 &self.inner
68246 }
68247}
68248impl core::ops::DerefMut for DeviceFaultVendorBinaryHeaderVersionOneKHRBuilder {
68249 #[inline]
68250 fn deref_mut(&mut self) -> &mut Self::Target {
68251 &mut self.inner
68252 }
68253}
68254pub struct PhysicalDeviceFaultFeaturesKHRBuilder<'a> {
68256 inner: PhysicalDeviceFaultFeaturesKHR,
68257 _marker: core::marker::PhantomData<&'a ()>,
68258}
68259impl PhysicalDeviceFaultFeaturesKHR {
68260 #[inline]
68262 pub fn builder<'a>() -> PhysicalDeviceFaultFeaturesKHRBuilder<'a> {
68263 PhysicalDeviceFaultFeaturesKHRBuilder {
68264 inner: PhysicalDeviceFaultFeaturesKHR {
68265 s_type: StructureType::from_raw(1000573000i32),
68266 ..Default::default()
68267 },
68268 _marker: core::marker::PhantomData,
68269 }
68270 }
68271}
68272impl<'a> PhysicalDeviceFaultFeaturesKHRBuilder<'a> {
68273 #[inline]
68274 pub fn device_fault(mut self, value: bool) -> Self {
68275 self.inner.device_fault = value as u32;
68276 self
68277 }
68278 #[inline]
68279 pub fn device_fault_vendor_binary(mut self, value: bool) -> Self {
68280 self.inner.device_fault_vendor_binary = value as u32;
68281 self
68282 }
68283 #[inline]
68284 pub fn device_fault_report_masked(mut self, value: bool) -> Self {
68285 self.inner.device_fault_report_masked = value as u32;
68286 self
68287 }
68288 #[inline]
68289 pub fn device_fault_device_lost_on_masked(mut self, value: bool) -> Self {
68290 self.inner.device_fault_device_lost_on_masked = value as u32;
68291 self
68292 }
68293 #[inline]
68295 pub fn push_next<T: ExtendsPhysicalDeviceFaultFeaturesKHR>(
68296 mut self,
68297 next: &'a mut T,
68298 ) -> Self {
68299 unsafe {
68300 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68301 (*next_ptr).p_next = self.inner.p_next as *mut _;
68302 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68303 core::ffi::c_void,
68304 >(next_ptr);
68305 }
68306 self
68307 }
68308}
68309impl<'a> core::ops::Deref for PhysicalDeviceFaultFeaturesKHRBuilder<'a> {
68310 type Target = PhysicalDeviceFaultFeaturesKHR;
68311 #[inline]
68312 fn deref(&self) -> &Self::Target {
68313 &self.inner
68314 }
68315}
68316impl<'a> core::ops::DerefMut for PhysicalDeviceFaultFeaturesKHRBuilder<'a> {
68317 #[inline]
68318 fn deref_mut(&mut self) -> &mut Self::Target {
68319 &mut self.inner
68320 }
68321}
68322pub struct PhysicalDeviceFaultPropertiesKHRBuilder<'a> {
68324 inner: PhysicalDeviceFaultPropertiesKHR,
68325 _marker: core::marker::PhantomData<&'a ()>,
68326}
68327impl PhysicalDeviceFaultPropertiesKHR {
68328 #[inline]
68330 pub fn builder<'a>() -> PhysicalDeviceFaultPropertiesKHRBuilder<'a> {
68331 PhysicalDeviceFaultPropertiesKHRBuilder {
68332 inner: PhysicalDeviceFaultPropertiesKHR {
68333 s_type: StructureType::from_raw(1000573001i32),
68334 ..Default::default()
68335 },
68336 _marker: core::marker::PhantomData,
68337 }
68338 }
68339}
68340impl<'a> PhysicalDeviceFaultPropertiesKHRBuilder<'a> {
68341 #[inline]
68342 pub fn max_device_fault_count(mut self, value: u32) -> Self {
68343 self.inner.max_device_fault_count = value;
68344 self
68345 }
68346}
68347impl<'a> core::ops::Deref for PhysicalDeviceFaultPropertiesKHRBuilder<'a> {
68348 type Target = PhysicalDeviceFaultPropertiesKHR;
68349 #[inline]
68350 fn deref(&self) -> &Self::Target {
68351 &self.inner
68352 }
68353}
68354impl<'a> core::ops::DerefMut for PhysicalDeviceFaultPropertiesKHRBuilder<'a> {
68355 #[inline]
68356 fn deref_mut(&mut self) -> &mut Self::Target {
68357 &mut self.inner
68358 }
68359}
68360pub struct PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder<'a> {
68362 inner: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT,
68363 _marker: core::marker::PhantomData<&'a ()>,
68364}
68365impl PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
68366 #[inline]
68368 pub fn builder<'a>() -> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder<
68369 'a,
68370 > {
68371 PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder {
68372 inner: PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
68373 s_type: StructureType::from_raw(1000498000i32),
68374 ..Default::default()
68375 },
68376 _marker: core::marker::PhantomData,
68377 }
68378 }
68379}
68380impl<'a> PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder<'a> {
68381 #[inline]
68382 pub fn pipeline_library_group_handles(mut self, value: bool) -> Self {
68383 self.inner.pipeline_library_group_handles = value as u32;
68384 self
68385 }
68386 #[inline]
68388 pub fn push_next<T: ExtendsPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>(
68389 mut self,
68390 next: &'a mut T,
68391 ) -> Self {
68392 unsafe {
68393 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68394 (*next_ptr).p_next = self.inner.p_next as *mut _;
68395 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68396 core::ffi::c_void,
68397 >(next_ptr);
68398 }
68399 self
68400 }
68401}
68402impl<'a> core::ops::Deref
68403for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder<'a> {
68404 type Target = PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
68405 #[inline]
68406 fn deref(&self) -> &Self::Target {
68407 &self.inner
68408 }
68409}
68410impl<'a> core::ops::DerefMut
68411for PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXTBuilder<'a> {
68412 #[inline]
68413 fn deref_mut(&mut self) -> &mut Self::Target {
68414 &mut self.inner
68415 }
68416}
68417pub struct DepthBiasInfoEXTBuilder<'a> {
68419 inner: DepthBiasInfoEXT,
68420 _marker: core::marker::PhantomData<&'a ()>,
68421}
68422impl DepthBiasInfoEXT {
68423 #[inline]
68425 pub fn builder<'a>() -> DepthBiasInfoEXTBuilder<'a> {
68426 DepthBiasInfoEXTBuilder {
68427 inner: DepthBiasInfoEXT {
68428 s_type: StructureType::from_raw(1000283001i32),
68429 ..Default::default()
68430 },
68431 _marker: core::marker::PhantomData,
68432 }
68433 }
68434}
68435impl<'a> DepthBiasInfoEXTBuilder<'a> {
68436 #[inline]
68437 pub fn depth_bias_constant_factor(mut self, value: f32) -> Self {
68438 self.inner.depth_bias_constant_factor = value;
68439 self
68440 }
68441 #[inline]
68442 pub fn depth_bias_clamp(mut self, value: f32) -> Self {
68443 self.inner.depth_bias_clamp = value;
68444 self
68445 }
68446 #[inline]
68447 pub fn depth_bias_slope_factor(mut self, value: f32) -> Self {
68448 self.inner.depth_bias_slope_factor = value;
68449 self
68450 }
68451 #[inline]
68453 pub fn push_next<T: ExtendsDepthBiasInfoEXT>(mut self, next: &'a mut T) -> Self {
68454 unsafe {
68455 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68456 (*next_ptr).p_next = self.inner.p_next as *mut _;
68457 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68458 core::ffi::c_void,
68459 >(next_ptr) as *const _;
68460 }
68461 self
68462 }
68463}
68464impl<'a> core::ops::Deref for DepthBiasInfoEXTBuilder<'a> {
68465 type Target = DepthBiasInfoEXT;
68466 #[inline]
68467 fn deref(&self) -> &Self::Target {
68468 &self.inner
68469 }
68470}
68471impl<'a> core::ops::DerefMut for DepthBiasInfoEXTBuilder<'a> {
68472 #[inline]
68473 fn deref_mut(&mut self) -> &mut Self::Target {
68474 &mut self.inner
68475 }
68476}
68477pub struct DepthBiasRepresentationInfoEXTBuilder<'a> {
68479 inner: DepthBiasRepresentationInfoEXT,
68480 _marker: core::marker::PhantomData<&'a ()>,
68481}
68482impl DepthBiasRepresentationInfoEXT {
68483 #[inline]
68485 pub fn builder<'a>() -> DepthBiasRepresentationInfoEXTBuilder<'a> {
68486 DepthBiasRepresentationInfoEXTBuilder {
68487 inner: DepthBiasRepresentationInfoEXT {
68488 s_type: StructureType::from_raw(1000283002i32),
68489 ..Default::default()
68490 },
68491 _marker: core::marker::PhantomData,
68492 }
68493 }
68494}
68495impl<'a> DepthBiasRepresentationInfoEXTBuilder<'a> {
68496 #[inline]
68497 pub fn depth_bias_representation(
68498 mut self,
68499 value: DepthBiasRepresentationEXT,
68500 ) -> Self {
68501 self.inner.depth_bias_representation = value;
68502 self
68503 }
68504 #[inline]
68505 pub fn depth_bias_exact(mut self, value: bool) -> Self {
68506 self.inner.depth_bias_exact = value as u32;
68507 self
68508 }
68509 #[inline]
68511 pub fn push_next<T: ExtendsDepthBiasRepresentationInfoEXT>(
68512 mut self,
68513 next: &'a mut T,
68514 ) -> Self {
68515 unsafe {
68516 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68517 (*next_ptr).p_next = self.inner.p_next as *mut _;
68518 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68519 core::ffi::c_void,
68520 >(next_ptr) as *const _;
68521 }
68522 self
68523 }
68524}
68525impl<'a> core::ops::Deref for DepthBiasRepresentationInfoEXTBuilder<'a> {
68526 type Target = DepthBiasRepresentationInfoEXT;
68527 #[inline]
68528 fn deref(&self) -> &Self::Target {
68529 &self.inner
68530 }
68531}
68532impl<'a> core::ops::DerefMut for DepthBiasRepresentationInfoEXTBuilder<'a> {
68533 #[inline]
68534 fn deref_mut(&mut self) -> &mut Self::Target {
68535 &mut self.inner
68536 }
68537}
68538pub struct DecompressMemoryRegionNVBuilder {
68540 inner: DecompressMemoryRegionNV,
68541}
68542impl DecompressMemoryRegionNV {
68543 #[inline]
68545 pub fn builder() -> DecompressMemoryRegionNVBuilder {
68546 DecompressMemoryRegionNVBuilder {
68547 inner: DecompressMemoryRegionNV {
68548 ..Default::default()
68549 },
68550 }
68551 }
68552}
68553impl DecompressMemoryRegionNVBuilder {
68554 #[inline]
68555 pub fn src_address(mut self, value: u64) -> Self {
68556 self.inner.src_address = value;
68557 self
68558 }
68559 #[inline]
68560 pub fn dst_address(mut self, value: u64) -> Self {
68561 self.inner.dst_address = value;
68562 self
68563 }
68564 #[inline]
68565 pub fn compressed_size(mut self, value: u64) -> Self {
68566 self.inner.compressed_size = value;
68567 self
68568 }
68569 #[inline]
68570 pub fn decompressed_size(mut self, value: u64) -> Self {
68571 self.inner.decompressed_size = value;
68572 self
68573 }
68574 #[inline]
68575 pub fn decompression_method(
68576 mut self,
68577 value: MemoryDecompressionMethodFlagsNV,
68578 ) -> Self {
68579 self.inner.decompression_method = value;
68580 self
68581 }
68582}
68583impl core::ops::Deref for DecompressMemoryRegionNVBuilder {
68584 type Target = DecompressMemoryRegionNV;
68585 #[inline]
68586 fn deref(&self) -> &Self::Target {
68587 &self.inner
68588 }
68589}
68590impl core::ops::DerefMut for DecompressMemoryRegionNVBuilder {
68591 #[inline]
68592 fn deref_mut(&mut self) -> &mut Self::Target {
68593 &mut self.inner
68594 }
68595}
68596pub struct DecompressMemoryRegionEXTBuilder {
68598 inner: DecompressMemoryRegionEXT,
68599}
68600impl DecompressMemoryRegionEXT {
68601 #[inline]
68603 pub fn builder() -> DecompressMemoryRegionEXTBuilder {
68604 DecompressMemoryRegionEXTBuilder {
68605 inner: DecompressMemoryRegionEXT {
68606 ..Default::default()
68607 },
68608 }
68609 }
68610}
68611impl DecompressMemoryRegionEXTBuilder {
68612 #[inline]
68613 pub fn src_address(mut self, value: u64) -> Self {
68614 self.inner.src_address = value;
68615 self
68616 }
68617 #[inline]
68618 pub fn dst_address(mut self, value: u64) -> Self {
68619 self.inner.dst_address = value;
68620 self
68621 }
68622 #[inline]
68623 pub fn compressed_size(mut self, value: u64) -> Self {
68624 self.inner.compressed_size = value;
68625 self
68626 }
68627 #[inline]
68628 pub fn decompressed_size(mut self, value: u64) -> Self {
68629 self.inner.decompressed_size = value;
68630 self
68631 }
68632}
68633impl core::ops::Deref for DecompressMemoryRegionEXTBuilder {
68634 type Target = DecompressMemoryRegionEXT;
68635 #[inline]
68636 fn deref(&self) -> &Self::Target {
68637 &self.inner
68638 }
68639}
68640impl core::ops::DerefMut for DecompressMemoryRegionEXTBuilder {
68641 #[inline]
68642 fn deref_mut(&mut self) -> &mut Self::Target {
68643 &mut self.inner
68644 }
68645}
68646pub struct DecompressMemoryInfoEXTBuilder<'a> {
68648 inner: DecompressMemoryInfoEXT,
68649 _marker: core::marker::PhantomData<&'a ()>,
68650}
68651impl DecompressMemoryInfoEXT {
68652 #[inline]
68654 pub fn builder<'a>() -> DecompressMemoryInfoEXTBuilder<'a> {
68655 DecompressMemoryInfoEXTBuilder {
68656 inner: DecompressMemoryInfoEXT {
68657 s_type: StructureType::from_raw(1000550002i32),
68658 ..Default::default()
68659 },
68660 _marker: core::marker::PhantomData,
68661 }
68662 }
68663}
68664impl<'a> DecompressMemoryInfoEXTBuilder<'a> {
68665 #[inline]
68666 pub fn decompression_method(
68667 mut self,
68668 value: MemoryDecompressionMethodFlagsEXT,
68669 ) -> Self {
68670 self.inner.decompression_method = value;
68671 self
68672 }
68673 #[inline]
68674 pub fn regions(mut self, slice: &'a [DecompressMemoryRegionEXT]) -> Self {
68675 self.inner.region_count = slice.len() as u32;
68676 self.inner.p_regions = slice.as_ptr();
68677 self
68678 }
68679 #[inline]
68681 pub fn push_next<T: ExtendsDecompressMemoryInfoEXT>(
68682 mut self,
68683 next: &'a mut T,
68684 ) -> Self {
68685 unsafe {
68686 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68687 (*next_ptr).p_next = self.inner.p_next as *mut _;
68688 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68689 core::ffi::c_void,
68690 >(next_ptr) as *const _;
68691 }
68692 self
68693 }
68694}
68695impl<'a> core::ops::Deref for DecompressMemoryInfoEXTBuilder<'a> {
68696 type Target = DecompressMemoryInfoEXT;
68697 #[inline]
68698 fn deref(&self) -> &Self::Target {
68699 &self.inner
68700 }
68701}
68702impl<'a> core::ops::DerefMut for DecompressMemoryInfoEXTBuilder<'a> {
68703 #[inline]
68704 fn deref_mut(&mut self) -> &mut Self::Target {
68705 &mut self.inner
68706 }
68707}
68708pub struct PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder<'a> {
68710 inner: PhysicalDeviceShaderCoreBuiltinsPropertiesARM,
68711 _marker: core::marker::PhantomData<&'a ()>,
68712}
68713impl PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
68714 #[inline]
68716 pub fn builder<'a>() -> PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder<'a> {
68717 PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder {
68718 inner: PhysicalDeviceShaderCoreBuiltinsPropertiesARM {
68719 s_type: StructureType::from_raw(1000497001i32),
68720 ..Default::default()
68721 },
68722 _marker: core::marker::PhantomData,
68723 }
68724 }
68725}
68726impl<'a> PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder<'a> {
68727 #[inline]
68728 pub fn shader_core_mask(mut self, value: u64) -> Self {
68729 self.inner.shader_core_mask = value;
68730 self
68731 }
68732 #[inline]
68733 pub fn shader_core_count(mut self, value: u32) -> Self {
68734 self.inner.shader_core_count = value;
68735 self
68736 }
68737 #[inline]
68738 pub fn shader_warps_per_core(mut self, value: u32) -> Self {
68739 self.inner.shader_warps_per_core = value;
68740 self
68741 }
68742}
68743impl<'a> core::ops::Deref for PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder<'a> {
68744 type Target = PhysicalDeviceShaderCoreBuiltinsPropertiesARM;
68745 #[inline]
68746 fn deref(&self) -> &Self::Target {
68747 &self.inner
68748 }
68749}
68750impl<'a> core::ops::DerefMut
68751for PhysicalDeviceShaderCoreBuiltinsPropertiesARMBuilder<'a> {
68752 #[inline]
68753 fn deref_mut(&mut self) -> &mut Self::Target {
68754 &mut self.inner
68755 }
68756}
68757pub struct PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder<'a> {
68759 inner: PhysicalDeviceShaderCoreBuiltinsFeaturesARM,
68760 _marker: core::marker::PhantomData<&'a ()>,
68761}
68762impl PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
68763 #[inline]
68765 pub fn builder<'a>() -> PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder<'a> {
68766 PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder {
68767 inner: PhysicalDeviceShaderCoreBuiltinsFeaturesARM {
68768 s_type: StructureType::from_raw(1000497000i32),
68769 ..Default::default()
68770 },
68771 _marker: core::marker::PhantomData,
68772 }
68773 }
68774}
68775impl<'a> PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder<'a> {
68776 #[inline]
68777 pub fn shader_core_builtins(mut self, value: bool) -> Self {
68778 self.inner.shader_core_builtins = value as u32;
68779 self
68780 }
68781 #[inline]
68783 pub fn push_next<T: ExtendsPhysicalDeviceShaderCoreBuiltinsFeaturesARM>(
68784 mut self,
68785 next: &'a mut T,
68786 ) -> Self {
68787 unsafe {
68788 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68789 (*next_ptr).p_next = self.inner.p_next as *mut _;
68790 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68791 core::ffi::c_void,
68792 >(next_ptr);
68793 }
68794 self
68795 }
68796}
68797impl<'a> core::ops::Deref for PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder<'a> {
68798 type Target = PhysicalDeviceShaderCoreBuiltinsFeaturesARM;
68799 #[inline]
68800 fn deref(&self) -> &Self::Target {
68801 &self.inner
68802 }
68803}
68804impl<'a> core::ops::DerefMut for PhysicalDeviceShaderCoreBuiltinsFeaturesARMBuilder<'a> {
68805 #[inline]
68806 fn deref_mut(&mut self) -> &mut Self::Target {
68807 &mut self.inner
68808 }
68809}
68810pub struct FrameBoundaryEXTBuilder<'a> {
68812 inner: FrameBoundaryEXT,
68813 _marker: core::marker::PhantomData<&'a ()>,
68814}
68815impl FrameBoundaryEXT {
68816 #[inline]
68818 pub fn builder<'a>() -> FrameBoundaryEXTBuilder<'a> {
68819 FrameBoundaryEXTBuilder {
68820 inner: FrameBoundaryEXT {
68821 s_type: StructureType::from_raw(1000375001i32),
68822 ..Default::default()
68823 },
68824 _marker: core::marker::PhantomData,
68825 }
68826 }
68827}
68828impl<'a> FrameBoundaryEXTBuilder<'a> {
68829 #[inline]
68830 pub fn flags(mut self, value: FrameBoundaryFlagsEXT) -> Self {
68831 self.inner.flags = value;
68832 self
68833 }
68834 #[inline]
68835 pub fn frame_id(mut self, value: u64) -> Self {
68836 self.inner.frame_id = value;
68837 self
68838 }
68839 #[inline]
68840 pub fn image_count(mut self, value: u32) -> Self {
68841 self.inner.image_count = value;
68842 self
68843 }
68844 #[inline]
68845 pub fn images(mut self, slice: &'a [Image]) -> Self {
68846 self.inner.image_count = slice.len() as u32;
68847 self.inner.p_images = slice.as_ptr();
68848 self
68849 }
68850 #[inline]
68851 pub fn buffer_count(mut self, value: u32) -> Self {
68852 self.inner.buffer_count = value;
68853 self
68854 }
68855 #[inline]
68856 pub fn buffers(mut self, slice: &'a [Buffer]) -> Self {
68857 self.inner.buffer_count = slice.len() as u32;
68858 self.inner.p_buffers = slice.as_ptr();
68859 self
68860 }
68861 #[inline]
68862 pub fn tag_name(mut self, value: u64) -> Self {
68863 self.inner.tag_name = value;
68864 self
68865 }
68866 #[inline]
68867 pub fn tag_size(mut self, value: usize) -> Self {
68868 self.inner.tag_size = value;
68869 self
68870 }
68871 #[inline]
68872 pub fn tag(mut self, slice: &'a [core::ffi::c_void]) -> Self {
68873 self.inner.tag_size = slice.len();
68874 self.inner.p_tag = slice.as_ptr();
68875 self
68876 }
68877 #[inline]
68879 pub fn push_next<T: ExtendsFrameBoundaryEXT>(mut self, next: &'a mut T) -> Self {
68880 unsafe {
68881 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68882 (*next_ptr).p_next = self.inner.p_next as *mut _;
68883 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68884 core::ffi::c_void,
68885 >(next_ptr) as *const _;
68886 }
68887 self
68888 }
68889}
68890impl<'a> core::ops::Deref for FrameBoundaryEXTBuilder<'a> {
68891 type Target = FrameBoundaryEXT;
68892 #[inline]
68893 fn deref(&self) -> &Self::Target {
68894 &self.inner
68895 }
68896}
68897impl<'a> core::ops::DerefMut for FrameBoundaryEXTBuilder<'a> {
68898 #[inline]
68899 fn deref_mut(&mut self) -> &mut Self::Target {
68900 &mut self.inner
68901 }
68902}
68903pub struct PhysicalDeviceFrameBoundaryFeaturesEXTBuilder<'a> {
68905 inner: PhysicalDeviceFrameBoundaryFeaturesEXT,
68906 _marker: core::marker::PhantomData<&'a ()>,
68907}
68908impl PhysicalDeviceFrameBoundaryFeaturesEXT {
68909 #[inline]
68911 pub fn builder<'a>() -> PhysicalDeviceFrameBoundaryFeaturesEXTBuilder<'a> {
68912 PhysicalDeviceFrameBoundaryFeaturesEXTBuilder {
68913 inner: PhysicalDeviceFrameBoundaryFeaturesEXT {
68914 s_type: StructureType::from_raw(1000375000i32),
68915 ..Default::default()
68916 },
68917 _marker: core::marker::PhantomData,
68918 }
68919 }
68920}
68921impl<'a> PhysicalDeviceFrameBoundaryFeaturesEXTBuilder<'a> {
68922 #[inline]
68923 pub fn frame_boundary(mut self, value: bool) -> Self {
68924 self.inner.frame_boundary = value as u32;
68925 self
68926 }
68927 #[inline]
68929 pub fn push_next<T: ExtendsPhysicalDeviceFrameBoundaryFeaturesEXT>(
68930 mut self,
68931 next: &'a mut T,
68932 ) -> Self {
68933 unsafe {
68934 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68935 (*next_ptr).p_next = self.inner.p_next as *mut _;
68936 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68937 core::ffi::c_void,
68938 >(next_ptr);
68939 }
68940 self
68941 }
68942}
68943impl<'a> core::ops::Deref for PhysicalDeviceFrameBoundaryFeaturesEXTBuilder<'a> {
68944 type Target = PhysicalDeviceFrameBoundaryFeaturesEXT;
68945 #[inline]
68946 fn deref(&self) -> &Self::Target {
68947 &self.inner
68948 }
68949}
68950impl<'a> core::ops::DerefMut for PhysicalDeviceFrameBoundaryFeaturesEXTBuilder<'a> {
68951 #[inline]
68952 fn deref_mut(&mut self) -> &mut Self::Target {
68953 &mut self.inner
68954 }
68955}
68956pub struct PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder<'a> {
68958 inner: PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT,
68959 _marker: core::marker::PhantomData<&'a ()>,
68960}
68961impl PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
68962 #[inline]
68964 pub fn builder<'a>() -> PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder<
68965 'a,
68966 > {
68967 PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder {
68968 inner: PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
68969 s_type: StructureType::from_raw(1000499000i32),
68970 ..Default::default()
68971 },
68972 _marker: core::marker::PhantomData,
68973 }
68974 }
68975}
68976impl<'a> PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder<'a> {
68977 #[inline]
68978 pub fn dynamic_rendering_unused_attachments(mut self, value: bool) -> Self {
68979 self.inner.dynamic_rendering_unused_attachments = value as u32;
68980 self
68981 }
68982 #[inline]
68984 pub fn push_next<
68985 T: ExtendsPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT,
68986 >(mut self, next: &'a mut T) -> Self {
68987 unsafe {
68988 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
68989 (*next_ptr).p_next = self.inner.p_next as *mut _;
68990 self.inner.p_next = <*mut BaseOutStructure>::cast::<
68991 core::ffi::c_void,
68992 >(next_ptr);
68993 }
68994 self
68995 }
68996}
68997impl<'a> core::ops::Deref
68998for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder<'a> {
68999 type Target = PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
69000 #[inline]
69001 fn deref(&self) -> &Self::Target {
69002 &self.inner
69003 }
69004}
69005impl<'a> core::ops::DerefMut
69006for PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXTBuilder<'a> {
69007 #[inline]
69008 fn deref_mut(&mut self) -> &mut Self::Target {
69009 &mut self.inner
69010 }
69011}
69012pub struct PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder<'a> {
69014 inner: PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR,
69015 _marker: core::marker::PhantomData<&'a ()>,
69016}
69017impl PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
69018 #[inline]
69020 pub fn builder<'a>() -> PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder<
69021 'a,
69022 > {
69023 PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder {
69024 inner: PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
69025 s_type: StructureType::from_raw(1000504000i32),
69026 ..Default::default()
69027 },
69028 _marker: core::marker::PhantomData,
69029 }
69030 }
69031}
69032impl<'a> PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder<'a> {
69033 #[inline]
69034 pub fn internally_synchronized_queues(mut self, value: bool) -> Self {
69035 self.inner.internally_synchronized_queues = value as u32;
69036 self
69037 }
69038 #[inline]
69040 pub fn push_next<T: ExtendsPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR>(
69041 mut self,
69042 next: &'a mut T,
69043 ) -> Self {
69044 unsafe {
69045 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69046 (*next_ptr).p_next = self.inner.p_next as *mut _;
69047 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69048 core::ffi::c_void,
69049 >(next_ptr);
69050 }
69051 self
69052 }
69053}
69054impl<'a> core::ops::Deref
69055for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder<'a> {
69056 type Target = PhysicalDeviceInternallySynchronizedQueuesFeaturesKHR;
69057 #[inline]
69058 fn deref(&self) -> &Self::Target {
69059 &self.inner
69060 }
69061}
69062impl<'a> core::ops::DerefMut
69063for PhysicalDeviceInternallySynchronizedQueuesFeaturesKHRBuilder<'a> {
69064 #[inline]
69065 fn deref_mut(&mut self) -> &mut Self::Target {
69066 &mut self.inner
69067 }
69068}
69069pub struct SurfacePresentModeKHRBuilder<'a> {
69071 inner: SurfacePresentModeKHR,
69072 _marker: core::marker::PhantomData<&'a ()>,
69073}
69074impl SurfacePresentModeKHR {
69075 #[inline]
69077 pub fn builder<'a>() -> SurfacePresentModeKHRBuilder<'a> {
69078 SurfacePresentModeKHRBuilder {
69079 inner: SurfacePresentModeKHR {
69080 s_type: StructureType::from_raw(1000274000i32),
69081 ..Default::default()
69082 },
69083 _marker: core::marker::PhantomData,
69084 }
69085 }
69086}
69087impl<'a> SurfacePresentModeKHRBuilder<'a> {
69088 #[inline]
69089 pub fn present_mode(mut self, value: PresentModeKHR) -> Self {
69090 self.inner.present_mode = value;
69091 self
69092 }
69093 #[inline]
69095 pub fn push_next<T: ExtendsSurfacePresentModeKHR>(
69096 mut self,
69097 next: &'a mut T,
69098 ) -> Self {
69099 unsafe {
69100 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69101 (*next_ptr).p_next = self.inner.p_next as *mut _;
69102 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69103 core::ffi::c_void,
69104 >(next_ptr);
69105 }
69106 self
69107 }
69108}
69109impl<'a> core::ops::Deref for SurfacePresentModeKHRBuilder<'a> {
69110 type Target = SurfacePresentModeKHR;
69111 #[inline]
69112 fn deref(&self) -> &Self::Target {
69113 &self.inner
69114 }
69115}
69116impl<'a> core::ops::DerefMut for SurfacePresentModeKHRBuilder<'a> {
69117 #[inline]
69118 fn deref_mut(&mut self) -> &mut Self::Target {
69119 &mut self.inner
69120 }
69121}
69122pub struct SurfacePresentScalingCapabilitiesKHRBuilder<'a> {
69124 inner: SurfacePresentScalingCapabilitiesKHR,
69125 _marker: core::marker::PhantomData<&'a ()>,
69126}
69127impl SurfacePresentScalingCapabilitiesKHR {
69128 #[inline]
69130 pub fn builder<'a>() -> SurfacePresentScalingCapabilitiesKHRBuilder<'a> {
69131 SurfacePresentScalingCapabilitiesKHRBuilder {
69132 inner: SurfacePresentScalingCapabilitiesKHR {
69133 s_type: StructureType::from_raw(1000274001i32),
69134 ..Default::default()
69135 },
69136 _marker: core::marker::PhantomData,
69137 }
69138 }
69139}
69140impl<'a> SurfacePresentScalingCapabilitiesKHRBuilder<'a> {
69141 #[inline]
69142 pub fn supported_present_scaling(mut self, value: PresentScalingFlagsKHR) -> Self {
69143 self.inner.supported_present_scaling = value;
69144 self
69145 }
69146 #[inline]
69147 pub fn supported_present_gravity_x(mut self, value: PresentGravityFlagsKHR) -> Self {
69148 self.inner.supported_present_gravity_x = value;
69149 self
69150 }
69151 #[inline]
69152 pub fn supported_present_gravity_y(mut self, value: PresentGravityFlagsKHR) -> Self {
69153 self.inner.supported_present_gravity_y = value;
69154 self
69155 }
69156 #[inline]
69157 pub fn min_scaled_image_extent(mut self, value: Extent2D) -> Self {
69158 self.inner.min_scaled_image_extent = value;
69159 self
69160 }
69161 #[inline]
69162 pub fn max_scaled_image_extent(mut self, value: Extent2D) -> Self {
69163 self.inner.max_scaled_image_extent = value;
69164 self
69165 }
69166 #[inline]
69168 pub fn push_next<T: ExtendsSurfacePresentScalingCapabilitiesKHR>(
69169 mut self,
69170 next: &'a mut T,
69171 ) -> Self {
69172 unsafe {
69173 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69174 (*next_ptr).p_next = self.inner.p_next as *mut _;
69175 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69176 core::ffi::c_void,
69177 >(next_ptr);
69178 }
69179 self
69180 }
69181}
69182impl<'a> core::ops::Deref for SurfacePresentScalingCapabilitiesKHRBuilder<'a> {
69183 type Target = SurfacePresentScalingCapabilitiesKHR;
69184 #[inline]
69185 fn deref(&self) -> &Self::Target {
69186 &self.inner
69187 }
69188}
69189impl<'a> core::ops::DerefMut for SurfacePresentScalingCapabilitiesKHRBuilder<'a> {
69190 #[inline]
69191 fn deref_mut(&mut self) -> &mut Self::Target {
69192 &mut self.inner
69193 }
69194}
69195pub struct SurfacePresentModeCompatibilityKHRBuilder<'a> {
69197 inner: SurfacePresentModeCompatibilityKHR,
69198 _marker: core::marker::PhantomData<&'a ()>,
69199}
69200impl SurfacePresentModeCompatibilityKHR {
69201 #[inline]
69203 pub fn builder<'a>() -> SurfacePresentModeCompatibilityKHRBuilder<'a> {
69204 SurfacePresentModeCompatibilityKHRBuilder {
69205 inner: SurfacePresentModeCompatibilityKHR {
69206 s_type: StructureType::from_raw(1000274002i32),
69207 ..Default::default()
69208 },
69209 _marker: core::marker::PhantomData,
69210 }
69211 }
69212}
69213impl<'a> SurfacePresentModeCompatibilityKHRBuilder<'a> {
69214 #[inline]
69215 pub fn present_mode_count(mut self, value: u32) -> Self {
69216 self.inner.present_mode_count = value;
69217 self
69218 }
69219 #[inline]
69220 pub fn present_modes(mut self, slice: &'a mut [PresentModeKHR]) -> Self {
69221 self.inner.present_mode_count = slice.len() as u32;
69222 self.inner.p_present_modes = slice.as_mut_ptr();
69223 self
69224 }
69225 #[inline]
69227 pub fn push_next<T: ExtendsSurfacePresentModeCompatibilityKHR>(
69228 mut self,
69229 next: &'a mut T,
69230 ) -> Self {
69231 unsafe {
69232 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69233 (*next_ptr).p_next = self.inner.p_next as *mut _;
69234 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69235 core::ffi::c_void,
69236 >(next_ptr);
69237 }
69238 self
69239 }
69240}
69241impl<'a> core::ops::Deref for SurfacePresentModeCompatibilityKHRBuilder<'a> {
69242 type Target = SurfacePresentModeCompatibilityKHR;
69243 #[inline]
69244 fn deref(&self) -> &Self::Target {
69245 &self.inner
69246 }
69247}
69248impl<'a> core::ops::DerefMut for SurfacePresentModeCompatibilityKHRBuilder<'a> {
69249 #[inline]
69250 fn deref_mut(&mut self) -> &mut Self::Target {
69251 &mut self.inner
69252 }
69253}
69254pub struct PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder<'a> {
69256 inner: PhysicalDeviceSwapchainMaintenance1FeaturesKHR,
69257 _marker: core::marker::PhantomData<&'a ()>,
69258}
69259impl PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
69260 #[inline]
69262 pub fn builder<'a>() -> PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder<'a> {
69263 PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder {
69264 inner: PhysicalDeviceSwapchainMaintenance1FeaturesKHR {
69265 s_type: StructureType::from_raw(1000275000i32),
69266 ..Default::default()
69267 },
69268 _marker: core::marker::PhantomData,
69269 }
69270 }
69271}
69272impl<'a> PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder<'a> {
69273 #[inline]
69274 pub fn swapchain_maintenance1(mut self, value: bool) -> Self {
69275 self.inner.swapchain_maintenance1 = value as u32;
69276 self
69277 }
69278 #[inline]
69280 pub fn push_next<T: ExtendsPhysicalDeviceSwapchainMaintenance1FeaturesKHR>(
69281 mut self,
69282 next: &'a mut T,
69283 ) -> Self {
69284 unsafe {
69285 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69286 (*next_ptr).p_next = self.inner.p_next as *mut _;
69287 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69288 core::ffi::c_void,
69289 >(next_ptr);
69290 }
69291 self
69292 }
69293}
69294impl<'a> core::ops::Deref for PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder<'a> {
69295 type Target = PhysicalDeviceSwapchainMaintenance1FeaturesKHR;
69296 #[inline]
69297 fn deref(&self) -> &Self::Target {
69298 &self.inner
69299 }
69300}
69301impl<'a> core::ops::DerefMut
69302for PhysicalDeviceSwapchainMaintenance1FeaturesKHRBuilder<'a> {
69303 #[inline]
69304 fn deref_mut(&mut self) -> &mut Self::Target {
69305 &mut self.inner
69306 }
69307}
69308pub struct SwapchainPresentFenceInfoKHRBuilder<'a> {
69310 inner: SwapchainPresentFenceInfoKHR,
69311 _marker: core::marker::PhantomData<&'a ()>,
69312}
69313impl SwapchainPresentFenceInfoKHR {
69314 #[inline]
69316 pub fn builder<'a>() -> SwapchainPresentFenceInfoKHRBuilder<'a> {
69317 SwapchainPresentFenceInfoKHRBuilder {
69318 inner: SwapchainPresentFenceInfoKHR {
69319 s_type: StructureType::from_raw(1000275001i32),
69320 ..Default::default()
69321 },
69322 _marker: core::marker::PhantomData,
69323 }
69324 }
69325}
69326impl<'a> SwapchainPresentFenceInfoKHRBuilder<'a> {
69327 #[inline]
69328 pub fn swapchain_count(mut self, value: u32) -> Self {
69329 self.inner.swapchain_count = value;
69330 self
69331 }
69332 #[inline]
69333 pub fn fences(mut self, slice: &'a [Fence]) -> Self {
69334 self.inner.swapchain_count = slice.len() as u32;
69335 self.inner.p_fences = slice.as_ptr();
69336 self
69337 }
69338 #[inline]
69340 pub fn push_next<T: ExtendsSwapchainPresentFenceInfoKHR>(
69341 mut self,
69342 next: &'a mut T,
69343 ) -> Self {
69344 unsafe {
69345 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69346 (*next_ptr).p_next = self.inner.p_next as *mut _;
69347 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69348 core::ffi::c_void,
69349 >(next_ptr) as *const _;
69350 }
69351 self
69352 }
69353}
69354impl<'a> core::ops::Deref for SwapchainPresentFenceInfoKHRBuilder<'a> {
69355 type Target = SwapchainPresentFenceInfoKHR;
69356 #[inline]
69357 fn deref(&self) -> &Self::Target {
69358 &self.inner
69359 }
69360}
69361impl<'a> core::ops::DerefMut for SwapchainPresentFenceInfoKHRBuilder<'a> {
69362 #[inline]
69363 fn deref_mut(&mut self) -> &mut Self::Target {
69364 &mut self.inner
69365 }
69366}
69367pub struct SwapchainPresentModesCreateInfoKHRBuilder<'a> {
69369 inner: SwapchainPresentModesCreateInfoKHR,
69370 _marker: core::marker::PhantomData<&'a ()>,
69371}
69372impl SwapchainPresentModesCreateInfoKHR {
69373 #[inline]
69375 pub fn builder<'a>() -> SwapchainPresentModesCreateInfoKHRBuilder<'a> {
69376 SwapchainPresentModesCreateInfoKHRBuilder {
69377 inner: SwapchainPresentModesCreateInfoKHR {
69378 s_type: StructureType::from_raw(1000275002i32),
69379 ..Default::default()
69380 },
69381 _marker: core::marker::PhantomData,
69382 }
69383 }
69384}
69385impl<'a> SwapchainPresentModesCreateInfoKHRBuilder<'a> {
69386 #[inline]
69387 pub fn present_modes(mut self, slice: &'a [PresentModeKHR]) -> Self {
69388 self.inner.present_mode_count = slice.len() as u32;
69389 self.inner.p_present_modes = slice.as_ptr();
69390 self
69391 }
69392 #[inline]
69394 pub fn push_next<T: ExtendsSwapchainPresentModesCreateInfoKHR>(
69395 mut self,
69396 next: &'a mut T,
69397 ) -> Self {
69398 unsafe {
69399 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69400 (*next_ptr).p_next = self.inner.p_next as *mut _;
69401 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69402 core::ffi::c_void,
69403 >(next_ptr) as *const _;
69404 }
69405 self
69406 }
69407}
69408impl<'a> core::ops::Deref for SwapchainPresentModesCreateInfoKHRBuilder<'a> {
69409 type Target = SwapchainPresentModesCreateInfoKHR;
69410 #[inline]
69411 fn deref(&self) -> &Self::Target {
69412 &self.inner
69413 }
69414}
69415impl<'a> core::ops::DerefMut for SwapchainPresentModesCreateInfoKHRBuilder<'a> {
69416 #[inline]
69417 fn deref_mut(&mut self) -> &mut Self::Target {
69418 &mut self.inner
69419 }
69420}
69421pub struct SwapchainPresentModeInfoKHRBuilder<'a> {
69423 inner: SwapchainPresentModeInfoKHR,
69424 _marker: core::marker::PhantomData<&'a ()>,
69425}
69426impl SwapchainPresentModeInfoKHR {
69427 #[inline]
69429 pub fn builder<'a>() -> SwapchainPresentModeInfoKHRBuilder<'a> {
69430 SwapchainPresentModeInfoKHRBuilder {
69431 inner: SwapchainPresentModeInfoKHR {
69432 s_type: StructureType::from_raw(1000275003i32),
69433 ..Default::default()
69434 },
69435 _marker: core::marker::PhantomData,
69436 }
69437 }
69438}
69439impl<'a> SwapchainPresentModeInfoKHRBuilder<'a> {
69440 #[inline]
69441 pub fn present_modes(mut self, slice: &'a [PresentModeKHR]) -> Self {
69442 self.inner.swapchain_count = slice.len() as u32;
69443 self.inner.p_present_modes = slice.as_ptr();
69444 self
69445 }
69446 #[inline]
69448 pub fn push_next<T: ExtendsSwapchainPresentModeInfoKHR>(
69449 mut self,
69450 next: &'a mut T,
69451 ) -> Self {
69452 unsafe {
69453 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69454 (*next_ptr).p_next = self.inner.p_next as *mut _;
69455 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69456 core::ffi::c_void,
69457 >(next_ptr) as *const _;
69458 }
69459 self
69460 }
69461}
69462impl<'a> core::ops::Deref for SwapchainPresentModeInfoKHRBuilder<'a> {
69463 type Target = SwapchainPresentModeInfoKHR;
69464 #[inline]
69465 fn deref(&self) -> &Self::Target {
69466 &self.inner
69467 }
69468}
69469impl<'a> core::ops::DerefMut for SwapchainPresentModeInfoKHRBuilder<'a> {
69470 #[inline]
69471 fn deref_mut(&mut self) -> &mut Self::Target {
69472 &mut self.inner
69473 }
69474}
69475pub struct SwapchainPresentScalingCreateInfoKHRBuilder<'a> {
69477 inner: SwapchainPresentScalingCreateInfoKHR,
69478 _marker: core::marker::PhantomData<&'a ()>,
69479}
69480impl SwapchainPresentScalingCreateInfoKHR {
69481 #[inline]
69483 pub fn builder<'a>() -> SwapchainPresentScalingCreateInfoKHRBuilder<'a> {
69484 SwapchainPresentScalingCreateInfoKHRBuilder {
69485 inner: SwapchainPresentScalingCreateInfoKHR {
69486 s_type: StructureType::from_raw(1000275004i32),
69487 ..Default::default()
69488 },
69489 _marker: core::marker::PhantomData,
69490 }
69491 }
69492}
69493impl<'a> SwapchainPresentScalingCreateInfoKHRBuilder<'a> {
69494 #[inline]
69495 pub fn scaling_behavior(mut self, value: PresentScalingFlagsKHR) -> Self {
69496 self.inner.scaling_behavior = value;
69497 self
69498 }
69499 #[inline]
69500 pub fn present_gravity_x(mut self, value: PresentGravityFlagsKHR) -> Self {
69501 self.inner.present_gravity_x = value;
69502 self
69503 }
69504 #[inline]
69505 pub fn present_gravity_y(mut self, value: PresentGravityFlagsKHR) -> Self {
69506 self.inner.present_gravity_y = value;
69507 self
69508 }
69509 #[inline]
69511 pub fn push_next<T: ExtendsSwapchainPresentScalingCreateInfoKHR>(
69512 mut self,
69513 next: &'a mut T,
69514 ) -> Self {
69515 unsafe {
69516 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69517 (*next_ptr).p_next = self.inner.p_next as *mut _;
69518 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69519 core::ffi::c_void,
69520 >(next_ptr) as *const _;
69521 }
69522 self
69523 }
69524}
69525impl<'a> core::ops::Deref for SwapchainPresentScalingCreateInfoKHRBuilder<'a> {
69526 type Target = SwapchainPresentScalingCreateInfoKHR;
69527 #[inline]
69528 fn deref(&self) -> &Self::Target {
69529 &self.inner
69530 }
69531}
69532impl<'a> core::ops::DerefMut for SwapchainPresentScalingCreateInfoKHRBuilder<'a> {
69533 #[inline]
69534 fn deref_mut(&mut self) -> &mut Self::Target {
69535 &mut self.inner
69536 }
69537}
69538pub struct ReleaseSwapchainImagesInfoKHRBuilder<'a> {
69540 inner: ReleaseSwapchainImagesInfoKHR,
69541 _marker: core::marker::PhantomData<&'a ()>,
69542}
69543impl ReleaseSwapchainImagesInfoKHR {
69544 #[inline]
69546 pub fn builder<'a>() -> ReleaseSwapchainImagesInfoKHRBuilder<'a> {
69547 ReleaseSwapchainImagesInfoKHRBuilder {
69548 inner: ReleaseSwapchainImagesInfoKHR {
69549 s_type: StructureType::from_raw(1000275005i32),
69550 ..Default::default()
69551 },
69552 _marker: core::marker::PhantomData,
69553 }
69554 }
69555}
69556impl<'a> ReleaseSwapchainImagesInfoKHRBuilder<'a> {
69557 #[inline]
69558 pub fn swapchain(mut self, value: SwapchainKHR) -> Self {
69559 self.inner.swapchain = value;
69560 self
69561 }
69562 #[inline]
69563 pub fn image_indices(mut self, slice: &'a [u32]) -> Self {
69564 self.inner.image_index_count = slice.len() as u32;
69565 self.inner.p_image_indices = slice.as_ptr();
69566 self
69567 }
69568 #[inline]
69570 pub fn push_next<T: ExtendsReleaseSwapchainImagesInfoKHR>(
69571 mut self,
69572 next: &'a mut T,
69573 ) -> Self {
69574 unsafe {
69575 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69576 (*next_ptr).p_next = self.inner.p_next as *mut _;
69577 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69578 core::ffi::c_void,
69579 >(next_ptr) as *const _;
69580 }
69581 self
69582 }
69583}
69584impl<'a> core::ops::Deref for ReleaseSwapchainImagesInfoKHRBuilder<'a> {
69585 type Target = ReleaseSwapchainImagesInfoKHR;
69586 #[inline]
69587 fn deref(&self) -> &Self::Target {
69588 &self.inner
69589 }
69590}
69591impl<'a> core::ops::DerefMut for ReleaseSwapchainImagesInfoKHRBuilder<'a> {
69592 #[inline]
69593 fn deref_mut(&mut self) -> &mut Self::Target {
69594 &mut self.inner
69595 }
69596}
69597pub struct PhysicalDeviceDepthBiasControlFeaturesEXTBuilder<'a> {
69599 inner: PhysicalDeviceDepthBiasControlFeaturesEXT,
69600 _marker: core::marker::PhantomData<&'a ()>,
69601}
69602impl PhysicalDeviceDepthBiasControlFeaturesEXT {
69603 #[inline]
69605 pub fn builder<'a>() -> PhysicalDeviceDepthBiasControlFeaturesEXTBuilder<'a> {
69606 PhysicalDeviceDepthBiasControlFeaturesEXTBuilder {
69607 inner: PhysicalDeviceDepthBiasControlFeaturesEXT {
69608 s_type: StructureType::from_raw(1000283000i32),
69609 ..Default::default()
69610 },
69611 _marker: core::marker::PhantomData,
69612 }
69613 }
69614}
69615impl<'a> PhysicalDeviceDepthBiasControlFeaturesEXTBuilder<'a> {
69616 #[inline]
69617 pub fn depth_bias_control(mut self, value: bool) -> Self {
69618 self.inner.depth_bias_control = value as u32;
69619 self
69620 }
69621 #[inline]
69622 pub fn least_representable_value_force_unorm_representation(
69623 mut self,
69624 value: bool,
69625 ) -> Self {
69626 self.inner.least_representable_value_force_unorm_representation = value as u32;
69627 self
69628 }
69629 #[inline]
69630 pub fn float_representation(mut self, value: bool) -> Self {
69631 self.inner.float_representation = value as u32;
69632 self
69633 }
69634 #[inline]
69635 pub fn depth_bias_exact(mut self, value: bool) -> Self {
69636 self.inner.depth_bias_exact = value as u32;
69637 self
69638 }
69639 #[inline]
69641 pub fn push_next<T: ExtendsPhysicalDeviceDepthBiasControlFeaturesEXT>(
69642 mut self,
69643 next: &'a mut T,
69644 ) -> Self {
69645 unsafe {
69646 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69647 (*next_ptr).p_next = self.inner.p_next as *mut _;
69648 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69649 core::ffi::c_void,
69650 >(next_ptr);
69651 }
69652 self
69653 }
69654}
69655impl<'a> core::ops::Deref for PhysicalDeviceDepthBiasControlFeaturesEXTBuilder<'a> {
69656 type Target = PhysicalDeviceDepthBiasControlFeaturesEXT;
69657 #[inline]
69658 fn deref(&self) -> &Self::Target {
69659 &self.inner
69660 }
69661}
69662impl<'a> core::ops::DerefMut for PhysicalDeviceDepthBiasControlFeaturesEXTBuilder<'a> {
69663 #[inline]
69664 fn deref_mut(&mut self) -> &mut Self::Target {
69665 &mut self.inner
69666 }
69667}
69668pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder<'a> {
69670 inner: PhysicalDeviceRayTracingInvocationReorderFeaturesEXT,
69671 _marker: core::marker::PhantomData<&'a ()>,
69672}
69673impl PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
69674 #[inline]
69676 pub fn builder<'a>() -> PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder<
69677 'a,
69678 > {
69679 PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder {
69680 inner: PhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
69681 s_type: StructureType::from_raw(1000581000i32),
69682 ..Default::default()
69683 },
69684 _marker: core::marker::PhantomData,
69685 }
69686 }
69687}
69688impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder<'a> {
69689 #[inline]
69690 pub fn ray_tracing_invocation_reorder(mut self, value: bool) -> Self {
69691 self.inner.ray_tracing_invocation_reorder = value as u32;
69692 self
69693 }
69694 #[inline]
69696 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesEXT>(
69697 mut self,
69698 next: &'a mut T,
69699 ) -> Self {
69700 unsafe {
69701 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69702 (*next_ptr).p_next = self.inner.p_next as *mut _;
69703 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69704 core::ffi::c_void,
69705 >(next_ptr);
69706 }
69707 self
69708 }
69709}
69710impl<'a> core::ops::Deref
69711for PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder<'a> {
69712 type Target = PhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
69713 #[inline]
69714 fn deref(&self) -> &Self::Target {
69715 &self.inner
69716 }
69717}
69718impl<'a> core::ops::DerefMut
69719for PhysicalDeviceRayTracingInvocationReorderFeaturesEXTBuilder<'a> {
69720 #[inline]
69721 fn deref_mut(&mut self) -> &mut Self::Target {
69722 &mut self.inner
69723 }
69724}
69725pub struct PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder<'a> {
69727 inner: PhysicalDeviceRayTracingInvocationReorderFeaturesNV,
69728 _marker: core::marker::PhantomData<&'a ()>,
69729}
69730impl PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
69731 #[inline]
69733 pub fn builder<'a>() -> PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder<
69734 'a,
69735 > {
69736 PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder {
69737 inner: PhysicalDeviceRayTracingInvocationReorderFeaturesNV {
69738 s_type: StructureType::from_raw(1000490000i32),
69739 ..Default::default()
69740 },
69741 _marker: core::marker::PhantomData,
69742 }
69743 }
69744}
69745impl<'a> PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder<'a> {
69746 #[inline]
69747 pub fn ray_tracing_invocation_reorder(mut self, value: bool) -> Self {
69748 self.inner.ray_tracing_invocation_reorder = value as u32;
69749 self
69750 }
69751 #[inline]
69753 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingInvocationReorderFeaturesNV>(
69754 mut self,
69755 next: &'a mut T,
69756 ) -> Self {
69757 unsafe {
69758 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69759 (*next_ptr).p_next = self.inner.p_next as *mut _;
69760 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69761 core::ffi::c_void,
69762 >(next_ptr);
69763 }
69764 self
69765 }
69766}
69767impl<'a> core::ops::Deref
69768for PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder<'a> {
69769 type Target = PhysicalDeviceRayTracingInvocationReorderFeaturesNV;
69770 #[inline]
69771 fn deref(&self) -> &Self::Target {
69772 &self.inner
69773 }
69774}
69775impl<'a> core::ops::DerefMut
69776for PhysicalDeviceRayTracingInvocationReorderFeaturesNVBuilder<'a> {
69777 #[inline]
69778 fn deref_mut(&mut self) -> &mut Self::Target {
69779 &mut self.inner
69780 }
69781}
69782pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder<'a> {
69784 inner: PhysicalDeviceRayTracingInvocationReorderPropertiesEXT,
69785 _marker: core::marker::PhantomData<&'a ()>,
69786}
69787impl PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
69788 #[inline]
69790 pub fn builder<'a>() -> PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder<
69791 'a,
69792 > {
69793 PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder {
69794 inner: PhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
69795 s_type: StructureType::from_raw(1000581001i32),
69796 ..Default::default()
69797 },
69798 _marker: core::marker::PhantomData,
69799 }
69800 }
69801}
69802impl<'a> PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder<'a> {
69803 #[inline]
69804 pub fn ray_tracing_invocation_reorder_reordering_hint(
69805 mut self,
69806 value: RayTracingInvocationReorderModeEXT,
69807 ) -> Self {
69808 self.inner.ray_tracing_invocation_reorder_reordering_hint = value;
69809 self
69810 }
69811 #[inline]
69812 pub fn max_shader_binding_table_record_index(mut self, value: u32) -> Self {
69813 self.inner.max_shader_binding_table_record_index = value;
69814 self
69815 }
69816}
69817impl<'a> core::ops::Deref
69818for PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder<'a> {
69819 type Target = PhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
69820 #[inline]
69821 fn deref(&self) -> &Self::Target {
69822 &self.inner
69823 }
69824}
69825impl<'a> core::ops::DerefMut
69826for PhysicalDeviceRayTracingInvocationReorderPropertiesEXTBuilder<'a> {
69827 #[inline]
69828 fn deref_mut(&mut self) -> &mut Self::Target {
69829 &mut self.inner
69830 }
69831}
69832pub struct PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder<'a> {
69834 inner: PhysicalDeviceRayTracingInvocationReorderPropertiesNV,
69835 _marker: core::marker::PhantomData<&'a ()>,
69836}
69837impl PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
69838 #[inline]
69840 pub fn builder<'a>() -> PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder<
69841 'a,
69842 > {
69843 PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder {
69844 inner: PhysicalDeviceRayTracingInvocationReorderPropertiesNV {
69845 s_type: StructureType::from_raw(1000490001i32),
69846 ..Default::default()
69847 },
69848 _marker: core::marker::PhantomData,
69849 }
69850 }
69851}
69852impl<'a> PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder<'a> {
69853 #[inline]
69854 pub fn ray_tracing_invocation_reorder_reordering_hint(
69855 mut self,
69856 value: RayTracingInvocationReorderModeEXT,
69857 ) -> Self {
69858 self.inner.ray_tracing_invocation_reorder_reordering_hint = value;
69859 self
69860 }
69861}
69862impl<'a> core::ops::Deref
69863for PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder<'a> {
69864 type Target = PhysicalDeviceRayTracingInvocationReorderPropertiesNV;
69865 #[inline]
69866 fn deref(&self) -> &Self::Target {
69867 &self.inner
69868 }
69869}
69870impl<'a> core::ops::DerefMut
69871for PhysicalDeviceRayTracingInvocationReorderPropertiesNVBuilder<'a> {
69872 #[inline]
69873 fn deref_mut(&mut self) -> &mut Self::Target {
69874 &mut self.inner
69875 }
69876}
69877pub struct PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder<'a> {
69879 inner: PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV,
69880 _marker: core::marker::PhantomData<&'a ()>,
69881}
69882impl PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
69883 #[inline]
69885 pub fn builder<'a>() -> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder<
69886 'a,
69887 > {
69888 PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder {
69889 inner: PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
69890 s_type: StructureType::from_raw(1000492000i32),
69891 ..Default::default()
69892 },
69893 _marker: core::marker::PhantomData,
69894 }
69895 }
69896}
69897impl<'a> PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder<'a> {
69898 #[inline]
69899 pub fn extended_sparse_address_space(mut self, value: bool) -> Self {
69900 self.inner.extended_sparse_address_space = value as u32;
69901 self
69902 }
69903 #[inline]
69905 pub fn push_next<T: ExtendsPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>(
69906 mut self,
69907 next: &'a mut T,
69908 ) -> Self {
69909 unsafe {
69910 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
69911 (*next_ptr).p_next = self.inner.p_next as *mut _;
69912 self.inner.p_next = <*mut BaseOutStructure>::cast::<
69913 core::ffi::c_void,
69914 >(next_ptr);
69915 }
69916 self
69917 }
69918}
69919impl<'a> core::ops::Deref
69920for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder<'a> {
69921 type Target = PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
69922 #[inline]
69923 fn deref(&self) -> &Self::Target {
69924 &self.inner
69925 }
69926}
69927impl<'a> core::ops::DerefMut
69928for PhysicalDeviceExtendedSparseAddressSpaceFeaturesNVBuilder<'a> {
69929 #[inline]
69930 fn deref_mut(&mut self) -> &mut Self::Target {
69931 &mut self.inner
69932 }
69933}
69934pub struct PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder<'a> {
69936 inner: PhysicalDeviceExtendedSparseAddressSpacePropertiesNV,
69937 _marker: core::marker::PhantomData<&'a ()>,
69938}
69939impl PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
69940 #[inline]
69942 pub fn builder<'a>() -> PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder<
69943 'a,
69944 > {
69945 PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder {
69946 inner: PhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
69947 s_type: StructureType::from_raw(1000492001i32),
69948 ..Default::default()
69949 },
69950 _marker: core::marker::PhantomData,
69951 }
69952 }
69953}
69954impl<'a> PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder<'a> {
69955 #[inline]
69956 pub fn extended_sparse_address_space_size(mut self, value: u64) -> Self {
69957 self.inner.extended_sparse_address_space_size = value;
69958 self
69959 }
69960 #[inline]
69961 pub fn extended_sparse_image_usage_flags(mut self, value: ImageUsageFlags) -> Self {
69962 self.inner.extended_sparse_image_usage_flags = value;
69963 self
69964 }
69965 #[inline]
69966 pub fn extended_sparse_buffer_usage_flags(
69967 mut self,
69968 value: BufferUsageFlags,
69969 ) -> Self {
69970 self.inner.extended_sparse_buffer_usage_flags = value;
69971 self
69972 }
69973}
69974impl<'a> core::ops::Deref
69975for PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder<'a> {
69976 type Target = PhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
69977 #[inline]
69978 fn deref(&self) -> &Self::Target {
69979 &self.inner
69980 }
69981}
69982impl<'a> core::ops::DerefMut
69983for PhysicalDeviceExtendedSparseAddressSpacePropertiesNVBuilder<'a> {
69984 #[inline]
69985 fn deref_mut(&mut self) -> &mut Self::Target {
69986 &mut self.inner
69987 }
69988}
69989pub struct DirectDriverLoadingInfoLUNARGBuilder<'a> {
69991 inner: DirectDriverLoadingInfoLUNARG,
69992 _marker: core::marker::PhantomData<&'a ()>,
69993}
69994impl DirectDriverLoadingInfoLUNARG {
69995 #[inline]
69997 pub fn builder<'a>() -> DirectDriverLoadingInfoLUNARGBuilder<'a> {
69998 DirectDriverLoadingInfoLUNARGBuilder {
69999 inner: DirectDriverLoadingInfoLUNARG {
70000 s_type: StructureType::from_raw(1000459000i32),
70001 ..Default::default()
70002 },
70003 _marker: core::marker::PhantomData,
70004 }
70005 }
70006}
70007impl<'a> DirectDriverLoadingInfoLUNARGBuilder<'a> {
70008 #[inline]
70009 pub fn flags(mut self, value: DirectDriverLoadingFlagsLUNARG) -> Self {
70010 self.inner.flags = value;
70011 self
70012 }
70013 #[inline]
70014 pub fn pfn_get_instance_proc_addr(
70015 mut self,
70016 value: PFN_vkGetInstanceProcAddrLUNARG,
70017 ) -> Self {
70018 self.inner.pfn_get_instance_proc_addr = value;
70019 self
70020 }
70021 #[inline]
70023 pub fn push_next<T: ExtendsDirectDriverLoadingInfoLUNARG>(
70024 mut self,
70025 next: &'a mut T,
70026 ) -> Self {
70027 unsafe {
70028 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70029 (*next_ptr).p_next = self.inner.p_next as *mut _;
70030 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70031 core::ffi::c_void,
70032 >(next_ptr);
70033 }
70034 self
70035 }
70036}
70037impl<'a> core::ops::Deref for DirectDriverLoadingInfoLUNARGBuilder<'a> {
70038 type Target = DirectDriverLoadingInfoLUNARG;
70039 #[inline]
70040 fn deref(&self) -> &Self::Target {
70041 &self.inner
70042 }
70043}
70044impl<'a> core::ops::DerefMut for DirectDriverLoadingInfoLUNARGBuilder<'a> {
70045 #[inline]
70046 fn deref_mut(&mut self) -> &mut Self::Target {
70047 &mut self.inner
70048 }
70049}
70050pub struct DirectDriverLoadingListLUNARGBuilder<'a> {
70052 inner: DirectDriverLoadingListLUNARG,
70053 _marker: core::marker::PhantomData<&'a ()>,
70054}
70055impl DirectDriverLoadingListLUNARG {
70056 #[inline]
70058 pub fn builder<'a>() -> DirectDriverLoadingListLUNARGBuilder<'a> {
70059 DirectDriverLoadingListLUNARGBuilder {
70060 inner: DirectDriverLoadingListLUNARG {
70061 s_type: StructureType::from_raw(1000459001i32),
70062 ..Default::default()
70063 },
70064 _marker: core::marker::PhantomData,
70065 }
70066 }
70067}
70068impl<'a> DirectDriverLoadingListLUNARGBuilder<'a> {
70069 #[inline]
70070 pub fn mode(mut self, value: DirectDriverLoadingModeLUNARG) -> Self {
70071 self.inner.mode = value;
70072 self
70073 }
70074 #[inline]
70075 pub fn drivers(mut self, slice: &'a [DirectDriverLoadingInfoLUNARG]) -> Self {
70076 self.inner.driver_count = slice.len() as u32;
70077 self.inner.p_drivers = slice.as_ptr();
70078 self
70079 }
70080 #[inline]
70082 pub fn push_next<T: ExtendsDirectDriverLoadingListLUNARG>(
70083 mut self,
70084 next: &'a mut T,
70085 ) -> Self {
70086 unsafe {
70087 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70088 (*next_ptr).p_next = self.inner.p_next as *mut _;
70089 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70090 core::ffi::c_void,
70091 >(next_ptr) as *const _;
70092 }
70093 self
70094 }
70095}
70096impl<'a> core::ops::Deref for DirectDriverLoadingListLUNARGBuilder<'a> {
70097 type Target = DirectDriverLoadingListLUNARG;
70098 #[inline]
70099 fn deref(&self) -> &Self::Target {
70100 &self.inner
70101 }
70102}
70103impl<'a> core::ops::DerefMut for DirectDriverLoadingListLUNARGBuilder<'a> {
70104 #[inline]
70105 fn deref_mut(&mut self) -> &mut Self::Target {
70106 &mut self.inner
70107 }
70108}
70109pub struct PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder<'a> {
70111 inner: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM,
70112 _marker: core::marker::PhantomData<&'a ()>,
70113}
70114impl PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
70115 #[inline]
70117 pub fn builder<'a>() -> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder<
70118 'a,
70119 > {
70120 PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder {
70121 inner: PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
70122 s_type: StructureType::from_raw(1000488000i32),
70123 ..Default::default()
70124 },
70125 _marker: core::marker::PhantomData,
70126 }
70127 }
70128}
70129impl<'a> PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder<'a> {
70130 #[inline]
70131 pub fn multiview_per_view_viewports(mut self, value: bool) -> Self {
70132 self.inner.multiview_per_view_viewports = value as u32;
70133 self
70134 }
70135 #[inline]
70137 pub fn push_next<T: ExtendsPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>(
70138 mut self,
70139 next: &'a mut T,
70140 ) -> Self {
70141 unsafe {
70142 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70143 (*next_ptr).p_next = self.inner.p_next as *mut _;
70144 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70145 core::ffi::c_void,
70146 >(next_ptr);
70147 }
70148 self
70149 }
70150}
70151impl<'a> core::ops::Deref
70152for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder<'a> {
70153 type Target = PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
70154 #[inline]
70155 fn deref(&self) -> &Self::Target {
70156 &self.inner
70157 }
70158}
70159impl<'a> core::ops::DerefMut
70160for PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOMBuilder<'a> {
70161 #[inline]
70162 fn deref_mut(&mut self) -> &mut Self::Target {
70163 &mut self.inner
70164 }
70165}
70166pub struct PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder<'a> {
70168 inner: PhysicalDeviceRayTracingPositionFetchFeaturesKHR,
70169 _marker: core::marker::PhantomData<&'a ()>,
70170}
70171impl PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
70172 #[inline]
70174 pub fn builder<'a>() -> PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder<'a> {
70175 PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder {
70176 inner: PhysicalDeviceRayTracingPositionFetchFeaturesKHR {
70177 s_type: StructureType::from_raw(1000481000i32),
70178 ..Default::default()
70179 },
70180 _marker: core::marker::PhantomData,
70181 }
70182 }
70183}
70184impl<'a> PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder<'a> {
70185 #[inline]
70186 pub fn ray_tracing_position_fetch(mut self, value: bool) -> Self {
70187 self.inner.ray_tracing_position_fetch = value as u32;
70188 self
70189 }
70190 #[inline]
70192 pub fn push_next<T: ExtendsPhysicalDeviceRayTracingPositionFetchFeaturesKHR>(
70193 mut self,
70194 next: &'a mut T,
70195 ) -> Self {
70196 unsafe {
70197 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70198 (*next_ptr).p_next = self.inner.p_next as *mut _;
70199 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70200 core::ffi::c_void,
70201 >(next_ptr);
70202 }
70203 self
70204 }
70205}
70206impl<'a> core::ops::Deref
70207for PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder<'a> {
70208 type Target = PhysicalDeviceRayTracingPositionFetchFeaturesKHR;
70209 #[inline]
70210 fn deref(&self) -> &Self::Target {
70211 &self.inner
70212 }
70213}
70214impl<'a> core::ops::DerefMut
70215for PhysicalDeviceRayTracingPositionFetchFeaturesKHRBuilder<'a> {
70216 #[inline]
70217 fn deref_mut(&mut self) -> &mut Self::Target {
70218 &mut self.inner
70219 }
70220}
70221pub struct DeviceImageSubresourceInfoBuilder<'a> {
70223 inner: DeviceImageSubresourceInfo,
70224 _marker: core::marker::PhantomData<&'a ()>,
70225}
70226impl DeviceImageSubresourceInfo {
70227 #[inline]
70229 pub fn builder<'a>() -> DeviceImageSubresourceInfoBuilder<'a> {
70230 DeviceImageSubresourceInfoBuilder {
70231 inner: DeviceImageSubresourceInfo {
70232 s_type: StructureType::from_raw(1000470004i32),
70233 ..Default::default()
70234 },
70235 _marker: core::marker::PhantomData,
70236 }
70237 }
70238}
70239impl<'a> DeviceImageSubresourceInfoBuilder<'a> {
70240 #[inline]
70241 pub fn create_info(mut self, value: &'a ImageCreateInfo) -> Self {
70242 self.inner.p_create_info = value;
70243 self
70244 }
70245 #[inline]
70246 pub fn subresource(mut self, value: &'a ImageSubresource2) -> Self {
70247 self.inner.p_subresource = value;
70248 self
70249 }
70250 #[inline]
70252 pub fn push_next<T: ExtendsDeviceImageSubresourceInfo>(
70253 mut self,
70254 next: &'a mut T,
70255 ) -> Self {
70256 unsafe {
70257 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70258 (*next_ptr).p_next = self.inner.p_next as *mut _;
70259 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70260 core::ffi::c_void,
70261 >(next_ptr) as *const _;
70262 }
70263 self
70264 }
70265}
70266impl<'a> core::ops::Deref for DeviceImageSubresourceInfoBuilder<'a> {
70267 type Target = DeviceImageSubresourceInfo;
70268 #[inline]
70269 fn deref(&self) -> &Self::Target {
70270 &self.inner
70271 }
70272}
70273impl<'a> core::ops::DerefMut for DeviceImageSubresourceInfoBuilder<'a> {
70274 #[inline]
70275 fn deref_mut(&mut self) -> &mut Self::Target {
70276 &mut self.inner
70277 }
70278}
70279pub struct PhysicalDeviceShaderCorePropertiesARMBuilder<'a> {
70281 inner: PhysicalDeviceShaderCorePropertiesARM,
70282 _marker: core::marker::PhantomData<&'a ()>,
70283}
70284impl PhysicalDeviceShaderCorePropertiesARM {
70285 #[inline]
70287 pub fn builder<'a>() -> PhysicalDeviceShaderCorePropertiesARMBuilder<'a> {
70288 PhysicalDeviceShaderCorePropertiesARMBuilder {
70289 inner: PhysicalDeviceShaderCorePropertiesARM {
70290 s_type: StructureType::from_raw(1000415000i32),
70291 ..Default::default()
70292 },
70293 _marker: core::marker::PhantomData,
70294 }
70295 }
70296}
70297impl<'a> PhysicalDeviceShaderCorePropertiesARMBuilder<'a> {
70298 #[inline]
70299 pub fn pixel_rate(mut self, value: u32) -> Self {
70300 self.inner.pixel_rate = value;
70301 self
70302 }
70303 #[inline]
70304 pub fn texel_rate(mut self, value: u32) -> Self {
70305 self.inner.texel_rate = value;
70306 self
70307 }
70308 #[inline]
70309 pub fn fma_rate(mut self, value: u32) -> Self {
70310 self.inner.fma_rate = value;
70311 self
70312 }
70313}
70314impl<'a> core::ops::Deref for PhysicalDeviceShaderCorePropertiesARMBuilder<'a> {
70315 type Target = PhysicalDeviceShaderCorePropertiesARM;
70316 #[inline]
70317 fn deref(&self) -> &Self::Target {
70318 &self.inner
70319 }
70320}
70321impl<'a> core::ops::DerefMut for PhysicalDeviceShaderCorePropertiesARMBuilder<'a> {
70322 #[inline]
70323 fn deref_mut(&mut self) -> &mut Self::Target {
70324 &mut self.inner
70325 }
70326}
70327pub struct PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder<'a> {
70329 inner: PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM,
70330 _marker: core::marker::PhantomData<&'a ()>,
70331}
70332impl PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
70333 #[inline]
70335 pub fn builder<'a>() -> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder<
70336 'a,
70337 > {
70338 PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder {
70339 inner: PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
70340 s_type: StructureType::from_raw(1000510000i32),
70341 ..Default::default()
70342 },
70343 _marker: core::marker::PhantomData,
70344 }
70345 }
70346}
70347impl<'a> PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder<'a> {
70348 #[inline]
70349 pub fn multiview_per_view_render_areas(mut self, value: bool) -> Self {
70350 self.inner.multiview_per_view_render_areas = value as u32;
70351 self
70352 }
70353 #[inline]
70355 pub fn push_next<T: ExtendsPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>(
70356 mut self,
70357 next: &'a mut T,
70358 ) -> Self {
70359 unsafe {
70360 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70361 (*next_ptr).p_next = self.inner.p_next as *mut _;
70362 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70363 core::ffi::c_void,
70364 >(next_ptr);
70365 }
70366 self
70367 }
70368}
70369impl<'a> core::ops::Deref
70370for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder<'a> {
70371 type Target = PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
70372 #[inline]
70373 fn deref(&self) -> &Self::Target {
70374 &self.inner
70375 }
70376}
70377impl<'a> core::ops::DerefMut
70378for PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOMBuilder<'a> {
70379 #[inline]
70380 fn deref_mut(&mut self) -> &mut Self::Target {
70381 &mut self.inner
70382 }
70383}
70384pub struct MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder<'a> {
70386 inner: MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM,
70387 _marker: core::marker::PhantomData<&'a ()>,
70388}
70389impl MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
70390 #[inline]
70392 pub fn builder<'a>() -> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder<
70393 'a,
70394 > {
70395 MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder {
70396 inner: MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
70397 s_type: StructureType::from_raw(1000510001i32),
70398 ..Default::default()
70399 },
70400 _marker: core::marker::PhantomData,
70401 }
70402 }
70403}
70404impl<'a> MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder<'a> {
70405 #[inline]
70406 pub fn per_view_render_areas(mut self, slice: &'a [Rect2D]) -> Self {
70407 self.inner.per_view_render_area_count = slice.len() as u32;
70408 self.inner.p_per_view_render_areas = slice.as_ptr();
70409 self
70410 }
70411 #[inline]
70413 pub fn push_next<T: ExtendsMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>(
70414 mut self,
70415 next: &'a mut T,
70416 ) -> Self {
70417 unsafe {
70418 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70419 (*next_ptr).p_next = self.inner.p_next as *mut _;
70420 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70421 core::ffi::c_void,
70422 >(next_ptr) as *const _;
70423 }
70424 self
70425 }
70426}
70427impl<'a> core::ops::Deref
70428for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder<'a> {
70429 type Target = MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
70430 #[inline]
70431 fn deref(&self) -> &Self::Target {
70432 &self.inner
70433 }
70434}
70435impl<'a> core::ops::DerefMut
70436for MultiviewPerViewRenderAreasRenderPassBeginInfoQCOMBuilder<'a> {
70437 #[inline]
70438 fn deref_mut(&mut self) -> &mut Self::Target {
70439 &mut self.inner
70440 }
70441}
70442pub struct QueryLowLatencySupportNVBuilder<'a> {
70444 inner: QueryLowLatencySupportNV,
70445 _marker: core::marker::PhantomData<&'a ()>,
70446}
70447impl QueryLowLatencySupportNV {
70448 #[inline]
70450 pub fn builder<'a>() -> QueryLowLatencySupportNVBuilder<'a> {
70451 QueryLowLatencySupportNVBuilder {
70452 inner: QueryLowLatencySupportNV {
70453 s_type: StructureType::from_raw(1000310000i32),
70454 ..Default::default()
70455 },
70456 _marker: core::marker::PhantomData,
70457 }
70458 }
70459}
70460impl<'a> QueryLowLatencySupportNVBuilder<'a> {
70461 #[inline]
70462 pub fn queried_low_latency_data(mut self, value: *mut core::ffi::c_void) -> Self {
70463 self.inner.p_queried_low_latency_data = value;
70464 self
70465 }
70466 #[inline]
70468 pub fn push_next<T: ExtendsQueryLowLatencySupportNV>(
70469 mut self,
70470 next: &'a mut T,
70471 ) -> Self {
70472 unsafe {
70473 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70474 (*next_ptr).p_next = self.inner.p_next as *mut _;
70475 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70476 core::ffi::c_void,
70477 >(next_ptr) as *const _;
70478 }
70479 self
70480 }
70481}
70482impl<'a> core::ops::Deref for QueryLowLatencySupportNVBuilder<'a> {
70483 type Target = QueryLowLatencySupportNV;
70484 #[inline]
70485 fn deref(&self) -> &Self::Target {
70486 &self.inner
70487 }
70488}
70489impl<'a> core::ops::DerefMut for QueryLowLatencySupportNVBuilder<'a> {
70490 #[inline]
70491 fn deref_mut(&mut self) -> &mut Self::Target {
70492 &mut self.inner
70493 }
70494}
70495pub struct MemoryMapInfoBuilder<'a> {
70497 inner: MemoryMapInfo,
70498 _marker: core::marker::PhantomData<&'a ()>,
70499}
70500impl MemoryMapInfo {
70501 #[inline]
70503 pub fn builder<'a>() -> MemoryMapInfoBuilder<'a> {
70504 MemoryMapInfoBuilder {
70505 inner: MemoryMapInfo {
70506 s_type: StructureType::from_raw(1000271000i32),
70507 ..Default::default()
70508 },
70509 _marker: core::marker::PhantomData,
70510 }
70511 }
70512}
70513impl<'a> MemoryMapInfoBuilder<'a> {
70514 #[inline]
70515 pub fn flags(mut self, value: MemoryMapFlags) -> Self {
70516 self.inner.flags = value;
70517 self
70518 }
70519 #[inline]
70520 pub fn memory(mut self, value: DeviceMemory) -> Self {
70521 self.inner.memory = value;
70522 self
70523 }
70524 #[inline]
70525 pub fn offset(mut self, value: u64) -> Self {
70526 self.inner.offset = value;
70527 self
70528 }
70529 #[inline]
70530 pub fn size(mut self, value: u64) -> Self {
70531 self.inner.size = value;
70532 self
70533 }
70534 #[inline]
70536 pub fn push_next<T: ExtendsMemoryMapInfo>(mut self, next: &'a mut T) -> Self {
70537 unsafe {
70538 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70539 (*next_ptr).p_next = self.inner.p_next as *mut _;
70540 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70541 core::ffi::c_void,
70542 >(next_ptr) as *const _;
70543 }
70544 self
70545 }
70546}
70547impl<'a> core::ops::Deref for MemoryMapInfoBuilder<'a> {
70548 type Target = MemoryMapInfo;
70549 #[inline]
70550 fn deref(&self) -> &Self::Target {
70551 &self.inner
70552 }
70553}
70554impl<'a> core::ops::DerefMut for MemoryMapInfoBuilder<'a> {
70555 #[inline]
70556 fn deref_mut(&mut self) -> &mut Self::Target {
70557 &mut self.inner
70558 }
70559}
70560pub struct MemoryUnmapInfoBuilder<'a> {
70562 inner: MemoryUnmapInfo,
70563 _marker: core::marker::PhantomData<&'a ()>,
70564}
70565impl MemoryUnmapInfo {
70566 #[inline]
70568 pub fn builder<'a>() -> MemoryUnmapInfoBuilder<'a> {
70569 MemoryUnmapInfoBuilder {
70570 inner: MemoryUnmapInfo {
70571 s_type: StructureType::from_raw(1000271001i32),
70572 ..Default::default()
70573 },
70574 _marker: core::marker::PhantomData,
70575 }
70576 }
70577}
70578impl<'a> MemoryUnmapInfoBuilder<'a> {
70579 #[inline]
70580 pub fn flags(mut self, value: MemoryUnmapFlags) -> Self {
70581 self.inner.flags = value;
70582 self
70583 }
70584 #[inline]
70585 pub fn memory(mut self, value: DeviceMemory) -> Self {
70586 self.inner.memory = value;
70587 self
70588 }
70589 #[inline]
70591 pub fn push_next<T: ExtendsMemoryUnmapInfo>(mut self, next: &'a mut T) -> Self {
70592 unsafe {
70593 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70594 (*next_ptr).p_next = self.inner.p_next as *mut _;
70595 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70596 core::ffi::c_void,
70597 >(next_ptr) as *const _;
70598 }
70599 self
70600 }
70601}
70602impl<'a> core::ops::Deref for MemoryUnmapInfoBuilder<'a> {
70603 type Target = MemoryUnmapInfo;
70604 #[inline]
70605 fn deref(&self) -> &Self::Target {
70606 &self.inner
70607 }
70608}
70609impl<'a> core::ops::DerefMut for MemoryUnmapInfoBuilder<'a> {
70610 #[inline]
70611 fn deref_mut(&mut self) -> &mut Self::Target {
70612 &mut self.inner
70613 }
70614}
70615pub struct PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
70617 inner: PhysicalDeviceShaderObjectFeaturesEXT,
70618 _marker: core::marker::PhantomData<&'a ()>,
70619}
70620impl PhysicalDeviceShaderObjectFeaturesEXT {
70621 #[inline]
70623 pub fn builder<'a>() -> PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
70624 PhysicalDeviceShaderObjectFeaturesEXTBuilder {
70625 inner: PhysicalDeviceShaderObjectFeaturesEXT {
70626 s_type: StructureType::from_raw(1000482000i32),
70627 ..Default::default()
70628 },
70629 _marker: core::marker::PhantomData,
70630 }
70631 }
70632}
70633impl<'a> PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
70634 #[inline]
70635 pub fn shader_object(mut self, value: bool) -> Self {
70636 self.inner.shader_object = value as u32;
70637 self
70638 }
70639 #[inline]
70641 pub fn push_next<T: ExtendsPhysicalDeviceShaderObjectFeaturesEXT>(
70642 mut self,
70643 next: &'a mut T,
70644 ) -> Self {
70645 unsafe {
70646 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70647 (*next_ptr).p_next = self.inner.p_next as *mut _;
70648 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70649 core::ffi::c_void,
70650 >(next_ptr);
70651 }
70652 self
70653 }
70654}
70655impl<'a> core::ops::Deref for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
70656 type Target = PhysicalDeviceShaderObjectFeaturesEXT;
70657 #[inline]
70658 fn deref(&self) -> &Self::Target {
70659 &self.inner
70660 }
70661}
70662impl<'a> core::ops::DerefMut for PhysicalDeviceShaderObjectFeaturesEXTBuilder<'a> {
70663 #[inline]
70664 fn deref_mut(&mut self) -> &mut Self::Target {
70665 &mut self.inner
70666 }
70667}
70668pub struct PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
70670 inner: PhysicalDeviceShaderObjectPropertiesEXT,
70671 _marker: core::marker::PhantomData<&'a ()>,
70672}
70673impl PhysicalDeviceShaderObjectPropertiesEXT {
70674 #[inline]
70676 pub fn builder<'a>() -> PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
70677 PhysicalDeviceShaderObjectPropertiesEXTBuilder {
70678 inner: PhysicalDeviceShaderObjectPropertiesEXT {
70679 s_type: StructureType::from_raw(1000482001i32),
70680 ..Default::default()
70681 },
70682 _marker: core::marker::PhantomData,
70683 }
70684 }
70685}
70686impl<'a> PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
70687 #[inline]
70688 pub fn shader_binary_uuid(mut self, value: [u8; UUID_SIZE as usize]) -> Self {
70689 self.inner.shader_binary_uuid = value;
70690 self
70691 }
70692 #[inline]
70693 pub fn shader_binary_version(mut self, value: u32) -> Self {
70694 self.inner.shader_binary_version = value;
70695 self
70696 }
70697}
70698impl<'a> core::ops::Deref for PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
70699 type Target = PhysicalDeviceShaderObjectPropertiesEXT;
70700 #[inline]
70701 fn deref(&self) -> &Self::Target {
70702 &self.inner
70703 }
70704}
70705impl<'a> core::ops::DerefMut for PhysicalDeviceShaderObjectPropertiesEXTBuilder<'a> {
70706 #[inline]
70707 fn deref_mut(&mut self) -> &mut Self::Target {
70708 &mut self.inner
70709 }
70710}
70711pub struct ShaderCreateInfoEXTBuilder<'a> {
70713 inner: ShaderCreateInfoEXT,
70714 _marker: core::marker::PhantomData<&'a ()>,
70715}
70716impl ShaderCreateInfoEXT {
70717 #[inline]
70719 pub fn builder<'a>() -> ShaderCreateInfoEXTBuilder<'a> {
70720 ShaderCreateInfoEXTBuilder {
70721 inner: ShaderCreateInfoEXT {
70722 s_type: StructureType::from_raw(1000482002i32),
70723 ..Default::default()
70724 },
70725 _marker: core::marker::PhantomData,
70726 }
70727 }
70728}
70729impl<'a> ShaderCreateInfoEXTBuilder<'a> {
70730 #[inline]
70731 pub fn flags(mut self, value: ShaderCreateFlagsEXT) -> Self {
70732 self.inner.flags = value;
70733 self
70734 }
70735 #[inline]
70736 pub fn stage(mut self, value: ShaderStageFlagBits) -> Self {
70737 self.inner.stage = value;
70738 self
70739 }
70740 #[inline]
70741 pub fn next_stage(mut self, value: ShaderStageFlags) -> Self {
70742 self.inner.next_stage = value;
70743 self
70744 }
70745 #[inline]
70746 pub fn code_type(mut self, value: ShaderCodeTypeEXT) -> Self {
70747 self.inner.code_type = value;
70748 self
70749 }
70750 #[inline]
70751 pub fn code(mut self, slice: &'a [core::ffi::c_void]) -> Self {
70752 self.inner.code_size = slice.len();
70753 self.inner.p_code = slice.as_ptr();
70754 self
70755 }
70756 #[inline]
70757 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
70758 self.inner.p_name = value.as_ptr();
70759 self
70760 }
70761 #[inline]
70762 pub fn set_layout_count(mut self, value: u32) -> Self {
70763 self.inner.set_layout_count = value;
70764 self
70765 }
70766 #[inline]
70767 pub fn set_layouts(mut self, slice: &'a [DescriptorSetLayout]) -> Self {
70768 self.inner.set_layout_count = slice.len() as u32;
70769 self.inner.p_set_layouts = slice.as_ptr();
70770 self
70771 }
70772 #[inline]
70773 pub fn push_constant_range_count(mut self, value: u32) -> Self {
70774 self.inner.push_constant_range_count = value;
70775 self
70776 }
70777 #[inline]
70778 pub fn push_constant_ranges(mut self, slice: &'a [PushConstantRange]) -> Self {
70779 self.inner.push_constant_range_count = slice.len() as u32;
70780 self.inner.p_push_constant_ranges = slice.as_ptr();
70781 self
70782 }
70783 #[inline]
70784 pub fn specialization_info(mut self, value: &'a SpecializationInfo) -> Self {
70785 self.inner.p_specialization_info = value;
70786 self
70787 }
70788 #[inline]
70790 pub fn push_next<T: ExtendsShaderCreateInfoEXT>(mut self, next: &'a mut T) -> Self {
70791 unsafe {
70792 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70793 (*next_ptr).p_next = self.inner.p_next as *mut _;
70794 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70795 core::ffi::c_void,
70796 >(next_ptr) as *const _;
70797 }
70798 self
70799 }
70800}
70801impl<'a> core::ops::Deref for ShaderCreateInfoEXTBuilder<'a> {
70802 type Target = ShaderCreateInfoEXT;
70803 #[inline]
70804 fn deref(&self) -> &Self::Target {
70805 &self.inner
70806 }
70807}
70808impl<'a> core::ops::DerefMut for ShaderCreateInfoEXTBuilder<'a> {
70809 #[inline]
70810 fn deref_mut(&mut self) -> &mut Self::Target {
70811 &mut self.inner
70812 }
70813}
70814pub struct PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
70816 inner: PhysicalDeviceShaderTileImageFeaturesEXT,
70817 _marker: core::marker::PhantomData<&'a ()>,
70818}
70819impl PhysicalDeviceShaderTileImageFeaturesEXT {
70820 #[inline]
70822 pub fn builder<'a>() -> PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
70823 PhysicalDeviceShaderTileImageFeaturesEXTBuilder {
70824 inner: PhysicalDeviceShaderTileImageFeaturesEXT {
70825 s_type: StructureType::from_raw(1000395000i32),
70826 ..Default::default()
70827 },
70828 _marker: core::marker::PhantomData,
70829 }
70830 }
70831}
70832impl<'a> PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
70833 #[inline]
70834 pub fn shader_tile_image_color_read_access(mut self, value: bool) -> Self {
70835 self.inner.shader_tile_image_color_read_access = value as u32;
70836 self
70837 }
70838 #[inline]
70839 pub fn shader_tile_image_depth_read_access(mut self, value: bool) -> Self {
70840 self.inner.shader_tile_image_depth_read_access = value as u32;
70841 self
70842 }
70843 #[inline]
70844 pub fn shader_tile_image_stencil_read_access(mut self, value: bool) -> Self {
70845 self.inner.shader_tile_image_stencil_read_access = value as u32;
70846 self
70847 }
70848 #[inline]
70850 pub fn push_next<T: ExtendsPhysicalDeviceShaderTileImageFeaturesEXT>(
70851 mut self,
70852 next: &'a mut T,
70853 ) -> Self {
70854 unsafe {
70855 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70856 (*next_ptr).p_next = self.inner.p_next as *mut _;
70857 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70858 core::ffi::c_void,
70859 >(next_ptr);
70860 }
70861 self
70862 }
70863}
70864impl<'a> core::ops::Deref for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
70865 type Target = PhysicalDeviceShaderTileImageFeaturesEXT;
70866 #[inline]
70867 fn deref(&self) -> &Self::Target {
70868 &self.inner
70869 }
70870}
70871impl<'a> core::ops::DerefMut for PhysicalDeviceShaderTileImageFeaturesEXTBuilder<'a> {
70872 #[inline]
70873 fn deref_mut(&mut self) -> &mut Self::Target {
70874 &mut self.inner
70875 }
70876}
70877pub struct PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
70879 inner: PhysicalDeviceShaderTileImagePropertiesEXT,
70880 _marker: core::marker::PhantomData<&'a ()>,
70881}
70882impl PhysicalDeviceShaderTileImagePropertiesEXT {
70883 #[inline]
70885 pub fn builder<'a>() -> PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
70886 PhysicalDeviceShaderTileImagePropertiesEXTBuilder {
70887 inner: PhysicalDeviceShaderTileImagePropertiesEXT {
70888 s_type: StructureType::from_raw(1000395001i32),
70889 ..Default::default()
70890 },
70891 _marker: core::marker::PhantomData,
70892 }
70893 }
70894}
70895impl<'a> PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
70896 #[inline]
70897 pub fn shader_tile_image_coherent_read_accelerated(mut self, value: bool) -> Self {
70898 self.inner.shader_tile_image_coherent_read_accelerated = value as u32;
70899 self
70900 }
70901 #[inline]
70902 pub fn shader_tile_image_read_sample_from_pixel_rate_invocation(
70903 mut self,
70904 value: bool,
70905 ) -> Self {
70906 self.inner.shader_tile_image_read_sample_from_pixel_rate_invocation = value
70907 as u32;
70908 self
70909 }
70910 #[inline]
70911 pub fn shader_tile_image_read_from_helper_invocation(mut self, value: bool) -> Self {
70912 self.inner.shader_tile_image_read_from_helper_invocation = value as u32;
70913 self
70914 }
70915}
70916impl<'a> core::ops::Deref for PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
70917 type Target = PhysicalDeviceShaderTileImagePropertiesEXT;
70918 #[inline]
70919 fn deref(&self) -> &Self::Target {
70920 &self.inner
70921 }
70922}
70923impl<'a> core::ops::DerefMut for PhysicalDeviceShaderTileImagePropertiesEXTBuilder<'a> {
70924 #[inline]
70925 fn deref_mut(&mut self) -> &mut Self::Target {
70926 &mut self.inner
70927 }
70928}
70929pub struct ImportScreenBufferInfoQNXBuilder<'a> {
70931 inner: ImportScreenBufferInfoQNX,
70932 _marker: core::marker::PhantomData<&'a ()>,
70933}
70934impl ImportScreenBufferInfoQNX {
70935 #[inline]
70937 pub fn builder<'a>() -> ImportScreenBufferInfoQNXBuilder<'a> {
70938 ImportScreenBufferInfoQNXBuilder {
70939 inner: ImportScreenBufferInfoQNX {
70940 s_type: StructureType::from_raw(1000529002i32),
70941 ..Default::default()
70942 },
70943 _marker: core::marker::PhantomData,
70944 }
70945 }
70946}
70947impl<'a> ImportScreenBufferInfoQNXBuilder<'a> {
70948 #[inline]
70949 pub fn buffer(mut self, value: *mut core::ffi::c_void) -> Self {
70950 self.inner.buffer = value;
70951 self
70952 }
70953 #[inline]
70955 pub fn push_next<T: ExtendsImportScreenBufferInfoQNX>(
70956 mut self,
70957 next: &'a mut T,
70958 ) -> Self {
70959 unsafe {
70960 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
70961 (*next_ptr).p_next = self.inner.p_next as *mut _;
70962 self.inner.p_next = <*mut BaseOutStructure>::cast::<
70963 core::ffi::c_void,
70964 >(next_ptr) as *const _;
70965 }
70966 self
70967 }
70968}
70969impl<'a> core::ops::Deref for ImportScreenBufferInfoQNXBuilder<'a> {
70970 type Target = ImportScreenBufferInfoQNX;
70971 #[inline]
70972 fn deref(&self) -> &Self::Target {
70973 &self.inner
70974 }
70975}
70976impl<'a> core::ops::DerefMut for ImportScreenBufferInfoQNXBuilder<'a> {
70977 #[inline]
70978 fn deref_mut(&mut self) -> &mut Self::Target {
70979 &mut self.inner
70980 }
70981}
70982pub struct ScreenBufferPropertiesQNXBuilder<'a> {
70984 inner: ScreenBufferPropertiesQNX,
70985 _marker: core::marker::PhantomData<&'a ()>,
70986}
70987impl ScreenBufferPropertiesQNX {
70988 #[inline]
70990 pub fn builder<'a>() -> ScreenBufferPropertiesQNXBuilder<'a> {
70991 ScreenBufferPropertiesQNXBuilder {
70992 inner: ScreenBufferPropertiesQNX {
70993 s_type: StructureType::from_raw(1000529000i32),
70994 ..Default::default()
70995 },
70996 _marker: core::marker::PhantomData,
70997 }
70998 }
70999}
71000impl<'a> ScreenBufferPropertiesQNXBuilder<'a> {
71001 #[inline]
71002 pub fn allocation_size(mut self, value: u64) -> Self {
71003 self.inner.allocation_size = value;
71004 self
71005 }
71006 #[inline]
71007 pub fn memory_type_bits(mut self, value: u32) -> Self {
71008 self.inner.memory_type_bits = value;
71009 self
71010 }
71011}
71012impl<'a> core::ops::Deref for ScreenBufferPropertiesQNXBuilder<'a> {
71013 type Target = ScreenBufferPropertiesQNX;
71014 #[inline]
71015 fn deref(&self) -> &Self::Target {
71016 &self.inner
71017 }
71018}
71019impl<'a> core::ops::DerefMut for ScreenBufferPropertiesQNXBuilder<'a> {
71020 #[inline]
71021 fn deref_mut(&mut self) -> &mut Self::Target {
71022 &mut self.inner
71023 }
71024}
71025pub struct ScreenBufferFormatPropertiesQNXBuilder<'a> {
71027 inner: ScreenBufferFormatPropertiesQNX,
71028 _marker: core::marker::PhantomData<&'a ()>,
71029}
71030impl ScreenBufferFormatPropertiesQNX {
71031 #[inline]
71033 pub fn builder<'a>() -> ScreenBufferFormatPropertiesQNXBuilder<'a> {
71034 ScreenBufferFormatPropertiesQNXBuilder {
71035 inner: ScreenBufferFormatPropertiesQNX {
71036 s_type: StructureType::from_raw(1000529001i32),
71037 ..Default::default()
71038 },
71039 _marker: core::marker::PhantomData,
71040 }
71041 }
71042}
71043impl<'a> ScreenBufferFormatPropertiesQNXBuilder<'a> {
71044 #[inline]
71045 pub fn format(mut self, value: Format) -> Self {
71046 self.inner.format = value;
71047 self
71048 }
71049 #[inline]
71050 pub fn external_format(mut self, value: u64) -> Self {
71051 self.inner.external_format = value;
71052 self
71053 }
71054 #[inline]
71055 pub fn screen_usage(mut self, value: u64) -> Self {
71056 self.inner.screen_usage = value;
71057 self
71058 }
71059 #[inline]
71060 pub fn format_features(mut self, value: FormatFeatureFlags) -> Self {
71061 self.inner.format_features = value;
71062 self
71063 }
71064 #[inline]
71065 pub fn sampler_ycbcr_conversion_components(
71066 mut self,
71067 value: ComponentMapping,
71068 ) -> Self {
71069 self.inner.sampler_ycbcr_conversion_components = value;
71070 self
71071 }
71072 #[inline]
71073 pub fn suggested_ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
71074 self.inner.suggested_ycbcr_model = value;
71075 self
71076 }
71077 #[inline]
71078 pub fn suggested_ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
71079 self.inner.suggested_ycbcr_range = value;
71080 self
71081 }
71082 #[inline]
71083 pub fn suggested_x_chroma_offset(mut self, value: ChromaLocation) -> Self {
71084 self.inner.suggested_x_chroma_offset = value;
71085 self
71086 }
71087 #[inline]
71088 pub fn suggested_y_chroma_offset(mut self, value: ChromaLocation) -> Self {
71089 self.inner.suggested_y_chroma_offset = value;
71090 self
71091 }
71092}
71093impl<'a> core::ops::Deref for ScreenBufferFormatPropertiesQNXBuilder<'a> {
71094 type Target = ScreenBufferFormatPropertiesQNX;
71095 #[inline]
71096 fn deref(&self) -> &Self::Target {
71097 &self.inner
71098 }
71099}
71100impl<'a> core::ops::DerefMut for ScreenBufferFormatPropertiesQNXBuilder<'a> {
71101 #[inline]
71102 fn deref_mut(&mut self) -> &mut Self::Target {
71103 &mut self.inner
71104 }
71105}
71106pub struct ExternalFormatQNXBuilder<'a> {
71108 inner: ExternalFormatQNX,
71109 _marker: core::marker::PhantomData<&'a ()>,
71110}
71111impl ExternalFormatQNX {
71112 #[inline]
71114 pub fn builder<'a>() -> ExternalFormatQNXBuilder<'a> {
71115 ExternalFormatQNXBuilder {
71116 inner: ExternalFormatQNX {
71117 s_type: StructureType::from_raw(1000529003i32),
71118 ..Default::default()
71119 },
71120 _marker: core::marker::PhantomData,
71121 }
71122 }
71123}
71124impl<'a> ExternalFormatQNXBuilder<'a> {
71125 #[inline]
71126 pub fn external_format(mut self, value: u64) -> Self {
71127 self.inner.external_format = value;
71128 self
71129 }
71130 #[inline]
71132 pub fn push_next<T: ExtendsExternalFormatQNX>(mut self, next: &'a mut T) -> Self {
71133 unsafe {
71134 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71135 (*next_ptr).p_next = self.inner.p_next as *mut _;
71136 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71137 core::ffi::c_void,
71138 >(next_ptr);
71139 }
71140 self
71141 }
71142}
71143impl<'a> core::ops::Deref for ExternalFormatQNXBuilder<'a> {
71144 type Target = ExternalFormatQNX;
71145 #[inline]
71146 fn deref(&self) -> &Self::Target {
71147 &self.inner
71148 }
71149}
71150impl<'a> core::ops::DerefMut for ExternalFormatQNXBuilder<'a> {
71151 #[inline]
71152 fn deref_mut(&mut self) -> &mut Self::Target {
71153 &mut self.inner
71154 }
71155}
71156pub struct PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder<'a> {
71158 inner: PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX,
71159 _marker: core::marker::PhantomData<&'a ()>,
71160}
71161impl PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
71162 #[inline]
71164 pub fn builder<'a>() -> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder<
71165 'a,
71166 > {
71167 PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder {
71168 inner: PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX {
71169 s_type: StructureType::from_raw(1000529004i32),
71170 ..Default::default()
71171 },
71172 _marker: core::marker::PhantomData,
71173 }
71174 }
71175}
71176impl<'a> PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder<'a> {
71177 #[inline]
71178 pub fn screen_buffer_import(mut self, value: bool) -> Self {
71179 self.inner.screen_buffer_import = value as u32;
71180 self
71181 }
71182 #[inline]
71184 pub fn push_next<T: ExtendsPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>(
71185 mut self,
71186 next: &'a mut T,
71187 ) -> Self {
71188 unsafe {
71189 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71190 (*next_ptr).p_next = self.inner.p_next as *mut _;
71191 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71192 core::ffi::c_void,
71193 >(next_ptr);
71194 }
71195 self
71196 }
71197}
71198impl<'a> core::ops::Deref
71199for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder<'a> {
71200 type Target = PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX;
71201 #[inline]
71202 fn deref(&self) -> &Self::Target {
71203 &self.inner
71204 }
71205}
71206impl<'a> core::ops::DerefMut
71207for PhysicalDeviceExternalMemoryScreenBufferFeaturesQNXBuilder<'a> {
71208 #[inline]
71209 fn deref_mut(&mut self) -> &mut Self::Target {
71210 &mut self.inner
71211 }
71212}
71213pub struct PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder<'a> {
71215 inner: PhysicalDeviceCooperativeMatrixFeaturesKHR,
71216 _marker: core::marker::PhantomData<&'a ()>,
71217}
71218impl PhysicalDeviceCooperativeMatrixFeaturesKHR {
71219 #[inline]
71221 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder<'a> {
71222 PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder {
71223 inner: PhysicalDeviceCooperativeMatrixFeaturesKHR {
71224 s_type: StructureType::from_raw(1000506000i32),
71225 ..Default::default()
71226 },
71227 _marker: core::marker::PhantomData,
71228 }
71229 }
71230}
71231impl<'a> PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder<'a> {
71232 #[inline]
71233 pub fn cooperative_matrix(mut self, value: bool) -> Self {
71234 self.inner.cooperative_matrix = value as u32;
71235 self
71236 }
71237 #[inline]
71238 pub fn cooperative_matrix_robust_buffer_access(mut self, value: bool) -> Self {
71239 self.inner.cooperative_matrix_robust_buffer_access = value as u32;
71240 self
71241 }
71242 #[inline]
71244 pub fn push_next<T: ExtendsPhysicalDeviceCooperativeMatrixFeaturesKHR>(
71245 mut self,
71246 next: &'a mut T,
71247 ) -> Self {
71248 unsafe {
71249 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71250 (*next_ptr).p_next = self.inner.p_next as *mut _;
71251 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71252 core::ffi::c_void,
71253 >(next_ptr);
71254 }
71255 self
71256 }
71257}
71258impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder<'a> {
71259 type Target = PhysicalDeviceCooperativeMatrixFeaturesKHR;
71260 #[inline]
71261 fn deref(&self) -> &Self::Target {
71262 &self.inner
71263 }
71264}
71265impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeMatrixFeaturesKHRBuilder<'a> {
71266 #[inline]
71267 fn deref_mut(&mut self) -> &mut Self::Target {
71268 &mut self.inner
71269 }
71270}
71271pub struct CooperativeMatrixPropertiesKHRBuilder<'a> {
71273 inner: CooperativeMatrixPropertiesKHR,
71274 _marker: core::marker::PhantomData<&'a ()>,
71275}
71276impl CooperativeMatrixPropertiesKHR {
71277 #[inline]
71279 pub fn builder<'a>() -> CooperativeMatrixPropertiesKHRBuilder<'a> {
71280 CooperativeMatrixPropertiesKHRBuilder {
71281 inner: CooperativeMatrixPropertiesKHR {
71282 s_type: StructureType::from_raw(1000506001i32),
71283 ..Default::default()
71284 },
71285 _marker: core::marker::PhantomData,
71286 }
71287 }
71288}
71289impl<'a> CooperativeMatrixPropertiesKHRBuilder<'a> {
71290 #[inline]
71291 pub fn m_size(mut self, value: u32) -> Self {
71292 self.inner.m_size = value;
71293 self
71294 }
71295 #[inline]
71296 pub fn n_size(mut self, value: u32) -> Self {
71297 self.inner.n_size = value;
71298 self
71299 }
71300 #[inline]
71301 pub fn k_size(mut self, value: u32) -> Self {
71302 self.inner.k_size = value;
71303 self
71304 }
71305 #[inline]
71306 pub fn a_type(mut self, value: ComponentTypeKHR) -> Self {
71307 self.inner.a_type = value;
71308 self
71309 }
71310 #[inline]
71311 pub fn b_type(mut self, value: ComponentTypeKHR) -> Self {
71312 self.inner.b_type = value;
71313 self
71314 }
71315 #[inline]
71316 pub fn c_type(mut self, value: ComponentTypeKHR) -> Self {
71317 self.inner.c_type = value;
71318 self
71319 }
71320 #[inline]
71321 pub fn result_type(mut self, value: ComponentTypeKHR) -> Self {
71322 self.inner.result_type = value;
71323 self
71324 }
71325 #[inline]
71326 pub fn saturating_accumulation(mut self, value: bool) -> Self {
71327 self.inner.saturating_accumulation = value as u32;
71328 self
71329 }
71330 #[inline]
71331 pub fn scope(mut self, value: ScopeKHR) -> Self {
71332 self.inner.scope = value;
71333 self
71334 }
71335}
71336impl<'a> core::ops::Deref for CooperativeMatrixPropertiesKHRBuilder<'a> {
71337 type Target = CooperativeMatrixPropertiesKHR;
71338 #[inline]
71339 fn deref(&self) -> &Self::Target {
71340 &self.inner
71341 }
71342}
71343impl<'a> core::ops::DerefMut for CooperativeMatrixPropertiesKHRBuilder<'a> {
71344 #[inline]
71345 fn deref_mut(&mut self) -> &mut Self::Target {
71346 &mut self.inner
71347 }
71348}
71349pub struct PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder<'a> {
71351 inner: PhysicalDeviceCooperativeMatrixPropertiesKHR,
71352 _marker: core::marker::PhantomData<&'a ()>,
71353}
71354impl PhysicalDeviceCooperativeMatrixPropertiesKHR {
71355 #[inline]
71357 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder<'a> {
71358 PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder {
71359 inner: PhysicalDeviceCooperativeMatrixPropertiesKHR {
71360 s_type: StructureType::from_raw(1000506002i32),
71361 ..Default::default()
71362 },
71363 _marker: core::marker::PhantomData,
71364 }
71365 }
71366}
71367impl<'a> PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder<'a> {
71368 #[inline]
71369 pub fn cooperative_matrix_supported_stages(
71370 mut self,
71371 value: ShaderStageFlags,
71372 ) -> Self {
71373 self.inner.cooperative_matrix_supported_stages = value;
71374 self
71375 }
71376}
71377impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder<'a> {
71378 type Target = PhysicalDeviceCooperativeMatrixPropertiesKHR;
71379 #[inline]
71380 fn deref(&self) -> &Self::Target {
71381 &self.inner
71382 }
71383}
71384impl<'a> core::ops::DerefMut
71385for PhysicalDeviceCooperativeMatrixPropertiesKHRBuilder<'a> {
71386 #[inline]
71387 fn deref_mut(&mut self) -> &mut Self::Target {
71388 &mut self.inner
71389 }
71390}
71391pub struct PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder<'a> {
71393 inner: PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM,
71394 _marker: core::marker::PhantomData<&'a ()>,
71395}
71396impl PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
71397 #[inline]
71399 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder<
71400 'a,
71401 > {
71402 PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder {
71403 inner: PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
71404 s_type: StructureType::from_raw(1000172000i32),
71405 ..Default::default()
71406 },
71407 _marker: core::marker::PhantomData,
71408 }
71409 }
71410}
71411impl<'a> PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder<'a> {
71412 #[inline]
71413 pub fn cooperative_matrix_conversion(mut self, value: bool) -> Self {
71414 self.inner.cooperative_matrix_conversion = value as u32;
71415 self
71416 }
71417 #[inline]
71419 pub fn push_next<T: ExtendsPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM>(
71420 mut self,
71421 next: &'a mut T,
71422 ) -> Self {
71423 unsafe {
71424 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71425 (*next_ptr).p_next = self.inner.p_next as *mut _;
71426 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71427 core::ffi::c_void,
71428 >(next_ptr);
71429 }
71430 self
71431 }
71432}
71433impl<'a> core::ops::Deref
71434for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder<'a> {
71435 type Target = PhysicalDeviceCooperativeMatrixConversionFeaturesQCOM;
71436 #[inline]
71437 fn deref(&self) -> &Self::Target {
71438 &self.inner
71439 }
71440}
71441impl<'a> core::ops::DerefMut
71442for PhysicalDeviceCooperativeMatrixConversionFeaturesQCOMBuilder<'a> {
71443 #[inline]
71444 fn deref_mut(&mut self) -> &mut Self::Target {
71445 &mut self.inner
71446 }
71447}
71448pub struct PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder<'a> {
71450 inner: PhysicalDeviceShaderEnqueuePropertiesAMDX,
71451 _marker: core::marker::PhantomData<&'a ()>,
71452}
71453impl PhysicalDeviceShaderEnqueuePropertiesAMDX {
71454 #[inline]
71456 pub fn builder<'a>() -> PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder<'a> {
71457 PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder {
71458 inner: PhysicalDeviceShaderEnqueuePropertiesAMDX {
71459 s_type: StructureType::from_raw(1000134001i32),
71460 ..Default::default()
71461 },
71462 _marker: core::marker::PhantomData,
71463 }
71464 }
71465}
71466impl<'a> PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder<'a> {
71467 #[inline]
71468 pub fn max_execution_graph_depth(mut self, value: u32) -> Self {
71469 self.inner.max_execution_graph_depth = value;
71470 self
71471 }
71472 #[inline]
71473 pub fn max_execution_graph_shader_output_nodes(mut self, value: u32) -> Self {
71474 self.inner.max_execution_graph_shader_output_nodes = value;
71475 self
71476 }
71477 #[inline]
71478 pub fn max_execution_graph_shader_payload_size(mut self, value: u32) -> Self {
71479 self.inner.max_execution_graph_shader_payload_size = value;
71480 self
71481 }
71482 #[inline]
71483 pub fn max_execution_graph_shader_payload_count(mut self, value: u32) -> Self {
71484 self.inner.max_execution_graph_shader_payload_count = value;
71485 self
71486 }
71487 #[inline]
71488 pub fn execution_graph_dispatch_address_alignment(mut self, value: u32) -> Self {
71489 self.inner.execution_graph_dispatch_address_alignment = value;
71490 self
71491 }
71492 #[inline]
71493 pub fn max_execution_graph_workgroup_count(mut self, value: [u32; 3usize]) -> Self {
71494 self.inner.max_execution_graph_workgroup_count = value;
71495 self
71496 }
71497 #[inline]
71498 pub fn max_execution_graph_workgroups(mut self, value: u32) -> Self {
71499 self.inner.max_execution_graph_workgroups = value;
71500 self
71501 }
71502}
71503impl<'a> core::ops::Deref for PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder<'a> {
71504 type Target = PhysicalDeviceShaderEnqueuePropertiesAMDX;
71505 #[inline]
71506 fn deref(&self) -> &Self::Target {
71507 &self.inner
71508 }
71509}
71510impl<'a> core::ops::DerefMut for PhysicalDeviceShaderEnqueuePropertiesAMDXBuilder<'a> {
71511 #[inline]
71512 fn deref_mut(&mut self) -> &mut Self::Target {
71513 &mut self.inner
71514 }
71515}
71516pub struct PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder<'a> {
71518 inner: PhysicalDeviceShaderEnqueueFeaturesAMDX,
71519 _marker: core::marker::PhantomData<&'a ()>,
71520}
71521impl PhysicalDeviceShaderEnqueueFeaturesAMDX {
71522 #[inline]
71524 pub fn builder<'a>() -> PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder<'a> {
71525 PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder {
71526 inner: PhysicalDeviceShaderEnqueueFeaturesAMDX {
71527 s_type: StructureType::from_raw(1000134000i32),
71528 ..Default::default()
71529 },
71530 _marker: core::marker::PhantomData,
71531 }
71532 }
71533}
71534impl<'a> PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder<'a> {
71535 #[inline]
71536 pub fn shader_enqueue(mut self, value: bool) -> Self {
71537 self.inner.shader_enqueue = value as u32;
71538 self
71539 }
71540 #[inline]
71541 pub fn shader_mesh_enqueue(mut self, value: bool) -> Self {
71542 self.inner.shader_mesh_enqueue = value as u32;
71543 self
71544 }
71545 #[inline]
71547 pub fn push_next<T: ExtendsPhysicalDeviceShaderEnqueueFeaturesAMDX>(
71548 mut self,
71549 next: &'a mut T,
71550 ) -> Self {
71551 unsafe {
71552 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71553 (*next_ptr).p_next = self.inner.p_next as *mut _;
71554 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71555 core::ffi::c_void,
71556 >(next_ptr);
71557 }
71558 self
71559 }
71560}
71561impl<'a> core::ops::Deref for PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder<'a> {
71562 type Target = PhysicalDeviceShaderEnqueueFeaturesAMDX;
71563 #[inline]
71564 fn deref(&self) -> &Self::Target {
71565 &self.inner
71566 }
71567}
71568impl<'a> core::ops::DerefMut for PhysicalDeviceShaderEnqueueFeaturesAMDXBuilder<'a> {
71569 #[inline]
71570 fn deref_mut(&mut self) -> &mut Self::Target {
71571 &mut self.inner
71572 }
71573}
71574pub struct ExecutionGraphPipelineCreateInfoAMDXBuilder<'a> {
71576 inner: ExecutionGraphPipelineCreateInfoAMDX,
71577 _marker: core::marker::PhantomData<&'a ()>,
71578}
71579impl ExecutionGraphPipelineCreateInfoAMDX {
71580 #[inline]
71582 pub fn builder<'a>() -> ExecutionGraphPipelineCreateInfoAMDXBuilder<'a> {
71583 ExecutionGraphPipelineCreateInfoAMDXBuilder {
71584 inner: ExecutionGraphPipelineCreateInfoAMDX {
71585 s_type: StructureType::from_raw(1000134003i32),
71586 ..Default::default()
71587 },
71588 _marker: core::marker::PhantomData,
71589 }
71590 }
71591}
71592impl<'a> ExecutionGraphPipelineCreateInfoAMDXBuilder<'a> {
71593 #[inline]
71594 pub fn flags(mut self, value: PipelineCreateFlags) -> Self {
71595 self.inner.flags = value;
71596 self
71597 }
71598 #[inline]
71599 pub fn stage_count(mut self, value: u32) -> Self {
71600 self.inner.stage_count = value;
71601 self
71602 }
71603 #[inline]
71604 pub fn stages(mut self, slice: &'a [PipelineShaderStageCreateInfo]) -> Self {
71605 self.inner.stage_count = slice.len() as u32;
71606 self.inner.p_stages = slice.as_ptr();
71607 self
71608 }
71609 #[inline]
71610 pub fn library_info(mut self, value: &'a PipelineLibraryCreateInfoKHR) -> Self {
71611 self.inner.p_library_info = value;
71612 self
71613 }
71614 #[inline]
71615 pub fn layout(mut self, value: PipelineLayout) -> Self {
71616 self.inner.layout = value;
71617 self
71618 }
71619 #[inline]
71620 pub fn base_pipeline_handle(mut self, value: Pipeline) -> Self {
71621 self.inner.base_pipeline_handle = value;
71622 self
71623 }
71624 #[inline]
71625 pub fn base_pipeline_index(mut self, value: i32) -> Self {
71626 self.inner.base_pipeline_index = value;
71627 self
71628 }
71629 #[inline]
71631 pub fn push_next<T: ExtendsExecutionGraphPipelineCreateInfoAMDX>(
71632 mut self,
71633 next: &'a mut T,
71634 ) -> Self {
71635 unsafe {
71636 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71637 (*next_ptr).p_next = self.inner.p_next as *mut _;
71638 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71639 core::ffi::c_void,
71640 >(next_ptr) as *const _;
71641 }
71642 self
71643 }
71644}
71645impl<'a> core::ops::Deref for ExecutionGraphPipelineCreateInfoAMDXBuilder<'a> {
71646 type Target = ExecutionGraphPipelineCreateInfoAMDX;
71647 #[inline]
71648 fn deref(&self) -> &Self::Target {
71649 &self.inner
71650 }
71651}
71652impl<'a> core::ops::DerefMut for ExecutionGraphPipelineCreateInfoAMDXBuilder<'a> {
71653 #[inline]
71654 fn deref_mut(&mut self) -> &mut Self::Target {
71655 &mut self.inner
71656 }
71657}
71658pub struct PipelineShaderStageNodeCreateInfoAMDXBuilder<'a> {
71660 inner: PipelineShaderStageNodeCreateInfoAMDX,
71661 _marker: core::marker::PhantomData<&'a ()>,
71662}
71663impl PipelineShaderStageNodeCreateInfoAMDX {
71664 #[inline]
71666 pub fn builder<'a>() -> PipelineShaderStageNodeCreateInfoAMDXBuilder<'a> {
71667 PipelineShaderStageNodeCreateInfoAMDXBuilder {
71668 inner: PipelineShaderStageNodeCreateInfoAMDX {
71669 s_type: StructureType::from_raw(1000134004i32),
71670 ..Default::default()
71671 },
71672 _marker: core::marker::PhantomData,
71673 }
71674 }
71675}
71676impl<'a> PipelineShaderStageNodeCreateInfoAMDXBuilder<'a> {
71677 #[inline]
71678 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
71679 self.inner.p_name = value.as_ptr();
71680 self
71681 }
71682 #[inline]
71683 pub fn index(mut self, value: u32) -> Self {
71684 self.inner.index = value;
71685 self
71686 }
71687 #[inline]
71689 pub fn push_next<T: ExtendsPipelineShaderStageNodeCreateInfoAMDX>(
71690 mut self,
71691 next: &'a mut T,
71692 ) -> Self {
71693 unsafe {
71694 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71695 (*next_ptr).p_next = self.inner.p_next as *mut _;
71696 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71697 core::ffi::c_void,
71698 >(next_ptr) as *const _;
71699 }
71700 self
71701 }
71702}
71703impl<'a> core::ops::Deref for PipelineShaderStageNodeCreateInfoAMDXBuilder<'a> {
71704 type Target = PipelineShaderStageNodeCreateInfoAMDX;
71705 #[inline]
71706 fn deref(&self) -> &Self::Target {
71707 &self.inner
71708 }
71709}
71710impl<'a> core::ops::DerefMut for PipelineShaderStageNodeCreateInfoAMDXBuilder<'a> {
71711 #[inline]
71712 fn deref_mut(&mut self) -> &mut Self::Target {
71713 &mut self.inner
71714 }
71715}
71716pub struct ExecutionGraphPipelineScratchSizeAMDXBuilder<'a> {
71718 inner: ExecutionGraphPipelineScratchSizeAMDX,
71719 _marker: core::marker::PhantomData<&'a ()>,
71720}
71721impl ExecutionGraphPipelineScratchSizeAMDX {
71722 #[inline]
71724 pub fn builder<'a>() -> ExecutionGraphPipelineScratchSizeAMDXBuilder<'a> {
71725 ExecutionGraphPipelineScratchSizeAMDXBuilder {
71726 inner: ExecutionGraphPipelineScratchSizeAMDX {
71727 s_type: StructureType::from_raw(1000134002i32),
71728 ..Default::default()
71729 },
71730 _marker: core::marker::PhantomData,
71731 }
71732 }
71733}
71734impl<'a> ExecutionGraphPipelineScratchSizeAMDXBuilder<'a> {
71735 #[inline]
71736 pub fn min_size(mut self, value: u64) -> Self {
71737 self.inner.min_size = value;
71738 self
71739 }
71740 #[inline]
71741 pub fn max_size(mut self, value: u64) -> Self {
71742 self.inner.max_size = value;
71743 self
71744 }
71745 #[inline]
71746 pub fn size_granularity(mut self, value: u64) -> Self {
71747 self.inner.size_granularity = value;
71748 self
71749 }
71750 #[inline]
71752 pub fn push_next<T: ExtendsExecutionGraphPipelineScratchSizeAMDX>(
71753 mut self,
71754 next: &'a mut T,
71755 ) -> Self {
71756 unsafe {
71757 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71758 (*next_ptr).p_next = self.inner.p_next as *mut _;
71759 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71760 core::ffi::c_void,
71761 >(next_ptr);
71762 }
71763 self
71764 }
71765}
71766impl<'a> core::ops::Deref for ExecutionGraphPipelineScratchSizeAMDXBuilder<'a> {
71767 type Target = ExecutionGraphPipelineScratchSizeAMDX;
71768 #[inline]
71769 fn deref(&self) -> &Self::Target {
71770 &self.inner
71771 }
71772}
71773impl<'a> core::ops::DerefMut for ExecutionGraphPipelineScratchSizeAMDXBuilder<'a> {
71774 #[inline]
71775 fn deref_mut(&mut self) -> &mut Self::Target {
71776 &mut self.inner
71777 }
71778}
71779pub struct DispatchGraphInfoAMDXBuilder {
71781 inner: DispatchGraphInfoAMDX,
71782}
71783impl DispatchGraphInfoAMDX {
71784 #[inline]
71786 pub fn builder() -> DispatchGraphInfoAMDXBuilder {
71787 DispatchGraphInfoAMDXBuilder {
71788 inner: DispatchGraphInfoAMDX {
71789 ..Default::default()
71790 },
71791 }
71792 }
71793}
71794impl DispatchGraphInfoAMDXBuilder {
71795 #[inline]
71796 pub fn node_index(mut self, value: u32) -> Self {
71797 self.inner.node_index = value;
71798 self
71799 }
71800 #[inline]
71801 pub fn payload_count(mut self, value: u32) -> Self {
71802 self.inner.payload_count = value;
71803 self
71804 }
71805 #[inline]
71806 pub fn payloads(mut self, value: DeviceOrHostAddressConstAMDX) -> Self {
71807 self.inner.payloads = value;
71808 self
71809 }
71810 #[inline]
71811 pub fn payload_stride(mut self, value: u64) -> Self {
71812 self.inner.payload_stride = value;
71813 self
71814 }
71815}
71816impl core::ops::Deref for DispatchGraphInfoAMDXBuilder {
71817 type Target = DispatchGraphInfoAMDX;
71818 #[inline]
71819 fn deref(&self) -> &Self::Target {
71820 &self.inner
71821 }
71822}
71823impl core::ops::DerefMut for DispatchGraphInfoAMDXBuilder {
71824 #[inline]
71825 fn deref_mut(&mut self) -> &mut Self::Target {
71826 &mut self.inner
71827 }
71828}
71829pub struct DispatchGraphCountInfoAMDXBuilder {
71831 inner: DispatchGraphCountInfoAMDX,
71832}
71833impl DispatchGraphCountInfoAMDX {
71834 #[inline]
71836 pub fn builder() -> DispatchGraphCountInfoAMDXBuilder {
71837 DispatchGraphCountInfoAMDXBuilder {
71838 inner: DispatchGraphCountInfoAMDX {
71839 ..Default::default()
71840 },
71841 }
71842 }
71843}
71844impl DispatchGraphCountInfoAMDXBuilder {
71845 #[inline]
71846 pub fn count(mut self, value: u32) -> Self {
71847 self.inner.count = value;
71848 self
71849 }
71850 #[inline]
71851 pub fn infos(mut self, value: DeviceOrHostAddressConstAMDX) -> Self {
71852 self.inner.infos = value;
71853 self
71854 }
71855 #[inline]
71856 pub fn stride(mut self, value: u64) -> Self {
71857 self.inner.stride = value;
71858 self
71859 }
71860}
71861impl core::ops::Deref for DispatchGraphCountInfoAMDXBuilder {
71862 type Target = DispatchGraphCountInfoAMDX;
71863 #[inline]
71864 fn deref(&self) -> &Self::Target {
71865 &self.inner
71866 }
71867}
71868impl core::ops::DerefMut for DispatchGraphCountInfoAMDXBuilder {
71869 #[inline]
71870 fn deref_mut(&mut self) -> &mut Self::Target {
71871 &mut self.inner
71872 }
71873}
71874pub struct PhysicalDeviceAntiLagFeaturesAMDBuilder<'a> {
71876 inner: PhysicalDeviceAntiLagFeaturesAMD,
71877 _marker: core::marker::PhantomData<&'a ()>,
71878}
71879impl PhysicalDeviceAntiLagFeaturesAMD {
71880 #[inline]
71882 pub fn builder<'a>() -> PhysicalDeviceAntiLagFeaturesAMDBuilder<'a> {
71883 PhysicalDeviceAntiLagFeaturesAMDBuilder {
71884 inner: PhysicalDeviceAntiLagFeaturesAMD {
71885 s_type: StructureType::from_raw(1000476000i32),
71886 ..Default::default()
71887 },
71888 _marker: core::marker::PhantomData,
71889 }
71890 }
71891}
71892impl<'a> PhysicalDeviceAntiLagFeaturesAMDBuilder<'a> {
71893 #[inline]
71894 pub fn anti_lag(mut self, value: bool) -> Self {
71895 self.inner.anti_lag = value as u32;
71896 self
71897 }
71898 #[inline]
71900 pub fn push_next<T: ExtendsPhysicalDeviceAntiLagFeaturesAMD>(
71901 mut self,
71902 next: &'a mut T,
71903 ) -> Self {
71904 unsafe {
71905 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71906 (*next_ptr).p_next = self.inner.p_next as *mut _;
71907 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71908 core::ffi::c_void,
71909 >(next_ptr);
71910 }
71911 self
71912 }
71913}
71914impl<'a> core::ops::Deref for PhysicalDeviceAntiLagFeaturesAMDBuilder<'a> {
71915 type Target = PhysicalDeviceAntiLagFeaturesAMD;
71916 #[inline]
71917 fn deref(&self) -> &Self::Target {
71918 &self.inner
71919 }
71920}
71921impl<'a> core::ops::DerefMut for PhysicalDeviceAntiLagFeaturesAMDBuilder<'a> {
71922 #[inline]
71923 fn deref_mut(&mut self) -> &mut Self::Target {
71924 &mut self.inner
71925 }
71926}
71927pub struct AntiLagDataAMDBuilder<'a> {
71929 inner: AntiLagDataAMD,
71930 _marker: core::marker::PhantomData<&'a ()>,
71931}
71932impl AntiLagDataAMD {
71933 #[inline]
71935 pub fn builder<'a>() -> AntiLagDataAMDBuilder<'a> {
71936 AntiLagDataAMDBuilder {
71937 inner: AntiLagDataAMD {
71938 s_type: StructureType::from_raw(1000476001i32),
71939 ..Default::default()
71940 },
71941 _marker: core::marker::PhantomData,
71942 }
71943 }
71944}
71945impl<'a> AntiLagDataAMDBuilder<'a> {
71946 #[inline]
71947 pub fn mode(mut self, value: AntiLagModeAMD) -> Self {
71948 self.inner.mode = value;
71949 self
71950 }
71951 #[inline]
71952 pub fn max_fps(mut self, value: u32) -> Self {
71953 self.inner.max_fps = value;
71954 self
71955 }
71956 #[inline]
71957 pub fn presentation_info(mut self, value: &'a AntiLagPresentationInfoAMD) -> Self {
71958 self.inner.p_presentation_info = value;
71959 self
71960 }
71961 #[inline]
71963 pub fn push_next<T: ExtendsAntiLagDataAMD>(mut self, next: &'a mut T) -> Self {
71964 unsafe {
71965 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
71966 (*next_ptr).p_next = self.inner.p_next as *mut _;
71967 self.inner.p_next = <*mut BaseOutStructure>::cast::<
71968 core::ffi::c_void,
71969 >(next_ptr) as *const _;
71970 }
71971 self
71972 }
71973}
71974impl<'a> core::ops::Deref for AntiLagDataAMDBuilder<'a> {
71975 type Target = AntiLagDataAMD;
71976 #[inline]
71977 fn deref(&self) -> &Self::Target {
71978 &self.inner
71979 }
71980}
71981impl<'a> core::ops::DerefMut for AntiLagDataAMDBuilder<'a> {
71982 #[inline]
71983 fn deref_mut(&mut self) -> &mut Self::Target {
71984 &mut self.inner
71985 }
71986}
71987pub struct AntiLagPresentationInfoAMDBuilder<'a> {
71989 inner: AntiLagPresentationInfoAMD,
71990 _marker: core::marker::PhantomData<&'a ()>,
71991}
71992impl AntiLagPresentationInfoAMD {
71993 #[inline]
71995 pub fn builder<'a>() -> AntiLagPresentationInfoAMDBuilder<'a> {
71996 AntiLagPresentationInfoAMDBuilder {
71997 inner: AntiLagPresentationInfoAMD {
71998 s_type: StructureType::from_raw(1000476002i32),
71999 ..Default::default()
72000 },
72001 _marker: core::marker::PhantomData,
72002 }
72003 }
72004}
72005impl<'a> AntiLagPresentationInfoAMDBuilder<'a> {
72006 #[inline]
72007 pub fn stage(mut self, value: AntiLagStageAMD) -> Self {
72008 self.inner.stage = value;
72009 self
72010 }
72011 #[inline]
72012 pub fn frame_index(mut self, value: u64) -> Self {
72013 self.inner.frame_index = value;
72014 self
72015 }
72016 #[inline]
72018 pub fn push_next<T: ExtendsAntiLagPresentationInfoAMD>(
72019 mut self,
72020 next: &'a mut T,
72021 ) -> Self {
72022 unsafe {
72023 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72024 (*next_ptr).p_next = self.inner.p_next as *mut _;
72025 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72026 core::ffi::c_void,
72027 >(next_ptr);
72028 }
72029 self
72030 }
72031}
72032impl<'a> core::ops::Deref for AntiLagPresentationInfoAMDBuilder<'a> {
72033 type Target = AntiLagPresentationInfoAMD;
72034 #[inline]
72035 fn deref(&self) -> &Self::Target {
72036 &self.inner
72037 }
72038}
72039impl<'a> core::ops::DerefMut for AntiLagPresentationInfoAMDBuilder<'a> {
72040 #[inline]
72041 fn deref_mut(&mut self) -> &mut Self::Target {
72042 &mut self.inner
72043 }
72044}
72045pub struct BindMemoryStatusBuilder<'a> {
72047 inner: BindMemoryStatus,
72048 _marker: core::marker::PhantomData<&'a ()>,
72049}
72050impl BindMemoryStatus {
72051 #[inline]
72053 pub fn builder<'a>() -> BindMemoryStatusBuilder<'a> {
72054 BindMemoryStatusBuilder {
72055 inner: BindMemoryStatus {
72056 s_type: StructureType::from_raw(1000545002i32),
72057 ..Default::default()
72058 },
72059 _marker: core::marker::PhantomData,
72060 }
72061 }
72062}
72063impl<'a> BindMemoryStatusBuilder<'a> {
72064 #[inline]
72065 pub fn result(mut self, value: *mut Result) -> Self {
72066 self.inner.p_result = value;
72067 self
72068 }
72069 #[inline]
72071 pub fn push_next<T: ExtendsBindMemoryStatus>(mut self, next: &'a mut T) -> Self {
72072 unsafe {
72073 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72074 (*next_ptr).p_next = self.inner.p_next as *mut _;
72075 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72076 core::ffi::c_void,
72077 >(next_ptr) as *const _;
72078 }
72079 self
72080 }
72081}
72082impl<'a> core::ops::Deref for BindMemoryStatusBuilder<'a> {
72083 type Target = BindMemoryStatus;
72084 #[inline]
72085 fn deref(&self) -> &Self::Target {
72086 &self.inner
72087 }
72088}
72089impl<'a> core::ops::DerefMut for BindMemoryStatusBuilder<'a> {
72090 #[inline]
72091 fn deref_mut(&mut self) -> &mut Self::Target {
72092 &mut self.inner
72093 }
72094}
72095pub struct PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder<'a> {
72097 inner: PhysicalDeviceTileMemoryHeapFeaturesQCOM,
72098 _marker: core::marker::PhantomData<&'a ()>,
72099}
72100impl PhysicalDeviceTileMemoryHeapFeaturesQCOM {
72101 #[inline]
72103 pub fn builder<'a>() -> PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder<'a> {
72104 PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder {
72105 inner: PhysicalDeviceTileMemoryHeapFeaturesQCOM {
72106 s_type: StructureType::from_raw(1000547000i32),
72107 ..Default::default()
72108 },
72109 _marker: core::marker::PhantomData,
72110 }
72111 }
72112}
72113impl<'a> PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder<'a> {
72114 #[inline]
72115 pub fn tile_memory_heap(mut self, value: bool) -> Self {
72116 self.inner.tile_memory_heap = value as u32;
72117 self
72118 }
72119 #[inline]
72121 pub fn push_next<T: ExtendsPhysicalDeviceTileMemoryHeapFeaturesQCOM>(
72122 mut self,
72123 next: &'a mut T,
72124 ) -> Self {
72125 unsafe {
72126 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72127 (*next_ptr).p_next = self.inner.p_next as *mut _;
72128 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72129 core::ffi::c_void,
72130 >(next_ptr);
72131 }
72132 self
72133 }
72134}
72135impl<'a> core::ops::Deref for PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder<'a> {
72136 type Target = PhysicalDeviceTileMemoryHeapFeaturesQCOM;
72137 #[inline]
72138 fn deref(&self) -> &Self::Target {
72139 &self.inner
72140 }
72141}
72142impl<'a> core::ops::DerefMut for PhysicalDeviceTileMemoryHeapFeaturesQCOMBuilder<'a> {
72143 #[inline]
72144 fn deref_mut(&mut self) -> &mut Self::Target {
72145 &mut self.inner
72146 }
72147}
72148pub struct PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder<'a> {
72150 inner: PhysicalDeviceTileMemoryHeapPropertiesQCOM,
72151 _marker: core::marker::PhantomData<&'a ()>,
72152}
72153impl PhysicalDeviceTileMemoryHeapPropertiesQCOM {
72154 #[inline]
72156 pub fn builder<'a>() -> PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder<'a> {
72157 PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder {
72158 inner: PhysicalDeviceTileMemoryHeapPropertiesQCOM {
72159 s_type: StructureType::from_raw(1000547001i32),
72160 ..Default::default()
72161 },
72162 _marker: core::marker::PhantomData,
72163 }
72164 }
72165}
72166impl<'a> PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder<'a> {
72167 #[inline]
72168 pub fn queue_submit_boundary(mut self, value: bool) -> Self {
72169 self.inner.queue_submit_boundary = value as u32;
72170 self
72171 }
72172 #[inline]
72173 pub fn tile_buffer_transfers(mut self, value: bool) -> Self {
72174 self.inner.tile_buffer_transfers = value as u32;
72175 self
72176 }
72177 #[inline]
72179 pub fn push_next<T: ExtendsPhysicalDeviceTileMemoryHeapPropertiesQCOM>(
72180 mut self,
72181 next: &'a mut T,
72182 ) -> Self {
72183 unsafe {
72184 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72185 (*next_ptr).p_next = self.inner.p_next as *mut _;
72186 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72187 core::ffi::c_void,
72188 >(next_ptr);
72189 }
72190 self
72191 }
72192}
72193impl<'a> core::ops::Deref for PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder<'a> {
72194 type Target = PhysicalDeviceTileMemoryHeapPropertiesQCOM;
72195 #[inline]
72196 fn deref(&self) -> &Self::Target {
72197 &self.inner
72198 }
72199}
72200impl<'a> core::ops::DerefMut for PhysicalDeviceTileMemoryHeapPropertiesQCOMBuilder<'a> {
72201 #[inline]
72202 fn deref_mut(&mut self) -> &mut Self::Target {
72203 &mut self.inner
72204 }
72205}
72206pub struct TileMemorySizeInfoQCOMBuilder<'a> {
72208 inner: TileMemorySizeInfoQCOM,
72209 _marker: core::marker::PhantomData<&'a ()>,
72210}
72211impl TileMemorySizeInfoQCOM {
72212 #[inline]
72214 pub fn builder<'a>() -> TileMemorySizeInfoQCOMBuilder<'a> {
72215 TileMemorySizeInfoQCOMBuilder {
72216 inner: TileMemorySizeInfoQCOM {
72217 s_type: StructureType::from_raw(1000547004i32),
72218 ..Default::default()
72219 },
72220 _marker: core::marker::PhantomData,
72221 }
72222 }
72223}
72224impl<'a> TileMemorySizeInfoQCOMBuilder<'a> {
72225 #[inline]
72226 pub fn size(mut self, value: u64) -> Self {
72227 self.inner.size = value;
72228 self
72229 }
72230 #[inline]
72232 pub fn push_next<T: ExtendsTileMemorySizeInfoQCOM>(
72233 mut self,
72234 next: &'a mut T,
72235 ) -> Self {
72236 unsafe {
72237 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72238 (*next_ptr).p_next = self.inner.p_next as *mut _;
72239 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72240 core::ffi::c_void,
72241 >(next_ptr) as *const _;
72242 }
72243 self
72244 }
72245}
72246impl<'a> core::ops::Deref for TileMemorySizeInfoQCOMBuilder<'a> {
72247 type Target = TileMemorySizeInfoQCOM;
72248 #[inline]
72249 fn deref(&self) -> &Self::Target {
72250 &self.inner
72251 }
72252}
72253impl<'a> core::ops::DerefMut for TileMemorySizeInfoQCOMBuilder<'a> {
72254 #[inline]
72255 fn deref_mut(&mut self) -> &mut Self::Target {
72256 &mut self.inner
72257 }
72258}
72259pub struct TileMemoryRequirementsQCOMBuilder<'a> {
72261 inner: TileMemoryRequirementsQCOM,
72262 _marker: core::marker::PhantomData<&'a ()>,
72263}
72264impl TileMemoryRequirementsQCOM {
72265 #[inline]
72267 pub fn builder<'a>() -> TileMemoryRequirementsQCOMBuilder<'a> {
72268 TileMemoryRequirementsQCOMBuilder {
72269 inner: TileMemoryRequirementsQCOM {
72270 s_type: StructureType::from_raw(1000547002i32),
72271 ..Default::default()
72272 },
72273 _marker: core::marker::PhantomData,
72274 }
72275 }
72276}
72277impl<'a> TileMemoryRequirementsQCOMBuilder<'a> {
72278 #[inline]
72279 pub fn size(mut self, value: u64) -> Self {
72280 self.inner.size = value;
72281 self
72282 }
72283 #[inline]
72284 pub fn alignment(mut self, value: u64) -> Self {
72285 self.inner.alignment = value;
72286 self
72287 }
72288 #[inline]
72290 pub fn push_next<T: ExtendsTileMemoryRequirementsQCOM>(
72291 mut self,
72292 next: &'a mut T,
72293 ) -> Self {
72294 unsafe {
72295 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72296 (*next_ptr).p_next = self.inner.p_next as *mut _;
72297 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72298 core::ffi::c_void,
72299 >(next_ptr);
72300 }
72301 self
72302 }
72303}
72304impl<'a> core::ops::Deref for TileMemoryRequirementsQCOMBuilder<'a> {
72305 type Target = TileMemoryRequirementsQCOM;
72306 #[inline]
72307 fn deref(&self) -> &Self::Target {
72308 &self.inner
72309 }
72310}
72311impl<'a> core::ops::DerefMut for TileMemoryRequirementsQCOMBuilder<'a> {
72312 #[inline]
72313 fn deref_mut(&mut self) -> &mut Self::Target {
72314 &mut self.inner
72315 }
72316}
72317pub struct BindDescriptorSetsInfoBuilder<'a> {
72319 inner: BindDescriptorSetsInfo,
72320 _marker: core::marker::PhantomData<&'a ()>,
72321}
72322impl BindDescriptorSetsInfo {
72323 #[inline]
72325 pub fn builder<'a>() -> BindDescriptorSetsInfoBuilder<'a> {
72326 BindDescriptorSetsInfoBuilder {
72327 inner: BindDescriptorSetsInfo {
72328 s_type: StructureType::from_raw(1000545003i32),
72329 ..Default::default()
72330 },
72331 _marker: core::marker::PhantomData,
72332 }
72333 }
72334}
72335impl<'a> BindDescriptorSetsInfoBuilder<'a> {
72336 #[inline]
72337 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
72338 self.inner.stage_flags = value;
72339 self
72340 }
72341 #[inline]
72342 pub fn layout(mut self, value: PipelineLayout) -> Self {
72343 self.inner.layout = value;
72344 self
72345 }
72346 #[inline]
72347 pub fn first_set(mut self, value: u32) -> Self {
72348 self.inner.first_set = value;
72349 self
72350 }
72351 #[inline]
72352 pub fn descriptor_sets(mut self, slice: &'a [DescriptorSet]) -> Self {
72353 self.inner.descriptor_set_count = slice.len() as u32;
72354 self.inner.p_descriptor_sets = slice.as_ptr();
72355 self
72356 }
72357 #[inline]
72358 pub fn dynamic_offset_count(mut self, value: u32) -> Self {
72359 self.inner.dynamic_offset_count = value;
72360 self
72361 }
72362 #[inline]
72363 pub fn dynamic_offsets(mut self, slice: &'a [u32]) -> Self {
72364 self.inner.dynamic_offset_count = slice.len() as u32;
72365 self.inner.p_dynamic_offsets = slice.as_ptr();
72366 self
72367 }
72368 #[inline]
72370 pub fn push_next<T: ExtendsBindDescriptorSetsInfo>(
72371 mut self,
72372 next: &'a mut T,
72373 ) -> Self {
72374 unsafe {
72375 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72376 (*next_ptr).p_next = self.inner.p_next as *mut _;
72377 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72378 core::ffi::c_void,
72379 >(next_ptr) as *const _;
72380 }
72381 self
72382 }
72383}
72384impl<'a> core::ops::Deref for BindDescriptorSetsInfoBuilder<'a> {
72385 type Target = BindDescriptorSetsInfo;
72386 #[inline]
72387 fn deref(&self) -> &Self::Target {
72388 &self.inner
72389 }
72390}
72391impl<'a> core::ops::DerefMut for BindDescriptorSetsInfoBuilder<'a> {
72392 #[inline]
72393 fn deref_mut(&mut self) -> &mut Self::Target {
72394 &mut self.inner
72395 }
72396}
72397pub struct PushConstantsInfoBuilder<'a> {
72399 inner: PushConstantsInfo,
72400 _marker: core::marker::PhantomData<&'a ()>,
72401}
72402impl PushConstantsInfo {
72403 #[inline]
72405 pub fn builder<'a>() -> PushConstantsInfoBuilder<'a> {
72406 PushConstantsInfoBuilder {
72407 inner: PushConstantsInfo {
72408 s_type: StructureType::from_raw(1000545004i32),
72409 ..Default::default()
72410 },
72411 _marker: core::marker::PhantomData,
72412 }
72413 }
72414}
72415impl<'a> PushConstantsInfoBuilder<'a> {
72416 #[inline]
72417 pub fn layout(mut self, value: PipelineLayout) -> Self {
72418 self.inner.layout = value;
72419 self
72420 }
72421 #[inline]
72422 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
72423 self.inner.stage_flags = value;
72424 self
72425 }
72426 #[inline]
72427 pub fn offset(mut self, value: u32) -> Self {
72428 self.inner.offset = value;
72429 self
72430 }
72431 #[inline]
72432 pub fn values(mut self, slice: &'a [core::ffi::c_void]) -> Self {
72433 self.inner.size = slice.len() as u32;
72434 self.inner.p_values = slice.as_ptr();
72435 self
72436 }
72437 #[inline]
72439 pub fn push_next<T: ExtendsPushConstantsInfo>(mut self, next: &'a mut T) -> Self {
72440 unsafe {
72441 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72442 (*next_ptr).p_next = self.inner.p_next as *mut _;
72443 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72444 core::ffi::c_void,
72445 >(next_ptr) as *const _;
72446 }
72447 self
72448 }
72449}
72450impl<'a> core::ops::Deref for PushConstantsInfoBuilder<'a> {
72451 type Target = PushConstantsInfo;
72452 #[inline]
72453 fn deref(&self) -> &Self::Target {
72454 &self.inner
72455 }
72456}
72457impl<'a> core::ops::DerefMut for PushConstantsInfoBuilder<'a> {
72458 #[inline]
72459 fn deref_mut(&mut self) -> &mut Self::Target {
72460 &mut self.inner
72461 }
72462}
72463pub struct PushDescriptorSetInfoBuilder<'a> {
72465 inner: PushDescriptorSetInfo,
72466 _marker: core::marker::PhantomData<&'a ()>,
72467}
72468impl PushDescriptorSetInfo {
72469 #[inline]
72471 pub fn builder<'a>() -> PushDescriptorSetInfoBuilder<'a> {
72472 PushDescriptorSetInfoBuilder {
72473 inner: PushDescriptorSetInfo {
72474 s_type: StructureType::from_raw(1000545005i32),
72475 ..Default::default()
72476 },
72477 _marker: core::marker::PhantomData,
72478 }
72479 }
72480}
72481impl<'a> PushDescriptorSetInfoBuilder<'a> {
72482 #[inline]
72483 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
72484 self.inner.stage_flags = value;
72485 self
72486 }
72487 #[inline]
72488 pub fn layout(mut self, value: PipelineLayout) -> Self {
72489 self.inner.layout = value;
72490 self
72491 }
72492 #[inline]
72493 pub fn set(mut self, value: u32) -> Self {
72494 self.inner.set = value;
72495 self
72496 }
72497 #[inline]
72498 pub fn descriptor_writes(mut self, slice: &'a [WriteDescriptorSet]) -> Self {
72499 self.inner.descriptor_write_count = slice.len() as u32;
72500 self.inner.p_descriptor_writes = slice.as_ptr();
72501 self
72502 }
72503 #[inline]
72505 pub fn push_next<T: ExtendsPushDescriptorSetInfo>(
72506 mut self,
72507 next: &'a mut T,
72508 ) -> Self {
72509 unsafe {
72510 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72511 (*next_ptr).p_next = self.inner.p_next as *mut _;
72512 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72513 core::ffi::c_void,
72514 >(next_ptr) as *const _;
72515 }
72516 self
72517 }
72518}
72519impl<'a> core::ops::Deref for PushDescriptorSetInfoBuilder<'a> {
72520 type Target = PushDescriptorSetInfo;
72521 #[inline]
72522 fn deref(&self) -> &Self::Target {
72523 &self.inner
72524 }
72525}
72526impl<'a> core::ops::DerefMut for PushDescriptorSetInfoBuilder<'a> {
72527 #[inline]
72528 fn deref_mut(&mut self) -> &mut Self::Target {
72529 &mut self.inner
72530 }
72531}
72532pub struct PushDescriptorSetWithTemplateInfoBuilder<'a> {
72534 inner: PushDescriptorSetWithTemplateInfo,
72535 _marker: core::marker::PhantomData<&'a ()>,
72536}
72537impl PushDescriptorSetWithTemplateInfo {
72538 #[inline]
72540 pub fn builder<'a>() -> PushDescriptorSetWithTemplateInfoBuilder<'a> {
72541 PushDescriptorSetWithTemplateInfoBuilder {
72542 inner: PushDescriptorSetWithTemplateInfo {
72543 s_type: StructureType::from_raw(1000545006i32),
72544 ..Default::default()
72545 },
72546 _marker: core::marker::PhantomData,
72547 }
72548 }
72549}
72550impl<'a> PushDescriptorSetWithTemplateInfoBuilder<'a> {
72551 #[inline]
72552 pub fn descriptor_update_template(
72553 mut self,
72554 value: DescriptorUpdateTemplate,
72555 ) -> Self {
72556 self.inner.descriptor_update_template = value;
72557 self
72558 }
72559 #[inline]
72560 pub fn layout(mut self, value: PipelineLayout) -> Self {
72561 self.inner.layout = value;
72562 self
72563 }
72564 #[inline]
72565 pub fn set(mut self, value: u32) -> Self {
72566 self.inner.set = value;
72567 self
72568 }
72569 #[inline]
72570 pub fn data(mut self, value: *const core::ffi::c_void) -> Self {
72571 self.inner.p_data = value;
72572 self
72573 }
72574 #[inline]
72576 pub fn push_next<T: ExtendsPushDescriptorSetWithTemplateInfo>(
72577 mut self,
72578 next: &'a mut T,
72579 ) -> Self {
72580 unsafe {
72581 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72582 (*next_ptr).p_next = self.inner.p_next as *mut _;
72583 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72584 core::ffi::c_void,
72585 >(next_ptr) as *const _;
72586 }
72587 self
72588 }
72589}
72590impl<'a> core::ops::Deref for PushDescriptorSetWithTemplateInfoBuilder<'a> {
72591 type Target = PushDescriptorSetWithTemplateInfo;
72592 #[inline]
72593 fn deref(&self) -> &Self::Target {
72594 &self.inner
72595 }
72596}
72597impl<'a> core::ops::DerefMut for PushDescriptorSetWithTemplateInfoBuilder<'a> {
72598 #[inline]
72599 fn deref_mut(&mut self) -> &mut Self::Target {
72600 &mut self.inner
72601 }
72602}
72603pub struct SetDescriptorBufferOffsetsInfoEXTBuilder<'a> {
72605 inner: SetDescriptorBufferOffsetsInfoEXT,
72606 _marker: core::marker::PhantomData<&'a ()>,
72607}
72608impl SetDescriptorBufferOffsetsInfoEXT {
72609 #[inline]
72611 pub fn builder<'a>() -> SetDescriptorBufferOffsetsInfoEXTBuilder<'a> {
72612 SetDescriptorBufferOffsetsInfoEXTBuilder {
72613 inner: SetDescriptorBufferOffsetsInfoEXT {
72614 s_type: StructureType::from_raw(1000545007i32),
72615 ..Default::default()
72616 },
72617 _marker: core::marker::PhantomData,
72618 }
72619 }
72620}
72621impl<'a> SetDescriptorBufferOffsetsInfoEXTBuilder<'a> {
72622 #[inline]
72623 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
72624 self.inner.stage_flags = value;
72625 self
72626 }
72627 #[inline]
72628 pub fn layout(mut self, value: PipelineLayout) -> Self {
72629 self.inner.layout = value;
72630 self
72631 }
72632 #[inline]
72633 pub fn first_set(mut self, value: u32) -> Self {
72634 self.inner.first_set = value;
72635 self
72636 }
72637 #[inline]
72638 pub fn buffer_indices(mut self, slice: &'a [u32]) -> Self {
72639 self.inner.set_count = slice.len() as u32;
72640 self.inner.p_buffer_indices = slice.as_ptr();
72641 self
72642 }
72643 #[inline]
72644 pub fn offsets(mut self, slice: &'a [u64]) -> Self {
72645 self.inner.set_count = slice.len() as u32;
72646 self.inner.p_offsets = slice.as_ptr();
72647 self
72648 }
72649 #[inline]
72651 pub fn push_next<T: ExtendsSetDescriptorBufferOffsetsInfoEXT>(
72652 mut self,
72653 next: &'a mut T,
72654 ) -> Self {
72655 unsafe {
72656 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72657 (*next_ptr).p_next = self.inner.p_next as *mut _;
72658 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72659 core::ffi::c_void,
72660 >(next_ptr) as *const _;
72661 }
72662 self
72663 }
72664}
72665impl<'a> core::ops::Deref for SetDescriptorBufferOffsetsInfoEXTBuilder<'a> {
72666 type Target = SetDescriptorBufferOffsetsInfoEXT;
72667 #[inline]
72668 fn deref(&self) -> &Self::Target {
72669 &self.inner
72670 }
72671}
72672impl<'a> core::ops::DerefMut for SetDescriptorBufferOffsetsInfoEXTBuilder<'a> {
72673 #[inline]
72674 fn deref_mut(&mut self) -> &mut Self::Target {
72675 &mut self.inner
72676 }
72677}
72678pub struct BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder<'a> {
72680 inner: BindDescriptorBufferEmbeddedSamplersInfoEXT,
72681 _marker: core::marker::PhantomData<&'a ()>,
72682}
72683impl BindDescriptorBufferEmbeddedSamplersInfoEXT {
72684 #[inline]
72686 pub fn builder<'a>() -> BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder<'a> {
72687 BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder {
72688 inner: BindDescriptorBufferEmbeddedSamplersInfoEXT {
72689 s_type: StructureType::from_raw(1000545008i32),
72690 ..Default::default()
72691 },
72692 _marker: core::marker::PhantomData,
72693 }
72694 }
72695}
72696impl<'a> BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder<'a> {
72697 #[inline]
72698 pub fn stage_flags(mut self, value: ShaderStageFlags) -> Self {
72699 self.inner.stage_flags = value;
72700 self
72701 }
72702 #[inline]
72703 pub fn layout(mut self, value: PipelineLayout) -> Self {
72704 self.inner.layout = value;
72705 self
72706 }
72707 #[inline]
72708 pub fn set(mut self, value: u32) -> Self {
72709 self.inner.set = value;
72710 self
72711 }
72712 #[inline]
72714 pub fn push_next<T: ExtendsBindDescriptorBufferEmbeddedSamplersInfoEXT>(
72715 mut self,
72716 next: &'a mut T,
72717 ) -> Self {
72718 unsafe {
72719 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72720 (*next_ptr).p_next = self.inner.p_next as *mut _;
72721 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72722 core::ffi::c_void,
72723 >(next_ptr) as *const _;
72724 }
72725 self
72726 }
72727}
72728impl<'a> core::ops::Deref for BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder<'a> {
72729 type Target = BindDescriptorBufferEmbeddedSamplersInfoEXT;
72730 #[inline]
72731 fn deref(&self) -> &Self::Target {
72732 &self.inner
72733 }
72734}
72735impl<'a> core::ops::DerefMut for BindDescriptorBufferEmbeddedSamplersInfoEXTBuilder<'a> {
72736 #[inline]
72737 fn deref_mut(&mut self) -> &mut Self::Target {
72738 &mut self.inner
72739 }
72740}
72741pub struct PhysicalDeviceCubicClampFeaturesQCOMBuilder<'a> {
72743 inner: PhysicalDeviceCubicClampFeaturesQCOM,
72744 _marker: core::marker::PhantomData<&'a ()>,
72745}
72746impl PhysicalDeviceCubicClampFeaturesQCOM {
72747 #[inline]
72749 pub fn builder<'a>() -> PhysicalDeviceCubicClampFeaturesQCOMBuilder<'a> {
72750 PhysicalDeviceCubicClampFeaturesQCOMBuilder {
72751 inner: PhysicalDeviceCubicClampFeaturesQCOM {
72752 s_type: StructureType::from_raw(1000521000i32),
72753 ..Default::default()
72754 },
72755 _marker: core::marker::PhantomData,
72756 }
72757 }
72758}
72759impl<'a> PhysicalDeviceCubicClampFeaturesQCOMBuilder<'a> {
72760 #[inline]
72761 pub fn cubic_range_clamp(mut self, value: bool) -> Self {
72762 self.inner.cubic_range_clamp = value as u32;
72763 self
72764 }
72765 #[inline]
72767 pub fn push_next<T: ExtendsPhysicalDeviceCubicClampFeaturesQCOM>(
72768 mut self,
72769 next: &'a mut T,
72770 ) -> Self {
72771 unsafe {
72772 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72773 (*next_ptr).p_next = self.inner.p_next as *mut _;
72774 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72775 core::ffi::c_void,
72776 >(next_ptr);
72777 }
72778 self
72779 }
72780}
72781impl<'a> core::ops::Deref for PhysicalDeviceCubicClampFeaturesQCOMBuilder<'a> {
72782 type Target = PhysicalDeviceCubicClampFeaturesQCOM;
72783 #[inline]
72784 fn deref(&self) -> &Self::Target {
72785 &self.inner
72786 }
72787}
72788impl<'a> core::ops::DerefMut for PhysicalDeviceCubicClampFeaturesQCOMBuilder<'a> {
72789 #[inline]
72790 fn deref_mut(&mut self) -> &mut Self::Target {
72791 &mut self.inner
72792 }
72793}
72794pub struct PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder<'a> {
72796 inner: PhysicalDeviceYcbcrDegammaFeaturesQCOM,
72797 _marker: core::marker::PhantomData<&'a ()>,
72798}
72799impl PhysicalDeviceYcbcrDegammaFeaturesQCOM {
72800 #[inline]
72802 pub fn builder<'a>() -> PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder<'a> {
72803 PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder {
72804 inner: PhysicalDeviceYcbcrDegammaFeaturesQCOM {
72805 s_type: StructureType::from_raw(1000520000i32),
72806 ..Default::default()
72807 },
72808 _marker: core::marker::PhantomData,
72809 }
72810 }
72811}
72812impl<'a> PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder<'a> {
72813 #[inline]
72814 pub fn ycbcr_degamma(mut self, value: bool) -> Self {
72815 self.inner.ycbcr_degamma = value as u32;
72816 self
72817 }
72818 #[inline]
72820 pub fn push_next<T: ExtendsPhysicalDeviceYcbcrDegammaFeaturesQCOM>(
72821 mut self,
72822 next: &'a mut T,
72823 ) -> Self {
72824 unsafe {
72825 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72826 (*next_ptr).p_next = self.inner.p_next as *mut _;
72827 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72828 core::ffi::c_void,
72829 >(next_ptr);
72830 }
72831 self
72832 }
72833}
72834impl<'a> core::ops::Deref for PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder<'a> {
72835 type Target = PhysicalDeviceYcbcrDegammaFeaturesQCOM;
72836 #[inline]
72837 fn deref(&self) -> &Self::Target {
72838 &self.inner
72839 }
72840}
72841impl<'a> core::ops::DerefMut for PhysicalDeviceYcbcrDegammaFeaturesQCOMBuilder<'a> {
72842 #[inline]
72843 fn deref_mut(&mut self) -> &mut Self::Target {
72844 &mut self.inner
72845 }
72846}
72847pub struct SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder<'a> {
72849 inner: SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM,
72850 _marker: core::marker::PhantomData<&'a ()>,
72851}
72852impl SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
72853 #[inline]
72855 pub fn builder<'a>() -> SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder<'a> {
72856 SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder {
72857 inner: SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
72858 s_type: StructureType::from_raw(1000520001i32),
72859 ..Default::default()
72860 },
72861 _marker: core::marker::PhantomData,
72862 }
72863 }
72864}
72865impl<'a> SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder<'a> {
72866 #[inline]
72867 pub fn enable_y_degamma(mut self, value: bool) -> Self {
72868 self.inner.enable_y_degamma = value as u32;
72869 self
72870 }
72871 #[inline]
72872 pub fn enable_cb_cr_degamma(mut self, value: bool) -> Self {
72873 self.inner.enable_cb_cr_degamma = value as u32;
72874 self
72875 }
72876 #[inline]
72878 pub fn push_next<T: ExtendsSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>(
72879 mut self,
72880 next: &'a mut T,
72881 ) -> Self {
72882 unsafe {
72883 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72884 (*next_ptr).p_next = self.inner.p_next as *mut _;
72885 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72886 core::ffi::c_void,
72887 >(next_ptr);
72888 }
72889 self
72890 }
72891}
72892impl<'a> core::ops::Deref
72893for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder<'a> {
72894 type Target = SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
72895 #[inline]
72896 fn deref(&self) -> &Self::Target {
72897 &self.inner
72898 }
72899}
72900impl<'a> core::ops::DerefMut
72901for SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOMBuilder<'a> {
72902 #[inline]
72903 fn deref_mut(&mut self) -> &mut Self::Target {
72904 &mut self.inner
72905 }
72906}
72907pub struct PhysicalDeviceCubicWeightsFeaturesQCOMBuilder<'a> {
72909 inner: PhysicalDeviceCubicWeightsFeaturesQCOM,
72910 _marker: core::marker::PhantomData<&'a ()>,
72911}
72912impl PhysicalDeviceCubicWeightsFeaturesQCOM {
72913 #[inline]
72915 pub fn builder<'a>() -> PhysicalDeviceCubicWeightsFeaturesQCOMBuilder<'a> {
72916 PhysicalDeviceCubicWeightsFeaturesQCOMBuilder {
72917 inner: PhysicalDeviceCubicWeightsFeaturesQCOM {
72918 s_type: StructureType::from_raw(1000519001i32),
72919 ..Default::default()
72920 },
72921 _marker: core::marker::PhantomData,
72922 }
72923 }
72924}
72925impl<'a> PhysicalDeviceCubicWeightsFeaturesQCOMBuilder<'a> {
72926 #[inline]
72927 pub fn selectable_cubic_weights(mut self, value: bool) -> Self {
72928 self.inner.selectable_cubic_weights = value as u32;
72929 self
72930 }
72931 #[inline]
72933 pub fn push_next<T: ExtendsPhysicalDeviceCubicWeightsFeaturesQCOM>(
72934 mut self,
72935 next: &'a mut T,
72936 ) -> Self {
72937 unsafe {
72938 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72939 (*next_ptr).p_next = self.inner.p_next as *mut _;
72940 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72941 core::ffi::c_void,
72942 >(next_ptr);
72943 }
72944 self
72945 }
72946}
72947impl<'a> core::ops::Deref for PhysicalDeviceCubicWeightsFeaturesQCOMBuilder<'a> {
72948 type Target = PhysicalDeviceCubicWeightsFeaturesQCOM;
72949 #[inline]
72950 fn deref(&self) -> &Self::Target {
72951 &self.inner
72952 }
72953}
72954impl<'a> core::ops::DerefMut for PhysicalDeviceCubicWeightsFeaturesQCOMBuilder<'a> {
72955 #[inline]
72956 fn deref_mut(&mut self) -> &mut Self::Target {
72957 &mut self.inner
72958 }
72959}
72960pub struct SamplerCubicWeightsCreateInfoQCOMBuilder<'a> {
72962 inner: SamplerCubicWeightsCreateInfoQCOM,
72963 _marker: core::marker::PhantomData<&'a ()>,
72964}
72965impl SamplerCubicWeightsCreateInfoQCOM {
72966 #[inline]
72968 pub fn builder<'a>() -> SamplerCubicWeightsCreateInfoQCOMBuilder<'a> {
72969 SamplerCubicWeightsCreateInfoQCOMBuilder {
72970 inner: SamplerCubicWeightsCreateInfoQCOM {
72971 s_type: StructureType::from_raw(1000519000i32),
72972 ..Default::default()
72973 },
72974 _marker: core::marker::PhantomData,
72975 }
72976 }
72977}
72978impl<'a> SamplerCubicWeightsCreateInfoQCOMBuilder<'a> {
72979 #[inline]
72980 pub fn cubic_weights(mut self, value: CubicFilterWeightsQCOM) -> Self {
72981 self.inner.cubic_weights = value;
72982 self
72983 }
72984 #[inline]
72986 pub fn push_next<T: ExtendsSamplerCubicWeightsCreateInfoQCOM>(
72987 mut self,
72988 next: &'a mut T,
72989 ) -> Self {
72990 unsafe {
72991 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
72992 (*next_ptr).p_next = self.inner.p_next as *mut _;
72993 self.inner.p_next = <*mut BaseOutStructure>::cast::<
72994 core::ffi::c_void,
72995 >(next_ptr) as *const _;
72996 }
72997 self
72998 }
72999}
73000impl<'a> core::ops::Deref for SamplerCubicWeightsCreateInfoQCOMBuilder<'a> {
73001 type Target = SamplerCubicWeightsCreateInfoQCOM;
73002 #[inline]
73003 fn deref(&self) -> &Self::Target {
73004 &self.inner
73005 }
73006}
73007impl<'a> core::ops::DerefMut for SamplerCubicWeightsCreateInfoQCOMBuilder<'a> {
73008 #[inline]
73009 fn deref_mut(&mut self) -> &mut Self::Target {
73010 &mut self.inner
73011 }
73012}
73013pub struct BlitImageCubicWeightsInfoQCOMBuilder<'a> {
73015 inner: BlitImageCubicWeightsInfoQCOM,
73016 _marker: core::marker::PhantomData<&'a ()>,
73017}
73018impl BlitImageCubicWeightsInfoQCOM {
73019 #[inline]
73021 pub fn builder<'a>() -> BlitImageCubicWeightsInfoQCOMBuilder<'a> {
73022 BlitImageCubicWeightsInfoQCOMBuilder {
73023 inner: BlitImageCubicWeightsInfoQCOM {
73024 s_type: StructureType::from_raw(1000519002i32),
73025 ..Default::default()
73026 },
73027 _marker: core::marker::PhantomData,
73028 }
73029 }
73030}
73031impl<'a> BlitImageCubicWeightsInfoQCOMBuilder<'a> {
73032 #[inline]
73033 pub fn cubic_weights(mut self, value: CubicFilterWeightsQCOM) -> Self {
73034 self.inner.cubic_weights = value;
73035 self
73036 }
73037 #[inline]
73039 pub fn push_next<T: ExtendsBlitImageCubicWeightsInfoQCOM>(
73040 mut self,
73041 next: &'a mut T,
73042 ) -> Self {
73043 unsafe {
73044 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73045 (*next_ptr).p_next = self.inner.p_next as *mut _;
73046 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73047 core::ffi::c_void,
73048 >(next_ptr) as *const _;
73049 }
73050 self
73051 }
73052}
73053impl<'a> core::ops::Deref for BlitImageCubicWeightsInfoQCOMBuilder<'a> {
73054 type Target = BlitImageCubicWeightsInfoQCOM;
73055 #[inline]
73056 fn deref(&self) -> &Self::Target {
73057 &self.inner
73058 }
73059}
73060impl<'a> core::ops::DerefMut for BlitImageCubicWeightsInfoQCOMBuilder<'a> {
73061 #[inline]
73062 fn deref_mut(&mut self) -> &mut Self::Target {
73063 &mut self.inner
73064 }
73065}
73066pub struct PhysicalDeviceImageProcessing2FeaturesQCOMBuilder<'a> {
73068 inner: PhysicalDeviceImageProcessing2FeaturesQCOM,
73069 _marker: core::marker::PhantomData<&'a ()>,
73070}
73071impl PhysicalDeviceImageProcessing2FeaturesQCOM {
73072 #[inline]
73074 pub fn builder<'a>() -> PhysicalDeviceImageProcessing2FeaturesQCOMBuilder<'a> {
73075 PhysicalDeviceImageProcessing2FeaturesQCOMBuilder {
73076 inner: PhysicalDeviceImageProcessing2FeaturesQCOM {
73077 s_type: StructureType::from_raw(1000518000i32),
73078 ..Default::default()
73079 },
73080 _marker: core::marker::PhantomData,
73081 }
73082 }
73083}
73084impl<'a> PhysicalDeviceImageProcessing2FeaturesQCOMBuilder<'a> {
73085 #[inline]
73086 pub fn texture_block_match2(mut self, value: bool) -> Self {
73087 self.inner.texture_block_match2 = value as u32;
73088 self
73089 }
73090 #[inline]
73092 pub fn push_next<T: ExtendsPhysicalDeviceImageProcessing2FeaturesQCOM>(
73093 mut self,
73094 next: &'a mut T,
73095 ) -> Self {
73096 unsafe {
73097 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73098 (*next_ptr).p_next = self.inner.p_next as *mut _;
73099 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73100 core::ffi::c_void,
73101 >(next_ptr);
73102 }
73103 self
73104 }
73105}
73106impl<'a> core::ops::Deref for PhysicalDeviceImageProcessing2FeaturesQCOMBuilder<'a> {
73107 type Target = PhysicalDeviceImageProcessing2FeaturesQCOM;
73108 #[inline]
73109 fn deref(&self) -> &Self::Target {
73110 &self.inner
73111 }
73112}
73113impl<'a> core::ops::DerefMut for PhysicalDeviceImageProcessing2FeaturesQCOMBuilder<'a> {
73114 #[inline]
73115 fn deref_mut(&mut self) -> &mut Self::Target {
73116 &mut self.inner
73117 }
73118}
73119pub struct PhysicalDeviceImageProcessing2PropertiesQCOMBuilder<'a> {
73121 inner: PhysicalDeviceImageProcessing2PropertiesQCOM,
73122 _marker: core::marker::PhantomData<&'a ()>,
73123}
73124impl PhysicalDeviceImageProcessing2PropertiesQCOM {
73125 #[inline]
73127 pub fn builder<'a>() -> PhysicalDeviceImageProcessing2PropertiesQCOMBuilder<'a> {
73128 PhysicalDeviceImageProcessing2PropertiesQCOMBuilder {
73129 inner: PhysicalDeviceImageProcessing2PropertiesQCOM {
73130 s_type: StructureType::from_raw(1000518001i32),
73131 ..Default::default()
73132 },
73133 _marker: core::marker::PhantomData,
73134 }
73135 }
73136}
73137impl<'a> PhysicalDeviceImageProcessing2PropertiesQCOMBuilder<'a> {
73138 #[inline]
73139 pub fn max_block_match_window(mut self, value: Extent2D) -> Self {
73140 self.inner.max_block_match_window = value;
73141 self
73142 }
73143}
73144impl<'a> core::ops::Deref for PhysicalDeviceImageProcessing2PropertiesQCOMBuilder<'a> {
73145 type Target = PhysicalDeviceImageProcessing2PropertiesQCOM;
73146 #[inline]
73147 fn deref(&self) -> &Self::Target {
73148 &self.inner
73149 }
73150}
73151impl<'a> core::ops::DerefMut
73152for PhysicalDeviceImageProcessing2PropertiesQCOMBuilder<'a> {
73153 #[inline]
73154 fn deref_mut(&mut self) -> &mut Self::Target {
73155 &mut self.inner
73156 }
73157}
73158pub struct SamplerBlockMatchWindowCreateInfoQCOMBuilder<'a> {
73160 inner: SamplerBlockMatchWindowCreateInfoQCOM,
73161 _marker: core::marker::PhantomData<&'a ()>,
73162}
73163impl SamplerBlockMatchWindowCreateInfoQCOM {
73164 #[inline]
73166 pub fn builder<'a>() -> SamplerBlockMatchWindowCreateInfoQCOMBuilder<'a> {
73167 SamplerBlockMatchWindowCreateInfoQCOMBuilder {
73168 inner: SamplerBlockMatchWindowCreateInfoQCOM {
73169 s_type: StructureType::from_raw(1000518002i32),
73170 ..Default::default()
73171 },
73172 _marker: core::marker::PhantomData,
73173 }
73174 }
73175}
73176impl<'a> SamplerBlockMatchWindowCreateInfoQCOMBuilder<'a> {
73177 #[inline]
73178 pub fn window_extent(mut self, value: Extent2D) -> Self {
73179 self.inner.window_extent = value;
73180 self
73181 }
73182 #[inline]
73183 pub fn window_compare_mode(
73184 mut self,
73185 value: BlockMatchWindowCompareModeQCOM,
73186 ) -> Self {
73187 self.inner.window_compare_mode = value;
73188 self
73189 }
73190 #[inline]
73192 pub fn push_next<T: ExtendsSamplerBlockMatchWindowCreateInfoQCOM>(
73193 mut self,
73194 next: &'a mut T,
73195 ) -> Self {
73196 unsafe {
73197 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73198 (*next_ptr).p_next = self.inner.p_next as *mut _;
73199 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73200 core::ffi::c_void,
73201 >(next_ptr) as *const _;
73202 }
73203 self
73204 }
73205}
73206impl<'a> core::ops::Deref for SamplerBlockMatchWindowCreateInfoQCOMBuilder<'a> {
73207 type Target = SamplerBlockMatchWindowCreateInfoQCOM;
73208 #[inline]
73209 fn deref(&self) -> &Self::Target {
73210 &self.inner
73211 }
73212}
73213impl<'a> core::ops::DerefMut for SamplerBlockMatchWindowCreateInfoQCOMBuilder<'a> {
73214 #[inline]
73215 fn deref_mut(&mut self) -> &mut Self::Target {
73216 &mut self.inner
73217 }
73218}
73219pub struct PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder<'a> {
73221 inner: PhysicalDeviceDescriptorPoolOverallocationFeaturesNV,
73222 _marker: core::marker::PhantomData<&'a ()>,
73223}
73224impl PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
73225 #[inline]
73227 pub fn builder<'a>() -> PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder<
73228 'a,
73229 > {
73230 PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder {
73231 inner: PhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
73232 s_type: StructureType::from_raw(1000546000i32),
73233 ..Default::default()
73234 },
73235 _marker: core::marker::PhantomData,
73236 }
73237 }
73238}
73239impl<'a> PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder<'a> {
73240 #[inline]
73241 pub fn descriptor_pool_overallocation(mut self, value: bool) -> Self {
73242 self.inner.descriptor_pool_overallocation = value as u32;
73243 self
73244 }
73245 #[inline]
73247 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorPoolOverallocationFeaturesNV>(
73248 mut self,
73249 next: &'a mut T,
73250 ) -> Self {
73251 unsafe {
73252 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73253 (*next_ptr).p_next = self.inner.p_next as *mut _;
73254 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73255 core::ffi::c_void,
73256 >(next_ptr);
73257 }
73258 self
73259 }
73260}
73261impl<'a> core::ops::Deref
73262for PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder<'a> {
73263 type Target = PhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
73264 #[inline]
73265 fn deref(&self) -> &Self::Target {
73266 &self.inner
73267 }
73268}
73269impl<'a> core::ops::DerefMut
73270for PhysicalDeviceDescriptorPoolOverallocationFeaturesNVBuilder<'a> {
73271 #[inline]
73272 fn deref_mut(&mut self) -> &mut Self::Target {
73273 &mut self.inner
73274 }
73275}
73276pub struct PhysicalDeviceLayeredDriverPropertiesMSFTBuilder<'a> {
73278 inner: PhysicalDeviceLayeredDriverPropertiesMSFT,
73279 _marker: core::marker::PhantomData<&'a ()>,
73280}
73281impl PhysicalDeviceLayeredDriverPropertiesMSFT {
73282 #[inline]
73284 pub fn builder<'a>() -> PhysicalDeviceLayeredDriverPropertiesMSFTBuilder<'a> {
73285 PhysicalDeviceLayeredDriverPropertiesMSFTBuilder {
73286 inner: PhysicalDeviceLayeredDriverPropertiesMSFT {
73287 s_type: StructureType::from_raw(1000530000i32),
73288 ..Default::default()
73289 },
73290 _marker: core::marker::PhantomData,
73291 }
73292 }
73293}
73294impl<'a> PhysicalDeviceLayeredDriverPropertiesMSFTBuilder<'a> {
73295 #[inline]
73296 pub fn underlying_api(mut self, value: LayeredDriverUnderlyingApiMSFT) -> Self {
73297 self.inner.underlying_api = value;
73298 self
73299 }
73300}
73301impl<'a> core::ops::Deref for PhysicalDeviceLayeredDriverPropertiesMSFTBuilder<'a> {
73302 type Target = PhysicalDeviceLayeredDriverPropertiesMSFT;
73303 #[inline]
73304 fn deref(&self) -> &Self::Target {
73305 &self.inner
73306 }
73307}
73308impl<'a> core::ops::DerefMut for PhysicalDeviceLayeredDriverPropertiesMSFTBuilder<'a> {
73309 #[inline]
73310 fn deref_mut(&mut self) -> &mut Self::Target {
73311 &mut self.inner
73312 }
73313}
73314pub struct PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder<'a> {
73316 inner: PhysicalDevicePerStageDescriptorSetFeaturesNV,
73317 _marker: core::marker::PhantomData<&'a ()>,
73318}
73319impl PhysicalDevicePerStageDescriptorSetFeaturesNV {
73320 #[inline]
73322 pub fn builder<'a>() -> PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder<'a> {
73323 PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder {
73324 inner: PhysicalDevicePerStageDescriptorSetFeaturesNV {
73325 s_type: StructureType::from_raw(1000516000i32),
73326 ..Default::default()
73327 },
73328 _marker: core::marker::PhantomData,
73329 }
73330 }
73331}
73332impl<'a> PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder<'a> {
73333 #[inline]
73334 pub fn per_stage_descriptor_set(mut self, value: bool) -> Self {
73335 self.inner.per_stage_descriptor_set = value as u32;
73336 self
73337 }
73338 #[inline]
73339 pub fn dynamic_pipeline_layout(mut self, value: bool) -> Self {
73340 self.inner.dynamic_pipeline_layout = value as u32;
73341 self
73342 }
73343 #[inline]
73345 pub fn push_next<T: ExtendsPhysicalDevicePerStageDescriptorSetFeaturesNV>(
73346 mut self,
73347 next: &'a mut T,
73348 ) -> Self {
73349 unsafe {
73350 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73351 (*next_ptr).p_next = self.inner.p_next as *mut _;
73352 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73353 core::ffi::c_void,
73354 >(next_ptr);
73355 }
73356 self
73357 }
73358}
73359impl<'a> core::ops::Deref for PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder<'a> {
73360 type Target = PhysicalDevicePerStageDescriptorSetFeaturesNV;
73361 #[inline]
73362 fn deref(&self) -> &Self::Target {
73363 &self.inner
73364 }
73365}
73366impl<'a> core::ops::DerefMut
73367for PhysicalDevicePerStageDescriptorSetFeaturesNVBuilder<'a> {
73368 #[inline]
73369 fn deref_mut(&mut self) -> &mut Self::Target {
73370 &mut self.inner
73371 }
73372}
73373pub struct PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder<'a> {
73375 inner: PhysicalDeviceExternalFormatResolveFeaturesANDROID,
73376 _marker: core::marker::PhantomData<&'a ()>,
73377}
73378impl PhysicalDeviceExternalFormatResolveFeaturesANDROID {
73379 #[inline]
73381 pub fn builder<'a>() -> PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder<
73382 'a,
73383 > {
73384 PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder {
73385 inner: PhysicalDeviceExternalFormatResolveFeaturesANDROID {
73386 s_type: StructureType::from_raw(1000468000i32),
73387 ..Default::default()
73388 },
73389 _marker: core::marker::PhantomData,
73390 }
73391 }
73392}
73393impl<'a> PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder<'a> {
73394 #[inline]
73395 pub fn external_format_resolve(mut self, value: bool) -> Self {
73396 self.inner.external_format_resolve = value as u32;
73397 self
73398 }
73399 #[inline]
73401 pub fn push_next<T: ExtendsPhysicalDeviceExternalFormatResolveFeaturesANDROID>(
73402 mut self,
73403 next: &'a mut T,
73404 ) -> Self {
73405 unsafe {
73406 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73407 (*next_ptr).p_next = self.inner.p_next as *mut _;
73408 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73409 core::ffi::c_void,
73410 >(next_ptr);
73411 }
73412 self
73413 }
73414}
73415impl<'a> core::ops::Deref
73416for PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder<'a> {
73417 type Target = PhysicalDeviceExternalFormatResolveFeaturesANDROID;
73418 #[inline]
73419 fn deref(&self) -> &Self::Target {
73420 &self.inner
73421 }
73422}
73423impl<'a> core::ops::DerefMut
73424for PhysicalDeviceExternalFormatResolveFeaturesANDROIDBuilder<'a> {
73425 #[inline]
73426 fn deref_mut(&mut self) -> &mut Self::Target {
73427 &mut self.inner
73428 }
73429}
73430pub struct PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder<'a> {
73432 inner: PhysicalDeviceExternalFormatResolvePropertiesANDROID,
73433 _marker: core::marker::PhantomData<&'a ()>,
73434}
73435impl PhysicalDeviceExternalFormatResolvePropertiesANDROID {
73436 #[inline]
73438 pub fn builder<'a>() -> PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder<
73439 'a,
73440 > {
73441 PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder {
73442 inner: PhysicalDeviceExternalFormatResolvePropertiesANDROID {
73443 s_type: StructureType::from_raw(1000468001i32),
73444 ..Default::default()
73445 },
73446 _marker: core::marker::PhantomData,
73447 }
73448 }
73449}
73450impl<'a> PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder<'a> {
73451 #[inline]
73452 pub fn null_color_attachment_with_external_format_resolve(
73453 mut self,
73454 value: bool,
73455 ) -> Self {
73456 self.inner.null_color_attachment_with_external_format_resolve = value as u32;
73457 self
73458 }
73459 #[inline]
73460 pub fn external_format_resolve_chroma_offset_x(
73461 mut self,
73462 value: ChromaLocation,
73463 ) -> Self {
73464 self.inner.external_format_resolve_chroma_offset_x = value;
73465 self
73466 }
73467 #[inline]
73468 pub fn external_format_resolve_chroma_offset_y(
73469 mut self,
73470 value: ChromaLocation,
73471 ) -> Self {
73472 self.inner.external_format_resolve_chroma_offset_y = value;
73473 self
73474 }
73475}
73476impl<'a> core::ops::Deref
73477for PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder<'a> {
73478 type Target = PhysicalDeviceExternalFormatResolvePropertiesANDROID;
73479 #[inline]
73480 fn deref(&self) -> &Self::Target {
73481 &self.inner
73482 }
73483}
73484impl<'a> core::ops::DerefMut
73485for PhysicalDeviceExternalFormatResolvePropertiesANDROIDBuilder<'a> {
73486 #[inline]
73487 fn deref_mut(&mut self) -> &mut Self::Target {
73488 &mut self.inner
73489 }
73490}
73491pub struct AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder<'a> {
73493 inner: AndroidHardwareBufferFormatResolvePropertiesANDROID,
73494 _marker: core::marker::PhantomData<&'a ()>,
73495}
73496impl AndroidHardwareBufferFormatResolvePropertiesANDROID {
73497 #[inline]
73499 pub fn builder<'a>() -> AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder<
73500 'a,
73501 > {
73502 AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder {
73503 inner: AndroidHardwareBufferFormatResolvePropertiesANDROID {
73504 s_type: StructureType::from_raw(1000468002i32),
73505 ..Default::default()
73506 },
73507 _marker: core::marker::PhantomData,
73508 }
73509 }
73510}
73511impl<'a> AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder<'a> {
73512 #[inline]
73513 pub fn color_attachment_format(mut self, value: Format) -> Self {
73514 self.inner.color_attachment_format = value;
73515 self
73516 }
73517}
73518impl<'a> core::ops::Deref
73519for AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder<'a> {
73520 type Target = AndroidHardwareBufferFormatResolvePropertiesANDROID;
73521 #[inline]
73522 fn deref(&self) -> &Self::Target {
73523 &self.inner
73524 }
73525}
73526impl<'a> core::ops::DerefMut
73527for AndroidHardwareBufferFormatResolvePropertiesANDROIDBuilder<'a> {
73528 #[inline]
73529 fn deref_mut(&mut self) -> &mut Self::Target {
73530 &mut self.inner
73531 }
73532}
73533pub struct LatencySleepModeInfoNVBuilder<'a> {
73535 inner: LatencySleepModeInfoNV,
73536 _marker: core::marker::PhantomData<&'a ()>,
73537}
73538impl LatencySleepModeInfoNV {
73539 #[inline]
73541 pub fn builder<'a>() -> LatencySleepModeInfoNVBuilder<'a> {
73542 LatencySleepModeInfoNVBuilder {
73543 inner: LatencySleepModeInfoNV {
73544 s_type: StructureType::from_raw(1000505000i32),
73545 ..Default::default()
73546 },
73547 _marker: core::marker::PhantomData,
73548 }
73549 }
73550}
73551impl<'a> LatencySleepModeInfoNVBuilder<'a> {
73552 #[inline]
73553 pub fn low_latency_mode(mut self, value: bool) -> Self {
73554 self.inner.low_latency_mode = value as u32;
73555 self
73556 }
73557 #[inline]
73558 pub fn low_latency_boost(mut self, value: bool) -> Self {
73559 self.inner.low_latency_boost = value as u32;
73560 self
73561 }
73562 #[inline]
73563 pub fn minimum_interval_us(mut self, value: u32) -> Self {
73564 self.inner.minimum_interval_us = value;
73565 self
73566 }
73567 #[inline]
73569 pub fn push_next<T: ExtendsLatencySleepModeInfoNV>(
73570 mut self,
73571 next: &'a mut T,
73572 ) -> Self {
73573 unsafe {
73574 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73575 (*next_ptr).p_next = self.inner.p_next as *mut _;
73576 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73577 core::ffi::c_void,
73578 >(next_ptr) as *const _;
73579 }
73580 self
73581 }
73582}
73583impl<'a> core::ops::Deref for LatencySleepModeInfoNVBuilder<'a> {
73584 type Target = LatencySleepModeInfoNV;
73585 #[inline]
73586 fn deref(&self) -> &Self::Target {
73587 &self.inner
73588 }
73589}
73590impl<'a> core::ops::DerefMut for LatencySleepModeInfoNVBuilder<'a> {
73591 #[inline]
73592 fn deref_mut(&mut self) -> &mut Self::Target {
73593 &mut self.inner
73594 }
73595}
73596pub struct LatencySleepInfoNVBuilder<'a> {
73598 inner: LatencySleepInfoNV,
73599 _marker: core::marker::PhantomData<&'a ()>,
73600}
73601impl LatencySleepInfoNV {
73602 #[inline]
73604 pub fn builder<'a>() -> LatencySleepInfoNVBuilder<'a> {
73605 LatencySleepInfoNVBuilder {
73606 inner: LatencySleepInfoNV {
73607 s_type: StructureType::from_raw(1000505001i32),
73608 ..Default::default()
73609 },
73610 _marker: core::marker::PhantomData,
73611 }
73612 }
73613}
73614impl<'a> LatencySleepInfoNVBuilder<'a> {
73615 #[inline]
73616 pub fn signal_semaphore(mut self, value: Semaphore) -> Self {
73617 self.inner.signal_semaphore = value;
73618 self
73619 }
73620 #[inline]
73621 pub fn value(mut self, value: u64) -> Self {
73622 self.inner.value = value;
73623 self
73624 }
73625 #[inline]
73627 pub fn push_next<T: ExtendsLatencySleepInfoNV>(mut self, next: &'a mut T) -> Self {
73628 unsafe {
73629 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73630 (*next_ptr).p_next = self.inner.p_next as *mut _;
73631 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73632 core::ffi::c_void,
73633 >(next_ptr) as *const _;
73634 }
73635 self
73636 }
73637}
73638impl<'a> core::ops::Deref for LatencySleepInfoNVBuilder<'a> {
73639 type Target = LatencySleepInfoNV;
73640 #[inline]
73641 fn deref(&self) -> &Self::Target {
73642 &self.inner
73643 }
73644}
73645impl<'a> core::ops::DerefMut for LatencySleepInfoNVBuilder<'a> {
73646 #[inline]
73647 fn deref_mut(&mut self) -> &mut Self::Target {
73648 &mut self.inner
73649 }
73650}
73651pub struct SetLatencyMarkerInfoNVBuilder<'a> {
73653 inner: SetLatencyMarkerInfoNV,
73654 _marker: core::marker::PhantomData<&'a ()>,
73655}
73656impl SetLatencyMarkerInfoNV {
73657 #[inline]
73659 pub fn builder<'a>() -> SetLatencyMarkerInfoNVBuilder<'a> {
73660 SetLatencyMarkerInfoNVBuilder {
73661 inner: SetLatencyMarkerInfoNV {
73662 s_type: StructureType::from_raw(1000505002i32),
73663 ..Default::default()
73664 },
73665 _marker: core::marker::PhantomData,
73666 }
73667 }
73668}
73669impl<'a> SetLatencyMarkerInfoNVBuilder<'a> {
73670 #[inline]
73671 pub fn present_id(mut self, value: u64) -> Self {
73672 self.inner.present_id = value;
73673 self
73674 }
73675 #[inline]
73676 pub fn marker(mut self, value: LatencyMarkerNV) -> Self {
73677 self.inner.marker = value;
73678 self
73679 }
73680 #[inline]
73682 pub fn push_next<T: ExtendsSetLatencyMarkerInfoNV>(
73683 mut self,
73684 next: &'a mut T,
73685 ) -> Self {
73686 unsafe {
73687 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73688 (*next_ptr).p_next = self.inner.p_next as *mut _;
73689 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73690 core::ffi::c_void,
73691 >(next_ptr) as *const _;
73692 }
73693 self
73694 }
73695}
73696impl<'a> core::ops::Deref for SetLatencyMarkerInfoNVBuilder<'a> {
73697 type Target = SetLatencyMarkerInfoNV;
73698 #[inline]
73699 fn deref(&self) -> &Self::Target {
73700 &self.inner
73701 }
73702}
73703impl<'a> core::ops::DerefMut for SetLatencyMarkerInfoNVBuilder<'a> {
73704 #[inline]
73705 fn deref_mut(&mut self) -> &mut Self::Target {
73706 &mut self.inner
73707 }
73708}
73709pub struct GetLatencyMarkerInfoNVBuilder<'a> {
73711 inner: GetLatencyMarkerInfoNV,
73712 _marker: core::marker::PhantomData<&'a ()>,
73713}
73714impl GetLatencyMarkerInfoNV {
73715 #[inline]
73717 pub fn builder<'a>() -> GetLatencyMarkerInfoNVBuilder<'a> {
73718 GetLatencyMarkerInfoNVBuilder {
73719 inner: GetLatencyMarkerInfoNV {
73720 s_type: StructureType::from_raw(1000505003i32),
73721 ..Default::default()
73722 },
73723 _marker: core::marker::PhantomData,
73724 }
73725 }
73726}
73727impl<'a> GetLatencyMarkerInfoNVBuilder<'a> {
73728 #[inline]
73729 pub fn timing_count(mut self, value: u32) -> Self {
73730 self.inner.timing_count = value;
73731 self
73732 }
73733 #[inline]
73734 pub fn timings(mut self, slice: &'a mut [LatencyTimingsFrameReportNV]) -> Self {
73735 self.inner.timing_count = slice.len() as u32;
73736 self.inner.p_timings = slice.as_mut_ptr();
73737 self
73738 }
73739 #[inline]
73741 pub fn push_next<T: ExtendsGetLatencyMarkerInfoNV>(
73742 mut self,
73743 next: &'a mut T,
73744 ) -> Self {
73745 unsafe {
73746 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73747 (*next_ptr).p_next = self.inner.p_next as *mut _;
73748 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73749 core::ffi::c_void,
73750 >(next_ptr) as *const _;
73751 }
73752 self
73753 }
73754}
73755impl<'a> core::ops::Deref for GetLatencyMarkerInfoNVBuilder<'a> {
73756 type Target = GetLatencyMarkerInfoNV;
73757 #[inline]
73758 fn deref(&self) -> &Self::Target {
73759 &self.inner
73760 }
73761}
73762impl<'a> core::ops::DerefMut for GetLatencyMarkerInfoNVBuilder<'a> {
73763 #[inline]
73764 fn deref_mut(&mut self) -> &mut Self::Target {
73765 &mut self.inner
73766 }
73767}
73768pub struct LatencyTimingsFrameReportNVBuilder<'a> {
73770 inner: LatencyTimingsFrameReportNV,
73771 _marker: core::marker::PhantomData<&'a ()>,
73772}
73773impl LatencyTimingsFrameReportNV {
73774 #[inline]
73776 pub fn builder<'a>() -> LatencyTimingsFrameReportNVBuilder<'a> {
73777 LatencyTimingsFrameReportNVBuilder {
73778 inner: LatencyTimingsFrameReportNV {
73779 s_type: StructureType::from_raw(1000505004i32),
73780 ..Default::default()
73781 },
73782 _marker: core::marker::PhantomData,
73783 }
73784 }
73785}
73786impl<'a> LatencyTimingsFrameReportNVBuilder<'a> {
73787 #[inline]
73788 pub fn present_id(mut self, value: u64) -> Self {
73789 self.inner.present_id = value;
73790 self
73791 }
73792 #[inline]
73793 pub fn input_sample_time_us(mut self, value: u64) -> Self {
73794 self.inner.input_sample_time_us = value;
73795 self
73796 }
73797 #[inline]
73798 pub fn sim_start_time_us(mut self, value: u64) -> Self {
73799 self.inner.sim_start_time_us = value;
73800 self
73801 }
73802 #[inline]
73803 pub fn sim_end_time_us(mut self, value: u64) -> Self {
73804 self.inner.sim_end_time_us = value;
73805 self
73806 }
73807 #[inline]
73808 pub fn render_submit_start_time_us(mut self, value: u64) -> Self {
73809 self.inner.render_submit_start_time_us = value;
73810 self
73811 }
73812 #[inline]
73813 pub fn render_submit_end_time_us(mut self, value: u64) -> Self {
73814 self.inner.render_submit_end_time_us = value;
73815 self
73816 }
73817 #[inline]
73818 pub fn present_start_time_us(mut self, value: u64) -> Self {
73819 self.inner.present_start_time_us = value;
73820 self
73821 }
73822 #[inline]
73823 pub fn present_end_time_us(mut self, value: u64) -> Self {
73824 self.inner.present_end_time_us = value;
73825 self
73826 }
73827 #[inline]
73828 pub fn driver_start_time_us(mut self, value: u64) -> Self {
73829 self.inner.driver_start_time_us = value;
73830 self
73831 }
73832 #[inline]
73833 pub fn driver_end_time_us(mut self, value: u64) -> Self {
73834 self.inner.driver_end_time_us = value;
73835 self
73836 }
73837 #[inline]
73838 pub fn os_render_queue_start_time_us(mut self, value: u64) -> Self {
73839 self.inner.os_render_queue_start_time_us = value;
73840 self
73841 }
73842 #[inline]
73843 pub fn os_render_queue_end_time_us(mut self, value: u64) -> Self {
73844 self.inner.os_render_queue_end_time_us = value;
73845 self
73846 }
73847 #[inline]
73848 pub fn gpu_render_start_time_us(mut self, value: u64) -> Self {
73849 self.inner.gpu_render_start_time_us = value;
73850 self
73851 }
73852 #[inline]
73853 pub fn gpu_render_end_time_us(mut self, value: u64) -> Self {
73854 self.inner.gpu_render_end_time_us = value;
73855 self
73856 }
73857}
73858impl<'a> core::ops::Deref for LatencyTimingsFrameReportNVBuilder<'a> {
73859 type Target = LatencyTimingsFrameReportNV;
73860 #[inline]
73861 fn deref(&self) -> &Self::Target {
73862 &self.inner
73863 }
73864}
73865impl<'a> core::ops::DerefMut for LatencyTimingsFrameReportNVBuilder<'a> {
73866 #[inline]
73867 fn deref_mut(&mut self) -> &mut Self::Target {
73868 &mut self.inner
73869 }
73870}
73871pub struct OutOfBandQueueTypeInfoNVBuilder<'a> {
73873 inner: OutOfBandQueueTypeInfoNV,
73874 _marker: core::marker::PhantomData<&'a ()>,
73875}
73876impl OutOfBandQueueTypeInfoNV {
73877 #[inline]
73879 pub fn builder<'a>() -> OutOfBandQueueTypeInfoNVBuilder<'a> {
73880 OutOfBandQueueTypeInfoNVBuilder {
73881 inner: OutOfBandQueueTypeInfoNV {
73882 s_type: StructureType::from_raw(1000505006i32),
73883 ..Default::default()
73884 },
73885 _marker: core::marker::PhantomData,
73886 }
73887 }
73888}
73889impl<'a> OutOfBandQueueTypeInfoNVBuilder<'a> {
73890 #[inline]
73891 pub fn queue_type(mut self, value: OutOfBandQueueTypeNV) -> Self {
73892 self.inner.queue_type = value;
73893 self
73894 }
73895 #[inline]
73897 pub fn push_next<T: ExtendsOutOfBandQueueTypeInfoNV>(
73898 mut self,
73899 next: &'a mut T,
73900 ) -> Self {
73901 unsafe {
73902 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73903 (*next_ptr).p_next = self.inner.p_next as *mut _;
73904 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73905 core::ffi::c_void,
73906 >(next_ptr) as *const _;
73907 }
73908 self
73909 }
73910}
73911impl<'a> core::ops::Deref for OutOfBandQueueTypeInfoNVBuilder<'a> {
73912 type Target = OutOfBandQueueTypeInfoNV;
73913 #[inline]
73914 fn deref(&self) -> &Self::Target {
73915 &self.inner
73916 }
73917}
73918impl<'a> core::ops::DerefMut for OutOfBandQueueTypeInfoNVBuilder<'a> {
73919 #[inline]
73920 fn deref_mut(&mut self) -> &mut Self::Target {
73921 &mut self.inner
73922 }
73923}
73924pub struct LatencySubmissionPresentIdNVBuilder<'a> {
73926 inner: LatencySubmissionPresentIdNV,
73927 _marker: core::marker::PhantomData<&'a ()>,
73928}
73929impl LatencySubmissionPresentIdNV {
73930 #[inline]
73932 pub fn builder<'a>() -> LatencySubmissionPresentIdNVBuilder<'a> {
73933 LatencySubmissionPresentIdNVBuilder {
73934 inner: LatencySubmissionPresentIdNV {
73935 s_type: StructureType::from_raw(1000505005i32),
73936 ..Default::default()
73937 },
73938 _marker: core::marker::PhantomData,
73939 }
73940 }
73941}
73942impl<'a> LatencySubmissionPresentIdNVBuilder<'a> {
73943 #[inline]
73944 pub fn present_id(mut self, value: u64) -> Self {
73945 self.inner.present_id = value;
73946 self
73947 }
73948 #[inline]
73950 pub fn push_next<T: ExtendsLatencySubmissionPresentIdNV>(
73951 mut self,
73952 next: &'a mut T,
73953 ) -> Self {
73954 unsafe {
73955 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
73956 (*next_ptr).p_next = self.inner.p_next as *mut _;
73957 self.inner.p_next = <*mut BaseOutStructure>::cast::<
73958 core::ffi::c_void,
73959 >(next_ptr) as *const _;
73960 }
73961 self
73962 }
73963}
73964impl<'a> core::ops::Deref for LatencySubmissionPresentIdNVBuilder<'a> {
73965 type Target = LatencySubmissionPresentIdNV;
73966 #[inline]
73967 fn deref(&self) -> &Self::Target {
73968 &self.inner
73969 }
73970}
73971impl<'a> core::ops::DerefMut for LatencySubmissionPresentIdNVBuilder<'a> {
73972 #[inline]
73973 fn deref_mut(&mut self) -> &mut Self::Target {
73974 &mut self.inner
73975 }
73976}
73977pub struct SwapchainLatencyCreateInfoNVBuilder<'a> {
73979 inner: SwapchainLatencyCreateInfoNV,
73980 _marker: core::marker::PhantomData<&'a ()>,
73981}
73982impl SwapchainLatencyCreateInfoNV {
73983 #[inline]
73985 pub fn builder<'a>() -> SwapchainLatencyCreateInfoNVBuilder<'a> {
73986 SwapchainLatencyCreateInfoNVBuilder {
73987 inner: SwapchainLatencyCreateInfoNV {
73988 s_type: StructureType::from_raw(1000505007i32),
73989 ..Default::default()
73990 },
73991 _marker: core::marker::PhantomData,
73992 }
73993 }
73994}
73995impl<'a> SwapchainLatencyCreateInfoNVBuilder<'a> {
73996 #[inline]
73997 pub fn latency_mode_enable(mut self, value: bool) -> Self {
73998 self.inner.latency_mode_enable = value as u32;
73999 self
74000 }
74001 #[inline]
74003 pub fn push_next<T: ExtendsSwapchainLatencyCreateInfoNV>(
74004 mut self,
74005 next: &'a mut T,
74006 ) -> Self {
74007 unsafe {
74008 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74009 (*next_ptr).p_next = self.inner.p_next as *mut _;
74010 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74011 core::ffi::c_void,
74012 >(next_ptr) as *const _;
74013 }
74014 self
74015 }
74016}
74017impl<'a> core::ops::Deref for SwapchainLatencyCreateInfoNVBuilder<'a> {
74018 type Target = SwapchainLatencyCreateInfoNV;
74019 #[inline]
74020 fn deref(&self) -> &Self::Target {
74021 &self.inner
74022 }
74023}
74024impl<'a> core::ops::DerefMut for SwapchainLatencyCreateInfoNVBuilder<'a> {
74025 #[inline]
74026 fn deref_mut(&mut self) -> &mut Self::Target {
74027 &mut self.inner
74028 }
74029}
74030pub struct LatencySurfaceCapabilitiesNVBuilder<'a> {
74032 inner: LatencySurfaceCapabilitiesNV,
74033 _marker: core::marker::PhantomData<&'a ()>,
74034}
74035impl LatencySurfaceCapabilitiesNV {
74036 #[inline]
74038 pub fn builder<'a>() -> LatencySurfaceCapabilitiesNVBuilder<'a> {
74039 LatencySurfaceCapabilitiesNVBuilder {
74040 inner: LatencySurfaceCapabilitiesNV {
74041 s_type: StructureType::from_raw(1000505008i32),
74042 ..Default::default()
74043 },
74044 _marker: core::marker::PhantomData,
74045 }
74046 }
74047}
74048impl<'a> LatencySurfaceCapabilitiesNVBuilder<'a> {
74049 #[inline]
74050 pub fn present_mode_count(mut self, value: u32) -> Self {
74051 self.inner.present_mode_count = value;
74052 self
74053 }
74054 #[inline]
74055 pub fn present_modes(mut self, slice: &'a mut [PresentModeKHR]) -> Self {
74056 self.inner.present_mode_count = slice.len() as u32;
74057 self.inner.p_present_modes = slice.as_mut_ptr();
74058 self
74059 }
74060 #[inline]
74062 pub fn push_next<T: ExtendsLatencySurfaceCapabilitiesNV>(
74063 mut self,
74064 next: &'a mut T,
74065 ) -> Self {
74066 unsafe {
74067 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74068 (*next_ptr).p_next = self.inner.p_next as *mut _;
74069 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74070 core::ffi::c_void,
74071 >(next_ptr) as *const _;
74072 }
74073 self
74074 }
74075}
74076impl<'a> core::ops::Deref for LatencySurfaceCapabilitiesNVBuilder<'a> {
74077 type Target = LatencySurfaceCapabilitiesNV;
74078 #[inline]
74079 fn deref(&self) -> &Self::Target {
74080 &self.inner
74081 }
74082}
74083impl<'a> core::ops::DerefMut for LatencySurfaceCapabilitiesNVBuilder<'a> {
74084 #[inline]
74085 fn deref_mut(&mut self) -> &mut Self::Target {
74086 &mut self.inner
74087 }
74088}
74089pub struct PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder<'a> {
74091 inner: PhysicalDeviceCudaKernelLaunchFeaturesNV,
74092 _marker: core::marker::PhantomData<&'a ()>,
74093}
74094impl PhysicalDeviceCudaKernelLaunchFeaturesNV {
74095 #[inline]
74097 pub fn builder<'a>() -> PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder<'a> {
74098 PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder {
74099 inner: PhysicalDeviceCudaKernelLaunchFeaturesNV {
74100 s_type: StructureType::from_raw(1000307003i32),
74101 ..Default::default()
74102 },
74103 _marker: core::marker::PhantomData,
74104 }
74105 }
74106}
74107impl<'a> PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder<'a> {
74108 #[inline]
74109 pub fn cuda_kernel_launch_features(mut self, value: bool) -> Self {
74110 self.inner.cuda_kernel_launch_features = value as u32;
74111 self
74112 }
74113 #[inline]
74115 pub fn push_next<T: ExtendsPhysicalDeviceCudaKernelLaunchFeaturesNV>(
74116 mut self,
74117 next: &'a mut T,
74118 ) -> Self {
74119 unsafe {
74120 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74121 (*next_ptr).p_next = self.inner.p_next as *mut _;
74122 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74123 core::ffi::c_void,
74124 >(next_ptr);
74125 }
74126 self
74127 }
74128}
74129impl<'a> core::ops::Deref for PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder<'a> {
74130 type Target = PhysicalDeviceCudaKernelLaunchFeaturesNV;
74131 #[inline]
74132 fn deref(&self) -> &Self::Target {
74133 &self.inner
74134 }
74135}
74136impl<'a> core::ops::DerefMut for PhysicalDeviceCudaKernelLaunchFeaturesNVBuilder<'a> {
74137 #[inline]
74138 fn deref_mut(&mut self) -> &mut Self::Target {
74139 &mut self.inner
74140 }
74141}
74142pub struct PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder<'a> {
74144 inner: PhysicalDeviceCudaKernelLaunchPropertiesNV,
74145 _marker: core::marker::PhantomData<&'a ()>,
74146}
74147impl PhysicalDeviceCudaKernelLaunchPropertiesNV {
74148 #[inline]
74150 pub fn builder<'a>() -> PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder<'a> {
74151 PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder {
74152 inner: PhysicalDeviceCudaKernelLaunchPropertiesNV {
74153 s_type: StructureType::from_raw(1000307004i32),
74154 ..Default::default()
74155 },
74156 _marker: core::marker::PhantomData,
74157 }
74158 }
74159}
74160impl<'a> PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder<'a> {
74161 #[inline]
74162 pub fn compute_capability_minor(mut self, value: u32) -> Self {
74163 self.inner.compute_capability_minor = value;
74164 self
74165 }
74166 #[inline]
74167 pub fn compute_capability_major(mut self, value: u32) -> Self {
74168 self.inner.compute_capability_major = value;
74169 self
74170 }
74171}
74172impl<'a> core::ops::Deref for PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder<'a> {
74173 type Target = PhysicalDeviceCudaKernelLaunchPropertiesNV;
74174 #[inline]
74175 fn deref(&self) -> &Self::Target {
74176 &self.inner
74177 }
74178}
74179impl<'a> core::ops::DerefMut for PhysicalDeviceCudaKernelLaunchPropertiesNVBuilder<'a> {
74180 #[inline]
74181 fn deref_mut(&mut self) -> &mut Self::Target {
74182 &mut self.inner
74183 }
74184}
74185pub struct DeviceQueueShaderCoreControlCreateInfoARMBuilder<'a> {
74187 inner: DeviceQueueShaderCoreControlCreateInfoARM,
74188 _marker: core::marker::PhantomData<&'a ()>,
74189}
74190impl DeviceQueueShaderCoreControlCreateInfoARM {
74191 #[inline]
74193 pub fn builder<'a>() -> DeviceQueueShaderCoreControlCreateInfoARMBuilder<'a> {
74194 DeviceQueueShaderCoreControlCreateInfoARMBuilder {
74195 inner: DeviceQueueShaderCoreControlCreateInfoARM {
74196 s_type: StructureType::from_raw(1000417000i32),
74197 ..Default::default()
74198 },
74199 _marker: core::marker::PhantomData,
74200 }
74201 }
74202}
74203impl<'a> DeviceQueueShaderCoreControlCreateInfoARMBuilder<'a> {
74204 #[inline]
74205 pub fn shader_core_count(mut self, value: u32) -> Self {
74206 self.inner.shader_core_count = value;
74207 self
74208 }
74209 #[inline]
74211 pub fn push_next<T: ExtendsDeviceQueueShaderCoreControlCreateInfoARM>(
74212 mut self,
74213 next: &'a mut T,
74214 ) -> Self {
74215 unsafe {
74216 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74217 (*next_ptr).p_next = self.inner.p_next as *mut _;
74218 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74219 core::ffi::c_void,
74220 >(next_ptr);
74221 }
74222 self
74223 }
74224}
74225impl<'a> core::ops::Deref for DeviceQueueShaderCoreControlCreateInfoARMBuilder<'a> {
74226 type Target = DeviceQueueShaderCoreControlCreateInfoARM;
74227 #[inline]
74228 fn deref(&self) -> &Self::Target {
74229 &self.inner
74230 }
74231}
74232impl<'a> core::ops::DerefMut for DeviceQueueShaderCoreControlCreateInfoARMBuilder<'a> {
74233 #[inline]
74234 fn deref_mut(&mut self) -> &mut Self::Target {
74235 &mut self.inner
74236 }
74237}
74238pub struct PhysicalDeviceSchedulingControlsFeaturesARMBuilder<'a> {
74240 inner: PhysicalDeviceSchedulingControlsFeaturesARM,
74241 _marker: core::marker::PhantomData<&'a ()>,
74242}
74243impl PhysicalDeviceSchedulingControlsFeaturesARM {
74244 #[inline]
74246 pub fn builder<'a>() -> PhysicalDeviceSchedulingControlsFeaturesARMBuilder<'a> {
74247 PhysicalDeviceSchedulingControlsFeaturesARMBuilder {
74248 inner: PhysicalDeviceSchedulingControlsFeaturesARM {
74249 s_type: StructureType::from_raw(1000417001i32),
74250 ..Default::default()
74251 },
74252 _marker: core::marker::PhantomData,
74253 }
74254 }
74255}
74256impl<'a> PhysicalDeviceSchedulingControlsFeaturesARMBuilder<'a> {
74257 #[inline]
74258 pub fn scheduling_controls(mut self, value: bool) -> Self {
74259 self.inner.scheduling_controls = value as u32;
74260 self
74261 }
74262 #[inline]
74264 pub fn push_next<T: ExtendsPhysicalDeviceSchedulingControlsFeaturesARM>(
74265 mut self,
74266 next: &'a mut T,
74267 ) -> Self {
74268 unsafe {
74269 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74270 (*next_ptr).p_next = self.inner.p_next as *mut _;
74271 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74272 core::ffi::c_void,
74273 >(next_ptr);
74274 }
74275 self
74276 }
74277}
74278impl<'a> core::ops::Deref for PhysicalDeviceSchedulingControlsFeaturesARMBuilder<'a> {
74279 type Target = PhysicalDeviceSchedulingControlsFeaturesARM;
74280 #[inline]
74281 fn deref(&self) -> &Self::Target {
74282 &self.inner
74283 }
74284}
74285impl<'a> core::ops::DerefMut for PhysicalDeviceSchedulingControlsFeaturesARMBuilder<'a> {
74286 #[inline]
74287 fn deref_mut(&mut self) -> &mut Self::Target {
74288 &mut self.inner
74289 }
74290}
74291pub struct PhysicalDeviceSchedulingControlsPropertiesARMBuilder<'a> {
74293 inner: PhysicalDeviceSchedulingControlsPropertiesARM,
74294 _marker: core::marker::PhantomData<&'a ()>,
74295}
74296impl PhysicalDeviceSchedulingControlsPropertiesARM {
74297 #[inline]
74299 pub fn builder<'a>() -> PhysicalDeviceSchedulingControlsPropertiesARMBuilder<'a> {
74300 PhysicalDeviceSchedulingControlsPropertiesARMBuilder {
74301 inner: PhysicalDeviceSchedulingControlsPropertiesARM {
74302 s_type: StructureType::from_raw(1000417002i32),
74303 ..Default::default()
74304 },
74305 _marker: core::marker::PhantomData,
74306 }
74307 }
74308}
74309impl<'a> PhysicalDeviceSchedulingControlsPropertiesARMBuilder<'a> {
74310 #[inline]
74311 pub fn scheduling_controls_flags(
74312 mut self,
74313 value: PhysicalDeviceSchedulingControlsFlagsARM,
74314 ) -> Self {
74315 self.inner.scheduling_controls_flags = value;
74316 self
74317 }
74318}
74319impl<'a> core::ops::Deref for PhysicalDeviceSchedulingControlsPropertiesARMBuilder<'a> {
74320 type Target = PhysicalDeviceSchedulingControlsPropertiesARM;
74321 #[inline]
74322 fn deref(&self) -> &Self::Target {
74323 &self.inner
74324 }
74325}
74326impl<'a> core::ops::DerefMut
74327for PhysicalDeviceSchedulingControlsPropertiesARMBuilder<'a> {
74328 #[inline]
74329 fn deref_mut(&mut self) -> &mut Self::Target {
74330 &mut self.inner
74331 }
74332}
74333pub struct PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder<'a> {
74335 inner: PhysicalDeviceRelaxedLineRasterizationFeaturesIMG,
74336 _marker: core::marker::PhantomData<&'a ()>,
74337}
74338impl PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
74339 #[inline]
74341 pub fn builder<'a>() -> PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder<
74342 'a,
74343 > {
74344 PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder {
74345 inner: PhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
74346 s_type: StructureType::from_raw(1000110000i32),
74347 ..Default::default()
74348 },
74349 _marker: core::marker::PhantomData,
74350 }
74351 }
74352}
74353impl<'a> PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder<'a> {
74354 #[inline]
74355 pub fn relaxed_line_rasterization(mut self, value: bool) -> Self {
74356 self.inner.relaxed_line_rasterization = value as u32;
74357 self
74358 }
74359 #[inline]
74361 pub fn push_next<T: ExtendsPhysicalDeviceRelaxedLineRasterizationFeaturesIMG>(
74362 mut self,
74363 next: &'a mut T,
74364 ) -> Self {
74365 unsafe {
74366 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74367 (*next_ptr).p_next = self.inner.p_next as *mut _;
74368 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74369 core::ffi::c_void,
74370 >(next_ptr);
74371 }
74372 self
74373 }
74374}
74375impl<'a> core::ops::Deref
74376for PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder<'a> {
74377 type Target = PhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
74378 #[inline]
74379 fn deref(&self) -> &Self::Target {
74380 &self.inner
74381 }
74382}
74383impl<'a> core::ops::DerefMut
74384for PhysicalDeviceRelaxedLineRasterizationFeaturesIMGBuilder<'a> {
74385 #[inline]
74386 fn deref_mut(&mut self) -> &mut Self::Target {
74387 &mut self.inner
74388 }
74389}
74390pub struct PhysicalDeviceRenderPassStripedFeaturesARMBuilder<'a> {
74392 inner: PhysicalDeviceRenderPassStripedFeaturesARM,
74393 _marker: core::marker::PhantomData<&'a ()>,
74394}
74395impl PhysicalDeviceRenderPassStripedFeaturesARM {
74396 #[inline]
74398 pub fn builder<'a>() -> PhysicalDeviceRenderPassStripedFeaturesARMBuilder<'a> {
74399 PhysicalDeviceRenderPassStripedFeaturesARMBuilder {
74400 inner: PhysicalDeviceRenderPassStripedFeaturesARM {
74401 s_type: StructureType::from_raw(1000424000i32),
74402 ..Default::default()
74403 },
74404 _marker: core::marker::PhantomData,
74405 }
74406 }
74407}
74408impl<'a> PhysicalDeviceRenderPassStripedFeaturesARMBuilder<'a> {
74409 #[inline]
74410 pub fn render_pass_striped(mut self, value: bool) -> Self {
74411 self.inner.render_pass_striped = value as u32;
74412 self
74413 }
74414 #[inline]
74416 pub fn push_next<T: ExtendsPhysicalDeviceRenderPassStripedFeaturesARM>(
74417 mut self,
74418 next: &'a mut T,
74419 ) -> Self {
74420 unsafe {
74421 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74422 (*next_ptr).p_next = self.inner.p_next as *mut _;
74423 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74424 core::ffi::c_void,
74425 >(next_ptr);
74426 }
74427 self
74428 }
74429}
74430impl<'a> core::ops::Deref for PhysicalDeviceRenderPassStripedFeaturesARMBuilder<'a> {
74431 type Target = PhysicalDeviceRenderPassStripedFeaturesARM;
74432 #[inline]
74433 fn deref(&self) -> &Self::Target {
74434 &self.inner
74435 }
74436}
74437impl<'a> core::ops::DerefMut for PhysicalDeviceRenderPassStripedFeaturesARMBuilder<'a> {
74438 #[inline]
74439 fn deref_mut(&mut self) -> &mut Self::Target {
74440 &mut self.inner
74441 }
74442}
74443pub struct PhysicalDeviceRenderPassStripedPropertiesARMBuilder<'a> {
74445 inner: PhysicalDeviceRenderPassStripedPropertiesARM,
74446 _marker: core::marker::PhantomData<&'a ()>,
74447}
74448impl PhysicalDeviceRenderPassStripedPropertiesARM {
74449 #[inline]
74451 pub fn builder<'a>() -> PhysicalDeviceRenderPassStripedPropertiesARMBuilder<'a> {
74452 PhysicalDeviceRenderPassStripedPropertiesARMBuilder {
74453 inner: PhysicalDeviceRenderPassStripedPropertiesARM {
74454 s_type: StructureType::from_raw(1000424001i32),
74455 ..Default::default()
74456 },
74457 _marker: core::marker::PhantomData,
74458 }
74459 }
74460}
74461impl<'a> PhysicalDeviceRenderPassStripedPropertiesARMBuilder<'a> {
74462 #[inline]
74463 pub fn render_pass_stripe_granularity(mut self, value: Extent2D) -> Self {
74464 self.inner.render_pass_stripe_granularity = value;
74465 self
74466 }
74467 #[inline]
74468 pub fn max_render_pass_stripes(mut self, value: u32) -> Self {
74469 self.inner.max_render_pass_stripes = value;
74470 self
74471 }
74472}
74473impl<'a> core::ops::Deref for PhysicalDeviceRenderPassStripedPropertiesARMBuilder<'a> {
74474 type Target = PhysicalDeviceRenderPassStripedPropertiesARM;
74475 #[inline]
74476 fn deref(&self) -> &Self::Target {
74477 &self.inner
74478 }
74479}
74480impl<'a> core::ops::DerefMut
74481for PhysicalDeviceRenderPassStripedPropertiesARMBuilder<'a> {
74482 #[inline]
74483 fn deref_mut(&mut self) -> &mut Self::Target {
74484 &mut self.inner
74485 }
74486}
74487pub struct RenderPassStripeInfoARMBuilder<'a> {
74489 inner: RenderPassStripeInfoARM,
74490 _marker: core::marker::PhantomData<&'a ()>,
74491}
74492impl RenderPassStripeInfoARM {
74493 #[inline]
74495 pub fn builder<'a>() -> RenderPassStripeInfoARMBuilder<'a> {
74496 RenderPassStripeInfoARMBuilder {
74497 inner: RenderPassStripeInfoARM {
74498 s_type: StructureType::from_raw(1000424003i32),
74499 ..Default::default()
74500 },
74501 _marker: core::marker::PhantomData,
74502 }
74503 }
74504}
74505impl<'a> RenderPassStripeInfoARMBuilder<'a> {
74506 #[inline]
74507 pub fn stripe_area(mut self, value: Rect2D) -> Self {
74508 self.inner.stripe_area = value;
74509 self
74510 }
74511 #[inline]
74513 pub fn push_next<T: ExtendsRenderPassStripeInfoARM>(
74514 mut self,
74515 next: &'a mut T,
74516 ) -> Self {
74517 unsafe {
74518 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74519 (*next_ptr).p_next = self.inner.p_next as *mut _;
74520 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74521 core::ffi::c_void,
74522 >(next_ptr) as *const _;
74523 }
74524 self
74525 }
74526}
74527impl<'a> core::ops::Deref for RenderPassStripeInfoARMBuilder<'a> {
74528 type Target = RenderPassStripeInfoARM;
74529 #[inline]
74530 fn deref(&self) -> &Self::Target {
74531 &self.inner
74532 }
74533}
74534impl<'a> core::ops::DerefMut for RenderPassStripeInfoARMBuilder<'a> {
74535 #[inline]
74536 fn deref_mut(&mut self) -> &mut Self::Target {
74537 &mut self.inner
74538 }
74539}
74540pub struct RenderPassStripeBeginInfoARMBuilder<'a> {
74542 inner: RenderPassStripeBeginInfoARM,
74543 _marker: core::marker::PhantomData<&'a ()>,
74544}
74545impl RenderPassStripeBeginInfoARM {
74546 #[inline]
74548 pub fn builder<'a>() -> RenderPassStripeBeginInfoARMBuilder<'a> {
74549 RenderPassStripeBeginInfoARMBuilder {
74550 inner: RenderPassStripeBeginInfoARM {
74551 s_type: StructureType::from_raw(1000424002i32),
74552 ..Default::default()
74553 },
74554 _marker: core::marker::PhantomData,
74555 }
74556 }
74557}
74558impl<'a> RenderPassStripeBeginInfoARMBuilder<'a> {
74559 #[inline]
74560 pub fn stripe_infos(mut self, slice: &'a [RenderPassStripeInfoARM]) -> Self {
74561 self.inner.stripe_info_count = slice.len() as u32;
74562 self.inner.p_stripe_infos = slice.as_ptr();
74563 self
74564 }
74565 #[inline]
74567 pub fn push_next<T: ExtendsRenderPassStripeBeginInfoARM>(
74568 mut self,
74569 next: &'a mut T,
74570 ) -> Self {
74571 unsafe {
74572 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74573 (*next_ptr).p_next = self.inner.p_next as *mut _;
74574 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74575 core::ffi::c_void,
74576 >(next_ptr) as *const _;
74577 }
74578 self
74579 }
74580}
74581impl<'a> core::ops::Deref for RenderPassStripeBeginInfoARMBuilder<'a> {
74582 type Target = RenderPassStripeBeginInfoARM;
74583 #[inline]
74584 fn deref(&self) -> &Self::Target {
74585 &self.inner
74586 }
74587}
74588impl<'a> core::ops::DerefMut for RenderPassStripeBeginInfoARMBuilder<'a> {
74589 #[inline]
74590 fn deref_mut(&mut self) -> &mut Self::Target {
74591 &mut self.inner
74592 }
74593}
74594pub struct RenderPassStripeSubmitInfoARMBuilder<'a> {
74596 inner: RenderPassStripeSubmitInfoARM,
74597 _marker: core::marker::PhantomData<&'a ()>,
74598}
74599impl RenderPassStripeSubmitInfoARM {
74600 #[inline]
74602 pub fn builder<'a>() -> RenderPassStripeSubmitInfoARMBuilder<'a> {
74603 RenderPassStripeSubmitInfoARMBuilder {
74604 inner: RenderPassStripeSubmitInfoARM {
74605 s_type: StructureType::from_raw(1000424004i32),
74606 ..Default::default()
74607 },
74608 _marker: core::marker::PhantomData,
74609 }
74610 }
74611}
74612impl<'a> RenderPassStripeSubmitInfoARMBuilder<'a> {
74613 #[inline]
74614 pub fn stripe_semaphore_infos(mut self, slice: &'a [SemaphoreSubmitInfo]) -> Self {
74615 self.inner.stripe_semaphore_info_count = slice.len() as u32;
74616 self.inner.p_stripe_semaphore_infos = slice.as_ptr();
74617 self
74618 }
74619 #[inline]
74621 pub fn push_next<T: ExtendsRenderPassStripeSubmitInfoARM>(
74622 mut self,
74623 next: &'a mut T,
74624 ) -> Self {
74625 unsafe {
74626 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74627 (*next_ptr).p_next = self.inner.p_next as *mut _;
74628 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74629 core::ffi::c_void,
74630 >(next_ptr) as *const _;
74631 }
74632 self
74633 }
74634}
74635impl<'a> core::ops::Deref for RenderPassStripeSubmitInfoARMBuilder<'a> {
74636 type Target = RenderPassStripeSubmitInfoARM;
74637 #[inline]
74638 fn deref(&self) -> &Self::Target {
74639 &self.inner
74640 }
74641}
74642impl<'a> core::ops::DerefMut for RenderPassStripeSubmitInfoARMBuilder<'a> {
74643 #[inline]
74644 fn deref_mut(&mut self) -> &mut Self::Target {
74645 &mut self.inner
74646 }
74647}
74648pub struct PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder<'a> {
74650 inner: PhysicalDevicePipelineOpacityMicromapFeaturesARM,
74651 _marker: core::marker::PhantomData<&'a ()>,
74652}
74653impl PhysicalDevicePipelineOpacityMicromapFeaturesARM {
74654 #[inline]
74656 pub fn builder<'a>() -> PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder<'a> {
74657 PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder {
74658 inner: PhysicalDevicePipelineOpacityMicromapFeaturesARM {
74659 s_type: StructureType::from_raw(1000596000i32),
74660 ..Default::default()
74661 },
74662 _marker: core::marker::PhantomData,
74663 }
74664 }
74665}
74666impl<'a> PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder<'a> {
74667 #[inline]
74668 pub fn pipeline_opacity_micromap(mut self, value: bool) -> Self {
74669 self.inner.pipeline_opacity_micromap = value as u32;
74670 self
74671 }
74672 #[inline]
74674 pub fn push_next<T: ExtendsPhysicalDevicePipelineOpacityMicromapFeaturesARM>(
74675 mut self,
74676 next: &'a mut T,
74677 ) -> Self {
74678 unsafe {
74679 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74680 (*next_ptr).p_next = self.inner.p_next as *mut _;
74681 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74682 core::ffi::c_void,
74683 >(next_ptr);
74684 }
74685 self
74686 }
74687}
74688impl<'a> core::ops::Deref
74689for PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder<'a> {
74690 type Target = PhysicalDevicePipelineOpacityMicromapFeaturesARM;
74691 #[inline]
74692 fn deref(&self) -> &Self::Target {
74693 &self.inner
74694 }
74695}
74696impl<'a> core::ops::DerefMut
74697for PhysicalDevicePipelineOpacityMicromapFeaturesARMBuilder<'a> {
74698 #[inline]
74699 fn deref_mut(&mut self) -> &mut Self::Target {
74700 &mut self.inner
74701 }
74702}
74703pub struct PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder<'a> {
74705 inner: PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR,
74706 _marker: core::marker::PhantomData<&'a ()>,
74707}
74708impl PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
74709 #[inline]
74711 pub fn builder<'a>() -> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder<
74712 'a,
74713 > {
74714 PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder {
74715 inner: PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
74716 s_type: StructureType::from_raw(1000434000i32),
74717 ..Default::default()
74718 },
74719 _marker: core::marker::PhantomData,
74720 }
74721 }
74722}
74723impl<'a> PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder<'a> {
74724 #[inline]
74725 pub fn shader_maximal_reconvergence(mut self, value: bool) -> Self {
74726 self.inner.shader_maximal_reconvergence = value as u32;
74727 self
74728 }
74729 #[inline]
74731 pub fn push_next<T: ExtendsPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR>(
74732 mut self,
74733 next: &'a mut T,
74734 ) -> Self {
74735 unsafe {
74736 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74737 (*next_ptr).p_next = self.inner.p_next as *mut _;
74738 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74739 core::ffi::c_void,
74740 >(next_ptr);
74741 }
74742 self
74743 }
74744}
74745impl<'a> core::ops::Deref
74746for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder<'a> {
74747 type Target = PhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
74748 #[inline]
74749 fn deref(&self) -> &Self::Target {
74750 &self.inner
74751 }
74752}
74753impl<'a> core::ops::DerefMut
74754for PhysicalDeviceShaderMaximalReconvergenceFeaturesKHRBuilder<'a> {
74755 #[inline]
74756 fn deref_mut(&mut self) -> &mut Self::Target {
74757 &mut self.inner
74758 }
74759}
74760pub struct PhysicalDeviceShaderSubgroupRotateFeaturesBuilder<'a> {
74762 inner: PhysicalDeviceShaderSubgroupRotateFeatures,
74763 _marker: core::marker::PhantomData<&'a ()>,
74764}
74765impl PhysicalDeviceShaderSubgroupRotateFeatures {
74766 #[inline]
74768 pub fn builder<'a>() -> PhysicalDeviceShaderSubgroupRotateFeaturesBuilder<'a> {
74769 PhysicalDeviceShaderSubgroupRotateFeaturesBuilder {
74770 inner: PhysicalDeviceShaderSubgroupRotateFeatures {
74771 s_type: StructureType::from_raw(1000416000i32),
74772 ..Default::default()
74773 },
74774 _marker: core::marker::PhantomData,
74775 }
74776 }
74777}
74778impl<'a> PhysicalDeviceShaderSubgroupRotateFeaturesBuilder<'a> {
74779 #[inline]
74780 pub fn shader_subgroup_rotate(mut self, value: bool) -> Self {
74781 self.inner.shader_subgroup_rotate = value as u32;
74782 self
74783 }
74784 #[inline]
74785 pub fn shader_subgroup_rotate_clustered(mut self, value: bool) -> Self {
74786 self.inner.shader_subgroup_rotate_clustered = value as u32;
74787 self
74788 }
74789 #[inline]
74791 pub fn push_next<T: ExtendsPhysicalDeviceShaderSubgroupRotateFeatures>(
74792 mut self,
74793 next: &'a mut T,
74794 ) -> Self {
74795 unsafe {
74796 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74797 (*next_ptr).p_next = self.inner.p_next as *mut _;
74798 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74799 core::ffi::c_void,
74800 >(next_ptr);
74801 }
74802 self
74803 }
74804}
74805impl<'a> core::ops::Deref for PhysicalDeviceShaderSubgroupRotateFeaturesBuilder<'a> {
74806 type Target = PhysicalDeviceShaderSubgroupRotateFeatures;
74807 #[inline]
74808 fn deref(&self) -> &Self::Target {
74809 &self.inner
74810 }
74811}
74812impl<'a> core::ops::DerefMut for PhysicalDeviceShaderSubgroupRotateFeaturesBuilder<'a> {
74813 #[inline]
74814 fn deref_mut(&mut self) -> &mut Self::Target {
74815 &mut self.inner
74816 }
74817}
74818pub struct PhysicalDeviceShaderExpectAssumeFeaturesBuilder<'a> {
74820 inner: PhysicalDeviceShaderExpectAssumeFeatures,
74821 _marker: core::marker::PhantomData<&'a ()>,
74822}
74823impl PhysicalDeviceShaderExpectAssumeFeatures {
74824 #[inline]
74826 pub fn builder<'a>() -> PhysicalDeviceShaderExpectAssumeFeaturesBuilder<'a> {
74827 PhysicalDeviceShaderExpectAssumeFeaturesBuilder {
74828 inner: PhysicalDeviceShaderExpectAssumeFeatures {
74829 s_type: StructureType::from_raw(1000544000i32),
74830 ..Default::default()
74831 },
74832 _marker: core::marker::PhantomData,
74833 }
74834 }
74835}
74836impl<'a> PhysicalDeviceShaderExpectAssumeFeaturesBuilder<'a> {
74837 #[inline]
74838 pub fn shader_expect_assume(mut self, value: bool) -> Self {
74839 self.inner.shader_expect_assume = value as u32;
74840 self
74841 }
74842 #[inline]
74844 pub fn push_next<T: ExtendsPhysicalDeviceShaderExpectAssumeFeatures>(
74845 mut self,
74846 next: &'a mut T,
74847 ) -> Self {
74848 unsafe {
74849 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74850 (*next_ptr).p_next = self.inner.p_next as *mut _;
74851 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74852 core::ffi::c_void,
74853 >(next_ptr);
74854 }
74855 self
74856 }
74857}
74858impl<'a> core::ops::Deref for PhysicalDeviceShaderExpectAssumeFeaturesBuilder<'a> {
74859 type Target = PhysicalDeviceShaderExpectAssumeFeatures;
74860 #[inline]
74861 fn deref(&self) -> &Self::Target {
74862 &self.inner
74863 }
74864}
74865impl<'a> core::ops::DerefMut for PhysicalDeviceShaderExpectAssumeFeaturesBuilder<'a> {
74866 #[inline]
74867 fn deref_mut(&mut self) -> &mut Self::Target {
74868 &mut self.inner
74869 }
74870}
74871pub struct PhysicalDeviceShaderFloatControls2FeaturesBuilder<'a> {
74873 inner: PhysicalDeviceShaderFloatControls2Features,
74874 _marker: core::marker::PhantomData<&'a ()>,
74875}
74876impl PhysicalDeviceShaderFloatControls2Features {
74877 #[inline]
74879 pub fn builder<'a>() -> PhysicalDeviceShaderFloatControls2FeaturesBuilder<'a> {
74880 PhysicalDeviceShaderFloatControls2FeaturesBuilder {
74881 inner: PhysicalDeviceShaderFloatControls2Features {
74882 s_type: StructureType::from_raw(1000528000i32),
74883 ..Default::default()
74884 },
74885 _marker: core::marker::PhantomData,
74886 }
74887 }
74888}
74889impl<'a> PhysicalDeviceShaderFloatControls2FeaturesBuilder<'a> {
74890 #[inline]
74891 pub fn shader_float_controls2(mut self, value: bool) -> Self {
74892 self.inner.shader_float_controls2 = value as u32;
74893 self
74894 }
74895 #[inline]
74897 pub fn push_next<T: ExtendsPhysicalDeviceShaderFloatControls2Features>(
74898 mut self,
74899 next: &'a mut T,
74900 ) -> Self {
74901 unsafe {
74902 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74903 (*next_ptr).p_next = self.inner.p_next as *mut _;
74904 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74905 core::ffi::c_void,
74906 >(next_ptr);
74907 }
74908 self
74909 }
74910}
74911impl<'a> core::ops::Deref for PhysicalDeviceShaderFloatControls2FeaturesBuilder<'a> {
74912 type Target = PhysicalDeviceShaderFloatControls2Features;
74913 #[inline]
74914 fn deref(&self) -> &Self::Target {
74915 &self.inner
74916 }
74917}
74918impl<'a> core::ops::DerefMut for PhysicalDeviceShaderFloatControls2FeaturesBuilder<'a> {
74919 #[inline]
74920 fn deref_mut(&mut self) -> &mut Self::Target {
74921 &mut self.inner
74922 }
74923}
74924pub struct PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder<'a> {
74926 inner: PhysicalDeviceDynamicRenderingLocalReadFeatures,
74927 _marker: core::marker::PhantomData<&'a ()>,
74928}
74929impl PhysicalDeviceDynamicRenderingLocalReadFeatures {
74930 #[inline]
74932 pub fn builder<'a>() -> PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder<'a> {
74933 PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder {
74934 inner: PhysicalDeviceDynamicRenderingLocalReadFeatures {
74935 s_type: StructureType::from_raw(1000232000i32),
74936 ..Default::default()
74937 },
74938 _marker: core::marker::PhantomData,
74939 }
74940 }
74941}
74942impl<'a> PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder<'a> {
74943 #[inline]
74944 pub fn dynamic_rendering_local_read(mut self, value: bool) -> Self {
74945 self.inner.dynamic_rendering_local_read = value as u32;
74946 self
74947 }
74948 #[inline]
74950 pub fn push_next<T: ExtendsPhysicalDeviceDynamicRenderingLocalReadFeatures>(
74951 mut self,
74952 next: &'a mut T,
74953 ) -> Self {
74954 unsafe {
74955 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
74956 (*next_ptr).p_next = self.inner.p_next as *mut _;
74957 self.inner.p_next = <*mut BaseOutStructure>::cast::<
74958 core::ffi::c_void,
74959 >(next_ptr);
74960 }
74961 self
74962 }
74963}
74964impl<'a> core::ops::Deref
74965for PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder<'a> {
74966 type Target = PhysicalDeviceDynamicRenderingLocalReadFeatures;
74967 #[inline]
74968 fn deref(&self) -> &Self::Target {
74969 &self.inner
74970 }
74971}
74972impl<'a> core::ops::DerefMut
74973for PhysicalDeviceDynamicRenderingLocalReadFeaturesBuilder<'a> {
74974 #[inline]
74975 fn deref_mut(&mut self) -> &mut Self::Target {
74976 &mut self.inner
74977 }
74978}
74979pub struct RenderingAttachmentLocationInfoBuilder<'a> {
74981 inner: RenderingAttachmentLocationInfo,
74982 _marker: core::marker::PhantomData<&'a ()>,
74983}
74984impl RenderingAttachmentLocationInfo {
74985 #[inline]
74987 pub fn builder<'a>() -> RenderingAttachmentLocationInfoBuilder<'a> {
74988 RenderingAttachmentLocationInfoBuilder {
74989 inner: RenderingAttachmentLocationInfo {
74990 s_type: StructureType::from_raw(1000232001i32),
74991 ..Default::default()
74992 },
74993 _marker: core::marker::PhantomData,
74994 }
74995 }
74996}
74997impl<'a> RenderingAttachmentLocationInfoBuilder<'a> {
74998 #[inline]
74999 pub fn color_attachment_locations(mut self, slice: &'a [u32]) -> Self {
75000 self.inner.color_attachment_count = slice.len() as u32;
75001 self.inner.p_color_attachment_locations = slice.as_ptr();
75002 self
75003 }
75004 #[inline]
75006 pub fn push_next<T: ExtendsRenderingAttachmentLocationInfo>(
75007 mut self,
75008 next: &'a mut T,
75009 ) -> Self {
75010 unsafe {
75011 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75012 (*next_ptr).p_next = self.inner.p_next as *mut _;
75013 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75014 core::ffi::c_void,
75015 >(next_ptr) as *const _;
75016 }
75017 self
75018 }
75019}
75020impl<'a> core::ops::Deref for RenderingAttachmentLocationInfoBuilder<'a> {
75021 type Target = RenderingAttachmentLocationInfo;
75022 #[inline]
75023 fn deref(&self) -> &Self::Target {
75024 &self.inner
75025 }
75026}
75027impl<'a> core::ops::DerefMut for RenderingAttachmentLocationInfoBuilder<'a> {
75028 #[inline]
75029 fn deref_mut(&mut self) -> &mut Self::Target {
75030 &mut self.inner
75031 }
75032}
75033pub struct RenderingInputAttachmentIndexInfoBuilder<'a> {
75035 inner: RenderingInputAttachmentIndexInfo,
75036 _marker: core::marker::PhantomData<&'a ()>,
75037}
75038impl RenderingInputAttachmentIndexInfo {
75039 #[inline]
75041 pub fn builder<'a>() -> RenderingInputAttachmentIndexInfoBuilder<'a> {
75042 RenderingInputAttachmentIndexInfoBuilder {
75043 inner: RenderingInputAttachmentIndexInfo {
75044 s_type: StructureType::from_raw(1000232002i32),
75045 ..Default::default()
75046 },
75047 _marker: core::marker::PhantomData,
75048 }
75049 }
75050}
75051impl<'a> RenderingInputAttachmentIndexInfoBuilder<'a> {
75052 #[inline]
75053 pub fn color_attachment_count(mut self, value: u32) -> Self {
75054 self.inner.color_attachment_count = value;
75055 self
75056 }
75057 #[inline]
75058 pub fn color_attachment_input_indices(mut self, slice: &'a [u32]) -> Self {
75059 self.inner.color_attachment_count = slice.len() as u32;
75060 self.inner.p_color_attachment_input_indices = slice.as_ptr();
75061 self
75062 }
75063 #[inline]
75064 pub fn depth_input_attachment_index(mut self, value: *const u32) -> Self {
75065 self.inner.p_depth_input_attachment_index = value;
75066 self
75067 }
75068 #[inline]
75069 pub fn stencil_input_attachment_index(mut self, value: *const u32) -> Self {
75070 self.inner.p_stencil_input_attachment_index = value;
75071 self
75072 }
75073 #[inline]
75075 pub fn push_next<T: ExtendsRenderingInputAttachmentIndexInfo>(
75076 mut self,
75077 next: &'a mut T,
75078 ) -> Self {
75079 unsafe {
75080 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75081 (*next_ptr).p_next = self.inner.p_next as *mut _;
75082 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75083 core::ffi::c_void,
75084 >(next_ptr) as *const _;
75085 }
75086 self
75087 }
75088}
75089impl<'a> core::ops::Deref for RenderingInputAttachmentIndexInfoBuilder<'a> {
75090 type Target = RenderingInputAttachmentIndexInfo;
75091 #[inline]
75092 fn deref(&self) -> &Self::Target {
75093 &self.inner
75094 }
75095}
75096impl<'a> core::ops::DerefMut for RenderingInputAttachmentIndexInfoBuilder<'a> {
75097 #[inline]
75098 fn deref_mut(&mut self) -> &mut Self::Target {
75099 &mut self.inner
75100 }
75101}
75102pub struct PhysicalDeviceShaderQuadControlFeaturesKHRBuilder<'a> {
75104 inner: PhysicalDeviceShaderQuadControlFeaturesKHR,
75105 _marker: core::marker::PhantomData<&'a ()>,
75106}
75107impl PhysicalDeviceShaderQuadControlFeaturesKHR {
75108 #[inline]
75110 pub fn builder<'a>() -> PhysicalDeviceShaderQuadControlFeaturesKHRBuilder<'a> {
75111 PhysicalDeviceShaderQuadControlFeaturesKHRBuilder {
75112 inner: PhysicalDeviceShaderQuadControlFeaturesKHR {
75113 s_type: StructureType::from_raw(1000235000i32),
75114 ..Default::default()
75115 },
75116 _marker: core::marker::PhantomData,
75117 }
75118 }
75119}
75120impl<'a> PhysicalDeviceShaderQuadControlFeaturesKHRBuilder<'a> {
75121 #[inline]
75122 pub fn shader_quad_control(mut self, value: bool) -> Self {
75123 self.inner.shader_quad_control = value as u32;
75124 self
75125 }
75126 #[inline]
75128 pub fn push_next<T: ExtendsPhysicalDeviceShaderQuadControlFeaturesKHR>(
75129 mut self,
75130 next: &'a mut T,
75131 ) -> Self {
75132 unsafe {
75133 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75134 (*next_ptr).p_next = self.inner.p_next as *mut _;
75135 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75136 core::ffi::c_void,
75137 >(next_ptr);
75138 }
75139 self
75140 }
75141}
75142impl<'a> core::ops::Deref for PhysicalDeviceShaderQuadControlFeaturesKHRBuilder<'a> {
75143 type Target = PhysicalDeviceShaderQuadControlFeaturesKHR;
75144 #[inline]
75145 fn deref(&self) -> &Self::Target {
75146 &self.inner
75147 }
75148}
75149impl<'a> core::ops::DerefMut for PhysicalDeviceShaderQuadControlFeaturesKHRBuilder<'a> {
75150 #[inline]
75151 fn deref_mut(&mut self) -> &mut Self::Target {
75152 &mut self.inner
75153 }
75154}
75155pub struct PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder<'a> {
75157 inner: PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV,
75158 _marker: core::marker::PhantomData<&'a ()>,
75159}
75160impl PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
75161 #[inline]
75163 pub fn builder<'a>() -> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder<
75164 'a,
75165 > {
75166 PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder {
75167 inner: PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
75168 s_type: StructureType::from_raw(1000563000i32),
75169 ..Default::default()
75170 },
75171 _marker: core::marker::PhantomData,
75172 }
75173 }
75174}
75175impl<'a> PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder<'a> {
75176 #[inline]
75177 pub fn shader_float16_vector_atomics(mut self, value: bool) -> Self {
75178 self.inner.shader_float16_vector_atomics = value as u32;
75179 self
75180 }
75181 #[inline]
75183 pub fn push_next<T: ExtendsPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV>(
75184 mut self,
75185 next: &'a mut T,
75186 ) -> Self {
75187 unsafe {
75188 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75189 (*next_ptr).p_next = self.inner.p_next as *mut _;
75190 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75191 core::ffi::c_void,
75192 >(next_ptr);
75193 }
75194 self
75195 }
75196}
75197impl<'a> core::ops::Deref
75198for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder<'a> {
75199 type Target = PhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
75200 #[inline]
75201 fn deref(&self) -> &Self::Target {
75202 &self.inner
75203 }
75204}
75205impl<'a> core::ops::DerefMut
75206for PhysicalDeviceShaderAtomicFloat16VectorFeaturesNVBuilder<'a> {
75207 #[inline]
75208 fn deref_mut(&mut self) -> &mut Self::Target {
75209 &mut self.inner
75210 }
75211}
75212pub struct PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder<'a> {
75214 inner: PhysicalDeviceMapMemoryPlacedFeaturesEXT,
75215 _marker: core::marker::PhantomData<&'a ()>,
75216}
75217impl PhysicalDeviceMapMemoryPlacedFeaturesEXT {
75218 #[inline]
75220 pub fn builder<'a>() -> PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder<'a> {
75221 PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder {
75222 inner: PhysicalDeviceMapMemoryPlacedFeaturesEXT {
75223 s_type: StructureType::from_raw(1000272000i32),
75224 ..Default::default()
75225 },
75226 _marker: core::marker::PhantomData,
75227 }
75228 }
75229}
75230impl<'a> PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder<'a> {
75231 #[inline]
75232 pub fn memory_map_placed(mut self, value: bool) -> Self {
75233 self.inner.memory_map_placed = value as u32;
75234 self
75235 }
75236 #[inline]
75237 pub fn memory_map_range_placed(mut self, value: bool) -> Self {
75238 self.inner.memory_map_range_placed = value as u32;
75239 self
75240 }
75241 #[inline]
75242 pub fn memory_unmap_reserve(mut self, value: bool) -> Self {
75243 self.inner.memory_unmap_reserve = value as u32;
75244 self
75245 }
75246 #[inline]
75248 pub fn push_next<T: ExtendsPhysicalDeviceMapMemoryPlacedFeaturesEXT>(
75249 mut self,
75250 next: &'a mut T,
75251 ) -> Self {
75252 unsafe {
75253 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75254 (*next_ptr).p_next = self.inner.p_next as *mut _;
75255 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75256 core::ffi::c_void,
75257 >(next_ptr);
75258 }
75259 self
75260 }
75261}
75262impl<'a> core::ops::Deref for PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder<'a> {
75263 type Target = PhysicalDeviceMapMemoryPlacedFeaturesEXT;
75264 #[inline]
75265 fn deref(&self) -> &Self::Target {
75266 &self.inner
75267 }
75268}
75269impl<'a> core::ops::DerefMut for PhysicalDeviceMapMemoryPlacedFeaturesEXTBuilder<'a> {
75270 #[inline]
75271 fn deref_mut(&mut self) -> &mut Self::Target {
75272 &mut self.inner
75273 }
75274}
75275pub struct PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder<'a> {
75277 inner: PhysicalDeviceMapMemoryPlacedPropertiesEXT,
75278 _marker: core::marker::PhantomData<&'a ()>,
75279}
75280impl PhysicalDeviceMapMemoryPlacedPropertiesEXT {
75281 #[inline]
75283 pub fn builder<'a>() -> PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder<'a> {
75284 PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder {
75285 inner: PhysicalDeviceMapMemoryPlacedPropertiesEXT {
75286 s_type: StructureType::from_raw(1000272001i32),
75287 ..Default::default()
75288 },
75289 _marker: core::marker::PhantomData,
75290 }
75291 }
75292}
75293impl<'a> PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder<'a> {
75294 #[inline]
75295 pub fn min_placed_memory_map_alignment(mut self, value: u64) -> Self {
75296 self.inner.min_placed_memory_map_alignment = value;
75297 self
75298 }
75299}
75300impl<'a> core::ops::Deref for PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder<'a> {
75301 type Target = PhysicalDeviceMapMemoryPlacedPropertiesEXT;
75302 #[inline]
75303 fn deref(&self) -> &Self::Target {
75304 &self.inner
75305 }
75306}
75307impl<'a> core::ops::DerefMut for PhysicalDeviceMapMemoryPlacedPropertiesEXTBuilder<'a> {
75308 #[inline]
75309 fn deref_mut(&mut self) -> &mut Self::Target {
75310 &mut self.inner
75311 }
75312}
75313pub struct MemoryMapPlacedInfoEXTBuilder<'a> {
75315 inner: MemoryMapPlacedInfoEXT,
75316 _marker: core::marker::PhantomData<&'a ()>,
75317}
75318impl MemoryMapPlacedInfoEXT {
75319 #[inline]
75321 pub fn builder<'a>() -> MemoryMapPlacedInfoEXTBuilder<'a> {
75322 MemoryMapPlacedInfoEXTBuilder {
75323 inner: MemoryMapPlacedInfoEXT {
75324 s_type: StructureType::from_raw(1000272002i32),
75325 ..Default::default()
75326 },
75327 _marker: core::marker::PhantomData,
75328 }
75329 }
75330}
75331impl<'a> MemoryMapPlacedInfoEXTBuilder<'a> {
75332 #[inline]
75333 pub fn placed_address(mut self, value: *mut core::ffi::c_void) -> Self {
75334 self.inner.p_placed_address = value;
75335 self
75336 }
75337 #[inline]
75339 pub fn push_next<T: ExtendsMemoryMapPlacedInfoEXT>(
75340 mut self,
75341 next: &'a mut T,
75342 ) -> Self {
75343 unsafe {
75344 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75345 (*next_ptr).p_next = self.inner.p_next as *mut _;
75346 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75347 core::ffi::c_void,
75348 >(next_ptr) as *const _;
75349 }
75350 self
75351 }
75352}
75353impl<'a> core::ops::Deref for MemoryMapPlacedInfoEXTBuilder<'a> {
75354 type Target = MemoryMapPlacedInfoEXT;
75355 #[inline]
75356 fn deref(&self) -> &Self::Target {
75357 &self.inner
75358 }
75359}
75360impl<'a> core::ops::DerefMut for MemoryMapPlacedInfoEXTBuilder<'a> {
75361 #[inline]
75362 fn deref_mut(&mut self) -> &mut Self::Target {
75363 &mut self.inner
75364 }
75365}
75366pub struct PhysicalDeviceShaderBfloat16FeaturesKHRBuilder<'a> {
75368 inner: PhysicalDeviceShaderBfloat16FeaturesKHR,
75369 _marker: core::marker::PhantomData<&'a ()>,
75370}
75371impl PhysicalDeviceShaderBfloat16FeaturesKHR {
75372 #[inline]
75374 pub fn builder<'a>() -> PhysicalDeviceShaderBfloat16FeaturesKHRBuilder<'a> {
75375 PhysicalDeviceShaderBfloat16FeaturesKHRBuilder {
75376 inner: PhysicalDeviceShaderBfloat16FeaturesKHR {
75377 s_type: StructureType::from_raw(1000141000i32),
75378 ..Default::default()
75379 },
75380 _marker: core::marker::PhantomData,
75381 }
75382 }
75383}
75384impl<'a> PhysicalDeviceShaderBfloat16FeaturesKHRBuilder<'a> {
75385 #[inline]
75386 pub fn shader_b_float16_type(mut self, value: bool) -> Self {
75387 self.inner.shader_b_float16_type = value as u32;
75388 self
75389 }
75390 #[inline]
75391 pub fn shader_b_float16_dot_product(mut self, value: bool) -> Self {
75392 self.inner.shader_b_float16_dot_product = value as u32;
75393 self
75394 }
75395 #[inline]
75396 pub fn shader_b_float16_cooperative_matrix(mut self, value: bool) -> Self {
75397 self.inner.shader_b_float16_cooperative_matrix = value as u32;
75398 self
75399 }
75400 #[inline]
75402 pub fn push_next<T: ExtendsPhysicalDeviceShaderBfloat16FeaturesKHR>(
75403 mut self,
75404 next: &'a mut T,
75405 ) -> Self {
75406 unsafe {
75407 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75408 (*next_ptr).p_next = self.inner.p_next as *mut _;
75409 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75410 core::ffi::c_void,
75411 >(next_ptr);
75412 }
75413 self
75414 }
75415}
75416impl<'a> core::ops::Deref for PhysicalDeviceShaderBfloat16FeaturesKHRBuilder<'a> {
75417 type Target = PhysicalDeviceShaderBfloat16FeaturesKHR;
75418 #[inline]
75419 fn deref(&self) -> &Self::Target {
75420 &self.inner
75421 }
75422}
75423impl<'a> core::ops::DerefMut for PhysicalDeviceShaderBfloat16FeaturesKHRBuilder<'a> {
75424 #[inline]
75425 fn deref_mut(&mut self) -> &mut Self::Target {
75426 &mut self.inner
75427 }
75428}
75429pub struct PhysicalDeviceRawAccessChainsFeaturesNVBuilder<'a> {
75431 inner: PhysicalDeviceRawAccessChainsFeaturesNV,
75432 _marker: core::marker::PhantomData<&'a ()>,
75433}
75434impl PhysicalDeviceRawAccessChainsFeaturesNV {
75435 #[inline]
75437 pub fn builder<'a>() -> PhysicalDeviceRawAccessChainsFeaturesNVBuilder<'a> {
75438 PhysicalDeviceRawAccessChainsFeaturesNVBuilder {
75439 inner: PhysicalDeviceRawAccessChainsFeaturesNV {
75440 s_type: StructureType::from_raw(1000555000i32),
75441 ..Default::default()
75442 },
75443 _marker: core::marker::PhantomData,
75444 }
75445 }
75446}
75447impl<'a> PhysicalDeviceRawAccessChainsFeaturesNVBuilder<'a> {
75448 #[inline]
75449 pub fn shader_raw_access_chains(mut self, value: bool) -> Self {
75450 self.inner.shader_raw_access_chains = value as u32;
75451 self
75452 }
75453 #[inline]
75455 pub fn push_next<T: ExtendsPhysicalDeviceRawAccessChainsFeaturesNV>(
75456 mut self,
75457 next: &'a mut T,
75458 ) -> Self {
75459 unsafe {
75460 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75461 (*next_ptr).p_next = self.inner.p_next as *mut _;
75462 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75463 core::ffi::c_void,
75464 >(next_ptr);
75465 }
75466 self
75467 }
75468}
75469impl<'a> core::ops::Deref for PhysicalDeviceRawAccessChainsFeaturesNVBuilder<'a> {
75470 type Target = PhysicalDeviceRawAccessChainsFeaturesNV;
75471 #[inline]
75472 fn deref(&self) -> &Self::Target {
75473 &self.inner
75474 }
75475}
75476impl<'a> core::ops::DerefMut for PhysicalDeviceRawAccessChainsFeaturesNVBuilder<'a> {
75477 #[inline]
75478 fn deref_mut(&mut self) -> &mut Self::Target {
75479 &mut self.inner
75480 }
75481}
75482pub struct PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder<'a> {
75484 inner: PhysicalDeviceCommandBufferInheritanceFeaturesNV,
75485 _marker: core::marker::PhantomData<&'a ()>,
75486}
75487impl PhysicalDeviceCommandBufferInheritanceFeaturesNV {
75488 #[inline]
75490 pub fn builder<'a>() -> PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder<'a> {
75491 PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder {
75492 inner: PhysicalDeviceCommandBufferInheritanceFeaturesNV {
75493 s_type: StructureType::from_raw(1000559000i32),
75494 ..Default::default()
75495 },
75496 _marker: core::marker::PhantomData,
75497 }
75498 }
75499}
75500impl<'a> PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder<'a> {
75501 #[inline]
75502 pub fn command_buffer_inheritance(mut self, value: bool) -> Self {
75503 self.inner.command_buffer_inheritance = value as u32;
75504 self
75505 }
75506 #[inline]
75508 pub fn push_next<T: ExtendsPhysicalDeviceCommandBufferInheritanceFeaturesNV>(
75509 mut self,
75510 next: &'a mut T,
75511 ) -> Self {
75512 unsafe {
75513 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75514 (*next_ptr).p_next = self.inner.p_next as *mut _;
75515 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75516 core::ffi::c_void,
75517 >(next_ptr);
75518 }
75519 self
75520 }
75521}
75522impl<'a> core::ops::Deref
75523for PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder<'a> {
75524 type Target = PhysicalDeviceCommandBufferInheritanceFeaturesNV;
75525 #[inline]
75526 fn deref(&self) -> &Self::Target {
75527 &self.inner
75528 }
75529}
75530impl<'a> core::ops::DerefMut
75531for PhysicalDeviceCommandBufferInheritanceFeaturesNVBuilder<'a> {
75532 #[inline]
75533 fn deref_mut(&mut self) -> &mut Self::Target {
75534 &mut self.inner
75535 }
75536}
75537pub struct PhysicalDeviceImageAlignmentControlFeaturesMESABuilder<'a> {
75539 inner: PhysicalDeviceImageAlignmentControlFeaturesMESA,
75540 _marker: core::marker::PhantomData<&'a ()>,
75541}
75542impl PhysicalDeviceImageAlignmentControlFeaturesMESA {
75543 #[inline]
75545 pub fn builder<'a>() -> PhysicalDeviceImageAlignmentControlFeaturesMESABuilder<'a> {
75546 PhysicalDeviceImageAlignmentControlFeaturesMESABuilder {
75547 inner: PhysicalDeviceImageAlignmentControlFeaturesMESA {
75548 s_type: StructureType::from_raw(1000575000i32),
75549 ..Default::default()
75550 },
75551 _marker: core::marker::PhantomData,
75552 }
75553 }
75554}
75555impl<'a> PhysicalDeviceImageAlignmentControlFeaturesMESABuilder<'a> {
75556 #[inline]
75557 pub fn image_alignment_control(mut self, value: bool) -> Self {
75558 self.inner.image_alignment_control = value as u32;
75559 self
75560 }
75561 #[inline]
75563 pub fn push_next<T: ExtendsPhysicalDeviceImageAlignmentControlFeaturesMESA>(
75564 mut self,
75565 next: &'a mut T,
75566 ) -> Self {
75567 unsafe {
75568 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75569 (*next_ptr).p_next = self.inner.p_next as *mut _;
75570 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75571 core::ffi::c_void,
75572 >(next_ptr);
75573 }
75574 self
75575 }
75576}
75577impl<'a> core::ops::Deref
75578for PhysicalDeviceImageAlignmentControlFeaturesMESABuilder<'a> {
75579 type Target = PhysicalDeviceImageAlignmentControlFeaturesMESA;
75580 #[inline]
75581 fn deref(&self) -> &Self::Target {
75582 &self.inner
75583 }
75584}
75585impl<'a> core::ops::DerefMut
75586for PhysicalDeviceImageAlignmentControlFeaturesMESABuilder<'a> {
75587 #[inline]
75588 fn deref_mut(&mut self) -> &mut Self::Target {
75589 &mut self.inner
75590 }
75591}
75592pub struct PhysicalDeviceImageAlignmentControlPropertiesMESABuilder<'a> {
75594 inner: PhysicalDeviceImageAlignmentControlPropertiesMESA,
75595 _marker: core::marker::PhantomData<&'a ()>,
75596}
75597impl PhysicalDeviceImageAlignmentControlPropertiesMESA {
75598 #[inline]
75600 pub fn builder<'a>() -> PhysicalDeviceImageAlignmentControlPropertiesMESABuilder<
75601 'a,
75602 > {
75603 PhysicalDeviceImageAlignmentControlPropertiesMESABuilder {
75604 inner: PhysicalDeviceImageAlignmentControlPropertiesMESA {
75605 s_type: StructureType::from_raw(1000575001i32),
75606 ..Default::default()
75607 },
75608 _marker: core::marker::PhantomData,
75609 }
75610 }
75611}
75612impl<'a> PhysicalDeviceImageAlignmentControlPropertiesMESABuilder<'a> {
75613 #[inline]
75614 pub fn supported_image_alignment_mask(mut self, value: u32) -> Self {
75615 self.inner.supported_image_alignment_mask = value;
75616 self
75617 }
75618}
75619impl<'a> core::ops::Deref
75620for PhysicalDeviceImageAlignmentControlPropertiesMESABuilder<'a> {
75621 type Target = PhysicalDeviceImageAlignmentControlPropertiesMESA;
75622 #[inline]
75623 fn deref(&self) -> &Self::Target {
75624 &self.inner
75625 }
75626}
75627impl<'a> core::ops::DerefMut
75628for PhysicalDeviceImageAlignmentControlPropertiesMESABuilder<'a> {
75629 #[inline]
75630 fn deref_mut(&mut self) -> &mut Self::Target {
75631 &mut self.inner
75632 }
75633}
75634pub struct ImageAlignmentControlCreateInfoMESABuilder<'a> {
75636 inner: ImageAlignmentControlCreateInfoMESA,
75637 _marker: core::marker::PhantomData<&'a ()>,
75638}
75639impl ImageAlignmentControlCreateInfoMESA {
75640 #[inline]
75642 pub fn builder<'a>() -> ImageAlignmentControlCreateInfoMESABuilder<'a> {
75643 ImageAlignmentControlCreateInfoMESABuilder {
75644 inner: ImageAlignmentControlCreateInfoMESA {
75645 s_type: StructureType::from_raw(1000575002i32),
75646 ..Default::default()
75647 },
75648 _marker: core::marker::PhantomData,
75649 }
75650 }
75651}
75652impl<'a> ImageAlignmentControlCreateInfoMESABuilder<'a> {
75653 #[inline]
75654 pub fn maximum_requested_alignment(mut self, value: u32) -> Self {
75655 self.inner.maximum_requested_alignment = value;
75656 self
75657 }
75658 #[inline]
75660 pub fn push_next<T: ExtendsImageAlignmentControlCreateInfoMESA>(
75661 mut self,
75662 next: &'a mut T,
75663 ) -> Self {
75664 unsafe {
75665 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75666 (*next_ptr).p_next = self.inner.p_next as *mut _;
75667 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75668 core::ffi::c_void,
75669 >(next_ptr) as *const _;
75670 }
75671 self
75672 }
75673}
75674impl<'a> core::ops::Deref for ImageAlignmentControlCreateInfoMESABuilder<'a> {
75675 type Target = ImageAlignmentControlCreateInfoMESA;
75676 #[inline]
75677 fn deref(&self) -> &Self::Target {
75678 &self.inner
75679 }
75680}
75681impl<'a> core::ops::DerefMut for ImageAlignmentControlCreateInfoMESABuilder<'a> {
75682 #[inline]
75683 fn deref_mut(&mut self) -> &mut Self::Target {
75684 &mut self.inner
75685 }
75686}
75687pub struct PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder<'a> {
75689 inner: PhysicalDeviceShaderReplicatedCompositesFeaturesEXT,
75690 _marker: core::marker::PhantomData<&'a ()>,
75691}
75692impl PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
75693 #[inline]
75695 pub fn builder<'a>() -> PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder<
75696 'a,
75697 > {
75698 PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder {
75699 inner: PhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
75700 s_type: StructureType::from_raw(1000564000i32),
75701 ..Default::default()
75702 },
75703 _marker: core::marker::PhantomData,
75704 }
75705 }
75706}
75707impl<'a> PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder<'a> {
75708 #[inline]
75709 pub fn shader_replicated_composites(mut self, value: bool) -> Self {
75710 self.inner.shader_replicated_composites = value as u32;
75711 self
75712 }
75713 #[inline]
75715 pub fn push_next<T: ExtendsPhysicalDeviceShaderReplicatedCompositesFeaturesEXT>(
75716 mut self,
75717 next: &'a mut T,
75718 ) -> Self {
75719 unsafe {
75720 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75721 (*next_ptr).p_next = self.inner.p_next as *mut _;
75722 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75723 core::ffi::c_void,
75724 >(next_ptr);
75725 }
75726 self
75727 }
75728}
75729impl<'a> core::ops::Deref
75730for PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder<'a> {
75731 type Target = PhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
75732 #[inline]
75733 fn deref(&self) -> &Self::Target {
75734 &self.inner
75735 }
75736}
75737impl<'a> core::ops::DerefMut
75738for PhysicalDeviceShaderReplicatedCompositesFeaturesEXTBuilder<'a> {
75739 #[inline]
75740 fn deref_mut(&mut self) -> &mut Self::Target {
75741 &mut self.inner
75742 }
75743}
75744pub struct PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder<'a> {
75746 inner: PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR,
75747 _marker: core::marker::PhantomData<&'a ()>,
75748}
75749impl PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
75750 #[inline]
75752 pub fn builder<'a>() -> PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder<
75753 'a,
75754 > {
75755 PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder {
75756 inner: PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
75757 s_type: StructureType::from_raw(1000361000i32),
75758 ..Default::default()
75759 },
75760 _marker: core::marker::PhantomData,
75761 }
75762 }
75763}
75764impl<'a> PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder<'a> {
75765 #[inline]
75766 pub fn present_mode_fifo_latest_ready(mut self, value: bool) -> Self {
75767 self.inner.present_mode_fifo_latest_ready = value as u32;
75768 self
75769 }
75770 #[inline]
75772 pub fn push_next<T: ExtendsPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR>(
75773 mut self,
75774 next: &'a mut T,
75775 ) -> Self {
75776 unsafe {
75777 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75778 (*next_ptr).p_next = self.inner.p_next as *mut _;
75779 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75780 core::ffi::c_void,
75781 >(next_ptr);
75782 }
75783 self
75784 }
75785}
75786impl<'a> core::ops::Deref
75787for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder<'a> {
75788 type Target = PhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
75789 #[inline]
75790 fn deref(&self) -> &Self::Target {
75791 &self.inner
75792 }
75793}
75794impl<'a> core::ops::DerefMut
75795for PhysicalDevicePresentModeFifoLatestReadyFeaturesKHRBuilder<'a> {
75796 #[inline]
75797 fn deref_mut(&mut self) -> &mut Self::Target {
75798 &mut self.inner
75799 }
75800}
75801pub struct DepthClampRangeEXTBuilder {
75803 inner: DepthClampRangeEXT,
75804}
75805impl DepthClampRangeEXT {
75806 #[inline]
75808 pub fn builder() -> DepthClampRangeEXTBuilder {
75809 DepthClampRangeEXTBuilder {
75810 inner: DepthClampRangeEXT {
75811 ..Default::default()
75812 },
75813 }
75814 }
75815}
75816impl DepthClampRangeEXTBuilder {
75817 #[inline]
75818 pub fn min_depth_clamp(mut self, value: f32) -> Self {
75819 self.inner.min_depth_clamp = value;
75820 self
75821 }
75822 #[inline]
75823 pub fn max_depth_clamp(mut self, value: f32) -> Self {
75824 self.inner.max_depth_clamp = value;
75825 self
75826 }
75827}
75828impl core::ops::Deref for DepthClampRangeEXTBuilder {
75829 type Target = DepthClampRangeEXT;
75830 #[inline]
75831 fn deref(&self) -> &Self::Target {
75832 &self.inner
75833 }
75834}
75835impl core::ops::DerefMut for DepthClampRangeEXTBuilder {
75836 #[inline]
75837 fn deref_mut(&mut self) -> &mut Self::Target {
75838 &mut self.inner
75839 }
75840}
75841pub struct PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder<'a> {
75843 inner: PhysicalDeviceCooperativeMatrix2FeaturesNV,
75844 _marker: core::marker::PhantomData<&'a ()>,
75845}
75846impl PhysicalDeviceCooperativeMatrix2FeaturesNV {
75847 #[inline]
75849 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder<'a> {
75850 PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder {
75851 inner: PhysicalDeviceCooperativeMatrix2FeaturesNV {
75852 s_type: StructureType::from_raw(1000593000i32),
75853 ..Default::default()
75854 },
75855 _marker: core::marker::PhantomData,
75856 }
75857 }
75858}
75859impl<'a> PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder<'a> {
75860 #[inline]
75861 pub fn cooperative_matrix_workgroup_scope(mut self, value: bool) -> Self {
75862 self.inner.cooperative_matrix_workgroup_scope = value as u32;
75863 self
75864 }
75865 #[inline]
75866 pub fn cooperative_matrix_flexible_dimensions(mut self, value: bool) -> Self {
75867 self.inner.cooperative_matrix_flexible_dimensions = value as u32;
75868 self
75869 }
75870 #[inline]
75871 pub fn cooperative_matrix_reductions(mut self, value: bool) -> Self {
75872 self.inner.cooperative_matrix_reductions = value as u32;
75873 self
75874 }
75875 #[inline]
75876 pub fn cooperative_matrix_conversions(mut self, value: bool) -> Self {
75877 self.inner.cooperative_matrix_conversions = value as u32;
75878 self
75879 }
75880 #[inline]
75881 pub fn cooperative_matrix_per_element_operations(mut self, value: bool) -> Self {
75882 self.inner.cooperative_matrix_per_element_operations = value as u32;
75883 self
75884 }
75885 #[inline]
75886 pub fn cooperative_matrix_tensor_addressing(mut self, value: bool) -> Self {
75887 self.inner.cooperative_matrix_tensor_addressing = value as u32;
75888 self
75889 }
75890 #[inline]
75891 pub fn cooperative_matrix_block_loads(mut self, value: bool) -> Self {
75892 self.inner.cooperative_matrix_block_loads = value as u32;
75893 self
75894 }
75895 #[inline]
75897 pub fn push_next<T: ExtendsPhysicalDeviceCooperativeMatrix2FeaturesNV>(
75898 mut self,
75899 next: &'a mut T,
75900 ) -> Self {
75901 unsafe {
75902 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
75903 (*next_ptr).p_next = self.inner.p_next as *mut _;
75904 self.inner.p_next = <*mut BaseOutStructure>::cast::<
75905 core::ffi::c_void,
75906 >(next_ptr);
75907 }
75908 self
75909 }
75910}
75911impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder<'a> {
75912 type Target = PhysicalDeviceCooperativeMatrix2FeaturesNV;
75913 #[inline]
75914 fn deref(&self) -> &Self::Target {
75915 &self.inner
75916 }
75917}
75918impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeMatrix2FeaturesNVBuilder<'a> {
75919 #[inline]
75920 fn deref_mut(&mut self) -> &mut Self::Target {
75921 &mut self.inner
75922 }
75923}
75924pub struct PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder<'a> {
75926 inner: PhysicalDeviceCooperativeMatrix2PropertiesNV,
75927 _marker: core::marker::PhantomData<&'a ()>,
75928}
75929impl PhysicalDeviceCooperativeMatrix2PropertiesNV {
75930 #[inline]
75932 pub fn builder<'a>() -> PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder<'a> {
75933 PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder {
75934 inner: PhysicalDeviceCooperativeMatrix2PropertiesNV {
75935 s_type: StructureType::from_raw(1000593002i32),
75936 ..Default::default()
75937 },
75938 _marker: core::marker::PhantomData,
75939 }
75940 }
75941}
75942impl<'a> PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder<'a> {
75943 #[inline]
75944 pub fn cooperative_matrix_workgroup_scope_max_workgroup_size(
75945 mut self,
75946 value: u32,
75947 ) -> Self {
75948 self.inner.cooperative_matrix_workgroup_scope_max_workgroup_size = value;
75949 self
75950 }
75951 #[inline]
75952 pub fn cooperative_matrix_flexible_dimensions_max_dimension(
75953 mut self,
75954 value: u32,
75955 ) -> Self {
75956 self.inner.cooperative_matrix_flexible_dimensions_max_dimension = value;
75957 self
75958 }
75959 #[inline]
75960 pub fn cooperative_matrix_workgroup_scope_reserved_shared_memory(
75961 mut self,
75962 value: u32,
75963 ) -> Self {
75964 self.inner.cooperative_matrix_workgroup_scope_reserved_shared_memory = value;
75965 self
75966 }
75967}
75968impl<'a> core::ops::Deref for PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder<'a> {
75969 type Target = PhysicalDeviceCooperativeMatrix2PropertiesNV;
75970 #[inline]
75971 fn deref(&self) -> &Self::Target {
75972 &self.inner
75973 }
75974}
75975impl<'a> core::ops::DerefMut
75976for PhysicalDeviceCooperativeMatrix2PropertiesNVBuilder<'a> {
75977 #[inline]
75978 fn deref_mut(&mut self) -> &mut Self::Target {
75979 &mut self.inner
75980 }
75981}
75982pub struct CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder<'a> {
75984 inner: CooperativeMatrixFlexibleDimensionsPropertiesNV,
75985 _marker: core::marker::PhantomData<&'a ()>,
75986}
75987impl CooperativeMatrixFlexibleDimensionsPropertiesNV {
75988 #[inline]
75990 pub fn builder<'a>() -> CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder<'a> {
75991 CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder {
75992 inner: CooperativeMatrixFlexibleDimensionsPropertiesNV {
75993 s_type: StructureType::from_raw(1000593001i32),
75994 ..Default::default()
75995 },
75996 _marker: core::marker::PhantomData,
75997 }
75998 }
75999}
76000impl<'a> CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder<'a> {
76001 #[inline]
76002 pub fn m_granularity(mut self, value: u32) -> Self {
76003 self.inner.m_granularity = value;
76004 self
76005 }
76006 #[inline]
76007 pub fn n_granularity(mut self, value: u32) -> Self {
76008 self.inner.n_granularity = value;
76009 self
76010 }
76011 #[inline]
76012 pub fn k_granularity(mut self, value: u32) -> Self {
76013 self.inner.k_granularity = value;
76014 self
76015 }
76016 #[inline]
76017 pub fn a_type(mut self, value: ComponentTypeKHR) -> Self {
76018 self.inner.a_type = value;
76019 self
76020 }
76021 #[inline]
76022 pub fn b_type(mut self, value: ComponentTypeKHR) -> Self {
76023 self.inner.b_type = value;
76024 self
76025 }
76026 #[inline]
76027 pub fn c_type(mut self, value: ComponentTypeKHR) -> Self {
76028 self.inner.c_type = value;
76029 self
76030 }
76031 #[inline]
76032 pub fn result_type(mut self, value: ComponentTypeKHR) -> Self {
76033 self.inner.result_type = value;
76034 self
76035 }
76036 #[inline]
76037 pub fn saturating_accumulation(mut self, value: bool) -> Self {
76038 self.inner.saturating_accumulation = value as u32;
76039 self
76040 }
76041 #[inline]
76042 pub fn scope(mut self, value: ScopeKHR) -> Self {
76043 self.inner.scope = value;
76044 self
76045 }
76046 #[inline]
76047 pub fn workgroup_invocations(mut self, value: u32) -> Self {
76048 self.inner.workgroup_invocations = value;
76049 self
76050 }
76051}
76052impl<'a> core::ops::Deref
76053for CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder<'a> {
76054 type Target = CooperativeMatrixFlexibleDimensionsPropertiesNV;
76055 #[inline]
76056 fn deref(&self) -> &Self::Target {
76057 &self.inner
76058 }
76059}
76060impl<'a> core::ops::DerefMut
76061for CooperativeMatrixFlexibleDimensionsPropertiesNVBuilder<'a> {
76062 #[inline]
76063 fn deref_mut(&mut self) -> &mut Self::Target {
76064 &mut self.inner
76065 }
76066}
76067pub struct PhysicalDeviceHdrVividFeaturesHUAWEIBuilder<'a> {
76069 inner: PhysicalDeviceHdrVividFeaturesHUAWEI,
76070 _marker: core::marker::PhantomData<&'a ()>,
76071}
76072impl PhysicalDeviceHdrVividFeaturesHUAWEI {
76073 #[inline]
76075 pub fn builder<'a>() -> PhysicalDeviceHdrVividFeaturesHUAWEIBuilder<'a> {
76076 PhysicalDeviceHdrVividFeaturesHUAWEIBuilder {
76077 inner: PhysicalDeviceHdrVividFeaturesHUAWEI {
76078 s_type: StructureType::from_raw(1000590000i32),
76079 ..Default::default()
76080 },
76081 _marker: core::marker::PhantomData,
76082 }
76083 }
76084}
76085impl<'a> PhysicalDeviceHdrVividFeaturesHUAWEIBuilder<'a> {
76086 #[inline]
76087 pub fn hdr_vivid(mut self, value: bool) -> Self {
76088 self.inner.hdr_vivid = value as u32;
76089 self
76090 }
76091 #[inline]
76093 pub fn push_next<T: ExtendsPhysicalDeviceHdrVividFeaturesHUAWEI>(
76094 mut self,
76095 next: &'a mut T,
76096 ) -> Self {
76097 unsafe {
76098 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76099 (*next_ptr).p_next = self.inner.p_next as *mut _;
76100 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76101 core::ffi::c_void,
76102 >(next_ptr);
76103 }
76104 self
76105 }
76106}
76107impl<'a> core::ops::Deref for PhysicalDeviceHdrVividFeaturesHUAWEIBuilder<'a> {
76108 type Target = PhysicalDeviceHdrVividFeaturesHUAWEI;
76109 #[inline]
76110 fn deref(&self) -> &Self::Target {
76111 &self.inner
76112 }
76113}
76114impl<'a> core::ops::DerefMut for PhysicalDeviceHdrVividFeaturesHUAWEIBuilder<'a> {
76115 #[inline]
76116 fn deref_mut(&mut self) -> &mut Self::Target {
76117 &mut self.inner
76118 }
76119}
76120pub struct PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder<'a> {
76122 inner: PhysicalDeviceVertexAttributeRobustnessFeaturesEXT,
76123 _marker: core::marker::PhantomData<&'a ()>,
76124}
76125impl PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
76126 #[inline]
76128 pub fn builder<'a>() -> PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder<
76129 'a,
76130 > {
76131 PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder {
76132 inner: PhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
76133 s_type: StructureType::from_raw(1000608000i32),
76134 ..Default::default()
76135 },
76136 _marker: core::marker::PhantomData,
76137 }
76138 }
76139}
76140impl<'a> PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder<'a> {
76141 #[inline]
76142 pub fn vertex_attribute_robustness(mut self, value: bool) -> Self {
76143 self.inner.vertex_attribute_robustness = value as u32;
76144 self
76145 }
76146 #[inline]
76148 pub fn push_next<T: ExtendsPhysicalDeviceVertexAttributeRobustnessFeaturesEXT>(
76149 mut self,
76150 next: &'a mut T,
76151 ) -> Self {
76152 unsafe {
76153 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76154 (*next_ptr).p_next = self.inner.p_next as *mut _;
76155 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76156 core::ffi::c_void,
76157 >(next_ptr);
76158 }
76159 self
76160 }
76161}
76162impl<'a> core::ops::Deref
76163for PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder<'a> {
76164 type Target = PhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
76165 #[inline]
76166 fn deref(&self) -> &Self::Target {
76167 &self.inner
76168 }
76169}
76170impl<'a> core::ops::DerefMut
76171for PhysicalDeviceVertexAttributeRobustnessFeaturesEXTBuilder<'a> {
76172 #[inline]
76173 fn deref_mut(&mut self) -> &mut Self::Target {
76174 &mut self.inner
76175 }
76176}
76177pub struct PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder<'a> {
76179 inner: PhysicalDeviceDenseGeometryFormatFeaturesAMDX,
76180 _marker: core::marker::PhantomData<&'a ()>,
76181}
76182impl PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
76183 #[inline]
76185 pub fn builder<'a>() -> PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder<'a> {
76186 PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder {
76187 inner: PhysicalDeviceDenseGeometryFormatFeaturesAMDX {
76188 s_type: StructureType::from_raw(1000478000i32),
76189 ..Default::default()
76190 },
76191 _marker: core::marker::PhantomData,
76192 }
76193 }
76194}
76195impl<'a> PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder<'a> {
76196 #[inline]
76197 pub fn dense_geometry_format(mut self, value: bool) -> Self {
76198 self.inner.dense_geometry_format = value as u32;
76199 self
76200 }
76201 #[inline]
76203 pub fn push_next<T: ExtendsPhysicalDeviceDenseGeometryFormatFeaturesAMDX>(
76204 mut self,
76205 next: &'a mut T,
76206 ) -> Self {
76207 unsafe {
76208 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76209 (*next_ptr).p_next = self.inner.p_next as *mut _;
76210 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76211 core::ffi::c_void,
76212 >(next_ptr);
76213 }
76214 self
76215 }
76216}
76217impl<'a> core::ops::Deref for PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder<'a> {
76218 type Target = PhysicalDeviceDenseGeometryFormatFeaturesAMDX;
76219 #[inline]
76220 fn deref(&self) -> &Self::Target {
76221 &self.inner
76222 }
76223}
76224impl<'a> core::ops::DerefMut
76225for PhysicalDeviceDenseGeometryFormatFeaturesAMDXBuilder<'a> {
76226 #[inline]
76227 fn deref_mut(&mut self) -> &mut Self::Target {
76228 &mut self.inner
76229 }
76230}
76231pub struct AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder<'a> {
76233 inner: AccelerationStructureDenseGeometryFormatTrianglesDataAMDX,
76234 _marker: core::marker::PhantomData<&'a ()>,
76235}
76236impl AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
76237 #[inline]
76239 pub fn builder<'a>() -> AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder<
76240 'a,
76241 > {
76242 AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder {
76243 inner: AccelerationStructureDenseGeometryFormatTrianglesDataAMDX {
76244 s_type: StructureType::from_raw(1000478001i32),
76245 ..Default::default()
76246 },
76247 _marker: core::marker::PhantomData,
76248 }
76249 }
76250}
76251impl<'a> AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder<'a> {
76252 #[inline]
76253 pub fn compressed_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
76254 self.inner.compressed_data = value;
76255 self
76256 }
76257 #[inline]
76258 pub fn data_size(mut self, value: u64) -> Self {
76259 self.inner.data_size = value;
76260 self
76261 }
76262 #[inline]
76263 pub fn num_triangles(mut self, value: u32) -> Self {
76264 self.inner.num_triangles = value;
76265 self
76266 }
76267 #[inline]
76268 pub fn num_vertices(mut self, value: u32) -> Self {
76269 self.inner.num_vertices = value;
76270 self
76271 }
76272 #[inline]
76273 pub fn max_primitive_index(mut self, value: u32) -> Self {
76274 self.inner.max_primitive_index = value;
76275 self
76276 }
76277 #[inline]
76278 pub fn max_geometry_index(mut self, value: u32) -> Self {
76279 self.inner.max_geometry_index = value;
76280 self
76281 }
76282 #[inline]
76283 pub fn format(mut self, value: CompressedTriangleFormatAMDX) -> Self {
76284 self.inner.format = value;
76285 self
76286 }
76287 #[inline]
76289 pub fn push_next<
76290 T: ExtendsAccelerationStructureDenseGeometryFormatTrianglesDataAMDX,
76291 >(mut self, next: &'a mut T) -> Self {
76292 unsafe {
76293 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76294 (*next_ptr).p_next = self.inner.p_next as *mut _;
76295 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76296 core::ffi::c_void,
76297 >(next_ptr) as *const _;
76298 }
76299 self
76300 }
76301}
76302impl<'a> core::ops::Deref
76303for AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder<'a> {
76304 type Target = AccelerationStructureDenseGeometryFormatTrianglesDataAMDX;
76305 #[inline]
76306 fn deref(&self) -> &Self::Target {
76307 &self.inner
76308 }
76309}
76310impl<'a> core::ops::DerefMut
76311for AccelerationStructureDenseGeometryFormatTrianglesDataAMDXBuilder<'a> {
76312 #[inline]
76313 fn deref_mut(&mut self) -> &mut Self::Target {
76314 &mut self.inner
76315 }
76316}
76317pub struct PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder<'a> {
76319 inner: PhysicalDeviceDepthClampZeroOneFeaturesKHR,
76320 _marker: core::marker::PhantomData<&'a ()>,
76321}
76322impl PhysicalDeviceDepthClampZeroOneFeaturesKHR {
76323 #[inline]
76325 pub fn builder<'a>() -> PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder<'a> {
76326 PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder {
76327 inner: PhysicalDeviceDepthClampZeroOneFeaturesKHR {
76328 s_type: StructureType::from_raw(1000421000i32),
76329 ..Default::default()
76330 },
76331 _marker: core::marker::PhantomData,
76332 }
76333 }
76334}
76335impl<'a> PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder<'a> {
76336 #[inline]
76337 pub fn depth_clamp_zero_one(mut self, value: bool) -> Self {
76338 self.inner.depth_clamp_zero_one = value as u32;
76339 self
76340 }
76341 #[inline]
76343 pub fn push_next<T: ExtendsPhysicalDeviceDepthClampZeroOneFeaturesKHR>(
76344 mut self,
76345 next: &'a mut T,
76346 ) -> Self {
76347 unsafe {
76348 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76349 (*next_ptr).p_next = self.inner.p_next as *mut _;
76350 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76351 core::ffi::c_void,
76352 >(next_ptr);
76353 }
76354 self
76355 }
76356}
76357impl<'a> core::ops::Deref for PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder<'a> {
76358 type Target = PhysicalDeviceDepthClampZeroOneFeaturesKHR;
76359 #[inline]
76360 fn deref(&self) -> &Self::Target {
76361 &self.inner
76362 }
76363}
76364impl<'a> core::ops::DerefMut for PhysicalDeviceDepthClampZeroOneFeaturesKHRBuilder<'a> {
76365 #[inline]
76366 fn deref_mut(&mut self) -> &mut Self::Target {
76367 &mut self.inner
76368 }
76369}
76370pub struct PhysicalDeviceCooperativeVectorFeaturesNVBuilder<'a> {
76372 inner: PhysicalDeviceCooperativeVectorFeaturesNV,
76373 _marker: core::marker::PhantomData<&'a ()>,
76374}
76375impl PhysicalDeviceCooperativeVectorFeaturesNV {
76376 #[inline]
76378 pub fn builder<'a>() -> PhysicalDeviceCooperativeVectorFeaturesNVBuilder<'a> {
76379 PhysicalDeviceCooperativeVectorFeaturesNVBuilder {
76380 inner: PhysicalDeviceCooperativeVectorFeaturesNV {
76381 s_type: StructureType::from_raw(1000491000i32),
76382 ..Default::default()
76383 },
76384 _marker: core::marker::PhantomData,
76385 }
76386 }
76387}
76388impl<'a> PhysicalDeviceCooperativeVectorFeaturesNVBuilder<'a> {
76389 #[inline]
76390 pub fn cooperative_vector(mut self, value: bool) -> Self {
76391 self.inner.cooperative_vector = value as u32;
76392 self
76393 }
76394 #[inline]
76395 pub fn cooperative_vector_training(mut self, value: bool) -> Self {
76396 self.inner.cooperative_vector_training = value as u32;
76397 self
76398 }
76399 #[inline]
76401 pub fn push_next<T: ExtendsPhysicalDeviceCooperativeVectorFeaturesNV>(
76402 mut self,
76403 next: &'a mut T,
76404 ) -> Self {
76405 unsafe {
76406 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76407 (*next_ptr).p_next = self.inner.p_next as *mut _;
76408 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76409 core::ffi::c_void,
76410 >(next_ptr);
76411 }
76412 self
76413 }
76414}
76415impl<'a> core::ops::Deref for PhysicalDeviceCooperativeVectorFeaturesNVBuilder<'a> {
76416 type Target = PhysicalDeviceCooperativeVectorFeaturesNV;
76417 #[inline]
76418 fn deref(&self) -> &Self::Target {
76419 &self.inner
76420 }
76421}
76422impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeVectorFeaturesNVBuilder<'a> {
76423 #[inline]
76424 fn deref_mut(&mut self) -> &mut Self::Target {
76425 &mut self.inner
76426 }
76427}
76428pub struct CooperativeVectorPropertiesNVBuilder<'a> {
76430 inner: CooperativeVectorPropertiesNV,
76431 _marker: core::marker::PhantomData<&'a ()>,
76432}
76433impl CooperativeVectorPropertiesNV {
76434 #[inline]
76436 pub fn builder<'a>() -> CooperativeVectorPropertiesNVBuilder<'a> {
76437 CooperativeVectorPropertiesNVBuilder {
76438 inner: CooperativeVectorPropertiesNV {
76439 s_type: StructureType::from_raw(1000491002i32),
76440 ..Default::default()
76441 },
76442 _marker: core::marker::PhantomData,
76443 }
76444 }
76445}
76446impl<'a> CooperativeVectorPropertiesNVBuilder<'a> {
76447 #[inline]
76448 pub fn input_type(mut self, value: ComponentTypeKHR) -> Self {
76449 self.inner.input_type = value;
76450 self
76451 }
76452 #[inline]
76453 pub fn input_interpretation(mut self, value: ComponentTypeKHR) -> Self {
76454 self.inner.input_interpretation = value;
76455 self
76456 }
76457 #[inline]
76458 pub fn matrix_interpretation(mut self, value: ComponentTypeKHR) -> Self {
76459 self.inner.matrix_interpretation = value;
76460 self
76461 }
76462 #[inline]
76463 pub fn bias_interpretation(mut self, value: ComponentTypeKHR) -> Self {
76464 self.inner.bias_interpretation = value;
76465 self
76466 }
76467 #[inline]
76468 pub fn result_type(mut self, value: ComponentTypeKHR) -> Self {
76469 self.inner.result_type = value;
76470 self
76471 }
76472 #[inline]
76473 pub fn transpose(mut self, value: bool) -> Self {
76474 self.inner.transpose = value as u32;
76475 self
76476 }
76477 #[inline]
76479 pub fn push_next<T: ExtendsCooperativeVectorPropertiesNV>(
76480 mut self,
76481 next: &'a mut T,
76482 ) -> Self {
76483 unsafe {
76484 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76485 (*next_ptr).p_next = self.inner.p_next as *mut _;
76486 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76487 core::ffi::c_void,
76488 >(next_ptr);
76489 }
76490 self
76491 }
76492}
76493impl<'a> core::ops::Deref for CooperativeVectorPropertiesNVBuilder<'a> {
76494 type Target = CooperativeVectorPropertiesNV;
76495 #[inline]
76496 fn deref(&self) -> &Self::Target {
76497 &self.inner
76498 }
76499}
76500impl<'a> core::ops::DerefMut for CooperativeVectorPropertiesNVBuilder<'a> {
76501 #[inline]
76502 fn deref_mut(&mut self) -> &mut Self::Target {
76503 &mut self.inner
76504 }
76505}
76506pub struct PhysicalDeviceCooperativeVectorPropertiesNVBuilder<'a> {
76508 inner: PhysicalDeviceCooperativeVectorPropertiesNV,
76509 _marker: core::marker::PhantomData<&'a ()>,
76510}
76511impl PhysicalDeviceCooperativeVectorPropertiesNV {
76512 #[inline]
76514 pub fn builder<'a>() -> PhysicalDeviceCooperativeVectorPropertiesNVBuilder<'a> {
76515 PhysicalDeviceCooperativeVectorPropertiesNVBuilder {
76516 inner: PhysicalDeviceCooperativeVectorPropertiesNV {
76517 s_type: StructureType::from_raw(1000491001i32),
76518 ..Default::default()
76519 },
76520 _marker: core::marker::PhantomData,
76521 }
76522 }
76523}
76524impl<'a> PhysicalDeviceCooperativeVectorPropertiesNVBuilder<'a> {
76525 #[inline]
76526 pub fn cooperative_vector_supported_stages(
76527 mut self,
76528 value: ShaderStageFlags,
76529 ) -> Self {
76530 self.inner.cooperative_vector_supported_stages = value;
76531 self
76532 }
76533 #[inline]
76534 pub fn cooperative_vector_training_float16_accumulation(
76535 mut self,
76536 value: bool,
76537 ) -> Self {
76538 self.inner.cooperative_vector_training_float16_accumulation = value as u32;
76539 self
76540 }
76541 #[inline]
76542 pub fn cooperative_vector_training_float32_accumulation(
76543 mut self,
76544 value: bool,
76545 ) -> Self {
76546 self.inner.cooperative_vector_training_float32_accumulation = value as u32;
76547 self
76548 }
76549 #[inline]
76550 pub fn max_cooperative_vector_components(mut self, value: u32) -> Self {
76551 self.inner.max_cooperative_vector_components = value;
76552 self
76553 }
76554}
76555impl<'a> core::ops::Deref for PhysicalDeviceCooperativeVectorPropertiesNVBuilder<'a> {
76556 type Target = PhysicalDeviceCooperativeVectorPropertiesNV;
76557 #[inline]
76558 fn deref(&self) -> &Self::Target {
76559 &self.inner
76560 }
76561}
76562impl<'a> core::ops::DerefMut for PhysicalDeviceCooperativeVectorPropertiesNVBuilder<'a> {
76563 #[inline]
76564 fn deref_mut(&mut self) -> &mut Self::Target {
76565 &mut self.inner
76566 }
76567}
76568pub struct ConvertCooperativeVectorMatrixInfoNVBuilder<'a> {
76570 inner: ConvertCooperativeVectorMatrixInfoNV,
76571 _marker: core::marker::PhantomData<&'a ()>,
76572}
76573impl ConvertCooperativeVectorMatrixInfoNV {
76574 #[inline]
76576 pub fn builder<'a>() -> ConvertCooperativeVectorMatrixInfoNVBuilder<'a> {
76577 ConvertCooperativeVectorMatrixInfoNVBuilder {
76578 inner: ConvertCooperativeVectorMatrixInfoNV {
76579 s_type: StructureType::from_raw(1000491004i32),
76580 ..Default::default()
76581 },
76582 _marker: core::marker::PhantomData,
76583 }
76584 }
76585}
76586impl<'a> ConvertCooperativeVectorMatrixInfoNVBuilder<'a> {
76587 #[inline]
76588 pub fn src_size(mut self, value: usize) -> Self {
76589 self.inner.src_size = value;
76590 self
76591 }
76592 #[inline]
76593 pub fn src_data(mut self, value: DeviceOrHostAddressConstKHR) -> Self {
76594 self.inner.src_data = value;
76595 self
76596 }
76597 #[inline]
76598 pub fn dst_size(mut self, value: *mut usize) -> Self {
76599 self.inner.p_dst_size = value;
76600 self
76601 }
76602 #[inline]
76603 pub fn dst_data(mut self, value: DeviceOrHostAddressKHR) -> Self {
76604 self.inner.dst_data = value;
76605 self
76606 }
76607 #[inline]
76608 pub fn src_component_type(mut self, value: ComponentTypeKHR) -> Self {
76609 self.inner.src_component_type = value;
76610 self
76611 }
76612 #[inline]
76613 pub fn dst_component_type(mut self, value: ComponentTypeKHR) -> Self {
76614 self.inner.dst_component_type = value;
76615 self
76616 }
76617 #[inline]
76618 pub fn num_rows(mut self, value: u32) -> Self {
76619 self.inner.num_rows = value;
76620 self
76621 }
76622 #[inline]
76623 pub fn num_columns(mut self, value: u32) -> Self {
76624 self.inner.num_columns = value;
76625 self
76626 }
76627 #[inline]
76628 pub fn src_layout(mut self, value: CooperativeVectorMatrixLayoutNV) -> Self {
76629 self.inner.src_layout = value;
76630 self
76631 }
76632 #[inline]
76633 pub fn src_stride(mut self, value: usize) -> Self {
76634 self.inner.src_stride = value;
76635 self
76636 }
76637 #[inline]
76638 pub fn dst_layout(mut self, value: CooperativeVectorMatrixLayoutNV) -> Self {
76639 self.inner.dst_layout = value;
76640 self
76641 }
76642 #[inline]
76643 pub fn dst_stride(mut self, value: usize) -> Self {
76644 self.inner.dst_stride = value;
76645 self
76646 }
76647 #[inline]
76649 pub fn push_next<T: ExtendsConvertCooperativeVectorMatrixInfoNV>(
76650 mut self,
76651 next: &'a mut T,
76652 ) -> Self {
76653 unsafe {
76654 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76655 (*next_ptr).p_next = self.inner.p_next as *mut _;
76656 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76657 core::ffi::c_void,
76658 >(next_ptr) as *const _;
76659 }
76660 self
76661 }
76662}
76663impl<'a> core::ops::Deref for ConvertCooperativeVectorMatrixInfoNVBuilder<'a> {
76664 type Target = ConvertCooperativeVectorMatrixInfoNV;
76665 #[inline]
76666 fn deref(&self) -> &Self::Target {
76667 &self.inner
76668 }
76669}
76670impl<'a> core::ops::DerefMut for ConvertCooperativeVectorMatrixInfoNVBuilder<'a> {
76671 #[inline]
76672 fn deref_mut(&mut self) -> &mut Self::Target {
76673 &mut self.inner
76674 }
76675}
76676pub struct PhysicalDeviceTileShadingFeaturesQCOMBuilder<'a> {
76678 inner: PhysicalDeviceTileShadingFeaturesQCOM,
76679 _marker: core::marker::PhantomData<&'a ()>,
76680}
76681impl PhysicalDeviceTileShadingFeaturesQCOM {
76682 #[inline]
76684 pub fn builder<'a>() -> PhysicalDeviceTileShadingFeaturesQCOMBuilder<'a> {
76685 PhysicalDeviceTileShadingFeaturesQCOMBuilder {
76686 inner: PhysicalDeviceTileShadingFeaturesQCOM {
76687 s_type: StructureType::from_raw(1000309000i32),
76688 ..Default::default()
76689 },
76690 _marker: core::marker::PhantomData,
76691 }
76692 }
76693}
76694impl<'a> PhysicalDeviceTileShadingFeaturesQCOMBuilder<'a> {
76695 #[inline]
76696 pub fn tile_shading(mut self, value: bool) -> Self {
76697 self.inner.tile_shading = value as u32;
76698 self
76699 }
76700 #[inline]
76701 pub fn tile_shading_fragment_stage(mut self, value: bool) -> Self {
76702 self.inner.tile_shading_fragment_stage = value as u32;
76703 self
76704 }
76705 #[inline]
76706 pub fn tile_shading_color_attachments(mut self, value: bool) -> Self {
76707 self.inner.tile_shading_color_attachments = value as u32;
76708 self
76709 }
76710 #[inline]
76711 pub fn tile_shading_depth_attachments(mut self, value: bool) -> Self {
76712 self.inner.tile_shading_depth_attachments = value as u32;
76713 self
76714 }
76715 #[inline]
76716 pub fn tile_shading_stencil_attachments(mut self, value: bool) -> Self {
76717 self.inner.tile_shading_stencil_attachments = value as u32;
76718 self
76719 }
76720 #[inline]
76721 pub fn tile_shading_input_attachments(mut self, value: bool) -> Self {
76722 self.inner.tile_shading_input_attachments = value as u32;
76723 self
76724 }
76725 #[inline]
76726 pub fn tile_shading_sampled_attachments(mut self, value: bool) -> Self {
76727 self.inner.tile_shading_sampled_attachments = value as u32;
76728 self
76729 }
76730 #[inline]
76731 pub fn tile_shading_per_tile_draw(mut self, value: bool) -> Self {
76732 self.inner.tile_shading_per_tile_draw = value as u32;
76733 self
76734 }
76735 #[inline]
76736 pub fn tile_shading_per_tile_dispatch(mut self, value: bool) -> Self {
76737 self.inner.tile_shading_per_tile_dispatch = value as u32;
76738 self
76739 }
76740 #[inline]
76741 pub fn tile_shading_dispatch_tile(mut self, value: bool) -> Self {
76742 self.inner.tile_shading_dispatch_tile = value as u32;
76743 self
76744 }
76745 #[inline]
76746 pub fn tile_shading_apron(mut self, value: bool) -> Self {
76747 self.inner.tile_shading_apron = value as u32;
76748 self
76749 }
76750 #[inline]
76751 pub fn tile_shading_anisotropic_apron(mut self, value: bool) -> Self {
76752 self.inner.tile_shading_anisotropic_apron = value as u32;
76753 self
76754 }
76755 #[inline]
76756 pub fn tile_shading_atomic_ops(mut self, value: bool) -> Self {
76757 self.inner.tile_shading_atomic_ops = value as u32;
76758 self
76759 }
76760 #[inline]
76761 pub fn tile_shading_image_processing(mut self, value: bool) -> Self {
76762 self.inner.tile_shading_image_processing = value as u32;
76763 self
76764 }
76765 #[inline]
76767 pub fn push_next<T: ExtendsPhysicalDeviceTileShadingFeaturesQCOM>(
76768 mut self,
76769 next: &'a mut T,
76770 ) -> Self {
76771 unsafe {
76772 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76773 (*next_ptr).p_next = self.inner.p_next as *mut _;
76774 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76775 core::ffi::c_void,
76776 >(next_ptr);
76777 }
76778 self
76779 }
76780}
76781impl<'a> core::ops::Deref for PhysicalDeviceTileShadingFeaturesQCOMBuilder<'a> {
76782 type Target = PhysicalDeviceTileShadingFeaturesQCOM;
76783 #[inline]
76784 fn deref(&self) -> &Self::Target {
76785 &self.inner
76786 }
76787}
76788impl<'a> core::ops::DerefMut for PhysicalDeviceTileShadingFeaturesQCOMBuilder<'a> {
76789 #[inline]
76790 fn deref_mut(&mut self) -> &mut Self::Target {
76791 &mut self.inner
76792 }
76793}
76794pub struct PhysicalDeviceTileShadingPropertiesQCOMBuilder<'a> {
76796 inner: PhysicalDeviceTileShadingPropertiesQCOM,
76797 _marker: core::marker::PhantomData<&'a ()>,
76798}
76799impl PhysicalDeviceTileShadingPropertiesQCOM {
76800 #[inline]
76802 pub fn builder<'a>() -> PhysicalDeviceTileShadingPropertiesQCOMBuilder<'a> {
76803 PhysicalDeviceTileShadingPropertiesQCOMBuilder {
76804 inner: PhysicalDeviceTileShadingPropertiesQCOM {
76805 s_type: StructureType::from_raw(1000309001i32),
76806 ..Default::default()
76807 },
76808 _marker: core::marker::PhantomData,
76809 }
76810 }
76811}
76812impl<'a> PhysicalDeviceTileShadingPropertiesQCOMBuilder<'a> {
76813 #[inline]
76814 pub fn max_apron_size(mut self, value: u32) -> Self {
76815 self.inner.max_apron_size = value;
76816 self
76817 }
76818 #[inline]
76819 pub fn prefer_non_coherent(mut self, value: bool) -> Self {
76820 self.inner.prefer_non_coherent = value as u32;
76821 self
76822 }
76823 #[inline]
76824 pub fn tile_granularity(mut self, value: Extent2D) -> Self {
76825 self.inner.tile_granularity = value;
76826 self
76827 }
76828 #[inline]
76829 pub fn max_tile_shading_rate(mut self, value: Extent2D) -> Self {
76830 self.inner.max_tile_shading_rate = value;
76831 self
76832 }
76833}
76834impl<'a> core::ops::Deref for PhysicalDeviceTileShadingPropertiesQCOMBuilder<'a> {
76835 type Target = PhysicalDeviceTileShadingPropertiesQCOM;
76836 #[inline]
76837 fn deref(&self) -> &Self::Target {
76838 &self.inner
76839 }
76840}
76841impl<'a> core::ops::DerefMut for PhysicalDeviceTileShadingPropertiesQCOMBuilder<'a> {
76842 #[inline]
76843 fn deref_mut(&mut self) -> &mut Self::Target {
76844 &mut self.inner
76845 }
76846}
76847pub struct RenderPassTileShadingCreateInfoQCOMBuilder<'a> {
76849 inner: RenderPassTileShadingCreateInfoQCOM,
76850 _marker: core::marker::PhantomData<&'a ()>,
76851}
76852impl RenderPassTileShadingCreateInfoQCOM {
76853 #[inline]
76855 pub fn builder<'a>() -> RenderPassTileShadingCreateInfoQCOMBuilder<'a> {
76856 RenderPassTileShadingCreateInfoQCOMBuilder {
76857 inner: RenderPassTileShadingCreateInfoQCOM {
76858 s_type: StructureType::from_raw(1000309002i32),
76859 ..Default::default()
76860 },
76861 _marker: core::marker::PhantomData,
76862 }
76863 }
76864}
76865impl<'a> RenderPassTileShadingCreateInfoQCOMBuilder<'a> {
76866 #[inline]
76867 pub fn flags(mut self, value: TileShadingRenderPassFlagsQCOM) -> Self {
76868 self.inner.flags = value;
76869 self
76870 }
76871 #[inline]
76872 pub fn tile_apron_size(mut self, value: Extent2D) -> Self {
76873 self.inner.tile_apron_size = value;
76874 self
76875 }
76876 #[inline]
76878 pub fn push_next<T: ExtendsRenderPassTileShadingCreateInfoQCOM>(
76879 mut self,
76880 next: &'a mut T,
76881 ) -> Self {
76882 unsafe {
76883 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76884 (*next_ptr).p_next = self.inner.p_next as *mut _;
76885 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76886 core::ffi::c_void,
76887 >(next_ptr) as *const _;
76888 }
76889 self
76890 }
76891}
76892impl<'a> core::ops::Deref for RenderPassTileShadingCreateInfoQCOMBuilder<'a> {
76893 type Target = RenderPassTileShadingCreateInfoQCOM;
76894 #[inline]
76895 fn deref(&self) -> &Self::Target {
76896 &self.inner
76897 }
76898}
76899impl<'a> core::ops::DerefMut for RenderPassTileShadingCreateInfoQCOMBuilder<'a> {
76900 #[inline]
76901 fn deref_mut(&mut self) -> &mut Self::Target {
76902 &mut self.inner
76903 }
76904}
76905pub struct PerTileBeginInfoQCOMBuilder<'a> {
76907 inner: PerTileBeginInfoQCOM,
76908 _marker: core::marker::PhantomData<&'a ()>,
76909}
76910impl PerTileBeginInfoQCOM {
76911 #[inline]
76913 pub fn builder<'a>() -> PerTileBeginInfoQCOMBuilder<'a> {
76914 PerTileBeginInfoQCOMBuilder {
76915 inner: PerTileBeginInfoQCOM {
76916 s_type: StructureType::from_raw(1000309003i32),
76917 ..Default::default()
76918 },
76919 _marker: core::marker::PhantomData,
76920 }
76921 }
76922}
76923impl<'a> PerTileBeginInfoQCOMBuilder<'a> {
76924 #[inline]
76926 pub fn push_next<T: ExtendsPerTileBeginInfoQCOM>(mut self, next: &'a mut T) -> Self {
76927 unsafe {
76928 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76929 (*next_ptr).p_next = self.inner.p_next as *mut _;
76930 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76931 core::ffi::c_void,
76932 >(next_ptr) as *const _;
76933 }
76934 self
76935 }
76936}
76937impl<'a> core::ops::Deref for PerTileBeginInfoQCOMBuilder<'a> {
76938 type Target = PerTileBeginInfoQCOM;
76939 #[inline]
76940 fn deref(&self) -> &Self::Target {
76941 &self.inner
76942 }
76943}
76944impl<'a> core::ops::DerefMut for PerTileBeginInfoQCOMBuilder<'a> {
76945 #[inline]
76946 fn deref_mut(&mut self) -> &mut Self::Target {
76947 &mut self.inner
76948 }
76949}
76950pub struct PerTileEndInfoQCOMBuilder<'a> {
76952 inner: PerTileEndInfoQCOM,
76953 _marker: core::marker::PhantomData<&'a ()>,
76954}
76955impl PerTileEndInfoQCOM {
76956 #[inline]
76958 pub fn builder<'a>() -> PerTileEndInfoQCOMBuilder<'a> {
76959 PerTileEndInfoQCOMBuilder {
76960 inner: PerTileEndInfoQCOM {
76961 s_type: StructureType::from_raw(1000309004i32),
76962 ..Default::default()
76963 },
76964 _marker: core::marker::PhantomData,
76965 }
76966 }
76967}
76968impl<'a> PerTileEndInfoQCOMBuilder<'a> {
76969 #[inline]
76971 pub fn push_next<T: ExtendsPerTileEndInfoQCOM>(mut self, next: &'a mut T) -> Self {
76972 unsafe {
76973 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
76974 (*next_ptr).p_next = self.inner.p_next as *mut _;
76975 self.inner.p_next = <*mut BaseOutStructure>::cast::<
76976 core::ffi::c_void,
76977 >(next_ptr) as *const _;
76978 }
76979 self
76980 }
76981}
76982impl<'a> core::ops::Deref for PerTileEndInfoQCOMBuilder<'a> {
76983 type Target = PerTileEndInfoQCOM;
76984 #[inline]
76985 fn deref(&self) -> &Self::Target {
76986 &self.inner
76987 }
76988}
76989impl<'a> core::ops::DerefMut for PerTileEndInfoQCOMBuilder<'a> {
76990 #[inline]
76991 fn deref_mut(&mut self) -> &mut Self::Target {
76992 &mut self.inner
76993 }
76994}
76995pub struct DispatchTileInfoQCOMBuilder<'a> {
76997 inner: DispatchTileInfoQCOM,
76998 _marker: core::marker::PhantomData<&'a ()>,
76999}
77000impl DispatchTileInfoQCOM {
77001 #[inline]
77003 pub fn builder<'a>() -> DispatchTileInfoQCOMBuilder<'a> {
77004 DispatchTileInfoQCOMBuilder {
77005 inner: DispatchTileInfoQCOM {
77006 s_type: StructureType::from_raw(1000309005i32),
77007 ..Default::default()
77008 },
77009 _marker: core::marker::PhantomData,
77010 }
77011 }
77012}
77013impl<'a> DispatchTileInfoQCOMBuilder<'a> {
77014 #[inline]
77016 pub fn push_next<T: ExtendsDispatchTileInfoQCOM>(mut self, next: &'a mut T) -> Self {
77017 unsafe {
77018 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77019 (*next_ptr).p_next = self.inner.p_next as *mut _;
77020 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77021 core::ffi::c_void,
77022 >(next_ptr) as *const _;
77023 }
77024 self
77025 }
77026}
77027impl<'a> core::ops::Deref for DispatchTileInfoQCOMBuilder<'a> {
77028 type Target = DispatchTileInfoQCOM;
77029 #[inline]
77030 fn deref(&self) -> &Self::Target {
77031 &self.inner
77032 }
77033}
77034impl<'a> core::ops::DerefMut for DispatchTileInfoQCOMBuilder<'a> {
77035 #[inline]
77036 fn deref_mut(&mut self) -> &mut Self::Target {
77037 &mut self.inner
77038 }
77039}
77040pub struct PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder<'a> {
77042 inner: PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE,
77043 _marker: core::marker::PhantomData<&'a ()>,
77044}
77045impl PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
77046 #[inline]
77048 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder<
77049 'a,
77050 > {
77051 PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder {
77052 inner: PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
77053 s_type: StructureType::from_raw(1000611001i32),
77054 ..Default::default()
77055 },
77056 _marker: core::marker::PhantomData,
77057 }
77058 }
77059}
77060impl<'a> PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder<'a> {
77061 #[inline]
77062 pub fn max_fragment_density_map_layers(mut self, value: u32) -> Self {
77063 self.inner.max_fragment_density_map_layers = value;
77064 self
77065 }
77066}
77067impl<'a> core::ops::Deref
77068for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder<'a> {
77069 type Target = PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
77070 #[inline]
77071 fn deref(&self) -> &Self::Target {
77072 &self.inner
77073 }
77074}
77075impl<'a> core::ops::DerefMut
77076for PhysicalDeviceFragmentDensityMapLayeredPropertiesVALVEBuilder<'a> {
77077 #[inline]
77078 fn deref_mut(&mut self) -> &mut Self::Target {
77079 &mut self.inner
77080 }
77081}
77082pub struct PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder<'a> {
77084 inner: PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE,
77085 _marker: core::marker::PhantomData<&'a ()>,
77086}
77087impl PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
77088 #[inline]
77090 pub fn builder<'a>() -> PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder<
77091 'a,
77092 > {
77093 PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder {
77094 inner: PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
77095 s_type: StructureType::from_raw(1000611000i32),
77096 ..Default::default()
77097 },
77098 _marker: core::marker::PhantomData,
77099 }
77100 }
77101}
77102impl<'a> PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder<'a> {
77103 #[inline]
77104 pub fn fragment_density_map_layered(mut self, value: bool) -> Self {
77105 self.inner.fragment_density_map_layered = value as u32;
77106 self
77107 }
77108 #[inline]
77110 pub fn push_next<T: ExtendsPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE>(
77111 mut self,
77112 next: &'a mut T,
77113 ) -> Self {
77114 unsafe {
77115 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77116 (*next_ptr).p_next = self.inner.p_next as *mut _;
77117 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77118 core::ffi::c_void,
77119 >(next_ptr);
77120 }
77121 self
77122 }
77123}
77124impl<'a> core::ops::Deref
77125for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder<'a> {
77126 type Target = PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
77127 #[inline]
77128 fn deref(&self) -> &Self::Target {
77129 &self.inner
77130 }
77131}
77132impl<'a> core::ops::DerefMut
77133for PhysicalDeviceFragmentDensityMapLayeredFeaturesVALVEBuilder<'a> {
77134 #[inline]
77135 fn deref_mut(&mut self) -> &mut Self::Target {
77136 &mut self.inner
77137 }
77138}
77139pub struct PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder<'a> {
77141 inner: PipelineFragmentDensityMapLayeredCreateInfoVALVE,
77142 _marker: core::marker::PhantomData<&'a ()>,
77143}
77144impl PipelineFragmentDensityMapLayeredCreateInfoVALVE {
77145 #[inline]
77147 pub fn builder<'a>() -> PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder<'a> {
77148 PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder {
77149 inner: PipelineFragmentDensityMapLayeredCreateInfoVALVE {
77150 s_type: StructureType::from_raw(1000611002i32),
77151 ..Default::default()
77152 },
77153 _marker: core::marker::PhantomData,
77154 }
77155 }
77156}
77157impl<'a> PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder<'a> {
77158 #[inline]
77159 pub fn max_fragment_density_map_layers(mut self, value: u32) -> Self {
77160 self.inner.max_fragment_density_map_layers = value;
77161 self
77162 }
77163 #[inline]
77165 pub fn push_next<T: ExtendsPipelineFragmentDensityMapLayeredCreateInfoVALVE>(
77166 mut self,
77167 next: &'a mut T,
77168 ) -> Self {
77169 unsafe {
77170 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77171 (*next_ptr).p_next = self.inner.p_next as *mut _;
77172 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77173 core::ffi::c_void,
77174 >(next_ptr) as *const _;
77175 }
77176 self
77177 }
77178}
77179impl<'a> core::ops::Deref
77180for PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder<'a> {
77181 type Target = PipelineFragmentDensityMapLayeredCreateInfoVALVE;
77182 #[inline]
77183 fn deref(&self) -> &Self::Target {
77184 &self.inner
77185 }
77186}
77187impl<'a> core::ops::DerefMut
77188for PipelineFragmentDensityMapLayeredCreateInfoVALVEBuilder<'a> {
77189 #[inline]
77190 fn deref_mut(&mut self) -> &mut Self::Target {
77191 &mut self.inner
77192 }
77193}
77194pub struct SetPresentConfigNVBuilder<'a> {
77196 inner: SetPresentConfigNV,
77197 _marker: core::marker::PhantomData<&'a ()>,
77198}
77199impl SetPresentConfigNV {
77200 #[inline]
77202 pub fn builder<'a>() -> SetPresentConfigNVBuilder<'a> {
77203 SetPresentConfigNVBuilder {
77204 inner: SetPresentConfigNV {
77205 s_type: StructureType::from_raw(1000613000i32),
77206 ..Default::default()
77207 },
77208 _marker: core::marker::PhantomData,
77209 }
77210 }
77211}
77212impl<'a> SetPresentConfigNVBuilder<'a> {
77213 #[inline]
77214 pub fn num_frames_per_batch(mut self, value: u32) -> Self {
77215 self.inner.num_frames_per_batch = value;
77216 self
77217 }
77218 #[inline]
77219 pub fn present_config_feedback(mut self, value: u32) -> Self {
77220 self.inner.present_config_feedback = value;
77221 self
77222 }
77223 #[inline]
77225 pub fn push_next<T: ExtendsSetPresentConfigNV>(mut self, next: &'a mut T) -> Self {
77226 unsafe {
77227 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77228 (*next_ptr).p_next = self.inner.p_next as *mut _;
77229 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77230 core::ffi::c_void,
77231 >(next_ptr) as *const _;
77232 }
77233 self
77234 }
77235}
77236impl<'a> core::ops::Deref for SetPresentConfigNVBuilder<'a> {
77237 type Target = SetPresentConfigNV;
77238 #[inline]
77239 fn deref(&self) -> &Self::Target {
77240 &self.inner
77241 }
77242}
77243impl<'a> core::ops::DerefMut for SetPresentConfigNVBuilder<'a> {
77244 #[inline]
77245 fn deref_mut(&mut self) -> &mut Self::Target {
77246 &mut self.inner
77247 }
77248}
77249pub struct PhysicalDevicePresentMeteringFeaturesNVBuilder<'a> {
77251 inner: PhysicalDevicePresentMeteringFeaturesNV,
77252 _marker: core::marker::PhantomData<&'a ()>,
77253}
77254impl PhysicalDevicePresentMeteringFeaturesNV {
77255 #[inline]
77257 pub fn builder<'a>() -> PhysicalDevicePresentMeteringFeaturesNVBuilder<'a> {
77258 PhysicalDevicePresentMeteringFeaturesNVBuilder {
77259 inner: PhysicalDevicePresentMeteringFeaturesNV {
77260 s_type: StructureType::from_raw(1000613001i32),
77261 ..Default::default()
77262 },
77263 _marker: core::marker::PhantomData,
77264 }
77265 }
77266}
77267impl<'a> PhysicalDevicePresentMeteringFeaturesNVBuilder<'a> {
77268 #[inline]
77269 pub fn present_metering(mut self, value: bool) -> Self {
77270 self.inner.present_metering = value as u32;
77271 self
77272 }
77273 #[inline]
77275 pub fn push_next<T: ExtendsPhysicalDevicePresentMeteringFeaturesNV>(
77276 mut self,
77277 next: &'a mut T,
77278 ) -> Self {
77279 unsafe {
77280 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77281 (*next_ptr).p_next = self.inner.p_next as *mut _;
77282 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77283 core::ffi::c_void,
77284 >(next_ptr);
77285 }
77286 self
77287 }
77288}
77289impl<'a> core::ops::Deref for PhysicalDevicePresentMeteringFeaturesNVBuilder<'a> {
77290 type Target = PhysicalDevicePresentMeteringFeaturesNV;
77291 #[inline]
77292 fn deref(&self) -> &Self::Target {
77293 &self.inner
77294 }
77295}
77296impl<'a> core::ops::DerefMut for PhysicalDevicePresentMeteringFeaturesNVBuilder<'a> {
77297 #[inline]
77298 fn deref_mut(&mut self) -> &mut Self::Target {
77299 &mut self.inner
77300 }
77301}
77302pub struct ExternalComputeQueueDeviceCreateInfoNVBuilder<'a> {
77304 inner: ExternalComputeQueueDeviceCreateInfoNV,
77305 _marker: core::marker::PhantomData<&'a ()>,
77306}
77307impl ExternalComputeQueueDeviceCreateInfoNV {
77308 #[inline]
77310 pub fn builder<'a>() -> ExternalComputeQueueDeviceCreateInfoNVBuilder<'a> {
77311 ExternalComputeQueueDeviceCreateInfoNVBuilder {
77312 inner: ExternalComputeQueueDeviceCreateInfoNV {
77313 s_type: StructureType::from_raw(1000556000i32),
77314 ..Default::default()
77315 },
77316 _marker: core::marker::PhantomData,
77317 }
77318 }
77319}
77320impl<'a> ExternalComputeQueueDeviceCreateInfoNVBuilder<'a> {
77321 #[inline]
77322 pub fn reserved_external_queues(mut self, value: u32) -> Self {
77323 self.inner.reserved_external_queues = value;
77324 self
77325 }
77326 #[inline]
77328 pub fn push_next<T: ExtendsExternalComputeQueueDeviceCreateInfoNV>(
77329 mut self,
77330 next: &'a mut T,
77331 ) -> Self {
77332 unsafe {
77333 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77334 (*next_ptr).p_next = self.inner.p_next as *mut _;
77335 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77336 core::ffi::c_void,
77337 >(next_ptr) as *const _;
77338 }
77339 self
77340 }
77341}
77342impl<'a> core::ops::Deref for ExternalComputeQueueDeviceCreateInfoNVBuilder<'a> {
77343 type Target = ExternalComputeQueueDeviceCreateInfoNV;
77344 #[inline]
77345 fn deref(&self) -> &Self::Target {
77346 &self.inner
77347 }
77348}
77349impl<'a> core::ops::DerefMut for ExternalComputeQueueDeviceCreateInfoNVBuilder<'a> {
77350 #[inline]
77351 fn deref_mut(&mut self) -> &mut Self::Target {
77352 &mut self.inner
77353 }
77354}
77355pub struct ExternalComputeQueueCreateInfoNVBuilder<'a> {
77357 inner: ExternalComputeQueueCreateInfoNV,
77358 _marker: core::marker::PhantomData<&'a ()>,
77359}
77360impl ExternalComputeQueueCreateInfoNV {
77361 #[inline]
77363 pub fn builder<'a>() -> ExternalComputeQueueCreateInfoNVBuilder<'a> {
77364 ExternalComputeQueueCreateInfoNVBuilder {
77365 inner: ExternalComputeQueueCreateInfoNV {
77366 s_type: StructureType::from_raw(1000556001i32),
77367 ..Default::default()
77368 },
77369 _marker: core::marker::PhantomData,
77370 }
77371 }
77372}
77373impl<'a> ExternalComputeQueueCreateInfoNVBuilder<'a> {
77374 #[inline]
77375 pub fn preferred_queue(mut self, value: Queue) -> Self {
77376 self.inner.preferred_queue = value;
77377 self
77378 }
77379 #[inline]
77381 pub fn push_next<T: ExtendsExternalComputeQueueCreateInfoNV>(
77382 mut self,
77383 next: &'a mut T,
77384 ) -> Self {
77385 unsafe {
77386 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77387 (*next_ptr).p_next = self.inner.p_next as *mut _;
77388 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77389 core::ffi::c_void,
77390 >(next_ptr) as *const _;
77391 }
77392 self
77393 }
77394}
77395impl<'a> core::ops::Deref for ExternalComputeQueueCreateInfoNVBuilder<'a> {
77396 type Target = ExternalComputeQueueCreateInfoNV;
77397 #[inline]
77398 fn deref(&self) -> &Self::Target {
77399 &self.inner
77400 }
77401}
77402impl<'a> core::ops::DerefMut for ExternalComputeQueueCreateInfoNVBuilder<'a> {
77403 #[inline]
77404 fn deref_mut(&mut self) -> &mut Self::Target {
77405 &mut self.inner
77406 }
77407}
77408pub struct ExternalComputeQueueDataParamsNVBuilder<'a> {
77410 inner: ExternalComputeQueueDataParamsNV,
77411 _marker: core::marker::PhantomData<&'a ()>,
77412}
77413impl ExternalComputeQueueDataParamsNV {
77414 #[inline]
77416 pub fn builder<'a>() -> ExternalComputeQueueDataParamsNVBuilder<'a> {
77417 ExternalComputeQueueDataParamsNVBuilder {
77418 inner: ExternalComputeQueueDataParamsNV {
77419 s_type: StructureType::from_raw(1000556002i32),
77420 ..Default::default()
77421 },
77422 _marker: core::marker::PhantomData,
77423 }
77424 }
77425}
77426impl<'a> ExternalComputeQueueDataParamsNVBuilder<'a> {
77427 #[inline]
77428 pub fn device_index(mut self, value: u32) -> Self {
77429 self.inner.device_index = value;
77430 self
77431 }
77432 #[inline]
77434 pub fn push_next<T: ExtendsExternalComputeQueueDataParamsNV>(
77435 mut self,
77436 next: &'a mut T,
77437 ) -> Self {
77438 unsafe {
77439 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77440 (*next_ptr).p_next = self.inner.p_next as *mut _;
77441 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77442 core::ffi::c_void,
77443 >(next_ptr) as *const _;
77444 }
77445 self
77446 }
77447}
77448impl<'a> core::ops::Deref for ExternalComputeQueueDataParamsNVBuilder<'a> {
77449 type Target = ExternalComputeQueueDataParamsNV;
77450 #[inline]
77451 fn deref(&self) -> &Self::Target {
77452 &self.inner
77453 }
77454}
77455impl<'a> core::ops::DerefMut for ExternalComputeQueueDataParamsNVBuilder<'a> {
77456 #[inline]
77457 fn deref_mut(&mut self) -> &mut Self::Target {
77458 &mut self.inner
77459 }
77460}
77461pub struct PhysicalDeviceExternalComputeQueuePropertiesNVBuilder<'a> {
77463 inner: PhysicalDeviceExternalComputeQueuePropertiesNV,
77464 _marker: core::marker::PhantomData<&'a ()>,
77465}
77466impl PhysicalDeviceExternalComputeQueuePropertiesNV {
77467 #[inline]
77469 pub fn builder<'a>() -> PhysicalDeviceExternalComputeQueuePropertiesNVBuilder<'a> {
77470 PhysicalDeviceExternalComputeQueuePropertiesNVBuilder {
77471 inner: PhysicalDeviceExternalComputeQueuePropertiesNV {
77472 s_type: StructureType::from_raw(1000556003i32),
77473 ..Default::default()
77474 },
77475 _marker: core::marker::PhantomData,
77476 }
77477 }
77478}
77479impl<'a> PhysicalDeviceExternalComputeQueuePropertiesNVBuilder<'a> {
77480 #[inline]
77481 pub fn external_data_size(mut self, value: u32) -> Self {
77482 self.inner.external_data_size = value;
77483 self
77484 }
77485 #[inline]
77486 pub fn max_external_queues(mut self, value: u32) -> Self {
77487 self.inner.max_external_queues = value;
77488 self
77489 }
77490}
77491impl<'a> core::ops::Deref for PhysicalDeviceExternalComputeQueuePropertiesNVBuilder<'a> {
77492 type Target = PhysicalDeviceExternalComputeQueuePropertiesNV;
77493 #[inline]
77494 fn deref(&self) -> &Self::Target {
77495 &self.inner
77496 }
77497}
77498impl<'a> core::ops::DerefMut
77499for PhysicalDeviceExternalComputeQueuePropertiesNVBuilder<'a> {
77500 #[inline]
77501 fn deref_mut(&mut self) -> &mut Self::Target {
77502 &mut self.inner
77503 }
77504}
77505pub struct PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder<'a> {
77507 inner: PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT,
77508 _marker: core::marker::PhantomData<&'a ()>,
77509}
77510impl PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
77511 #[inline]
77513 pub fn builder<'a>() -> PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder<
77514 'a,
77515 > {
77516 PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder {
77517 inner: PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
77518 s_type: StructureType::from_raw(1000642000i32),
77519 ..Default::default()
77520 },
77521 _marker: core::marker::PhantomData,
77522 }
77523 }
77524}
77525impl<'a> PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder<'a> {
77526 #[inline]
77527 pub fn shader_uniform_buffer_unsized_array(mut self, value: bool) -> Self {
77528 self.inner.shader_uniform_buffer_unsized_array = value as u32;
77529 self
77530 }
77531 #[inline]
77533 pub fn push_next<T: ExtendsPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT>(
77534 mut self,
77535 next: &'a mut T,
77536 ) -> Self {
77537 unsafe {
77538 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77539 (*next_ptr).p_next = self.inner.p_next as *mut _;
77540 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77541 core::ffi::c_void,
77542 >(next_ptr);
77543 }
77544 self
77545 }
77546}
77547impl<'a> core::ops::Deref
77548for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder<'a> {
77549 type Target = PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
77550 #[inline]
77551 fn deref(&self) -> &Self::Target {
77552 &self.inner
77553 }
77554}
77555impl<'a> core::ops::DerefMut
77556for PhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXTBuilder<'a> {
77557 #[inline]
77558 fn deref_mut(&mut self) -> &mut Self::Target {
77559 &mut self.inner
77560 }
77561}
77562pub struct PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder<'a> {
77564 inner: PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE,
77565 _marker: core::marker::PhantomData<&'a ()>,
77566}
77567impl PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
77568 #[inline]
77570 pub fn builder<'a>() -> PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder<
77571 'a,
77572 > {
77573 PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder {
77574 inner: PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
77575 s_type: StructureType::from_raw(1000673000i32),
77576 ..Default::default()
77577 },
77578 _marker: core::marker::PhantomData,
77579 }
77580 }
77581}
77582impl<'a> PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder<'a> {
77583 #[inline]
77584 pub fn shader_mixed_float_dot_product_float16_acc_float32(
77585 mut self,
77586 value: bool,
77587 ) -> Self {
77588 self.inner.shader_mixed_float_dot_product_float16_acc_float32 = value as u32;
77589 self
77590 }
77591 #[inline]
77592 pub fn shader_mixed_float_dot_product_float16_acc_float16(
77593 mut self,
77594 value: bool,
77595 ) -> Self {
77596 self.inner.shader_mixed_float_dot_product_float16_acc_float16 = value as u32;
77597 self
77598 }
77599 #[inline]
77600 pub fn shader_mixed_float_dot_product_b_float16_acc(mut self, value: bool) -> Self {
77601 self.inner.shader_mixed_float_dot_product_b_float16_acc = value as u32;
77602 self
77603 }
77604 #[inline]
77605 pub fn shader_mixed_float_dot_product_float8_acc_float32(
77606 mut self,
77607 value: bool,
77608 ) -> Self {
77609 self.inner.shader_mixed_float_dot_product_float8_acc_float32 = value as u32;
77610 self
77611 }
77612 #[inline]
77614 pub fn push_next<T: ExtendsPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE>(
77615 mut self,
77616 next: &'a mut T,
77617 ) -> Self {
77618 unsafe {
77619 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77620 (*next_ptr).p_next = self.inner.p_next as *mut _;
77621 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77622 core::ffi::c_void,
77623 >(next_ptr);
77624 }
77625 self
77626 }
77627}
77628impl<'a> core::ops::Deref
77629for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder<'a> {
77630 type Target = PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE;
77631 #[inline]
77632 fn deref(&self) -> &Self::Target {
77633 &self.inner
77634 }
77635}
77636impl<'a> core::ops::DerefMut
77637for PhysicalDeviceShaderMixedFloatDotProductFeaturesVALVEBuilder<'a> {
77638 #[inline]
77639 fn deref_mut(&mut self) -> &mut Self::Target {
77640 &mut self.inner
77641 }
77642}
77643pub struct PhysicalDeviceFormatPackFeaturesARMBuilder<'a> {
77645 inner: PhysicalDeviceFormatPackFeaturesARM,
77646 _marker: core::marker::PhantomData<&'a ()>,
77647}
77648impl PhysicalDeviceFormatPackFeaturesARM {
77649 #[inline]
77651 pub fn builder<'a>() -> PhysicalDeviceFormatPackFeaturesARMBuilder<'a> {
77652 PhysicalDeviceFormatPackFeaturesARMBuilder {
77653 inner: PhysicalDeviceFormatPackFeaturesARM {
77654 s_type: StructureType::from_raw(1000609000i32),
77655 ..Default::default()
77656 },
77657 _marker: core::marker::PhantomData,
77658 }
77659 }
77660}
77661impl<'a> PhysicalDeviceFormatPackFeaturesARMBuilder<'a> {
77662 #[inline]
77663 pub fn format_pack(mut self, value: bool) -> Self {
77664 self.inner.format_pack = value as u32;
77665 self
77666 }
77667 #[inline]
77669 pub fn push_next<T: ExtendsPhysicalDeviceFormatPackFeaturesARM>(
77670 mut self,
77671 next: &'a mut T,
77672 ) -> Self {
77673 unsafe {
77674 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77675 (*next_ptr).p_next = self.inner.p_next as *mut _;
77676 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77677 core::ffi::c_void,
77678 >(next_ptr);
77679 }
77680 self
77681 }
77682}
77683impl<'a> core::ops::Deref for PhysicalDeviceFormatPackFeaturesARMBuilder<'a> {
77684 type Target = PhysicalDeviceFormatPackFeaturesARM;
77685 #[inline]
77686 fn deref(&self) -> &Self::Target {
77687 &self.inner
77688 }
77689}
77690impl<'a> core::ops::DerefMut for PhysicalDeviceFormatPackFeaturesARMBuilder<'a> {
77691 #[inline]
77692 fn deref_mut(&mut self) -> &mut Self::Target {
77693 &mut self.inner
77694 }
77695}
77696pub struct TensorDescriptionARMBuilder<'a> {
77698 inner: TensorDescriptionARM,
77699 _marker: core::marker::PhantomData<&'a ()>,
77700}
77701impl TensorDescriptionARM {
77702 #[inline]
77704 pub fn builder<'a>() -> TensorDescriptionARMBuilder<'a> {
77705 TensorDescriptionARMBuilder {
77706 inner: TensorDescriptionARM {
77707 s_type: StructureType::from_raw(1000460006i32),
77708 ..Default::default()
77709 },
77710 _marker: core::marker::PhantomData,
77711 }
77712 }
77713}
77714impl<'a> TensorDescriptionARMBuilder<'a> {
77715 #[inline]
77716 pub fn tiling(mut self, value: TensorTilingARM) -> Self {
77717 self.inner.tiling = value;
77718 self
77719 }
77720 #[inline]
77721 pub fn format(mut self, value: Format) -> Self {
77722 self.inner.format = value;
77723 self
77724 }
77725 #[inline]
77726 pub fn dimensions(mut self, slice: &'a [i64]) -> Self {
77727 self.inner.dimension_count = slice.len() as u32;
77728 self.inner.p_dimensions = slice.as_ptr();
77729 self
77730 }
77731 #[inline]
77732 pub fn strides(mut self, slice: &'a [i64]) -> Self {
77733 self.inner.dimension_count = slice.len() as u32;
77734 self.inner.p_strides = slice.as_ptr();
77735 self
77736 }
77737 #[inline]
77738 pub fn usage(mut self, value: TensorUsageFlagsARM) -> Self {
77739 self.inner.usage = value;
77740 self
77741 }
77742 #[inline]
77744 pub fn push_next<T: ExtendsTensorDescriptionARM>(mut self, next: &'a mut T) -> Self {
77745 unsafe {
77746 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77747 (*next_ptr).p_next = self.inner.p_next as *mut _;
77748 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77749 core::ffi::c_void,
77750 >(next_ptr) as *const _;
77751 }
77752 self
77753 }
77754}
77755impl<'a> core::ops::Deref for TensorDescriptionARMBuilder<'a> {
77756 type Target = TensorDescriptionARM;
77757 #[inline]
77758 fn deref(&self) -> &Self::Target {
77759 &self.inner
77760 }
77761}
77762impl<'a> core::ops::DerefMut for TensorDescriptionARMBuilder<'a> {
77763 #[inline]
77764 fn deref_mut(&mut self) -> &mut Self::Target {
77765 &mut self.inner
77766 }
77767}
77768pub struct TensorCreateInfoARMBuilder<'a> {
77770 inner: TensorCreateInfoARM,
77771 _marker: core::marker::PhantomData<&'a ()>,
77772}
77773impl TensorCreateInfoARM {
77774 #[inline]
77776 pub fn builder<'a>() -> TensorCreateInfoARMBuilder<'a> {
77777 TensorCreateInfoARMBuilder {
77778 inner: TensorCreateInfoARM {
77779 s_type: StructureType::from_raw(1000460000i32),
77780 ..Default::default()
77781 },
77782 _marker: core::marker::PhantomData,
77783 }
77784 }
77785}
77786impl<'a> TensorCreateInfoARMBuilder<'a> {
77787 #[inline]
77788 pub fn flags(mut self, value: TensorCreateFlagsARM) -> Self {
77789 self.inner.flags = value;
77790 self
77791 }
77792 #[inline]
77793 pub fn description(mut self, value: &'a TensorDescriptionARM) -> Self {
77794 self.inner.p_description = value;
77795 self
77796 }
77797 #[inline]
77798 pub fn sharing_mode(mut self, value: SharingMode) -> Self {
77799 self.inner.sharing_mode = value;
77800 self
77801 }
77802 #[inline]
77803 pub fn queue_family_indices(mut self, slice: &'a [u32]) -> Self {
77804 self.inner.queue_family_index_count = slice.len() as u32;
77805 self.inner.p_queue_family_indices = slice.as_ptr();
77806 self
77807 }
77808 #[inline]
77810 pub fn push_next<T: ExtendsTensorCreateInfoARM>(mut self, next: &'a mut T) -> Self {
77811 unsafe {
77812 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77813 (*next_ptr).p_next = self.inner.p_next as *mut _;
77814 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77815 core::ffi::c_void,
77816 >(next_ptr) as *const _;
77817 }
77818 self
77819 }
77820}
77821impl<'a> core::ops::Deref for TensorCreateInfoARMBuilder<'a> {
77822 type Target = TensorCreateInfoARM;
77823 #[inline]
77824 fn deref(&self) -> &Self::Target {
77825 &self.inner
77826 }
77827}
77828impl<'a> core::ops::DerefMut for TensorCreateInfoARMBuilder<'a> {
77829 #[inline]
77830 fn deref_mut(&mut self) -> &mut Self::Target {
77831 &mut self.inner
77832 }
77833}
77834pub struct TensorViewCreateInfoARMBuilder<'a> {
77836 inner: TensorViewCreateInfoARM,
77837 _marker: core::marker::PhantomData<&'a ()>,
77838}
77839impl TensorViewCreateInfoARM {
77840 #[inline]
77842 pub fn builder<'a>() -> TensorViewCreateInfoARMBuilder<'a> {
77843 TensorViewCreateInfoARMBuilder {
77844 inner: TensorViewCreateInfoARM {
77845 s_type: StructureType::from_raw(1000460001i32),
77846 ..Default::default()
77847 },
77848 _marker: core::marker::PhantomData,
77849 }
77850 }
77851}
77852impl<'a> TensorViewCreateInfoARMBuilder<'a> {
77853 #[inline]
77854 pub fn flags(mut self, value: TensorViewCreateFlagsARM) -> Self {
77855 self.inner.flags = value;
77856 self
77857 }
77858 #[inline]
77859 pub fn tensor(mut self, value: TensorARM) -> Self {
77860 self.inner.tensor = value;
77861 self
77862 }
77863 #[inline]
77864 pub fn format(mut self, value: Format) -> Self {
77865 self.inner.format = value;
77866 self
77867 }
77868 #[inline]
77870 pub fn push_next<T: ExtendsTensorViewCreateInfoARM>(
77871 mut self,
77872 next: &'a mut T,
77873 ) -> Self {
77874 unsafe {
77875 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77876 (*next_ptr).p_next = self.inner.p_next as *mut _;
77877 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77878 core::ffi::c_void,
77879 >(next_ptr) as *const _;
77880 }
77881 self
77882 }
77883}
77884impl<'a> core::ops::Deref for TensorViewCreateInfoARMBuilder<'a> {
77885 type Target = TensorViewCreateInfoARM;
77886 #[inline]
77887 fn deref(&self) -> &Self::Target {
77888 &self.inner
77889 }
77890}
77891impl<'a> core::ops::DerefMut for TensorViewCreateInfoARMBuilder<'a> {
77892 #[inline]
77893 fn deref_mut(&mut self) -> &mut Self::Target {
77894 &mut self.inner
77895 }
77896}
77897pub struct TensorMemoryRequirementsInfoARMBuilder<'a> {
77899 inner: TensorMemoryRequirementsInfoARM,
77900 _marker: core::marker::PhantomData<&'a ()>,
77901}
77902impl TensorMemoryRequirementsInfoARM {
77903 #[inline]
77905 pub fn builder<'a>() -> TensorMemoryRequirementsInfoARMBuilder<'a> {
77906 TensorMemoryRequirementsInfoARMBuilder {
77907 inner: TensorMemoryRequirementsInfoARM {
77908 s_type: StructureType::from_raw(1000460007i32),
77909 ..Default::default()
77910 },
77911 _marker: core::marker::PhantomData,
77912 }
77913 }
77914}
77915impl<'a> TensorMemoryRequirementsInfoARMBuilder<'a> {
77916 #[inline]
77917 pub fn tensor(mut self, value: TensorARM) -> Self {
77918 self.inner.tensor = value;
77919 self
77920 }
77921 #[inline]
77923 pub fn push_next<T: ExtendsTensorMemoryRequirementsInfoARM>(
77924 mut self,
77925 next: &'a mut T,
77926 ) -> Self {
77927 unsafe {
77928 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77929 (*next_ptr).p_next = self.inner.p_next as *mut _;
77930 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77931 core::ffi::c_void,
77932 >(next_ptr) as *const _;
77933 }
77934 self
77935 }
77936}
77937impl<'a> core::ops::Deref for TensorMemoryRequirementsInfoARMBuilder<'a> {
77938 type Target = TensorMemoryRequirementsInfoARM;
77939 #[inline]
77940 fn deref(&self) -> &Self::Target {
77941 &self.inner
77942 }
77943}
77944impl<'a> core::ops::DerefMut for TensorMemoryRequirementsInfoARMBuilder<'a> {
77945 #[inline]
77946 fn deref_mut(&mut self) -> &mut Self::Target {
77947 &mut self.inner
77948 }
77949}
77950pub struct BindTensorMemoryInfoARMBuilder<'a> {
77952 inner: BindTensorMemoryInfoARM,
77953 _marker: core::marker::PhantomData<&'a ()>,
77954}
77955impl BindTensorMemoryInfoARM {
77956 #[inline]
77958 pub fn builder<'a>() -> BindTensorMemoryInfoARMBuilder<'a> {
77959 BindTensorMemoryInfoARMBuilder {
77960 inner: BindTensorMemoryInfoARM {
77961 s_type: StructureType::from_raw(1000460002i32),
77962 ..Default::default()
77963 },
77964 _marker: core::marker::PhantomData,
77965 }
77966 }
77967}
77968impl<'a> BindTensorMemoryInfoARMBuilder<'a> {
77969 #[inline]
77970 pub fn tensor(mut self, value: TensorARM) -> Self {
77971 self.inner.tensor = value;
77972 self
77973 }
77974 #[inline]
77975 pub fn memory(mut self, value: DeviceMemory) -> Self {
77976 self.inner.memory = value;
77977 self
77978 }
77979 #[inline]
77980 pub fn memory_offset(mut self, value: u64) -> Self {
77981 self.inner.memory_offset = value;
77982 self
77983 }
77984 #[inline]
77986 pub fn push_next<T: ExtendsBindTensorMemoryInfoARM>(
77987 mut self,
77988 next: &'a mut T,
77989 ) -> Self {
77990 unsafe {
77991 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
77992 (*next_ptr).p_next = self.inner.p_next as *mut _;
77993 self.inner.p_next = <*mut BaseOutStructure>::cast::<
77994 core::ffi::c_void,
77995 >(next_ptr) as *const _;
77996 }
77997 self
77998 }
77999}
78000impl<'a> core::ops::Deref for BindTensorMemoryInfoARMBuilder<'a> {
78001 type Target = BindTensorMemoryInfoARM;
78002 #[inline]
78003 fn deref(&self) -> &Self::Target {
78004 &self.inner
78005 }
78006}
78007impl<'a> core::ops::DerefMut for BindTensorMemoryInfoARMBuilder<'a> {
78008 #[inline]
78009 fn deref_mut(&mut self) -> &mut Self::Target {
78010 &mut self.inner
78011 }
78012}
78013pub struct WriteDescriptorSetTensorARMBuilder<'a> {
78015 inner: WriteDescriptorSetTensorARM,
78016 _marker: core::marker::PhantomData<&'a ()>,
78017}
78018impl WriteDescriptorSetTensorARM {
78019 #[inline]
78021 pub fn builder<'a>() -> WriteDescriptorSetTensorARMBuilder<'a> {
78022 WriteDescriptorSetTensorARMBuilder {
78023 inner: WriteDescriptorSetTensorARM {
78024 s_type: StructureType::from_raw(1000460003i32),
78025 ..Default::default()
78026 },
78027 _marker: core::marker::PhantomData,
78028 }
78029 }
78030}
78031impl<'a> WriteDescriptorSetTensorARMBuilder<'a> {
78032 #[inline]
78033 pub fn tensor_view_count(mut self, value: u32) -> Self {
78034 self.inner.tensor_view_count = value;
78035 self
78036 }
78037 #[inline]
78038 pub fn tensor_views(mut self, slice: &'a [TensorViewARM]) -> Self {
78039 self.inner.tensor_view_count = slice.len() as u32;
78040 self.inner.p_tensor_views = slice.as_ptr();
78041 self
78042 }
78043 #[inline]
78045 pub fn push_next<T: ExtendsWriteDescriptorSetTensorARM>(
78046 mut self,
78047 next: &'a mut T,
78048 ) -> Self {
78049 unsafe {
78050 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78051 (*next_ptr).p_next = self.inner.p_next as *mut _;
78052 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78053 core::ffi::c_void,
78054 >(next_ptr) as *const _;
78055 }
78056 self
78057 }
78058}
78059impl<'a> core::ops::Deref for WriteDescriptorSetTensorARMBuilder<'a> {
78060 type Target = WriteDescriptorSetTensorARM;
78061 #[inline]
78062 fn deref(&self) -> &Self::Target {
78063 &self.inner
78064 }
78065}
78066impl<'a> core::ops::DerefMut for WriteDescriptorSetTensorARMBuilder<'a> {
78067 #[inline]
78068 fn deref_mut(&mut self) -> &mut Self::Target {
78069 &mut self.inner
78070 }
78071}
78072pub struct TensorFormatPropertiesARMBuilder<'a> {
78074 inner: TensorFormatPropertiesARM,
78075 _marker: core::marker::PhantomData<&'a ()>,
78076}
78077impl TensorFormatPropertiesARM {
78078 #[inline]
78080 pub fn builder<'a>() -> TensorFormatPropertiesARMBuilder<'a> {
78081 TensorFormatPropertiesARMBuilder {
78082 inner: TensorFormatPropertiesARM {
78083 s_type: StructureType::from_raw(1000460005i32),
78084 ..Default::default()
78085 },
78086 _marker: core::marker::PhantomData,
78087 }
78088 }
78089}
78090impl<'a> TensorFormatPropertiesARMBuilder<'a> {
78091 #[inline]
78092 pub fn optimal_tiling_tensor_features(mut self, value: FormatFeatureFlags2) -> Self {
78093 self.inner.optimal_tiling_tensor_features = value;
78094 self
78095 }
78096 #[inline]
78097 pub fn linear_tiling_tensor_features(mut self, value: FormatFeatureFlags2) -> Self {
78098 self.inner.linear_tiling_tensor_features = value;
78099 self
78100 }
78101}
78102impl<'a> core::ops::Deref for TensorFormatPropertiesARMBuilder<'a> {
78103 type Target = TensorFormatPropertiesARM;
78104 #[inline]
78105 fn deref(&self) -> &Self::Target {
78106 &self.inner
78107 }
78108}
78109impl<'a> core::ops::DerefMut for TensorFormatPropertiesARMBuilder<'a> {
78110 #[inline]
78111 fn deref_mut(&mut self) -> &mut Self::Target {
78112 &mut self.inner
78113 }
78114}
78115pub struct PhysicalDeviceTensorPropertiesARMBuilder<'a> {
78117 inner: PhysicalDeviceTensorPropertiesARM,
78118 _marker: core::marker::PhantomData<&'a ()>,
78119}
78120impl PhysicalDeviceTensorPropertiesARM {
78121 #[inline]
78123 pub fn builder<'a>() -> PhysicalDeviceTensorPropertiesARMBuilder<'a> {
78124 PhysicalDeviceTensorPropertiesARMBuilder {
78125 inner: PhysicalDeviceTensorPropertiesARM {
78126 s_type: StructureType::from_raw(1000460004i32),
78127 ..Default::default()
78128 },
78129 _marker: core::marker::PhantomData,
78130 }
78131 }
78132}
78133impl<'a> PhysicalDeviceTensorPropertiesARMBuilder<'a> {
78134 #[inline]
78135 pub fn max_tensor_dimension_count(mut self, value: u32) -> Self {
78136 self.inner.max_tensor_dimension_count = value;
78137 self
78138 }
78139 #[inline]
78140 pub fn max_tensor_elements(mut self, value: u64) -> Self {
78141 self.inner.max_tensor_elements = value;
78142 self
78143 }
78144 #[inline]
78145 pub fn max_per_dimension_tensor_elements(mut self, value: u64) -> Self {
78146 self.inner.max_per_dimension_tensor_elements = value;
78147 self
78148 }
78149 #[inline]
78150 pub fn max_tensor_stride(mut self, value: i64) -> Self {
78151 self.inner.max_tensor_stride = value;
78152 self
78153 }
78154 #[inline]
78155 pub fn max_tensor_size(mut self, value: u64) -> Self {
78156 self.inner.max_tensor_size = value;
78157 self
78158 }
78159 #[inline]
78160 pub fn max_tensor_shader_access_array_length(mut self, value: u32) -> Self {
78161 self.inner.max_tensor_shader_access_array_length = value;
78162 self
78163 }
78164 #[inline]
78165 pub fn max_tensor_shader_access_size(mut self, value: u32) -> Self {
78166 self.inner.max_tensor_shader_access_size = value;
78167 self
78168 }
78169 #[inline]
78170 pub fn max_descriptor_set_storage_tensors(mut self, value: u32) -> Self {
78171 self.inner.max_descriptor_set_storage_tensors = value;
78172 self
78173 }
78174 #[inline]
78175 pub fn max_per_stage_descriptor_set_storage_tensors(mut self, value: u32) -> Self {
78176 self.inner.max_per_stage_descriptor_set_storage_tensors = value;
78177 self
78178 }
78179 #[inline]
78180 pub fn max_descriptor_set_update_after_bind_storage_tensors(
78181 mut self,
78182 value: u32,
78183 ) -> Self {
78184 self.inner.max_descriptor_set_update_after_bind_storage_tensors = value;
78185 self
78186 }
78187 #[inline]
78188 pub fn max_per_stage_descriptor_update_after_bind_storage_tensors(
78189 mut self,
78190 value: u32,
78191 ) -> Self {
78192 self.inner.max_per_stage_descriptor_update_after_bind_storage_tensors = value;
78193 self
78194 }
78195 #[inline]
78196 pub fn shader_storage_tensor_array_non_uniform_indexing_native(
78197 mut self,
78198 value: bool,
78199 ) -> Self {
78200 self.inner.shader_storage_tensor_array_non_uniform_indexing_native = value
78201 as u32;
78202 self
78203 }
78204 #[inline]
78205 pub fn shader_tensor_supported_stages(mut self, value: ShaderStageFlags) -> Self {
78206 self.inner.shader_tensor_supported_stages = value;
78207 self
78208 }
78209}
78210impl<'a> core::ops::Deref for PhysicalDeviceTensorPropertiesARMBuilder<'a> {
78211 type Target = PhysicalDeviceTensorPropertiesARM;
78212 #[inline]
78213 fn deref(&self) -> &Self::Target {
78214 &self.inner
78215 }
78216}
78217impl<'a> core::ops::DerefMut for PhysicalDeviceTensorPropertiesARMBuilder<'a> {
78218 #[inline]
78219 fn deref_mut(&mut self) -> &mut Self::Target {
78220 &mut self.inner
78221 }
78222}
78223pub struct TensorMemoryBarrierARMBuilder<'a> {
78225 inner: TensorMemoryBarrierARM,
78226 _marker: core::marker::PhantomData<&'a ()>,
78227}
78228impl TensorMemoryBarrierARM {
78229 #[inline]
78231 pub fn builder<'a>() -> TensorMemoryBarrierARMBuilder<'a> {
78232 TensorMemoryBarrierARMBuilder {
78233 inner: TensorMemoryBarrierARM {
78234 s_type: StructureType::from_raw(1000460008i32),
78235 ..Default::default()
78236 },
78237 _marker: core::marker::PhantomData,
78238 }
78239 }
78240}
78241impl<'a> TensorMemoryBarrierARMBuilder<'a> {
78242 #[inline]
78243 pub fn src_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
78244 self.inner.src_stage_mask = value;
78245 self
78246 }
78247 #[inline]
78248 pub fn src_access_mask(mut self, value: AccessFlags2) -> Self {
78249 self.inner.src_access_mask = value;
78250 self
78251 }
78252 #[inline]
78253 pub fn dst_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
78254 self.inner.dst_stage_mask = value;
78255 self
78256 }
78257 #[inline]
78258 pub fn dst_access_mask(mut self, value: AccessFlags2) -> Self {
78259 self.inner.dst_access_mask = value;
78260 self
78261 }
78262 #[inline]
78263 pub fn src_queue_family_index(mut self, value: u32) -> Self {
78264 self.inner.src_queue_family_index = value;
78265 self
78266 }
78267 #[inline]
78268 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
78269 self.inner.dst_queue_family_index = value;
78270 self
78271 }
78272 #[inline]
78273 pub fn tensor(mut self, value: TensorARM) -> Self {
78274 self.inner.tensor = value;
78275 self
78276 }
78277 #[inline]
78279 pub fn push_next<T: ExtendsTensorMemoryBarrierARM>(
78280 mut self,
78281 next: &'a mut T,
78282 ) -> Self {
78283 unsafe {
78284 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78285 (*next_ptr).p_next = self.inner.p_next as *mut _;
78286 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78287 core::ffi::c_void,
78288 >(next_ptr) as *const _;
78289 }
78290 self
78291 }
78292}
78293impl<'a> core::ops::Deref for TensorMemoryBarrierARMBuilder<'a> {
78294 type Target = TensorMemoryBarrierARM;
78295 #[inline]
78296 fn deref(&self) -> &Self::Target {
78297 &self.inner
78298 }
78299}
78300impl<'a> core::ops::DerefMut for TensorMemoryBarrierARMBuilder<'a> {
78301 #[inline]
78302 fn deref_mut(&mut self) -> &mut Self::Target {
78303 &mut self.inner
78304 }
78305}
78306pub struct TensorDependencyInfoARMBuilder<'a> {
78308 inner: TensorDependencyInfoARM,
78309 _marker: core::marker::PhantomData<&'a ()>,
78310}
78311impl TensorDependencyInfoARM {
78312 #[inline]
78314 pub fn builder<'a>() -> TensorDependencyInfoARMBuilder<'a> {
78315 TensorDependencyInfoARMBuilder {
78316 inner: TensorDependencyInfoARM {
78317 s_type: StructureType::from_raw(1000460013i32),
78318 ..Default::default()
78319 },
78320 _marker: core::marker::PhantomData,
78321 }
78322 }
78323}
78324impl<'a> TensorDependencyInfoARMBuilder<'a> {
78325 #[inline]
78326 pub fn tensor_memory_barrier_count(mut self, value: u32) -> Self {
78327 self.inner.tensor_memory_barrier_count = value;
78328 self
78329 }
78330 #[inline]
78331 pub fn tensor_memory_barriers(mut self, value: &'a TensorMemoryBarrierARM) -> Self {
78332 self.inner.p_tensor_memory_barriers = value;
78333 self
78334 }
78335 #[inline]
78337 pub fn push_next<T: ExtendsTensorDependencyInfoARM>(
78338 mut self,
78339 next: &'a mut T,
78340 ) -> Self {
78341 unsafe {
78342 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78343 (*next_ptr).p_next = self.inner.p_next as *mut _;
78344 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78345 core::ffi::c_void,
78346 >(next_ptr) as *const _;
78347 }
78348 self
78349 }
78350}
78351impl<'a> core::ops::Deref for TensorDependencyInfoARMBuilder<'a> {
78352 type Target = TensorDependencyInfoARM;
78353 #[inline]
78354 fn deref(&self) -> &Self::Target {
78355 &self.inner
78356 }
78357}
78358impl<'a> core::ops::DerefMut for TensorDependencyInfoARMBuilder<'a> {
78359 #[inline]
78360 fn deref_mut(&mut self) -> &mut Self::Target {
78361 &mut self.inner
78362 }
78363}
78364pub struct PhysicalDeviceTensorFeaturesARMBuilder<'a> {
78366 inner: PhysicalDeviceTensorFeaturesARM,
78367 _marker: core::marker::PhantomData<&'a ()>,
78368}
78369impl PhysicalDeviceTensorFeaturesARM {
78370 #[inline]
78372 pub fn builder<'a>() -> PhysicalDeviceTensorFeaturesARMBuilder<'a> {
78373 PhysicalDeviceTensorFeaturesARMBuilder {
78374 inner: PhysicalDeviceTensorFeaturesARM {
78375 s_type: StructureType::from_raw(1000460009i32),
78376 ..Default::default()
78377 },
78378 _marker: core::marker::PhantomData,
78379 }
78380 }
78381}
78382impl<'a> PhysicalDeviceTensorFeaturesARMBuilder<'a> {
78383 #[inline]
78384 pub fn tensor_non_packed(mut self, value: bool) -> Self {
78385 self.inner.tensor_non_packed = value as u32;
78386 self
78387 }
78388 #[inline]
78389 pub fn shader_tensor_access(mut self, value: bool) -> Self {
78390 self.inner.shader_tensor_access = value as u32;
78391 self
78392 }
78393 #[inline]
78394 pub fn shader_storage_tensor_array_dynamic_indexing(mut self, value: bool) -> Self {
78395 self.inner.shader_storage_tensor_array_dynamic_indexing = value as u32;
78396 self
78397 }
78398 #[inline]
78399 pub fn shader_storage_tensor_array_non_uniform_indexing(
78400 mut self,
78401 value: bool,
78402 ) -> Self {
78403 self.inner.shader_storage_tensor_array_non_uniform_indexing = value as u32;
78404 self
78405 }
78406 #[inline]
78407 pub fn descriptor_binding_storage_tensor_update_after_bind(
78408 mut self,
78409 value: bool,
78410 ) -> Self {
78411 self.inner.descriptor_binding_storage_tensor_update_after_bind = value as u32;
78412 self
78413 }
78414 #[inline]
78415 pub fn tensors(mut self, value: bool) -> Self {
78416 self.inner.tensors = value as u32;
78417 self
78418 }
78419 #[inline]
78421 pub fn push_next<T: ExtendsPhysicalDeviceTensorFeaturesARM>(
78422 mut self,
78423 next: &'a mut T,
78424 ) -> Self {
78425 unsafe {
78426 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78427 (*next_ptr).p_next = self.inner.p_next as *mut _;
78428 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78429 core::ffi::c_void,
78430 >(next_ptr);
78431 }
78432 self
78433 }
78434}
78435impl<'a> core::ops::Deref for PhysicalDeviceTensorFeaturesARMBuilder<'a> {
78436 type Target = PhysicalDeviceTensorFeaturesARM;
78437 #[inline]
78438 fn deref(&self) -> &Self::Target {
78439 &self.inner
78440 }
78441}
78442impl<'a> core::ops::DerefMut for PhysicalDeviceTensorFeaturesARMBuilder<'a> {
78443 #[inline]
78444 fn deref_mut(&mut self) -> &mut Self::Target {
78445 &mut self.inner
78446 }
78447}
78448pub struct DeviceTensorMemoryRequirementsARMBuilder<'a> {
78450 inner: DeviceTensorMemoryRequirementsARM,
78451 _marker: core::marker::PhantomData<&'a ()>,
78452}
78453impl DeviceTensorMemoryRequirementsARM {
78454 #[inline]
78456 pub fn builder<'a>() -> DeviceTensorMemoryRequirementsARMBuilder<'a> {
78457 DeviceTensorMemoryRequirementsARMBuilder {
78458 inner: DeviceTensorMemoryRequirementsARM {
78459 s_type: StructureType::from_raw(1000460010i32),
78460 ..Default::default()
78461 },
78462 _marker: core::marker::PhantomData,
78463 }
78464 }
78465}
78466impl<'a> DeviceTensorMemoryRequirementsARMBuilder<'a> {
78467 #[inline]
78468 pub fn create_info(mut self, value: &'a TensorCreateInfoARM) -> Self {
78469 self.inner.p_create_info = value;
78470 self
78471 }
78472 #[inline]
78474 pub fn push_next<T: ExtendsDeviceTensorMemoryRequirementsARM>(
78475 mut self,
78476 next: &'a mut T,
78477 ) -> Self {
78478 unsafe {
78479 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78480 (*next_ptr).p_next = self.inner.p_next as *mut _;
78481 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78482 core::ffi::c_void,
78483 >(next_ptr) as *const _;
78484 }
78485 self
78486 }
78487}
78488impl<'a> core::ops::Deref for DeviceTensorMemoryRequirementsARMBuilder<'a> {
78489 type Target = DeviceTensorMemoryRequirementsARM;
78490 #[inline]
78491 fn deref(&self) -> &Self::Target {
78492 &self.inner
78493 }
78494}
78495impl<'a> core::ops::DerefMut for DeviceTensorMemoryRequirementsARMBuilder<'a> {
78496 #[inline]
78497 fn deref_mut(&mut self) -> &mut Self::Target {
78498 &mut self.inner
78499 }
78500}
78501pub struct CopyTensorInfoARMBuilder<'a> {
78503 inner: CopyTensorInfoARM,
78504 _marker: core::marker::PhantomData<&'a ()>,
78505}
78506impl CopyTensorInfoARM {
78507 #[inline]
78509 pub fn builder<'a>() -> CopyTensorInfoARMBuilder<'a> {
78510 CopyTensorInfoARMBuilder {
78511 inner: CopyTensorInfoARM {
78512 s_type: StructureType::from_raw(1000460011i32),
78513 ..Default::default()
78514 },
78515 _marker: core::marker::PhantomData,
78516 }
78517 }
78518}
78519impl<'a> CopyTensorInfoARMBuilder<'a> {
78520 #[inline]
78521 pub fn src_tensor(mut self, value: TensorARM) -> Self {
78522 self.inner.src_tensor = value;
78523 self
78524 }
78525 #[inline]
78526 pub fn dst_tensor(mut self, value: TensorARM) -> Self {
78527 self.inner.dst_tensor = value;
78528 self
78529 }
78530 #[inline]
78531 pub fn regions(mut self, slice: &'a [TensorCopyARM]) -> Self {
78532 self.inner.region_count = slice.len() as u32;
78533 self.inner.p_regions = slice.as_ptr();
78534 self
78535 }
78536 #[inline]
78538 pub fn push_next<T: ExtendsCopyTensorInfoARM>(mut self, next: &'a mut T) -> Self {
78539 unsafe {
78540 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78541 (*next_ptr).p_next = self.inner.p_next as *mut _;
78542 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78543 core::ffi::c_void,
78544 >(next_ptr) as *const _;
78545 }
78546 self
78547 }
78548}
78549impl<'a> core::ops::Deref for CopyTensorInfoARMBuilder<'a> {
78550 type Target = CopyTensorInfoARM;
78551 #[inline]
78552 fn deref(&self) -> &Self::Target {
78553 &self.inner
78554 }
78555}
78556impl<'a> core::ops::DerefMut for CopyTensorInfoARMBuilder<'a> {
78557 #[inline]
78558 fn deref_mut(&mut self) -> &mut Self::Target {
78559 &mut self.inner
78560 }
78561}
78562pub struct TensorCopyARMBuilder<'a> {
78564 inner: TensorCopyARM,
78565 _marker: core::marker::PhantomData<&'a ()>,
78566}
78567impl TensorCopyARM {
78568 #[inline]
78570 pub fn builder<'a>() -> TensorCopyARMBuilder<'a> {
78571 TensorCopyARMBuilder {
78572 inner: TensorCopyARM {
78573 s_type: StructureType::from_raw(1000460012i32),
78574 ..Default::default()
78575 },
78576 _marker: core::marker::PhantomData,
78577 }
78578 }
78579}
78580impl<'a> TensorCopyARMBuilder<'a> {
78581 #[inline]
78582 pub fn dimension_count(mut self, value: u32) -> Self {
78583 self.inner.dimension_count = value;
78584 self
78585 }
78586 #[inline]
78587 pub fn src_offset(mut self, slice: &'a [u64]) -> Self {
78588 self.inner.dimension_count = slice.len() as u32;
78589 self.inner.p_src_offset = slice.as_ptr();
78590 self
78591 }
78592 #[inline]
78593 pub fn dst_offset(mut self, slice: &'a [u64]) -> Self {
78594 self.inner.dimension_count = slice.len() as u32;
78595 self.inner.p_dst_offset = slice.as_ptr();
78596 self
78597 }
78598 #[inline]
78599 pub fn extent(mut self, slice: &'a [u64]) -> Self {
78600 self.inner.dimension_count = slice.len() as u32;
78601 self.inner.p_extent = slice.as_ptr();
78602 self
78603 }
78604 #[inline]
78606 pub fn push_next<T: ExtendsTensorCopyARM>(mut self, next: &'a mut T) -> Self {
78607 unsafe {
78608 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78609 (*next_ptr).p_next = self.inner.p_next as *mut _;
78610 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78611 core::ffi::c_void,
78612 >(next_ptr) as *const _;
78613 }
78614 self
78615 }
78616}
78617impl<'a> core::ops::Deref for TensorCopyARMBuilder<'a> {
78618 type Target = TensorCopyARM;
78619 #[inline]
78620 fn deref(&self) -> &Self::Target {
78621 &self.inner
78622 }
78623}
78624impl<'a> core::ops::DerefMut for TensorCopyARMBuilder<'a> {
78625 #[inline]
78626 fn deref_mut(&mut self) -> &mut Self::Target {
78627 &mut self.inner
78628 }
78629}
78630pub struct MemoryDedicatedAllocateInfoTensorARMBuilder<'a> {
78632 inner: MemoryDedicatedAllocateInfoTensorARM,
78633 _marker: core::marker::PhantomData<&'a ()>,
78634}
78635impl MemoryDedicatedAllocateInfoTensorARM {
78636 #[inline]
78638 pub fn builder<'a>() -> MemoryDedicatedAllocateInfoTensorARMBuilder<'a> {
78639 MemoryDedicatedAllocateInfoTensorARMBuilder {
78640 inner: MemoryDedicatedAllocateInfoTensorARM {
78641 s_type: StructureType::from_raw(1000460014i32),
78642 ..Default::default()
78643 },
78644 _marker: core::marker::PhantomData,
78645 }
78646 }
78647}
78648impl<'a> MemoryDedicatedAllocateInfoTensorARMBuilder<'a> {
78649 #[inline]
78650 pub fn tensor(mut self, value: TensorARM) -> Self {
78651 self.inner.tensor = value;
78652 self
78653 }
78654 #[inline]
78656 pub fn push_next<T: ExtendsMemoryDedicatedAllocateInfoTensorARM>(
78657 mut self,
78658 next: &'a mut T,
78659 ) -> Self {
78660 unsafe {
78661 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78662 (*next_ptr).p_next = self.inner.p_next as *mut _;
78663 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78664 core::ffi::c_void,
78665 >(next_ptr) as *const _;
78666 }
78667 self
78668 }
78669}
78670impl<'a> core::ops::Deref for MemoryDedicatedAllocateInfoTensorARMBuilder<'a> {
78671 type Target = MemoryDedicatedAllocateInfoTensorARM;
78672 #[inline]
78673 fn deref(&self) -> &Self::Target {
78674 &self.inner
78675 }
78676}
78677impl<'a> core::ops::DerefMut for MemoryDedicatedAllocateInfoTensorARMBuilder<'a> {
78678 #[inline]
78679 fn deref_mut(&mut self) -> &mut Self::Target {
78680 &mut self.inner
78681 }
78682}
78683pub struct PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder<'a> {
78685 inner: PhysicalDeviceDescriptorBufferTensorPropertiesARM,
78686 _marker: core::marker::PhantomData<&'a ()>,
78687}
78688impl PhysicalDeviceDescriptorBufferTensorPropertiesARM {
78689 #[inline]
78691 pub fn builder<'a>() -> PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder<
78692 'a,
78693 > {
78694 PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder {
78695 inner: PhysicalDeviceDescriptorBufferTensorPropertiesARM {
78696 s_type: StructureType::from_raw(1000460019i32),
78697 ..Default::default()
78698 },
78699 _marker: core::marker::PhantomData,
78700 }
78701 }
78702}
78703impl<'a> PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder<'a> {
78704 #[inline]
78705 pub fn tensor_capture_replay_descriptor_data_size(mut self, value: usize) -> Self {
78706 self.inner.tensor_capture_replay_descriptor_data_size = value;
78707 self
78708 }
78709 #[inline]
78710 pub fn tensor_view_capture_replay_descriptor_data_size(
78711 mut self,
78712 value: usize,
78713 ) -> Self {
78714 self.inner.tensor_view_capture_replay_descriptor_data_size = value;
78715 self
78716 }
78717 #[inline]
78718 pub fn tensor_descriptor_size(mut self, value: usize) -> Self {
78719 self.inner.tensor_descriptor_size = value;
78720 self
78721 }
78722 #[inline]
78724 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorBufferTensorPropertiesARM>(
78725 mut self,
78726 next: &'a mut T,
78727 ) -> Self {
78728 unsafe {
78729 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78730 (*next_ptr).p_next = self.inner.p_next as *mut _;
78731 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78732 core::ffi::c_void,
78733 >(next_ptr);
78734 }
78735 self
78736 }
78737}
78738impl<'a> core::ops::Deref
78739for PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder<'a> {
78740 type Target = PhysicalDeviceDescriptorBufferTensorPropertiesARM;
78741 #[inline]
78742 fn deref(&self) -> &Self::Target {
78743 &self.inner
78744 }
78745}
78746impl<'a> core::ops::DerefMut
78747for PhysicalDeviceDescriptorBufferTensorPropertiesARMBuilder<'a> {
78748 #[inline]
78749 fn deref_mut(&mut self) -> &mut Self::Target {
78750 &mut self.inner
78751 }
78752}
78753pub struct PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder<'a> {
78755 inner: PhysicalDeviceDescriptorBufferTensorFeaturesARM,
78756 _marker: core::marker::PhantomData<&'a ()>,
78757}
78758impl PhysicalDeviceDescriptorBufferTensorFeaturesARM {
78759 #[inline]
78761 pub fn builder<'a>() -> PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder<'a> {
78762 PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder {
78763 inner: PhysicalDeviceDescriptorBufferTensorFeaturesARM {
78764 s_type: StructureType::from_raw(1000460018i32),
78765 ..Default::default()
78766 },
78767 _marker: core::marker::PhantomData,
78768 }
78769 }
78770}
78771impl<'a> PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder<'a> {
78772 #[inline]
78773 pub fn descriptor_buffer_tensor_descriptors(mut self, value: bool) -> Self {
78774 self.inner.descriptor_buffer_tensor_descriptors = value as u32;
78775 self
78776 }
78777 #[inline]
78779 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorBufferTensorFeaturesARM>(
78780 mut self,
78781 next: &'a mut T,
78782 ) -> Self {
78783 unsafe {
78784 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78785 (*next_ptr).p_next = self.inner.p_next as *mut _;
78786 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78787 core::ffi::c_void,
78788 >(next_ptr);
78789 }
78790 self
78791 }
78792}
78793impl<'a> core::ops::Deref
78794for PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder<'a> {
78795 type Target = PhysicalDeviceDescriptorBufferTensorFeaturesARM;
78796 #[inline]
78797 fn deref(&self) -> &Self::Target {
78798 &self.inner
78799 }
78800}
78801impl<'a> core::ops::DerefMut
78802for PhysicalDeviceDescriptorBufferTensorFeaturesARMBuilder<'a> {
78803 #[inline]
78804 fn deref_mut(&mut self) -> &mut Self::Target {
78805 &mut self.inner
78806 }
78807}
78808pub struct TensorCaptureDescriptorDataInfoARMBuilder<'a> {
78810 inner: TensorCaptureDescriptorDataInfoARM,
78811 _marker: core::marker::PhantomData<&'a ()>,
78812}
78813impl TensorCaptureDescriptorDataInfoARM {
78814 #[inline]
78816 pub fn builder<'a>() -> TensorCaptureDescriptorDataInfoARMBuilder<'a> {
78817 TensorCaptureDescriptorDataInfoARMBuilder {
78818 inner: TensorCaptureDescriptorDataInfoARM {
78819 s_type: StructureType::from_raw(1000460021i32),
78820 ..Default::default()
78821 },
78822 _marker: core::marker::PhantomData,
78823 }
78824 }
78825}
78826impl<'a> TensorCaptureDescriptorDataInfoARMBuilder<'a> {
78827 #[inline]
78828 pub fn tensor(mut self, value: TensorARM) -> Self {
78829 self.inner.tensor = value;
78830 self
78831 }
78832 #[inline]
78834 pub fn push_next<T: ExtendsTensorCaptureDescriptorDataInfoARM>(
78835 mut self,
78836 next: &'a mut T,
78837 ) -> Self {
78838 unsafe {
78839 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78840 (*next_ptr).p_next = self.inner.p_next as *mut _;
78841 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78842 core::ffi::c_void,
78843 >(next_ptr) as *const _;
78844 }
78845 self
78846 }
78847}
78848impl<'a> core::ops::Deref for TensorCaptureDescriptorDataInfoARMBuilder<'a> {
78849 type Target = TensorCaptureDescriptorDataInfoARM;
78850 #[inline]
78851 fn deref(&self) -> &Self::Target {
78852 &self.inner
78853 }
78854}
78855impl<'a> core::ops::DerefMut for TensorCaptureDescriptorDataInfoARMBuilder<'a> {
78856 #[inline]
78857 fn deref_mut(&mut self) -> &mut Self::Target {
78858 &mut self.inner
78859 }
78860}
78861pub struct TensorViewCaptureDescriptorDataInfoARMBuilder<'a> {
78863 inner: TensorViewCaptureDescriptorDataInfoARM,
78864 _marker: core::marker::PhantomData<&'a ()>,
78865}
78866impl TensorViewCaptureDescriptorDataInfoARM {
78867 #[inline]
78869 pub fn builder<'a>() -> TensorViewCaptureDescriptorDataInfoARMBuilder<'a> {
78870 TensorViewCaptureDescriptorDataInfoARMBuilder {
78871 inner: TensorViewCaptureDescriptorDataInfoARM {
78872 s_type: StructureType::from_raw(1000460022i32),
78873 ..Default::default()
78874 },
78875 _marker: core::marker::PhantomData,
78876 }
78877 }
78878}
78879impl<'a> TensorViewCaptureDescriptorDataInfoARMBuilder<'a> {
78880 #[inline]
78881 pub fn tensor_view(mut self, value: TensorViewARM) -> Self {
78882 self.inner.tensor_view = value;
78883 self
78884 }
78885 #[inline]
78887 pub fn push_next<T: ExtendsTensorViewCaptureDescriptorDataInfoARM>(
78888 mut self,
78889 next: &'a mut T,
78890 ) -> Self {
78891 unsafe {
78892 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78893 (*next_ptr).p_next = self.inner.p_next as *mut _;
78894 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78895 core::ffi::c_void,
78896 >(next_ptr) as *const _;
78897 }
78898 self
78899 }
78900}
78901impl<'a> core::ops::Deref for TensorViewCaptureDescriptorDataInfoARMBuilder<'a> {
78902 type Target = TensorViewCaptureDescriptorDataInfoARM;
78903 #[inline]
78904 fn deref(&self) -> &Self::Target {
78905 &self.inner
78906 }
78907}
78908impl<'a> core::ops::DerefMut for TensorViewCaptureDescriptorDataInfoARMBuilder<'a> {
78909 #[inline]
78910 fn deref_mut(&mut self) -> &mut Self::Target {
78911 &mut self.inner
78912 }
78913}
78914pub struct DescriptorGetTensorInfoARMBuilder<'a> {
78916 inner: DescriptorGetTensorInfoARM,
78917 _marker: core::marker::PhantomData<&'a ()>,
78918}
78919impl DescriptorGetTensorInfoARM {
78920 #[inline]
78922 pub fn builder<'a>() -> DescriptorGetTensorInfoARMBuilder<'a> {
78923 DescriptorGetTensorInfoARMBuilder {
78924 inner: DescriptorGetTensorInfoARM {
78925 s_type: StructureType::from_raw(1000460020i32),
78926 ..Default::default()
78927 },
78928 _marker: core::marker::PhantomData,
78929 }
78930 }
78931}
78932impl<'a> DescriptorGetTensorInfoARMBuilder<'a> {
78933 #[inline]
78934 pub fn tensor_view(mut self, value: TensorViewARM) -> Self {
78935 self.inner.tensor_view = value;
78936 self
78937 }
78938 #[inline]
78940 pub fn push_next<T: ExtendsDescriptorGetTensorInfoARM>(
78941 mut self,
78942 next: &'a mut T,
78943 ) -> Self {
78944 unsafe {
78945 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
78946 (*next_ptr).p_next = self.inner.p_next as *mut _;
78947 self.inner.p_next = <*mut BaseOutStructure>::cast::<
78948 core::ffi::c_void,
78949 >(next_ptr) as *const _;
78950 }
78951 self
78952 }
78953}
78954impl<'a> core::ops::Deref for DescriptorGetTensorInfoARMBuilder<'a> {
78955 type Target = DescriptorGetTensorInfoARM;
78956 #[inline]
78957 fn deref(&self) -> &Self::Target {
78958 &self.inner
78959 }
78960}
78961impl<'a> core::ops::DerefMut for DescriptorGetTensorInfoARMBuilder<'a> {
78962 #[inline]
78963 fn deref_mut(&mut self) -> &mut Self::Target {
78964 &mut self.inner
78965 }
78966}
78967pub struct FrameBoundaryTensorsARMBuilder<'a> {
78969 inner: FrameBoundaryTensorsARM,
78970 _marker: core::marker::PhantomData<&'a ()>,
78971}
78972impl FrameBoundaryTensorsARM {
78973 #[inline]
78975 pub fn builder<'a>() -> FrameBoundaryTensorsARMBuilder<'a> {
78976 FrameBoundaryTensorsARMBuilder {
78977 inner: FrameBoundaryTensorsARM {
78978 s_type: StructureType::from_raw(1000460023i32),
78979 ..Default::default()
78980 },
78981 _marker: core::marker::PhantomData,
78982 }
78983 }
78984}
78985impl<'a> FrameBoundaryTensorsARMBuilder<'a> {
78986 #[inline]
78987 pub fn tensors(mut self, slice: &'a [TensorARM]) -> Self {
78988 self.inner.tensor_count = slice.len() as u32;
78989 self.inner.p_tensors = slice.as_ptr();
78990 self
78991 }
78992 #[inline]
78994 pub fn push_next<T: ExtendsFrameBoundaryTensorsARM>(
78995 mut self,
78996 next: &'a mut T,
78997 ) -> Self {
78998 unsafe {
78999 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79000 (*next_ptr).p_next = self.inner.p_next as *mut _;
79001 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79002 core::ffi::c_void,
79003 >(next_ptr) as *const _;
79004 }
79005 self
79006 }
79007}
79008impl<'a> core::ops::Deref for FrameBoundaryTensorsARMBuilder<'a> {
79009 type Target = FrameBoundaryTensorsARM;
79010 #[inline]
79011 fn deref(&self) -> &Self::Target {
79012 &self.inner
79013 }
79014}
79015impl<'a> core::ops::DerefMut for FrameBoundaryTensorsARMBuilder<'a> {
79016 #[inline]
79017 fn deref_mut(&mut self) -> &mut Self::Target {
79018 &mut self.inner
79019 }
79020}
79021pub struct PhysicalDeviceExternalTensorInfoARMBuilder<'a> {
79023 inner: PhysicalDeviceExternalTensorInfoARM,
79024 _marker: core::marker::PhantomData<&'a ()>,
79025}
79026impl PhysicalDeviceExternalTensorInfoARM {
79027 #[inline]
79029 pub fn builder<'a>() -> PhysicalDeviceExternalTensorInfoARMBuilder<'a> {
79030 PhysicalDeviceExternalTensorInfoARMBuilder {
79031 inner: PhysicalDeviceExternalTensorInfoARM {
79032 s_type: StructureType::from_raw(1000460015i32),
79033 ..Default::default()
79034 },
79035 _marker: core::marker::PhantomData,
79036 }
79037 }
79038}
79039impl<'a> PhysicalDeviceExternalTensorInfoARMBuilder<'a> {
79040 #[inline]
79041 pub fn flags(mut self, value: TensorCreateFlagsARM) -> Self {
79042 self.inner.flags = value;
79043 self
79044 }
79045 #[inline]
79046 pub fn description(mut self, value: &'a TensorDescriptionARM) -> Self {
79047 self.inner.p_description = value;
79048 self
79049 }
79050 #[inline]
79051 pub fn handle_type(mut self, value: ExternalMemoryHandleTypeFlagBits) -> Self {
79052 self.inner.handle_type = value;
79053 self
79054 }
79055 #[inline]
79057 pub fn push_next<T: ExtendsPhysicalDeviceExternalTensorInfoARM>(
79058 mut self,
79059 next: &'a mut T,
79060 ) -> Self {
79061 unsafe {
79062 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79063 (*next_ptr).p_next = self.inner.p_next as *mut _;
79064 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79065 core::ffi::c_void,
79066 >(next_ptr) as *const _;
79067 }
79068 self
79069 }
79070}
79071impl<'a> core::ops::Deref for PhysicalDeviceExternalTensorInfoARMBuilder<'a> {
79072 type Target = PhysicalDeviceExternalTensorInfoARM;
79073 #[inline]
79074 fn deref(&self) -> &Self::Target {
79075 &self.inner
79076 }
79077}
79078impl<'a> core::ops::DerefMut for PhysicalDeviceExternalTensorInfoARMBuilder<'a> {
79079 #[inline]
79080 fn deref_mut(&mut self) -> &mut Self::Target {
79081 &mut self.inner
79082 }
79083}
79084pub struct ExternalTensorPropertiesARMBuilder<'a> {
79086 inner: ExternalTensorPropertiesARM,
79087 _marker: core::marker::PhantomData<&'a ()>,
79088}
79089impl ExternalTensorPropertiesARM {
79090 #[inline]
79092 pub fn builder<'a>() -> ExternalTensorPropertiesARMBuilder<'a> {
79093 ExternalTensorPropertiesARMBuilder {
79094 inner: ExternalTensorPropertiesARM {
79095 s_type: StructureType::from_raw(1000460016i32),
79096 ..Default::default()
79097 },
79098 _marker: core::marker::PhantomData,
79099 }
79100 }
79101}
79102impl<'a> ExternalTensorPropertiesARMBuilder<'a> {
79103 #[inline]
79104 pub fn external_memory_properties(
79105 mut self,
79106 value: ExternalMemoryProperties,
79107 ) -> Self {
79108 self.inner.external_memory_properties = value;
79109 self
79110 }
79111 #[inline]
79113 pub fn push_next<T: ExtendsExternalTensorPropertiesARM>(
79114 mut self,
79115 next: &'a mut T,
79116 ) -> Self {
79117 unsafe {
79118 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79119 (*next_ptr).p_next = self.inner.p_next as *mut _;
79120 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79121 core::ffi::c_void,
79122 >(next_ptr) as *const _;
79123 }
79124 self
79125 }
79126}
79127impl<'a> core::ops::Deref for ExternalTensorPropertiesARMBuilder<'a> {
79128 type Target = ExternalTensorPropertiesARM;
79129 #[inline]
79130 fn deref(&self) -> &Self::Target {
79131 &self.inner
79132 }
79133}
79134impl<'a> core::ops::DerefMut for ExternalTensorPropertiesARMBuilder<'a> {
79135 #[inline]
79136 fn deref_mut(&mut self) -> &mut Self::Target {
79137 &mut self.inner
79138 }
79139}
79140pub struct ExternalMemoryTensorCreateInfoARMBuilder<'a> {
79142 inner: ExternalMemoryTensorCreateInfoARM,
79143 _marker: core::marker::PhantomData<&'a ()>,
79144}
79145impl ExternalMemoryTensorCreateInfoARM {
79146 #[inline]
79148 pub fn builder<'a>() -> ExternalMemoryTensorCreateInfoARMBuilder<'a> {
79149 ExternalMemoryTensorCreateInfoARMBuilder {
79150 inner: ExternalMemoryTensorCreateInfoARM {
79151 s_type: StructureType::from_raw(1000460017i32),
79152 ..Default::default()
79153 },
79154 _marker: core::marker::PhantomData,
79155 }
79156 }
79157}
79158impl<'a> ExternalMemoryTensorCreateInfoARMBuilder<'a> {
79159 #[inline]
79160 pub fn handle_types(mut self, value: ExternalMemoryHandleTypeFlags) -> Self {
79161 self.inner.handle_types = value;
79162 self
79163 }
79164 #[inline]
79166 pub fn push_next<T: ExtendsExternalMemoryTensorCreateInfoARM>(
79167 mut self,
79168 next: &'a mut T,
79169 ) -> Self {
79170 unsafe {
79171 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79172 (*next_ptr).p_next = self.inner.p_next as *mut _;
79173 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79174 core::ffi::c_void,
79175 >(next_ptr) as *const _;
79176 }
79177 self
79178 }
79179}
79180impl<'a> core::ops::Deref for ExternalMemoryTensorCreateInfoARMBuilder<'a> {
79181 type Target = ExternalMemoryTensorCreateInfoARM;
79182 #[inline]
79183 fn deref(&self) -> &Self::Target {
79184 &self.inner
79185 }
79186}
79187impl<'a> core::ops::DerefMut for ExternalMemoryTensorCreateInfoARMBuilder<'a> {
79188 #[inline]
79189 fn deref_mut(&mut self) -> &mut Self::Target {
79190 &mut self.inner
79191 }
79192}
79193pub struct PhysicalDeviceShaderFloat8FeaturesEXTBuilder<'a> {
79195 inner: PhysicalDeviceShaderFloat8FeaturesEXT,
79196 _marker: core::marker::PhantomData<&'a ()>,
79197}
79198impl PhysicalDeviceShaderFloat8FeaturesEXT {
79199 #[inline]
79201 pub fn builder<'a>() -> PhysicalDeviceShaderFloat8FeaturesEXTBuilder<'a> {
79202 PhysicalDeviceShaderFloat8FeaturesEXTBuilder {
79203 inner: PhysicalDeviceShaderFloat8FeaturesEXT {
79204 s_type: StructureType::from_raw(1000567000i32),
79205 ..Default::default()
79206 },
79207 _marker: core::marker::PhantomData,
79208 }
79209 }
79210}
79211impl<'a> PhysicalDeviceShaderFloat8FeaturesEXTBuilder<'a> {
79212 #[inline]
79213 pub fn shader_float8(mut self, value: bool) -> Self {
79214 self.inner.shader_float8 = value as u32;
79215 self
79216 }
79217 #[inline]
79218 pub fn shader_float8_cooperative_matrix(mut self, value: bool) -> Self {
79219 self.inner.shader_float8_cooperative_matrix = value as u32;
79220 self
79221 }
79222 #[inline]
79224 pub fn push_next<T: ExtendsPhysicalDeviceShaderFloat8FeaturesEXT>(
79225 mut self,
79226 next: &'a mut T,
79227 ) -> Self {
79228 unsafe {
79229 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79230 (*next_ptr).p_next = self.inner.p_next as *mut _;
79231 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79232 core::ffi::c_void,
79233 >(next_ptr);
79234 }
79235 self
79236 }
79237}
79238impl<'a> core::ops::Deref for PhysicalDeviceShaderFloat8FeaturesEXTBuilder<'a> {
79239 type Target = PhysicalDeviceShaderFloat8FeaturesEXT;
79240 #[inline]
79241 fn deref(&self) -> &Self::Target {
79242 &self.inner
79243 }
79244}
79245impl<'a> core::ops::DerefMut for PhysicalDeviceShaderFloat8FeaturesEXTBuilder<'a> {
79246 #[inline]
79247 fn deref_mut(&mut self) -> &mut Self::Target {
79248 &mut self.inner
79249 }
79250}
79251pub struct SurfaceCreateInfoOHOSBuilder<'a> {
79253 inner: SurfaceCreateInfoOHOS,
79254 _marker: core::marker::PhantomData<&'a ()>,
79255}
79256impl SurfaceCreateInfoOHOS {
79257 #[inline]
79259 pub fn builder<'a>() -> SurfaceCreateInfoOHOSBuilder<'a> {
79260 SurfaceCreateInfoOHOSBuilder {
79261 inner: SurfaceCreateInfoOHOS {
79262 s_type: StructureType::from_raw(1000685000i32),
79263 ..Default::default()
79264 },
79265 _marker: core::marker::PhantomData,
79266 }
79267 }
79268}
79269impl<'a> SurfaceCreateInfoOHOSBuilder<'a> {
79270 #[inline]
79271 pub fn flags(mut self, value: SurfaceCreateFlagsOHOS) -> Self {
79272 self.inner.flags = value;
79273 self
79274 }
79275 #[inline]
79276 pub fn window(mut self, value: *mut core::ffi::c_void) -> Self {
79277 self.inner.window = value;
79278 self
79279 }
79280 #[inline]
79282 pub fn push_next<T: ExtendsSurfaceCreateInfoOHOS>(
79283 mut self,
79284 next: &'a mut T,
79285 ) -> Self {
79286 unsafe {
79287 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79288 (*next_ptr).p_next = self.inner.p_next as *mut _;
79289 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79290 core::ffi::c_void,
79291 >(next_ptr) as *const _;
79292 }
79293 self
79294 }
79295}
79296impl<'a> core::ops::Deref for SurfaceCreateInfoOHOSBuilder<'a> {
79297 type Target = SurfaceCreateInfoOHOS;
79298 #[inline]
79299 fn deref(&self) -> &Self::Target {
79300 &self.inner
79301 }
79302}
79303impl<'a> core::ops::DerefMut for SurfaceCreateInfoOHOSBuilder<'a> {
79304 #[inline]
79305 fn deref_mut(&mut self) -> &mut Self::Target {
79306 &mut self.inner
79307 }
79308}
79309pub struct PhysicalDeviceDataGraphFeaturesARMBuilder<'a> {
79311 inner: PhysicalDeviceDataGraphFeaturesARM,
79312 _marker: core::marker::PhantomData<&'a ()>,
79313}
79314impl PhysicalDeviceDataGraphFeaturesARM {
79315 #[inline]
79317 pub fn builder<'a>() -> PhysicalDeviceDataGraphFeaturesARMBuilder<'a> {
79318 PhysicalDeviceDataGraphFeaturesARMBuilder {
79319 inner: PhysicalDeviceDataGraphFeaturesARM {
79320 s_type: StructureType::from_raw(1000507006i32),
79321 ..Default::default()
79322 },
79323 _marker: core::marker::PhantomData,
79324 }
79325 }
79326}
79327impl<'a> PhysicalDeviceDataGraphFeaturesARMBuilder<'a> {
79328 #[inline]
79329 pub fn data_graph(mut self, value: bool) -> Self {
79330 self.inner.data_graph = value as u32;
79331 self
79332 }
79333 #[inline]
79334 pub fn data_graph_update_after_bind(mut self, value: bool) -> Self {
79335 self.inner.data_graph_update_after_bind = value as u32;
79336 self
79337 }
79338 #[inline]
79339 pub fn data_graph_specialization_constants(mut self, value: bool) -> Self {
79340 self.inner.data_graph_specialization_constants = value as u32;
79341 self
79342 }
79343 #[inline]
79344 pub fn data_graph_descriptor_buffer(mut self, value: bool) -> Self {
79345 self.inner.data_graph_descriptor_buffer = value as u32;
79346 self
79347 }
79348 #[inline]
79349 pub fn data_graph_shader_module(mut self, value: bool) -> Self {
79350 self.inner.data_graph_shader_module = value as u32;
79351 self
79352 }
79353 #[inline]
79355 pub fn push_next<T: ExtendsPhysicalDeviceDataGraphFeaturesARM>(
79356 mut self,
79357 next: &'a mut T,
79358 ) -> Self {
79359 unsafe {
79360 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79361 (*next_ptr).p_next = self.inner.p_next as *mut _;
79362 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79363 core::ffi::c_void,
79364 >(next_ptr);
79365 }
79366 self
79367 }
79368}
79369impl<'a> core::ops::Deref for PhysicalDeviceDataGraphFeaturesARMBuilder<'a> {
79370 type Target = PhysicalDeviceDataGraphFeaturesARM;
79371 #[inline]
79372 fn deref(&self) -> &Self::Target {
79373 &self.inner
79374 }
79375}
79376impl<'a> core::ops::DerefMut for PhysicalDeviceDataGraphFeaturesARMBuilder<'a> {
79377 #[inline]
79378 fn deref_mut(&mut self) -> &mut Self::Target {
79379 &mut self.inner
79380 }
79381}
79382pub struct DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder<'a> {
79384 inner: DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM,
79385 _marker: core::marker::PhantomData<&'a ()>,
79386}
79387impl DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
79388 #[inline]
79390 pub fn builder<'a>() -> DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder<
79391 'a,
79392 > {
79393 DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder {
79394 inner: DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
79395 s_type: StructureType::from_raw(1000507015i32),
79396 ..Default::default()
79397 },
79398 _marker: core::marker::PhantomData,
79399 }
79400 }
79401}
79402impl<'a> DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder<'a> {
79403 #[inline]
79404 pub fn dimension(mut self, value: u32) -> Self {
79405 self.inner.dimension = value;
79406 self
79407 }
79408 #[inline]
79409 pub fn zero_count(mut self, value: u32) -> Self {
79410 self.inner.zero_count = value;
79411 self
79412 }
79413 #[inline]
79414 pub fn group_size(mut self, value: u32) -> Self {
79415 self.inner.group_size = value;
79416 self
79417 }
79418 #[inline]
79420 pub fn push_next<
79421 T: ExtendsDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM,
79422 >(mut self, next: &'a mut T) -> Self {
79423 unsafe {
79424 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79425 (*next_ptr).p_next = self.inner.p_next as *mut _;
79426 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79427 core::ffi::c_void,
79428 >(next_ptr) as *const _;
79429 }
79430 self
79431 }
79432}
79433impl<'a> core::ops::Deref
79434for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder<'a> {
79435 type Target = DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
79436 #[inline]
79437 fn deref(&self) -> &Self::Target {
79438 &self.inner
79439 }
79440}
79441impl<'a> core::ops::DerefMut
79442for DataGraphPipelineConstantTensorSemiStructuredSparsityInfoARMBuilder<'a> {
79443 #[inline]
79444 fn deref_mut(&mut self) -> &mut Self::Target {
79445 &mut self.inner
79446 }
79447}
79448pub struct DataGraphPipelineConstantARMBuilder<'a> {
79450 inner: DataGraphPipelineConstantARM,
79451 _marker: core::marker::PhantomData<&'a ()>,
79452}
79453impl DataGraphPipelineConstantARM {
79454 #[inline]
79456 pub fn builder<'a>() -> DataGraphPipelineConstantARMBuilder<'a> {
79457 DataGraphPipelineConstantARMBuilder {
79458 inner: DataGraphPipelineConstantARM {
79459 s_type: StructureType::from_raw(1000507003i32),
79460 ..Default::default()
79461 },
79462 _marker: core::marker::PhantomData,
79463 }
79464 }
79465}
79466impl<'a> DataGraphPipelineConstantARMBuilder<'a> {
79467 #[inline]
79468 pub fn id(mut self, value: u32) -> Self {
79469 self.inner.id = value;
79470 self
79471 }
79472 #[inline]
79473 pub fn constant_data(mut self, value: *const core::ffi::c_void) -> Self {
79474 self.inner.p_constant_data = value;
79475 self
79476 }
79477 #[inline]
79479 pub fn push_next<T: ExtendsDataGraphPipelineConstantARM>(
79480 mut self,
79481 next: &'a mut T,
79482 ) -> Self {
79483 unsafe {
79484 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79485 (*next_ptr).p_next = self.inner.p_next as *mut _;
79486 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79487 core::ffi::c_void,
79488 >(next_ptr) as *const _;
79489 }
79490 self
79491 }
79492}
79493impl<'a> core::ops::Deref for DataGraphPipelineConstantARMBuilder<'a> {
79494 type Target = DataGraphPipelineConstantARM;
79495 #[inline]
79496 fn deref(&self) -> &Self::Target {
79497 &self.inner
79498 }
79499}
79500impl<'a> core::ops::DerefMut for DataGraphPipelineConstantARMBuilder<'a> {
79501 #[inline]
79502 fn deref_mut(&mut self) -> &mut Self::Target {
79503 &mut self.inner
79504 }
79505}
79506pub struct DataGraphPipelineResourceInfoARMBuilder<'a> {
79508 inner: DataGraphPipelineResourceInfoARM,
79509 _marker: core::marker::PhantomData<&'a ()>,
79510}
79511impl DataGraphPipelineResourceInfoARM {
79512 #[inline]
79514 pub fn builder<'a>() -> DataGraphPipelineResourceInfoARMBuilder<'a> {
79515 DataGraphPipelineResourceInfoARMBuilder {
79516 inner: DataGraphPipelineResourceInfoARM {
79517 s_type: StructureType::from_raw(1000507002i32),
79518 ..Default::default()
79519 },
79520 _marker: core::marker::PhantomData,
79521 }
79522 }
79523}
79524impl<'a> DataGraphPipelineResourceInfoARMBuilder<'a> {
79525 #[inline]
79526 pub fn descriptor_set(mut self, value: u32) -> Self {
79527 self.inner.descriptor_set = value;
79528 self
79529 }
79530 #[inline]
79531 pub fn binding(mut self, value: u32) -> Self {
79532 self.inner.binding = value;
79533 self
79534 }
79535 #[inline]
79536 pub fn array_element(mut self, value: u32) -> Self {
79537 self.inner.array_element = value;
79538 self
79539 }
79540 #[inline]
79542 pub fn push_next<T: ExtendsDataGraphPipelineResourceInfoARM>(
79543 mut self,
79544 next: &'a mut T,
79545 ) -> Self {
79546 unsafe {
79547 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79548 (*next_ptr).p_next = self.inner.p_next as *mut _;
79549 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79550 core::ffi::c_void,
79551 >(next_ptr) as *const _;
79552 }
79553 self
79554 }
79555}
79556impl<'a> core::ops::Deref for DataGraphPipelineResourceInfoARMBuilder<'a> {
79557 type Target = DataGraphPipelineResourceInfoARM;
79558 #[inline]
79559 fn deref(&self) -> &Self::Target {
79560 &self.inner
79561 }
79562}
79563impl<'a> core::ops::DerefMut for DataGraphPipelineResourceInfoARMBuilder<'a> {
79564 #[inline]
79565 fn deref_mut(&mut self) -> &mut Self::Target {
79566 &mut self.inner
79567 }
79568}
79569pub struct DataGraphPipelineCompilerControlCreateInfoARMBuilder<'a> {
79571 inner: DataGraphPipelineCompilerControlCreateInfoARM,
79572 _marker: core::marker::PhantomData<&'a ()>,
79573}
79574impl DataGraphPipelineCompilerControlCreateInfoARM {
79575 #[inline]
79577 pub fn builder<'a>() -> DataGraphPipelineCompilerControlCreateInfoARMBuilder<'a> {
79578 DataGraphPipelineCompilerControlCreateInfoARMBuilder {
79579 inner: DataGraphPipelineCompilerControlCreateInfoARM {
79580 s_type: StructureType::from_raw(1000507010i32),
79581 ..Default::default()
79582 },
79583 _marker: core::marker::PhantomData,
79584 }
79585 }
79586}
79587impl<'a> DataGraphPipelineCompilerControlCreateInfoARMBuilder<'a> {
79588 #[inline]
79589 pub fn vendor_options(mut self, value: &'a core::ffi::CStr) -> Self {
79590 self.inner.p_vendor_options = value.as_ptr();
79591 self
79592 }
79593 #[inline]
79595 pub fn push_next<T: ExtendsDataGraphPipelineCompilerControlCreateInfoARM>(
79596 mut self,
79597 next: &'a mut T,
79598 ) -> Self {
79599 unsafe {
79600 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79601 (*next_ptr).p_next = self.inner.p_next as *mut _;
79602 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79603 core::ffi::c_void,
79604 >(next_ptr) as *const _;
79605 }
79606 self
79607 }
79608}
79609impl<'a> core::ops::Deref for DataGraphPipelineCompilerControlCreateInfoARMBuilder<'a> {
79610 type Target = DataGraphPipelineCompilerControlCreateInfoARM;
79611 #[inline]
79612 fn deref(&self) -> &Self::Target {
79613 &self.inner
79614 }
79615}
79616impl<'a> core::ops::DerefMut
79617for DataGraphPipelineCompilerControlCreateInfoARMBuilder<'a> {
79618 #[inline]
79619 fn deref_mut(&mut self) -> &mut Self::Target {
79620 &mut self.inner
79621 }
79622}
79623pub struct DataGraphPipelineCreateInfoARMBuilder<'a> {
79625 inner: DataGraphPipelineCreateInfoARM,
79626 _marker: core::marker::PhantomData<&'a ()>,
79627}
79628impl DataGraphPipelineCreateInfoARM {
79629 #[inline]
79631 pub fn builder<'a>() -> DataGraphPipelineCreateInfoARMBuilder<'a> {
79632 DataGraphPipelineCreateInfoARMBuilder {
79633 inner: DataGraphPipelineCreateInfoARM {
79634 s_type: StructureType::from_raw(1000507000i32),
79635 ..Default::default()
79636 },
79637 _marker: core::marker::PhantomData,
79638 }
79639 }
79640}
79641impl<'a> DataGraphPipelineCreateInfoARMBuilder<'a> {
79642 #[inline]
79643 pub fn flags(mut self, value: PipelineCreateFlags2KHR) -> Self {
79644 self.inner.flags = value;
79645 self
79646 }
79647 #[inline]
79648 pub fn layout(mut self, value: PipelineLayout) -> Self {
79649 self.inner.layout = value;
79650 self
79651 }
79652 #[inline]
79653 pub fn resource_infos(
79654 mut self,
79655 slice: &'a [DataGraphPipelineResourceInfoARM],
79656 ) -> Self {
79657 self.inner.resource_info_count = slice.len() as u32;
79658 self.inner.p_resource_infos = slice.as_ptr();
79659 self
79660 }
79661 #[inline]
79663 pub fn push_next<T: ExtendsDataGraphPipelineCreateInfoARM>(
79664 mut self,
79665 next: &'a mut T,
79666 ) -> Self {
79667 unsafe {
79668 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79669 (*next_ptr).p_next = self.inner.p_next as *mut _;
79670 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79671 core::ffi::c_void,
79672 >(next_ptr) as *const _;
79673 }
79674 self
79675 }
79676}
79677impl<'a> core::ops::Deref for DataGraphPipelineCreateInfoARMBuilder<'a> {
79678 type Target = DataGraphPipelineCreateInfoARM;
79679 #[inline]
79680 fn deref(&self) -> &Self::Target {
79681 &self.inner
79682 }
79683}
79684impl<'a> core::ops::DerefMut for DataGraphPipelineCreateInfoARMBuilder<'a> {
79685 #[inline]
79686 fn deref_mut(&mut self) -> &mut Self::Target {
79687 &mut self.inner
79688 }
79689}
79690pub struct DataGraphPipelineShaderModuleCreateInfoARMBuilder<'a> {
79692 inner: DataGraphPipelineShaderModuleCreateInfoARM,
79693 _marker: core::marker::PhantomData<&'a ()>,
79694}
79695impl DataGraphPipelineShaderModuleCreateInfoARM {
79696 #[inline]
79698 pub fn builder<'a>() -> DataGraphPipelineShaderModuleCreateInfoARMBuilder<'a> {
79699 DataGraphPipelineShaderModuleCreateInfoARMBuilder {
79700 inner: DataGraphPipelineShaderModuleCreateInfoARM {
79701 s_type: StructureType::from_raw(1000507007i32),
79702 ..Default::default()
79703 },
79704 _marker: core::marker::PhantomData,
79705 }
79706 }
79707}
79708impl<'a> DataGraphPipelineShaderModuleCreateInfoARMBuilder<'a> {
79709 #[inline]
79710 pub fn module(mut self, value: ShaderModule) -> Self {
79711 self.inner.module = value;
79712 self
79713 }
79714 #[inline]
79715 pub fn name(mut self, value: &'a core::ffi::CStr) -> Self {
79716 self.inner.p_name = value.as_ptr();
79717 self
79718 }
79719 #[inline]
79720 pub fn specialization_info(mut self, value: &'a SpecializationInfo) -> Self {
79721 self.inner.p_specialization_info = value;
79722 self
79723 }
79724 #[inline]
79725 pub fn constant_count(mut self, value: u32) -> Self {
79726 self.inner.constant_count = value;
79727 self
79728 }
79729 #[inline]
79730 pub fn constants(mut self, slice: &'a [DataGraphPipelineConstantARM]) -> Self {
79731 self.inner.constant_count = slice.len() as u32;
79732 self.inner.p_constants = slice.as_ptr();
79733 self
79734 }
79735 #[inline]
79737 pub fn push_next<T: ExtendsDataGraphPipelineShaderModuleCreateInfoARM>(
79738 mut self,
79739 next: &'a mut T,
79740 ) -> Self {
79741 unsafe {
79742 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79743 (*next_ptr).p_next = self.inner.p_next as *mut _;
79744 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79745 core::ffi::c_void,
79746 >(next_ptr) as *const _;
79747 }
79748 self
79749 }
79750}
79751impl<'a> core::ops::Deref for DataGraphPipelineShaderModuleCreateInfoARMBuilder<'a> {
79752 type Target = DataGraphPipelineShaderModuleCreateInfoARM;
79753 #[inline]
79754 fn deref(&self) -> &Self::Target {
79755 &self.inner
79756 }
79757}
79758impl<'a> core::ops::DerefMut for DataGraphPipelineShaderModuleCreateInfoARMBuilder<'a> {
79759 #[inline]
79760 fn deref_mut(&mut self) -> &mut Self::Target {
79761 &mut self.inner
79762 }
79763}
79764pub struct DataGraphPipelineSessionCreateInfoARMBuilder<'a> {
79766 inner: DataGraphPipelineSessionCreateInfoARM,
79767 _marker: core::marker::PhantomData<&'a ()>,
79768}
79769impl DataGraphPipelineSessionCreateInfoARM {
79770 #[inline]
79772 pub fn builder<'a>() -> DataGraphPipelineSessionCreateInfoARMBuilder<'a> {
79773 DataGraphPipelineSessionCreateInfoARMBuilder {
79774 inner: DataGraphPipelineSessionCreateInfoARM {
79775 s_type: StructureType::from_raw(1000507001i32),
79776 ..Default::default()
79777 },
79778 _marker: core::marker::PhantomData,
79779 }
79780 }
79781}
79782impl<'a> DataGraphPipelineSessionCreateInfoARMBuilder<'a> {
79783 #[inline]
79784 pub fn flags(mut self, value: DataGraphPipelineSessionCreateFlagsARM) -> Self {
79785 self.inner.flags = value;
79786 self
79787 }
79788 #[inline]
79789 pub fn data_graph_pipeline(mut self, value: Pipeline) -> Self {
79790 self.inner.data_graph_pipeline = value;
79791 self
79792 }
79793 #[inline]
79795 pub fn push_next<T: ExtendsDataGraphPipelineSessionCreateInfoARM>(
79796 mut self,
79797 next: &'a mut T,
79798 ) -> Self {
79799 unsafe {
79800 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79801 (*next_ptr).p_next = self.inner.p_next as *mut _;
79802 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79803 core::ffi::c_void,
79804 >(next_ptr) as *const _;
79805 }
79806 self
79807 }
79808}
79809impl<'a> core::ops::Deref for DataGraphPipelineSessionCreateInfoARMBuilder<'a> {
79810 type Target = DataGraphPipelineSessionCreateInfoARM;
79811 #[inline]
79812 fn deref(&self) -> &Self::Target {
79813 &self.inner
79814 }
79815}
79816impl<'a> core::ops::DerefMut for DataGraphPipelineSessionCreateInfoARMBuilder<'a> {
79817 #[inline]
79818 fn deref_mut(&mut self) -> &mut Self::Target {
79819 &mut self.inner
79820 }
79821}
79822pub struct DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder<'a> {
79824 inner: DataGraphPipelineSessionBindPointRequirementsInfoARM,
79825 _marker: core::marker::PhantomData<&'a ()>,
79826}
79827impl DataGraphPipelineSessionBindPointRequirementsInfoARM {
79828 #[inline]
79830 pub fn builder<'a>() -> DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder<
79831 'a,
79832 > {
79833 DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder {
79834 inner: DataGraphPipelineSessionBindPointRequirementsInfoARM {
79835 s_type: StructureType::from_raw(1000507011i32),
79836 ..Default::default()
79837 },
79838 _marker: core::marker::PhantomData,
79839 }
79840 }
79841}
79842impl<'a> DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder<'a> {
79843 #[inline]
79844 pub fn session(mut self, value: DataGraphPipelineSessionARM) -> Self {
79845 self.inner.session = value;
79846 self
79847 }
79848 #[inline]
79850 pub fn push_next<T: ExtendsDataGraphPipelineSessionBindPointRequirementsInfoARM>(
79851 mut self,
79852 next: &'a mut T,
79853 ) -> Self {
79854 unsafe {
79855 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79856 (*next_ptr).p_next = self.inner.p_next as *mut _;
79857 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79858 core::ffi::c_void,
79859 >(next_ptr) as *const _;
79860 }
79861 self
79862 }
79863}
79864impl<'a> core::ops::Deref
79865for DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder<'a> {
79866 type Target = DataGraphPipelineSessionBindPointRequirementsInfoARM;
79867 #[inline]
79868 fn deref(&self) -> &Self::Target {
79869 &self.inner
79870 }
79871}
79872impl<'a> core::ops::DerefMut
79873for DataGraphPipelineSessionBindPointRequirementsInfoARMBuilder<'a> {
79874 #[inline]
79875 fn deref_mut(&mut self) -> &mut Self::Target {
79876 &mut self.inner
79877 }
79878}
79879pub struct DataGraphPipelineSessionBindPointRequirementARMBuilder<'a> {
79881 inner: DataGraphPipelineSessionBindPointRequirementARM,
79882 _marker: core::marker::PhantomData<&'a ()>,
79883}
79884impl DataGraphPipelineSessionBindPointRequirementARM {
79885 #[inline]
79887 pub fn builder<'a>() -> DataGraphPipelineSessionBindPointRequirementARMBuilder<'a> {
79888 DataGraphPipelineSessionBindPointRequirementARMBuilder {
79889 inner: DataGraphPipelineSessionBindPointRequirementARM {
79890 s_type: StructureType::from_raw(1000507012i32),
79891 ..Default::default()
79892 },
79893 _marker: core::marker::PhantomData,
79894 }
79895 }
79896}
79897impl<'a> DataGraphPipelineSessionBindPointRequirementARMBuilder<'a> {
79898 #[inline]
79899 pub fn bind_point(mut self, value: DataGraphPipelineSessionBindPointARM) -> Self {
79900 self.inner.bind_point = value;
79901 self
79902 }
79903 #[inline]
79904 pub fn bind_point_type(
79905 mut self,
79906 value: DataGraphPipelineSessionBindPointTypeARM,
79907 ) -> Self {
79908 self.inner.bind_point_type = value;
79909 self
79910 }
79911 #[inline]
79912 pub fn num_objects(mut self, value: u32) -> Self {
79913 self.inner.num_objects = value;
79914 self
79915 }
79916}
79917impl<'a> core::ops::Deref
79918for DataGraphPipelineSessionBindPointRequirementARMBuilder<'a> {
79919 type Target = DataGraphPipelineSessionBindPointRequirementARM;
79920 #[inline]
79921 fn deref(&self) -> &Self::Target {
79922 &self.inner
79923 }
79924}
79925impl<'a> core::ops::DerefMut
79926for DataGraphPipelineSessionBindPointRequirementARMBuilder<'a> {
79927 #[inline]
79928 fn deref_mut(&mut self) -> &mut Self::Target {
79929 &mut self.inner
79930 }
79931}
79932pub struct DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder<'a> {
79934 inner: DataGraphPipelineSessionMemoryRequirementsInfoARM,
79935 _marker: core::marker::PhantomData<&'a ()>,
79936}
79937impl DataGraphPipelineSessionMemoryRequirementsInfoARM {
79938 #[inline]
79940 pub fn builder<'a>() -> DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder<
79941 'a,
79942 > {
79943 DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder {
79944 inner: DataGraphPipelineSessionMemoryRequirementsInfoARM {
79945 s_type: StructureType::from_raw(1000507004i32),
79946 ..Default::default()
79947 },
79948 _marker: core::marker::PhantomData,
79949 }
79950 }
79951}
79952impl<'a> DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder<'a> {
79953 #[inline]
79954 pub fn session(mut self, value: DataGraphPipelineSessionARM) -> Self {
79955 self.inner.session = value;
79956 self
79957 }
79958 #[inline]
79959 pub fn bind_point(mut self, value: DataGraphPipelineSessionBindPointARM) -> Self {
79960 self.inner.bind_point = value;
79961 self
79962 }
79963 #[inline]
79964 pub fn object_index(mut self, value: u32) -> Self {
79965 self.inner.object_index = value;
79966 self
79967 }
79968 #[inline]
79970 pub fn push_next<T: ExtendsDataGraphPipelineSessionMemoryRequirementsInfoARM>(
79971 mut self,
79972 next: &'a mut T,
79973 ) -> Self {
79974 unsafe {
79975 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
79976 (*next_ptr).p_next = self.inner.p_next as *mut _;
79977 self.inner.p_next = <*mut BaseOutStructure>::cast::<
79978 core::ffi::c_void,
79979 >(next_ptr) as *const _;
79980 }
79981 self
79982 }
79983}
79984impl<'a> core::ops::Deref
79985for DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder<'a> {
79986 type Target = DataGraphPipelineSessionMemoryRequirementsInfoARM;
79987 #[inline]
79988 fn deref(&self) -> &Self::Target {
79989 &self.inner
79990 }
79991}
79992impl<'a> core::ops::DerefMut
79993for DataGraphPipelineSessionMemoryRequirementsInfoARMBuilder<'a> {
79994 #[inline]
79995 fn deref_mut(&mut self) -> &mut Self::Target {
79996 &mut self.inner
79997 }
79998}
79999pub struct BindDataGraphPipelineSessionMemoryInfoARMBuilder<'a> {
80001 inner: BindDataGraphPipelineSessionMemoryInfoARM,
80002 _marker: core::marker::PhantomData<&'a ()>,
80003}
80004impl BindDataGraphPipelineSessionMemoryInfoARM {
80005 #[inline]
80007 pub fn builder<'a>() -> BindDataGraphPipelineSessionMemoryInfoARMBuilder<'a> {
80008 BindDataGraphPipelineSessionMemoryInfoARMBuilder {
80009 inner: BindDataGraphPipelineSessionMemoryInfoARM {
80010 s_type: StructureType::from_raw(1000507005i32),
80011 ..Default::default()
80012 },
80013 _marker: core::marker::PhantomData,
80014 }
80015 }
80016}
80017impl<'a> BindDataGraphPipelineSessionMemoryInfoARMBuilder<'a> {
80018 #[inline]
80019 pub fn session(mut self, value: DataGraphPipelineSessionARM) -> Self {
80020 self.inner.session = value;
80021 self
80022 }
80023 #[inline]
80024 pub fn bind_point(mut self, value: DataGraphPipelineSessionBindPointARM) -> Self {
80025 self.inner.bind_point = value;
80026 self
80027 }
80028 #[inline]
80029 pub fn object_index(mut self, value: u32) -> Self {
80030 self.inner.object_index = value;
80031 self
80032 }
80033 #[inline]
80034 pub fn memory(mut self, value: DeviceMemory) -> Self {
80035 self.inner.memory = value;
80036 self
80037 }
80038 #[inline]
80039 pub fn memory_offset(mut self, value: u64) -> Self {
80040 self.inner.memory_offset = value;
80041 self
80042 }
80043 #[inline]
80045 pub fn push_next<T: ExtendsBindDataGraphPipelineSessionMemoryInfoARM>(
80046 mut self,
80047 next: &'a mut T,
80048 ) -> Self {
80049 unsafe {
80050 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80051 (*next_ptr).p_next = self.inner.p_next as *mut _;
80052 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80053 core::ffi::c_void,
80054 >(next_ptr) as *const _;
80055 }
80056 self
80057 }
80058}
80059impl<'a> core::ops::Deref for BindDataGraphPipelineSessionMemoryInfoARMBuilder<'a> {
80060 type Target = BindDataGraphPipelineSessionMemoryInfoARM;
80061 #[inline]
80062 fn deref(&self) -> &Self::Target {
80063 &self.inner
80064 }
80065}
80066impl<'a> core::ops::DerefMut for BindDataGraphPipelineSessionMemoryInfoARMBuilder<'a> {
80067 #[inline]
80068 fn deref_mut(&mut self) -> &mut Self::Target {
80069 &mut self.inner
80070 }
80071}
80072pub struct DataGraphPipelineInfoARMBuilder<'a> {
80074 inner: DataGraphPipelineInfoARM,
80075 _marker: core::marker::PhantomData<&'a ()>,
80076}
80077impl DataGraphPipelineInfoARM {
80078 #[inline]
80080 pub fn builder<'a>() -> DataGraphPipelineInfoARMBuilder<'a> {
80081 DataGraphPipelineInfoARMBuilder {
80082 inner: DataGraphPipelineInfoARM {
80083 s_type: StructureType::from_raw(1000507009i32),
80084 ..Default::default()
80085 },
80086 _marker: core::marker::PhantomData,
80087 }
80088 }
80089}
80090impl<'a> DataGraphPipelineInfoARMBuilder<'a> {
80091 #[inline]
80092 pub fn data_graph_pipeline(mut self, value: Pipeline) -> Self {
80093 self.inner.data_graph_pipeline = value;
80094 self
80095 }
80096 #[inline]
80098 pub fn push_next<T: ExtendsDataGraphPipelineInfoARM>(
80099 mut self,
80100 next: &'a mut T,
80101 ) -> Self {
80102 unsafe {
80103 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80104 (*next_ptr).p_next = self.inner.p_next as *mut _;
80105 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80106 core::ffi::c_void,
80107 >(next_ptr) as *const _;
80108 }
80109 self
80110 }
80111}
80112impl<'a> core::ops::Deref for DataGraphPipelineInfoARMBuilder<'a> {
80113 type Target = DataGraphPipelineInfoARM;
80114 #[inline]
80115 fn deref(&self) -> &Self::Target {
80116 &self.inner
80117 }
80118}
80119impl<'a> core::ops::DerefMut for DataGraphPipelineInfoARMBuilder<'a> {
80120 #[inline]
80121 fn deref_mut(&mut self) -> &mut Self::Target {
80122 &mut self.inner
80123 }
80124}
80125pub struct DataGraphPipelinePropertyQueryResultARMBuilder<'a> {
80127 inner: DataGraphPipelinePropertyQueryResultARM,
80128 _marker: core::marker::PhantomData<&'a ()>,
80129}
80130impl DataGraphPipelinePropertyQueryResultARM {
80131 #[inline]
80133 pub fn builder<'a>() -> DataGraphPipelinePropertyQueryResultARMBuilder<'a> {
80134 DataGraphPipelinePropertyQueryResultARMBuilder {
80135 inner: DataGraphPipelinePropertyQueryResultARM {
80136 s_type: StructureType::from_raw(1000507008i32),
80137 ..Default::default()
80138 },
80139 _marker: core::marker::PhantomData,
80140 }
80141 }
80142}
80143impl<'a> DataGraphPipelinePropertyQueryResultARMBuilder<'a> {
80144 #[inline]
80145 pub fn property(mut self, value: DataGraphPipelinePropertyARM) -> Self {
80146 self.inner.property = value;
80147 self
80148 }
80149 #[inline]
80150 pub fn is_text(mut self, value: bool) -> Self {
80151 self.inner.is_text = value as u32;
80152 self
80153 }
80154 #[inline]
80155 pub fn data_size(mut self, value: usize) -> Self {
80156 self.inner.data_size = value;
80157 self
80158 }
80159 #[inline]
80160 pub fn data(mut self, slice: &'a mut [core::ffi::c_void]) -> Self {
80161 self.inner.data_size = slice.len();
80162 self.inner.p_data = slice.as_mut_ptr();
80163 self
80164 }
80165 #[inline]
80167 pub fn push_next<T: ExtendsDataGraphPipelinePropertyQueryResultARM>(
80168 mut self,
80169 next: &'a mut T,
80170 ) -> Self {
80171 unsafe {
80172 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80173 (*next_ptr).p_next = self.inner.p_next as *mut _;
80174 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80175 core::ffi::c_void,
80176 >(next_ptr);
80177 }
80178 self
80179 }
80180}
80181impl<'a> core::ops::Deref for DataGraphPipelinePropertyQueryResultARMBuilder<'a> {
80182 type Target = DataGraphPipelinePropertyQueryResultARM;
80183 #[inline]
80184 fn deref(&self) -> &Self::Target {
80185 &self.inner
80186 }
80187}
80188impl<'a> core::ops::DerefMut for DataGraphPipelinePropertyQueryResultARMBuilder<'a> {
80189 #[inline]
80190 fn deref_mut(&mut self) -> &mut Self::Target {
80191 &mut self.inner
80192 }
80193}
80194pub struct DataGraphPipelineIdentifierCreateInfoARMBuilder<'a> {
80196 inner: DataGraphPipelineIdentifierCreateInfoARM,
80197 _marker: core::marker::PhantomData<&'a ()>,
80198}
80199impl DataGraphPipelineIdentifierCreateInfoARM {
80200 #[inline]
80202 pub fn builder<'a>() -> DataGraphPipelineIdentifierCreateInfoARMBuilder<'a> {
80203 DataGraphPipelineIdentifierCreateInfoARMBuilder {
80204 inner: DataGraphPipelineIdentifierCreateInfoARM {
80205 s_type: StructureType::from_raw(1000507013i32),
80206 ..Default::default()
80207 },
80208 _marker: core::marker::PhantomData,
80209 }
80210 }
80211}
80212impl<'a> DataGraphPipelineIdentifierCreateInfoARMBuilder<'a> {
80213 #[inline]
80214 pub fn identifier(mut self, slice: &'a [u8]) -> Self {
80215 self.inner.identifier_size = slice.len() as u32;
80216 self.inner.p_identifier = slice.as_ptr();
80217 self
80218 }
80219 #[inline]
80221 pub fn push_next<T: ExtendsDataGraphPipelineIdentifierCreateInfoARM>(
80222 mut self,
80223 next: &'a mut T,
80224 ) -> Self {
80225 unsafe {
80226 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80227 (*next_ptr).p_next = self.inner.p_next as *mut _;
80228 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80229 core::ffi::c_void,
80230 >(next_ptr) as *const _;
80231 }
80232 self
80233 }
80234}
80235impl<'a> core::ops::Deref for DataGraphPipelineIdentifierCreateInfoARMBuilder<'a> {
80236 type Target = DataGraphPipelineIdentifierCreateInfoARM;
80237 #[inline]
80238 fn deref(&self) -> &Self::Target {
80239 &self.inner
80240 }
80241}
80242impl<'a> core::ops::DerefMut for DataGraphPipelineIdentifierCreateInfoARMBuilder<'a> {
80243 #[inline]
80244 fn deref_mut(&mut self) -> &mut Self::Target {
80245 &mut self.inner
80246 }
80247}
80248pub struct DataGraphPipelineDispatchInfoARMBuilder<'a> {
80250 inner: DataGraphPipelineDispatchInfoARM,
80251 _marker: core::marker::PhantomData<&'a ()>,
80252}
80253impl DataGraphPipelineDispatchInfoARM {
80254 #[inline]
80256 pub fn builder<'a>() -> DataGraphPipelineDispatchInfoARMBuilder<'a> {
80257 DataGraphPipelineDispatchInfoARMBuilder {
80258 inner: DataGraphPipelineDispatchInfoARM {
80259 s_type: StructureType::from_raw(1000507014i32),
80260 ..Default::default()
80261 },
80262 _marker: core::marker::PhantomData,
80263 }
80264 }
80265}
80266impl<'a> DataGraphPipelineDispatchInfoARMBuilder<'a> {
80267 #[inline]
80268 pub fn flags(mut self, value: DataGraphPipelineDispatchFlagsARM) -> Self {
80269 self.inner.flags = value;
80270 self
80271 }
80272 #[inline]
80274 pub fn push_next<T: ExtendsDataGraphPipelineDispatchInfoARM>(
80275 mut self,
80276 next: &'a mut T,
80277 ) -> Self {
80278 unsafe {
80279 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80280 (*next_ptr).p_next = self.inner.p_next as *mut _;
80281 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80282 core::ffi::c_void,
80283 >(next_ptr);
80284 }
80285 self
80286 }
80287}
80288impl<'a> core::ops::Deref for DataGraphPipelineDispatchInfoARMBuilder<'a> {
80289 type Target = DataGraphPipelineDispatchInfoARM;
80290 #[inline]
80291 fn deref(&self) -> &Self::Target {
80292 &self.inner
80293 }
80294}
80295impl<'a> core::ops::DerefMut for DataGraphPipelineDispatchInfoARMBuilder<'a> {
80296 #[inline]
80297 fn deref_mut(&mut self) -> &mut Self::Target {
80298 &mut self.inner
80299 }
80300}
80301pub struct PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80303 inner: PhysicalDeviceDataGraphProcessingEngineARM,
80304}
80305impl PhysicalDeviceDataGraphProcessingEngineARM {
80306 #[inline]
80308 pub fn builder() -> PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80309 PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80310 inner: PhysicalDeviceDataGraphProcessingEngineARM {
80311 ..Default::default()
80312 },
80313 }
80314 }
80315}
80316impl PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80317 #[inline]
80318 pub fn r#type(
80319 mut self,
80320 value: PhysicalDeviceDataGraphProcessingEngineTypeARM,
80321 ) -> Self {
80322 self.inner.r#type = value;
80323 self
80324 }
80325 #[inline]
80326 pub fn is_foreign(mut self, value: bool) -> Self {
80327 self.inner.is_foreign = value as u32;
80328 self
80329 }
80330}
80331impl core::ops::Deref for PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80332 type Target = PhysicalDeviceDataGraphProcessingEngineARM;
80333 #[inline]
80334 fn deref(&self) -> &Self::Target {
80335 &self.inner
80336 }
80337}
80338impl core::ops::DerefMut for PhysicalDeviceDataGraphProcessingEngineARMBuilder {
80339 #[inline]
80340 fn deref_mut(&mut self) -> &mut Self::Target {
80341 &mut self.inner
80342 }
80343}
80344pub struct PhysicalDeviceDataGraphOperationSupportARMBuilder {
80346 inner: PhysicalDeviceDataGraphOperationSupportARM,
80347}
80348impl PhysicalDeviceDataGraphOperationSupportARM {
80349 #[inline]
80351 pub fn builder() -> PhysicalDeviceDataGraphOperationSupportARMBuilder {
80352 PhysicalDeviceDataGraphOperationSupportARMBuilder {
80353 inner: PhysicalDeviceDataGraphOperationSupportARM {
80354 ..Default::default()
80355 },
80356 }
80357 }
80358}
80359impl PhysicalDeviceDataGraphOperationSupportARMBuilder {
80360 #[inline]
80361 pub fn operation_type(
80362 mut self,
80363 value: PhysicalDeviceDataGraphOperationTypeARM,
80364 ) -> Self {
80365 self.inner.operation_type = value;
80366 self
80367 }
80368 #[inline]
80369 pub fn name(
80370 mut self,
80371 value: crate::StringArray<
80372 { MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM as usize },
80373 >,
80374 ) -> Self {
80375 self.inner.name = value;
80376 self
80377 }
80378 #[inline]
80379 pub fn version(mut self, value: u32) -> Self {
80380 self.inner.version = value;
80381 self
80382 }
80383}
80384impl core::ops::Deref for PhysicalDeviceDataGraphOperationSupportARMBuilder {
80385 type Target = PhysicalDeviceDataGraphOperationSupportARM;
80386 #[inline]
80387 fn deref(&self) -> &Self::Target {
80388 &self.inner
80389 }
80390}
80391impl core::ops::DerefMut for PhysicalDeviceDataGraphOperationSupportARMBuilder {
80392 #[inline]
80393 fn deref_mut(&mut self) -> &mut Self::Target {
80394 &mut self.inner
80395 }
80396}
80397pub struct QueueFamilyDataGraphPropertiesARMBuilder<'a> {
80399 inner: QueueFamilyDataGraphPropertiesARM,
80400 _marker: core::marker::PhantomData<&'a ()>,
80401}
80402impl QueueFamilyDataGraphPropertiesARM {
80403 #[inline]
80405 pub fn builder<'a>() -> QueueFamilyDataGraphPropertiesARMBuilder<'a> {
80406 QueueFamilyDataGraphPropertiesARMBuilder {
80407 inner: QueueFamilyDataGraphPropertiesARM {
80408 s_type: StructureType::from_raw(1000507018i32),
80409 ..Default::default()
80410 },
80411 _marker: core::marker::PhantomData,
80412 }
80413 }
80414}
80415impl<'a> QueueFamilyDataGraphPropertiesARMBuilder<'a> {
80416 #[inline]
80417 pub fn engine(mut self, value: PhysicalDeviceDataGraphProcessingEngineARM) -> Self {
80418 self.inner.engine = value;
80419 self
80420 }
80421 #[inline]
80422 pub fn operation(
80423 mut self,
80424 value: PhysicalDeviceDataGraphOperationSupportARM,
80425 ) -> Self {
80426 self.inner.operation = value;
80427 self
80428 }
80429}
80430impl<'a> core::ops::Deref for QueueFamilyDataGraphPropertiesARMBuilder<'a> {
80431 type Target = QueueFamilyDataGraphPropertiesARM;
80432 #[inline]
80433 fn deref(&self) -> &Self::Target {
80434 &self.inner
80435 }
80436}
80437impl<'a> core::ops::DerefMut for QueueFamilyDataGraphPropertiesARMBuilder<'a> {
80438 #[inline]
80439 fn deref_mut(&mut self) -> &mut Self::Target {
80440 &mut self.inner
80441 }
80442}
80443pub struct PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder<'a> {
80445 inner: PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM,
80446 _marker: core::marker::PhantomData<&'a ()>,
80447}
80448impl PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
80449 #[inline]
80451 pub fn builder<'a>() -> PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder<
80452 'a,
80453 > {
80454 PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder {
80455 inner: PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
80456 s_type: StructureType::from_raw(1000507019i32),
80457 ..Default::default()
80458 },
80459 _marker: core::marker::PhantomData,
80460 }
80461 }
80462}
80463impl<'a> PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder<'a> {
80464 #[inline]
80465 pub fn queue_family_index(mut self, value: u32) -> Self {
80466 self.inner.queue_family_index = value;
80467 self
80468 }
80469 #[inline]
80470 pub fn engine_type(
80471 mut self,
80472 value: PhysicalDeviceDataGraphProcessingEngineTypeARM,
80473 ) -> Self {
80474 self.inner.engine_type = value;
80475 self
80476 }
80477 #[inline]
80479 pub fn push_next<
80480 T: ExtendsPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM,
80481 >(mut self, next: &'a mut T) -> Self {
80482 unsafe {
80483 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80484 (*next_ptr).p_next = self.inner.p_next as *mut _;
80485 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80486 core::ffi::c_void,
80487 >(next_ptr) as *const _;
80488 }
80489 self
80490 }
80491}
80492impl<'a> core::ops::Deref
80493for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder<'a> {
80494 type Target = PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
80495 #[inline]
80496 fn deref(&self) -> &Self::Target {
80497 &self.inner
80498 }
80499}
80500impl<'a> core::ops::DerefMut
80501for PhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARMBuilder<'a> {
80502 #[inline]
80503 fn deref_mut(&mut self) -> &mut Self::Target {
80504 &mut self.inner
80505 }
80506}
80507pub struct QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder<'a> {
80509 inner: QueueFamilyDataGraphProcessingEnginePropertiesARM,
80510 _marker: core::marker::PhantomData<&'a ()>,
80511}
80512impl QueueFamilyDataGraphProcessingEnginePropertiesARM {
80513 #[inline]
80515 pub fn builder<'a>() -> QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder<
80516 'a,
80517 > {
80518 QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder {
80519 inner: QueueFamilyDataGraphProcessingEnginePropertiesARM {
80520 s_type: StructureType::from_raw(1000507017i32),
80521 ..Default::default()
80522 },
80523 _marker: core::marker::PhantomData,
80524 }
80525 }
80526}
80527impl<'a> QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder<'a> {
80528 #[inline]
80529 pub fn foreign_semaphore_handle_types(
80530 mut self,
80531 value: ExternalSemaphoreHandleTypeFlags,
80532 ) -> Self {
80533 self.inner.foreign_semaphore_handle_types = value;
80534 self
80535 }
80536 #[inline]
80537 pub fn foreign_memory_handle_types(
80538 mut self,
80539 value: ExternalMemoryHandleTypeFlags,
80540 ) -> Self {
80541 self.inner.foreign_memory_handle_types = value;
80542 self
80543 }
80544}
80545impl<'a> core::ops::Deref
80546for QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder<'a> {
80547 type Target = QueueFamilyDataGraphProcessingEnginePropertiesARM;
80548 #[inline]
80549 fn deref(&self) -> &Self::Target {
80550 &self.inner
80551 }
80552}
80553impl<'a> core::ops::DerefMut
80554for QueueFamilyDataGraphProcessingEnginePropertiesARMBuilder<'a> {
80555 #[inline]
80556 fn deref_mut(&mut self) -> &mut Self::Target {
80557 &mut self.inner
80558 }
80559}
80560pub struct DataGraphProcessingEngineCreateInfoARMBuilder<'a> {
80562 inner: DataGraphProcessingEngineCreateInfoARM,
80563 _marker: core::marker::PhantomData<&'a ()>,
80564}
80565impl DataGraphProcessingEngineCreateInfoARM {
80566 #[inline]
80568 pub fn builder<'a>() -> DataGraphProcessingEngineCreateInfoARMBuilder<'a> {
80569 DataGraphProcessingEngineCreateInfoARMBuilder {
80570 inner: DataGraphProcessingEngineCreateInfoARM {
80571 s_type: StructureType::from_raw(1000507016i32),
80572 ..Default::default()
80573 },
80574 _marker: core::marker::PhantomData,
80575 }
80576 }
80577}
80578impl<'a> DataGraphProcessingEngineCreateInfoARMBuilder<'a> {
80579 #[inline]
80580 pub fn processing_engines(
80581 mut self,
80582 slice: &'a mut [PhysicalDeviceDataGraphProcessingEngineARM],
80583 ) -> Self {
80584 self.inner.processing_engine_count = slice.len() as u32;
80585 self.inner.p_processing_engines = slice.as_mut_ptr();
80586 self
80587 }
80588 #[inline]
80590 pub fn push_next<T: ExtendsDataGraphProcessingEngineCreateInfoARM>(
80591 mut self,
80592 next: &'a mut T,
80593 ) -> Self {
80594 unsafe {
80595 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80596 (*next_ptr).p_next = self.inner.p_next as *mut _;
80597 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80598 core::ffi::c_void,
80599 >(next_ptr) as *const _;
80600 }
80601 self
80602 }
80603}
80604impl<'a> core::ops::Deref for DataGraphProcessingEngineCreateInfoARMBuilder<'a> {
80605 type Target = DataGraphProcessingEngineCreateInfoARM;
80606 #[inline]
80607 fn deref(&self) -> &Self::Target {
80608 &self.inner
80609 }
80610}
80611impl<'a> core::ops::DerefMut for DataGraphProcessingEngineCreateInfoARMBuilder<'a> {
80612 #[inline]
80613 fn deref_mut(&mut self) -> &mut Self::Target {
80614 &mut self.inner
80615 }
80616}
80617pub struct PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder<'a> {
80619 inner: PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC,
80620 _marker: core::marker::PhantomData<&'a ()>,
80621}
80622impl PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
80623 #[inline]
80625 pub fn builder<'a>() -> PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder<
80626 'a,
80627 > {
80628 PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder {
80629 inner: PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
80630 s_type: StructureType::from_raw(1000637000i32),
80631 ..Default::default()
80632 },
80633 _marker: core::marker::PhantomData,
80634 }
80635 }
80636}
80637impl<'a> PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder<'a> {
80638 #[inline]
80639 pub fn pipeline_cache_incremental_mode(mut self, value: bool) -> Self {
80640 self.inner.pipeline_cache_incremental_mode = value as u32;
80641 self
80642 }
80643 #[inline]
80645 pub fn push_next<T: ExtendsPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC>(
80646 mut self,
80647 next: &'a mut T,
80648 ) -> Self {
80649 unsafe {
80650 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80651 (*next_ptr).p_next = self.inner.p_next as *mut _;
80652 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80653 core::ffi::c_void,
80654 >(next_ptr);
80655 }
80656 self
80657 }
80658}
80659impl<'a> core::ops::Deref
80660for PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder<'a> {
80661 type Target = PhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
80662 #[inline]
80663 fn deref(&self) -> &Self::Target {
80664 &self.inner
80665 }
80666}
80667impl<'a> core::ops::DerefMut
80668for PhysicalDevicePipelineCacheIncrementalModeFeaturesSECBuilder<'a> {
80669 #[inline]
80670 fn deref_mut(&mut self) -> &mut Self::Target {
80671 &mut self.inner
80672 }
80673}
80674pub struct DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder<'a> {
80676 inner: DataGraphPipelineBuiltinModelCreateInfoQCOM,
80677 _marker: core::marker::PhantomData<&'a ()>,
80678}
80679impl DataGraphPipelineBuiltinModelCreateInfoQCOM {
80680 #[inline]
80682 pub fn builder<'a>() -> DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder<'a> {
80683 DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder {
80684 inner: DataGraphPipelineBuiltinModelCreateInfoQCOM {
80685 s_type: StructureType::from_raw(1000629001i32),
80686 ..Default::default()
80687 },
80688 _marker: core::marker::PhantomData,
80689 }
80690 }
80691}
80692impl<'a> DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder<'a> {
80693 #[inline]
80694 pub fn operation(
80695 mut self,
80696 value: &'a PhysicalDeviceDataGraphOperationSupportARM,
80697 ) -> Self {
80698 self.inner.p_operation = value;
80699 self
80700 }
80701 #[inline]
80703 pub fn push_next<T: ExtendsDataGraphPipelineBuiltinModelCreateInfoQCOM>(
80704 mut self,
80705 next: &'a mut T,
80706 ) -> Self {
80707 unsafe {
80708 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80709 (*next_ptr).p_next = self.inner.p_next as *mut _;
80710 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80711 core::ffi::c_void,
80712 >(next_ptr) as *const _;
80713 }
80714 self
80715 }
80716}
80717impl<'a> core::ops::Deref for DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder<'a> {
80718 type Target = DataGraphPipelineBuiltinModelCreateInfoQCOM;
80719 #[inline]
80720 fn deref(&self) -> &Self::Target {
80721 &self.inner
80722 }
80723}
80724impl<'a> core::ops::DerefMut for DataGraphPipelineBuiltinModelCreateInfoQCOMBuilder<'a> {
80725 #[inline]
80726 fn deref_mut(&mut self) -> &mut Self::Target {
80727 &mut self.inner
80728 }
80729}
80730pub struct PhysicalDeviceDataGraphModelFeaturesQCOMBuilder<'a> {
80732 inner: PhysicalDeviceDataGraphModelFeaturesQCOM,
80733 _marker: core::marker::PhantomData<&'a ()>,
80734}
80735impl PhysicalDeviceDataGraphModelFeaturesQCOM {
80736 #[inline]
80738 pub fn builder<'a>() -> PhysicalDeviceDataGraphModelFeaturesQCOMBuilder<'a> {
80739 PhysicalDeviceDataGraphModelFeaturesQCOMBuilder {
80740 inner: PhysicalDeviceDataGraphModelFeaturesQCOM {
80741 s_type: StructureType::from_raw(1000629000i32),
80742 ..Default::default()
80743 },
80744 _marker: core::marker::PhantomData,
80745 }
80746 }
80747}
80748impl<'a> PhysicalDeviceDataGraphModelFeaturesQCOMBuilder<'a> {
80749 #[inline]
80750 pub fn data_graph_model(mut self, value: bool) -> Self {
80751 self.inner.data_graph_model = value as u32;
80752 self
80753 }
80754 #[inline]
80756 pub fn push_next<T: ExtendsPhysicalDeviceDataGraphModelFeaturesQCOM>(
80757 mut self,
80758 next: &'a mut T,
80759 ) -> Self {
80760 unsafe {
80761 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80762 (*next_ptr).p_next = self.inner.p_next as *mut _;
80763 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80764 core::ffi::c_void,
80765 >(next_ptr);
80766 }
80767 self
80768 }
80769}
80770impl<'a> core::ops::Deref for PhysicalDeviceDataGraphModelFeaturesQCOMBuilder<'a> {
80771 type Target = PhysicalDeviceDataGraphModelFeaturesQCOM;
80772 #[inline]
80773 fn deref(&self) -> &Self::Target {
80774 &self.inner
80775 }
80776}
80777impl<'a> core::ops::DerefMut for PhysicalDeviceDataGraphModelFeaturesQCOMBuilder<'a> {
80778 #[inline]
80779 fn deref_mut(&mut self) -> &mut Self::Target {
80780 &mut self.inner
80781 }
80782}
80783pub struct PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder<'a> {
80785 inner: PhysicalDeviceShaderUntypedPointersFeaturesKHR,
80786 _marker: core::marker::PhantomData<&'a ()>,
80787}
80788impl PhysicalDeviceShaderUntypedPointersFeaturesKHR {
80789 #[inline]
80791 pub fn builder<'a>() -> PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder<'a> {
80792 PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder {
80793 inner: PhysicalDeviceShaderUntypedPointersFeaturesKHR {
80794 s_type: StructureType::from_raw(1000387000i32),
80795 ..Default::default()
80796 },
80797 _marker: core::marker::PhantomData,
80798 }
80799 }
80800}
80801impl<'a> PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder<'a> {
80802 #[inline]
80803 pub fn shader_untyped_pointers(mut self, value: bool) -> Self {
80804 self.inner.shader_untyped_pointers = value as u32;
80805 self
80806 }
80807 #[inline]
80809 pub fn push_next<T: ExtendsPhysicalDeviceShaderUntypedPointersFeaturesKHR>(
80810 mut self,
80811 next: &'a mut T,
80812 ) -> Self {
80813 unsafe {
80814 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80815 (*next_ptr).p_next = self.inner.p_next as *mut _;
80816 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80817 core::ffi::c_void,
80818 >(next_ptr);
80819 }
80820 self
80821 }
80822}
80823impl<'a> core::ops::Deref for PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder<'a> {
80824 type Target = PhysicalDeviceShaderUntypedPointersFeaturesKHR;
80825 #[inline]
80826 fn deref(&self) -> &Self::Target {
80827 &self.inner
80828 }
80829}
80830impl<'a> core::ops::DerefMut
80831for PhysicalDeviceShaderUntypedPointersFeaturesKHRBuilder<'a> {
80832 #[inline]
80833 fn deref_mut(&mut self) -> &mut Self::Target {
80834 &mut self.inner
80835 }
80836}
80837pub struct NativeBufferOHOSBuilder<'a> {
80839 inner: NativeBufferOHOS,
80840 _marker: core::marker::PhantomData<&'a ()>,
80841}
80842impl NativeBufferOHOS {
80843 #[inline]
80845 pub fn builder<'a>() -> NativeBufferOHOSBuilder<'a> {
80846 NativeBufferOHOSBuilder {
80847 inner: NativeBufferOHOS {
80848 s_type: Default::default(),
80849 ..Default::default()
80850 },
80851 _marker: core::marker::PhantomData,
80852 }
80853 }
80854}
80855impl<'a> NativeBufferOHOSBuilder<'a> {
80856 #[inline]
80857 pub fn handle(mut self, value: *mut core::ffi::c_void) -> Self {
80858 self.inner.handle = value;
80859 self
80860 }
80861 #[inline]
80863 pub fn push_next<T: ExtendsNativeBufferOHOS>(mut self, next: &'a mut T) -> Self {
80864 unsafe {
80865 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80866 (*next_ptr).p_next = self.inner.p_next as *mut _;
80867 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80868 core::ffi::c_void,
80869 >(next_ptr) as *const _;
80870 }
80871 self
80872 }
80873}
80874impl<'a> core::ops::Deref for NativeBufferOHOSBuilder<'a> {
80875 type Target = NativeBufferOHOS;
80876 #[inline]
80877 fn deref(&self) -> &Self::Target {
80878 &self.inner
80879 }
80880}
80881impl<'a> core::ops::DerefMut for NativeBufferOHOSBuilder<'a> {
80882 #[inline]
80883 fn deref_mut(&mut self) -> &mut Self::Target {
80884 &mut self.inner
80885 }
80886}
80887pub struct SwapchainImageCreateInfoOHOSBuilder<'a> {
80889 inner: SwapchainImageCreateInfoOHOS,
80890 _marker: core::marker::PhantomData<&'a ()>,
80891}
80892impl SwapchainImageCreateInfoOHOS {
80893 #[inline]
80895 pub fn builder<'a>() -> SwapchainImageCreateInfoOHOSBuilder<'a> {
80896 SwapchainImageCreateInfoOHOSBuilder {
80897 inner: SwapchainImageCreateInfoOHOS {
80898 s_type: Default::default(),
80899 ..Default::default()
80900 },
80901 _marker: core::marker::PhantomData,
80902 }
80903 }
80904}
80905impl<'a> SwapchainImageCreateInfoOHOSBuilder<'a> {
80906 #[inline]
80907 pub fn usage(mut self, value: SwapchainImageUsageFlagsOHOS) -> Self {
80908 self.inner.usage = value;
80909 self
80910 }
80911 #[inline]
80913 pub fn push_next<T: ExtendsSwapchainImageCreateInfoOHOS>(
80914 mut self,
80915 next: &'a mut T,
80916 ) -> Self {
80917 unsafe {
80918 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
80919 (*next_ptr).p_next = self.inner.p_next as *mut _;
80920 self.inner.p_next = <*mut BaseOutStructure>::cast::<
80921 core::ffi::c_void,
80922 >(next_ptr) as *const _;
80923 }
80924 self
80925 }
80926}
80927impl<'a> core::ops::Deref for SwapchainImageCreateInfoOHOSBuilder<'a> {
80928 type Target = SwapchainImageCreateInfoOHOS;
80929 #[inline]
80930 fn deref(&self) -> &Self::Target {
80931 &self.inner
80932 }
80933}
80934impl<'a> core::ops::DerefMut for SwapchainImageCreateInfoOHOSBuilder<'a> {
80935 #[inline]
80936 fn deref_mut(&mut self) -> &mut Self::Target {
80937 &mut self.inner
80938 }
80939}
80940pub struct PhysicalDevicePresentationPropertiesOHOSBuilder<'a> {
80942 inner: PhysicalDevicePresentationPropertiesOHOS,
80943 _marker: core::marker::PhantomData<&'a ()>,
80944}
80945impl PhysicalDevicePresentationPropertiesOHOS {
80946 #[inline]
80948 pub fn builder<'a>() -> PhysicalDevicePresentationPropertiesOHOSBuilder<'a> {
80949 PhysicalDevicePresentationPropertiesOHOSBuilder {
80950 inner: PhysicalDevicePresentationPropertiesOHOS {
80951 s_type: Default::default(),
80952 ..Default::default()
80953 },
80954 _marker: core::marker::PhantomData,
80955 }
80956 }
80957}
80958impl<'a> PhysicalDevicePresentationPropertiesOHOSBuilder<'a> {
80959 #[inline]
80960 pub fn shared_image(mut self, value: bool) -> Self {
80961 self.inner.shared_image = value as u32;
80962 self
80963 }
80964}
80965impl<'a> core::ops::Deref for PhysicalDevicePresentationPropertiesOHOSBuilder<'a> {
80966 type Target = PhysicalDevicePresentationPropertiesOHOS;
80967 #[inline]
80968 fn deref(&self) -> &Self::Target {
80969 &self.inner
80970 }
80971}
80972impl<'a> core::ops::DerefMut for PhysicalDevicePresentationPropertiesOHOSBuilder<'a> {
80973 #[inline]
80974 fn deref_mut(&mut self) -> &mut Self::Target {
80975 &mut self.inner
80976 }
80977}
80978pub struct PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder<'a> {
80980 inner: PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE,
80981 _marker: core::marker::PhantomData<&'a ()>,
80982}
80983impl PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
80984 #[inline]
80986 pub fn builder<'a>() -> PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder<
80987 'a,
80988 > {
80989 PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder {
80990 inner: PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
80991 s_type: StructureType::from_raw(1000390000i32),
80992 ..Default::default()
80993 },
80994 _marker: core::marker::PhantomData,
80995 }
80996 }
80997}
80998impl<'a> PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder<'a> {
80999 #[inline]
81000 pub fn video_encode_rgb_conversion(mut self, value: bool) -> Self {
81001 self.inner.video_encode_rgb_conversion = value as u32;
81002 self
81003 }
81004 #[inline]
81006 pub fn push_next<T: ExtendsPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE>(
81007 mut self,
81008 next: &'a mut T,
81009 ) -> Self {
81010 unsafe {
81011 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81012 (*next_ptr).p_next = self.inner.p_next as *mut _;
81013 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81014 core::ffi::c_void,
81015 >(next_ptr);
81016 }
81017 self
81018 }
81019}
81020impl<'a> core::ops::Deref
81021for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder<'a> {
81022 type Target = PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
81023 #[inline]
81024 fn deref(&self) -> &Self::Target {
81025 &self.inner
81026 }
81027}
81028impl<'a> core::ops::DerefMut
81029for PhysicalDeviceVideoEncodeRgbConversionFeaturesVALVEBuilder<'a> {
81030 #[inline]
81031 fn deref_mut(&mut self) -> &mut Self::Target {
81032 &mut self.inner
81033 }
81034}
81035pub struct VideoEncodeRgbConversionCapabilitiesVALVEBuilder<'a> {
81037 inner: VideoEncodeRgbConversionCapabilitiesVALVE,
81038 _marker: core::marker::PhantomData<&'a ()>,
81039}
81040impl VideoEncodeRgbConversionCapabilitiesVALVE {
81041 #[inline]
81043 pub fn builder<'a>() -> VideoEncodeRgbConversionCapabilitiesVALVEBuilder<'a> {
81044 VideoEncodeRgbConversionCapabilitiesVALVEBuilder {
81045 inner: VideoEncodeRgbConversionCapabilitiesVALVE {
81046 s_type: StructureType::from_raw(1000390001i32),
81047 ..Default::default()
81048 },
81049 _marker: core::marker::PhantomData,
81050 }
81051 }
81052}
81053impl<'a> VideoEncodeRgbConversionCapabilitiesVALVEBuilder<'a> {
81054 #[inline]
81055 pub fn rgb_models(mut self, value: VideoEncodeRgbModelConversionFlagsVALVE) -> Self {
81056 self.inner.rgb_models = value;
81057 self
81058 }
81059 #[inline]
81060 pub fn rgb_ranges(
81061 mut self,
81062 value: VideoEncodeRgbRangeCompressionFlagsVALVE,
81063 ) -> Self {
81064 self.inner.rgb_ranges = value;
81065 self
81066 }
81067 #[inline]
81068 pub fn x_chroma_offsets(
81069 mut self,
81070 value: VideoEncodeRgbChromaOffsetFlagsVALVE,
81071 ) -> Self {
81072 self.inner.x_chroma_offsets = value;
81073 self
81074 }
81075 #[inline]
81076 pub fn y_chroma_offsets(
81077 mut self,
81078 value: VideoEncodeRgbChromaOffsetFlagsVALVE,
81079 ) -> Self {
81080 self.inner.y_chroma_offsets = value;
81081 self
81082 }
81083}
81084impl<'a> core::ops::Deref for VideoEncodeRgbConversionCapabilitiesVALVEBuilder<'a> {
81085 type Target = VideoEncodeRgbConversionCapabilitiesVALVE;
81086 #[inline]
81087 fn deref(&self) -> &Self::Target {
81088 &self.inner
81089 }
81090}
81091impl<'a> core::ops::DerefMut for VideoEncodeRgbConversionCapabilitiesVALVEBuilder<'a> {
81092 #[inline]
81093 fn deref_mut(&mut self) -> &mut Self::Target {
81094 &mut self.inner
81095 }
81096}
81097pub struct VideoEncodeProfileRgbConversionInfoVALVEBuilder<'a> {
81099 inner: VideoEncodeProfileRgbConversionInfoVALVE,
81100 _marker: core::marker::PhantomData<&'a ()>,
81101}
81102impl VideoEncodeProfileRgbConversionInfoVALVE {
81103 #[inline]
81105 pub fn builder<'a>() -> VideoEncodeProfileRgbConversionInfoVALVEBuilder<'a> {
81106 VideoEncodeProfileRgbConversionInfoVALVEBuilder {
81107 inner: VideoEncodeProfileRgbConversionInfoVALVE {
81108 s_type: StructureType::from_raw(1000390002i32),
81109 ..Default::default()
81110 },
81111 _marker: core::marker::PhantomData,
81112 }
81113 }
81114}
81115impl<'a> VideoEncodeProfileRgbConversionInfoVALVEBuilder<'a> {
81116 #[inline]
81117 pub fn perform_encode_rgb_conversion(mut self, value: bool) -> Self {
81118 self.inner.perform_encode_rgb_conversion = value as u32;
81119 self
81120 }
81121 #[inline]
81123 pub fn push_next<T: ExtendsVideoEncodeProfileRgbConversionInfoVALVE>(
81124 mut self,
81125 next: &'a mut T,
81126 ) -> Self {
81127 unsafe {
81128 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81129 (*next_ptr).p_next = self.inner.p_next as *mut _;
81130 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81131 core::ffi::c_void,
81132 >(next_ptr) as *const _;
81133 }
81134 self
81135 }
81136}
81137impl<'a> core::ops::Deref for VideoEncodeProfileRgbConversionInfoVALVEBuilder<'a> {
81138 type Target = VideoEncodeProfileRgbConversionInfoVALVE;
81139 #[inline]
81140 fn deref(&self) -> &Self::Target {
81141 &self.inner
81142 }
81143}
81144impl<'a> core::ops::DerefMut for VideoEncodeProfileRgbConversionInfoVALVEBuilder<'a> {
81145 #[inline]
81146 fn deref_mut(&mut self) -> &mut Self::Target {
81147 &mut self.inner
81148 }
81149}
81150pub struct VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder<'a> {
81152 inner: VideoEncodeSessionRgbConversionCreateInfoVALVE,
81153 _marker: core::marker::PhantomData<&'a ()>,
81154}
81155impl VideoEncodeSessionRgbConversionCreateInfoVALVE {
81156 #[inline]
81158 pub fn builder<'a>() -> VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder<'a> {
81159 VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder {
81160 inner: VideoEncodeSessionRgbConversionCreateInfoVALVE {
81161 s_type: StructureType::from_raw(1000390003i32),
81162 ..Default::default()
81163 },
81164 _marker: core::marker::PhantomData,
81165 }
81166 }
81167}
81168impl<'a> VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder<'a> {
81169 #[inline]
81170 pub fn rgb_model(
81171 mut self,
81172 value: VideoEncodeRgbModelConversionFlagBitsVALVE,
81173 ) -> Self {
81174 self.inner.rgb_model = value;
81175 self
81176 }
81177 #[inline]
81178 pub fn rgb_range(
81179 mut self,
81180 value: VideoEncodeRgbRangeCompressionFlagBitsVALVE,
81181 ) -> Self {
81182 self.inner.rgb_range = value;
81183 self
81184 }
81185 #[inline]
81186 pub fn x_chroma_offset(
81187 mut self,
81188 value: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
81189 ) -> Self {
81190 self.inner.x_chroma_offset = value;
81191 self
81192 }
81193 #[inline]
81194 pub fn y_chroma_offset(
81195 mut self,
81196 value: VideoEncodeRgbChromaOffsetFlagBitsVALVE,
81197 ) -> Self {
81198 self.inner.y_chroma_offset = value;
81199 self
81200 }
81201 #[inline]
81203 pub fn push_next<T: ExtendsVideoEncodeSessionRgbConversionCreateInfoVALVE>(
81204 mut self,
81205 next: &'a mut T,
81206 ) -> Self {
81207 unsafe {
81208 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81209 (*next_ptr).p_next = self.inner.p_next as *mut _;
81210 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81211 core::ffi::c_void,
81212 >(next_ptr) as *const _;
81213 }
81214 self
81215 }
81216}
81217impl<'a> core::ops::Deref for VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder<'a> {
81218 type Target = VideoEncodeSessionRgbConversionCreateInfoVALVE;
81219 #[inline]
81220 fn deref(&self) -> &Self::Target {
81221 &self.inner
81222 }
81223}
81224impl<'a> core::ops::DerefMut
81225for VideoEncodeSessionRgbConversionCreateInfoVALVEBuilder<'a> {
81226 #[inline]
81227 fn deref_mut(&mut self) -> &mut Self::Target {
81228 &mut self.inner
81229 }
81230}
81231pub struct PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder<'a> {
81233 inner: PhysicalDeviceShader64BitIndexingFeaturesEXT,
81234 _marker: core::marker::PhantomData<&'a ()>,
81235}
81236impl PhysicalDeviceShader64BitIndexingFeaturesEXT {
81237 #[inline]
81239 pub fn builder<'a>() -> PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder<'a> {
81240 PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder {
81241 inner: PhysicalDeviceShader64BitIndexingFeaturesEXT {
81242 s_type: StructureType::from_raw(1000627000i32),
81243 ..Default::default()
81244 },
81245 _marker: core::marker::PhantomData,
81246 }
81247 }
81248}
81249impl<'a> PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder<'a> {
81250 #[inline]
81251 pub fn shader64_bit_indexing(mut self, value: bool) -> Self {
81252 self.inner.shader64_bit_indexing = value as u32;
81253 self
81254 }
81255 #[inline]
81257 pub fn push_next<T: ExtendsPhysicalDeviceShader64BitIndexingFeaturesEXT>(
81258 mut self,
81259 next: &'a mut T,
81260 ) -> Self {
81261 unsafe {
81262 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81263 (*next_ptr).p_next = self.inner.p_next as *mut _;
81264 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81265 core::ffi::c_void,
81266 >(next_ptr);
81267 }
81268 self
81269 }
81270}
81271impl<'a> core::ops::Deref for PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder<'a> {
81272 type Target = PhysicalDeviceShader64BitIndexingFeaturesEXT;
81273 #[inline]
81274 fn deref(&self) -> &Self::Target {
81275 &self.inner
81276 }
81277}
81278impl<'a> core::ops::DerefMut
81279for PhysicalDeviceShader64BitIndexingFeaturesEXTBuilder<'a> {
81280 #[inline]
81281 fn deref_mut(&mut self) -> &mut Self::Target {
81282 &mut self.inner
81283 }
81284}
81285pub struct NativeBufferUsageOHOSBuilder<'a> {
81287 inner: NativeBufferUsageOHOS,
81288 _marker: core::marker::PhantomData<&'a ()>,
81289}
81290impl NativeBufferUsageOHOS {
81291 #[inline]
81293 pub fn builder<'a>() -> NativeBufferUsageOHOSBuilder<'a> {
81294 NativeBufferUsageOHOSBuilder {
81295 inner: NativeBufferUsageOHOS {
81296 s_type: StructureType::from_raw(1000452000i32),
81297 ..Default::default()
81298 },
81299 _marker: core::marker::PhantomData,
81300 }
81301 }
81302}
81303impl<'a> NativeBufferUsageOHOSBuilder<'a> {
81304 #[inline]
81305 pub fn ohos_native_buffer_usage(mut self, value: u64) -> Self {
81306 self.inner.ohos_native_buffer_usage = value;
81307 self
81308 }
81309}
81310impl<'a> core::ops::Deref for NativeBufferUsageOHOSBuilder<'a> {
81311 type Target = NativeBufferUsageOHOS;
81312 #[inline]
81313 fn deref(&self) -> &Self::Target {
81314 &self.inner
81315 }
81316}
81317impl<'a> core::ops::DerefMut for NativeBufferUsageOHOSBuilder<'a> {
81318 #[inline]
81319 fn deref_mut(&mut self) -> &mut Self::Target {
81320 &mut self.inner
81321 }
81322}
81323pub struct NativeBufferPropertiesOHOSBuilder<'a> {
81325 inner: NativeBufferPropertiesOHOS,
81326 _marker: core::marker::PhantomData<&'a ()>,
81327}
81328impl NativeBufferPropertiesOHOS {
81329 #[inline]
81331 pub fn builder<'a>() -> NativeBufferPropertiesOHOSBuilder<'a> {
81332 NativeBufferPropertiesOHOSBuilder {
81333 inner: NativeBufferPropertiesOHOS {
81334 s_type: StructureType::from_raw(1000452001i32),
81335 ..Default::default()
81336 },
81337 _marker: core::marker::PhantomData,
81338 }
81339 }
81340}
81341impl<'a> NativeBufferPropertiesOHOSBuilder<'a> {
81342 #[inline]
81343 pub fn allocation_size(mut self, value: u64) -> Self {
81344 self.inner.allocation_size = value;
81345 self
81346 }
81347 #[inline]
81348 pub fn memory_type_bits(mut self, value: u32) -> Self {
81349 self.inner.memory_type_bits = value;
81350 self
81351 }
81352}
81353impl<'a> core::ops::Deref for NativeBufferPropertiesOHOSBuilder<'a> {
81354 type Target = NativeBufferPropertiesOHOS;
81355 #[inline]
81356 fn deref(&self) -> &Self::Target {
81357 &self.inner
81358 }
81359}
81360impl<'a> core::ops::DerefMut for NativeBufferPropertiesOHOSBuilder<'a> {
81361 #[inline]
81362 fn deref_mut(&mut self) -> &mut Self::Target {
81363 &mut self.inner
81364 }
81365}
81366pub struct NativeBufferFormatPropertiesOHOSBuilder<'a> {
81368 inner: NativeBufferFormatPropertiesOHOS,
81369 _marker: core::marker::PhantomData<&'a ()>,
81370}
81371impl NativeBufferFormatPropertiesOHOS {
81372 #[inline]
81374 pub fn builder<'a>() -> NativeBufferFormatPropertiesOHOSBuilder<'a> {
81375 NativeBufferFormatPropertiesOHOSBuilder {
81376 inner: NativeBufferFormatPropertiesOHOS {
81377 s_type: StructureType::from_raw(1000452002i32),
81378 ..Default::default()
81379 },
81380 _marker: core::marker::PhantomData,
81381 }
81382 }
81383}
81384impl<'a> NativeBufferFormatPropertiesOHOSBuilder<'a> {
81385 #[inline]
81386 pub fn format(mut self, value: Format) -> Self {
81387 self.inner.format = value;
81388 self
81389 }
81390 #[inline]
81391 pub fn external_format(mut self, value: u64) -> Self {
81392 self.inner.external_format = value;
81393 self
81394 }
81395 #[inline]
81396 pub fn format_features(mut self, value: FormatFeatureFlags) -> Self {
81397 self.inner.format_features = value;
81398 self
81399 }
81400 #[inline]
81401 pub fn sampler_ycbcr_conversion_components(
81402 mut self,
81403 value: ComponentMapping,
81404 ) -> Self {
81405 self.inner.sampler_ycbcr_conversion_components = value;
81406 self
81407 }
81408 #[inline]
81409 pub fn suggested_ycbcr_model(mut self, value: SamplerYcbcrModelConversion) -> Self {
81410 self.inner.suggested_ycbcr_model = value;
81411 self
81412 }
81413 #[inline]
81414 pub fn suggested_ycbcr_range(mut self, value: SamplerYcbcrRange) -> Self {
81415 self.inner.suggested_ycbcr_range = value;
81416 self
81417 }
81418 #[inline]
81419 pub fn suggested_x_chroma_offset(mut self, value: ChromaLocation) -> Self {
81420 self.inner.suggested_x_chroma_offset = value;
81421 self
81422 }
81423 #[inline]
81424 pub fn suggested_y_chroma_offset(mut self, value: ChromaLocation) -> Self {
81425 self.inner.suggested_y_chroma_offset = value;
81426 self
81427 }
81428}
81429impl<'a> core::ops::Deref for NativeBufferFormatPropertiesOHOSBuilder<'a> {
81430 type Target = NativeBufferFormatPropertiesOHOS;
81431 #[inline]
81432 fn deref(&self) -> &Self::Target {
81433 &self.inner
81434 }
81435}
81436impl<'a> core::ops::DerefMut for NativeBufferFormatPropertiesOHOSBuilder<'a> {
81437 #[inline]
81438 fn deref_mut(&mut self) -> &mut Self::Target {
81439 &mut self.inner
81440 }
81441}
81442pub struct ImportNativeBufferInfoOHOSBuilder<'a> {
81444 inner: ImportNativeBufferInfoOHOS,
81445 _marker: core::marker::PhantomData<&'a ()>,
81446}
81447impl ImportNativeBufferInfoOHOS {
81448 #[inline]
81450 pub fn builder<'a>() -> ImportNativeBufferInfoOHOSBuilder<'a> {
81451 ImportNativeBufferInfoOHOSBuilder {
81452 inner: ImportNativeBufferInfoOHOS {
81453 s_type: StructureType::from_raw(1000452003i32),
81454 ..Default::default()
81455 },
81456 _marker: core::marker::PhantomData,
81457 }
81458 }
81459}
81460impl<'a> ImportNativeBufferInfoOHOSBuilder<'a> {
81461 #[inline]
81462 pub fn buffer(mut self, value: *mut core::ffi::c_void) -> Self {
81463 self.inner.buffer = value;
81464 self
81465 }
81466 #[inline]
81468 pub fn push_next<T: ExtendsImportNativeBufferInfoOHOS>(
81469 mut self,
81470 next: &'a mut T,
81471 ) -> Self {
81472 unsafe {
81473 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81474 (*next_ptr).p_next = self.inner.p_next as *mut _;
81475 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81476 core::ffi::c_void,
81477 >(next_ptr) as *const _;
81478 }
81479 self
81480 }
81481}
81482impl<'a> core::ops::Deref for ImportNativeBufferInfoOHOSBuilder<'a> {
81483 type Target = ImportNativeBufferInfoOHOS;
81484 #[inline]
81485 fn deref(&self) -> &Self::Target {
81486 &self.inner
81487 }
81488}
81489impl<'a> core::ops::DerefMut for ImportNativeBufferInfoOHOSBuilder<'a> {
81490 #[inline]
81491 fn deref_mut(&mut self) -> &mut Self::Target {
81492 &mut self.inner
81493 }
81494}
81495pub struct MemoryGetNativeBufferInfoOHOSBuilder<'a> {
81497 inner: MemoryGetNativeBufferInfoOHOS,
81498 _marker: core::marker::PhantomData<&'a ()>,
81499}
81500impl MemoryGetNativeBufferInfoOHOS {
81501 #[inline]
81503 pub fn builder<'a>() -> MemoryGetNativeBufferInfoOHOSBuilder<'a> {
81504 MemoryGetNativeBufferInfoOHOSBuilder {
81505 inner: MemoryGetNativeBufferInfoOHOS {
81506 s_type: StructureType::from_raw(1000452004i32),
81507 ..Default::default()
81508 },
81509 _marker: core::marker::PhantomData,
81510 }
81511 }
81512}
81513impl<'a> MemoryGetNativeBufferInfoOHOSBuilder<'a> {
81514 #[inline]
81515 pub fn memory(mut self, value: DeviceMemory) -> Self {
81516 self.inner.memory = value;
81517 self
81518 }
81519 #[inline]
81521 pub fn push_next<T: ExtendsMemoryGetNativeBufferInfoOHOS>(
81522 mut self,
81523 next: &'a mut T,
81524 ) -> Self {
81525 unsafe {
81526 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81527 (*next_ptr).p_next = self.inner.p_next as *mut _;
81528 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81529 core::ffi::c_void,
81530 >(next_ptr) as *const _;
81531 }
81532 self
81533 }
81534}
81535impl<'a> core::ops::Deref for MemoryGetNativeBufferInfoOHOSBuilder<'a> {
81536 type Target = MemoryGetNativeBufferInfoOHOS;
81537 #[inline]
81538 fn deref(&self) -> &Self::Target {
81539 &self.inner
81540 }
81541}
81542impl<'a> core::ops::DerefMut for MemoryGetNativeBufferInfoOHOSBuilder<'a> {
81543 #[inline]
81544 fn deref_mut(&mut self) -> &mut Self::Target {
81545 &mut self.inner
81546 }
81547}
81548pub struct ExternalFormatOHOSBuilder<'a> {
81550 inner: ExternalFormatOHOS,
81551 _marker: core::marker::PhantomData<&'a ()>,
81552}
81553impl ExternalFormatOHOS {
81554 #[inline]
81556 pub fn builder<'a>() -> ExternalFormatOHOSBuilder<'a> {
81557 ExternalFormatOHOSBuilder {
81558 inner: ExternalFormatOHOS {
81559 s_type: StructureType::from_raw(1000452005i32),
81560 ..Default::default()
81561 },
81562 _marker: core::marker::PhantomData,
81563 }
81564 }
81565}
81566impl<'a> ExternalFormatOHOSBuilder<'a> {
81567 #[inline]
81568 pub fn external_format(mut self, value: u64) -> Self {
81569 self.inner.external_format = value;
81570 self
81571 }
81572 #[inline]
81574 pub fn push_next<T: ExtendsExternalFormatOHOS>(mut self, next: &'a mut T) -> Self {
81575 unsafe {
81576 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81577 (*next_ptr).p_next = self.inner.p_next as *mut _;
81578 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81579 core::ffi::c_void,
81580 >(next_ptr);
81581 }
81582 self
81583 }
81584}
81585impl<'a> core::ops::Deref for ExternalFormatOHOSBuilder<'a> {
81586 type Target = ExternalFormatOHOS;
81587 #[inline]
81588 fn deref(&self) -> &Self::Target {
81589 &self.inner
81590 }
81591}
81592impl<'a> core::ops::DerefMut for ExternalFormatOHOSBuilder<'a> {
81593 #[inline]
81594 fn deref_mut(&mut self) -> &mut Self::Target {
81595 &mut self.inner
81596 }
81597}
81598pub struct PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder<'a> {
81600 inner: PhysicalDevicePerformanceCountersByRegionFeaturesARM,
81601 _marker: core::marker::PhantomData<&'a ()>,
81602}
81603impl PhysicalDevicePerformanceCountersByRegionFeaturesARM {
81604 #[inline]
81606 pub fn builder<'a>() -> PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder<
81607 'a,
81608 > {
81609 PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder {
81610 inner: PhysicalDevicePerformanceCountersByRegionFeaturesARM {
81611 s_type: StructureType::from_raw(1000605000i32),
81612 ..Default::default()
81613 },
81614 _marker: core::marker::PhantomData,
81615 }
81616 }
81617}
81618impl<'a> PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder<'a> {
81619 #[inline]
81620 pub fn performance_counters_by_region(mut self, value: bool) -> Self {
81621 self.inner.performance_counters_by_region = value as u32;
81622 self
81623 }
81624 #[inline]
81626 pub fn push_next<T: ExtendsPhysicalDevicePerformanceCountersByRegionFeaturesARM>(
81627 mut self,
81628 next: &'a mut T,
81629 ) -> Self {
81630 unsafe {
81631 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81632 (*next_ptr).p_next = self.inner.p_next as *mut _;
81633 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81634 core::ffi::c_void,
81635 >(next_ptr);
81636 }
81637 self
81638 }
81639}
81640impl<'a> core::ops::Deref
81641for PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder<'a> {
81642 type Target = PhysicalDevicePerformanceCountersByRegionFeaturesARM;
81643 #[inline]
81644 fn deref(&self) -> &Self::Target {
81645 &self.inner
81646 }
81647}
81648impl<'a> core::ops::DerefMut
81649for PhysicalDevicePerformanceCountersByRegionFeaturesARMBuilder<'a> {
81650 #[inline]
81651 fn deref_mut(&mut self) -> &mut Self::Target {
81652 &mut self.inner
81653 }
81654}
81655pub struct PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder<'a> {
81657 inner: PhysicalDevicePerformanceCountersByRegionPropertiesARM,
81658 _marker: core::marker::PhantomData<&'a ()>,
81659}
81660impl PhysicalDevicePerformanceCountersByRegionPropertiesARM {
81661 #[inline]
81663 pub fn builder<'a>() -> PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder<
81664 'a,
81665 > {
81666 PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder {
81667 inner: PhysicalDevicePerformanceCountersByRegionPropertiesARM {
81668 s_type: StructureType::from_raw(1000605001i32),
81669 ..Default::default()
81670 },
81671 _marker: core::marker::PhantomData,
81672 }
81673 }
81674}
81675impl<'a> PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder<'a> {
81676 #[inline]
81677 pub fn max_per_region_performance_counters(mut self, value: u32) -> Self {
81678 self.inner.max_per_region_performance_counters = value;
81679 self
81680 }
81681 #[inline]
81682 pub fn performance_counter_region_size(mut self, value: Extent2D) -> Self {
81683 self.inner.performance_counter_region_size = value;
81684 self
81685 }
81686 #[inline]
81687 pub fn row_stride_alignment(mut self, value: u32) -> Self {
81688 self.inner.row_stride_alignment = value;
81689 self
81690 }
81691 #[inline]
81692 pub fn region_alignment(mut self, value: u32) -> Self {
81693 self.inner.region_alignment = value;
81694 self
81695 }
81696 #[inline]
81697 pub fn identity_transform_order(mut self, value: bool) -> Self {
81698 self.inner.identity_transform_order = value as u32;
81699 self
81700 }
81701}
81702impl<'a> core::ops::Deref
81703for PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder<'a> {
81704 type Target = PhysicalDevicePerformanceCountersByRegionPropertiesARM;
81705 #[inline]
81706 fn deref(&self) -> &Self::Target {
81707 &self.inner
81708 }
81709}
81710impl<'a> core::ops::DerefMut
81711for PhysicalDevicePerformanceCountersByRegionPropertiesARMBuilder<'a> {
81712 #[inline]
81713 fn deref_mut(&mut self) -> &mut Self::Target {
81714 &mut self.inner
81715 }
81716}
81717pub struct PerformanceCounterARMBuilder<'a> {
81719 inner: PerformanceCounterARM,
81720 _marker: core::marker::PhantomData<&'a ()>,
81721}
81722impl PerformanceCounterARM {
81723 #[inline]
81725 pub fn builder<'a>() -> PerformanceCounterARMBuilder<'a> {
81726 PerformanceCounterARMBuilder {
81727 inner: PerformanceCounterARM {
81728 s_type: StructureType::from_raw(1000605002i32),
81729 ..Default::default()
81730 },
81731 _marker: core::marker::PhantomData,
81732 }
81733 }
81734}
81735impl<'a> PerformanceCounterARMBuilder<'a> {
81736 #[inline]
81737 pub fn counter_id(mut self, value: u32) -> Self {
81738 self.inner.counter_id = value;
81739 self
81740 }
81741}
81742impl<'a> core::ops::Deref for PerformanceCounterARMBuilder<'a> {
81743 type Target = PerformanceCounterARM;
81744 #[inline]
81745 fn deref(&self) -> &Self::Target {
81746 &self.inner
81747 }
81748}
81749impl<'a> core::ops::DerefMut for PerformanceCounterARMBuilder<'a> {
81750 #[inline]
81751 fn deref_mut(&mut self) -> &mut Self::Target {
81752 &mut self.inner
81753 }
81754}
81755pub struct PerformanceCounterDescriptionARMBuilder<'a> {
81757 inner: PerformanceCounterDescriptionARM,
81758 _marker: core::marker::PhantomData<&'a ()>,
81759}
81760impl PerformanceCounterDescriptionARM {
81761 #[inline]
81763 pub fn builder<'a>() -> PerformanceCounterDescriptionARMBuilder<'a> {
81764 PerformanceCounterDescriptionARMBuilder {
81765 inner: PerformanceCounterDescriptionARM {
81766 s_type: StructureType::from_raw(1000605003i32),
81767 ..Default::default()
81768 },
81769 _marker: core::marker::PhantomData,
81770 }
81771 }
81772}
81773impl<'a> PerformanceCounterDescriptionARMBuilder<'a> {
81774 #[inline]
81775 pub fn flags(mut self, value: PerformanceCounterDescriptionFlagsARM) -> Self {
81776 self.inner.flags = value;
81777 self
81778 }
81779 #[inline]
81780 pub fn name(
81781 mut self,
81782 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
81783 ) -> Self {
81784 self.inner.name = value;
81785 self
81786 }
81787}
81788impl<'a> core::ops::Deref for PerformanceCounterDescriptionARMBuilder<'a> {
81789 type Target = PerformanceCounterDescriptionARM;
81790 #[inline]
81791 fn deref(&self) -> &Self::Target {
81792 &self.inner
81793 }
81794}
81795impl<'a> core::ops::DerefMut for PerformanceCounterDescriptionARMBuilder<'a> {
81796 #[inline]
81797 fn deref_mut(&mut self) -> &mut Self::Target {
81798 &mut self.inner
81799 }
81800}
81801pub struct RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'a> {
81803 inner: RenderPassPerformanceCountersByRegionBeginInfoARM,
81804 _marker: core::marker::PhantomData<&'a ()>,
81805}
81806impl RenderPassPerformanceCountersByRegionBeginInfoARM {
81807 #[inline]
81809 pub fn builder<'a>() -> RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<
81810 'a,
81811 > {
81812 RenderPassPerformanceCountersByRegionBeginInfoARMBuilder {
81813 inner: RenderPassPerformanceCountersByRegionBeginInfoARM {
81814 s_type: StructureType::from_raw(1000605004i32),
81815 ..Default::default()
81816 },
81817 _marker: core::marker::PhantomData,
81818 }
81819 }
81820}
81821impl<'a> RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'a> {
81822 #[inline]
81823 pub fn counter_addresses(mut self, slice: &'a [u64]) -> Self {
81824 self.inner.counter_address_count = slice.len() as u32;
81825 self.inner.p_counter_addresses = slice.as_ptr();
81826 self
81827 }
81828 #[inline]
81829 pub fn serialize_regions(mut self, value: bool) -> Self {
81830 self.inner.serialize_regions = value as u32;
81831 self
81832 }
81833 #[inline]
81834 pub fn counter_indices(mut self, slice: &'a mut [u32]) -> Self {
81835 self.inner.counter_index_count = slice.len() as u32;
81836 self.inner.p_counter_indices = slice.as_mut_ptr();
81837 self
81838 }
81839 #[inline]
81841 pub fn push_next<T: ExtendsRenderPassPerformanceCountersByRegionBeginInfoARM>(
81842 mut self,
81843 next: &'a mut T,
81844 ) -> Self {
81845 unsafe {
81846 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81847 (*next_ptr).p_next = self.inner.p_next as *mut _;
81848 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81849 core::ffi::c_void,
81850 >(next_ptr);
81851 }
81852 self
81853 }
81854}
81855impl<'a> core::ops::Deref
81856for RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'a> {
81857 type Target = RenderPassPerformanceCountersByRegionBeginInfoARM;
81858 #[inline]
81859 fn deref(&self) -> &Self::Target {
81860 &self.inner
81861 }
81862}
81863impl<'a> core::ops::DerefMut
81864for RenderPassPerformanceCountersByRegionBeginInfoARMBuilder<'a> {
81865 #[inline]
81866 fn deref_mut(&mut self) -> &mut Self::Target {
81867 &mut self.inner
81868 }
81869}
81870pub struct ComputeOccupancyPriorityParametersNVBuilder<'a> {
81872 inner: ComputeOccupancyPriorityParametersNV,
81873 _marker: core::marker::PhantomData<&'a ()>,
81874}
81875impl ComputeOccupancyPriorityParametersNV {
81876 #[inline]
81878 pub fn builder<'a>() -> ComputeOccupancyPriorityParametersNVBuilder<'a> {
81879 ComputeOccupancyPriorityParametersNVBuilder {
81880 inner: ComputeOccupancyPriorityParametersNV {
81881 s_type: StructureType::from_raw(1000645000i32),
81882 ..Default::default()
81883 },
81884 _marker: core::marker::PhantomData,
81885 }
81886 }
81887}
81888impl<'a> ComputeOccupancyPriorityParametersNVBuilder<'a> {
81889 #[inline]
81890 pub fn occupancy_priority(mut self, value: f32) -> Self {
81891 self.inner.occupancy_priority = value;
81892 self
81893 }
81894 #[inline]
81895 pub fn occupancy_throttling(mut self, value: f32) -> Self {
81896 self.inner.occupancy_throttling = value;
81897 self
81898 }
81899 #[inline]
81901 pub fn push_next<T: ExtendsComputeOccupancyPriorityParametersNV>(
81902 mut self,
81903 next: &'a mut T,
81904 ) -> Self {
81905 unsafe {
81906 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81907 (*next_ptr).p_next = self.inner.p_next as *mut _;
81908 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81909 core::ffi::c_void,
81910 >(next_ptr) as *const _;
81911 }
81912 self
81913 }
81914}
81915impl<'a> core::ops::Deref for ComputeOccupancyPriorityParametersNVBuilder<'a> {
81916 type Target = ComputeOccupancyPriorityParametersNV;
81917 #[inline]
81918 fn deref(&self) -> &Self::Target {
81919 &self.inner
81920 }
81921}
81922impl<'a> core::ops::DerefMut for ComputeOccupancyPriorityParametersNVBuilder<'a> {
81923 #[inline]
81924 fn deref_mut(&mut self) -> &mut Self::Target {
81925 &mut self.inner
81926 }
81927}
81928pub struct PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder<'a> {
81930 inner: PhysicalDeviceComputeOccupancyPriorityFeaturesNV,
81931 _marker: core::marker::PhantomData<&'a ()>,
81932}
81933impl PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
81934 #[inline]
81936 pub fn builder<'a>() -> PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder<'a> {
81937 PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder {
81938 inner: PhysicalDeviceComputeOccupancyPriorityFeaturesNV {
81939 s_type: StructureType::from_raw(1000645001i32),
81940 ..Default::default()
81941 },
81942 _marker: core::marker::PhantomData,
81943 }
81944 }
81945}
81946impl<'a> PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder<'a> {
81947 #[inline]
81948 pub fn compute_occupancy_priority(mut self, value: bool) -> Self {
81949 self.inner.compute_occupancy_priority = value as u32;
81950 self
81951 }
81952 #[inline]
81954 pub fn push_next<T: ExtendsPhysicalDeviceComputeOccupancyPriorityFeaturesNV>(
81955 mut self,
81956 next: &'a mut T,
81957 ) -> Self {
81958 unsafe {
81959 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
81960 (*next_ptr).p_next = self.inner.p_next as *mut _;
81961 self.inner.p_next = <*mut BaseOutStructure>::cast::<
81962 core::ffi::c_void,
81963 >(next_ptr);
81964 }
81965 self
81966 }
81967}
81968impl<'a> core::ops::Deref
81969for PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder<'a> {
81970 type Target = PhysicalDeviceComputeOccupancyPriorityFeaturesNV;
81971 #[inline]
81972 fn deref(&self) -> &Self::Target {
81973 &self.inner
81974 }
81975}
81976impl<'a> core::ops::DerefMut
81977for PhysicalDeviceComputeOccupancyPriorityFeaturesNVBuilder<'a> {
81978 #[inline]
81979 fn deref_mut(&mut self) -> &mut Self::Target {
81980 &mut self.inner
81981 }
81982}
81983pub struct PhysicalDeviceShaderLongVectorFeaturesEXTBuilder<'a> {
81985 inner: PhysicalDeviceShaderLongVectorFeaturesEXT,
81986 _marker: core::marker::PhantomData<&'a ()>,
81987}
81988impl PhysicalDeviceShaderLongVectorFeaturesEXT {
81989 #[inline]
81991 pub fn builder<'a>() -> PhysicalDeviceShaderLongVectorFeaturesEXTBuilder<'a> {
81992 PhysicalDeviceShaderLongVectorFeaturesEXTBuilder {
81993 inner: PhysicalDeviceShaderLongVectorFeaturesEXT {
81994 s_type: StructureType::from_raw(1000635000i32),
81995 ..Default::default()
81996 },
81997 _marker: core::marker::PhantomData,
81998 }
81999 }
82000}
82001impl<'a> PhysicalDeviceShaderLongVectorFeaturesEXTBuilder<'a> {
82002 #[inline]
82003 pub fn long_vector(mut self, value: bool) -> Self {
82004 self.inner.long_vector = value as u32;
82005 self
82006 }
82007 #[inline]
82009 pub fn push_next<T: ExtendsPhysicalDeviceShaderLongVectorFeaturesEXT>(
82010 mut self,
82011 next: &'a mut T,
82012 ) -> Self {
82013 unsafe {
82014 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82015 (*next_ptr).p_next = self.inner.p_next as *mut _;
82016 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82017 core::ffi::c_void,
82018 >(next_ptr);
82019 }
82020 self
82021 }
82022}
82023impl<'a> core::ops::Deref for PhysicalDeviceShaderLongVectorFeaturesEXTBuilder<'a> {
82024 type Target = PhysicalDeviceShaderLongVectorFeaturesEXT;
82025 #[inline]
82026 fn deref(&self) -> &Self::Target {
82027 &self.inner
82028 }
82029}
82030impl<'a> core::ops::DerefMut for PhysicalDeviceShaderLongVectorFeaturesEXTBuilder<'a> {
82031 #[inline]
82032 fn deref_mut(&mut self) -> &mut Self::Target {
82033 &mut self.inner
82034 }
82035}
82036pub struct PhysicalDeviceShaderLongVectorPropertiesEXTBuilder<'a> {
82038 inner: PhysicalDeviceShaderLongVectorPropertiesEXT,
82039 _marker: core::marker::PhantomData<&'a ()>,
82040}
82041impl PhysicalDeviceShaderLongVectorPropertiesEXT {
82042 #[inline]
82044 pub fn builder<'a>() -> PhysicalDeviceShaderLongVectorPropertiesEXTBuilder<'a> {
82045 PhysicalDeviceShaderLongVectorPropertiesEXTBuilder {
82046 inner: PhysicalDeviceShaderLongVectorPropertiesEXT {
82047 s_type: StructureType::from_raw(1000635001i32),
82048 ..Default::default()
82049 },
82050 _marker: core::marker::PhantomData,
82051 }
82052 }
82053}
82054impl<'a> PhysicalDeviceShaderLongVectorPropertiesEXTBuilder<'a> {
82055 #[inline]
82056 pub fn max_vector_components(mut self, value: u32) -> Self {
82057 self.inner.max_vector_components = value;
82058 self
82059 }
82060}
82061impl<'a> core::ops::Deref for PhysicalDeviceShaderLongVectorPropertiesEXTBuilder<'a> {
82062 type Target = PhysicalDeviceShaderLongVectorPropertiesEXT;
82063 #[inline]
82064 fn deref(&self) -> &Self::Target {
82065 &self.inner
82066 }
82067}
82068impl<'a> core::ops::DerefMut for PhysicalDeviceShaderLongVectorPropertiesEXTBuilder<'a> {
82069 #[inline]
82070 fn deref_mut(&mut self) -> &mut Self::Target {
82071 &mut self.inner
82072 }
82073}
82074pub struct PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder<'a> {
82076 inner: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT,
82077 _marker: core::marker::PhantomData<&'a ()>,
82078}
82079impl PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
82080 #[inline]
82082 pub fn builder<'a>() -> PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder<
82083 'a,
82084 > {
82085 PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder {
82086 inner: PhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
82087 s_type: StructureType::from_raw(1000288000i32),
82088 ..Default::default()
82089 },
82090 _marker: core::marker::PhantomData,
82091 }
82092 }
82093}
82094impl<'a> PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder<'a> {
82095 #[inline]
82096 pub fn texture_compression_astc_3d(mut self, value: bool) -> Self {
82097 self.inner.texture_compression_astc_3d = value as u32;
82098 self
82099 }
82100 #[inline]
82102 pub fn push_next<T: ExtendsPhysicalDeviceTextureCompressionASTC3DFeaturesEXT>(
82103 mut self,
82104 next: &'a mut T,
82105 ) -> Self {
82106 unsafe {
82107 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82108 (*next_ptr).p_next = self.inner.p_next as *mut _;
82109 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82110 core::ffi::c_void,
82111 >(next_ptr);
82112 }
82113 self
82114 }
82115}
82116impl<'a> core::ops::Deref
82117for PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder<'a> {
82118 type Target = PhysicalDeviceTextureCompressionASTC3DFeaturesEXT;
82119 #[inline]
82120 fn deref(&self) -> &Self::Target {
82121 &self.inner
82122 }
82123}
82124impl<'a> core::ops::DerefMut
82125for PhysicalDeviceTextureCompressionASTC3DFeaturesEXTBuilder<'a> {
82126 #[inline]
82127 fn deref_mut(&mut self) -> &mut Self::Target {
82128 &mut self.inner
82129 }
82130}
82131pub struct PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder<'a> {
82133 inner: PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT,
82134 _marker: core::marker::PhantomData<&'a ()>,
82135}
82136impl PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
82137 #[inline]
82139 pub fn builder<'a>() -> PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder<
82140 'a,
82141 > {
82142 PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder {
82143 inner: PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
82144 s_type: StructureType::from_raw(1000662000i32),
82145 ..Default::default()
82146 },
82147 _marker: core::marker::PhantomData,
82148 }
82149 }
82150}
82151impl<'a> PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder<'a> {
82152 #[inline]
82153 pub fn shader_subgroup_partitioned(mut self, value: bool) -> Self {
82154 self.inner.shader_subgroup_partitioned = value as u32;
82155 self
82156 }
82157 #[inline]
82159 pub fn push_next<T: ExtendsPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT>(
82160 mut self,
82161 next: &'a mut T,
82162 ) -> Self {
82163 unsafe {
82164 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82165 (*next_ptr).p_next = self.inner.p_next as *mut _;
82166 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82167 core::ffi::c_void,
82168 >(next_ptr);
82169 }
82170 self
82171 }
82172}
82173impl<'a> core::ops::Deref
82174for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder<'a> {
82175 type Target = PhysicalDeviceShaderSubgroupPartitionedFeaturesEXT;
82176 #[inline]
82177 fn deref(&self) -> &Self::Target {
82178 &self.inner
82179 }
82180}
82181impl<'a> core::ops::DerefMut
82182for PhysicalDeviceShaderSubgroupPartitionedFeaturesEXTBuilder<'a> {
82183 #[inline]
82184 fn deref_mut(&mut self) -> &mut Self::Target {
82185 &mut self.inner
82186 }
82187}
82188pub struct HostAddressRangeEXTBuilder<'a> {
82190 inner: HostAddressRangeEXT,
82191 _marker: core::marker::PhantomData<&'a ()>,
82192}
82193impl HostAddressRangeEXT {
82194 #[inline]
82196 pub fn builder<'a>() -> HostAddressRangeEXTBuilder<'a> {
82197 HostAddressRangeEXTBuilder {
82198 inner: HostAddressRangeEXT {
82199 ..Default::default()
82200 },
82201 _marker: core::marker::PhantomData,
82202 }
82203 }
82204}
82205impl<'a> HostAddressRangeEXTBuilder<'a> {
82206 #[inline]
82207 pub fn address(mut self, slice: &'a mut [core::ffi::c_void]) -> Self {
82208 self.inner.size = slice.len();
82209 self.inner.address = slice.as_mut_ptr();
82210 self
82211 }
82212}
82213impl<'a> core::ops::Deref for HostAddressRangeEXTBuilder<'a> {
82214 type Target = HostAddressRangeEXT;
82215 #[inline]
82216 fn deref(&self) -> &Self::Target {
82217 &self.inner
82218 }
82219}
82220impl<'a> core::ops::DerefMut for HostAddressRangeEXTBuilder<'a> {
82221 #[inline]
82222 fn deref_mut(&mut self) -> &mut Self::Target {
82223 &mut self.inner
82224 }
82225}
82226pub struct HostAddressRangeConstEXTBuilder<'a> {
82228 inner: HostAddressRangeConstEXT,
82229 _marker: core::marker::PhantomData<&'a ()>,
82230}
82231impl HostAddressRangeConstEXT {
82232 #[inline]
82234 pub fn builder<'a>() -> HostAddressRangeConstEXTBuilder<'a> {
82235 HostAddressRangeConstEXTBuilder {
82236 inner: HostAddressRangeConstEXT {
82237 ..Default::default()
82238 },
82239 _marker: core::marker::PhantomData,
82240 }
82241 }
82242}
82243impl<'a> HostAddressRangeConstEXTBuilder<'a> {
82244 #[inline]
82245 pub fn address(mut self, slice: &'a [core::ffi::c_void]) -> Self {
82246 self.inner.size = slice.len();
82247 self.inner.address = slice.as_ptr();
82248 self
82249 }
82250}
82251impl<'a> core::ops::Deref for HostAddressRangeConstEXTBuilder<'a> {
82252 type Target = HostAddressRangeConstEXT;
82253 #[inline]
82254 fn deref(&self) -> &Self::Target {
82255 &self.inner
82256 }
82257}
82258impl<'a> core::ops::DerefMut for HostAddressRangeConstEXTBuilder<'a> {
82259 #[inline]
82260 fn deref_mut(&mut self) -> &mut Self::Target {
82261 &mut self.inner
82262 }
82263}
82264pub struct TexelBufferDescriptorInfoEXTBuilder<'a> {
82266 inner: TexelBufferDescriptorInfoEXT,
82267 _marker: core::marker::PhantomData<&'a ()>,
82268}
82269impl TexelBufferDescriptorInfoEXT {
82270 #[inline]
82272 pub fn builder<'a>() -> TexelBufferDescriptorInfoEXTBuilder<'a> {
82273 TexelBufferDescriptorInfoEXTBuilder {
82274 inner: TexelBufferDescriptorInfoEXT {
82275 s_type: StructureType::from_raw(1000135000i32),
82276 ..Default::default()
82277 },
82278 _marker: core::marker::PhantomData,
82279 }
82280 }
82281}
82282impl<'a> TexelBufferDescriptorInfoEXTBuilder<'a> {
82283 #[inline]
82284 pub fn format(mut self, value: Format) -> Self {
82285 self.inner.format = value;
82286 self
82287 }
82288 #[inline]
82289 pub fn address_range(mut self, value: DeviceAddressRangeEXT) -> Self {
82290 self.inner.address_range = value;
82291 self
82292 }
82293 #[inline]
82295 pub fn push_next<T: ExtendsTexelBufferDescriptorInfoEXT>(
82296 mut self,
82297 next: &'a mut T,
82298 ) -> Self {
82299 unsafe {
82300 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82301 (*next_ptr).p_next = self.inner.p_next as *mut _;
82302 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82303 core::ffi::c_void,
82304 >(next_ptr) as *const _;
82305 }
82306 self
82307 }
82308}
82309impl<'a> core::ops::Deref for TexelBufferDescriptorInfoEXTBuilder<'a> {
82310 type Target = TexelBufferDescriptorInfoEXT;
82311 #[inline]
82312 fn deref(&self) -> &Self::Target {
82313 &self.inner
82314 }
82315}
82316impl<'a> core::ops::DerefMut for TexelBufferDescriptorInfoEXTBuilder<'a> {
82317 #[inline]
82318 fn deref_mut(&mut self) -> &mut Self::Target {
82319 &mut self.inner
82320 }
82321}
82322pub struct ImageDescriptorInfoEXTBuilder<'a> {
82324 inner: ImageDescriptorInfoEXT,
82325 _marker: core::marker::PhantomData<&'a ()>,
82326}
82327impl ImageDescriptorInfoEXT {
82328 #[inline]
82330 pub fn builder<'a>() -> ImageDescriptorInfoEXTBuilder<'a> {
82331 ImageDescriptorInfoEXTBuilder {
82332 inner: ImageDescriptorInfoEXT {
82333 s_type: StructureType::from_raw(1000135001i32),
82334 ..Default::default()
82335 },
82336 _marker: core::marker::PhantomData,
82337 }
82338 }
82339}
82340impl<'a> ImageDescriptorInfoEXTBuilder<'a> {
82341 #[inline]
82342 pub fn view(mut self, value: &'a ImageViewCreateInfo) -> Self {
82343 self.inner.p_view = value;
82344 self
82345 }
82346 #[inline]
82347 pub fn layout(mut self, value: ImageLayout) -> Self {
82348 self.inner.layout = value;
82349 self
82350 }
82351 #[inline]
82353 pub fn push_next<T: ExtendsImageDescriptorInfoEXT>(
82354 mut self,
82355 next: &'a mut T,
82356 ) -> Self {
82357 unsafe {
82358 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82359 (*next_ptr).p_next = self.inner.p_next as *mut _;
82360 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82361 core::ffi::c_void,
82362 >(next_ptr) as *const _;
82363 }
82364 self
82365 }
82366}
82367impl<'a> core::ops::Deref for ImageDescriptorInfoEXTBuilder<'a> {
82368 type Target = ImageDescriptorInfoEXT;
82369 #[inline]
82370 fn deref(&self) -> &Self::Target {
82371 &self.inner
82372 }
82373}
82374impl<'a> core::ops::DerefMut for ImageDescriptorInfoEXTBuilder<'a> {
82375 #[inline]
82376 fn deref_mut(&mut self) -> &mut Self::Target {
82377 &mut self.inner
82378 }
82379}
82380pub struct ResourceDescriptorInfoEXTBuilder<'a> {
82382 inner: ResourceDescriptorInfoEXT,
82383 _marker: core::marker::PhantomData<&'a ()>,
82384}
82385impl ResourceDescriptorInfoEXT {
82386 #[inline]
82388 pub fn builder<'a>() -> ResourceDescriptorInfoEXTBuilder<'a> {
82389 ResourceDescriptorInfoEXTBuilder {
82390 inner: ResourceDescriptorInfoEXT {
82391 s_type: StructureType::from_raw(1000135002i32),
82392 ..Default::default()
82393 },
82394 _marker: core::marker::PhantomData,
82395 }
82396 }
82397}
82398impl<'a> ResourceDescriptorInfoEXTBuilder<'a> {
82399 #[inline]
82400 pub fn r#type(mut self, value: DescriptorType) -> Self {
82401 self.inner.r#type = value;
82402 self
82403 }
82404 #[inline]
82405 pub fn data(mut self, value: ResourceDescriptorDataEXT) -> Self {
82406 self.inner.data = value;
82407 self
82408 }
82409 #[inline]
82411 pub fn push_next<T: ExtendsResourceDescriptorInfoEXT>(
82412 mut self,
82413 next: &'a mut T,
82414 ) -> Self {
82415 unsafe {
82416 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82417 (*next_ptr).p_next = self.inner.p_next as *mut _;
82418 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82419 core::ffi::c_void,
82420 >(next_ptr) as *const _;
82421 }
82422 self
82423 }
82424}
82425impl<'a> core::ops::Deref for ResourceDescriptorInfoEXTBuilder<'a> {
82426 type Target = ResourceDescriptorInfoEXT;
82427 #[inline]
82428 fn deref(&self) -> &Self::Target {
82429 &self.inner
82430 }
82431}
82432impl<'a> core::ops::DerefMut for ResourceDescriptorInfoEXTBuilder<'a> {
82433 #[inline]
82434 fn deref_mut(&mut self) -> &mut Self::Target {
82435 &mut self.inner
82436 }
82437}
82438pub struct BindHeapInfoEXTBuilder<'a> {
82440 inner: BindHeapInfoEXT,
82441 _marker: core::marker::PhantomData<&'a ()>,
82442}
82443impl BindHeapInfoEXT {
82444 #[inline]
82446 pub fn builder<'a>() -> BindHeapInfoEXTBuilder<'a> {
82447 BindHeapInfoEXTBuilder {
82448 inner: BindHeapInfoEXT {
82449 s_type: StructureType::from_raw(1000135003i32),
82450 ..Default::default()
82451 },
82452 _marker: core::marker::PhantomData,
82453 }
82454 }
82455}
82456impl<'a> BindHeapInfoEXTBuilder<'a> {
82457 #[inline]
82458 pub fn heap_range(mut self, value: DeviceAddressRangeEXT) -> Self {
82459 self.inner.heap_range = value;
82460 self
82461 }
82462 #[inline]
82463 pub fn reserved_range_offset(mut self, value: u64) -> Self {
82464 self.inner.reserved_range_offset = value;
82465 self
82466 }
82467 #[inline]
82468 pub fn reserved_range_size(mut self, value: u64) -> Self {
82469 self.inner.reserved_range_size = value;
82470 self
82471 }
82472 #[inline]
82474 pub fn push_next<T: ExtendsBindHeapInfoEXT>(mut self, next: &'a mut T) -> Self {
82475 unsafe {
82476 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82477 (*next_ptr).p_next = self.inner.p_next as *mut _;
82478 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82479 core::ffi::c_void,
82480 >(next_ptr) as *const _;
82481 }
82482 self
82483 }
82484}
82485impl<'a> core::ops::Deref for BindHeapInfoEXTBuilder<'a> {
82486 type Target = BindHeapInfoEXT;
82487 #[inline]
82488 fn deref(&self) -> &Self::Target {
82489 &self.inner
82490 }
82491}
82492impl<'a> core::ops::DerefMut for BindHeapInfoEXTBuilder<'a> {
82493 #[inline]
82494 fn deref_mut(&mut self) -> &mut Self::Target {
82495 &mut self.inner
82496 }
82497}
82498pub struct PushDataInfoEXTBuilder<'a> {
82500 inner: PushDataInfoEXT,
82501 _marker: core::marker::PhantomData<&'a ()>,
82502}
82503impl PushDataInfoEXT {
82504 #[inline]
82506 pub fn builder<'a>() -> PushDataInfoEXTBuilder<'a> {
82507 PushDataInfoEXTBuilder {
82508 inner: PushDataInfoEXT {
82509 s_type: StructureType::from_raw(1000135004i32),
82510 ..Default::default()
82511 },
82512 _marker: core::marker::PhantomData,
82513 }
82514 }
82515}
82516impl<'a> PushDataInfoEXTBuilder<'a> {
82517 #[inline]
82518 pub fn offset(mut self, value: u32) -> Self {
82519 self.inner.offset = value;
82520 self
82521 }
82522 #[inline]
82523 pub fn data(mut self, value: HostAddressRangeConstEXT) -> Self {
82524 self.inner.data = value;
82525 self
82526 }
82527 #[inline]
82529 pub fn push_next<T: ExtendsPushDataInfoEXT>(mut self, next: &'a mut T) -> Self {
82530 unsafe {
82531 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
82532 (*next_ptr).p_next = self.inner.p_next as *mut _;
82533 self.inner.p_next = <*mut BaseOutStructure>::cast::<
82534 core::ffi::c_void,
82535 >(next_ptr) as *const _;
82536 }
82537 self
82538 }
82539}
82540impl<'a> core::ops::Deref for PushDataInfoEXTBuilder<'a> {
82541 type Target = PushDataInfoEXT;
82542 #[inline]
82543 fn deref(&self) -> &Self::Target {
82544 &self.inner
82545 }
82546}
82547impl<'a> core::ops::DerefMut for PushDataInfoEXTBuilder<'a> {
82548 #[inline]
82549 fn deref_mut(&mut self) -> &mut Self::Target {
82550 &mut self.inner
82551 }
82552}
82553pub struct DescriptorMappingSourceConstantOffsetEXTBuilder<'a> {
82555 inner: DescriptorMappingSourceConstantOffsetEXT,
82556 _marker: core::marker::PhantomData<&'a ()>,
82557}
82558impl DescriptorMappingSourceConstantOffsetEXT {
82559 #[inline]
82561 pub fn builder<'a>() -> DescriptorMappingSourceConstantOffsetEXTBuilder<'a> {
82562 DescriptorMappingSourceConstantOffsetEXTBuilder {
82563 inner: DescriptorMappingSourceConstantOffsetEXT {
82564 ..Default::default()
82565 },
82566 _marker: core::marker::PhantomData,
82567 }
82568 }
82569}
82570impl<'a> DescriptorMappingSourceConstantOffsetEXTBuilder<'a> {
82571 #[inline]
82572 pub fn heap_offset(mut self, value: u32) -> Self {
82573 self.inner.heap_offset = value;
82574 self
82575 }
82576 #[inline]
82577 pub fn heap_array_stride(mut self, value: u32) -> Self {
82578 self.inner.heap_array_stride = value;
82579 self
82580 }
82581 #[inline]
82582 pub fn embedded_sampler(mut self, value: &'a SamplerCreateInfo) -> Self {
82583 self.inner.p_embedded_sampler = value;
82584 self
82585 }
82586 #[inline]
82587 pub fn sampler_heap_offset(mut self, value: u32) -> Self {
82588 self.inner.sampler_heap_offset = value;
82589 self
82590 }
82591 #[inline]
82592 pub fn sampler_heap_array_stride(mut self, value: u32) -> Self {
82593 self.inner.sampler_heap_array_stride = value;
82594 self
82595 }
82596}
82597impl<'a> core::ops::Deref for DescriptorMappingSourceConstantOffsetEXTBuilder<'a> {
82598 type Target = DescriptorMappingSourceConstantOffsetEXT;
82599 #[inline]
82600 fn deref(&self) -> &Self::Target {
82601 &self.inner
82602 }
82603}
82604impl<'a> core::ops::DerefMut for DescriptorMappingSourceConstantOffsetEXTBuilder<'a> {
82605 #[inline]
82606 fn deref_mut(&mut self) -> &mut Self::Target {
82607 &mut self.inner
82608 }
82609}
82610pub struct DescriptorMappingSourcePushIndexEXTBuilder<'a> {
82612 inner: DescriptorMappingSourcePushIndexEXT,
82613 _marker: core::marker::PhantomData<&'a ()>,
82614}
82615impl DescriptorMappingSourcePushIndexEXT {
82616 #[inline]
82618 pub fn builder<'a>() -> DescriptorMappingSourcePushIndexEXTBuilder<'a> {
82619 DescriptorMappingSourcePushIndexEXTBuilder {
82620 inner: DescriptorMappingSourcePushIndexEXT {
82621 ..Default::default()
82622 },
82623 _marker: core::marker::PhantomData,
82624 }
82625 }
82626}
82627impl<'a> DescriptorMappingSourcePushIndexEXTBuilder<'a> {
82628 #[inline]
82629 pub fn heap_offset(mut self, value: u32) -> Self {
82630 self.inner.heap_offset = value;
82631 self
82632 }
82633 #[inline]
82634 pub fn push_offset(mut self, value: u32) -> Self {
82635 self.inner.push_offset = value;
82636 self
82637 }
82638 #[inline]
82639 pub fn heap_index_stride(mut self, value: u32) -> Self {
82640 self.inner.heap_index_stride = value;
82641 self
82642 }
82643 #[inline]
82644 pub fn heap_array_stride(mut self, value: u32) -> Self {
82645 self.inner.heap_array_stride = value;
82646 self
82647 }
82648 #[inline]
82649 pub fn embedded_sampler(mut self, value: &'a SamplerCreateInfo) -> Self {
82650 self.inner.p_embedded_sampler = value;
82651 self
82652 }
82653 #[inline]
82654 pub fn use_combined_image_sampler_index(mut self, value: bool) -> Self {
82655 self.inner.use_combined_image_sampler_index = value as u32;
82656 self
82657 }
82658 #[inline]
82659 pub fn sampler_heap_offset(mut self, value: u32) -> Self {
82660 self.inner.sampler_heap_offset = value;
82661 self
82662 }
82663 #[inline]
82664 pub fn sampler_push_offset(mut self, value: u32) -> Self {
82665 self.inner.sampler_push_offset = value;
82666 self
82667 }
82668 #[inline]
82669 pub fn sampler_heap_index_stride(mut self, value: u32) -> Self {
82670 self.inner.sampler_heap_index_stride = value;
82671 self
82672 }
82673 #[inline]
82674 pub fn sampler_heap_array_stride(mut self, value: u32) -> Self {
82675 self.inner.sampler_heap_array_stride = value;
82676 self
82677 }
82678}
82679impl<'a> core::ops::Deref for DescriptorMappingSourcePushIndexEXTBuilder<'a> {
82680 type Target = DescriptorMappingSourcePushIndexEXT;
82681 #[inline]
82682 fn deref(&self) -> &Self::Target {
82683 &self.inner
82684 }
82685}
82686impl<'a> core::ops::DerefMut for DescriptorMappingSourcePushIndexEXTBuilder<'a> {
82687 #[inline]
82688 fn deref_mut(&mut self) -> &mut Self::Target {
82689 &mut self.inner
82690 }
82691}
82692pub struct DescriptorMappingSourceIndirectIndexEXTBuilder<'a> {
82694 inner: DescriptorMappingSourceIndirectIndexEXT,
82695 _marker: core::marker::PhantomData<&'a ()>,
82696}
82697impl DescriptorMappingSourceIndirectIndexEXT {
82698 #[inline]
82700 pub fn builder<'a>() -> DescriptorMappingSourceIndirectIndexEXTBuilder<'a> {
82701 DescriptorMappingSourceIndirectIndexEXTBuilder {
82702 inner: DescriptorMappingSourceIndirectIndexEXT {
82703 ..Default::default()
82704 },
82705 _marker: core::marker::PhantomData,
82706 }
82707 }
82708}
82709impl<'a> DescriptorMappingSourceIndirectIndexEXTBuilder<'a> {
82710 #[inline]
82711 pub fn heap_offset(mut self, value: u32) -> Self {
82712 self.inner.heap_offset = value;
82713 self
82714 }
82715 #[inline]
82716 pub fn push_offset(mut self, value: u32) -> Self {
82717 self.inner.push_offset = value;
82718 self
82719 }
82720 #[inline]
82721 pub fn address_offset(mut self, value: u32) -> Self {
82722 self.inner.address_offset = value;
82723 self
82724 }
82725 #[inline]
82726 pub fn heap_index_stride(mut self, value: u32) -> Self {
82727 self.inner.heap_index_stride = value;
82728 self
82729 }
82730 #[inline]
82731 pub fn heap_array_stride(mut self, value: u32) -> Self {
82732 self.inner.heap_array_stride = value;
82733 self
82734 }
82735 #[inline]
82736 pub fn embedded_sampler(mut self, value: &'a SamplerCreateInfo) -> Self {
82737 self.inner.p_embedded_sampler = value;
82738 self
82739 }
82740 #[inline]
82741 pub fn use_combined_image_sampler_index(mut self, value: bool) -> Self {
82742 self.inner.use_combined_image_sampler_index = value as u32;
82743 self
82744 }
82745 #[inline]
82746 pub fn sampler_heap_offset(mut self, value: u32) -> Self {
82747 self.inner.sampler_heap_offset = value;
82748 self
82749 }
82750 #[inline]
82751 pub fn sampler_push_offset(mut self, value: u32) -> Self {
82752 self.inner.sampler_push_offset = value;
82753 self
82754 }
82755 #[inline]
82756 pub fn sampler_address_offset(mut self, value: u32) -> Self {
82757 self.inner.sampler_address_offset = value;
82758 self
82759 }
82760 #[inline]
82761 pub fn sampler_heap_index_stride(mut self, value: u32) -> Self {
82762 self.inner.sampler_heap_index_stride = value;
82763 self
82764 }
82765 #[inline]
82766 pub fn sampler_heap_array_stride(mut self, value: u32) -> Self {
82767 self.inner.sampler_heap_array_stride = value;
82768 self
82769 }
82770}
82771impl<'a> core::ops::Deref for DescriptorMappingSourceIndirectIndexEXTBuilder<'a> {
82772 type Target = DescriptorMappingSourceIndirectIndexEXT;
82773 #[inline]
82774 fn deref(&self) -> &Self::Target {
82775 &self.inner
82776 }
82777}
82778impl<'a> core::ops::DerefMut for DescriptorMappingSourceIndirectIndexEXTBuilder<'a> {
82779 #[inline]
82780 fn deref_mut(&mut self) -> &mut Self::Target {
82781 &mut self.inner
82782 }
82783}
82784pub struct DescriptorMappingSourceIndirectIndexArrayEXTBuilder<'a> {
82786 inner: DescriptorMappingSourceIndirectIndexArrayEXT,
82787 _marker: core::marker::PhantomData<&'a ()>,
82788}
82789impl DescriptorMappingSourceIndirectIndexArrayEXT {
82790 #[inline]
82792 pub fn builder<'a>() -> DescriptorMappingSourceIndirectIndexArrayEXTBuilder<'a> {
82793 DescriptorMappingSourceIndirectIndexArrayEXTBuilder {
82794 inner: DescriptorMappingSourceIndirectIndexArrayEXT {
82795 ..Default::default()
82796 },
82797 _marker: core::marker::PhantomData,
82798 }
82799 }
82800}
82801impl<'a> DescriptorMappingSourceIndirectIndexArrayEXTBuilder<'a> {
82802 #[inline]
82803 pub fn heap_offset(mut self, value: u32) -> Self {
82804 self.inner.heap_offset = value;
82805 self
82806 }
82807 #[inline]
82808 pub fn push_offset(mut self, value: u32) -> Self {
82809 self.inner.push_offset = value;
82810 self
82811 }
82812 #[inline]
82813 pub fn address_offset(mut self, value: u32) -> Self {
82814 self.inner.address_offset = value;
82815 self
82816 }
82817 #[inline]
82818 pub fn heap_index_stride(mut self, value: u32) -> Self {
82819 self.inner.heap_index_stride = value;
82820 self
82821 }
82822 #[inline]
82823 pub fn embedded_sampler(mut self, value: &'a SamplerCreateInfo) -> Self {
82824 self.inner.p_embedded_sampler = value;
82825 self
82826 }
82827 #[inline]
82828 pub fn use_combined_image_sampler_index(mut self, value: bool) -> Self {
82829 self.inner.use_combined_image_sampler_index = value as u32;
82830 self
82831 }
82832 #[inline]
82833 pub fn sampler_heap_offset(mut self, value: u32) -> Self {
82834 self.inner.sampler_heap_offset = value;
82835 self
82836 }
82837 #[inline]
82838 pub fn sampler_push_offset(mut self, value: u32) -> Self {
82839 self.inner.sampler_push_offset = value;
82840 self
82841 }
82842 #[inline]
82843 pub fn sampler_address_offset(mut self, value: u32) -> Self {
82844 self.inner.sampler_address_offset = value;
82845 self
82846 }
82847 #[inline]
82848 pub fn sampler_heap_index_stride(mut self, value: u32) -> Self {
82849 self.inner.sampler_heap_index_stride = value;
82850 self
82851 }
82852}
82853impl<'a> core::ops::Deref for DescriptorMappingSourceIndirectIndexArrayEXTBuilder<'a> {
82854 type Target = DescriptorMappingSourceIndirectIndexArrayEXT;
82855 #[inline]
82856 fn deref(&self) -> &Self::Target {
82857 &self.inner
82858 }
82859}
82860impl<'a> core::ops::DerefMut
82861for DescriptorMappingSourceIndirectIndexArrayEXTBuilder<'a> {
82862 #[inline]
82863 fn deref_mut(&mut self) -> &mut Self::Target {
82864 &mut self.inner
82865 }
82866}
82867pub struct DescriptorMappingSourceHeapDataEXTBuilder {
82869 inner: DescriptorMappingSourceHeapDataEXT,
82870}
82871impl DescriptorMappingSourceHeapDataEXT {
82872 #[inline]
82874 pub fn builder() -> DescriptorMappingSourceHeapDataEXTBuilder {
82875 DescriptorMappingSourceHeapDataEXTBuilder {
82876 inner: DescriptorMappingSourceHeapDataEXT {
82877 ..Default::default()
82878 },
82879 }
82880 }
82881}
82882impl DescriptorMappingSourceHeapDataEXTBuilder {
82883 #[inline]
82884 pub fn heap_offset(mut self, value: u32) -> Self {
82885 self.inner.heap_offset = value;
82886 self
82887 }
82888 #[inline]
82889 pub fn push_offset(mut self, value: u32) -> Self {
82890 self.inner.push_offset = value;
82891 self
82892 }
82893}
82894impl core::ops::Deref for DescriptorMappingSourceHeapDataEXTBuilder {
82895 type Target = DescriptorMappingSourceHeapDataEXT;
82896 #[inline]
82897 fn deref(&self) -> &Self::Target {
82898 &self.inner
82899 }
82900}
82901impl core::ops::DerefMut for DescriptorMappingSourceHeapDataEXTBuilder {
82902 #[inline]
82903 fn deref_mut(&mut self) -> &mut Self::Target {
82904 &mut self.inner
82905 }
82906}
82907pub struct DescriptorMappingSourceShaderRecordIndexEXTBuilder<'a> {
82909 inner: DescriptorMappingSourceShaderRecordIndexEXT,
82910 _marker: core::marker::PhantomData<&'a ()>,
82911}
82912impl DescriptorMappingSourceShaderRecordIndexEXT {
82913 #[inline]
82915 pub fn builder<'a>() -> DescriptorMappingSourceShaderRecordIndexEXTBuilder<'a> {
82916 DescriptorMappingSourceShaderRecordIndexEXTBuilder {
82917 inner: DescriptorMappingSourceShaderRecordIndexEXT {
82918 ..Default::default()
82919 },
82920 _marker: core::marker::PhantomData,
82921 }
82922 }
82923}
82924impl<'a> DescriptorMappingSourceShaderRecordIndexEXTBuilder<'a> {
82925 #[inline]
82926 pub fn heap_offset(mut self, value: u32) -> Self {
82927 self.inner.heap_offset = value;
82928 self
82929 }
82930 #[inline]
82931 pub fn shader_record_offset(mut self, value: u32) -> Self {
82932 self.inner.shader_record_offset = value;
82933 self
82934 }
82935 #[inline]
82936 pub fn heap_index_stride(mut self, value: u32) -> Self {
82937 self.inner.heap_index_stride = value;
82938 self
82939 }
82940 #[inline]
82941 pub fn heap_array_stride(mut self, value: u32) -> Self {
82942 self.inner.heap_array_stride = value;
82943 self
82944 }
82945 #[inline]
82946 pub fn embedded_sampler(mut self, value: &'a SamplerCreateInfo) -> Self {
82947 self.inner.p_embedded_sampler = value;
82948 self
82949 }
82950 #[inline]
82951 pub fn use_combined_image_sampler_index(mut self, value: bool) -> Self {
82952 self.inner.use_combined_image_sampler_index = value as u32;
82953 self
82954 }
82955 #[inline]
82956 pub fn sampler_heap_offset(mut self, value: u32) -> Self {
82957 self.inner.sampler_heap_offset = value;
82958 self
82959 }
82960 #[inline]
82961 pub fn sampler_shader_record_offset(mut self, value: u32) -> Self {
82962 self.inner.sampler_shader_record_offset = value;
82963 self
82964 }
82965 #[inline]
82966 pub fn sampler_heap_index_stride(mut self, value: u32) -> Self {
82967 self.inner.sampler_heap_index_stride = value;
82968 self
82969 }
82970 #[inline]
82971 pub fn sampler_heap_array_stride(mut self, value: u32) -> Self {
82972 self.inner.sampler_heap_array_stride = value;
82973 self
82974 }
82975}
82976impl<'a> core::ops::Deref for DescriptorMappingSourceShaderRecordIndexEXTBuilder<'a> {
82977 type Target = DescriptorMappingSourceShaderRecordIndexEXT;
82978 #[inline]
82979 fn deref(&self) -> &Self::Target {
82980 &self.inner
82981 }
82982}
82983impl<'a> core::ops::DerefMut for DescriptorMappingSourceShaderRecordIndexEXTBuilder<'a> {
82984 #[inline]
82985 fn deref_mut(&mut self) -> &mut Self::Target {
82986 &mut self.inner
82987 }
82988}
82989pub struct DescriptorMappingSourceIndirectAddressEXTBuilder {
82991 inner: DescriptorMappingSourceIndirectAddressEXT,
82992}
82993impl DescriptorMappingSourceIndirectAddressEXT {
82994 #[inline]
82996 pub fn builder() -> DescriptorMappingSourceIndirectAddressEXTBuilder {
82997 DescriptorMappingSourceIndirectAddressEXTBuilder {
82998 inner: DescriptorMappingSourceIndirectAddressEXT {
82999 ..Default::default()
83000 },
83001 }
83002 }
83003}
83004impl DescriptorMappingSourceIndirectAddressEXTBuilder {
83005 #[inline]
83006 pub fn push_offset(mut self, value: u32) -> Self {
83007 self.inner.push_offset = value;
83008 self
83009 }
83010 #[inline]
83011 pub fn address_offset(mut self, value: u32) -> Self {
83012 self.inner.address_offset = value;
83013 self
83014 }
83015}
83016impl core::ops::Deref for DescriptorMappingSourceIndirectAddressEXTBuilder {
83017 type Target = DescriptorMappingSourceIndirectAddressEXT;
83018 #[inline]
83019 fn deref(&self) -> &Self::Target {
83020 &self.inner
83021 }
83022}
83023impl core::ops::DerefMut for DescriptorMappingSourceIndirectAddressEXTBuilder {
83024 #[inline]
83025 fn deref_mut(&mut self) -> &mut Self::Target {
83026 &mut self.inner
83027 }
83028}
83029pub struct DescriptorSetAndBindingMappingEXTBuilder<'a> {
83031 inner: DescriptorSetAndBindingMappingEXT,
83032 _marker: core::marker::PhantomData<&'a ()>,
83033}
83034impl DescriptorSetAndBindingMappingEXT {
83035 #[inline]
83037 pub fn builder<'a>() -> DescriptorSetAndBindingMappingEXTBuilder<'a> {
83038 DescriptorSetAndBindingMappingEXTBuilder {
83039 inner: DescriptorSetAndBindingMappingEXT {
83040 s_type: StructureType::from_raw(1000135005i32),
83041 ..Default::default()
83042 },
83043 _marker: core::marker::PhantomData,
83044 }
83045 }
83046}
83047impl<'a> DescriptorSetAndBindingMappingEXTBuilder<'a> {
83048 #[inline]
83049 pub fn descriptor_set(mut self, value: u32) -> Self {
83050 self.inner.descriptor_set = value;
83051 self
83052 }
83053 #[inline]
83054 pub fn first_binding(mut self, value: u32) -> Self {
83055 self.inner.first_binding = value;
83056 self
83057 }
83058 #[inline]
83059 pub fn binding_count(mut self, value: u32) -> Self {
83060 self.inner.binding_count = value;
83061 self
83062 }
83063 #[inline]
83064 pub fn resource_mask(mut self, value: SpirvResourceTypeFlagsEXT) -> Self {
83065 self.inner.resource_mask = value;
83066 self
83067 }
83068 #[inline]
83069 pub fn source(mut self, value: DescriptorMappingSourceEXT) -> Self {
83070 self.inner.source = value;
83071 self
83072 }
83073 #[inline]
83074 pub fn source_data(mut self, value: DescriptorMappingSourceDataEXT) -> Self {
83075 self.inner.source_data = value;
83076 self
83077 }
83078 #[inline]
83080 pub fn push_next<T: ExtendsDescriptorSetAndBindingMappingEXT>(
83081 mut self,
83082 next: &'a mut T,
83083 ) -> Self {
83084 unsafe {
83085 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83086 (*next_ptr).p_next = self.inner.p_next as *mut _;
83087 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83088 core::ffi::c_void,
83089 >(next_ptr) as *const _;
83090 }
83091 self
83092 }
83093}
83094impl<'a> core::ops::Deref for DescriptorSetAndBindingMappingEXTBuilder<'a> {
83095 type Target = DescriptorSetAndBindingMappingEXT;
83096 #[inline]
83097 fn deref(&self) -> &Self::Target {
83098 &self.inner
83099 }
83100}
83101impl<'a> core::ops::DerefMut for DescriptorSetAndBindingMappingEXTBuilder<'a> {
83102 #[inline]
83103 fn deref_mut(&mut self) -> &mut Self::Target {
83104 &mut self.inner
83105 }
83106}
83107pub struct ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'a> {
83109 inner: ShaderDescriptorSetAndBindingMappingInfoEXT,
83110 _marker: core::marker::PhantomData<&'a ()>,
83111}
83112impl ShaderDescriptorSetAndBindingMappingInfoEXT {
83113 #[inline]
83115 pub fn builder<'a>() -> ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'a> {
83116 ShaderDescriptorSetAndBindingMappingInfoEXTBuilder {
83117 inner: ShaderDescriptorSetAndBindingMappingInfoEXT {
83118 s_type: StructureType::from_raw(1000135006i32),
83119 ..Default::default()
83120 },
83121 _marker: core::marker::PhantomData,
83122 }
83123 }
83124}
83125impl<'a> ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'a> {
83126 #[inline]
83127 pub fn mappings(mut self, slice: &'a [DescriptorSetAndBindingMappingEXT]) -> Self {
83128 self.inner.mapping_count = slice.len() as u32;
83129 self.inner.p_mappings = slice.as_ptr();
83130 self
83131 }
83132 #[inline]
83134 pub fn push_next<T: ExtendsShaderDescriptorSetAndBindingMappingInfoEXT>(
83135 mut self,
83136 next: &'a mut T,
83137 ) -> Self {
83138 unsafe {
83139 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83140 (*next_ptr).p_next = self.inner.p_next as *mut _;
83141 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83142 core::ffi::c_void,
83143 >(next_ptr) as *const _;
83144 }
83145 self
83146 }
83147}
83148impl<'a> core::ops::Deref for ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'a> {
83149 type Target = ShaderDescriptorSetAndBindingMappingInfoEXT;
83150 #[inline]
83151 fn deref(&self) -> &Self::Target {
83152 &self.inner
83153 }
83154}
83155impl<'a> core::ops::DerefMut for ShaderDescriptorSetAndBindingMappingInfoEXTBuilder<'a> {
83156 #[inline]
83157 fn deref_mut(&mut self) -> &mut Self::Target {
83158 &mut self.inner
83159 }
83160}
83161pub struct SamplerCustomBorderColorIndexCreateInfoEXTBuilder<'a> {
83163 inner: SamplerCustomBorderColorIndexCreateInfoEXT,
83164 _marker: core::marker::PhantomData<&'a ()>,
83165}
83166impl SamplerCustomBorderColorIndexCreateInfoEXT {
83167 #[inline]
83169 pub fn builder<'a>() -> SamplerCustomBorderColorIndexCreateInfoEXTBuilder<'a> {
83170 SamplerCustomBorderColorIndexCreateInfoEXTBuilder {
83171 inner: SamplerCustomBorderColorIndexCreateInfoEXT {
83172 s_type: StructureType::from_raw(1000135011i32),
83173 ..Default::default()
83174 },
83175 _marker: core::marker::PhantomData,
83176 }
83177 }
83178}
83179impl<'a> SamplerCustomBorderColorIndexCreateInfoEXTBuilder<'a> {
83180 #[inline]
83181 pub fn index(mut self, value: u32) -> Self {
83182 self.inner.index = value;
83183 self
83184 }
83185 #[inline]
83187 pub fn push_next<T: ExtendsSamplerCustomBorderColorIndexCreateInfoEXT>(
83188 mut self,
83189 next: &'a mut T,
83190 ) -> Self {
83191 unsafe {
83192 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83193 (*next_ptr).p_next = self.inner.p_next as *mut _;
83194 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83195 core::ffi::c_void,
83196 >(next_ptr) as *const _;
83197 }
83198 self
83199 }
83200}
83201impl<'a> core::ops::Deref for SamplerCustomBorderColorIndexCreateInfoEXTBuilder<'a> {
83202 type Target = SamplerCustomBorderColorIndexCreateInfoEXT;
83203 #[inline]
83204 fn deref(&self) -> &Self::Target {
83205 &self.inner
83206 }
83207}
83208impl<'a> core::ops::DerefMut for SamplerCustomBorderColorIndexCreateInfoEXTBuilder<'a> {
83209 #[inline]
83210 fn deref_mut(&mut self) -> &mut Self::Target {
83211 &mut self.inner
83212 }
83213}
83214pub struct OpaqueCaptureDataCreateInfoEXTBuilder<'a> {
83216 inner: OpaqueCaptureDataCreateInfoEXT,
83217 _marker: core::marker::PhantomData<&'a ()>,
83218}
83219impl OpaqueCaptureDataCreateInfoEXT {
83220 #[inline]
83222 pub fn builder<'a>() -> OpaqueCaptureDataCreateInfoEXTBuilder<'a> {
83223 OpaqueCaptureDataCreateInfoEXTBuilder {
83224 inner: OpaqueCaptureDataCreateInfoEXT {
83225 s_type: StructureType::from_raw(1000135007i32),
83226 ..Default::default()
83227 },
83228 _marker: core::marker::PhantomData,
83229 }
83230 }
83231}
83232impl<'a> OpaqueCaptureDataCreateInfoEXTBuilder<'a> {
83233 #[inline]
83234 pub fn data(mut self, value: &'a HostAddressRangeConstEXT) -> Self {
83235 self.inner.p_data = value;
83236 self
83237 }
83238 #[inline]
83240 pub fn push_next<T: ExtendsOpaqueCaptureDataCreateInfoEXT>(
83241 mut self,
83242 next: &'a mut T,
83243 ) -> Self {
83244 unsafe {
83245 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83246 (*next_ptr).p_next = self.inner.p_next as *mut _;
83247 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83248 core::ffi::c_void,
83249 >(next_ptr) as *const _;
83250 }
83251 self
83252 }
83253}
83254impl<'a> core::ops::Deref for OpaqueCaptureDataCreateInfoEXTBuilder<'a> {
83255 type Target = OpaqueCaptureDataCreateInfoEXT;
83256 #[inline]
83257 fn deref(&self) -> &Self::Target {
83258 &self.inner
83259 }
83260}
83261impl<'a> core::ops::DerefMut for OpaqueCaptureDataCreateInfoEXTBuilder<'a> {
83262 #[inline]
83263 fn deref_mut(&mut self) -> &mut Self::Target {
83264 &mut self.inner
83265 }
83266}
83267pub struct IndirectCommandsLayoutPushDataTokenNVBuilder<'a> {
83269 inner: IndirectCommandsLayoutPushDataTokenNV,
83270 _marker: core::marker::PhantomData<&'a ()>,
83271}
83272impl IndirectCommandsLayoutPushDataTokenNV {
83273 #[inline]
83275 pub fn builder<'a>() -> IndirectCommandsLayoutPushDataTokenNVBuilder<'a> {
83276 IndirectCommandsLayoutPushDataTokenNVBuilder {
83277 inner: IndirectCommandsLayoutPushDataTokenNV {
83278 s_type: StructureType::from_raw(1000135012i32),
83279 ..Default::default()
83280 },
83281 _marker: core::marker::PhantomData,
83282 }
83283 }
83284}
83285impl<'a> IndirectCommandsLayoutPushDataTokenNVBuilder<'a> {
83286 #[inline]
83287 pub fn push_data_offset(mut self, value: u32) -> Self {
83288 self.inner.push_data_offset = value;
83289 self
83290 }
83291 #[inline]
83292 pub fn push_data_size(mut self, value: u32) -> Self {
83293 self.inner.push_data_size = value;
83294 self
83295 }
83296 #[inline]
83298 pub fn push_next<T: ExtendsIndirectCommandsLayoutPushDataTokenNV>(
83299 mut self,
83300 next: &'a mut T,
83301 ) -> Self {
83302 unsafe {
83303 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83304 (*next_ptr).p_next = self.inner.p_next as *mut _;
83305 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83306 core::ffi::c_void,
83307 >(next_ptr) as *const _;
83308 }
83309 self
83310 }
83311}
83312impl<'a> core::ops::Deref for IndirectCommandsLayoutPushDataTokenNVBuilder<'a> {
83313 type Target = IndirectCommandsLayoutPushDataTokenNV;
83314 #[inline]
83315 fn deref(&self) -> &Self::Target {
83316 &self.inner
83317 }
83318}
83319impl<'a> core::ops::DerefMut for IndirectCommandsLayoutPushDataTokenNVBuilder<'a> {
83320 #[inline]
83321 fn deref_mut(&mut self) -> &mut Self::Target {
83322 &mut self.inner
83323 }
83324}
83325pub struct SubsampledImageFormatPropertiesEXTBuilder<'a> {
83327 inner: SubsampledImageFormatPropertiesEXT,
83328 _marker: core::marker::PhantomData<&'a ()>,
83329}
83330impl SubsampledImageFormatPropertiesEXT {
83331 #[inline]
83333 pub fn builder<'a>() -> SubsampledImageFormatPropertiesEXTBuilder<'a> {
83334 SubsampledImageFormatPropertiesEXTBuilder {
83335 inner: SubsampledImageFormatPropertiesEXT {
83336 s_type: StructureType::from_raw(1000135013i32),
83337 ..Default::default()
83338 },
83339 _marker: core::marker::PhantomData,
83340 }
83341 }
83342}
83343impl<'a> SubsampledImageFormatPropertiesEXTBuilder<'a> {
83344 #[inline]
83345 pub fn subsampled_image_descriptor_count(mut self, value: u32) -> Self {
83346 self.inner.subsampled_image_descriptor_count = value;
83347 self
83348 }
83349 #[inline]
83351 pub fn push_next<T: ExtendsSubsampledImageFormatPropertiesEXT>(
83352 mut self,
83353 next: &'a mut T,
83354 ) -> Self {
83355 unsafe {
83356 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83357 (*next_ptr).p_next = self.inner.p_next as *mut _;
83358 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83359 core::ffi::c_void,
83360 >(next_ptr) as *const _;
83361 }
83362 self
83363 }
83364}
83365impl<'a> core::ops::Deref for SubsampledImageFormatPropertiesEXTBuilder<'a> {
83366 type Target = SubsampledImageFormatPropertiesEXT;
83367 #[inline]
83368 fn deref(&self) -> &Self::Target {
83369 &self.inner
83370 }
83371}
83372impl<'a> core::ops::DerefMut for SubsampledImageFormatPropertiesEXTBuilder<'a> {
83373 #[inline]
83374 fn deref_mut(&mut self) -> &mut Self::Target {
83375 &mut self.inner
83376 }
83377}
83378pub struct PhysicalDeviceDescriptorHeapFeaturesEXTBuilder<'a> {
83380 inner: PhysicalDeviceDescriptorHeapFeaturesEXT,
83381 _marker: core::marker::PhantomData<&'a ()>,
83382}
83383impl PhysicalDeviceDescriptorHeapFeaturesEXT {
83384 #[inline]
83386 pub fn builder<'a>() -> PhysicalDeviceDescriptorHeapFeaturesEXTBuilder<'a> {
83387 PhysicalDeviceDescriptorHeapFeaturesEXTBuilder {
83388 inner: PhysicalDeviceDescriptorHeapFeaturesEXT {
83389 s_type: StructureType::from_raw(1000135009i32),
83390 ..Default::default()
83391 },
83392 _marker: core::marker::PhantomData,
83393 }
83394 }
83395}
83396impl<'a> PhysicalDeviceDescriptorHeapFeaturesEXTBuilder<'a> {
83397 #[inline]
83398 pub fn descriptor_heap(mut self, value: bool) -> Self {
83399 self.inner.descriptor_heap = value as u32;
83400 self
83401 }
83402 #[inline]
83403 pub fn descriptor_heap_capture_replay(mut self, value: bool) -> Self {
83404 self.inner.descriptor_heap_capture_replay = value as u32;
83405 self
83406 }
83407 #[inline]
83409 pub fn push_next<T: ExtendsPhysicalDeviceDescriptorHeapFeaturesEXT>(
83410 mut self,
83411 next: &'a mut T,
83412 ) -> Self {
83413 unsafe {
83414 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83415 (*next_ptr).p_next = self.inner.p_next as *mut _;
83416 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83417 core::ffi::c_void,
83418 >(next_ptr);
83419 }
83420 self
83421 }
83422}
83423impl<'a> core::ops::Deref for PhysicalDeviceDescriptorHeapFeaturesEXTBuilder<'a> {
83424 type Target = PhysicalDeviceDescriptorHeapFeaturesEXT;
83425 #[inline]
83426 fn deref(&self) -> &Self::Target {
83427 &self.inner
83428 }
83429}
83430impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorHeapFeaturesEXTBuilder<'a> {
83431 #[inline]
83432 fn deref_mut(&mut self) -> &mut Self::Target {
83433 &mut self.inner
83434 }
83435}
83436pub struct PhysicalDeviceDescriptorHeapPropertiesEXTBuilder<'a> {
83438 inner: PhysicalDeviceDescriptorHeapPropertiesEXT,
83439 _marker: core::marker::PhantomData<&'a ()>,
83440}
83441impl PhysicalDeviceDescriptorHeapPropertiesEXT {
83442 #[inline]
83444 pub fn builder<'a>() -> PhysicalDeviceDescriptorHeapPropertiesEXTBuilder<'a> {
83445 PhysicalDeviceDescriptorHeapPropertiesEXTBuilder {
83446 inner: PhysicalDeviceDescriptorHeapPropertiesEXT {
83447 s_type: StructureType::from_raw(1000135008i32),
83448 ..Default::default()
83449 },
83450 _marker: core::marker::PhantomData,
83451 }
83452 }
83453}
83454impl<'a> PhysicalDeviceDescriptorHeapPropertiesEXTBuilder<'a> {
83455 #[inline]
83456 pub fn sampler_heap_alignment(mut self, value: u64) -> Self {
83457 self.inner.sampler_heap_alignment = value;
83458 self
83459 }
83460 #[inline]
83461 pub fn resource_heap_alignment(mut self, value: u64) -> Self {
83462 self.inner.resource_heap_alignment = value;
83463 self
83464 }
83465 #[inline]
83466 pub fn max_sampler_heap_size(mut self, value: u64) -> Self {
83467 self.inner.max_sampler_heap_size = value;
83468 self
83469 }
83470 #[inline]
83471 pub fn max_resource_heap_size(mut self, value: u64) -> Self {
83472 self.inner.max_resource_heap_size = value;
83473 self
83474 }
83475 #[inline]
83476 pub fn min_sampler_heap_reserved_range(mut self, value: u64) -> Self {
83477 self.inner.min_sampler_heap_reserved_range = value;
83478 self
83479 }
83480 #[inline]
83481 pub fn min_sampler_heap_reserved_range_with_embedded(mut self, value: u64) -> Self {
83482 self.inner.min_sampler_heap_reserved_range_with_embedded = value;
83483 self
83484 }
83485 #[inline]
83486 pub fn min_resource_heap_reserved_range(mut self, value: u64) -> Self {
83487 self.inner.min_resource_heap_reserved_range = value;
83488 self
83489 }
83490 #[inline]
83491 pub fn sampler_descriptor_size(mut self, value: u64) -> Self {
83492 self.inner.sampler_descriptor_size = value;
83493 self
83494 }
83495 #[inline]
83496 pub fn image_descriptor_size(mut self, value: u64) -> Self {
83497 self.inner.image_descriptor_size = value;
83498 self
83499 }
83500 #[inline]
83501 pub fn buffer_descriptor_size(mut self, value: u64) -> Self {
83502 self.inner.buffer_descriptor_size = value;
83503 self
83504 }
83505 #[inline]
83506 pub fn sampler_descriptor_alignment(mut self, value: u64) -> Self {
83507 self.inner.sampler_descriptor_alignment = value;
83508 self
83509 }
83510 #[inline]
83511 pub fn image_descriptor_alignment(mut self, value: u64) -> Self {
83512 self.inner.image_descriptor_alignment = value;
83513 self
83514 }
83515 #[inline]
83516 pub fn buffer_descriptor_alignment(mut self, value: u64) -> Self {
83517 self.inner.buffer_descriptor_alignment = value;
83518 self
83519 }
83520 #[inline]
83521 pub fn max_push_data_size(mut self, value: u64) -> Self {
83522 self.inner.max_push_data_size = value;
83523 self
83524 }
83525 #[inline]
83526 pub fn image_capture_replay_opaque_data_size(mut self, value: usize) -> Self {
83527 self.inner.image_capture_replay_opaque_data_size = value;
83528 self
83529 }
83530 #[inline]
83531 pub fn max_descriptor_heap_embedded_samplers(mut self, value: u32) -> Self {
83532 self.inner.max_descriptor_heap_embedded_samplers = value;
83533 self
83534 }
83535 #[inline]
83536 pub fn sampler_ycbcr_conversion_count(mut self, value: u32) -> Self {
83537 self.inner.sampler_ycbcr_conversion_count = value;
83538 self
83539 }
83540 #[inline]
83541 pub fn sparse_descriptor_heaps(mut self, value: bool) -> Self {
83542 self.inner.sparse_descriptor_heaps = value as u32;
83543 self
83544 }
83545 #[inline]
83546 pub fn protected_descriptor_heaps(mut self, value: bool) -> Self {
83547 self.inner.protected_descriptor_heaps = value as u32;
83548 self
83549 }
83550}
83551impl<'a> core::ops::Deref for PhysicalDeviceDescriptorHeapPropertiesEXTBuilder<'a> {
83552 type Target = PhysicalDeviceDescriptorHeapPropertiesEXT;
83553 #[inline]
83554 fn deref(&self) -> &Self::Target {
83555 &self.inner
83556 }
83557}
83558impl<'a> core::ops::DerefMut for PhysicalDeviceDescriptorHeapPropertiesEXTBuilder<'a> {
83559 #[inline]
83560 fn deref_mut(&mut self) -> &mut Self::Target {
83561 &mut self.inner
83562 }
83563}
83564pub struct CommandBufferInheritanceDescriptorHeapInfoEXTBuilder<'a> {
83566 inner: CommandBufferInheritanceDescriptorHeapInfoEXT,
83567 _marker: core::marker::PhantomData<&'a ()>,
83568}
83569impl CommandBufferInheritanceDescriptorHeapInfoEXT {
83570 #[inline]
83572 pub fn builder<'a>() -> CommandBufferInheritanceDescriptorHeapInfoEXTBuilder<'a> {
83573 CommandBufferInheritanceDescriptorHeapInfoEXTBuilder {
83574 inner: CommandBufferInheritanceDescriptorHeapInfoEXT {
83575 s_type: StructureType::from_raw(1000135010i32),
83576 ..Default::default()
83577 },
83578 _marker: core::marker::PhantomData,
83579 }
83580 }
83581}
83582impl<'a> CommandBufferInheritanceDescriptorHeapInfoEXTBuilder<'a> {
83583 #[inline]
83584 pub fn sampler_heap_bind_info(mut self, value: &'a BindHeapInfoEXT) -> Self {
83585 self.inner.p_sampler_heap_bind_info = value;
83586 self
83587 }
83588 #[inline]
83589 pub fn resource_heap_bind_info(mut self, value: &'a BindHeapInfoEXT) -> Self {
83590 self.inner.p_resource_heap_bind_info = value;
83591 self
83592 }
83593 #[inline]
83595 pub fn push_next<T: ExtendsCommandBufferInheritanceDescriptorHeapInfoEXT>(
83596 mut self,
83597 next: &'a mut T,
83598 ) -> Self {
83599 unsafe {
83600 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83601 (*next_ptr).p_next = self.inner.p_next as *mut _;
83602 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83603 core::ffi::c_void,
83604 >(next_ptr) as *const _;
83605 }
83606 self
83607 }
83608}
83609impl<'a> core::ops::Deref for CommandBufferInheritanceDescriptorHeapInfoEXTBuilder<'a> {
83610 type Target = CommandBufferInheritanceDescriptorHeapInfoEXT;
83611 #[inline]
83612 fn deref(&self) -> &Self::Target {
83613 &self.inner
83614 }
83615}
83616impl<'a> core::ops::DerefMut
83617for CommandBufferInheritanceDescriptorHeapInfoEXTBuilder<'a> {
83618 #[inline]
83619 fn deref_mut(&mut self) -> &mut Self::Target {
83620 &mut self.inner
83621 }
83622}
83623pub struct PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder<'a> {
83625 inner: PhysicalDeviceDescriptorHeapTensorPropertiesARM,
83626 _marker: core::marker::PhantomData<&'a ()>,
83627}
83628impl PhysicalDeviceDescriptorHeapTensorPropertiesARM {
83629 #[inline]
83631 pub fn builder<'a>() -> PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder<'a> {
83632 PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder {
83633 inner: PhysicalDeviceDescriptorHeapTensorPropertiesARM {
83634 s_type: StructureType::from_raw(1000135014i32),
83635 ..Default::default()
83636 },
83637 _marker: core::marker::PhantomData,
83638 }
83639 }
83640}
83641impl<'a> PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder<'a> {
83642 #[inline]
83643 pub fn tensor_descriptor_size(mut self, value: u64) -> Self {
83644 self.inner.tensor_descriptor_size = value;
83645 self
83646 }
83647 #[inline]
83648 pub fn tensor_descriptor_alignment(mut self, value: u64) -> Self {
83649 self.inner.tensor_descriptor_alignment = value;
83650 self
83651 }
83652 #[inline]
83653 pub fn tensor_capture_replay_opaque_data_size(mut self, value: usize) -> Self {
83654 self.inner.tensor_capture_replay_opaque_data_size = value;
83655 self
83656 }
83657}
83658impl<'a> core::ops::Deref
83659for PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder<'a> {
83660 type Target = PhysicalDeviceDescriptorHeapTensorPropertiesARM;
83661 #[inline]
83662 fn deref(&self) -> &Self::Target {
83663 &self.inner
83664 }
83665}
83666impl<'a> core::ops::DerefMut
83667for PhysicalDeviceDescriptorHeapTensorPropertiesARMBuilder<'a> {
83668 #[inline]
83669 fn deref_mut(&mut self) -> &mut Self::Target {
83670 &mut self.inner
83671 }
83672}
83673pub struct PhysicalDeviceShaderInstrumentationFeaturesARMBuilder<'a> {
83675 inner: PhysicalDeviceShaderInstrumentationFeaturesARM,
83676 _marker: core::marker::PhantomData<&'a ()>,
83677}
83678impl PhysicalDeviceShaderInstrumentationFeaturesARM {
83679 #[inline]
83681 pub fn builder<'a>() -> PhysicalDeviceShaderInstrumentationFeaturesARMBuilder<'a> {
83682 PhysicalDeviceShaderInstrumentationFeaturesARMBuilder {
83683 inner: PhysicalDeviceShaderInstrumentationFeaturesARM {
83684 s_type: StructureType::from_raw(1000607000i32),
83685 ..Default::default()
83686 },
83687 _marker: core::marker::PhantomData,
83688 }
83689 }
83690}
83691impl<'a> PhysicalDeviceShaderInstrumentationFeaturesARMBuilder<'a> {
83692 #[inline]
83693 pub fn shader_instrumentation(mut self, value: bool) -> Self {
83694 self.inner.shader_instrumentation = value as u32;
83695 self
83696 }
83697 #[inline]
83699 pub fn push_next<T: ExtendsPhysicalDeviceShaderInstrumentationFeaturesARM>(
83700 mut self,
83701 next: &'a mut T,
83702 ) -> Self {
83703 unsafe {
83704 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83705 (*next_ptr).p_next = self.inner.p_next as *mut _;
83706 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83707 core::ffi::c_void,
83708 >(next_ptr);
83709 }
83710 self
83711 }
83712}
83713impl<'a> core::ops::Deref for PhysicalDeviceShaderInstrumentationFeaturesARMBuilder<'a> {
83714 type Target = PhysicalDeviceShaderInstrumentationFeaturesARM;
83715 #[inline]
83716 fn deref(&self) -> &Self::Target {
83717 &self.inner
83718 }
83719}
83720impl<'a> core::ops::DerefMut
83721for PhysicalDeviceShaderInstrumentationFeaturesARMBuilder<'a> {
83722 #[inline]
83723 fn deref_mut(&mut self) -> &mut Self::Target {
83724 &mut self.inner
83725 }
83726}
83727pub struct PhysicalDeviceShaderInstrumentationPropertiesARMBuilder<'a> {
83729 inner: PhysicalDeviceShaderInstrumentationPropertiesARM,
83730 _marker: core::marker::PhantomData<&'a ()>,
83731}
83732impl PhysicalDeviceShaderInstrumentationPropertiesARM {
83733 #[inline]
83735 pub fn builder<'a>() -> PhysicalDeviceShaderInstrumentationPropertiesARMBuilder<'a> {
83736 PhysicalDeviceShaderInstrumentationPropertiesARMBuilder {
83737 inner: PhysicalDeviceShaderInstrumentationPropertiesARM {
83738 s_type: StructureType::from_raw(1000607001i32),
83739 ..Default::default()
83740 },
83741 _marker: core::marker::PhantomData,
83742 }
83743 }
83744}
83745impl<'a> PhysicalDeviceShaderInstrumentationPropertiesARMBuilder<'a> {
83746 #[inline]
83747 pub fn num_metrics(mut self, value: u32) -> Self {
83748 self.inner.num_metrics = value;
83749 self
83750 }
83751 #[inline]
83752 pub fn per_basic_block_granularity(mut self, value: bool) -> Self {
83753 self.inner.per_basic_block_granularity = value as u32;
83754 self
83755 }
83756}
83757impl<'a> core::ops::Deref
83758for PhysicalDeviceShaderInstrumentationPropertiesARMBuilder<'a> {
83759 type Target = PhysicalDeviceShaderInstrumentationPropertiesARM;
83760 #[inline]
83761 fn deref(&self) -> &Self::Target {
83762 &self.inner
83763 }
83764}
83765impl<'a> core::ops::DerefMut
83766for PhysicalDeviceShaderInstrumentationPropertiesARMBuilder<'a> {
83767 #[inline]
83768 fn deref_mut(&mut self) -> &mut Self::Target {
83769 &mut self.inner
83770 }
83771}
83772pub struct ShaderInstrumentationCreateInfoARMBuilder<'a> {
83774 inner: ShaderInstrumentationCreateInfoARM,
83775 _marker: core::marker::PhantomData<&'a ()>,
83776}
83777impl ShaderInstrumentationCreateInfoARM {
83778 #[inline]
83780 pub fn builder<'a>() -> ShaderInstrumentationCreateInfoARMBuilder<'a> {
83781 ShaderInstrumentationCreateInfoARMBuilder {
83782 inner: ShaderInstrumentationCreateInfoARM {
83783 s_type: StructureType::from_raw(1000607002i32),
83784 ..Default::default()
83785 },
83786 _marker: core::marker::PhantomData,
83787 }
83788 }
83789}
83790impl<'a> ShaderInstrumentationCreateInfoARMBuilder<'a> {
83791 #[inline]
83793 pub fn push_next<T: ExtendsShaderInstrumentationCreateInfoARM>(
83794 mut self,
83795 next: &'a mut T,
83796 ) -> Self {
83797 unsafe {
83798 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83799 (*next_ptr).p_next = self.inner.p_next as *mut _;
83800 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83801 core::ffi::c_void,
83802 >(next_ptr);
83803 }
83804 self
83805 }
83806}
83807impl<'a> core::ops::Deref for ShaderInstrumentationCreateInfoARMBuilder<'a> {
83808 type Target = ShaderInstrumentationCreateInfoARM;
83809 #[inline]
83810 fn deref(&self) -> &Self::Target {
83811 &self.inner
83812 }
83813}
83814impl<'a> core::ops::DerefMut for ShaderInstrumentationCreateInfoARMBuilder<'a> {
83815 #[inline]
83816 fn deref_mut(&mut self) -> &mut Self::Target {
83817 &mut self.inner
83818 }
83819}
83820pub struct ShaderInstrumentationMetricDescriptionARMBuilder<'a> {
83822 inner: ShaderInstrumentationMetricDescriptionARM,
83823 _marker: core::marker::PhantomData<&'a ()>,
83824}
83825impl ShaderInstrumentationMetricDescriptionARM {
83826 #[inline]
83828 pub fn builder<'a>() -> ShaderInstrumentationMetricDescriptionARMBuilder<'a> {
83829 ShaderInstrumentationMetricDescriptionARMBuilder {
83830 inner: ShaderInstrumentationMetricDescriptionARM {
83831 s_type: StructureType::from_raw(1000607003i32),
83832 ..Default::default()
83833 },
83834 _marker: core::marker::PhantomData,
83835 }
83836 }
83837}
83838impl<'a> ShaderInstrumentationMetricDescriptionARMBuilder<'a> {
83839 #[inline]
83840 pub fn name(
83841 mut self,
83842 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
83843 ) -> Self {
83844 self.inner.name = value;
83845 self
83846 }
83847 #[inline]
83848 pub fn description(
83849 mut self,
83850 value: crate::StringArray<{ MAX_DESCRIPTION_SIZE as usize }>,
83851 ) -> Self {
83852 self.inner.description = value;
83853 self
83854 }
83855 #[inline]
83857 pub fn push_next<T: ExtendsShaderInstrumentationMetricDescriptionARM>(
83858 mut self,
83859 next: &'a mut T,
83860 ) -> Self {
83861 unsafe {
83862 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
83863 (*next_ptr).p_next = self.inner.p_next as *mut _;
83864 self.inner.p_next = <*mut BaseOutStructure>::cast::<
83865 core::ffi::c_void,
83866 >(next_ptr);
83867 }
83868 self
83869 }
83870}
83871impl<'a> core::ops::Deref for ShaderInstrumentationMetricDescriptionARMBuilder<'a> {
83872 type Target = ShaderInstrumentationMetricDescriptionARM;
83873 #[inline]
83874 fn deref(&self) -> &Self::Target {
83875 &self.inner
83876 }
83877}
83878impl<'a> core::ops::DerefMut for ShaderInstrumentationMetricDescriptionARMBuilder<'a> {
83879 #[inline]
83880 fn deref_mut(&mut self) -> &mut Self::Target {
83881 &mut self.inner
83882 }
83883}
83884pub struct ShaderInstrumentationMetricDataHeaderARMBuilder {
83886 inner: ShaderInstrumentationMetricDataHeaderARM,
83887}
83888impl ShaderInstrumentationMetricDataHeaderARM {
83889 #[inline]
83891 pub fn builder() -> ShaderInstrumentationMetricDataHeaderARMBuilder {
83892 ShaderInstrumentationMetricDataHeaderARMBuilder {
83893 inner: ShaderInstrumentationMetricDataHeaderARM {
83894 ..Default::default()
83895 },
83896 }
83897 }
83898}
83899impl ShaderInstrumentationMetricDataHeaderARMBuilder {
83900 #[inline]
83901 pub fn result_index(mut self, value: u32) -> Self {
83902 self.inner.result_index = value;
83903 self
83904 }
83905 #[inline]
83906 pub fn result_sub_index(mut self, value: u32) -> Self {
83907 self.inner.result_sub_index = value;
83908 self
83909 }
83910 #[inline]
83911 pub fn stages(mut self, value: ShaderStageFlags) -> Self {
83912 self.inner.stages = value;
83913 self
83914 }
83915 #[inline]
83916 pub fn basic_block_index(mut self, value: u32) -> Self {
83917 self.inner.basic_block_index = value;
83918 self
83919 }
83920}
83921impl core::ops::Deref for ShaderInstrumentationMetricDataHeaderARMBuilder {
83922 type Target = ShaderInstrumentationMetricDataHeaderARM;
83923 #[inline]
83924 fn deref(&self) -> &Self::Target {
83925 &self.inner
83926 }
83927}
83928impl core::ops::DerefMut for ShaderInstrumentationMetricDataHeaderARMBuilder {
83929 #[inline]
83930 fn deref_mut(&mut self) -> &mut Self::Target {
83931 &mut self.inner
83932 }
83933}
83934pub struct DeviceAddressRangeKHRBuilder {
83936 inner: DeviceAddressRangeKHR,
83937}
83938impl DeviceAddressRangeKHR {
83939 #[inline]
83941 pub fn builder() -> DeviceAddressRangeKHRBuilder {
83942 DeviceAddressRangeKHRBuilder {
83943 inner: DeviceAddressRangeKHR {
83944 ..Default::default()
83945 },
83946 }
83947 }
83948}
83949impl DeviceAddressRangeKHRBuilder {
83950 #[inline]
83951 pub fn address(mut self, value: u64) -> Self {
83952 self.inner.address = value;
83953 self
83954 }
83955 #[inline]
83956 pub fn size(mut self, value: u64) -> Self {
83957 self.inner.size = value;
83958 self
83959 }
83960}
83961impl core::ops::Deref for DeviceAddressRangeKHRBuilder {
83962 type Target = DeviceAddressRangeKHR;
83963 #[inline]
83964 fn deref(&self) -> &Self::Target {
83965 &self.inner
83966 }
83967}
83968impl core::ops::DerefMut for DeviceAddressRangeKHRBuilder {
83969 #[inline]
83970 fn deref_mut(&mut self) -> &mut Self::Target {
83971 &mut self.inner
83972 }
83973}
83974pub struct DeviceMemoryCopyKHRBuilder<'a> {
83976 inner: DeviceMemoryCopyKHR,
83977 _marker: core::marker::PhantomData<&'a ()>,
83978}
83979impl DeviceMemoryCopyKHR {
83980 #[inline]
83982 pub fn builder<'a>() -> DeviceMemoryCopyKHRBuilder<'a> {
83983 DeviceMemoryCopyKHRBuilder {
83984 inner: DeviceMemoryCopyKHR {
83985 s_type: StructureType::from_raw(1000318000i32),
83986 ..Default::default()
83987 },
83988 _marker: core::marker::PhantomData,
83989 }
83990 }
83991}
83992impl<'a> DeviceMemoryCopyKHRBuilder<'a> {
83993 #[inline]
83994 pub fn src_range(mut self, value: DeviceAddressRangeKHR) -> Self {
83995 self.inner.src_range = value;
83996 self
83997 }
83998 #[inline]
83999 pub fn src_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84000 self.inner.src_flags = value;
84001 self
84002 }
84003 #[inline]
84004 pub fn dst_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84005 self.inner.dst_range = value;
84006 self
84007 }
84008 #[inline]
84009 pub fn dst_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84010 self.inner.dst_flags = value;
84011 self
84012 }
84013 #[inline]
84015 pub fn push_next<T: ExtendsDeviceMemoryCopyKHR>(mut self, next: &'a mut T) -> Self {
84016 unsafe {
84017 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84018 (*next_ptr).p_next = self.inner.p_next as *mut _;
84019 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84020 core::ffi::c_void,
84021 >(next_ptr) as *const _;
84022 }
84023 self
84024 }
84025}
84026impl<'a> core::ops::Deref for DeviceMemoryCopyKHRBuilder<'a> {
84027 type Target = DeviceMemoryCopyKHR;
84028 #[inline]
84029 fn deref(&self) -> &Self::Target {
84030 &self.inner
84031 }
84032}
84033impl<'a> core::ops::DerefMut for DeviceMemoryCopyKHRBuilder<'a> {
84034 #[inline]
84035 fn deref_mut(&mut self) -> &mut Self::Target {
84036 &mut self.inner
84037 }
84038}
84039pub struct CopyDeviceMemoryInfoKHRBuilder<'a> {
84041 inner: CopyDeviceMemoryInfoKHR,
84042 _marker: core::marker::PhantomData<&'a ()>,
84043}
84044impl CopyDeviceMemoryInfoKHR {
84045 #[inline]
84047 pub fn builder<'a>() -> CopyDeviceMemoryInfoKHRBuilder<'a> {
84048 CopyDeviceMemoryInfoKHRBuilder {
84049 inner: CopyDeviceMemoryInfoKHR {
84050 s_type: StructureType::from_raw(1000318001i32),
84051 ..Default::default()
84052 },
84053 _marker: core::marker::PhantomData,
84054 }
84055 }
84056}
84057impl<'a> CopyDeviceMemoryInfoKHRBuilder<'a> {
84058 #[inline]
84059 pub fn regions(mut self, slice: &'a [DeviceMemoryCopyKHR]) -> Self {
84060 self.inner.region_count = slice.len() as u32;
84061 self.inner.p_regions = slice.as_ptr();
84062 self
84063 }
84064 #[inline]
84066 pub fn push_next<T: ExtendsCopyDeviceMemoryInfoKHR>(
84067 mut self,
84068 next: &'a mut T,
84069 ) -> Self {
84070 unsafe {
84071 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84072 (*next_ptr).p_next = self.inner.p_next as *mut _;
84073 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84074 core::ffi::c_void,
84075 >(next_ptr) as *const _;
84076 }
84077 self
84078 }
84079}
84080impl<'a> core::ops::Deref for CopyDeviceMemoryInfoKHRBuilder<'a> {
84081 type Target = CopyDeviceMemoryInfoKHR;
84082 #[inline]
84083 fn deref(&self) -> &Self::Target {
84084 &self.inner
84085 }
84086}
84087impl<'a> core::ops::DerefMut for CopyDeviceMemoryInfoKHRBuilder<'a> {
84088 #[inline]
84089 fn deref_mut(&mut self) -> &mut Self::Target {
84090 &mut self.inner
84091 }
84092}
84093pub struct DeviceMemoryImageCopyKHRBuilder<'a> {
84095 inner: DeviceMemoryImageCopyKHR,
84096 _marker: core::marker::PhantomData<&'a ()>,
84097}
84098impl DeviceMemoryImageCopyKHR {
84099 #[inline]
84101 pub fn builder<'a>() -> DeviceMemoryImageCopyKHRBuilder<'a> {
84102 DeviceMemoryImageCopyKHRBuilder {
84103 inner: DeviceMemoryImageCopyKHR {
84104 s_type: StructureType::from_raw(1000318002i32),
84105 ..Default::default()
84106 },
84107 _marker: core::marker::PhantomData,
84108 }
84109 }
84110}
84111impl<'a> DeviceMemoryImageCopyKHRBuilder<'a> {
84112 #[inline]
84113 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84114 self.inner.address_range = value;
84115 self
84116 }
84117 #[inline]
84118 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84119 self.inner.address_flags = value;
84120 self
84121 }
84122 #[inline]
84123 pub fn address_row_length(mut self, value: u32) -> Self {
84124 self.inner.address_row_length = value;
84125 self
84126 }
84127 #[inline]
84128 pub fn address_image_height(mut self, value: u32) -> Self {
84129 self.inner.address_image_height = value;
84130 self
84131 }
84132 #[inline]
84133 pub fn image_subresource(mut self, value: ImageSubresourceLayers) -> Self {
84134 self.inner.image_subresource = value;
84135 self
84136 }
84137 #[inline]
84138 pub fn image_layout(mut self, value: ImageLayout) -> Self {
84139 self.inner.image_layout = value;
84140 self
84141 }
84142 #[inline]
84143 pub fn image_offset(mut self, value: Offset3D) -> Self {
84144 self.inner.image_offset = value;
84145 self
84146 }
84147 #[inline]
84148 pub fn image_extent(mut self, value: Extent3D) -> Self {
84149 self.inner.image_extent = value;
84150 self
84151 }
84152 #[inline]
84154 pub fn push_next<T: ExtendsDeviceMemoryImageCopyKHR>(
84155 mut self,
84156 next: &'a mut T,
84157 ) -> Self {
84158 unsafe {
84159 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84160 (*next_ptr).p_next = self.inner.p_next as *mut _;
84161 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84162 core::ffi::c_void,
84163 >(next_ptr) as *const _;
84164 }
84165 self
84166 }
84167}
84168impl<'a> core::ops::Deref for DeviceMemoryImageCopyKHRBuilder<'a> {
84169 type Target = DeviceMemoryImageCopyKHR;
84170 #[inline]
84171 fn deref(&self) -> &Self::Target {
84172 &self.inner
84173 }
84174}
84175impl<'a> core::ops::DerefMut for DeviceMemoryImageCopyKHRBuilder<'a> {
84176 #[inline]
84177 fn deref_mut(&mut self) -> &mut Self::Target {
84178 &mut self.inner
84179 }
84180}
84181pub struct CopyDeviceMemoryImageInfoKHRBuilder<'a> {
84183 inner: CopyDeviceMemoryImageInfoKHR,
84184 _marker: core::marker::PhantomData<&'a ()>,
84185}
84186impl CopyDeviceMemoryImageInfoKHR {
84187 #[inline]
84189 pub fn builder<'a>() -> CopyDeviceMemoryImageInfoKHRBuilder<'a> {
84190 CopyDeviceMemoryImageInfoKHRBuilder {
84191 inner: CopyDeviceMemoryImageInfoKHR {
84192 s_type: StructureType::from_raw(1000318003i32),
84193 ..Default::default()
84194 },
84195 _marker: core::marker::PhantomData,
84196 }
84197 }
84198}
84199impl<'a> CopyDeviceMemoryImageInfoKHRBuilder<'a> {
84200 #[inline]
84201 pub fn image(mut self, value: Image) -> Self {
84202 self.inner.image = value;
84203 self
84204 }
84205 #[inline]
84206 pub fn regions(mut self, slice: &'a [DeviceMemoryImageCopyKHR]) -> Self {
84207 self.inner.region_count = slice.len() as u32;
84208 self.inner.p_regions = slice.as_ptr();
84209 self
84210 }
84211 #[inline]
84213 pub fn push_next<T: ExtendsCopyDeviceMemoryImageInfoKHR>(
84214 mut self,
84215 next: &'a mut T,
84216 ) -> Self {
84217 unsafe {
84218 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84219 (*next_ptr).p_next = self.inner.p_next as *mut _;
84220 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84221 core::ffi::c_void,
84222 >(next_ptr) as *const _;
84223 }
84224 self
84225 }
84226}
84227impl<'a> core::ops::Deref for CopyDeviceMemoryImageInfoKHRBuilder<'a> {
84228 type Target = CopyDeviceMemoryImageInfoKHR;
84229 #[inline]
84230 fn deref(&self) -> &Self::Target {
84231 &self.inner
84232 }
84233}
84234impl<'a> core::ops::DerefMut for CopyDeviceMemoryImageInfoKHRBuilder<'a> {
84235 #[inline]
84236 fn deref_mut(&mut self) -> &mut Self::Target {
84237 &mut self.inner
84238 }
84239}
84240pub struct MemoryRangeBarriersInfoKHRBuilder<'a> {
84242 inner: MemoryRangeBarriersInfoKHR,
84243 _marker: core::marker::PhantomData<&'a ()>,
84244}
84245impl MemoryRangeBarriersInfoKHR {
84246 #[inline]
84248 pub fn builder<'a>() -> MemoryRangeBarriersInfoKHRBuilder<'a> {
84249 MemoryRangeBarriersInfoKHRBuilder {
84250 inner: MemoryRangeBarriersInfoKHR {
84251 s_type: StructureType::from_raw(1000318004i32),
84252 ..Default::default()
84253 },
84254 _marker: core::marker::PhantomData,
84255 }
84256 }
84257}
84258impl<'a> MemoryRangeBarriersInfoKHRBuilder<'a> {
84259 #[inline]
84260 pub fn memory_range_barriers(mut self, slice: &'a [MemoryRangeBarrierKHR]) -> Self {
84261 self.inner.memory_range_barrier_count = slice.len() as u32;
84262 self.inner.p_memory_range_barriers = slice.as_ptr();
84263 self
84264 }
84265 #[inline]
84267 pub fn push_next<T: ExtendsMemoryRangeBarriersInfoKHR>(
84268 mut self,
84269 next: &'a mut T,
84270 ) -> Self {
84271 unsafe {
84272 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84273 (*next_ptr).p_next = self.inner.p_next as *mut _;
84274 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84275 core::ffi::c_void,
84276 >(next_ptr) as *const _;
84277 }
84278 self
84279 }
84280}
84281impl<'a> core::ops::Deref for MemoryRangeBarriersInfoKHRBuilder<'a> {
84282 type Target = MemoryRangeBarriersInfoKHR;
84283 #[inline]
84284 fn deref(&self) -> &Self::Target {
84285 &self.inner
84286 }
84287}
84288impl<'a> core::ops::DerefMut for MemoryRangeBarriersInfoKHRBuilder<'a> {
84289 #[inline]
84290 fn deref_mut(&mut self) -> &mut Self::Target {
84291 &mut self.inner
84292 }
84293}
84294pub struct MemoryRangeBarrierKHRBuilder<'a> {
84296 inner: MemoryRangeBarrierKHR,
84297 _marker: core::marker::PhantomData<&'a ()>,
84298}
84299impl MemoryRangeBarrierKHR {
84300 #[inline]
84302 pub fn builder<'a>() -> MemoryRangeBarrierKHRBuilder<'a> {
84303 MemoryRangeBarrierKHRBuilder {
84304 inner: MemoryRangeBarrierKHR {
84305 s_type: StructureType::from_raw(1000318005i32),
84306 ..Default::default()
84307 },
84308 _marker: core::marker::PhantomData,
84309 }
84310 }
84311}
84312impl<'a> MemoryRangeBarrierKHRBuilder<'a> {
84313 #[inline]
84314 pub fn src_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
84315 self.inner.src_stage_mask = value;
84316 self
84317 }
84318 #[inline]
84319 pub fn src_access_mask(mut self, value: AccessFlags2) -> Self {
84320 self.inner.src_access_mask = value;
84321 self
84322 }
84323 #[inline]
84324 pub fn dst_stage_mask(mut self, value: PipelineStageFlags2) -> Self {
84325 self.inner.dst_stage_mask = value;
84326 self
84327 }
84328 #[inline]
84329 pub fn dst_access_mask(mut self, value: AccessFlags2) -> Self {
84330 self.inner.dst_access_mask = value;
84331 self
84332 }
84333 #[inline]
84334 pub fn src_queue_family_index(mut self, value: u32) -> Self {
84335 self.inner.src_queue_family_index = value;
84336 self
84337 }
84338 #[inline]
84339 pub fn dst_queue_family_index(mut self, value: u32) -> Self {
84340 self.inner.dst_queue_family_index = value;
84341 self
84342 }
84343 #[inline]
84344 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84345 self.inner.address_range = value;
84346 self
84347 }
84348 #[inline]
84349 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84350 self.inner.address_flags = value;
84351 self
84352 }
84353 #[inline]
84355 pub fn push_next<T: ExtendsMemoryRangeBarrierKHR>(
84356 mut self,
84357 next: &'a mut T,
84358 ) -> Self {
84359 unsafe {
84360 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84361 (*next_ptr).p_next = self.inner.p_next as *mut _;
84362 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84363 core::ffi::c_void,
84364 >(next_ptr) as *const _;
84365 }
84366 self
84367 }
84368}
84369impl<'a> core::ops::Deref for MemoryRangeBarrierKHRBuilder<'a> {
84370 type Target = MemoryRangeBarrierKHR;
84371 #[inline]
84372 fn deref(&self) -> &Self::Target {
84373 &self.inner
84374 }
84375}
84376impl<'a> core::ops::DerefMut for MemoryRangeBarrierKHRBuilder<'a> {
84377 #[inline]
84378 fn deref_mut(&mut self) -> &mut Self::Target {
84379 &mut self.inner
84380 }
84381}
84382pub struct PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder<'a> {
84384 inner: PhysicalDeviceDeviceAddressCommandsFeaturesKHR,
84385 _marker: core::marker::PhantomData<&'a ()>,
84386}
84387impl PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
84388 #[inline]
84390 pub fn builder<'a>() -> PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder<'a> {
84391 PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder {
84392 inner: PhysicalDeviceDeviceAddressCommandsFeaturesKHR {
84393 s_type: StructureType::from_raw(1000318006i32),
84394 ..Default::default()
84395 },
84396 _marker: core::marker::PhantomData,
84397 }
84398 }
84399}
84400impl<'a> PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder<'a> {
84401 #[inline]
84402 pub fn device_address_commands(mut self, value: bool) -> Self {
84403 self.inner.device_address_commands = value as u32;
84404 self
84405 }
84406 #[inline]
84408 pub fn push_next<T: ExtendsPhysicalDeviceDeviceAddressCommandsFeaturesKHR>(
84409 mut self,
84410 next: &'a mut T,
84411 ) -> Self {
84412 unsafe {
84413 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84414 (*next_ptr).p_next = self.inner.p_next as *mut _;
84415 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84416 core::ffi::c_void,
84417 >(next_ptr);
84418 }
84419 self
84420 }
84421}
84422impl<'a> core::ops::Deref for PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder<'a> {
84423 type Target = PhysicalDeviceDeviceAddressCommandsFeaturesKHR;
84424 #[inline]
84425 fn deref(&self) -> &Self::Target {
84426 &self.inner
84427 }
84428}
84429impl<'a> core::ops::DerefMut
84430for PhysicalDeviceDeviceAddressCommandsFeaturesKHRBuilder<'a> {
84431 #[inline]
84432 fn deref_mut(&mut self) -> &mut Self::Target {
84433 &mut self.inner
84434 }
84435}
84436pub struct ConditionalRenderingBeginInfo2EXTBuilder<'a> {
84438 inner: ConditionalRenderingBeginInfo2EXT,
84439 _marker: core::marker::PhantomData<&'a ()>,
84440}
84441impl ConditionalRenderingBeginInfo2EXT {
84442 #[inline]
84444 pub fn builder<'a>() -> ConditionalRenderingBeginInfo2EXTBuilder<'a> {
84445 ConditionalRenderingBeginInfo2EXTBuilder {
84446 inner: ConditionalRenderingBeginInfo2EXT {
84447 s_type: StructureType::from_raw(1000318012i32),
84448 ..Default::default()
84449 },
84450 _marker: core::marker::PhantomData,
84451 }
84452 }
84453}
84454impl<'a> ConditionalRenderingBeginInfo2EXTBuilder<'a> {
84455 #[inline]
84456 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84457 self.inner.address_range = value;
84458 self
84459 }
84460 #[inline]
84461 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84462 self.inner.address_flags = value;
84463 self
84464 }
84465 #[inline]
84466 pub fn flags(mut self, value: ConditionalRenderingFlagsEXT) -> Self {
84467 self.inner.flags = value;
84468 self
84469 }
84470 #[inline]
84472 pub fn push_next<T: ExtendsConditionalRenderingBeginInfo2EXT>(
84473 mut self,
84474 next: &'a mut T,
84475 ) -> Self {
84476 unsafe {
84477 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84478 (*next_ptr).p_next = self.inner.p_next as *mut _;
84479 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84480 core::ffi::c_void,
84481 >(next_ptr) as *const _;
84482 }
84483 self
84484 }
84485}
84486impl<'a> core::ops::Deref for ConditionalRenderingBeginInfo2EXTBuilder<'a> {
84487 type Target = ConditionalRenderingBeginInfo2EXT;
84488 #[inline]
84489 fn deref(&self) -> &Self::Target {
84490 &self.inner
84491 }
84492}
84493impl<'a> core::ops::DerefMut for ConditionalRenderingBeginInfo2EXTBuilder<'a> {
84494 #[inline]
84495 fn deref_mut(&mut self) -> &mut Self::Target {
84496 &mut self.inner
84497 }
84498}
84499pub struct AccelerationStructureCreateInfo2KHRBuilder<'a> {
84501 inner: AccelerationStructureCreateInfo2KHR,
84502 _marker: core::marker::PhantomData<&'a ()>,
84503}
84504impl AccelerationStructureCreateInfo2KHR {
84505 #[inline]
84507 pub fn builder<'a>() -> AccelerationStructureCreateInfo2KHRBuilder<'a> {
84508 AccelerationStructureCreateInfo2KHRBuilder {
84509 inner: AccelerationStructureCreateInfo2KHR {
84510 s_type: StructureType::from_raw(1000318015i32),
84511 ..Default::default()
84512 },
84513 _marker: core::marker::PhantomData,
84514 }
84515 }
84516}
84517impl<'a> AccelerationStructureCreateInfo2KHRBuilder<'a> {
84518 #[inline]
84519 pub fn create_flags(mut self, value: AccelerationStructureCreateFlagsKHR) -> Self {
84520 self.inner.create_flags = value;
84521 self
84522 }
84523 #[inline]
84524 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84525 self.inner.address_range = value;
84526 self
84527 }
84528 #[inline]
84529 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84530 self.inner.address_flags = value;
84531 self
84532 }
84533 #[inline]
84534 pub fn r#type(mut self, value: AccelerationStructureTypeKHR) -> Self {
84535 self.inner.r#type = value;
84536 self
84537 }
84538 #[inline]
84540 pub fn push_next<T: ExtendsAccelerationStructureCreateInfo2KHR>(
84541 mut self,
84542 next: &'a mut T,
84543 ) -> Self {
84544 unsafe {
84545 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84546 (*next_ptr).p_next = self.inner.p_next as *mut _;
84547 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84548 core::ffi::c_void,
84549 >(next_ptr) as *const _;
84550 }
84551 self
84552 }
84553}
84554impl<'a> core::ops::Deref for AccelerationStructureCreateInfo2KHRBuilder<'a> {
84555 type Target = AccelerationStructureCreateInfo2KHR;
84556 #[inline]
84557 fn deref(&self) -> &Self::Target {
84558 &self.inner
84559 }
84560}
84561impl<'a> core::ops::DerefMut for AccelerationStructureCreateInfo2KHRBuilder<'a> {
84562 #[inline]
84563 fn deref_mut(&mut self) -> &mut Self::Target {
84564 &mut self.inner
84565 }
84566}
84567pub struct BindIndexBuffer3InfoKHRBuilder<'a> {
84569 inner: BindIndexBuffer3InfoKHR,
84570 _marker: core::marker::PhantomData<&'a ()>,
84571}
84572impl BindIndexBuffer3InfoKHR {
84573 #[inline]
84575 pub fn builder<'a>() -> BindIndexBuffer3InfoKHRBuilder<'a> {
84576 BindIndexBuffer3InfoKHRBuilder {
84577 inner: BindIndexBuffer3InfoKHR {
84578 s_type: StructureType::from_raw(1000318007i32),
84579 ..Default::default()
84580 },
84581 _marker: core::marker::PhantomData,
84582 }
84583 }
84584}
84585impl<'a> BindIndexBuffer3InfoKHRBuilder<'a> {
84586 #[inline]
84587 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84588 self.inner.address_range = value;
84589 self
84590 }
84591 #[inline]
84592 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84593 self.inner.address_flags = value;
84594 self
84595 }
84596 #[inline]
84597 pub fn index_type(mut self, value: IndexType) -> Self {
84598 self.inner.index_type = value;
84599 self
84600 }
84601 #[inline]
84603 pub fn push_next<T: ExtendsBindIndexBuffer3InfoKHR>(
84604 mut self,
84605 next: &'a mut T,
84606 ) -> Self {
84607 unsafe {
84608 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84609 (*next_ptr).p_next = self.inner.p_next as *mut _;
84610 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84611 core::ffi::c_void,
84612 >(next_ptr) as *const _;
84613 }
84614 self
84615 }
84616}
84617impl<'a> core::ops::Deref for BindIndexBuffer3InfoKHRBuilder<'a> {
84618 type Target = BindIndexBuffer3InfoKHR;
84619 #[inline]
84620 fn deref(&self) -> &Self::Target {
84621 &self.inner
84622 }
84623}
84624impl<'a> core::ops::DerefMut for BindIndexBuffer3InfoKHRBuilder<'a> {
84625 #[inline]
84626 fn deref_mut(&mut self) -> &mut Self::Target {
84627 &mut self.inner
84628 }
84629}
84630pub struct BindVertexBuffer3InfoKHRBuilder<'a> {
84632 inner: BindVertexBuffer3InfoKHR,
84633 _marker: core::marker::PhantomData<&'a ()>,
84634}
84635impl BindVertexBuffer3InfoKHR {
84636 #[inline]
84638 pub fn builder<'a>() -> BindVertexBuffer3InfoKHRBuilder<'a> {
84639 BindVertexBuffer3InfoKHRBuilder {
84640 inner: BindVertexBuffer3InfoKHR {
84641 s_type: StructureType::from_raw(1000318008i32),
84642 ..Default::default()
84643 },
84644 _marker: core::marker::PhantomData,
84645 }
84646 }
84647}
84648impl<'a> BindVertexBuffer3InfoKHRBuilder<'a> {
84649 #[inline]
84650 pub fn set_stride(mut self, value: bool) -> Self {
84651 self.inner.set_stride = value as u32;
84652 self
84653 }
84654 #[inline]
84655 pub fn address_range(mut self, value: StridedDeviceAddressRangeKHR) -> Self {
84656 self.inner.address_range = value;
84657 self
84658 }
84659 #[inline]
84660 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84661 self.inner.address_flags = value;
84662 self
84663 }
84664 #[inline]
84666 pub fn push_next<T: ExtendsBindVertexBuffer3InfoKHR>(
84667 mut self,
84668 next: &'a mut T,
84669 ) -> Self {
84670 unsafe {
84671 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84672 (*next_ptr).p_next = self.inner.p_next as *mut _;
84673 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84674 core::ffi::c_void,
84675 >(next_ptr) as *const _;
84676 }
84677 self
84678 }
84679}
84680impl<'a> core::ops::Deref for BindVertexBuffer3InfoKHRBuilder<'a> {
84681 type Target = BindVertexBuffer3InfoKHR;
84682 #[inline]
84683 fn deref(&self) -> &Self::Target {
84684 &self.inner
84685 }
84686}
84687impl<'a> core::ops::DerefMut for BindVertexBuffer3InfoKHRBuilder<'a> {
84688 #[inline]
84689 fn deref_mut(&mut self) -> &mut Self::Target {
84690 &mut self.inner
84691 }
84692}
84693pub struct DrawIndirect2InfoKHRBuilder<'a> {
84695 inner: DrawIndirect2InfoKHR,
84696 _marker: core::marker::PhantomData<&'a ()>,
84697}
84698impl DrawIndirect2InfoKHR {
84699 #[inline]
84701 pub fn builder<'a>() -> DrawIndirect2InfoKHRBuilder<'a> {
84702 DrawIndirect2InfoKHRBuilder {
84703 inner: DrawIndirect2InfoKHR {
84704 s_type: StructureType::from_raw(1000318009i32),
84705 ..Default::default()
84706 },
84707 _marker: core::marker::PhantomData,
84708 }
84709 }
84710}
84711impl<'a> DrawIndirect2InfoKHRBuilder<'a> {
84712 #[inline]
84713 pub fn address_range(mut self, value: StridedDeviceAddressRangeKHR) -> Self {
84714 self.inner.address_range = value;
84715 self
84716 }
84717 #[inline]
84718 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84719 self.inner.address_flags = value;
84720 self
84721 }
84722 #[inline]
84723 pub fn draw_count(mut self, value: u32) -> Self {
84724 self.inner.draw_count = value;
84725 self
84726 }
84727 #[inline]
84729 pub fn push_next<T: ExtendsDrawIndirect2InfoKHR>(mut self, next: &'a mut T) -> Self {
84730 unsafe {
84731 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84732 (*next_ptr).p_next = self.inner.p_next as *mut _;
84733 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84734 core::ffi::c_void,
84735 >(next_ptr) as *const _;
84736 }
84737 self
84738 }
84739}
84740impl<'a> core::ops::Deref for DrawIndirect2InfoKHRBuilder<'a> {
84741 type Target = DrawIndirect2InfoKHR;
84742 #[inline]
84743 fn deref(&self) -> &Self::Target {
84744 &self.inner
84745 }
84746}
84747impl<'a> core::ops::DerefMut for DrawIndirect2InfoKHRBuilder<'a> {
84748 #[inline]
84749 fn deref_mut(&mut self) -> &mut Self::Target {
84750 &mut self.inner
84751 }
84752}
84753pub struct DrawIndirectCount2InfoKHRBuilder<'a> {
84755 inner: DrawIndirectCount2InfoKHR,
84756 _marker: core::marker::PhantomData<&'a ()>,
84757}
84758impl DrawIndirectCount2InfoKHR {
84759 #[inline]
84761 pub fn builder<'a>() -> DrawIndirectCount2InfoKHRBuilder<'a> {
84762 DrawIndirectCount2InfoKHRBuilder {
84763 inner: DrawIndirectCount2InfoKHR {
84764 s_type: StructureType::from_raw(1000318010i32),
84765 ..Default::default()
84766 },
84767 _marker: core::marker::PhantomData,
84768 }
84769 }
84770}
84771impl<'a> DrawIndirectCount2InfoKHRBuilder<'a> {
84772 #[inline]
84773 pub fn address_range(mut self, value: StridedDeviceAddressRangeKHR) -> Self {
84774 self.inner.address_range = value;
84775 self
84776 }
84777 #[inline]
84778 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84779 self.inner.address_flags = value;
84780 self
84781 }
84782 #[inline]
84783 pub fn count_address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84784 self.inner.count_address_range = value;
84785 self
84786 }
84787 #[inline]
84788 pub fn count_address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84789 self.inner.count_address_flags = value;
84790 self
84791 }
84792 #[inline]
84793 pub fn max_draw_count(mut self, value: u32) -> Self {
84794 self.inner.max_draw_count = value;
84795 self
84796 }
84797 #[inline]
84799 pub fn push_next<T: ExtendsDrawIndirectCount2InfoKHR>(
84800 mut self,
84801 next: &'a mut T,
84802 ) -> Self {
84803 unsafe {
84804 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84805 (*next_ptr).p_next = self.inner.p_next as *mut _;
84806 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84807 core::ffi::c_void,
84808 >(next_ptr) as *const _;
84809 }
84810 self
84811 }
84812}
84813impl<'a> core::ops::Deref for DrawIndirectCount2InfoKHRBuilder<'a> {
84814 type Target = DrawIndirectCount2InfoKHR;
84815 #[inline]
84816 fn deref(&self) -> &Self::Target {
84817 &self.inner
84818 }
84819}
84820impl<'a> core::ops::DerefMut for DrawIndirectCount2InfoKHRBuilder<'a> {
84821 #[inline]
84822 fn deref_mut(&mut self) -> &mut Self::Target {
84823 &mut self.inner
84824 }
84825}
84826pub struct DispatchIndirect2InfoKHRBuilder<'a> {
84828 inner: DispatchIndirect2InfoKHR,
84829 _marker: core::marker::PhantomData<&'a ()>,
84830}
84831impl DispatchIndirect2InfoKHR {
84832 #[inline]
84834 pub fn builder<'a>() -> DispatchIndirect2InfoKHRBuilder<'a> {
84835 DispatchIndirect2InfoKHRBuilder {
84836 inner: DispatchIndirect2InfoKHR {
84837 s_type: StructureType::from_raw(1000318011i32),
84838 ..Default::default()
84839 },
84840 _marker: core::marker::PhantomData,
84841 }
84842 }
84843}
84844impl<'a> DispatchIndirect2InfoKHRBuilder<'a> {
84845 #[inline]
84846 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84847 self.inner.address_range = value;
84848 self
84849 }
84850 #[inline]
84851 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84852 self.inner.address_flags = value;
84853 self
84854 }
84855 #[inline]
84857 pub fn push_next<T: ExtendsDispatchIndirect2InfoKHR>(
84858 mut self,
84859 next: &'a mut T,
84860 ) -> Self {
84861 unsafe {
84862 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84863 (*next_ptr).p_next = self.inner.p_next as *mut _;
84864 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84865 core::ffi::c_void,
84866 >(next_ptr) as *const _;
84867 }
84868 self
84869 }
84870}
84871impl<'a> core::ops::Deref for DispatchIndirect2InfoKHRBuilder<'a> {
84872 type Target = DispatchIndirect2InfoKHR;
84873 #[inline]
84874 fn deref(&self) -> &Self::Target {
84875 &self.inner
84876 }
84877}
84878impl<'a> core::ops::DerefMut for DispatchIndirect2InfoKHRBuilder<'a> {
84879 #[inline]
84880 fn deref_mut(&mut self) -> &mut Self::Target {
84881 &mut self.inner
84882 }
84883}
84884pub struct BindTransformFeedbackBuffer2InfoEXTBuilder<'a> {
84886 inner: BindTransformFeedbackBuffer2InfoEXT,
84887 _marker: core::marker::PhantomData<&'a ()>,
84888}
84889impl BindTransformFeedbackBuffer2InfoEXT {
84890 #[inline]
84892 pub fn builder<'a>() -> BindTransformFeedbackBuffer2InfoEXTBuilder<'a> {
84893 BindTransformFeedbackBuffer2InfoEXTBuilder {
84894 inner: BindTransformFeedbackBuffer2InfoEXT {
84895 s_type: StructureType::from_raw(1000318013i32),
84896 ..Default::default()
84897 },
84898 _marker: core::marker::PhantomData,
84899 }
84900 }
84901}
84902impl<'a> BindTransformFeedbackBuffer2InfoEXTBuilder<'a> {
84903 #[inline]
84904 pub fn address_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84905 self.inner.address_range = value;
84906 self
84907 }
84908 #[inline]
84909 pub fn address_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84910 self.inner.address_flags = value;
84911 self
84912 }
84913 #[inline]
84915 pub fn push_next<T: ExtendsBindTransformFeedbackBuffer2InfoEXT>(
84916 mut self,
84917 next: &'a mut T,
84918 ) -> Self {
84919 unsafe {
84920 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84921 (*next_ptr).p_next = self.inner.p_next as *mut _;
84922 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84923 core::ffi::c_void,
84924 >(next_ptr) as *const _;
84925 }
84926 self
84927 }
84928}
84929impl<'a> core::ops::Deref for BindTransformFeedbackBuffer2InfoEXTBuilder<'a> {
84930 type Target = BindTransformFeedbackBuffer2InfoEXT;
84931 #[inline]
84932 fn deref(&self) -> &Self::Target {
84933 &self.inner
84934 }
84935}
84936impl<'a> core::ops::DerefMut for BindTransformFeedbackBuffer2InfoEXTBuilder<'a> {
84937 #[inline]
84938 fn deref_mut(&mut self) -> &mut Self::Target {
84939 &mut self.inner
84940 }
84941}
84942pub struct MemoryMarkerInfoAMDBuilder<'a> {
84944 inner: MemoryMarkerInfoAMD,
84945 _marker: core::marker::PhantomData<&'a ()>,
84946}
84947impl MemoryMarkerInfoAMD {
84948 #[inline]
84950 pub fn builder<'a>() -> MemoryMarkerInfoAMDBuilder<'a> {
84951 MemoryMarkerInfoAMDBuilder {
84952 inner: MemoryMarkerInfoAMD {
84953 s_type: StructureType::from_raw(1000318014i32),
84954 ..Default::default()
84955 },
84956 _marker: core::marker::PhantomData,
84957 }
84958 }
84959}
84960impl<'a> MemoryMarkerInfoAMDBuilder<'a> {
84961 #[inline]
84962 pub fn stage(mut self, value: PipelineStageFlags2KHR) -> Self {
84963 self.inner.stage = value;
84964 self
84965 }
84966 #[inline]
84967 pub fn dst_range(mut self, value: DeviceAddressRangeKHR) -> Self {
84968 self.inner.dst_range = value;
84969 self
84970 }
84971 #[inline]
84972 pub fn dst_flags(mut self, value: AddressCommandFlagsKHR) -> Self {
84973 self.inner.dst_flags = value;
84974 self
84975 }
84976 #[inline]
84977 pub fn marker(mut self, value: u32) -> Self {
84978 self.inner.marker = value;
84979 self
84980 }
84981 #[inline]
84983 pub fn push_next<T: ExtendsMemoryMarkerInfoAMD>(mut self, next: &'a mut T) -> Self {
84984 unsafe {
84985 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
84986 (*next_ptr).p_next = self.inner.p_next as *mut _;
84987 self.inner.p_next = <*mut BaseOutStructure>::cast::<
84988 core::ffi::c_void,
84989 >(next_ptr) as *const _;
84990 }
84991 self
84992 }
84993}
84994impl<'a> core::ops::Deref for MemoryMarkerInfoAMDBuilder<'a> {
84995 type Target = MemoryMarkerInfoAMD;
84996 #[inline]
84997 fn deref(&self) -> &Self::Target {
84998 &self.inner
84999 }
85000}
85001impl<'a> core::ops::DerefMut for MemoryMarkerInfoAMDBuilder<'a> {
85002 #[inline]
85003 fn deref_mut(&mut self) -> &mut Self::Target {
85004 &mut self.inner
85005 }
85006}
85007pub struct PhysicalDeviceShaderConstantDataFeaturesKHRBuilder<'a> {
85009 inner: PhysicalDeviceShaderConstantDataFeaturesKHR,
85010 _marker: core::marker::PhantomData<&'a ()>,
85011}
85012impl PhysicalDeviceShaderConstantDataFeaturesKHR {
85013 #[inline]
85015 pub fn builder<'a>() -> PhysicalDeviceShaderConstantDataFeaturesKHRBuilder<'a> {
85016 PhysicalDeviceShaderConstantDataFeaturesKHRBuilder {
85017 inner: PhysicalDeviceShaderConstantDataFeaturesKHR {
85018 s_type: StructureType::from_raw(1000231000i32),
85019 ..Default::default()
85020 },
85021 _marker: core::marker::PhantomData,
85022 }
85023 }
85024}
85025impl<'a> PhysicalDeviceShaderConstantDataFeaturesKHRBuilder<'a> {
85026 #[inline]
85027 pub fn shader_constant_data(mut self, value: bool) -> Self {
85028 self.inner.shader_constant_data = value as u32;
85029 self
85030 }
85031 #[inline]
85033 pub fn push_next<T: ExtendsPhysicalDeviceShaderConstantDataFeaturesKHR>(
85034 mut self,
85035 next: &'a mut T,
85036 ) -> Self {
85037 unsafe {
85038 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
85039 (*next_ptr).p_next = self.inner.p_next as *mut _;
85040 self.inner.p_next = <*mut BaseOutStructure>::cast::<
85041 core::ffi::c_void,
85042 >(next_ptr);
85043 }
85044 self
85045 }
85046}
85047impl<'a> core::ops::Deref for PhysicalDeviceShaderConstantDataFeaturesKHRBuilder<'a> {
85048 type Target = PhysicalDeviceShaderConstantDataFeaturesKHR;
85049 #[inline]
85050 fn deref(&self) -> &Self::Target {
85051 &self.inner
85052 }
85053}
85054impl<'a> core::ops::DerefMut for PhysicalDeviceShaderConstantDataFeaturesKHRBuilder<'a> {
85055 #[inline]
85056 fn deref_mut(&mut self) -> &mut Self::Target {
85057 &mut self.inner
85058 }
85059}
85060pub struct PhysicalDeviceShaderAbortFeaturesKHRBuilder<'a> {
85062 inner: PhysicalDeviceShaderAbortFeaturesKHR,
85063 _marker: core::marker::PhantomData<&'a ()>,
85064}
85065impl PhysicalDeviceShaderAbortFeaturesKHR {
85066 #[inline]
85068 pub fn builder<'a>() -> PhysicalDeviceShaderAbortFeaturesKHRBuilder<'a> {
85069 PhysicalDeviceShaderAbortFeaturesKHRBuilder {
85070 inner: PhysicalDeviceShaderAbortFeaturesKHR {
85071 s_type: StructureType::from_raw(1000233000i32),
85072 ..Default::default()
85073 },
85074 _marker: core::marker::PhantomData,
85075 }
85076 }
85077}
85078impl<'a> PhysicalDeviceShaderAbortFeaturesKHRBuilder<'a> {
85079 #[inline]
85080 pub fn shader_abort(mut self, value: bool) -> Self {
85081 self.inner.shader_abort = value as u32;
85082 self
85083 }
85084 #[inline]
85086 pub fn push_next<T: ExtendsPhysicalDeviceShaderAbortFeaturesKHR>(
85087 mut self,
85088 next: &'a mut T,
85089 ) -> Self {
85090 unsafe {
85091 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
85092 (*next_ptr).p_next = self.inner.p_next as *mut _;
85093 self.inner.p_next = <*mut BaseOutStructure>::cast::<
85094 core::ffi::c_void,
85095 >(next_ptr);
85096 }
85097 self
85098 }
85099}
85100impl<'a> core::ops::Deref for PhysicalDeviceShaderAbortFeaturesKHRBuilder<'a> {
85101 type Target = PhysicalDeviceShaderAbortFeaturesKHR;
85102 #[inline]
85103 fn deref(&self) -> &Self::Target {
85104 &self.inner
85105 }
85106}
85107impl<'a> core::ops::DerefMut for PhysicalDeviceShaderAbortFeaturesKHRBuilder<'a> {
85108 #[inline]
85109 fn deref_mut(&mut self) -> &mut Self::Target {
85110 &mut self.inner
85111 }
85112}
85113pub struct PhysicalDeviceShaderAbortPropertiesKHRBuilder<'a> {
85115 inner: PhysicalDeviceShaderAbortPropertiesKHR,
85116 _marker: core::marker::PhantomData<&'a ()>,
85117}
85118impl PhysicalDeviceShaderAbortPropertiesKHR {
85119 #[inline]
85121 pub fn builder<'a>() -> PhysicalDeviceShaderAbortPropertiesKHRBuilder<'a> {
85122 PhysicalDeviceShaderAbortPropertiesKHRBuilder {
85123 inner: PhysicalDeviceShaderAbortPropertiesKHR {
85124 s_type: StructureType::from_raw(1000233002i32),
85125 ..Default::default()
85126 },
85127 _marker: core::marker::PhantomData,
85128 }
85129 }
85130}
85131impl<'a> PhysicalDeviceShaderAbortPropertiesKHRBuilder<'a> {
85132 #[inline]
85133 pub fn max_shader_abort_message_size(mut self, value: u64) -> Self {
85134 self.inner.max_shader_abort_message_size = value;
85135 self
85136 }
85137 #[inline]
85139 pub fn push_next<T: ExtendsPhysicalDeviceShaderAbortPropertiesKHR>(
85140 mut self,
85141 next: &'a mut T,
85142 ) -> Self {
85143 unsafe {
85144 let next_ptr = <*mut T>::cast::<BaseOutStructure>(next);
85145 (*next_ptr).p_next = self.inner.p_next as *mut _;
85146 self.inner.p_next = <*mut BaseOutStructure>::cast::<
85147 core::ffi::c_void,
85148 >(next_ptr);
85149 }
85150 self
85151 }
85152}
85153impl<'a> core::ops::Deref for PhysicalDeviceShaderAbortPropertiesKHRBuilder<'a> {
85154 type Target = PhysicalDeviceShaderAbortPropertiesKHR;
85155 #[inline]
85156 fn deref(&self) -> &Self::Target {
85157 &self.inner
85158 }
85159}
85160impl<'a> core::ops::DerefMut for PhysicalDeviceShaderAbortPropertiesKHRBuilder<'a> {
85161 #[inline]
85162 fn deref_mut(&mut self) -> &mut Self::Target {
85163 &mut self.inner
85164 }
85165}
85166pub struct DeviceFaultShaderAbortMessageInfoKHRBuilder<'a> {
85168 inner: DeviceFaultShaderAbortMessageInfoKHR,
85169 _marker: core::marker::PhantomData<&'a ()>,
85170}
85171impl DeviceFaultShaderAbortMessageInfoKHR {
85172 #[inline]
85174 pub fn builder<'a>() -> DeviceFaultShaderAbortMessageInfoKHRBuilder<'a> {
85175 DeviceFaultShaderAbortMessageInfoKHRBuilder {
85176 inner: DeviceFaultShaderAbortMessageInfoKHR {
85177 s_type: StructureType::from_raw(1000233001i32),
85178 ..Default::default()
85179 },
85180 _marker: core::marker::PhantomData,
85181 }
85182 }
85183}
85184impl<'a> DeviceFaultShaderAbortMessageInfoKHRBuilder<'a> {
85185 #[inline]
85186 pub fn message_data_size(mut self, value: u64) -> Self {
85187 self.inner.message_data_size = value;
85188 self
85189 }
85190 #[inline]
85191 pub fn message_data(mut self, value: *mut core::ffi::c_void) -> Self {
85192 self.inner.p_message_data = value;
85193 self
85194 }
85195}
85196impl<'a> core::ops::Deref for DeviceFaultShaderAbortMessageInfoKHRBuilder<'a> {
85197 type Target = DeviceFaultShaderAbortMessageInfoKHR;
85198 #[inline]
85199 fn deref(&self) -> &Self::Target {
85200 &self.inner
85201 }
85202}
85203impl<'a> core::ops::DerefMut for DeviceFaultShaderAbortMessageInfoKHRBuilder<'a> {
85204 #[inline]
85205 fn deref_mut(&mut self) -> &mut Self::Target {
85206 &mut self.inner
85207 }
85208}