diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main.c | 53 |
1 files changed, 16 insertions, 37 deletions
@@ -230,56 +230,35 @@ wait_vsync() { | |||
230 | int main(void) { | 230 | int 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) { |