1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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);
}
|