pub trait RasterBackend {
// Required methods
fn rasterize(
&self,
scene: &Scene,
fonts: &dyn FontProvider,
assets: &dyn AssetProvider,
) -> Result<RasterImage, RenderError>;
fn encode_png(&self, image: &RasterImage) -> Result<Vec<u8>, RenderError>;
}Expand description
Trait that abstracts over different CPU rasterization backends.
The associated methods take and return only types from this crate or the standard library — no backend-specific types cross the boundary.
Required Methods§
Sourcefn rasterize(
&self,
scene: &Scene,
fonts: &dyn FontProvider,
assets: &dyn AssetProvider,
) -> Result<RasterImage, RenderError>
fn rasterize( &self, scene: &Scene, fonts: &dyn FontProvider, assets: &dyn AssetProvider, ) -> Result<RasterImage, RenderError>
Rasterize a scene to straight-alpha RGBA8 pixels plus dimensions.
The fonts parameter is used to resolve font bytes for glyph runs.
The assets parameter is used to resolve raster image bytes for
DrawImage commands. Runs/images whose id cannot be resolved are
silently skipped — they do not cause an error.
Sourcefn encode_png(&self, image: &RasterImage) -> Result<Vec<u8>, RenderError>
fn encode_png(&self, image: &RasterImage) -> Result<Vec<u8>, RenderError>
Encode a RasterImage as deterministic PNG bytes.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".