#pragma once #include #include #include "SDL2/SDL.h" #include "cglm/cglm.h" #include "camera.h" #include "shape.h" #include "model.h" typedef struct { bool w; bool a; bool s; bool d; bool q; bool e; bool freeLook; } InputState; typedef struct { bool running; bool charIsMoving; float animBlend; uint64_t previousTicks; InputState input; SDL_Window *window; SDL_GLContext *glContext; GLuint textureId; int shaderProgramId; int modelShaderProgramId; Camera camera; Shape **shapes; int numShapes; Model testModel; mat4 projMatrix; mat4 viewMatrix; } GameState; GameState *Game_New(); void Game_Update(GameState *gs); void Game_Destroy(GameState *gs);