QVulkanDeviceFunctions Class
La clase QVulkanDeviceFunctions proporciona acceso multiplataforma al núcleo de la API Vulkan 1.3 a nivel de dispositivo. Más...
| Cabecera: | #include <QVulkanDeviceFunctions> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
- QVulkanDeviceFunctions es parte de Renderizado en 3D.
Descripción Detallada
Qt y las aplicaciones Qt no enlazan con ninguna librería Vulkan por defecto. En su lugar, todas las funciones se resuelven dinámicamente en tiempo de ejecución. Cada QVulkanInstance proporciona un objeto QVulkanFunctions recuperable a través de QVulkanInstance::functions(). No contiene funciones a nivel de dispositivo para evitar la sobrecarga potencial de un envío interno. En su lugar, las funciones que dependen de un dispositivo, o de un objeto hijo despachable de un dispositivo, son expuestas via QVulkanDeviceFunctions y QVulkanInstance::deviceFunctions(). QVulkanFunctions y QVulkanDeviceFunctions juntas proveen acceso al núcleo completo de la API Vulkan, excluyendo cualquier extensión.
Nota: Las instancias de QVulkanDeviceFunctions no pueden ser construidas directamente.
El uso típico es el siguiente:
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanDeviceFunctions *df = inst->deviceFunctions(device); VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); // ... }
El objeto QVulkanDeviceFunctions específico para el VkDevice proporcionado se crea cuando se llama por primera vez a QVulkanInstance::deviceFunctions() con el dispositivo en cuestión. El objeto se almacena en caché internamente.
Para acceder a funciones adicionales, las aplicaciones pueden utilizar QVulkanInstance::getInstanceProcAddr() y vkGetDeviceProcAddr(). Las aplicaciones también pueden decidir enlazar a una biblioteca Vulkan directamente, ya que muchas implementaciones exportan símbolos de función para los comandos principales. Ver la página man de vkGetInstanceProcAddr para más información.
Véase también QVulkanInstance, QVulkanFunctions, QWindow::setVulkanInstance(), y QWindow::setSurfaceType().
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.