Trait ColorPainter
pub trait ColorPainter {
// Required methods
fn push_transform(&mut self, transform: Transform);
fn pop_transform(&mut self);
fn push_clip_glyph(&mut self, glyph_id: 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_id: GlyphId,
brush_transform: Option<Transform>,
brush: Brush<'_>,
) { ... }
fn paint_cached_color_glyph(
&mut self,
_glyph: GlyphId,
) -> Result<PaintCachedColorGlyph, PaintError> { ... }
fn pop_layer(&mut self) { ... }
fn pop_layer_with_mode(&mut self, _composite_mode: CompositeMode) { ... }
}Expand description
A group of required painting callbacks to be provided by the client.
Each callback is executing a particular drawing or canvas transformation
operation. The trait’s callback functions are invoked when
paint is called with a ColorPainter trait
object. The documentation for each function describes what actions are to be
executed using the client side 2D graphics API, usually by performing some
kind of canvas operation.
Required Methods§
fn push_transform(&mut self, transform: Transform)
fn push_transform(&mut self, transform: Transform)
Push the specified transform by concatenating it to the current transformation matrix.
fn pop_transform(&mut self)
fn pop_transform(&mut self)
Restore the transformation matrix to the state before the previous
push_transform call.
fn push_clip_glyph(&mut self, glyph_id: GlyphId)
fn push_clip_glyph(&mut self, glyph_id: GlyphId)
Apply a clip path in the shape of glyph specified by glyph_id.
fn push_clip_box(&mut self, clip_box: BoundingBox<f32>)
fn push_clip_box(&mut self, clip_box: BoundingBox<f32>)
Apply a clip rectangle specified by clip_rect.
fn pop_clip(&mut self)
fn pop_clip(&mut self)
Restore the clip state to the state before a previous
push_clip_glyph or
push_clip_box call.
fn push_layer(&mut self, composite_mode: CompositeMode)
fn push_layer(&mut self, composite_mode: CompositeMode)
Open a new layer, and merge the layer down using composite_mode when
pop_layer is called, signalling that this layer is done drawing.
Provided Methods§
fn fill_glyph(
&mut self,
glyph_id: GlyphId,
brush_transform: Option<Transform>,
brush: Brush<'_>,
)
fn fill_glyph( &mut self, glyph_id: GlyphId, brush_transform: Option<Transform>, brush: Brush<'_>, )
Combined clip and fill operation.
Apply the clip path determined by the specified glyph_id, then fill it
with the specified brush, applying the _brush_transform
transformation matrix to the brush. The default implementation works
based on existing methods in this trait. It is recommended for clients
to override the default implementaition with a custom combined clip and
fill operation. In this way overriding likely results in performance
gains depending on performance characteristics of the 2D graphics stack
that these calls are mapped to.
fn paint_cached_color_glyph(
&mut self,
_glyph: GlyphId,
) -> Result<PaintCachedColorGlyph, PaintError>
fn paint_cached_color_glyph( &mut self, _glyph: GlyphId, ) -> Result<PaintCachedColorGlyph, PaintError>
Optionally implement this method: Draw an unscaled COLRv1 glyph given
the current transformation matrix (as accumulated by
push_transform calls).
fn pop_layer(&mut self)
fn pop_layer(&mut self)
Merge the pushed layer down using composite_mode passed to the matching
push_layer.
fn pop_layer_with_mode(&mut self, _composite_mode: CompositeMode)
fn pop_layer_with_mode(&mut self, _composite_mode: CompositeMode)
Alternative version of push_layer where the
composite_mode is also passed to the method. This is useful for
graphics libraries that need the compositing mode at layer pop time
and do not want to manually track the mode.
Only one of pop_layer or this method
need to be implemented. By default, this simply calls
pop_layer.