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.

Properties

canvas Canvas
The canvas on which to paint. [...]
read-only
canvasBounds Rect
The bounds within which the painting context's canvas will record painting commands. [...]
final
hashCode int
The hash code for this object. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

addLayer(Layer layer) → void
Adds a composited leaf layer to the recording. [...]
paintChild(RenderObject child, Offset offset) → void
Paint a child RenderObject. [...]
pushClipPath(bool needsCompositing, Offset offset, Rect bounds, Path clipPath, PaintingContextCallback painter) → void
Clip further painting using a path. [...]
pushClipRect(bool needsCompositing, Offset offset, Rect clipRect, PaintingContextCallback painter) → void
Clip further painting using a rectangle. [...]
pushClipRRect(bool needsCompositing, Offset offset, Rect bounds, RRect clipRRect, PaintingContextCallback painter) → void
Clip further painting using a rounded rectangle. [...]
pushLayer(Layer childLayer, PaintingContextCallback painter, Offset offset, { Rect childPaintBounds }) → void
Appends the given layer to the recording, and calls the painter callback with that layer, providing the childPaintBounds as the paint bounds of the child. Canvas recording commands are not guaranteed to be stored outside of the paint bounds. [...]
pushOpacity(Offset offset, int alpha, PaintingContextCallback painter) → void
Blend further painting with an alpha value. [...]
pushTransform(bool needsCompositing, Offset offset, Matrix4 transform, PaintingContextCallback painter) → void
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. [...]
toString() String
Returns a string representation of this object.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited

Operators

operator ==(other) bool
The equality operator. [...]
inherited

Static Methods

repaintCompositedChild(RenderObject child, { bool debugAlsoPaintedParent: false }) → void
Repaint the given render object. [...]