【问题标题】:How to get supported extensions in Vulkan如何在 Vulkan 中获得支持的扩展
【发布时间】:2017-02-05 20:40:10
【问题描述】:

我正在开发一个使用 Vulkan 的 C++ 应用程序。如何获得支持的扩展集?

std::set<std::string> get_supported_extensions() 这样的签名是理想的。

【问题讨论】:

    标签: vulkan


    【解决方案1】:

    vkEnumerateInstanceExtensionProperties API 执行此操作。

    std::set<std::string> get_supported_extensions() {
        uint32_t count;
        vkEnumerateInstanceExtensionProperties(nullptr, &count, nullptr); //get number of extensions
        std::vector<VkExtensionProperties> extensions(count);
        vkEnumerateInstanceExtensionProperties(nullptr, &count, extensions.data()); //populate buffer
        std::set<std::string> results;
        for (auto & extension : extensions) {
            results.insert(extension.extensionName);
        }
        return results;
    }
    

    【讨论】:

    • 为了使示例完整,您应该执行VkResult 检查(ERROR 到 C++ 异常可能是一个不错的选择)。可能不会伤害任何执行do{ ... }while(VK_INCOMPLETE);; Vulkan-Hpp 也是一种选择
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-25
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 2023-03-08
    • 2020-12-28
    相关资源
    最近更新 更多