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 ().