Ylva And Malin
Todo List
Global ym_gfx_create_window (u16 width, u16 height, const char *window_name, ym_gfx_window **out_window)
Find out how to do error checking here. Don't want to change the typedef to void* rather than void. As the cast is easier to have mistakes then. Potentially do a out_errc?
Global ym_gfx_gl_create_texture (const char *file_path, GLenum texture_slot, GLuint *out_texture)
Use ym_mem rather than malloc and free. Can also probably just use a stack allocator, and think of which way I free.
Global ym_gfx_load_png (const char *filename, u8 **out_image, int *out_width, int *out_height)
Move over to using the lodepng function that takes in memory
Global ym_gfx_unix_window::w
Remove this when getting sprite movement to work. Should have a better way of doing keyboard handling, this is just for hax.
Global ym_log (FILE *file, const char *type, const char *color, const char *filepath, const char *func, const int line, const char *fmt,...)

Add timing functionality.

Make proper buffered logger which does not require a lock. But rather logs to a specified location, and is later printed out by the debug thread.

Global ym_mem_region::used
This should be atomic once ym_atomic is in place.
Global ym_sprite_draw (ym_sheet_id sheet_id, ym_sprite_id sprite_id, uint layer, ym_vec2 pos)
Add layering support
Global ym_sprite_draw_extd (ym_sheet_id sheet_id, ym_sprite_id sprite_id, uint layer, ym_vec2 pos, ym_vec2 scale, float angle)
add layering support