Skip to main content

jay_ash/extensions/ext/
extended_dynamic_state3.rs

1//! <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html>
2
3use crate::vk;
4
5impl crate::ext::extended_dynamic_state3::Device {
6    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetTessellationDomainOriginEXT.html>
7    #[inline]
8    pub unsafe fn cmd_set_tessellation_domain_origin(
9        &self,
10        command_buffer: vk::CommandBuffer,
11        domain_origin: vk::TessellationDomainOrigin,
12    ) {
13        unsafe { (self.fp.cmd_set_tessellation_domain_origin_ext)(command_buffer, domain_origin) }
14    }
15
16    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthClampEnableEXT.html>
17    #[inline]
18    pub unsafe fn cmd_set_depth_clamp_enable(
19        &self,
20        command_buffer: vk::CommandBuffer,
21        depth_clamp_enable: bool,
22    ) {
23        unsafe {
24            (self.fp.cmd_set_depth_clamp_enable_ext)(command_buffer, depth_clamp_enable.into())
25        }
26    }
27
28    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetPolygonModeEXT.html>
29    #[inline]
30    pub unsafe fn cmd_set_polygon_mode(
31        &self,
32        command_buffer: vk::CommandBuffer,
33        polygon_mode: vk::PolygonMode,
34    ) {
35        unsafe { (self.fp.cmd_set_polygon_mode_ext)(command_buffer, polygon_mode) }
36    }
37
38    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizationSamplesEXT.html>
39    #[inline]
40    pub unsafe fn cmd_set_rasterization_samples(
41        &self,
42        command_buffer: vk::CommandBuffer,
43        rasterization_samples: vk::SampleCountFlags,
44    ) {
45        unsafe {
46            (self.fp.cmd_set_rasterization_samples_ext)(command_buffer, rasterization_samples)
47        }
48    }
49
50    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetSampleMaskEXT.html>
51    #[inline]
52    pub unsafe fn cmd_set_sample_mask(
53        &self,
54        command_buffer: vk::CommandBuffer,
55        samples: vk::SampleCountFlags,
56        sample_mask: &[vk::SampleMask],
57    ) {
58        unsafe {
59            assert!(
60                samples.as_raw().is_power_of_two(),
61                "Only one SampleCount bit must be set"
62            );
63            assert_eq!((samples.as_raw() as usize).div_ceil(32), sample_mask.len());
64            (self.fp.cmd_set_sample_mask_ext)(command_buffer, samples, sample_mask.as_ptr())
65        }
66    }
67
68    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetAlphaToCoverageEnableEXT.html>
69    #[inline]
70    pub unsafe fn cmd_set_alpha_to_coverage_enable(
71        &self,
72        command_buffer: vk::CommandBuffer,
73        alpha_to_coverage_enable: bool,
74    ) {
75        unsafe {
76            (self.fp.cmd_set_alpha_to_coverage_enable_ext)(
77                command_buffer,
78                alpha_to_coverage_enable.into(),
79            )
80        }
81    }
82
83    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetAlphaToOneEnableEXT.html>
84    #[inline]
85    pub unsafe fn cmd_set_alpha_to_one_enable(
86        &self,
87        command_buffer: vk::CommandBuffer,
88        alpha_to_one_enable: bool,
89    ) {
90        unsafe {
91            (self.fp.cmd_set_alpha_to_one_enable_ext)(command_buffer, alpha_to_one_enable.into())
92        }
93    }
94
95    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLogicOpEnableEXT.html>
96    #[inline]
97    pub unsafe fn cmd_set_logic_op_enable(
98        &self,
99        command_buffer: vk::CommandBuffer,
100        logic_op_enable: bool,
101    ) {
102        unsafe { (self.fp.cmd_set_logic_op_enable_ext)(command_buffer, logic_op_enable.into()) }
103    }
104
105    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendEnableEXT.html>
106    #[inline]
107    pub unsafe fn cmd_set_color_blend_enable(
108        &self,
109        command_buffer: vk::CommandBuffer,
110        first_attachment: u32,
111        color_blend_enables: &[vk::Bool32],
112    ) {
113        unsafe {
114            (self.fp.cmd_set_color_blend_enable_ext)(
115                command_buffer,
116                first_attachment,
117                color_blend_enables.len() as u32,
118                color_blend_enables.as_ptr(),
119            )
120        }
121    }
122
123    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendEquationEXT.html>
124    #[inline]
125    pub unsafe fn cmd_set_color_blend_equation(
126        &self,
127        command_buffer: vk::CommandBuffer,
128        first_attachment: u32,
129        color_blend_equations: &[vk::ColorBlendEquationEXT],
130    ) {
131        unsafe {
132            (self.fp.cmd_set_color_blend_equation_ext)(
133                command_buffer,
134                first_attachment,
135                color_blend_equations.len() as u32,
136                color_blend_equations.as_ptr(),
137            )
138        }
139    }
140
141    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorWriteMaskEXT.html>
142    #[inline]
143    pub unsafe fn cmd_set_color_write_mask(
144        &self,
145        command_buffer: vk::CommandBuffer,
146        first_attachment: u32,
147        color_write_masks: &[vk::ColorComponentFlags],
148    ) {
149        unsafe {
150            (self.fp.cmd_set_color_write_mask_ext)(
151                command_buffer,
152                first_attachment,
153                color_write_masks.len() as u32,
154                color_write_masks.as_ptr(),
155            )
156        }
157    }
158
159    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizationStreamEXT.html>
160    #[inline]
161    pub unsafe fn cmd_set_rasterization_stream(
162        &self,
163        command_buffer: vk::CommandBuffer,
164        rasterization_stream: u32,
165    ) {
166        unsafe { (self.fp.cmd_set_rasterization_stream_ext)(command_buffer, rasterization_stream) }
167    }
168
169    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetConservativeRasterizationModeEXT.html>
170    #[inline]
171    pub unsafe fn cmd_set_conservative_rasterization_mode(
172        &self,
173        command_buffer: vk::CommandBuffer,
174        conservative_rasterization_mode: vk::ConservativeRasterizationModeEXT,
175    ) {
176        unsafe {
177            (self.fp.cmd_set_conservative_rasterization_mode_ext)(
178                command_buffer,
179                conservative_rasterization_mode,
180            )
181        }
182    }
183
184    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetExtraPrimitiveOverestimationSizeEXT.html>
185    #[inline]
186    pub unsafe fn cmd_set_extra_primitive_overestimation_size(
187        &self,
188        command_buffer: vk::CommandBuffer,
189        extra_primitive_overestimation_size: f32,
190    ) {
191        unsafe {
192            (self.fp.cmd_set_extra_primitive_overestimation_size_ext)(
193                command_buffer,
194                extra_primitive_overestimation_size,
195            )
196        }
197    }
198
199    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthClipEnableEXT.html>
200    #[inline]
201    pub unsafe fn cmd_set_depth_clip_enable(
202        &self,
203        command_buffer: vk::CommandBuffer,
204        depth_clip_enable: bool,
205    ) {
206        unsafe { (self.fp.cmd_set_depth_clip_enable_ext)(command_buffer, depth_clip_enable.into()) }
207    }
208
209    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetSampleLocationsEnableEXT.html>
210    #[inline]
211    pub unsafe fn cmd_set_sample_locations_enable(
212        &self,
213        command_buffer: vk::CommandBuffer,
214        sample_locations_enable: bool,
215    ) {
216        unsafe {
217            (self.fp.cmd_set_sample_locations_enable_ext)(
218                command_buffer,
219                sample_locations_enable.into(),
220            )
221        }
222    }
223
224    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetColorBlendAdvancedEXT.html>
225    #[inline]
226    pub unsafe fn cmd_set_color_blend_advanced(
227        &self,
228        command_buffer: vk::CommandBuffer,
229        first_attachment: u32,
230        color_blend_advanced: &[vk::ColorBlendAdvancedEXT],
231    ) {
232        unsafe {
233            (self.fp.cmd_set_color_blend_advanced_ext)(
234                command_buffer,
235                first_attachment,
236                color_blend_advanced.len() as u32,
237                color_blend_advanced.as_ptr(),
238            )
239        }
240    }
241
242    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetProvokingVertexModeEXT.html>
243    #[inline]
244    pub unsafe fn cmd_set_provoking_vertex_mode(
245        &self,
246        command_buffer: vk::CommandBuffer,
247        provoking_vertex_mode: vk::ProvokingVertexModeEXT,
248    ) {
249        unsafe {
250            (self.fp.cmd_set_provoking_vertex_mode_ext)(command_buffer, provoking_vertex_mode)
251        }
252    }
253
254    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineRasterizationModeEXT.html>
255    #[inline]
256    pub unsafe fn cmd_set_line_rasterization_mode(
257        &self,
258        command_buffer: vk::CommandBuffer,
259        line_rasterization_mode: vk::LineRasterizationModeEXT,
260    ) {
261        unsafe {
262            (self.fp.cmd_set_line_rasterization_mode_ext)(command_buffer, line_rasterization_mode)
263        }
264    }
265
266    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetLineStippleEnableEXT.html>
267    #[inline]
268    pub unsafe fn cmd_set_line_stipple_enable(
269        &self,
270        command_buffer: vk::CommandBuffer,
271        stippled_line_enable: bool,
272    ) {
273        unsafe {
274            (self.fp.cmd_set_line_stipple_enable_ext)(command_buffer, stippled_line_enable.into())
275        }
276    }
277
278    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthClipNegativeOneToOneEXT.html>
279    #[inline]
280    pub unsafe fn cmd_set_depth_clip_negative_one_to_one(
281        &self,
282        command_buffer: vk::CommandBuffer,
283        negative_one_to_one: bool,
284    ) {
285        unsafe {
286            (self.fp.cmd_set_depth_clip_negative_one_to_one_ext)(
287                command_buffer,
288                negative_one_to_one.into(),
289            )
290        }
291    }
292
293    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetViewportWScalingEnableNV.html>
294    #[inline]
295    pub unsafe fn cmd_set_viewport_w_scaling_enable_nv(
296        &self,
297        command_buffer: vk::CommandBuffer,
298        viewport_w_scaling_enable: bool,
299    ) {
300        unsafe {
301            (self.fp.cmd_set_viewport_w_scaling_enable_nv)(
302                command_buffer,
303                viewport_w_scaling_enable.into(),
304            )
305        }
306    }
307
308    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetViewportSwizzleNV.html>
309    #[inline]
310    pub unsafe fn cmd_set_viewport_swizzle_nv(
311        &self,
312        command_buffer: vk::CommandBuffer,
313        first_attachment: u32,
314        viewport_swizzles: &[vk::ViewportSwizzleNV],
315    ) {
316        unsafe {
317            (self.fp.cmd_set_viewport_swizzle_nv)(
318                command_buffer,
319                first_attachment,
320                viewport_swizzles.len() as u32,
321                viewport_swizzles.as_ptr(),
322            )
323        }
324    }
325
326    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageToColorEnableNV.html>
327    #[inline]
328    pub unsafe fn cmd_set_coverage_to_color_enable_nv(
329        &self,
330        command_buffer: vk::CommandBuffer,
331        coverage_to_color_enable: bool,
332    ) {
333        unsafe {
334            (self.fp.cmd_set_coverage_to_color_enable_nv)(
335                command_buffer,
336                coverage_to_color_enable.into(),
337            )
338        }
339    }
340
341    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageToColorLocationNV.html>
342    #[inline]
343    pub unsafe fn cmd_set_coverage_to_color_location_nv(
344        &self,
345        command_buffer: vk::CommandBuffer,
346        coverage_to_color_location: u32,
347    ) {
348        unsafe {
349            (self.fp.cmd_set_coverage_to_color_location_nv)(
350                command_buffer,
351                coverage_to_color_location,
352            )
353        }
354    }
355
356    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageModulationModeNV.html>
357    #[inline]
358    pub unsafe fn cmd_set_coverage_modulation_mode_nv(
359        &self,
360        command_buffer: vk::CommandBuffer,
361        coverage_modulation_mode: vk::CoverageModulationModeNV,
362    ) {
363        unsafe {
364            (self.fp.cmd_set_coverage_modulation_mode_nv)(command_buffer, coverage_modulation_mode)
365        }
366    }
367
368    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageModulationTableEnableNV.html>
369    #[inline]
370    pub unsafe fn cmd_set_coverage_modulation_table_enable_nv(
371        &self,
372        command_buffer: vk::CommandBuffer,
373        coverage_modulation_table_enable: bool,
374    ) {
375        unsafe {
376            (self.fp.cmd_set_coverage_modulation_table_enable_nv)(
377                command_buffer,
378                coverage_modulation_table_enable.into(),
379            )
380        }
381    }
382
383    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageModulationTableNV.html>
384    #[inline]
385    pub unsafe fn cmd_set_coverage_modulation_table_nv(
386        &self,
387        command_buffer: vk::CommandBuffer,
388        coverage_modulation_table: &[f32],
389    ) {
390        unsafe {
391            (self.fp.cmd_set_coverage_modulation_table_nv)(
392                command_buffer,
393                coverage_modulation_table.len() as u32,
394                coverage_modulation_table.as_ptr(),
395            )
396        }
397    }
398
399    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetShadingRateImageEnableNV.html>
400    #[inline]
401    pub unsafe fn cmd_set_shading_rate_image_enable_nv(
402        &self,
403        command_buffer: vk::CommandBuffer,
404        shading_rate_image_enable: bool,
405    ) {
406        unsafe {
407            (self.fp.cmd_set_shading_rate_image_enable_nv)(
408                command_buffer,
409                shading_rate_image_enable.into(),
410            )
411        }
412    }
413
414    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetRepresentativeFragmentTestEnableNV.html>
415    #[inline]
416    pub unsafe fn cmd_set_representative_fragment_test_enable_nv(
417        &self,
418        command_buffer: vk::CommandBuffer,
419        representative_fragment_test_enable: bool,
420    ) {
421        unsafe {
422            (self.fp.cmd_set_representative_fragment_test_enable_nv)(
423                command_buffer,
424                representative_fragment_test_enable.into(),
425            )
426        }
427    }
428
429    /// <https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/vkCmdSetCoverageReductionModeNV.html>
430    #[inline]
431    pub unsafe fn cmd_set_coverage_reduction_mode_nv(
432        &self,
433        command_buffer: vk::CommandBuffer,
434        coverage_reduction_mode: vk::CoverageReductionModeNV,
435    ) {
436        unsafe {
437            (self.fp.cmd_set_coverage_reduction_mode_nv)(command_buffer, coverage_reduction_mode)
438        }
439    }
440}