C++ vulkan api 生成器
從 vulkan 規格產生 C++ api。與 vulkan-hpp 的比較:
- vkpp 在創建時考慮了簡單性和編譯時,更輕量級
- 不會產生幾乎 30K LOC 的整體標頭(更新:vulkan-hpp 現在高達 >110K LOC 並繼續增長)
- 將使用拆分為多個標頭,這允許您在公共標頭中僅使用前向聲明(小於 1K LOC)
- 更少的功能
- 並沒有對一切進行物件導向建模
- 枚舉沒有自動“to_string”函數
- 可能不太複雜的錯誤處理
- 只比普通 C api 提供真正的優勢
- 將所有內容放在名稱空間中
- 類型安全枚舉
- 自動嚴重錯誤檢查
- 結構體建構子(sType設定、預設初始化)
- 函數的“矢量化”
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
有效
- 具有不同的(可選)動態調度機制。如果您願意,vkpp 允許隱式動態分派(對 android 可能有用)
- 缺點:不隨 vulkan sdk/vulkan 包提供
- 這表示您可能會在使用此 api 時遇到版本相容性問題(只需使用與您為專案安裝的 vulkan.h 版本相符的正確 git 標籤)
如果您需要上述不支援的功能之一,請查看 vulkan-hpp (或者如果您認為它們在這裡合理,請在問題中用推理來描述它們)。感謝問題報告、貢獻與建議!
版本控制
您可以透過將vk.xml
替換為您要使用的版本來變更產生標頭的 vulkan 版本。請注意,您必須使用-Dregen=true
(或-Dvkpp:regen=true
如果您使用 vkpp 作為子項目)配置 meson 來重新產生標頭。目前的生成器也不支援所有版本,因為 vulkan xml 規範格式隨著時間的推移而發生了一些重大(不向後相容)的變化。對於某些 vulkan 版本,您可以簡單地使用特定的 git 提交。