summaryrefslogtreecommitdiff
path: root/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.cpp')
-rw-r--r--src/main.cpp15
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);
}