From 5a331578b5f1022248d160548cf618f374cf59fc Mon Sep 17 00:00:00 2001 From: Hane Date: Wed, 30 Oct 2024 18:27:16 +0100 Subject: [PATCH] swp/sur extensions + surface --- src/main.cpp | 56 +++++++++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d5a2b2e..f6f6660 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,6 +1,12 @@ #define WIN32_LEAN_AND_MEAN #define UNICODE +#ifdef _WIN32 + #define VK_USE_PLATFORM_WIN32_KHR +#elif defined(VK_USE_PLATFORM_WAYLAND_KHR) + #define VK_USE_PLATFORM_WAYLAND_KHR +#endif + #include #include #include @@ -110,23 +116,23 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n app_info.engineVersion = 1; app_info.apiVersion = VK_API_VERSION_1_0; + // initialize the VkInstanceCreateInfo structure with appropiate SURFACE extensions std::vector instanceExtensionNames; instanceExtensionNames.push_back(VK_KHR_SURFACE_EXTENSION_NAME); - /* - * #ifdef _WIN32 - * instanceExtensionNames.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME); - * #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) - * instanceExtensionNames.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); - * #endif - */ + + #ifdef _WIN32 + instanceExtensionNames.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME); + #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) + instanceExtensionNames.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); + #endif VkInstanceCreateInfo inst_info = {}; inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; inst_info.pNext = NULL; inst_info.flags = 0; inst_info.pApplicationInfo = &app_info; - inst_info.enabledExtensionCount = 0;//2; - inst_info.ppEnabledExtensionNames = NULL;//instanceExtensionName.data(); + inst_info.enabledExtensionCount = 2; + inst_info.ppEnabledExtensionNames = instanceExtensionNames.data(); inst_info.enabledLayerCount = 0; inst_info.ppEnabledLayerNames = NULL; @@ -187,8 +193,8 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n deviceInfo.pNext = NULL; deviceInfo.queueCreateInfoCount = 1; deviceInfo.pQueueCreateInfos = &queueInfo; - deviceInfo.enabledExtensionCount = 0;//1; - deviceInfo.ppEnabledExtensionNames = NULL;//deviceExtensionNames.data(); + deviceInfo.enabledExtensionCount = 1; + deviceInfo.ppEnabledExtensionNames = deviceExtensionNames.data(); deviceInfo.enabledLayerCount = 0; deviceInfo.ppEnabledLayerNames = NULL; deviceInfo.pEnabledFeatures = NULL; @@ -220,16 +226,16 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n assert(result == VK_SUCCESS); //Swapchain setup (requires Instance SURFACEs and Device SWAPCHAIN extensions) - /* - * VkSurfaceKHR surface; - * #ifdef _WIN32 - * VkWin32SurfaceCreateInfoKHR createInfo = {}; - * createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; - * createInfo.pNext = NULL; - * createInfo.hinstance = hInstance; - * createInfo.hwnd = hwnd; - * result = vkCreateWin32SurfaceKHR(inst, &createInfo, NULL, &surface); - */ + + VkSurfaceKHR surface; + #ifdef _WIN32 + VkWin32SurfaceCreateInfoKHR createInfo = {}; + createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; + createInfo.pNext = NULL; + createInfo.hinstance = hInstance; + createInfo.hwnd = hwnd; + result = vkCreateWin32SurfaceKHR(inst, &createInfo, NULL, &surface); + /* * #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) * VkWaylandSurfaceCreateInfoKHR createInfo = {}; @@ -238,11 +244,11 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n * createInfo.display = info.display; * createInfo.surface = info.window; * res = vkCreateWaylandSurfaceKHR(inst, &createInfo, NULL, &surface); - * - * #endif - * assert(result == VK_SUCCESS); */ - // + #endif + assert(result == VK_SUCCESS); + + //Window show and event loop