fixed 16bpp offsets in csprite generator (hardcoded for now)
[dosdemo] / src / demo.h
1 #ifndef DEMO_H_
2 #define DEMO_H_
3
4 #include "inttypes.h"
5
6 extern int fb_width, fb_height, fb_bpp;
7 extern uint16_t *fb_pixels;     /* system-RAM pixel buffer: use swap_buffers(fb_pixels) */
8 extern uint16_t *vmem;          /* visible video memory pointer */
9
10 extern unsigned long time_msec;
11 extern int mouse_x, mouse_y;
12 extern unsigned int mouse_bmask;
13
14 enum {
15         MOUSE_BN_LEFT           = 1,
16         MOUSE_BN_RIGHT          = 2,
17         MOUSE_BN_MIDDLE         = 4
18 };
19
20 extern float sball_matrix[16];
21
22 int demo_init(int argc, char **argv);
23 void demo_cleanup(void);
24
25 void demo_draw(void);
26
27 void demo_keyboard(int key, int press);
28
29
30 /* defined in main_*.c */
31 void demo_quit(void);
32 unsigned long get_msec(void);
33 void set_palette(int idx, int r, int g, int b);
34
35 /* if pixels is 0, it defaults to fb_pixels */
36 void swap_buffers(void *pixels);
37
38 /* call each frame to get 3D viewing spherical coordinates */
39 void mouse_orbit_update(float *theta, float *phi, float *dist);
40
41 void draw_mouse_pointer(uint16_t *fb);
42
43 /* compiled sprites available */
44 void cs_font(void *fb, int x, int y, int idx);
45
46 /* helper to print text with cs_font */
47 void cs_puts(void *fb, int x, int y, const char *str);
48
49 #endif  /* DEMO_H_ */