我正在尝试编写一个简单的基于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
我希望这些信息可以帮助那些遇到同样问题的人.