VULKAN学习笔记-inter教学四篇
--交换链相关函数:实例层
vkCreateWin32SurfaceKHR
vkDestroySurfaceKHR
vkGetPhysicalDeviceSurfaceSurportKHR
vkGetPhysicalDeviceSurfaceCapabilitesKHR
vkGetPhysicalDeviceSurfaceFormatsKHR
vkGetPhysicalDeviceSurfacePresentModesKHR
vk_create_win32_surface
vk_destroy_surface
vk_get_phydev_surface_surport
vk_get_phydev_surface_caps
vk_get_phydev_surface_fmts
vk_get_phydev_surface_present_modes
--交换链相关函数:设备层
vk_create_swapchain
vk_destroy_swapchain
vk_get_swapchain_images
vk_acquire_next_image
vk_queue_present
交换链可以支持大于三个的图像,但最多同时操作三个,不支持同时操作三个以上
--信号量相关
vkCreateSemaphore
--创建交换链
--准备数据:
--1,vkGetPhyDevSurfaceCaps获取平面的能力:支持的图像数量,图像尺寸,支持的转换格式
--2,vkGetPhyDevSurfaceFormats获取平面支持的格式 RGBA等
--3,vkGetPhyDevSurfacePresentModes 获取支持的演示模式,立即演示或垂直同步等
--为交换链创建作准备工作
--1,确定交换链图像数量
surface_caps.minImageCount < N < surface_caps.maxImageCount
--2,选择交换链图像格式
比如选择 VK_FORMAT_R8G8B8A8_UNORM,如果不支持,则选择其它的
--3,选择交换链图像大小
surface_caps.currentExtent.width = 640
surface_caps.currentExtent.height = 480
--4,选择交换链标记用法
surface_caps.surportedUsageFlags & VK_IMAGE_USAGE_XXX
VK_IMAGE_USAGE_XXX 包括:
VK_IMAGE_USAGE_SAMPLED --图像用作采样图,即在shader中采样使用
VK_IMAGE_USAGE_STORAGE
VK_IMAGE_USAGE_COLOR_ATTACHMENT
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT
VK_IAMGE_USAGE_INPUT_ATTACHMENT
--5,选择演示模式
--一共四种模式,每种模式的minImageCount都是2,因为必须支持交换链,交换链需少至少2个图
--immediate 模式,使用至少二个图像,有撕裂
--fifo 模式,使用至少二个图像,只在垂直回扫期间替换图像,无撕裂但有输入延迟
--fifo