hypercube-0.3.1
[polytopiary:hypercube.git] / test-palette.c
1 /* test palettes */
2
3 #include <stdlib.h>
4 #include <vga.h>
5 #include <vgagl.h>
6
7 #include "fixed.h"
8 #include "geometry.h"
9 #include "palette.h"
10 #include "r2vga.h"
11 #include "raster.h"
12 #include "stack.h"
13
14 int main(void) {
15
16     GraphicsContext *s_phys;
17     GraphicsContext *s_virt;
18     int t, b, i;
19     raster rb, tb;
20     rgb256 p;
21     vector2 v2[3];
22     stack s;
23
24     vga_init();
25     vga_setmode(G320x200x256);
26
27     gl_setcontextvga(G320x200x256);
28     s_phys = gl_allocatecontext();
29     gl_getcontext(s_phys);
30     gl_setcontextvgavirtual(G320x200x256);
31     s_virt = gl_allocatecontext();
32     gl_getcontext(s_virt);
33
34     gl_setcontext(s_virt);
35
36     f_init();
37
38     for (t = 0; 1; t++) {
39
40     p_planar8bit(&p, t);
41     p_set(&p);
42
43     r_clear(&rb, 0);
44     r_clear(&tb, 0);
45
46     for (b = 0; b < 8; b++) {
47         s_clear(&s);
48         for (i = 0; i < 3; i++) {
49             v2[i][0] = rand()%320;
50             v2[i][1] = rand()%200;
51             s_push(&s, &(v2[i]));
52         }
53         r_fillpoly(&tb, &s, 1 << b);
54         r_bitor(&rb, &tb);
55     }
56
57     r2vga(&rb, 0, 0, 320, 200, 0, 0);
58
59     gl_copyscreen(s_phys);
60
61     }
62
63     vga_getch();
64
65     gl_clearscreen(0);
66     vga_setmode(TEXT);
67     return (EXIT_SUCCESS);
68
69 }
70
71 /* EOF */
72