diff options
Diffstat (limited to 'sily.h')
-rw-r--r-- | sily.h | 65 |
1 files changed, 65 insertions, 0 deletions
@@ -0,0 +1,65 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* sily.h :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: kdx <kdx @student.42angouleme.fr +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/10/07 04:32:07 by kdx #+# #+# */ +/* Updated: 2022/10/14 03:26:49 by kdx ### ########.fr */ +/* */ +/* ************************************************************************** */ + +/* 102761446 */ + +#ifndef SILY_H +# define SILY_H +# include "minilibx/mlx.h" +# include "libft/libft.h" +# include <stdbool.h> +# 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 |