#ifndef __GE_CORE_H__ #define __GE_CORE_H__ #include #include #include struct ge_engine_core; typedef struct ge_engine_core ge_core_t; /** * Callback Function */ typedef void (*ge_init_func_t)(ge_core_t* core); typedef void (*ge_exit_func_t)(ge_core_t* core); typedef void (*ge_run_func_t)(ge_core_t* core); typedef enum ge_engine_state { GE_ENGINE_STATE_RUNNING, GE_ENGINE_STATE_EXIT, } ge_engine_state_t; struct ge_engine_core { struct { ge_init_func_t init; ge_exit_func_t exit; ge_run_func_t run; } callbacks; ge_engine_state_t state; ge_render_t render; ge_timer_t timer; struct { ge_uint_t fps; } configs; }; /** * Basic Call */ void ge_engine_init(ge_core_t *core); void ge_engine_run(ge_core_t *core); #endif // __GE_CORE_H__