#pragma once #include #include "pxl8_bytes.h" #include "pxl8_types.h" #ifdef __cplusplus extern "C" { #endif typedef bool (*pxl8_io_dir_callback)(void* userdata, const char* dir_path, const char* name); pxl8_result pxl8_io_create_directory(const char* path); bool pxl8_io_enumerate_directory(const char* path, pxl8_io_dir_callback callback, void* userdata); bool pxl8_io_file_exists(const char* path); void pxl8_io_free_binary_data(u8* data); char* pxl8_io_get_cwd(void); f64 pxl8_io_get_file_modified_time(const char* path); usize pxl8_io_get_file_size(const char* path); char* pxl8_io_get_pref_path(const char* org, const char* app); char* pxl8_io_get_real_path(const char* path); bool pxl8_io_is_directory(const char* path); bool pxl8_io_set_cwd(const char* path); void pxl8_io_set_executable(const char* path); pxl8_result pxl8_io_read_binary_file(const char* path, u8** data, usize* size); pxl8_result pxl8_io_read_file(const char* path, char** content, usize* size); pxl8_result pxl8_io_write_binary_file(const char* path, const u8* data, usize size); pxl8_result pxl8_io_write_file(const char* path, const char* content, usize size); bool pxl8_key_down(const pxl8_input_state* input, const char* key_name); bool pxl8_key_pressed(const pxl8_input_state* input, const char* key_name); bool pxl8_key_released(const pxl8_input_state* input, const char* key_name); void pxl8_set_key_down(pxl8_input_state* input, const char* key_name, bool down); i32 pxl8_mouse_dx(const pxl8_input_state* input); i32 pxl8_mouse_dy(const pxl8_input_state* input); bool pxl8_mouse_pressed(const pxl8_input_state* input, i32 button); bool pxl8_mouse_released(const pxl8_input_state* input, i32 button); i32 pxl8_mouse_wheel_x(const pxl8_input_state* input); i32 pxl8_mouse_wheel_y(const pxl8_input_state* input); i32 pxl8_mouse_x(const pxl8_input_state* input); i32 pxl8_mouse_y(const pxl8_input_state* input); #ifdef __cplusplus } #endif