Skip to main content

PassBackend

Trait PassBackend 

Source
pub trait PassBackend {
    // Required methods
    fn ensure_surface(
        &mut self,
        id: SurfaceId,
        desc: &SurfaceDesc,
    ) -> WavyteResult<()>;
    fn exec_scene(
        &mut self,
        pass: &ScenePass,
        assets: &PreparedAssetStore,
    ) -> WavyteResult<()>;
    fn exec_offscreen(
        &mut self,
        pass: &OffscreenPass,
        assets: &PreparedAssetStore,
    ) -> WavyteResult<()>;
    fn exec_composite(
        &mut self,
        pass: &CompositePass,
        assets: &PreparedAssetStore,
    ) -> WavyteResult<()>;
    fn readback_rgba8(
        &mut self,
        surface: SurfaceId,
        plan: &RenderPlan,
        assets: &PreparedAssetStore,
    ) -> WavyteResult<FrameRGBA>;
}
Expand description

Backend execution interface for individual render pass kinds.

Required Methods§

Source

fn ensure_surface( &mut self, id: SurfaceId, desc: &SurfaceDesc, ) -> WavyteResult<()>

Ensure backing storage exists for the declared render surface.

Source

fn exec_scene( &mut self, pass: &ScenePass, assets: &PreparedAssetStore, ) -> WavyteResult<()>

Execute one scene pass that draws source assets into a target surface.

Source

fn exec_offscreen( &mut self, pass: &OffscreenPass, assets: &PreparedAssetStore, ) -> WavyteResult<()>

Execute one offscreen effect pass.

Source

fn exec_composite( &mut self, pass: &CompositePass, assets: &PreparedAssetStore, ) -> WavyteResult<()>

Execute one composite pass that combines intermediate surfaces.

Source

fn readback_rgba8( &mut self, surface: SurfaceId, plan: &RenderPlan, assets: &PreparedAssetStore, ) -> WavyteResult<FrameRGBA>

Read back final frame pixels from surface.

Implementors§