aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--assets/src/main.c2
-rw-r--r--src/script_sys.c34
-rw-r--r--src/shader_sys.c1
-rw-r--r--src/texture_sys.c1
4 files changed, 22 insertions, 16 deletions
diff --git a/assets/src/main.c b/assets/src/main.c
index 08856b9..68ab0f1 100644
--- a/assets/src/main.c
+++ b/assets/src/main.c
@@ -13,7 +13,7 @@ void update(void)
{
draw_text("Femme my beloved!", 4, 4, 20, BLACK);
set_active_shader(grayscale);
- draw_texture(femme, 32, 40);
+ draw_texture(femme, 32, 48);
reset_active_shader();
}
diff --git a/src/script_sys.c b/src/script_sys.c
index e9488fc..4c87327 100644
--- a/src/script_sys.c
+++ b/src/script_sys.c
@@ -18,32 +18,38 @@ static i32 current_mod = -1;
static void restart(void)
{
- state = tcc_new();
- tcc_set_output_type(state, TCC_OUTPUT_MEMORY);
+ TCCState* new_state = tcc_new();
+ tcc_set_output_type(new_state, TCC_OUTPUT_MEMORY);
- tcc_add_symbol(state, "load_new_tex", load_new_tex);
- tcc_add_symbol(state, "load_new_shader", load_new_shader);
+ tcc_add_symbol(new_state, "load_new_tex", load_new_tex);
+ tcc_add_symbol(new_state, "load_new_shader", load_new_shader);
- tcc_add_symbol(state, "draw_text", DrawText);
- tcc_add_symbol(state, "set_active_shader", set_active_shader);
- tcc_add_symbol(state, "draw_texture", draw_texture);
- tcc_add_symbol(state, "reset_active_shader", reset_active_shader);
+ tcc_add_symbol(new_state, "draw_text", DrawText);
+ tcc_add_symbol(new_state, "set_active_shader", set_active_shader);
+ tcc_add_symbol(new_state, "draw_texture", draw_texture);
+ tcc_add_symbol(new_state, "reset_active_shader", reset_active_shader);
- tcc_add_file(state, "assets/src/main.c");
+ if(tcc_add_file(new_state, "assets/src/main.c") == -1){
+ TRACELOG(LOG_ERROR, "Compilation failed!\n");
+ return;
+ }
- tcc_relocate(state, TCC_RELOCATE_AUTO);
+ if(state != NULL)
+ deinit_script_sys();
+ state = new_state;
+
+ tcc_relocate(state, TCC_RELOCATE_AUTO);
script_init = tcc_get_symbol(state, "init");
script_update = tcc_get_symbol(state, "update");
script_exit = tcc_get_symbol(state, "exit");
+ script_init();
}
void init_script_sys(void)
{
- restart();
-
current_mod = GetFileModTime("assets/src/main.c");
- script_init();
+ restart();
}
void update_script(void)
@@ -53,9 +59,7 @@ void update_script(void)
if(new_mod != current_mod){
current_mod = new_mod;
- deinit_script_sys();
restart();
- script_init();
}
script_update();
}
diff --git a/src/shader_sys.c b/src/shader_sys.c
index 28f6d84..2686f5f 100644
--- a/src/shader_sys.c
+++ b/src/shader_sys.c
@@ -1,4 +1,5 @@
#include "utils.h"
+#include "config.h"
#include <stdlib.h>
diff --git a/src/texture_sys.c b/src/texture_sys.c
index 3481a69..3254d75 100644
--- a/src/texture_sys.c
+++ b/src/texture_sys.c
@@ -1,4 +1,5 @@
#include "utils.h"
+#include "config.h"
#include <stddef.h>