Skip to main content

RasterBackend

Trait RasterBackend 

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

Source

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.

Source

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".

Implementors§