PaintingContext class
A place to paint.
Rather than holding a canvas directly, RenderObjects paint using a painting context. The painting context has a Canvas, which receives the individual draw operations, and also has functions for painting child render objects.
When painting a child render object, the canvas held by the painting context can change because the draw operations issued before and after painting the child might be recorded in separate compositing layers. For this reason, do not hold a reference to the canvas across operations that might paint child render objects.
New PaintingContext objects are created automatically when using PaintingContext.repaintCompositedChild and pushLayer.
- Inheritance
-
- Object
- ClipContext
- PaintingContext
- Implementers
Constructors
- PaintingContext(ContainerLayer _containerLayer, Rect estimatedBounds)
- Creates a painting context.
Properties
- canvas → Canvas
-
The canvas on which to paint.
no setteroverride
- estimatedBounds → Rect
-
An estimate of the bounds within which the painting context's canvas
will record painting commands. This can be useful for debugging.
final
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
Methods
-
addCompositionCallback(
CompositionCallback callback) → VoidCallback - Adds a CompositionCallback for the current ContainerLayer used by this context.
-
addLayer(
Layer layer) → void - Adds a composited leaf layer to the recording.
-
appendLayer(
Layer layer) → void - Adds a layer to the recording requiring that the recording is already stopped.
-
clipPathAndPaint(
Path path, Clip clipBehavior, Rect bounds, VoidCallback painter) → void -
Clip canvas with Path according to Clip and then paint. canvas is
restored to the pre-clip status afterwards.
inherited
-
clipRectAndPaint(
Rect rect, Clip clipBehavior, Rect bounds, VoidCallback painter) → void -
Clip canvas with Path according to
rect
and then paint. canvas is restored to the pre-clip status afterwards.inherited -
clipRRectAndPaint(
RRect rrect, Clip clipBehavior, Rect bounds, VoidCallback painter) → void -
Clip canvas with Path according to
rrect
and then paint. canvas is restored to the pre-clip status afterwards.inherited -
createChildContext(
ContainerLayer childLayer, Rect bounds) → PaintingContext -
Creates a painting context configured to paint into
childLayer
. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
paintChild(
RenderObject child, Offset offset) → void - Paint a child RenderObject.
-
pushClipPath(
bool needsCompositing, Offset offset, Rect bounds, Path clipPath, PaintingContextCallback painter, {Clip clipBehavior = Clip.antiAlias, ClipPathLayer? oldLayer}) → ClipPathLayer? - Clip further painting using a path.
-
pushClipRect(
bool needsCompositing, Offset offset, Rect clipRect, PaintingContextCallback painter, {Clip clipBehavior = Clip.hardEdge, ClipRectLayer? oldLayer}) → ClipRectLayer? - Clip further painting using a rectangle.
-
pushClipRRect(
bool needsCompositing, Offset offset, Rect bounds, RRect clipRRect, PaintingContextCallback painter, {Clip clipBehavior = Clip.antiAlias, ClipRRectLayer? oldLayer}) → ClipRRectLayer? - Clip further painting using a rounded rectangle.
-
pushColorFilter(
Offset offset, ColorFilter colorFilter, PaintingContextCallback painter, {ColorFilterLayer? oldLayer}) → ColorFilterLayer - Blend further painting with a color filter.
-
pushLayer(
ContainerLayer childLayer, PaintingContextCallback painter, Offset offset, {Rect? childPaintBounds}) → void -
Appends the given layer to the recording, and calls the
painter
callback with that layer, providing thechildPaintBounds
as the estimated paint bounds of the child. ThechildPaintBounds
can be used for debugging but have no effect on painting. -
pushOpacity(
Offset offset, int alpha, PaintingContextCallback painter, {OpacityLayer? oldLayer}) → OpacityLayer - Blend further painting with an alpha value.
-
pushTransform(
bool needsCompositing, Offset offset, Matrix4 transform, PaintingContextCallback painter, {TransformLayer? oldLayer}) → TransformLayer? - Transform further painting using a matrix.
-
setIsComplexHint(
) → void - Hints that the painting in the current layer is complex and would benefit from caching.
-
setWillChangeHint(
) → void - Hints that the painting in the current layer is likely to change next frame.
-
stopRecordingIfNeeded(
) → void - Stop recording to a canvas if recording has started.
-
toString(
) → String -
A string representation of this object.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
debugInstrumentRepaintCompositedChild(
RenderObject child, {bool debugAlsoPaintedParent = false, required PaintingContext customContext}) → void - In debug mode, repaint the given render object using a custom painting context that can record the results of the painting operation in addition to performing the regular paint of the child.
-
repaintCompositedChild(
RenderObject child, {bool debugAlsoPaintedParent = false}) → void - Repaint the given render object.
-
updateLayerProperties(
RenderObject child) → void -
Update the composited layer of
child
without repainting its children.