Vulkan Cookbook 第二章 6 获得呈现表面的功能

获得呈现表面的功能

译者注:示例代码点击此处

当我们创建交换链时,需要指定创建参数。 必须提供符合支持限制的值, 但我们并不清楚这些值。它们可以从呈现表面获得。 因此,为了正确创建交换链,我们需要获取表面的功能。

怎么做...

1.使用vkEnumeratePhysicalDevices()函数获取所有枚举的物理设备句柄,并将其存储在名为physical_deviceVkPhysicalDevice类型的变脸中。
2.获取创建的呈现表面句柄。将其储存在名为presentation_surfaceVkSurfaceKHR类型的变脸中。
3.创建名为surface_capabilitiesVkSurfaceCapabilitiesKHR类型变量。
4.调用vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device,presentation_surface,&surface_capabilities),第一个参数提供物理设备,第二个参数传入呈现表面的句柄,第三个参数指向surface_capabilities的变量。
5.如果函数调用成功,则surface_capabilities变量将包含可用于创建交换连的呈现表面参数,限制和功能。

这个怎么运作...

获取在创建交换链期间可以使用的功能和参数范围非常简单:

VkResult result = vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physical_device, presentation_surface, &surface_capabilities)

if( VK_SUCCESS != result ) {
  std::cout << "Could not get the capabilities of a presentation surface." << std::endl; 
  return false;
}

return true;

我们只调用一个vkGetPhysicalDeviceSurfaceCapabilitiesKHR()函数,该函数讲参数储存在VkSurfaceCapabilitiesKHR类型变量中。它包含以下参数成员的结构:
·交换图像的最小和最大准许数量。
·呈现表面的最小,最大和当前范围。
·支持的图像转换(可在呈现之前应用)和当前使用的转换。
·支持的图像层的最大数量。
·支持的用法。
·表面alpha值支持的合成列表(图像的alpha组建应如何影响应用程序的窗口桌面组合)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值