QVulkanDeviceFunctions Class
La classe QVulkanDeviceFunctions fournit un accès multiplateforme à l'API Vulkan 1.3 au niveau du périphérique. Plus d'informations...
| En-tête : | #include <QVulkanDeviceFunctions> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
- QVulkanDeviceFunctions fait partie de Rendu en 3D.
Description détaillée
Qt et les applications Qt ne sont pas liés à des bibliothèques Vulkan par défaut. Au lieu de cela, toutes les fonctions sont résolues dynamiquement au moment de l'exécution. Chaque QVulkanInstance fournit un objet QVulkanFunctions récupérable via QVulkanInstance::functions(). Cet objet ne contient pas de fonctions au niveau du périphérique afin d'éviter la surcharge potentielle d'un dispatching interne. Au lieu de cela, les fonctions qui dépendent d'un périphérique, ou d'un objet enfant distribuable d'un périphérique, sont exposées via QVulkanDeviceFunctions et QVulkanInstance::deviceFunctions(). QVulkanFunctions et QVulkanDeviceFunctions fournissent ensemble un accès à l'API Vulkan de base complète, à l'exclusion de toute extension.
Remarque : les instances QVulkanDeviceFunctions ne peuvent pas être construites directement.
L'utilisation typique est la suivante :
void Window::render() { QVulkanInstance *inst = vulkanInstance(); QVulkanDeviceFunctions *df = inst->deviceFunctions(device); VkResult err = df->vkAllocateCommandBuffers(device, &cmdBufInfo, &cmdBuf); // ... }
L'objet QVulkanDeviceFunctions spécifique au VkDevice fourni est créé lorsque QVulkanInstance::deviceFunctions() est appelé pour la première fois avec le périphérique en question. L'objet est ensuite mis en cache en interne.
Pour accéder à des fonctions supplémentaires, les applications peuvent utiliser QVulkanInstance::getInstanceProcAddr() et vkGetDeviceProcAddr(). Les applications peuvent également décider de se lier directement à une bibliothèque Vulkan, car de nombreuses implémentations exportent des symboles de fonction pour les commandes de base. Voir la page de manuel de vkGetInstanceProcAddr pour plus d'informations.
Voir aussi QVulkanInstance, QVulkanFunctions, QWindow::setVulkanInstance(), et 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.