Spec-Zone.ru › Qt 6.0

Класс QVulkanDeviceFunctions

Класс QVulkanDeviceFunctions предоставляет кроссплатформенный доступ к ядру API Vulkan 1.0 на уровне устройства. Подробнее...

Заголовок: #include <QVulkanDeviceFunctions>
CMake: find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
С момента: Qt 5.10

Подробное описание

Qt и приложения Qt по умолчанию не подключаются к каким-либо библиотекам Vulkan. Вместо этого все функции разрешаются динамически во время выполнения. Каждый QVulkanInstance предоставляет объект QVulkanFunctions, который можно получить с помощью QVulkanInstance::functions(). Он не содержит функции на уровне устройства, чтобы избежать потенциальной накладной от внутренней диспетчеризации. Вместо этого функции, которые зависят от устройства или от диспетчерируемого дочернего объекта устройства, предоставляются через QVulkanDeviceFunctions и QVulkanInstance::deviceFunctions(). QVulkanFunctions и QVulkanDeviceFunctions вместе обеспечивают доступ к полному ядру API Vulkan, за исключением расширений.

Примечание: Экземпляры QVulkanDeviceFunctions не могут быть созданы напрямую.

Типичное использование следующее:

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

Объект QVulkanDeviceFunctions, специфичный для предоставленного VkDevice, создается, когда QVulkanInstance::deviceFunctions() впервые вызывается с устройством. Затем объект кешируется внутри.

Для доступа к дополнительным функциям приложения могут использовать QVulkanInstance::getInstanceProcAddr() и vkGetDeviceProcAddr(). Приложения также могут решить подключиться к библиотеке Vulkan напрямую, так как многие реализации экспортируют символы функций для основных команд. См. страницу руководства для vkGetInstanceProcAddr для получения дополнительной информации.

См. также QVulkanInstance, QVulkanFunctions, QWindow::setVulkanInstance() и QWindow::setSurfaceType().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qvulkandevicefunctions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API