#pragma once #include "pxl8_types.h" typedef struct pxl8_atlas pxl8_atlas; typedef struct pxl8_game pxl8_game; typedef struct pxl8_hal { void* (*create)(pxl8_color_mode mode, pxl8_resolution res, const char* title, i32 win_w, i32 win_h); void (*destroy)(void* platform_data); u64 (*get_ticks)(void); void (*present)(void* platform_data); void (*set_relative_mouse_mode)(void* platform_data, bool enabled); void (*upload_atlas)(void* platform_data, const pxl8_atlas* atlas, const u32* palette, pxl8_color_mode mode); void (*upload_framebuffer)(void* platform_data, const u8* fb, i32 w, i32 h, const u32* palette, pxl8_color_mode mode); } pxl8_hal;