Skip to main content

Renderer

Trait Renderer 

Source
pub trait Renderer {
    type Scene: RenderScene;
    type Error;

    // Required methods
    fn scene(&self) -> &Self::Scene;
    fn scene_mut(&mut self) -> &mut Self::Scene;
    fn rebuild_scene(
        &mut self,
        layout_tree: &LayoutTree,
        viewport: Size,
    ) -> Result<(), Self::Error>;
    fn rebuild_scene_from_applier(
        &mut self,
        applier: &mut MemoryApplier,
        root: NodeId,
        viewport: Size,
    ) -> Result<(), Self::Error>;

    // Provided method
    fn draw_dev_overlay(&mut self, _text: &str, _viewport: Size) { ... }
}
Expand description

Abstraction implemented by concrete renderer backends.

Required Associated Types§

Required Methods§

Source

fn scene(&self) -> &Self::Scene

Source

fn scene_mut(&mut self) -> &mut Self::Scene

Source

fn rebuild_scene( &mut self, layout_tree: &LayoutTree, viewport: Size, ) -> Result<(), Self::Error>

Source

fn rebuild_scene_from_applier( &mut self, applier: &mut MemoryApplier, root: NodeId, viewport: Size, ) -> Result<(), Self::Error>

Rebuilds the scene by traversing the LayoutNode tree directly via Applier.

This is the new architecture that eliminates per-frame LayoutTree reconstruction. Implementors must read layout state from LayoutNode.layout_state() directly.

Provided Methods§

Source

fn draw_dev_overlay(&mut self, _text: &str, _viewport: Size)

Draw a development overlay (e.g., FPS counter) on top of the scene.

This is called after rebuild_scene when dev options are enabled. The text is drawn directly by the renderer without affecting composition.

Default implementation does nothing.

Implementors§