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