Vulkan Cookbook 第二章 6 獲得演示表面的功能
阿新 • • 發佈:2018-12-19
獲得演示表面的功能
當我們建立交換鏈時,需要指定建立引數。 必須提供符合支援限制的值, 但我們並不清楚這些值。它們可以從演示表面獲得。 因此,為了正確建立交換鏈,我們需要獲取表面的功能。
怎麼做...
1.使用vkEnumeratePhysicalDevices()函式獲取所有列舉的物理裝置控制代碼,並將其儲存在名為physical_device的VkPhysicalDevice型別的變臉中。 2.獲取建立的演示表面控制代碼。將其儲存在名為presentation_surface的VkSurfaceKHR型別的變臉中。 3.建立名為surface_capabilities的VkSurfaceCapabilitiesKHR
這個怎麼運作...
獲取在建立交換鏈期間可以使用的功能和引數範圍非常簡單:
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組建應如何影響應用程式的視窗桌面組合)。