IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

QVulkanDeviceFunctions Class

The QVulkanDeviceFunctions class provides cross-platform access to the device level core Vulkan 1.0 API.

This class was introduced in Qt 5.10.

Article lu   fois.

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

QVulkanDeviceFunctions Class▲

  • Header: QVulkanDeviceFunctions

  • Since: Qt 5.10

  • qmake: QT += gui

  • Group: QVulkanDeviceFunctions is part of Rendering in 3D

Detailed Description▲

Qt and Qt applications do not link to any Vulkan libraries by default. Instead, all functions are resolved dynamically at run time. Each QVulkanInstance provides a QVulkanFunctions object retrievable via 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.

QVulkanDeviceFunctions instances cannot be constructed directly.

The typical usage is the following:

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

The QVulkanDeviceFunctions object specific to the provided VkDevice is created when QVulkanInstance::deviceFunctions() is first called with the device in question. The object is then cached internally.

To access additional functions, applications can use QVulkanInstance::getInstanceProcAddr() and vkGetDeviceProcAddr(). Applications can also decide to link to a Vulkan library directly, as many implementations export function symbols for the core commands. See the man page for vkGetInstanceProcAddr for more information.

See Also▲

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+