QVulkanDeviceFunctions Class
Die Klasse QVulkanDeviceFunctions bietet plattformübergreifenden Zugriff auf die Kern-API von Vulkan 1.3 auf Geräteebene. Mehr...
Kopfzeile: | #include <QVulkanDeviceFunctions> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake: | QT += gui |
- QVulkanDeviceFunctions ist Teil von Rendering in 3D.
Detaillierte Beschreibung
Qt und Qt-Anwendungen binden standardmäßig keine Vulkan-Bibliotheken ein. Stattdessen werden alle Funktionen dynamisch während der Laufzeit aufgelöst. Jedes QVulkanInstance bietet ein QVulkanFunctions Objekt, das über QVulkanInstance::functions() abrufbar ist. Dieses enthält keine Funktionen auf Geräteebene, um den potenziellen Overhead eines internen Dispatchings zu vermeiden. Stattdessen werden Funktionen, die auf ein Gerät oder ein dispatchbares Kindobjekt eines Geräts angewiesen sind, über QVulkanDeviceFunctions und QVulkanInstance::deviceFunctions() zur Verfügung gestellt. QVulkanFunctions und QVulkanDeviceFunctions bieten zusammen Zugriff auf die gesamte Kern-Vulkan-API, mit Ausnahme aller Erweiterungen.
Hinweis: QVulkanDeviceFunctions-Instanzen können nicht direkt erstellt werden.
Die typische Verwendung ist die folgende:
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanDeviceFunctions *df = inst->deviceFunctions(device); VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); // ... }
Das QVulkanDeviceFunctions-Objekt, das für das bereitgestellte VkDevice spezifisch ist, wird erstellt, wenn QVulkanInstance::deviceFunctions() zum ersten Mal mit dem fraglichen Gerät aufgerufen wird. Das Objekt wird dann intern zwischengespeichert.
Um auf zusätzliche Funktionen zuzugreifen, können Anwendungen QVulkanInstance::getInstanceProcAddr() und vkGetDeviceProcAddr() verwenden. Anwendungen können sich auch dafür entscheiden, sich direkt mit einer Vulkan-Bibliothek zu verbinden, da viele Implementierungen Funktionssymbole für die Kernbefehle exportieren. Weitere Informationen finden Sie in der Man Page für vkGetInstanceProcAddr.
Siehe auch QVulkanInstance, QVulkanFunctions, QWindow::setVulkanInstance(), und QWindow::setSurfaceType().
© 2025 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.