diff options
Diffstat (limited to 'src/renderer.c')
-rw-r--r-- | src/renderer.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/renderer.c b/src/renderer.c index 076d698..4aa583d 100644 --- a/src/renderer.c +++ b/src/renderer.c | |||
@@ -46,6 +46,32 @@ draw_pixel(u16 x, u16 y, u8 color) { | |||
46 | 46 | ||
47 | IWRAM_CODE | 47 | IWRAM_CODE |
48 | void | 48 | void |
49 | draw_rect(int x0, int y0, int x1, int y1, u8 clr) { | ||
50 | if (x0 > x1) { | ||
51 | int tmp = x0; | ||
52 | x0 = x1; | ||
53 | x1 = tmp; | ||
54 | } | ||
55 | if (y0 > y1) { | ||
56 | int tmp = y0; | ||
57 | y0 = y1; | ||
58 | y1 = tmp; | ||
59 | } | ||
60 | int dx = x1 - x0; | ||
61 | int dy = y1 - y0; | ||
62 | // TODO: SLOW should be vectorized. | ||
63 | for (int i = 0; i <= dx; ++i) { | ||
64 | draw_pixel(x0 + i, y0, clr); | ||
65 | draw_pixel(x0 + i, y1, clr); | ||
66 | } | ||
67 | for (int i = 0; i <= dy; ++i) { | ||
68 | draw_pixel(x0, y0 + i, clr); | ||
69 | draw_pixel(x1, y0 + i, clr); | ||
70 | } | ||
71 | } | ||
72 | |||
73 | IWRAM_CODE | ||
74 | void | ||
49 | draw_tile(u16 x, u16 y, Tile *tile, bool merge) { | 75 | draw_tile(u16 x, u16 y, Tile *tile, bool merge) { |
50 | BOUNDCHECK_SCREEN(x, y); | 76 | BOUNDCHECK_SCREEN(x, y); |
51 | 77 | ||