跳到主要内容

vkEnumerateInstanceExtensionProperties

函数原型

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;
}
}
}