繁体   English   中英

VK_KHR_WIN32_SURFACE_EXTENSION_NAME 未定义,在 Vulkan 代码中

[英]VK_KHR_WIN32_SURFACE_EXTENSION_NAME undefined, in Vulkan code

我正在尝试编写一个简单的基于 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

我希望这些信息可以帮助任何有同样问题的人。

这似乎是一个常见问题,目前您可以通过添加特定标题来解决此问题

#if defined (_WIN32)
    #include <vulkan/vulkan_win32.h>
#elif defined(__linux__)
    #include <vulkan/vulkan_xcb.h>
#elif defined(__ANDROID__)
    #include <vulkan/vulkan_android.h>
#endif

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM