跳转至

vkEnumerateInstanceExtensionProperties

函数原型

1
2
3
4
VkResult vkEnumerateInstanceExtensionProperties(
    const char*                                 pLayerName,
    uint32_t*                                   pPropertyCount,
    VkExtensionProperties*                      pProperties);

描述

查询可用的instance级扩展。

参数

  • pLayerName : NULL或者指向要查询的layer名称的字符串指针。

    • pLayerName 为NULL时,返回Vulkan驱动实现的或者隐式使能的layer提供的扩展;
    • pLayerName 不为NULL时,返回名称为 pLayerName 的layer提供的扩展。
  • pPropertyCount : 可用扩展数量的整数的指针。

  • pProperties : NULL或者 VkExtensionProperties 结构体数组指针。

    • pProperties 为NULL时,pPropertyCount 返回可用的扩展数量;
    • pProperties 不为NULL时,写入 pPropertyCount 个扩展信息到 pProperties中。

返回值

  • VK_SUCCESS : 查询成功。
  • VK_INCOMPLETE : pPropertyCount 小于驱动可用的扩展数量。
  • 其他 : 查询失败。

代码示例

// get available extension count
uint32_t extCount = 0;
vkEnumerateInstanceExtensionProperties(nullptr, &extCount, nullptr);
if (extCount > 0)
{
    // get available extensions
    std::vector<VkExtensionProperties> extensions(extCount);
    if (vkEnumerateInstanceExtensionProperties(nullptr, &extCount, &extensions.front()) == VK_SUCCESS)
    {
        // print extension name
        for (VkExtensionProperties& extension : extensions)
        {
            std::cout << extension.extensionName << std::endl;
        }
    }
}