15# define LODEPNG_NO_COMPILE_ALLOCATORS
20# if defined(__APPLE__)
21# define GL_SILENCE_DEPRECATION
23# include <GLFW/glfw3.h>
27# if defined(__linux__)
28# include <linux/limits.h>
36# ifndef MLX_SWAP_INTERVAL
37# define MLX_SWAP_INTERVAL 1
39# ifndef MLX_BATCH_SIZE
40# define MLX_BATCH_SIZE 12000
42# define BPP sizeof(int32_t)
43# define GETLINE_BUFF 1280
44# define MLX_MAX_STRING 512
45# define MLX_ASSERT(cond, msg) assert(cond && msg);
46# define MLX_NONNULL(var) MLX_ASSERT(var, "Value can't be null");
248bool mlx_getline(
char** out,
size_t* out_size, FILE* file);
enum mlx_errno mlx_errno_t
void(* mlx_closefunc)(void *param)
void(* mlx_mousefunc)(mouse_key_t button, action_t action, modifier_key_t mods, void *param)
void(* mlx_resizefunc)(int32_t width, int32_t height, void *param)
void(* mlx_scrollfunc)(double xdelta, double ydelta, void *param)
void(* mlx_cursorfunc)(double xpos, double ypos, void *param)
void(* mlx_keyfunc)(mlx_key_data_t keydata, void *param)
mlx_list_t * mlx_lstlast(mlx_list_t *lst)
struct mlx_close mlx_close_t
void mlx_flush_batch(mlx_ctx_t *mlx)
void mlx_draw_instance(mlx_ctx_t *mlx, mlx_image_t *img, mlx_instance_t *instance)
struct mlx_cursor mlx_cursor_t
void mlx_lstadd_front(mlx_list_t **lst, mlx_list_t *new)
void mlx_sort_renderqueue(mlx_list_t **lst)
bool mlx_error(mlx_errno_t val)
struct mlx_image_ctx mlx_image_ctx_t
int32_t mlx_atoi_base(const char *str, int32_t base)
struct mlx_resize mlx_resize_t
struct mlx_srcoll mlx_scroll_t
mlx_list_t * mlx_lstremove(mlx_list_t **lst, void *value, bool(*comp)(void *, void *))
bool mlx_equal_image(void *lstcontent, void *value)
void mlx_lstclear(mlx_list_t **lst, void(*del)(void *))
int32_t mlx_lstsize(mlx_list_t *lst)
void mlx_draw_pixel(uint8_t *pixel, uint32_t color)
bool mlx_freen(int32_t count,...)
struct mlx_mouse mlx_mouse_t
bool mlx_equal_inst(void *lstcontent, void *value)
uint64_t mlx_fnv_hash(char *str, size_t len)
struct draw_queue draw_queue_t
mlx_list_t * mlx_lstnew(void *content)
uint32_t mlx_rgba_to_mono(uint32_t color)
void mlx_update_matrix(const mlx_t *mlx)
struct mlx_hook mlx_hook_t
void mlx_lstadd_back(mlx_list_t **lst, mlx_list_t *new)
struct mlx_list mlx_list_t
bool mlx_getline(char **out, size_t *out_size, FILE *file)
typedef void(APIENTRYP PFNGLCULLFACEPROC)(GLenum mode)
int32_t bound_textures[16]
mlx_list_t * render_queue
vertex_t batch_vertices[MLX_BATCH_SIZE]
size_t instances_capacity