C++ 불칸 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를 사용하면 원하는 경우 암시적으로 동적으로 디스패치할 수 있습니다(안드로이드에 유용할 수 있음).
- 단점: Vulkan SDK/Vulkan 패키지와 함께 제공되지 않음
- 이는 이 API를 사용하면 버전 호환성 문제가 발생할 수 있음을 의미합니다(프로젝트에 설치된 vulkan.h 버전과 일치하는 올바른 git 태그를 사용하면 됩니다).
위에 언급된 지원되지 않는 기능 중 하나가 필요한 경우 vulkan-hpp를 확인하세요(또는 여기에서 합리적이라고 생각하는 경우 문제에 대한 추론을 설명하세요). 문제 보고서, 기여 및 제안에 감사드립니다!
버전 관리
vk.xml
을 사용하려는 버전으로 대체하여 헤더가 생성되는 vulkan 버전을 변경할 수 있습니다. 헤더를 재생성하려면 -Dregen=true
(또는 vkpp를 하위 프로젝트로 사용하는 경우 -Dvkpp:regen=true
)로 meson을 구성해야 합니다. vulkan xml 사양 형식에는 시간이 지남에 따라 일부 중요한(이전 버전과 호환되지 않음) 변경이 있기 때문에 현재 생성기는 모든 버전을 지원하지 않습니다. 일부 vulkan 버전의 경우 간단히 사용할 수 있는 특정 git 커밋이 있습니다.