9 static void destroy(void);
10 static void start(long trans_time);
11 static void draw(void);
12 static void draw_cube(void);
14 static struct screen scr = {
22 static float cam_theta, cam_phi;
23 static float cam_dist = 5;
25 struct screen *infcubes_screen(void)
36 static void destroy(void)
40 static void start(long trans_time)
42 g3d_matrix_mode(G3D_PROJECTION);
44 g3d_perspective(50.0, 1.3333333, 0.5, 100.0);
46 g3d_enable(G3D_LIGHTING);
47 g3d_enable(G3D_LIGHT0);
50 static void update(void)
52 mouse_orbit_update(&cam_theta, &cam_phi, &cam_dist);
55 static void draw(void)
59 g3d_matrix_mode(G3D_MODELVIEW);
61 g3d_translate(0, 0, -cam_dist);
62 g3d_rotate(cam_phi, 1, 0, 0);
63 g3d_rotate(cam_theta, 0, 1, 0);
65 g3d_mult_matrix(sball_matrix);
68 memset(fb_pixels, 0, fb_width * fb_height * 2);
72 swap_buffers(fb_pixels);
75 static void draw_cube(void)
79 g3d_vertex(-1, -1, 1);
85 g3d_vertex(1, -1, -1);
89 g3d_vertex(1, -1, -1);
90 g3d_vertex(-1, -1, -1);
91 g3d_vertex(-1, 1, -1);
94 g3d_vertex(-1, -1, -1);
95 g3d_vertex(-1, -1, 1);
97 g3d_vertex(-1, 1, -1);
101 g3d_vertex(1, 1, -1);
102 g3d_vertex(-1, 1, -1);
103 g3d_normal(0, -1, 0);
104 g3d_vertex(1, -1, 1);
105 g3d_vertex(-1, -1, 1);
106 g3d_vertex(-1, -1, -1);
107 g3d_vertex(1, -1, -1);