From 4cb29fbc2d20f20e9d605796b137b4b70363113a Mon Sep 17 00:00:00 2001 From: 0scar Date: Fri, 28 Jul 2023 16:32:58 +0200 Subject: Implement hotloading * This commit implements dltools.{c,h}: _A simple wrapper around libdl / dlfcn.h_ * Reload states when done initializing engine, if hotloading is enabled. * Adds general function types for state functions. --- src/engine.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/engine.c') diff --git a/src/engine.c b/src/engine.c index fa528c0..36eb349 100644 --- a/src/engine.c +++ b/src/engine.c @@ -379,6 +379,19 @@ Platform *engine_init( GLOBAL_PLATFORM = p; + +#ifdef DAW_BUILD_HOTRELOAD + +#define State(name) \ +if (!State_reload(STATE_##name)) { \ + ERROR("Failed to reload shared object file for state %s", #name ); \ +}; + +#include +#undef State + +#endif + return p; } -- cgit v1.3