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§
Sourcefn render_frame(&self, atlas: &SpriteAtlas, frame_index: u32) -> Result<Vec<u8>>
fn render_frame(&self, atlas: &SpriteAtlas, frame_index: u32) -> Result<Vec<u8>>
Extracts frame frame_index as frame_width * frame_height * 4
RGBA8 bytes.
Sourcefn compose(
&self,
layers: &[(&SpriteAtlas, u32, i32, i32)],
width: u32,
height: u32,
) -> Result<Vec<u8>>
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".