pub trait Renderer {
// Required method
fn render(&mut self, display_list: &DisplayList) -> Result<()>;
}Expand description
A backend that consumes a DisplayList and produces pixels.
Implement this trait for each platform rendering backend (Metal, Vulkan, wgpu,
Skia, software rasterizer, etc.). The framework calls
render once per frame with the display list for the
current scene.
§Example
ⓘ
use fission_render::{Renderer, DisplayList, DisplayOp};
struct SoftwareRenderer { buffer: Vec<u8> }
impl Renderer for SoftwareRenderer {
fn render(&mut self, display_list: &DisplayList) -> anyhow::Result<()> {
for op in &display_list.ops {
match op {
DisplayOp::DrawRect { rect, fill, .. } => { /* rasterize */ }
_ => {}
}
}
Ok(())
}
}Required Methods§
Sourcefn render(&mut self, display_list: &DisplayList) -> Result<()>
fn render(&mut self, display_list: &DisplayList) -> Result<()>
Renders the given display list. Called once per frame.