// MEMORY void * engine_memory_alloc(void * pnt,size_t size) { void * mem = realloc(pnt,size); if (mem == NULL) { printf("ERROR: Could not allocate memory.\n"); exit(1); } return mem; } void engine_memory_free(void * pnt) { free(pnt); } // TEXTURES struct ENGINE_TEXTURE { int width; int height; struct ENGINE_FRONTEND_TEXTURE * fe_texture; }; // COLOR struct ENGINE_COLOR { char r; char g; char b; char a; }; // WINDOWS struct ENGINE_WINDOW { struct ENGINE_TEXTURE * texture; struct ENGINE_FRONTEND_WINDOW * fe_window; }; // EVENTS struct ENGINE_EVENT { char type; void * data; }; static char ENGINE_EVENT_TYPE_UNKNOWN = 0; struct ENGINE_EVENT_UNKNOWN { }; static char ENGINE_EVENT_TYPE_NONE = 1; struct ENGINE_EVENT_NONE { }; static char ENGINE_EVENT_TYPE_EXIT = 2; struct ENGINE_EVENT_EXIT { }; static char ENGINE_EVENT_TYPE_INPUT_KB = 3; struct ENGINE_EVENT_INPUT_KB { char key; char pressed; }; void engine_event_free(struct ENGINE_EVENT * event) { engine_memory_free(event->data); engine_memory_free(event); }