nuclear@2: #ifndef FBLIB_H_ nuclear@2: #define FBLIB_H_ nuclear@2: nuclear@2: #ifdef __cplusplus nuclear@2: extern "C" { nuclear@2: #endif nuclear@2: nuclear@2: /* pixel formats for various bpp values nuclear@2: * 32: [R8][G8][B8][X8] or [X|B|G|R] (little endian) nuclear@2: * 24: [R8][G8][B8] nuclear@2: * 16: [R5|G6|B5] nuclear@2: * 15: [R5|G5|B5] nuclear@2: * 8: [I8] (8 bit color index) nuclear@2: */ nuclear@2: int fb_init(int width, int height, int bpp); nuclear@2: void fb_shutdown(void); nuclear@2: nuclear@2: int fb_get_width(void); nuclear@2: int fb_get_height(void); nuclear@2: int fb_get_bpp(void); nuclear@2: nuclear@2: void *fb_begin_frame(void); nuclear@2: void fb_end_frame(void); nuclear@2: nuclear@2: void fb_set_palette(int *colors); nuclear@2: void fb_set_palette_range(int start, int count, int *colors); nuclear@2: void fb_set_palette_entry(int idx, int r, int g, int b); nuclear@2: nuclear@2: /* event handling */ nuclear@2: int fb_key_state(int key); nuclear@2: int fb_mouse_state(int bn, int *x, int *y); nuclear@2: nuclear@2: void fb_keyboard_callback(void (*func)(int, int, void*), void *cls); nuclear@2: void fb_mouse_button_callback(void (*func)(int, int, int, int, void*), void *cls); nuclear@2: void fb_mouse_motion_callback(void (*func)(int, int, void*), void *cls); nuclear@2: nuclear@2: int fb_process_events(void); nuclear@2: nuclear@2: /* misc */ nuclear@2: unsigned long fb_get_time(void); nuclear@2: nuclear@2: #ifdef __cplusplus nuclear@2: } nuclear@2: #endif nuclear@2: nuclear@2: nuclear@2: #endif /* FBLIB_H_ */