Module: graphics.canvas
Source: ./graphics/canvas.reef
Overview
graphics/canvas.reef - Stateful drawing context Part of reef-stdlib graphics module
Canvas provides a high-level, stateful API for 2D drawing. It wraps a Surface and maintains a stack of drawing states (transforms, clips, styles) that can be saved and restored.
Types
CanvasState
Fields:
| Name | Type |
|---|---|
current_transform |
transform.Transform |
clip_path |
path.Path |
clip_enabled |
bool |
fill_paint |
paint.Paint |
stroke_paint |
paint.Paint |
stroke_style |
paint.StrokeStyle |
global_alpha |
float |
fill_rule |
paint.FillRule |
Canvas
Fields:
| Name | Type |
|---|---|
surf |
surface.Surface |
state_stack |
[CanvasState] |
stack_depth |
int |
current_state |
CanvasState |
coords |
core.CoordinateSystem |
Functions
fn coords_top_left(): core.CoordinateSystem
fn coords_bottom_left(): core.CoordinateSystem
fn default_state(): CanvasState
Create a default canvas state
fn clone_state(s: CanvasState): CanvasState
Clone a canvas state
fn new_canvas(s: surface.Surface): Canvas
fn new_canvas_with_coords(s: surface.Surface, coords: core.CoordinateSystem): Canvas
fn canvas_width(c: Canvas): int
fn canvas_height(c: Canvas): int
fn canvas_surface(c: Canvas): surface.Surface
fn get_transform(c: Canvas): transform.Transform
Procedures
proc save(c: Canvas)
proc restore(c: Canvas)
proc reset(c: Canvas)
proc translate(c: Canvas, tx: float, ty: float)
proc scale(c: Canvas, sx: float, sy: float)
proc rotate(c: Canvas, radians: float)
proc canvas_transform(c: Canvas, t: transform.Transform)
proc set_transform(c: Canvas, t: transform.Transform)
proc reset_transform(c: Canvas)
proc set_fill_color(c: Canvas, color: core.Color)
proc set_fill_paint(c: Canvas, p: paint.Paint)
proc set_stroke_color(c: Canvas, color: core.Color)
proc set_stroke_width(c: Canvas, width: float)
proc set_stroke_style(c: Canvas, style: paint.StrokeStyle)
proc set_line_cap(c: Canvas, cap: paint.LineCap)
proc set_line_join(c: Canvas, join: paint.LineJoin)
proc set_global_alpha(c: Canvas, alpha: float)
proc set_fill_rule(c: Canvas, rule: paint.FillRule)
proc clear(c: Canvas, color: core.Color)
proc fill(c: Canvas, p: path.Path)
proc stroke(c: Canvas, p: path.Path)
proc fill_and_stroke(c: Canvas, p: path.Path)
proc fill_rect(c: Canvas, r: core.Rect)
proc stroke_rect(c: Canvas, r: core.Rect)
proc fill_rounded_rect(c: Canvas, r: core.Rect, radius: float)
proc stroke_rounded_rect(c: Canvas, r: core.Rect, radius: float)
proc fill_circle(c: Canvas, cx: float, cy: float, radius: float)
proc stroke_circle(c: Canvas, cx: float, cy: float, radius: float)
proc fill_ellipse(c: Canvas, cx: float, cy: float, rx: float, ry: float)
proc stroke_ellipse(c: Canvas, cx: float, cy: float, rx: float, ry: float)
proc draw_line(c: Canvas, x1: float, y1: float, x2: float, y2: float)
proc draw_polyline(c: Canvas, points: [core.Point])
proc draw_image(c: Canvas, img: image.Image, x: float, y: float)
proc draw_image_scaled(c: Canvas, img: image.Image, dst: core.Rect)
proc draw_image_rect(c: Canvas, img: image.Image, src: core.Rect, dst: core.Rect)
proc clip(c: Canvas, p: path.Path)
proc clip_rect(c: Canvas, r: core.Rect)
proc reset_clip(c: Canvas)
proc begin_frame(c: Canvas)
proc end_frame(c: Canvas)
proc flush(c: Canvas)
Generated by reefc doc