TUIX v0.5Beta
Canvas Widget
Canvas is a free-draw surface for pixel-level terminal graphics. It supports single-pixel writes, lines, rectangles, circles, text, raw buffer insertion, and cached sprites.
Creating A Canvas
uid = objects.create_object(builders.CANVAS, 'Main', 0.8, 0.6, 0.2, 0.1)
canvas = objects.get_object_by_uid(uid)Drawing API
| Function | Description |
|---|---|
| tuix_canvas_set_pixel(obj, x, y, sym, fgr, fgg, fgb, bgr, bgg, bgb) | Writes one styled pixel. |
| tuix_canvas_draw_line(obj, x0, y0, x1, y1, sym, fgr, fgg, fgb, bgr, bgg, bgb) | Draws a line. |
| tuix_canvas_draw_rect(obj, x, y, w, h, sym, filled, fgr, fgg, fgb, bgr, bgg, bgb) | Draws an outline or filled rectangle. |
| tuix_canvas_draw_circle(obj, cx, cy, radius, sym, filled, fgr, fgg, fgb, bgr, bgg, bgb) | Draws an outline or filled circle. |
| tuix_canvas_draw_text(obj, x, y, text, fgr, fgg, fgb, bgr, bgg, bgb) | Draws text at a canvas coordinate. |
| tuix_canvas_draw_sprite / cache_sprite / draw_cached_sprite | Draws raw or cached native sprite pixels. |
Example
objects.tuix_canvas_draw_rect(canvas, 2, 2, 20, 8, '#', 0, 120, 220, 255, 0, 0, 0)
objects.tuix_canvas_draw_line(canvas, 2, 2, 21, 9, '/', 255, 200, 80, 0, 0, 0)
objects.tuix_canvas_draw_text(canvas, 4, 4, 'TUIX', 255, 255, 255, 0, 0, 0)
engine.main_loop()Inspection
Use buffers.get_buffer_snapshot(...) or buffers.get_buffer_snapshot_by_uid(...) for read-only diagnostics. Avoid older raw buffer-pointer patterns in new code.