diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index dbacb24..b62fd6c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -50,6 +50,9 @@ private: VDeleter<VkCommandPool> commandPool{device, vkDestroyCommandPool}; std::vector<VkCommandBuffer> commandBuffers; + VDeleter<VkSemaphore> imageAvailableSemaphore{device, vkDestroySemaphore}; + VDeleter<VkSemaphore> renderFinishedSemaphore{device, vkDestroySemaphore}; + struct QueueFamilyIndices { int graphicsFamily = -1; int presentFamily = -1; @@ -99,6 +102,16 @@ private: createFramebuffers(); createCommandPool(); createCommandBuffers(); + createSemaphores(); + } + + void createSemaphores() { + VkSemaphoreCreateInfo semaphoreInfo = {}; + semaphoreInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; + + if (vkCreateSemaphore(device, &semaphoreInfo, nullptr, imageAvailableSemaphore.replace()) != VK_SUCCESS || + vkCreateSemaphore(device, &semaphoreInfo, nullptr, renderFinishedSemaphore.replace()) != VK_SUCCESS) + throw std::runtime_error("failed to create semaphores!"); } void createCommandPool() { @@ -593,6 +606,8 @@ private: drawFrame(); } + vkDeviceWaitIdle(device); + glfwDestroyWindow(window); } |