c – VK_KHR_WIN32_SURFACE_EXTENSION_NAME未定义,在Vulkan代码中

我正在尝试编写一个简单的基于vulkan的应用程序,但在尝试将表面扩展添加到已启用扩展的列表时,如下所示:

    enabledExtensions.push_back( VK_KHR_SURFACE_EXTENSION_NAME );
#if defined (_WIN32)
    enabledExtensions.push_back( VK_KHR_WIN32_SURFACE_EXTENSION_NAME );
#else
    enabledExtensions.push_back( VK_KHR_XCB_SURFACE_EXTENSION_NAME );
#endif

Visual Studio抱怨VK_KHR_WIN32_SURFACE_EXTENSION_NAME未定义.

当我右键单击它并转到定义时,它会打开vulkan.h.在检查VK_USE_PLATFORM_WIN32_KHR后,我发现这也是未定义的,这会阻止VK_KHR_WIN32_SURFACE_EXTENSION_NAME的定义.有人可以解释如何解决这个问题吗?

解决方法:

事实证明,我在项目设置中缺少一些预处理程序指令:

VK_PROTOTYPES
VK_USE_PLATFORM_WIN32_KHR

我希望这些信息可以帮助那些遇到同样问题的人.

上一篇:c – 什么时候关闭光栅化步骤有意义?


下一篇:如何将Android MediaCodec Surface连接到Vulkan