QVulkanFunctions Class
La classe QVulkanFunctions fournit un accès multiplateforme à l'API Vulkan 1.3 au niveau de l'instance. Plus d'informations...
| En-tête : | #include <QVulkanFunctions> |
| CMake : | find_package(Qt6 REQUIRED COMPONENTS Gui)target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake : | QT += gui |
- QVulkanFunctions 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 site 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 dispositif, ou d'un objet enfant d'un dispositif pouvant être distribué, sont exposées via QVulkanDeviceFunctions et QVulkanInstance::deviceFunctions(). QVulkanFunctions et QVulkanDeviceFunctions permettent d'accéder à l'API Vulkan complète, à l'exclusion de toute extension.
Remarque : les instances de QVulkanFunctions ne peuvent pas être construites directement.
L'utilisation typique est la suivante :
void Window::init() { QVulkanInstance *inst = vulkanInstance(); QVulkanFunctions *f = inst->functions(); // ... uint32_t count = 0; VkResult err = f->vkEnumeratePhysicalDevices(inst->vkInstance(), &count, nullptr); // ... }
Remarque : les spécificités et les extensions de l'interface du système de fenêtrage (WSI) sont exclues. Cette classe ne couvre que les commandes Vulkan de base, à l'exception de la création et de la destruction d'instances et de la résolution de fonctions, car ces fonctionnalités sont couvertes par QVulkanInstance.
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 les plates-formes dotées d'un chargeur approprié exportent généralement les symboles de fonction pour les commandes principales. Voir la page de manuel de vkGetInstanceProcAddr pour plus d'informations.
Note : Les prototypes des fonctions membres pour les commandes Vulkan 1.1, 1.2, et 1.3 sont ifdefed avec le VK_VERSION_1_x approprié qui est défini par les en-têtes Vulkan. Ainsi, ces fonctions ne pourront être appelées par une application que si l'en-tête Vulkan du système (sur lequel l'application est construite) est suffisamment récent et qu'il contient les définitions de l'API Vulkan 1.1, 1.2 ou 1.3. Lors de la construction de Qt à partir des sources, cela a une conséquence supplémentaire : les en-têtes Vulkan sur l'environnement de construction doivent également être compatibles 1.1, 1.2 et 1.3 pour obtenir une construction de Qt qui prend en charge la résolution des commandes API 1.1, 1.2 et 1.3. Si aucune de ces conditions n'est remplie, les applications ne pourront appeler les commandes Vulkan 1.0 qu'à travers QVulkanFunctions et QVulkanDeviceFunctions.
Voir également QVulkanInstance, QVulkanDeviceFunctions, 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.