#ifndef MGL_WINDOW_H #define MGL_WINDOW_H #include "system/vec.h" typedef struct mgl_window mgl_window; typedef struct { void *userdata; void (*draw)(mgl_window *window, void *userdata); } mgl_window_callback; struct mgl_window { unsigned long window; mgl_window_callback callback; mgl_vec2i size; mgl_vec2i cursor_position; }; int mgl_window_create(mgl_window *self, const char *title, int width, int height, mgl_window_callback *callback); int mgl_window_create_with_params(mgl_window *self, const char *title, int width, int height, unsigned long parent_window, mgl_window_callback *callback); void mgl_window_deinit(mgl_window *self); void mgl_window_events_poll(mgl_window *self); void mgl_window_draw(mgl_window *self); #endif /* MGL_WINDOW_H */