diff options
Diffstat (limited to 'src/vk-renderer.cpp')
| -rw-r--r-- | src/vk-renderer.cpp | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/vk-renderer.cpp b/src/vk-renderer.cpp index 26b2ff3..a733d49 100644 --- a/src/vk-renderer.cpp +++ b/src/vk-renderer.cpp @@ -150,8 +150,10 @@ void vkrenderer::create_instance() { std::vector<const char*> extensions = { VK_EXT_DEBUG_UTILS_EXTENSION_NAME, "VK_KHR_surface", -#ifdef LINUX +#if defined(LINUX) "VK_KHR_xcb_surface" +#elif defined(WINDOWS) + "VK_KHR_win32_surface" #endif }; @@ -194,7 +196,7 @@ void vkrenderer::create_debugger() { } void vkrenderer::create_surface(window& wnd) { -#ifdef LINUX +#if defined(LINUX) VkXcbSurfaceCreateInfoKHR create_info = {}; create_info.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR; create_info.pNext = nullptr; @@ -203,6 +205,15 @@ void vkrenderer::create_surface(window& wnd) { create_info.window = wnd.win; VKRESULT(vkCreateXcbSurfaceKHR(instance, &create_info, nullptr, &platform_surface)) +#elif defined(WINDOWS) + VkWin32SurfaceCreateInfoKHR create_info = {}; + create_info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; + create_info.pNext = nullptr; + create_info.flags = 0; + create_info.hinstance = GetModuleHandle(NULL); + create_info.hwnd = wnd.win_handle; + + VKRESULT(vkCreateWin32SurfaceKHR(instance, &create_info, nullptr, &platform_surface)) #endif } |
