Vulkan获取显示曲面的功能

获取显示曲面的功能

创建交换链时,需要设置创建参数,但我们不能随心所欲地设置这些值。我们必须在硬件支持限定的范围内设置这些值,通过显示曲面可以获取这些限定范围。因此为了以合适的方式创建交换链,需要获取显示曲面的功能。
具体处理过程

(1)通过调用vkEnumeratePhysicalDevices()函数,获取我们选中的物理设备的句柄,将该句柄存储在一个VkPhysicalDevice类型的变量中,将该变量命名为physical_device。
(2)获取已创建的显示曲面的句柄,将该句柄存储在一个VkSurfaceKHR类型的变量中,将该变量命名为presentation_surface。
(3)创建一个VkSurfaceCapabilitiesKHR类型的变量,将其命名为surface_capabilities。
(4)调用vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physical_device,presentation_surface,&surface_capabilities)函数。将第一个参数设置为物理设备的句柄;将第二个参数设置为显示曲面的句柄;将第三个参数设置为指向surface_capabilities变量的指针。
(5)如果该函数调用操作成功完成了,surface_capabilities变量就会含有显示曲面的参数、限定条件和用于创建交换链的功能。

具体运行情况
获取显示曲面支持的功能和在创建交换链过程中使用的参数值限定范围非常简单。

Vulkan获取显示曲面的功能
只需调用vkGetPhysicalDeviceSurfaceCapabilitiesKHR()函数,就可以将显示曲面支持功能的参数存储到VkSurfaceCapabilitiesKHR类型的变量中。VkSurfaceCapabilitiesKHR结构含有定义了下列参数的成员。
● 交换链图像数量的最高上限和最低下限。
● 显示曲面的最小面积、最大面积和当前面积。
● 支持的图像转换格式(能够在显示前应用)和当前使用的图像转换格式。
● 支持的最大图层数量。
● 支持的用法。
● 支持的显示曲面alpha值(图像的alpha成分会影响应用程序窗口透明度)。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

Vulkan实战