Generator api vulkan C++
Menghasilkan api C++ dari spesifikasi vulkan. Perbandingan dengan vulkan-hpp:
- vkpp dibuat dengan mempertimbangkan kesederhanaan dan waktu kompilasi, lebih ringan
- TIDAK menghasilkan header LOC hampir 30K monolitik (pembaruan: vulkan-hpp sekarang mencapai >110K LOC dan terus berkembang)
- membagi penggunaan menjadi beberapa header, yang memungkinkan Anda misalnya hanya menggunakan deklarasi penerusan (kurang dari 1K LOC) di header publik Anda
- fitur yang lebih sedikit
- tidak memodelkan segala sesuatu yang berorientasi objek
- tidak ada fungsi 'to_string' otomatis untuk enum
- mungkin penanganan kesalahan yang kurang canggih
- Hanya menawarkan keuntungan nyata dibandingkan C api biasa
- menempatkan semuanya dalam namespace
- enum yang aman untuk mengetik
- pemeriksaan kesalahan kritis otomatis
- konstruktor struktur (pengaturan sType, inisialisasi default)
- 'vektorisasi' fungsi
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
valid
- Memiliki mekanisme pengiriman dinamis (opsional) yang berbeda. vkpp memungkinkan pengiriman dinamis secara implisit jika Anda menginginkannya (dapat berguna untuk Android)
- Kekurangan: tidak dikirimkan dengan paket vulkan SDK/vulkan
- ini berarti Anda mungkin mendapatkan masalah dengan kompatibilitas versi menggunakan api ini (cukup gunakan tag git yang benar yang cocok dengan versi vulkan.h yang Anda instal untuk proyek Anda)
Jika Anda memerlukan salah satu fitur yang tidak didukung yang disebutkan di atas, lihat vulkan-hpp (atau jika menurut Anda fitur tersebut masuk akal di sini, jelaskan dengan alasan dalam suatu masalah). Laporan masalah, kontribusi dan saran dihargai!
Pembuatan versi
Anda dapat mengubah versi vulkan yang headernya dibuat dengan mengganti vk.xml
dengan versi yang ingin Anda gunakan. Perhatikan bahwa Anda harus mengonfigurasi meson dengan -Dregen=true
(atau -Dvkpp:regen=true
jika Anda menggunakan vkpp sebagai subproyek) untuk membuat ulang header. Generator saat ini juga tidak mendukung semua versi karena format spesifikasi vulkan xml mengalami beberapa perubahan signifikan (tidak kompatibel dengan versi sebelumnya) seiring waktu. Untuk beberapa versi vulkan, ada komitmen git khusus yang dapat Anda gunakan.