Struct 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§

Source§

impl VulkanoWindowRenderer

Source

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.

Source

pub fn set_present_mode(&mut self, present_mode: PresentMode)

Set window renderer present mode. This triggers a swapchain recreation.

Source

pub fn swapchain_format(&self) -> Format

Return swapchain image format.

Source

pub fn image_index(&self) -> u32

Returns the index of last swapchain image that is the next render target.

Source

pub fn graphics_queue(&self) -> Arc<Queue>

Graphics queue of this window. You also can access this through VulkanoContext.

Source

pub fn compute_queue(&self) -> Arc<Queue>

Compute queue of this window. You can also access this through VulkanoContext.

Source

pub fn surface(&self) -> Arc<Surface>

Render target surface.

Source

pub fn window(&self) -> &Window

Winit window (you can manipulate the window through this).

Source

pub fn window_size(&self) -> [f32; 2]

Size of the physical window.

Source

pub fn swapchain_image_size(&self) -> [u32; 2]

Size of the final swapchain image (surface).

Source

pub fn swapchain_image_view(&self) -> Arc<ImageView>

Return the current swapchain image view.

Source

pub fn resolution(&self) -> [f32; 2]

Return scale factor accounted window size.

Source

pub fn aspect_ratio(&self) -> f32

Source

pub fn swapchain_image_views(&self) -> &[Arc<ImageView>]

Returns a reference to the swapchain image views.

Source

pub fn resize(&mut self)

Resize swapchain and camera view images at the beginning of next frame based on window size.

Source

pub fn add_additional_image_view( &mut self, key: usize, format: Format, usage: ImageUsage, )

Add interim image view that resizes with window.

Source

pub fn get_additional_image_view(&mut self, key: usize) -> Arc<ImageView>

Get additional image view by key.

Source

pub fn remove_additional_image_view(&mut self, key: usize)

Remove additional image by key.

Source

pub fn acquire( &mut self, timeout: Option<Duration>, on_recreate_swapchain: impl FnOnce(&[Arc<ImageView>]), ) -> Result<Box<dyn GpuFuture>, VulkanError>

Begin your rendering by calling acquire. ‘on_recreate_swapchain’ is called when the swapchain gets recreated, due to being resized, suboptimal, or changing the present mode. 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.

Source

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.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more