Skip to main content

Renderer

Trait Renderer 

Source
pub trait Renderer {
    // Required methods
    fn render_frame(
        &self,
        atlas: &SpriteAtlas,
        frame_index: u32,
    ) -> Result<Vec<u8>>;
    fn compose(
        &self,
        layers: &[(&SpriteAtlas, u32, i32, i32)],
        width: u32,
        height: u32,
    ) -> Result<Vec<u8>>;
}
Expand description

A sprite renderer.

Required Methods§

Source

fn render_frame(&self, atlas: &SpriteAtlas, frame_index: u32) -> Result<Vec<u8>>

Extracts frame frame_index as frame_width * frame_height * 4 RGBA8 bytes.

Source

fn compose( &self, layers: &[(&SpriteAtlas, u32, i32, i32)], width: u32, height: u32, ) -> Result<Vec<u8>>

Composites layers(atlas, frame_index, x, y) — onto a transparent width×height canvas (src-over alpha blending), returning width * height * 4 RGBA8 bytes. Layers are painted in order (later = on top); out-of-canvas pixels are clipped.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§