Hopefully created vulkan surface.

This commit is contained in:
Warwick New 2024-12-16 15:22:25 +00:00
parent 87d20ff820
commit 25eb1f8e54

View file

@ -38,6 +38,7 @@ typedef struct Application {
VkPhysicalDevice physicalDevice; VkPhysicalDevice physicalDevice;
VkDevice device; VkDevice device;
VkQueue graphicsQueue; VkQueue graphicsQueue;
VkSurfaceKHR surface;
} Application; } Application;
bool checkValidationLayerSupport() { bool checkValidationLayerSupport() {
@ -325,16 +326,27 @@ void initVulkan(Application *app) {
pickPhysicalDevice(app); pickPhysicalDevice(app);
createLogicalDevice(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) { void mainLoop(Application *app) {
while (!glfwWindowShouldClose(app->window)) { while (!glfwWindowShouldClose(app->window)) {
glfwPollEvents(); glfwPollEvents();
} }
} }
void cleanup(Application *app) { void cleanup(Application *app) {
vkDestroyDevice(app->device, NULL); vkDestroyDevice(app->device, NULL);
if (enableValidationLayers) { if (enableValidationLayers) {
DestroyDebugUtilsMessengerEXT(app->instance, app->debugMessenger, NULL); DestroyDebugUtilsMessengerEXT(app->instance, app->debugMessenger, NULL);
} }
vkDestroySurfaceKHR(app->instance, app->surface, NULL);
vkDestroyInstance(app->instance, NULL); vkDestroyInstance(app->instance, NULL);
glfwDestroyWindow(app->window); glfwDestroyWindow(app->window);
glfwTerminate(); glfwTerminate();
@ -345,6 +357,7 @@ int main(void) {
initWindow(&app); initWindow(&app);
initVulkan(&app); initVulkan(&app);
createSurface(&app);
mainLoop(&app); mainLoop(&app);
cleanup(&app); cleanup(&app);