diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-26 19:21:58 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2023-09-26 19:21:58 -0400 |
| commit | 517dedc6a05c9048fa57eae7e7c907452b408069 (patch) | |
| tree | e2f61e1c54147a9f3375fb0ab8a6f7f71ade94cc /src/window.cpp | |
| parent | 7c1ba040d64a3b877f44971048bf79410c2666b0 (diff) | |
update instance buffer & handle camera on window resize
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(); |
