swp/sur extensions + surface

This commit is contained in:
Hane 2024-10-30 18:27:16 +01:00
commit 5a331578b5

View file

@ -1,6 +1,12 @@
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#define UNICODE #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 <cstdint> #include <cstdint>
#include <cstdio> #include <cstdio>
#include <cassert> #include <cassert>
@ -110,23 +116,23 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
app_info.engineVersion = 1; app_info.engineVersion = 1;
app_info.apiVersion = VK_API_VERSION_1_0; app_info.apiVersion = VK_API_VERSION_1_0;
// initialize the VkInstanceCreateInfo structure with appropiate SURFACE extensions // initialize the VkInstanceCreateInfo structure with appropiate SURFACE extensions
std::vector<const char*> instanceExtensionNames; std::vector<const char*> instanceExtensionNames;
instanceExtensionNames.push_back(VK_KHR_SURFACE_EXTENSION_NAME); instanceExtensionNames.push_back(VK_KHR_SURFACE_EXTENSION_NAME);
/*
* #ifdef _WIN32 #ifdef _WIN32
* instanceExtensionNames.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME); instanceExtensionNames.push_back(VK_KHR_WIN32_SURFACE_EXTENSION_NAME);
* #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) #elif defined(VK_USE_PLATFORM_WAYLAND_KHR)
* instanceExtensionNames.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME); instanceExtensionNames.push_back(VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME);
* #endif #endif
*/
VkInstanceCreateInfo inst_info = {}; VkInstanceCreateInfo inst_info = {};
inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; inst_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
inst_info.pNext = NULL; inst_info.pNext = NULL;
inst_info.flags = 0; inst_info.flags = 0;
inst_info.pApplicationInfo = &app_info; inst_info.pApplicationInfo = &app_info;
inst_info.enabledExtensionCount = 0;//2; inst_info.enabledExtensionCount = 2;
inst_info.ppEnabledExtensionNames = NULL;//instanceExtensionName.data(); inst_info.ppEnabledExtensionNames = instanceExtensionNames.data();
inst_info.enabledLayerCount = 0; inst_info.enabledLayerCount = 0;
inst_info.ppEnabledLayerNames = NULL; inst_info.ppEnabledLayerNames = NULL;
@ -187,8 +193,8 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
deviceInfo.pNext = NULL; deviceInfo.pNext = NULL;
deviceInfo.queueCreateInfoCount = 1; deviceInfo.queueCreateInfoCount = 1;
deviceInfo.pQueueCreateInfos = &queueInfo; deviceInfo.pQueueCreateInfos = &queueInfo;
deviceInfo.enabledExtensionCount = 0;//1; deviceInfo.enabledExtensionCount = 1;
deviceInfo.ppEnabledExtensionNames = NULL;//deviceExtensionNames.data(); deviceInfo.ppEnabledExtensionNames = deviceExtensionNames.data();
deviceInfo.enabledLayerCount = 0; deviceInfo.enabledLayerCount = 0;
deviceInfo.ppEnabledLayerNames = NULL; deviceInfo.ppEnabledLayerNames = NULL;
deviceInfo.pEnabledFeatures = NULL; deviceInfo.pEnabledFeatures = NULL;
@ -220,16 +226,16 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
assert(result == VK_SUCCESS); assert(result == VK_SUCCESS);
//Swapchain setup (requires Instance SURFACEs and Device SWAPCHAIN extensions) //Swapchain setup (requires Instance SURFACEs and Device SWAPCHAIN extensions)
/*
* VkSurfaceKHR surface; VkSurfaceKHR surface;
* #ifdef _WIN32 #ifdef _WIN32
* VkWin32SurfaceCreateInfoKHR createInfo = {}; VkWin32SurfaceCreateInfoKHR createInfo = {};
* createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
* createInfo.pNext = NULL; createInfo.pNext = NULL;
* createInfo.hinstance = hInstance; createInfo.hinstance = hInstance;
* createInfo.hwnd = hwnd; createInfo.hwnd = hwnd;
* result = vkCreateWin32SurfaceKHR(inst, &createInfo, NULL, &surface); result = vkCreateWin32SurfaceKHR(inst, &createInfo, NULL, &surface);
*/
/* /*
* #elif defined(VK_USE_PLATFORM_WAYLAND_KHR) * #elif defined(VK_USE_PLATFORM_WAYLAND_KHR)
* VkWaylandSurfaceCreateInfoKHR createInfo = {}; * VkWaylandSurfaceCreateInfoKHR createInfo = {};
@ -238,11 +244,11 @@ int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int n
* createInfo.display = info.display; * createInfo.display = info.display;
* createInfo.surface = info.window; * createInfo.surface = info.window;
* res = vkCreateWaylandSurfaceKHR(inst, &createInfo, NULL, &surface); * res = vkCreateWaylandSurfaceKHR(inst, &createInfo, NULL, &surface);
*
* #endif
* assert(result == VK_SUCCESS);
*/ */
// #endif
assert(result == VK_SUCCESS);
//Window show and event loop //Window show and event loop