跳到主要内容

vkGetPhysicalDeviceSurfaceFormatsKHR

函数原型

VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
VkPhysicalDevice physicalDevice,
VkSurfaceKHR surface,
uint32_t* pSurfaceFormatCount,
VkSurfaceFormatKHR* pSurfaceFormats);

描述

查询surface支持的交换链色彩格式空间。

参数

  • physicalDevice : 创建交换链的物理设备。

  • surface : 与交换链关联的surface。

  • pSurfaceFormatCount : 可用格式数量的整数指针。

  • pSurfaceFormats : NULL或者 VkSurfaceFormatKHR 结构体数组指针。

    • pSurfaceFormats 为NULL时,pSurfaceFormatCount 返回可用格式数量;
    • pSurfaceFormats 不为NULL时,写入 pSurfaceFormatCount 个颜色格式信息到 pSurfaceFormats中。

补充

VkSurfaceFormatKHR 结构体定义:

typedef struct VkSurfaceFormatKHR {
VkFormat format;
VkColorSpaceKHR colorSpace;
} VkSurfaceFormatKHR;

返回值

  • VK_SUCCESS : 查询成功。
  • 其他 : 查询失败。

代码示例

// 查询表面支持格式
uint32_t formatCount;
// 像素格式、色彩空间
vector<VkSurfaceFormatKHR> formats;
vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface, &formatCount, nullptr);
if (formatCount != 0) {
formats.resize(formatCount);
vkGetPhysicalDeviceSurfaceFormatsKHR(device, surface, &formatCount, formats.data());
}