Skip to main content

Renderer

Trait Renderer 

Source
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§

Source

fn render(&mut self, display_list: &DisplayList) -> Result<()>

Renders the given display list. Called once per frame.

Implementors§