/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* sily.h :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: kdx # define MIN_DT 33 typedef struct s_game t_game; typedef struct s_sily t_sily; struct s_sily { void *ctx; void *window; int width; int height; bool quit; void (*update)(t_sily *); void (*draw)(t_sily *); t_u64 tick; t_u64 next_time; t_u64 prev_move_events; t_u64 move_events; int input[4]; int input_queue[4]; t_game *game; }; t_err sily_init(t_sily *s, int width, int height, char *title); void sily_deinit(t_sily *s); void sily_loop(t_sily *s, void (*update)(t_sily *), void (*draw)(t_sily *)); t_u64 sily_get_time(void); void sily_sleep(t_u64 millis); enum { K_LEFT = 0, K_RIGHT = 1, K_DOWN = 2, K_UP = 3, }; void sily_input_update(t_sily *sily); int sily_input_press_ev(int key, t_sily *sily); int sily_input_release_ev(int key, t_sily *sily); void sily_input_draw(t_sily *sily); void sily_clear(t_sily *sily); int sily_expose_hook(t_sily *sily); void sily_erase_text(t_sily *silly, char *str, int x, int y); void sily_draw_text(t_sily *sily, char *str, int x, int y); #endif