#include #include #include #include #include #include namespace game { const int SCREEN_WIDTH = 1366; const int SCREEN_HEIGHT = 768; std::optional shader; std::optional model; std::optional camera; float lastX = SCREEN_WIDTH / 2.0f; float lastY = SCREEN_HEIGHT / 2.0f; bool firstMouse = true; bool Init() { shader.emplace("assets/shaders/basicVertex.vert", "assets/shaders/basicFragment.frag"); shader->Use(); camera.emplace(glm::vec3(0.0f, 0.0f, 0.0f)); model.emplace("assets/models/sponza/Sponza.gltf"); return true; } void PreFrame() { glClearColor(0.2f, 0.3f, 0.3f, 1.0f); glClear(GL_COLOR_BUFFER_BIT); shader->Use(); camera->Update(shader.value(), SCREEN_WIDTH, SCREEN_HEIGHT); } void Render() { glm::mat4 modelTransform = glm::mat4(1.0f); modelTransform = glm::translate(modelTransform, glm::vec3(0.0f, 0.0f, 0.0f)); modelTransform = glm::scale(modelTransform, glm::vec3(0.02f, 0.02f, 0.02f)); shader->setMat4("model", modelTransform); model->Draw(shader.value()); } void Update() { } void PostFrame() { } void Cleanup() { } }