From 25eb1f8e5405e3b794314baa6f2df213a58e2408 Mon Sep 17 00:00:00 2001 From: Warwick New Date: Mon, 16 Dec 2024 15:22:25 +0000 Subject: [PATCH] Hopefully created vulkan surface. --- src/main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main.c b/src/main.c index d399902..09cc797 100644 --- a/src/main.c +++ b/src/main.c @@ -38,6 +38,7 @@ typedef struct Application { VkPhysicalDevice physicalDevice; VkDevice device; VkQueue graphicsQueue; + VkSurfaceKHR surface; } Application; bool checkValidationLayerSupport() { @@ -325,16 +326,27 @@ void initVulkan(Application *app) { pickPhysicalDevice(app); createLogicalDevice(app); } + +void createSurface(Application *app) { + if (glfwCreateWindowSurface(app->instance, app->window, NULL, + &app->surface) != VK_SUCCESS) { + fprintf(stderr, "Error creating vulkan surface in glfw window."); + exit(EXIT_FAILURE); + } +} + void mainLoop(Application *app) { while (!glfwWindowShouldClose(app->window)) { glfwPollEvents(); } } + void cleanup(Application *app) { vkDestroyDevice(app->device, NULL); if (enableValidationLayers) { DestroyDebugUtilsMessengerEXT(app->instance, app->debugMessenger, NULL); } + vkDestroySurfaceKHR(app->instance, app->surface, NULL); vkDestroyInstance(app->instance, NULL); glfwDestroyWindow(app->window); glfwTerminate(); @@ -345,6 +357,7 @@ int main(void) { initWindow(&app); initVulkan(&app); + createSurface(&app); mainLoop(&app); cleanup(&app);