diff --git a/include/arc/engine/state.h b/include/arc/engine/state.h new file mode 100644 index 0000000..8efb2f8 --- /dev/null +++ b/include/arc/engine/state.h @@ -0,0 +1,21 @@ +#ifndef ARC_ENGINE_STATE_H_ +#define ARC_ENGINE_STATE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ARC_State { + void (* updateFn)(); + void (* renderFn)(); +} ARC_State; + +void ARC_State_Update(void *data); + +void ARC_State_Render(void *data); + +#ifdef __cplusplus +} +#endif + +#endif // ARC_ENGINE_STATE_H_ \ No newline at end of file diff --git a/src/engine/state.c b/src/engine/state.c new file mode 100644 index 0000000..bca0a34 --- /dev/null +++ b/src/engine/state.c @@ -0,0 +1,11 @@ +#include "arc/engine/state.h" + +void ARC_State_Update(void *data){ + ARC_State *temp = (ARC_State *) data; + ((ARC_State *)data)->updateFn(); +} + +void ARC_State_Render(void *data){ + ARC_State *temp = (ARC_State *) data; + ((ARC_State *)data)->renderFn(); +} \ No newline at end of file