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