Struct vulkano_util::renderer::VulkanoWindowRenderer
source · [−]pub struct VulkanoWindowRenderer { /* private fields */ }
Expand description
A window renderer struct holding the winit window surface and functionality for organizing your render between frames.
Begin rendering with VulkanoWindowRenderer::acquire
and finish with VulkanoWindowRenderer::present
.
Between those, you should execute your command buffers.
The intended usage of this struct is through crate::window::VulkanoWindows
.
Implementations
sourceimpl VulkanoWindowRenderer
impl VulkanoWindowRenderer
sourcepub fn new(
vulkano_context: &VulkanoContext,
window: Window,
descriptor: &WindowDescriptor,
swapchain_create_info_modify: fn(_: &mut SwapchainCreateInfo)
) -> VulkanoWindowRenderer
pub fn new(
vulkano_context: &VulkanoContext,
window: Window,
descriptor: &WindowDescriptor,
swapchain_create_info_modify: fn(_: &mut SwapchainCreateInfo)
) -> VulkanoWindowRenderer
Creates a new VulkanoWindowRenderer
which is used to orchestrate your rendering with Vulkano.
Pass WindowDescriptor
and optionally a function modifying the SwapchainCreateInfo
parameters.
sourcepub fn set_present_mode(&mut self, present_mode: PresentMode)
pub fn set_present_mode(&mut self, present_mode: PresentMode)
Set window renderer present mode. This triggers a swapchain recreation.
sourcepub fn swapchain_format(&self) -> Format
pub fn swapchain_format(&self) -> Format
Return swapchain image format
sourcepub fn image_index(&self) -> usize
pub fn image_index(&self) -> usize
Returns the index of last swapchain image that is the next render target
sourcepub fn graphics_queue(&self) -> Arc<Queue>
pub fn graphics_queue(&self) -> Arc<Queue>
Graphics queue of this window. You also can access this through VulkanoContext
sourcepub fn compute_queue(&self) -> Arc<Queue>
pub fn compute_queue(&self) -> Arc<Queue>
Compute queue of this window. You can also access this through VulkanoContext
sourcepub fn window_size(&self) -> [f32; 2]
pub fn window_size(&self) -> [f32; 2]
Size of the physical window
sourcepub fn swapchain_image_size(&self) -> [u32; 2]
pub fn swapchain_image_size(&self) -> [u32; 2]
Size of the final swapchain image (surface)
sourcepub fn swapchain_image_view(&self) -> SwapchainImageView
pub fn swapchain_image_view(&self) -> SwapchainImageView
Return the current swapchain image view
sourcepub fn resolution(&self) -> [f32; 2]
pub fn resolution(&self) -> [f32; 2]
Return scale factor accounted window size
pub fn aspect_ratio(&self) -> f32
sourcepub fn resize(&mut self)
pub fn resize(&mut self)
Resize swapchain and camera view images at the beginning of next frame based on window dimensions
sourcepub fn add_additional_image_view(
&mut self,
key: usize,
format: Format,
usage: ImageUsage
)
pub fn add_additional_image_view(
&mut self,
key: usize,
format: Format,
usage: ImageUsage
)
Add interim image view that resizes with window
sourcepub fn get_additional_image_view(&mut self, key: usize) -> DeviceImageView
pub fn get_additional_image_view(&mut self, key: usize) -> DeviceImageView
Get additional image view by key
sourcepub fn remove_additional_image_view(&mut self, key: usize)
pub fn remove_additional_image_view(&mut self, key: usize)
Remove additional image by key
sourcepub fn acquire(&mut self) -> Result<Box<dyn GpuFuture>, AcquireError>
pub fn acquire(&mut self) -> Result<Box<dyn GpuFuture>, AcquireError>
Begin your rendering by calling acquire
.
Returns a GpuFuture
representing the time after which the swapchain image has been acquired
and previous frame ended.
Execute your command buffers after calling this function and finish rendering by calling VulkanoWindowRenderer::present
.
sourcepub fn present(&mut self, after_future: Box<dyn GpuFuture>, wait_future: bool)
pub fn present(&mut self, after_future: Box<dyn GpuFuture>, wait_future: bool)
Finishes rendering by presenting the swapchain. Pass your last future as an input to this function.
Depending on your implementation, you may want to wait on your future. For example, a compute shader dispatch using an image that’s being later drawn should probably be waited on.