pub trait RenderBackend {
// Required methods
fn begin_frame(
&mut self,
width: u32,
height: u32,
scale_factor: f32,
generation: u64,
) -> Result<(), RendererError>;
fn render_frame(
&mut self,
commands: &[DrawCommand],
clear_color: Option<Color>,
) -> Result<(), RendererError>;
// Provided method
fn read_rgba(&self) -> Option<Vec<u8>> { ... }
}Required Methods§
Sourcefn begin_frame(
&mut self,
width: u32,
height: u32,
scale_factor: f32,
generation: u64,
) -> Result<(), RendererError>
fn begin_frame( &mut self, width: u32, height: u32, scale_factor: f32, generation: u64, ) -> Result<(), RendererError>
Begin a new frame. Note: scale_factor and generation may be ignored by backends that receive pre-scaled commands (see SoftwareRenderer::begin_frame).
Sourcefn render_frame(
&mut self,
commands: &[DrawCommand],
clear_color: Option<Color>,
) -> Result<(), RendererError>
fn render_frame( &mut self, commands: &[DrawCommand], clear_color: Option<Color>, ) -> Result<(), RendererError>
Process and present all draw commands for this frame. Must be called exactly once per frame after begin_frame.
Provided Methods§
Sourcefn read_rgba(&self) -> Option<Vec<u8>>
fn read_rgba(&self) -> Option<Vec<u8>>
The most recently rendered frame as premultiplied RGBA8888 ([R, G, B, A] per pixel, row-major), if
this backend renders to an offscreen target. Windowed/on-screen backends present directly and return
None. Used to read back pixels from a headless render pass.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".