C++-Vulkan-API-Generator
Erzeugt eine C++-API aus der Vulkan-Spezifikation. Vergleich zu vulkan-hpp:
- vkpp wurde mit Blick auf Einfachheit und Kompilierzeit erstellt und ist leichter
- erzeugt KEINEN monolithischen fast 30K LOC-Header (Update: vulkan-hpp hat jetzt einen LOC von >110K und wächst weiter)
- teilt die Nutzung in mehrere Header auf, sodass Sie beispielsweise nur die Forward-Deklarationen (weniger als 1K LOC) in Ihren öffentlichen Headern verwenden können
- weniger Funktionen
- modelliert nicht alles objektorientiert
- keine automatischen „to_string“-Funktionen für Aufzählungen
- wahrscheinlich weniger ausgefeilte Fehlerbehandlung
- Bietet nur echte Vorteile gegenüber der einfachen C-API
- Alles in einen Namensraum packen
- typsichere Aufzählungen
- automatische Prüfung auf kritische Fehler
- Strukturkonstruktoren (sType-Einstellungen, Standardinitialisierung)
- „Vektorisierung“ von Funktionen
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
ist gültig
- Verfügt über einen anderen (optionalen) dynamischen Versandmechanismus. vkpp ermöglicht den dynamischen Versand implizit, wenn Sie dies wünschen (könnte für Android nützlich sein)
- Nachteil: Wird nicht mit dem Vulkan SDK/Vulkan-Paket geliefert
- Dies bedeutet, dass bei Verwendung dieser API möglicherweise Probleme mit der Versionskompatibilität auftreten (verwenden Sie einfach das richtige Git-Tag, das zu Ihrer installierten vulkan.h-Version für Ihre Projekte passt).
Wenn Sie eine der oben genannten, nicht unterstützten Funktionen benötigen, schauen Sie sich vulkan-hpp an (oder wenn Sie denken, dass sie hier sinnvoll sind, beschreiben Sie sie mit Begründung in einem Problem). Problemberichte, Beiträge und Vorschläge sind willkommen!
Versionierung
Sie können die Vulkan-Version ändern, für die die Header generiert werden, indem Sie die vk.xml
durch die Version ersetzen, die Sie verwenden möchten. Beachten Sie, dass Sie meson mit -Dregen=true
(oder -Dvkpp:regen=true
wenn Sie vkpp als Unterprojekt verwenden) konfigurieren müssen, um die Header neu zu generieren. Der aktuelle Generator unterstützt auch nicht alle Versionen, da das Vulkan-XML-Spezifikationsformat im Laufe der Zeit einige erhebliche (nicht abwärtskompatible) Änderungen aufweist. Für einige Vulkan-Versionen gibt es spezielle Git-Commits, die Sie einfach verwenden können.