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