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);
fn pop_layer(&mut self);
// 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> { ... }
}
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§
sourcefn 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.
sourcefn pop_transform(&mut self)
fn pop_transform(&mut self)
Restore the transformation matrix to the state before the previous
push_transform
call.
sourcefn 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
.
sourcefn 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
.
sourcefn 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.
sourcefn fill(&mut self, brush: Brush<'_>)
fn fill(&mut self, brush: Brush<'_>)
Fill the current clip area with the specified gradient fill.
sourcefn 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.
fn pop_layer(&mut self)
Provided Methods§
sourcefn 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.
sourcefn 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).