Skip to main content

PaintSink

Trait PaintSink 

Source
pub trait PaintSink {
    // Required methods
    fn push_transform(&mut self, transform: Matrix<f32>);
    fn pop_transform(&mut self);
    fn push_clip_glyph(&mut self, glyph: GlyphId);
    fn push_clip_box(&mut self, clip_box: BoundingBox<f32>);
    fn pop_clip(&mut self);
    fn fill(&mut self, brush: Brush<'_>);
    fn push_layer(&mut self, composite_mode: CompositeMode);

    // Provided methods
    fn fill_glyph(
        &mut self,
        glyph: GlyphId,
        brush_transform: Option<Matrix<f32>>,
        brush: Brush<'_>,
    ) { ... }
    fn paint_cached_color_glyph(
        &mut self,
        _glyph: GlyphId,
    ) -> Result<PaintCachedColorGlyph, Error> { ... }
    fn pop_layer(&mut self) { ... }
    fn pop_layer_with_mode(&mut self, _composite_mode: CompositeMode) { ... }
}
Expand description

Receives the operations that paint a color glyph.

Each callback is one canvas operation. ColorGlyph::paint calls them with values in font units. A sink that draws at a specific size scales them by size / upem.

Required Methods§

Source

fn push_transform(&mut self, transform: Matrix<f32>)

Concatenates transform to the current transformation matrix.

Source

fn pop_transform(&mut self)

Restores the transformation matrix from before the last push_transform.

Source

fn push_clip_glyph(&mut self, glyph: GlyphId)

Clips to the outline of glyph.

Source

fn push_clip_box(&mut self, clip_box: BoundingBox<f32>)

Clips to clip_box.

Source

fn pop_clip(&mut self)

Restores the clip from before the last push_clip_glyph or push_clip_box.

Source

fn fill(&mut self, brush: Brush<'_>)

Fills the current clip with brush.

Source

fn push_layer(&mut self, composite_mode: CompositeMode)

Pushes a new layer that pop_layer composites onto the layer below with composite_mode.

Provided Methods§

Source

fn fill_glyph( &mut self, glyph: GlyphId, brush_transform: Option<Matrix<f32>>, brush: Brush<'_>, )

Clips to the outline of glyph and fills it with brush, with brush_transform applied to the brush alone.

The default implementation uses the other callbacks. Override it if the graphics library can fill a path in one call.

Source

fn paint_cached_color_glyph( &mut self, _glyph: GlyphId, ) -> Result<PaintCachedColorGlyph, Error>

Paints a nested color glyph from the sink’s cache, if it has one.

The glyph is painted unscaled under the current transformation matrix. The default implementation has no cache, so the paint graph of the glyph is traversed.

Source

fn pop_layer(&mut self)

Composites the last layer onto the layer below, using the mode passed to the matching push_layer.

Source

fn pop_layer_with_mode(&mut self, _composite_mode: CompositeMode)

Same as pop_layer, but also receives the composite mode.

Use this for a graphics library that needs the mode when the layer is popped. Only one of the two methods needs an implementation. The default calls pop_layer.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§