#include "first_app.hpp" #include "simple_render_system.hpp" #include #include #define GLM_FORCE_RADIANS #define GLM_FORCE_DEPTH_ZERO_TO_ONE #include #include namespace cve { FirstApp::FirstApp() { loadGameObjects(); } FirstApp::~FirstApp() {} void FirstApp::run() { SimpleRenderSystem simpleRenderSystem{cveDevice, cveRenderer.getSwapChainRenderPass()}; while (!cveWindow.shouldClose()) { glfwPollEvents(); if (auto commandBuffer = cveRenderer.beginFrame()) { cveRenderer.beginSwapChainRenderPass(commandBuffer); simpleRenderSystem.renderGameObjects(commandBuffer, gameObjects); cveRenderer.endSwapChainRenderPass(commandBuffer); cveRenderer.endFrame(); } } vkDeviceWaitIdle(cveDevice.device()); } void FirstApp::loadGameObjects() { std::vector verticies { {{0.0f, -0.5f}, {1.0f, 0.0f, 0.0f}}, {{0.5f, 0.5f}, {0.0f, 1.0f, 0.0f}}, {{-0.5f, 0.5f}, {0.0f, 0.0f, 1.0f}} }; auto cveModel = std::make_shared(cveDevice, verticies); auto triangle = CveGameObject::createGameObject(); triangle.model = cveModel; triangle.color = {0.1f, 0.8f, 0.1f}; triangle.transform2d.translation.x = .2f; triangle.transform2d.scale = {2.f, .5f}; triangle.transform2d.rotation = .25f * glm::two_pi(); gameObjects.push_back(std::move(triangle)); } }