X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?p=dosdemo;a=blobdiff_plain;f=src%2Fdemo.h;h=b55ad4d25a6a71c2e58d078189add2ade96423cb;hp=e31d596d83a2b3453929ff2176a6670c5fb30923;hb=7deef4d5a20da09044bf7311c6ee274090cde5e6;hpb=77c1d84c258ca14e1bba06ab711426668ff24290 diff --git a/src/demo.h b/src/demo.h index e31d596..b55ad4d 100644 --- a/src/demo.h +++ b/src/demo.h @@ -1,20 +1,43 @@ #ifndef DEMO_H_ #define DEMO_H_ +#include "inttypes.h" + extern int fb_width, fb_height, fb_bpp; -extern unsigned char *fb_pixels; +extern uint16_t *fb_pixels; /* system-RAM pixel buffer: use swap_buffers(fb_pixels) */ +extern uint16_t *vmem; /* visible video memory pointer */ + extern unsigned long time_msec; +extern int mouse_x, mouse_y; +extern unsigned int mouse_bmask; + +enum { + MOUSE_BN_LEFT = 1, + MOUSE_BN_RIGHT = 2, + MOUSE_BN_MIDDLE = 4 +}; + +extern float sball_matrix[16]; int demo_init(int argc, char **argv); void demo_cleanup(void); void demo_draw(void); -void demo_keyboard(int key, int state); +void demo_keyboard(int key, int press); + /* defined in main_*.c */ void demo_quit(void); unsigned long get_msec(void); void set_palette(int idx, int r, int g, int b); +/* if pixels is 0, it defaults to fb_pixels */ +void swap_buffers(void *pixels); + +/* call each frame to get 3D viewing spherical coordinates */ +void mouse_orbit_update(float *theta, float *phi, float *dist); + +void draw_mouse_pointer(uint16_t *fb); + #endif /* DEMO_H_ */