gbdk-2020 | GameBoy Development Kit |
| download: https://git.y1.nz/archives/gbdk.tar.gz | |
| README | Files | Log | Refs | LICENSE |
gbdk-lib/examples/gb/filltest/filltest.c
1 /* Sample Program to demonstrate the drawing functions in GBDK */
2 /* Jon Fuge : https://github.com/jf1452 */
3
4 #include <gb/gb.h>
5 #include <stdint.h>
6 #include <gb/drawing.h>
7
8 void linetest(uint8_t x, uint8_t y, uint8_t w) {
9 color(DKGREY,WHITE,SOLID);
10 for (int i = -w; i <= w; i++) line(x,y,x+i,y-w);
11 for (int i = -w; i <= w; i++) line(x,y,x+w,y+i);
12 for (int i = -w; i <= w; i++) line(x,y,x+i,y+w);
13 for (int i = -w; i <= w; i++) line(x,y,x-w,y+i);
14 }
15
16 void main(void)
17 {
18 uint8_t a,b,c,d,e;
19 c=0;
20 /* Draw many characters on the screen with different fg and bg colours */
21 for (a=0; a<=15; a++) {
22 for (b=0; b<=15; b++) {
23 gotogxy(b,a);
24 d=a/4;
25 e=b/4;
26 if (d==e) {
27 d=3-e;
28 }
29 color(d,e,SOLID);
30 gprintf("%c",c++);
31 }
32 }
33
34 /* Draw two circles, a line, and two boxes in different drawing modes */
35 color(LTGREY,WHITE,SOLID);
36 circle(140,20,15,M_FILL);
37 color(BLACK,WHITE,SOLID);
38 circle(140,20,10,M_NOFILL);
39 color(DKGREY,WHITE,XOR);
40 circle(120,40,30,M_FILL);
41 line(0,0,159,143);
42 color(BLACK,LTGREY,SOLID);
43 box(0,130,40,143,M_NOFILL);
44 box(50,130,90,143,M_FILL);
45
46
47 linetest(130, 100, 20);
48
49 /* Scroll the screen using the hardest method imaginable :) */
50 for (c=0; c<=143; c++) {
51 for (b=0; b<=142; b++) {
52 for (a=0; a<=159; a++) {
53 color(getpix(a,b+1),WHITE,SOLID);
54 plot_point(a,b);
55 }
56 color(WHITE,WHITE,SOLID);
57 }
58 line(0,143,159,143);
59 }
60 }
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.