From 44dd6ad61dfed5d89f8abf7e8f41797501f071cc Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Wed, 25 Sep 2024 17:16:54 -0400 Subject: refactor graphics functions --- graphics.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 graphics.c (limited to 'graphics.c') diff --git a/graphics.c b/graphics.c new file mode 100644 index 0000000..c03dc8e --- /dev/null +++ b/graphics.c @@ -0,0 +1,35 @@ +#include "balls.h" + +void +drawbg(Image *walls, Image *bg) { + draw(screen, screen->r, walls, nil, ZP); + draw(screen, screen->r, bg, nil, ZP); + flushimage(display, Refnone); +} + +Image * +alloccircle(int fg, int bg) { + Image *m, *fill; + + m = allocimage(display, Rect(0, 0, 2*RADIUS, 2*RADIUS), RGBA32, 0, bg); + if (m == nil) + return nil; + + fill = allocimage(display, Rect(0, 0, 1, 1), RGBA32, 1, fg); + if (fill == nil) { + free(m); + return nil; + } + + fillellipse(m, Pt(RADIUS, RADIUS), RADIUS, RADIUS, fill, ZP); + freeimage(fill); + return m; +} + +void +drawcircle(Image *m, Point pos) { + Rectangle r; + + r = Rpt(subpt(pos, Pt(RADIUS, RADIUS)), addpt(pos, Pt(RADIUS, RADIUS))); + draw(screen, r, m, nil, ZP); +} -- cgit v1.2.3