extensions/ext: Add VK_EXT_extended_dynamic_state2 (#572)
This commit is contained in:
parent
89ca1d03f4
commit
b7aff3b432
3 changed files with 79 additions and 0 deletions
|
@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
- Added `VK_EXT_extended_dynamic_state2` device extension (#572)
|
||||||
- Added `VK_KHR_copy_commands2` device extension (#571)
|
- Added `VK_KHR_copy_commands2` device extension (#571)
|
||||||
- Added `VK_EXT_private_data` device extension (#570)
|
- Added `VK_EXT_private_data` device extension (#570)
|
||||||
- Added conversions from `Extent2D` to `Extent3D` and `Rect2D` (#557)
|
- Added conversions from `Extent2D` to `Extent3D` and `Rect2D` (#557)
|
||||||
|
|
76
ash/src/extensions/ext/extended_dynamic_state2.rs
Normal file
76
ash/src/extensions/ext/extended_dynamic_state2.rs
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
use crate::vk;
|
||||||
|
use crate::{Device, Instance};
|
||||||
|
use std::ffi::CStr;
|
||||||
|
use std::mem;
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state2.html>
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct ExtendedDynamicState2 {
|
||||||
|
fp: vk::ExtExtendedDynamicState2Fn,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl ExtendedDynamicState2 {
|
||||||
|
pub fn new(instance: &Instance, device: &Device) -> Self {
|
||||||
|
let fp = vk::ExtExtendedDynamicState2Fn::load(|name| unsafe {
|
||||||
|
mem::transmute(instance.get_device_proc_addr(device.handle(), name.as_ptr()))
|
||||||
|
});
|
||||||
|
Self { fp }
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetPatchControlPointsEXT.html>
|
||||||
|
pub unsafe fn cmd_set_patch_control_points(
|
||||||
|
&self,
|
||||||
|
command_buffer: vk::CommandBuffer,
|
||||||
|
patch_control_points: u32,
|
||||||
|
) {
|
||||||
|
self.fp
|
||||||
|
.cmd_set_patch_control_points_ext(command_buffer, patch_control_points)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetRasterizerDiscardEnableEXT.html>
|
||||||
|
pub unsafe fn cmd_set_rasterizer_discard_enable(
|
||||||
|
&self,
|
||||||
|
command_buffer: vk::CommandBuffer,
|
||||||
|
rasterizer_discard_enable: bool,
|
||||||
|
) {
|
||||||
|
self.fp
|
||||||
|
.cmd_set_rasterizer_discard_enable_ext(command_buffer, rasterizer_discard_enable.into())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetDepthBiasEnableEXT.html>
|
||||||
|
pub unsafe fn cmd_set_depth_bias_enable(
|
||||||
|
&self,
|
||||||
|
command_buffer: vk::CommandBuffer,
|
||||||
|
depth_bias_enable: bool,
|
||||||
|
) {
|
||||||
|
self.fp
|
||||||
|
.cmd_set_depth_bias_enable_ext(command_buffer, depth_bias_enable.into())
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetLogicOpEXT.html>
|
||||||
|
pub unsafe fn cmd_set_logic_op(
|
||||||
|
&self,
|
||||||
|
command_buffer: vk::CommandBuffer,
|
||||||
|
logic_op: vk::LogicOp,
|
||||||
|
) {
|
||||||
|
self.fp.cmd_set_logic_op_ext(command_buffer, logic_op)
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <https://www.khronos.org/registry/vulkan/specs/1.3-extensions/man/html/vkCmdSetPrimitiveRestartEnableEXT.html>
|
||||||
|
pub unsafe fn cmd_set_primitive_restart_enable(
|
||||||
|
&self,
|
||||||
|
command_buffer: vk::CommandBuffer,
|
||||||
|
primitive_restart_enable: bool,
|
||||||
|
) {
|
||||||
|
self.fp
|
||||||
|
.cmd_set_primitive_restart_enable_ext(command_buffer, primitive_restart_enable.into())
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn name() -> &'static CStr {
|
||||||
|
vk::ExtExtendedDynamicState2Fn::name()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn fp(&self) -> &vk::ExtExtendedDynamicState2Fn {
|
||||||
|
&self.fp
|
||||||
|
}
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ pub use self::debug_marker::DebugMarker;
|
||||||
pub use self::debug_report::DebugReport;
|
pub use self::debug_report::DebugReport;
|
||||||
pub use self::debug_utils::DebugUtils;
|
pub use self::debug_utils::DebugUtils;
|
||||||
pub use self::extended_dynamic_state::ExtendedDynamicState;
|
pub use self::extended_dynamic_state::ExtendedDynamicState;
|
||||||
|
pub use self::extended_dynamic_state2::ExtendedDynamicState2;
|
||||||
pub use self::full_screen_exclusive::FullScreenExclusive;
|
pub use self::full_screen_exclusive::FullScreenExclusive;
|
||||||
pub use self::metal_surface::MetalSurface;
|
pub use self::metal_surface::MetalSurface;
|
||||||
pub use self::physical_device_drm::PhysicalDeviceDrm;
|
pub use self::physical_device_drm::PhysicalDeviceDrm;
|
||||||
|
@ -20,6 +21,7 @@ mod debug_marker;
|
||||||
mod debug_report;
|
mod debug_report;
|
||||||
mod debug_utils;
|
mod debug_utils;
|
||||||
mod extended_dynamic_state;
|
mod extended_dynamic_state;
|
||||||
|
mod extended_dynamic_state2;
|
||||||
mod full_screen_exclusive;
|
mod full_screen_exclusive;
|
||||||
mod metal_surface;
|
mod metal_surface;
|
||||||
mod physical_device_drm;
|
mod physical_device_drm;
|
||||||
|
|
Loading…
Add table
Reference in a new issue