2023-01-13 19:19:58 +11:00
|
|
|
//! Vulkan shader runtime options.
|
|
|
|
|
2023-01-26 15:45:10 +11:00
|
|
|
use ash::vk;
|
|
|
|
|
2023-01-13 18:10:07 +11:00
|
|
|
/// Options for each Vulkan shader frame.
|
|
|
|
#[repr(C)]
|
|
|
|
#[derive(Debug, Clone)]
|
2023-01-14 08:55:50 +11:00
|
|
|
pub struct FrameOptionsVulkan {
|
2023-01-13 18:10:07 +11:00
|
|
|
/// Whether or not to clear the history buffers.
|
|
|
|
pub clear_history: bool,
|
|
|
|
/// The direction of the frame. 1 should be vertical.
|
|
|
|
pub frame_direction: i32,
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Options for filter chain creation.
|
|
|
|
#[repr(C)]
|
|
|
|
#[derive(Debug, Clone)]
|
2023-01-14 08:55:50 +11:00
|
|
|
pub struct FilterChainOptionsVulkan {
|
2023-01-13 20:13:16 +11:00
|
|
|
/// The number of frames in flight to keep. If zero, defaults to three.
|
|
|
|
pub frames_in_flight: u32,
|
2023-01-13 18:10:07 +11:00
|
|
|
/// Whether or not to explicitly disable mipmap generation regardless of shader preset settings.
|
|
|
|
pub force_no_mipmaps: bool,
|
2023-01-26 15:45:10 +11:00
|
|
|
/// The format to use for the render pass. If this is `VK_FORMAT_UNDEFINED`, dynamic rendering
|
|
|
|
/// will be used instead of a render pass. If this is set to some format, the render passes
|
|
|
|
/// will be created with such format. It is recommended if possible to use dynamic rendering,
|
|
|
|
/// because render-pass mode will create new framebuffers per pass.
|
|
|
|
pub render_pass_format: vk::Format
|
2023-01-13 18:10:07 +11:00
|
|
|
}
|