nuclear@0: #ifndef FBEE_H_ nuclear@0: #define FBEE_H_ nuclear@0: nuclear@0: enum { nuclear@0: FBEE_EV_DRAW, nuclear@0: FBEE_EV_RESIZE, nuclear@0: FBEE_EV_KEY, nuclear@0: FBEE_EV_BUTTON, nuclear@0: FBEE_EV_MOTION, nuclear@0: FBEE_EV_IDLE, nuclear@0: nuclear@0: NUM_FBEE_EVENTS nuclear@0: }; nuclear@0: nuclear@0: /* callback prototypes: nuclear@0: * nuclear@0: * void draw_callback(void *cls); nuclear@0: * void resize_callback(int x, int y, void *cls); nuclear@0: * void keyb_callback(int key, int state, void *cls); nuclear@0: * void button_callback(int bn, int state, void *cls); nuclear@0: * void motion_callback(int x, int y, void *cls); nuclear@0: * void idle_callback(void *cls); nuclear@0: */ nuclear@0: nuclear@0: #ifdef __cplusplus nuclear@0: extern "C" { nuclear@0: #endif nuclear@0: nuclear@0: int fbee_init(void); nuclear@0: void fbee_destroy(void); nuclear@0: nuclear@0: int fbee_set_video_mode(int width, int height, int bpp, unsigned int flags); nuclear@0: int fbee_get_video_mode(int *width, int *height, int *bpp); nuclear@0: nuclear@0: /* register an event callback */ nuclear@0: void fbee_event_func(int evtype, void (*func)(), void *cls); nuclear@0: nuclear@0: /* run a single iteration of the event loop and return */ nuclear@0: int fbee_process_events(void); nuclear@0: nuclear@0: /* start event processing (never returns) */ nuclear@0: void fbee_evloop(void); nuclear@0: nuclear@0: /* signal fbee to redraw the window */ nuclear@0: void fbee_redisplay(void); nuclear@0: nuclear@0: /* get a pointer to the framebuffer */ nuclear@0: void *fbee_framebuffer(void); nuclear@0: nuclear@0: /* copy an image to the framebuffer (size and format must match) */ nuclear@0: void fbee_update(void *img); nuclear@0: nuclear@0: #ifdef __cplusplus nuclear@0: } nuclear@0: #endif nuclear@0: nuclear@0: #endif /* FBEE_H_ */