Skip to main content

Painter

Provides the drawing operations used to render custom content.

class Painter
info

A Painter cannot be instantiated directly. It is provided to the paint handler of a Canvas.

Methods​

draw_arc​

draw_arc(center: Point, radius: Float, start_angle: Angle, end_angle: Angle) -> ()

Draws an arc around center with the given radius, spanning from start_angle to end_angle.

A positive angle will draw counter-clockwise.


draw_circle​

draw_circle(center: Point, radius: Float) -> ()

Draws a circle centered at the given center with radius.


draw_ellipse​

draw_ellipse(_ frame: Rect) -> ()

Draws an ellipse into the given frame.


draw_line​

draw_line(from: Point, to: Point) -> ()

Draws a line starting at from to to.


draw_path​

draw_path(_ path: Path) -> ()

Draws the given path.

See Path


draw_pie​

draw_pie(frame: Rect, start_angle: Angle, end_angle: Angle) -> ()

Draws a pie shape into the given frame, spanning from start_angle to end_angle.

A positive angle will draw counter-clockwise.


draw_rect​

draw_rect(_ frame: Rect) -> ()

Draws a rectangle into the given frame.


restore​

restore() -> ()

Restores a previously saved painter state. See save.


rotate​

rotate(_ angle: Angle) -> ()

Rotates the coordinate system clockwise.


save​

save() -> ()

Save the current painter state onto a stack. Use restore to rewind the painter to a previously saved state.


scale​

scale(x: Float, y: Float) -> ()

Scales the coordinate system by x & y.


set_dash_offset​

set_dash_offset(_ offset: Float) -> ()

Offsets the starting point of the dash pattern. The offset is measured in terms of the units used to specify the dash pattern.


set_dash_pattern​

set_dash_pattern(_ pattern: [Float]) -> ()

Set the dash pattern for drawing the strokes. The array must specify an even number of positive numbers. The even entries define the dashes and the odd entries the spaces. The dash pattern is specified in units of the line width, e.g. a dash of length 4 in line width 10 is 40 pixels long. Note that a zero line width is equivalent to a 1 pixel width.

To enable solid line drawing set an empty pattern.

The dashes are also subject to the cap style, see set_line_cap


set_fill​

set_fill(_ color: Color?) -> ()

Sets the fill color for drawing. Set to nil to disable drawing fills.


set_line_cap​

set_line_cap(_ cap: CapStyle) -> ()

Defines how to draw the end caps of a line. See CapStyle


set_line_join​

set_line_join(_ join: JoinStyle) -> ()

Defines how two lines are joined. See JoinStyle


set_line_width​

set_line_width(_ width: Float) -> ()

Sets the width of the stroke.


set_opacity​

set_opacity(_ value: Float) -> ()

Sets the opacity of the painter. The value should be in the range 0.0 and 1.0.


set_stroke​

set_stroke(_ color: Color?) -> ()

Sets the stroke color for drawing. Set to nil to disable drawing strokes.


shear​

shear(h: Float, v: Float) -> ()

Shears the coordinate system by h & v.


translate​

translate(x: Float, y: Float) -> ()

Translates the coordinate system by x & y.