summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBad Diode <bd@badd10de.dev>2021-04-15 16:49:58 +0200
committerBad Diode <bd@badd10de.dev>2021-04-15 16:49:58 +0200
commit0e26c6f11c2608c7f1620b105df243e4a5a33e85 (patch)
tree036456769b475bb7ee92ec669c66fe04ce74f1af
parentc35afed3cf717f1c473fb93edc3f052d529052f3 (diff)
downloadgba-experiments-0e26c6f11c2608c7f1620b105df243e4a5a33e85.tar.gz
gba-experiments-0e26c6f11c2608c7f1620b105df243e4a5a33e85.zip
Try drawing different patterns
-rw-r--r--src/main.c53
1 files changed, 16 insertions, 37 deletions
diff --git a/src/main.c b/src/main.c
index e8a5ea0..b8731b8 100644
--- a/src/main.c
+++ b/src/main.c
@@ -230,56 +230,35 @@ wait_vsync() {
230int main(void) { 230int main(void) {
231 set_display_mode(DISP_MODE_3 | DISP_BG2); 231 set_display_mode(DISP_MODE_3 | DISP_BG2);
232 232
233 // Rectangle drawing testing. 233 // Draw a grid pattern.
234 Color clr = COLOR_WHITE; 234 for (size_t j = 30; j < SCREEN_HEIGHT - 30; j += 8) {
235 for (size_t j = 0; j < SCREEN_HEIGHT; j += 8) { 235 for (size_t i = 30; i < 50; i += 8) {
236 clr = clr == COLOR_WHITE ? COLOR_BLACK : COLOR_WHITE; 236 draw_rect(i, j, 0 + i + 8, j + 8, COLOR_RED);
237 for (size_t i = 0; i < SCREEN_WIDTH; i += 8) {
238 clr = clr == COLOR_WHITE ? COLOR_BLACK : COLOR_WHITE;
239 draw_fill_rect(i, j, 0 + i + 7, j + 7, clr);
240 }
241 }
242 clr = COLOR_GREY;
243 for (size_t j = 8; j < SCREEN_HEIGHT - 8; j += 8) {
244 for (size_t i = 8; i < SCREEN_WIDTH - 8; i += 8) {
245 draw_rect(i, j, 0 + i + 8, j + 8, clr);
246 } 237 }
247 } 238 }
248 239
249 // Bresenham's testing 240 // Draw the text line.
250 for (size_t i = 0; i < SCREEN_WIDTH; i += 8) { 241 for (size_t i = 0; i < SCREEN_WIDTH; i += 8) {
251 draw_fill_rect(i, 7, 0 + i + 7, 16, COLOR_RED); 242 draw_fill_rect(i, 7, 0 + i + 7, 16, COLOR_RED);
252 } 243 }
253 put_text(8, 8, COLOR_BLACK, "Lines and rectangles"); 244 put_text(8, 8, COLOR_BLACK, "Testing other patterns");
254 245
246 // Test line drawings.
255 draw_fill_rect(69, 29, SCREEN_WIDTH - 69, SCREEN_HEIGHT - 29, COLOR_BLACK); 247 draw_fill_rect(69, 29, SCREEN_WIDTH - 69, SCREEN_HEIGHT - 29, COLOR_BLACK);
256 for (size_t i = 70; i <= SCREEN_WIDTH - 70; i += 5) { 248 int step = 10;
257 int x0 = i; 249 for (size_t k = 0; k < (SCREEN_WIDTH - 70 - 70) / step; k++) {
258 int y0 = 30;
259 int x1 = SCREEN_WIDTH - i;
260 int y1 = SCREEN_HEIGHT - 30;
261 draw_line(x0, y0, x1, y1, COLOR_BLUE);
262 }
263 for (size_t i = 30; i <= SCREEN_HEIGHT - 30; i += 5) {
264 int x0 = 70; 250 int x0 = 70;
265 int y0 = i; 251 int y0 = 30 + k * step;
266 int x1 = SCREEN_WIDTH - 70; 252 int x1 = x0 + k * step + step;
267 int y1 = SCREEN_HEIGHT - i; 253 int y1 = SCREEN_HEIGHT - 30;
268 draw_line(x0, y0, x1, y1, COLOR_BLUE); 254 draw_line(x0, y0, x1, y1, COLOR_BLUE);
269 } 255 }
270 for (size_t i = 70; i <= SCREEN_WIDTH - 70; i += 10) { 256 for (size_t k = 0; k < (SCREEN_WIDTH - 70 - 70) / step; k++) {
271 int x0 = i; 257 int x0 = 70 + k * step;
272 int y0 = 30; 258 int y0 = 30;
273 int x1 = SCREEN_WIDTH - i;
274 int y1 = SCREEN_HEIGHT - 30;
275 draw_line(x0, y0, x1, y1, COLOR_CYAN);
276 }
277 for (size_t i = 30; i <= SCREEN_HEIGHT - 30; i += 10) {
278 int x0 = 70;
279 int y0 = i;
280 int x1 = SCREEN_WIDTH - 70; 259 int x1 = SCREEN_WIDTH - 70;
281 int y1 = SCREEN_HEIGHT - i; 260 int y1 = y0 + k * step + step;
282 draw_line(x0, y0, x1, y1, COLOR_CYAN); 261 draw_line(x0, y0, x1, y1, COLOR_RED);
283 } 262 }
284 263
285 while(true) { 264 while(true) {