The QVulkanFunctions class provides cross-platform access to the instance level core Vulkan 1.0 API. 更多...
头: | #include <QVulkanFunctions> |
qmake: | QT += gui |
Since: | Qt 5.10 |
~QVulkanFunctions () | |
VkResult | vkCreateDevice (VkPhysicalDevice physicalDevice , const VkDeviceCreateInfo * pCreateInfo , const VkAllocationCallbacks * pAllocator , VkDevice * pDevice ) |
VkResult | vkEnumerateDeviceExtensionProperties (VkPhysicalDevice physicalDevice , const char * pLayerName , uint32_t * pPropertyCount , VkExtensionProperties * pProperties ) |
VkResult | vkEnumerateDeviceLayerProperties (VkPhysicalDevice physicalDevice , uint32_t * pPropertyCount , VkLayerProperties * pProperties ) |
VkResult | vkEnumerateInstanceExtensionProperties (const char * pLayerName , uint32_t * pPropertyCount , VkExtensionProperties * pProperties ) |
VkResult | vkEnumerateInstanceLayerProperties (uint32_t * pPropertyCount , VkLayerProperties * pProperties ) |
VkResult | vkEnumeratePhysicalDevices (VkInstance instance , uint32_t * pPhysicalDeviceCount , VkPhysicalDevice * pPhysicalDevices ) |
PFN_vkVoidFunction | vkGetDeviceProcAddr (VkDevice device , const char * pName ) |
void | vkGetPhysicalDeviceFeatures (VkPhysicalDevice physicalDevice , VkPhysicalDeviceFeatures * pFeatures ) |
void | vkGetPhysicalDeviceFormatProperties (VkPhysicalDevice physicalDevice , VkFormat format , VkFormatProperties * pFormatProperties ) |
VkResult | vkGetPhysicalDeviceImageFormatProperties (VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkImageTiling tiling , VkImageUsageFlags usage , VkImageCreateFlags flags , VkImageFormatProperties * pImageFormatProperties ) |
void | vkGetPhysicalDeviceMemoryProperties (VkPhysicalDevice physicalDevice , VkPhysicalDeviceMemoryProperties * pMemoryProperties ) |
void | vkGetPhysicalDeviceProperties (VkPhysicalDevice physicalDevice , VkPhysicalDeviceProperties * pProperties ) |
void | vkGetPhysicalDeviceQueueFamilyProperties (VkPhysicalDevice physicalDevice , uint32_t * pQueueFamilyPropertyCount , VkQueueFamilyProperties * pQueueFamilyProperties ) |
void | vkGetPhysicalDeviceSparseImageFormatProperties (VkPhysicalDevice physicalDevice , VkFormat format , VkImageType type , VkSampleCountFlagBits samples , VkImageUsageFlags usage , VkImageTiling tiling , uint32_t * pPropertyCount , VkSparseImageFormatProperties * pProperties ) |
The QVulkanFunctions class provides cross-platform access to the instance level core Vulkan 1.0 API.
默认情况下,Qt 和 Qt 应用程序未链接到任何 Vulkan 库。相反,在运行时动态解析所有函数。每个 QVulkanInstance 提供 QVulkanFunctions 可检索对象凭借 QVulkanInstance::functions (). This does not contain device level functions in order to avoid the potential overhead of an internal dispatching. Instead, functions that rely on a device, or a dispatchable child object of a device, are exposed via QVulkanDeviceFunctions and QVulkanInstance::deviceFunctions (). QVulkanFunctions and QVulkanDeviceFunctions together provides access to the full core Vulkan API, excluding any extensions.
注意: QVulkanFunctions instances cannot be constructed directly.
典型用法如下:
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanFunctions *f = inst->functions(); ... VkResult err = f->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); ... }
注意: Windowing system interface (WSI) specifics and extensions are excluded. This class only covers core Vulkan commands, with the exception of instance creation, destruction, and function resolving, since such functionality is covered by QVulkanInstance 本身。
要访问额外功能,应用程序可以使用 QVulkanInstance::getInstanceProcAddr () 和 vkGetDeviceProcAddr (). Applications can also decide to link to a Vulkan library directly, as platforms with an appropriate loader will typically export function symbols for the core commands. See vkGetInstanceProcAddr 手册页 了解更多信息。
另请参阅 QVulkanInstance , QVulkanDeviceFunctions , QWindow::setVulkanInstance (),和 QWindow::setSurfaceType ().
Destroys the instance of QVulkanFunctions.