Générateur d'API Vulkan C++
Génère une API C++ à partir de la spécification vulkan. Comparaison avec vulkan-hpp :
- vkpp créé dans un souci de simplicité et de temps de compilation, plus léger
- ne produit PAS d'en-tête monolithique de près de 30 000 LOC (mise à jour : vulkan-hpp atteint maintenant > 110 000 LOC et continue de croître)
- divise l'utilisation en plusieurs en-têtes, ce qui vous permet par exemple d'utiliser uniquement les déclarations avancées (moins de 1 000 LOC) dans vos en-têtes publics
- moins de fonctionnalités
- ne modélise pas tout orienté objet
- pas de fonctions automatiques 'to_string' pour les énumérations
- gestion des erreurs probablement moins sophistiquée
- N'offre que de réels avantages par rapport à l'API C simple
- mettre tout dans un espace de noms
- énumérations de type sécurisé
- vérification automatique des erreurs critiques
- constructeurs de structure (paramètres sType, initialisation par défaut)
- 'vectorisation' des fonctions
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
est valide
- Possède un mécanisme de répartition dynamique différent (facultatif). vkpp permet de répartir dynamiquement implicitement si vous le souhaitez (pourrait être utile pour Android)
- Inconvénient : non livré avec le package vulkan sdk/vulkan
- cela signifie que vous pourriez rencontrer des problèmes de compatibilité des versions en utilisant cette API (utilisez simplement la balise git correcte correspondant à votre version vulkan.h installée pour vos projets)
Si vous avez besoin de l'une des fonctionnalités non prises en charge mentionnées ci-dessus, consultez vulkan-hpp (ou si vous pensez qu'elles sont raisonnables ici, décrivez-les en les justifiant dans un problème). Rapports de publication, contributions et suggestions appréciés !
Gestion des versions
Vous pouvez modifier la version de vulkan pour laquelle les en-têtes sont générés en remplaçant le vk.xml
par la version que vous souhaitez utiliser. Notez que vous devez configurer meson avec -Dregen=true
(ou -Dvkpp:regen=true
si vous utilisez vkpp comme sous-projet) pour régénérer les en-têtes. Le générateur actuel ne prend pas non plus en charge toutes les versions, car le format de spécification XML de Vulkan présente des changements importants (non rétrocompatibles) au fil du temps. Pour certaines versions de Vulkan, il existe des commits git spécifiques que vous pouvez simplement utiliser.