مولد C++ فولكان API
يُنشئ واجهة برمجة تطبيقات C++ من مواصفات vulkan. مقارنة بـ vulkan-hpp:
- تم إنشاء vkpp مع مراعاة البساطة ووقت الترجمة، وأكثر خفة الوزن
- لا تنتج رأس LOC متجانسًا يصل إلى 30 ألفًا تقريبًا (التحديث: يصل حجم vulkan-hpp إلى > 110 ألف LOC الآن ويستمر في النمو)
- يقسم الاستخدام إلى رؤوس متعددة، مما يسمح لك على سبيل المثال باستخدام التصريحات الأمامية فقط (أقل من 1 ألف LOC) في رؤوسك العامة
- ميزات أقل
- لا نموذج كل شيء وجوه المنحى
- لا توجد وظائف "to_string" تلقائية للتعدادات
- ربما تكون معالجة الأخطاء أقل تعقيدًا
- لا يقدم سوى مزايا حقيقية مقارنة بواجهة برمجة تطبيقات C العادية
- وضع كل شيء في مساحة الاسم
- التعدادات الآمنة
- التحقق التلقائي من الأخطاء الجسيمة
- منشئو البنية (إعدادات sType، التهيئة الافتراضية)
- "توجيه" الوظائف
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
صالح
- لديه آلية إرسال ديناميكية مختلفة (اختيارية). يسمح vkpp بالإرسال ضمنيًا ديناميكيًا إذا كنت ترغب في ذلك (قد يكون مفيدًا لنظام Android)
- العيب: لا يتم شحنه مع حزمة vulkan sdk/vulkan
- هذا يعني أنك قد تواجه مشكلات تتعلق بتوافق الإصدارات باستخدام واجهة برمجة التطبيقات هذه (فقط استخدم علامة git الصحيحة التي تطابق إصدار vulkan.h المثبت لديك لمشاريعك)
إذا كنت بحاجة إلى إحدى الميزات غير المدعومة المذكورة أعلاه، فاطلع على vulkan-hpp (أو إذا كنت تعتقد أنها معقولة هنا، فقم بوصفها مع توضيح المشكلة). إصدار التقارير والمساهمات والاقتراحات موضع تقدير!
الإصدار
يمكنك تغيير إصدار vulkan الذي يتم إنشاء الرؤوس له عن طريق استبدال vk.xml
بالإصدار الذي تريد استخدامه. لاحظ أنه يتعين عليك تكوين meson باستخدام -Dregen=true
(أو -Dvkpp:regen=true
إذا كنت تستخدم vkpp كمشروع فرعي) لإعادة إنشاء الرؤوس. لا يدعم المولد الحالي أيضًا جميع الإصدارات نظرًا لأن تنسيق مواصفات vulkan xml يحتوي على بعض التغييرات المهمة (غير المتوافقة مع الإصدارات السابقة) بمرور الوقت. بالنسبة لبعض إصدارات Vulkan، هناك التزامات git محددة يمكنك استخدامها ببساطة.