hypercube-0.2.4
[polytopiary:hypercube.git] / test-render.c
1 /* test rendering */
2
3 #include <stdlib.h>
4 #include <vga.h>
5 #include <vgagl.h>
6
7 #include "cube4d.h"
8 #include "dynamics.h"
9 #include "fixed.h"
10 #include "geometry.h"
11 #include "palette.h"
12 #include "r2vga.h"
13 #include "raster.h"
14 #include "render.h"
15 #include "stack.h"
16
17 int main(int argc, char **argv) {
18
19     GraphicsContext *s_phys;
20     GraphicsContext *s_virt;
21     int t, d1, d2;
22     raster rb;
23     rgb256 p;
24     c4dv v4;
25     c4d2dv v2;
26
27     if (argc != 3) exit(1);
28
29     d1 = atoi(argv[1]);
30     d2 = atoi(argv[2]);
31
32     vga_init();
33     vga_setmode(G320x200x256);
34
35     gl_setcontextvga(G320x200x256);
36     s_phys = gl_allocatecontext();
37     gl_getcontext(s_phys);
38     gl_setcontextvgavirtual(G320x200x256);
39     s_virt = gl_allocatecontext();
40     gl_getcontext(s_virt);
41
42     gl_setcontext(s_virt);
43
44     f_init();
45     cube4d_init();
46     d_init();
47
48     for (t = 0; 1; t++) {
49         r_clear(&rb, 0);
50         p_planar8bit(&p, t);
51         p_set(&p);
52         d_transform(&cube4d_vertex, t*3, &v4);
53         n_project(&v4, d1, d2, &v2);
54         n_scale2screen(&v2);
55         n_layered(&rb, &v2);
56         n_wireframe(&rb, &v2, 0);
57         r2vga(&rb, 0, 0, 320, 200, 0, 0);
58         gl_copyscreen(s_phys);
59     }
60
61     vga_getch();
62
63     gl_clearscreen(0);
64     vga_setmode(TEXT);
65     return (EXIT_SUCCESS);
66
67 }
68
69 /* EOF */
70