diff options
Diffstat (limited to 'src/window.cpp')
| -rw-r--r-- | src/window.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/window.cpp b/src/window.cpp index b32ea15..f567820 100644 --- a/src/window.cpp +++ b/src/window.cpp @@ -3,6 +3,9 @@ #include "window.hpp" +#include "glm/ext/matrix_transform.hpp" +#include "glm/gtc/matrix_transform.hpp" + #define NELEMS(x) (sizeof(x) / sizeof((x)[0])) const bool ENABLE_VALIDATION_LAYERS = true; @@ -73,7 +76,7 @@ VkSemaphore presentRenderFinishedSemaphores[MAX_FRAMES_IN_FLIGHT]; VkFence presentInFlightFences[MAX_FRAMES_IN_FLIGHT]; UniformBufferObject UBO{ .model = glm::mat4(1), - .view = glm::mat4(1), + .view = glm::lookAt(glm::vec3(0), glm::vec3(2, 2, 0), glm::vec3(0, 0, 1)), .proj = glm::mat4(1), }; VkDeviceMemory uniformBufferMemory; @@ -725,6 +728,11 @@ void UpdatePresentDescriptorSets() { vkUpdateDescriptorSets(vkDevice, MAX_FRAMES_IN_FLIGHT, writeDescriptorSets, 0, nullptr); } +void UpdateCameraProjection() { + UBO.proj = glm::perspective(glm::radians(45.f), extent.width / (float)extent.height, 0.1f, 100.f); + UBO.proj[1][1] *= -1; +} + void CreateRenderPass() { VkAttachmentDescription colorAttachment; colorAttachment.flags = {}; @@ -1466,6 +1474,7 @@ void RecreateSwapchain() { DestroySwapchain(); CreateSwapchain(); UpdatePresentDescriptorSets(); + UpdateCameraProjection(); CreateFramebuffers(); shouldRecreateSwapchain = false; } @@ -1488,6 +1497,7 @@ void CreateWindow(PKEWindowProperties *wp) { CreateRenderPass(); CreateGraphicsPipeline(); UpdatePresentDescriptorSets(); + UpdateCameraProjection(); CreateFramebuffers(); CreateCommandPool(); CreateCommandBuffer(); |
