Generador de API vulkan de C++
Genera una API de C++ a partir de la especificación vulkan. Comparación con vulkan-hpp:
- vkpp creado teniendo en cuenta la simplicidad y el tiempo de compilación, más liviano
- NO produce un encabezado LOC monolítico de casi 30K (actualización: vulkan-hpp ahora alcanza >110K LOC y continúa creciendo)
- divide el uso en múltiples encabezados, lo que le permite, por ejemplo, usar solo las declaraciones directas (menos de 1K LOC) en sus encabezados públicos
- menos funciones
- no modela todo orientado a objetos
- no hay funciones automáticas 'to_string' para enumeraciones
- probablemente un manejo de errores menos sofisticado
- Solo ofrece ventajas reales sobre la API C simple
- poniendo todo en un espacio de nombres
- enumeraciones con seguridad de tipos
- comprobación automática de errores críticos
- constructores de estructuras (configuraciones de sType, inicialización predeterminada)
- 'vectorización' de funciones
-
vk::queueSubmit(queue, {info1, info2, info3}, fence)
es válido
- Tiene un mecanismo de despacho dinámico diferente (opcional). vkpp permite realizar envíos implícitos dinámicamente si así lo desea (podría ser útil para Android)
- Desventaja: no se envía con el paquete vulkan sdk/vulkan
- esto significa que puede tener problemas con las compatibilidades de versiones al usar esta API (simplemente use la etiqueta git correcta que coincida con su versión vulkan.h instalada para sus proyectos)
Si necesita una de las funciones no compatibles mencionadas anteriormente, consulte vulkan-hpp (o si cree que son razonables aquí, descríbalas con el razonamiento en un problema). ¡Se agradecen informes de ediciones, contribuciones y sugerencias!
Versionado
Puede cambiar la versión de vulkan para la cual se generan los encabezados reemplazando vk.xml
con la versión que desea usar. Tenga en cuenta que debe configurar meson con -Dregen=true
(o -Dvkpp:regen=true
si está utilizando vkpp como subproyecto) para regenerar los encabezados. El generador actual tampoco es compatible con todas las versiones, ya que el formato de especificación vulkan xml tiene algunos cambios significativos (no compatibles con versiones anteriores) a lo largo del tiempo. Para algunas versiones de vulkan, existen confirmaciones de git específicas que simplemente puedes usar.