เครื่องกำเนิด C++ vulkan api
สร้าง C++ api จากข้อมูลจำเพาะ vulkan เปรียบเทียบ กับวัลแคน-hpp:
- vkpp สร้างขึ้นโดยคำนึงถึงความเรียบง่ายและเวลาคอมไพล์ โดยมีน้ำหนักเบากว่า
- ไม่สร้างส่วนหัว LOC แบบเสาหินเกือบ 30K (อัปเดต: vulkan-hpp สูงถึง> 110K LOC ในขณะนี้และยังคงเติบโตต่อไป)
- แบ่งการใช้งานออกเป็นหลายส่วนหัว ซึ่งช่วยให้คุณใช้เฉพาะการประกาศไปข้างหน้า (น้อยกว่า 1K LOC) ในส่วนหัวสาธารณะของคุณ
- คุณสมบัติน้อยลง
- ไม่ได้สร้างแบบจำลองทุกอย่างเชิงวัตถุ
- ไม่มีฟังก์ชัน 'to_string' อัตโนมัติสำหรับแจงนับ
- การจัดการข้อผิดพลาดอาจซับซ้อนน้อยกว่า
- ให้ข้อได้เปรียบที่แท้จริงมากกว่า C api ธรรมดาเท่านั้น
- วางทุกอย่างไว้ในเนมสเปซ
- ประเภทที่ปลอดภัย enums
- การตรวจสอบข้อผิดพลาดร้ายแรงโดยอัตโนมัติ
- ตัวสร้างโครงสร้าง (การตั้งค่า sType การเริ่มต้นเริ่มต้น)
- 'เวกเตอร์' ของฟังก์ชัน
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
ถูกต้อง
- มีกลไกการจัดส่งแบบไดนามิกที่แตกต่างกัน (เป็นทางเลือก) vkpp อนุญาตให้ส่งแบบไดนามิกโดยปริยายหากคุณต้องการ (อาจมีประโยชน์สำหรับ Android)
- ข้อเสีย: ไม่ได้จัดส่งมาพร้อมกับแพ็คเกจ vulkan sdk/vulkan
- ซึ่งหมายความว่าคุณอาจประสบปัญหาเกี่ยวกับความเข้ากันได้ของเวอร์ชันโดยใช้ API นี้ (เพียงใช้แท็ก git ที่ถูกต้องซึ่งตรงกับเวอร์ชัน vulkan.h ที่คุณติดตั้งไว้สำหรับโครงการของคุณ)
หากคุณต้องการคุณสมบัติที่ไม่รองรับอย่างใดอย่างหนึ่งที่กล่าวถึงข้างต้น ลองดู vulkan-hpp (หรือหากคุณคิดว่าคุณสมบัติเหล่านี้สมเหตุสมผลที่นี่ ให้อธิบายคุณสมบัติเหล่านั้นพร้อมให้เหตุผลในปัญหา) รายงานปัญหา การมีส่วนร่วม และข้อเสนอแนะชื่นชม!
การกำหนดเวอร์ชัน
คุณสามารถเปลี่ยนเวอร์ชัน vulkan ที่สร้างส่วนหัวได้โดยการแทนที่ vk.xml
ด้วยเวอร์ชันที่คุณต้องการใช้ โปรดทราบว่าคุณต้องกำหนดค่า meson ด้วย -Dregen=true
(หรือ -Dvkpp:regen=true
หากคุณใช้ vkpp เป็นโปรเจ็กต์ย่อย) เพื่อสร้างส่วนหัวใหม่ ตัวสร้างปัจจุบันไม่รองรับทุกเวอร์ชันเนื่องจากรูปแบบข้อมูลจำเพาะ vulkan xml มีการเปลี่ยนแปลงที่สำคัญ (ไม่รองรับแบบย้อนหลัง) เมื่อเวลาผ่านไป สำหรับเวอร์ชัน vulkan บางเวอร์ชัน มีคอมมิตเฉพาะที่คุณสามารถใช้ได้