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§
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>
Sourcefn rebuild_scene_from_applier(
&mut self,
applier: &mut MemoryApplier,
root: NodeId,
viewport: Size,
) -> Result<(), Self::Error>
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§
Sourcefn draw_dev_overlay(&mut self, _text: &str, _viewport: Size)
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.