Files
punchie-engine/include/ObjectStore.h
T
abdelrahman c4f1775392 Implemented the core functionality of the ObjectStore and started
implementing the functionality for the AssetManager
2022-09-22 01:56:21 +01:00

29 lines
978 B
C

#ifndef OBJECT_STORE_H
#define OBJECT_STORE_H
#include "Renderer.h"
#include "SDL_events.h"
#include "engine_build_config.h"
typedef int32_t ObjectID;
typedef void (*EventHandlerPtr)(const SDL_Event *event, void *object);
typedef void (*UpdateFuncPtr)(float delta, void *object);
typedef void (*RenderFuncPtr)(Renderer *renderer, void *object);
typedef struct object_store ObjectStore;
ObjectStore *create_object_store();
ObjectID add_object_to_store(ObjectStore *os, void *object, EventHandlerPtr eh,
UpdateFuncPtr uf, RenderFuncPtr rf);
void remove_object_from_store(ObjectStore *os, ObjectID id);
void handle_all_objects_events(ObjectStore *os, const SDL_Event *event);
void update_all_objects(ObjectStore *os, float delta);
void render_all_objects(ObjectStore *os, Renderer *renderer);
void destroy_object_store(ObjectStore *os);
#ifdef DEBUG_ENGINE
void print_objects(ObjectStore *os);
#endif /* DEBUG_ENGINE */
#endif // !OBJECT_STORE_H