QVulkanDeviceFunctions 类

QVulkanDeviceFunctions 类提供跨平台访问设备级核心 Vulkan 1.0 API。 更多...

头: #include <QVulkanDeviceFunctions>
qmake: QT += gui
Since: Qt 5.10

该类在 Qt 5.10 引入。

    详细描述

    默认情况下,Qt 和 Qt 应用程序未链接到任何 Vulkan 库。相反,在运行时动态解析所有函数。每个 QVulkanInstance 提供 QVulkanFunctions 可检索对象凭借 QVulkanInstance::functions ()。这未包含设备级函数,为避免潜在内部分派开销。相反,依赖设备或设备可分派子级对象的函数的暴露是凭借 QVulkanDeviceFunctions 和 QVulkanInstance::deviceFunctions (). QVulkanFunctions 和 QVulkanDeviceFunctions 一起提供对完整核心 Vulkan API 的访问,排除任何扩展。

    注意: QVulkanDeviceFunctions 实例无法被直接构造。

    典型用法如下:

        void Window::render()
        {
            QVulkanInstance *inst = vulkanInstance();
            QVulkanDeviceFunctions *df = inst->deviceFunctions(device);
            VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf);
            ...
        }
    					

    创建由 VkDevice 提供的特定 QVulkanDeviceFunctions 对象当 QVulkanInstance::deviceFunctions () 首先以有问题设备被调用。然后,对象缓存在内部。

    要访问额外函数,应用程序可以使用 QVulkanInstance::getInstanceProcAddr () 和 vkGetDeviceProcAddr()。应用程序也可以决定直接链接到 Vulkan 库,因为很多实现为核心命令导出了函数符号。见 vkGetInstanceProcAddr 手册页 了解更多信息。

    另请参阅 QVulkanInstance , QVulkanFunctions , QWindow::setVulkanInstance (),和 QWindow::setSurfaceType ().