#pragma once #include "pxl8_gfx.h" #include "pxl8_types.h" #include "pxl8_ui.h" typedef struct pxl8_script pxl8_script; typedef struct pxl8_script_repl pxl8_script_repl; typedef struct pxl8_script_repl_command pxl8_script_repl_command; #ifdef __cplusplus extern "C" { #endif pxl8_script* pxl8_script_create(void); void pxl8_script_destroy(pxl8_script* script); const char* pxl8_script_get_last_error(pxl8_script* script); void pxl8_script_set_cart_path(pxl8_script* script, const char* cart_path, const char* original_cwd); void pxl8_script_set_gfx(pxl8_script* script, pxl8_gfx* gfx); void pxl8_script_set_input(pxl8_script* script, pxl8_input_state* input); void pxl8_script_set_ui(pxl8_script* script, pxl8_ui* ui); pxl8_result pxl8_script_call_function(pxl8_script* script, const char* name); pxl8_result pxl8_script_call_function_f32(pxl8_script* script, const char* name, f32 arg); pxl8_result pxl8_script_eval(pxl8_script* script, const char* code); pxl8_result pxl8_script_eval_repl(pxl8_script* script, const char* code); pxl8_result pxl8_script_load_module(pxl8_script* script, const char* module_name); pxl8_result pxl8_script_run_fennel_file(pxl8_script* script, const char* filename); pxl8_result pxl8_script_run_file(pxl8_script* script, const char* filename); pxl8_result pxl8_script_load_main(pxl8_script* script, const char* path); bool pxl8_script_check_reload(pxl8_script* script); pxl8_script_repl* pxl8_script_repl_create(void); void pxl8_script_repl_init(pxl8_script_repl* repl); void pxl8_script_repl_shutdown(pxl8_script_repl* repl); void pxl8_script_repl_destroy(pxl8_script_repl* repl); pxl8_script_repl_command* pxl8_script_repl_pop_command(pxl8_script_repl* repl); const char* pxl8_script_repl_command_buffer(pxl8_script_repl_command* cmd); void pxl8_script_repl_eval_complete(pxl8_script_repl* repl); void pxl8_script_repl_clear_accumulator(pxl8_script_repl* repl); bool pxl8_script_repl_should_quit(pxl8_script_repl* repl); bool pxl8_script_is_incomplete_input(pxl8_script* script); #ifdef __cplusplus } #endif