Класс QVulkanFunctions
Класс QVulkanFunctions предоставляет кроссплатформенный доступ к ядру Vulkan 1.0 API на уровне экземпляра. Подробнее...
| Заголовок: | #include <QVulkanFunctions> |
| qmake: | QT += gui |
| С момента: | Qt 5.10 |
Этот класс был представлен в Qt 5.10.
Подробное описание
Qt и приложения Qt по умолчанию не связываются с какими-либо библиотеками Vulkan. Вместо этого все функции разрешаются динамически во время выполнения. Каждый QVulkanInstance предоставляет объект QVulkanFunctions, доступный через QVulkanInstance::functions(). Он не содержит функции на уровне устройства, чтобы избежать потенциальной накладных расходов на внутреннюю диспетчеризацию. Вместо этого функции, которые зависят от устройства или от диспетчерского дочернего объекта устройства, доступны через QVulkanDeviceFunctions и QVulkanInstance::deviceFunctions(). QVulkanFunctions и QVulkanDeviceFunctions вместе предоставляют доступ ко всему ядру API Vulkan, за исключением расширений.
Примечание: Экземпляры QVulkanFunctions не могут быть созданы напрямую.
Типичное использование:
void Window::render()
{
QVulkanInstance *inst = vulkanInstance();
QVulkanFunctions *f = inst->functions();
...
VkResult err = f->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf);
...
} Примечание: Специфики интерфейса системы окон (WSI) и расширения исключены. Этот класс охватывает только основные команды Vulkan, за исключением создания, уничтожения экземпляров и разрешения функций, поскольку такая функциональность покрывается самим QVulkanInstance.
Для доступа к дополнительным функциям приложения могут использовать QVulkanInstance::getInstanceProcAddr() и vkGetDeviceProcAddr(). Приложения также могут решить напрямую связаться с библиотекой Vulkan, поскольку платформы с соответствующим загрузчиком обычно экспортируют символы функций для основных команд. См. страницу руководства для vkGetInstanceProcAddr для получения дополнительной информации.
См. также QVulkanInstance, QVulkanDeviceFunctions, QWindow::setVulkanInstance() и QWindow::setSurfaceType().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qvulkanfunctions.html