#define DEMO_H_
#include "inttypes.h"
+#include "gfx.h"
+#include "cfgopt.h"
-extern int fb_width, fb_height, fb_bpp;
-extern uint16_t *fb_pixels; /* system-RAM pixel buffer: use swap_buffers(fb_pixels) */
-extern uint16_t *vmem; /* visible video memory pointer */
+/*extern int fb_width, fb_height, fb_bpp;*/
+#define FB_WIDTH 320
+#define FB_HEIGHT 240
+#define FB_ASPECT ((float)FB_WIDTH / (float)FB_HEIGHT)
+#define FB_BPP 16
+extern uint16_t *fb_pixels;
+extern uint16_t *vmem;
extern unsigned long time_msec;
extern int mouse_x, mouse_y;
/* special keys */
enum {
+ KB_BACKSP = 8,
KB_ESC = 27,
- KB_BACKSP = 127,
+ KB_DEL = 127,
KB_NUM_0, KB_NUM_1, KB_NUM_2, KB_NUM_3, KB_NUM_4,
KB_NUM_5, KB_NUM_6, KB_NUM_7, KB_NUM_8, KB_NUM_9,
KB_HELP, KB_PRINT, KB_SYSRQ, KB_BREAK
};
+#ifndef KB_ANY
+#define KB_ANY (-1)
+#define KB_ALT (-2)
+#define KB_CTRL (-3)
+#define KB_SHIFT (-4)
+#endif
+
+
extern float sball_matrix[16];
int demo_init(int argc, char **argv);
void demo_cleanup(void);
+int demo_resizefb(int width, int height, int bpp);
+
void demo_draw(void);
void demo_post_draw(void *pixels);
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);
+#define swap_buffers(pix) blit_frame(pix ? pix : fb_pixels, opt.vsync)
void change_screen(int idx);
/* helper to print text with cs_font */
void cs_puts_font(cs_font_func csfont, int sz, void *fb, int x, int y, const char *str);
-#define cs_dputs(fb, x, y, idx) cs_puts_font(cs_dbgfont, 9, fb, x, y, idx)
-#define cs_cputs(fb, x, y, idx) cs_puts_font(cs_confont, 6, fb, x, y, idx)
+#define cs_dputs(fb, x, y, str) cs_puts_font(cs_dbgfont, 9, fb, x, y, str)
+#define cs_cputs(fb, x, y, str) cs_puts_font(cs_confont, 6, fb, x, y, str)
+
+#define cs_mouseptr(fb, x, y) cs_dbgfont(fb, x, y, 127 - ' ')
#endif /* DEMO_H_ */