#ifndef ARC_ENGINE_STATE_H_ #define ARC_ENGINE_STATE_H_ #ifdef __cplusplus extern "C" { #endif /** * @brief */ typedef void (* ARC_State_UpdateFn)(void *data); /** * @brief */ typedef void (* ARC_State_RenderFn)(void *data); /** * @brief */ typedef void (* ARC_State_DestroyDataFn)(void *data); /** * @brief */ typedef struct ARC_State { ARC_State_UpdateFn updateFn; ARC_State_RenderFn renderFn; void *data; ARC_State_DestroyDataFn *destroyDataFn; } ARC_State; /** * @brief */ void ARC_State_Create(ARC_State **state, ARC_State_UpdateFn updateFn, ARC_State_RenderFn renderFn, void *data, ARC_State_DestroyDataFn *destroyDataFn); /** * @brief */ void ARC_State_Destroy(ARC_State *state); /** * @brief */ void ARC_State_Update(void *data); /** * @brief */ void ARC_State_Render(void *data); #ifdef __cplusplus } #endif #endif // ARC_ENGINE_STATE_H_