Trait PlatformPresenter

Source
pub trait PlatformPresenter {
    // Required methods
    fn format(&self) -> VkFormat;
    fn back_buffer_size(&self) -> Vector2<u32>;
    fn back_buffer_count(&self) -> usize;
    fn back_buffer<'a>(
        &'a self,
        index: usize,
    ) -> Option<VkHandleRef<'a, VkImage>>;
    fn emit_initialize_back_buffer_commands<'r>(
        &self,
        recorder: CmdRecord<'r, VulkanGfx>,
    ) -> CmdRecord<'r, VulkanGfx>;
    fn next_back_buffer_index(&mut self) -> Result<u32>;
    fn requesting_back_buffer_layout(&self) -> (ImageLayout, PipelineStageFlags);
    fn render_and_present<'s, 'r>(
        &'s mut self,
        g: &mut Graphics,
        last_render_fence: &mut impl VkHandleMut<Handle = VkFence>,
        back_buffer_index: u32,
        render_submission: SubmissionBatchBuilder<'r>,
        update_submission: Option<SubmissionBatchBuilder<'r>>,
    ) -> Result<()>
       where 's: 'r;
    fn resize(&mut self, g: &Graphics, new_size: Vector2<u32>) -> bool;
    fn current_geometry_extent(&self) -> Vector2<u32>;
}

Required Methods§

Source

fn format(&self) -> VkFormat

Source

fn back_buffer_size(&self) -> Vector2<u32>

Source

fn back_buffer_count(&self) -> usize

Source

fn back_buffer<'a>(&'a self, index: usize) -> Option<VkHandleRef<'a, VkImage>>

Source

fn emit_initialize_back_buffer_commands<'r>( &self, recorder: CmdRecord<'r, VulkanGfx>, ) -> CmdRecord<'r, VulkanGfx>

Source

fn next_back_buffer_index(&mut self) -> Result<u32>

Source

fn requesting_back_buffer_layout(&self) -> (ImageLayout, PipelineStageFlags)

Source

fn render_and_present<'s, 'r>( &'s mut self, g: &mut Graphics, last_render_fence: &mut impl VkHandleMut<Handle = VkFence>, back_buffer_index: u32, render_submission: SubmissionBatchBuilder<'r>, update_submission: Option<SubmissionBatchBuilder<'r>>, ) -> Result<()>
where 's: 'r,

Source

fn resize(&mut self, g: &Graphics, new_size: Vector2<u32>) -> bool

Returns whether re-initializing is needed for back-buffer resources

Source

fn current_geometry_extent(&self) -> Vector2<u32>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§