diff options
-rw-r--r-- | src/main.c | 47 |
1 files changed, 33 insertions, 14 deletions
@@ -71,6 +71,10 @@ rgb15(u32 red, u32 green, u32 blue ) { | |||
71 | return (blue << 10) | (green << 5) | red; | 71 | return (blue << 10) | (green << 5) | red; |
72 | } | 72 | } |
73 | 73 | ||
74 | #define COLOR_RED rgb15(31, 0, 12) | ||
75 | #define COLOR_BLUE rgb15(2, 15, 30) | ||
76 | #define COLOR_CYAN rgb15(0, 30, 30) | ||
77 | |||
74 | // Using bd-font, an 8x8 bitmap font. | 78 | // Using bd-font, an 8x8 bitmap font. |
75 | static inline void | 79 | static inline void |
76 | put_char(int x, int y, Color clr, u8 chr) { | 80 | put_char(int x, int y, Color clr, u8 chr) { |
@@ -175,23 +179,38 @@ int main(void) { | |||
175 | set_display_mode(DISP_MODE_3 | DISP_BG2); | 179 | set_display_mode(DISP_MODE_3 | DISP_BG2); |
176 | 180 | ||
177 | 181 | ||
178 | put_text(0, 0, rgb15(18, 0, 0), "\n\n\n\n"); | 182 | put_text(8, 8, COLOR_RED, "Testing Bresenham's algorithm"); |
179 | |||
180 | draw_line(0, 0, 3, 8,rgb15(0, 30, 0)); | ||
181 | draw_line(8, 0, 16, 8,rgb15(0, 0, 30)); | ||
182 | 183 | ||
183 | draw_line(0, 0, 8, 3,rgb15(0, 0, 30)); | 184 | for (size_t i = 70; i <= SCREEN_WIDTH - 70; i += 5) { |
184 | draw_line(8, 0, 16, 8,rgb15(0, 0, 30)); | 185 | int x0 = i; |
185 | 186 | int y0 = 30; | |
186 | // Testing a "rectangle" | 187 | int x1 = SCREEN_WIDTH - i; |
187 | draw_line(0, 0, 0, 7,rgb15(0, 0, 30)); | 188 | int y1 = SCREEN_HEIGHT - 30; |
188 | draw_line(0, 0, 7, 0,rgb15(0, 30, 30)); | 189 | draw_line(x0, y0, x1, y1, COLOR_BLUE); |
189 | draw_line(0, 7, 7, 7,rgb15(30, 0, 0)); | 190 | } |
190 | draw_line(7, 0, 7, 7,rgb15(0, 30, 0)); | 191 | for (size_t i = 30; i <= SCREEN_HEIGHT - 30; i += 5) { |
192 | int x0 = 70; | ||
193 | int y0 = i; | ||
194 | int x1 = SCREEN_WIDTH - 70; | ||
195 | int y1 = SCREEN_HEIGHT - i; | ||
196 | draw_line(x0, y0, x1, y1, COLOR_BLUE); | ||
197 | } | ||
191 | 198 | ||
192 | draw_line(8, 7, 15, 0,rgb15(0, 0, 30)); | 199 | for (size_t i = 70; i <= SCREEN_WIDTH - 70; i += 10) { |
200 | int x0 = i; | ||
201 | int y0 = 30; | ||
202 | int x1 = SCREEN_WIDTH - i; | ||
203 | int y1 = SCREEN_HEIGHT - 30; | ||
204 | draw_line(x0, y0, x1, y1, COLOR_CYAN); | ||
205 | } | ||
206 | for (size_t i = 30; i <= SCREEN_HEIGHT - 30; i += 10) { | ||
207 | int x0 = 70; | ||
208 | int y0 = i; | ||
209 | int x1 = SCREEN_WIDTH - 70; | ||
210 | int y1 = SCREEN_HEIGHT - i; | ||
211 | draw_line(x0, y0, x1, y1, COLOR_CYAN); | ||
212 | } | ||
193 | 213 | ||
194 | char scanline_counter[16]; | ||
195 | while(true) { | 214 | while(true) { |
196 | wait_vsync(); | 215 | wait_vsync(); |
197 | }; | 216 | }; |