使用 glfwGetRequiredInstanceExtensions 指定扩展后,VkWin32SurfaceCreateInfoKHR 不可用

VkWin32SurfaceCreateInfoKHR not available after specifying extensions with glfwGetRequiredInstanceExtensions

我正在使用 Visual Studio 2019 Community with C++17 和 Vulkan SDK 1.2.148.1

#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>

//other vulkan stuff here

VkInstance instance;
uint32_t count;
VkInstanceCreateInfo createInfo{};

createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.ppEnabledExtensionNames = glfwGetRequiredInstanceExtensions(&count);
createInfo.enabledExtensionCount = count;
createInfo.enabledLayerCount = 0;
vkCreateInstance(&createInfo, nullptr, &instance)

创建实例后,VkWin32SurfaceCreateInfoKHR仍然不可用。代码失败于:

VkWin32SurfaceCreateInfoKHR createInfo{};

pastebin 上的完整代码。错误在第 110 行。

VkWin32SurfaceCreateInfoKHR 是特定于 windows 的平台,因此为了使用它,您需要在项目的某处定义 VK_USE_PLATFORM_WIN32_KHR