バッファやdescriptor setをGPUポインターとdescriptor heapで置き換える、Metal 4とVulkan 1.4向けの最小構成のC++20グラフィックスライブラリです。
KhronosGroup/Vulkan-Hpp
Vulkan C APIのヘッダーオンリーC++バインディング。型安全なenum、STL対応、例外、RAIIハンドルを提供します。
- スター
- 3,818
- フォーク
- 374
- 未解決の Issue
- 29
- 最終コミット
- 3 日前
これは何?
Vulkan-Hppは、Vulkan C APIをラップするヘッダーオンリーのC++ラッパーです。実行時のCPUオーバーヘッドを増やさずに、C++でVulkanコードを書きやすくすることを目指しています。enumやビットフィールドの型安全性、STLコンテナ対応、例外ベースのエラーハンドリングに加え、RAIIに対応する複数のハンドル型を提供します。
このリポジトリには、VulkanのXML仕様を読み込んでC++ヘッダーを生成するジェネレーターが含まれています。ドキュメントでは、ヘッダーのビルドと再生成方法、使用例、設定マクロ、およびunique_ptrのようなセマンティクス、shared_ptrのようなセマンティクス、vk::raiiのセマンティクスを提供する3種類のハンドルファミリーについて説明しています。Vulkan C APIの設定マクロも引き続き利用できます。
ヘッダーはLunarG Vulkan SDKとKhronos Vulkan-Headersリポジトリに同梱されており、vcpkgとConanでもパッケージとして提供されています。継続的インテグレーションでは、Windows、Linux、macOS(MoltenVK経由)上でGCC、Clang、MSVCをテストしています。
主な機能
- 01ヘッダーオンリーで、別途ライブラリをリンクする必要がない
- 02型安全なenumとビットフィールド
- 03STLコンテナ対応と例外ベースのエラーハンドリング
- 04vk::raiiを含む複数のRAIIハンドルファミリー
- 05公式のVulkan XML仕様から生成されるヘッダー
- 06Vulkan SDK、vcpkg、Conanから利用可能
ユースケース
- モダンなC++でVulkanレンダラーやコンピュート処理を書く
- Vulkanアプリケーションの定型コードと手動でのリソース解放を減らす
- 名前付きのvulkanモジュールを使ってC++モジュール対応のVulkanプロジェクトをビルドする
クイックスタート
- 1
vcpkgでVulkan-Hppをインストールする:vcpkgリポジトリをクローンする
git clone https://github.com/Microsoft/vcpkg.git - 2
vcpkgのディレクトリからvcpkgをブートストラップする
cd vcpkg && ./bootstrap-vcpkg.sh - 3
Vulkan-Hppを含むvulkan-headersポートをインストールする
./vcpkg install vulkan-headers
使う前に知っておきたいこと
- 使用する機能によっては、C++モジュールまたは新しいC++標準に対応したC++コンパイラが必要です。
- 推奨されるインストール方法はLunarG Vulkan SDKの利用であるため、単独で使用する場合は追加のセットアップが必要になることがあります。
収録されている特集
トピック
よくある質問
- Vulkan-Hpp とは?
- Vulkan C APIのヘッダーオンリーC++バインディング。型安全なenum、STL対応、例外、RAIIハンドルを提供します。 Vulkan-Hppは、Vulkan C APIをラップするヘッダーオンリーのC++ラッパーです。実行時のCPUオーバーヘッドを増やさずに、C++でVulkanコードを書きやすくすることを目指しています。enumやビットフィールドの型安全性、STLコンテナ対応、例外ベースのエラーハンドリングに加え、RAIIに対応する複数のハンドル型を提供します。
- Vulkan-Hpp は無料で使えますか?ライセンスは?
- Vulkan-Hpp は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- Vulkan-Hpp は今もメンテナンスされていますか?
- 活発にメンテナンス中。Vulkan-Hpp の最終コミットは 2026年11月4日 です。
- Vulkan-Hpp は何に使えますか?
- モダンなC++でVulkanレンダラーやコンピュート処理を書く Vulkanアプリケーションの定型コードと手動でのリソース解放を減らす 名前付きのvulkanモジュールを使ってC++モジュール対応のVulkanプロジェクトをビルドする
- Vulkan-Hpp のインストール方法は?
- vcpkgでVulkan-Hppをインストールする:vcpkgリポジトリをクローンする: git clone https://github.com/Microsoft/vcpkg.git vcpkgのディレクトリからvcpkgをブートストラップする: cd vcpkg && ./bootstrap-vcpkg.sh Vulkan-Hppを含むvulkan-headersポートをインストールする: ./vcpkg install vulkan-headers
- Vulkan-Hpp はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/KhronosGroup/Vulkan-Hpp
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Direct3D、Metal、OpenGL、Vulkan、WebGLを抽象化し、独自のエンジンと組み合わせて使えるクロスプラットフォームのC++レンダリングライブラリ。
公式仕様からOpenGL、Vulkan、EGL、GLX、WGLなどのC/C++ほか各言語向けバインディングを生成するローダージェネレーター。
共有GPU状態をなくし、描画呼び出しをコマンドとして記述して最適化済みJavaScriptにコンパイルできる、関数型のWebGLラッパー。
Pythonでコンパイラパイプラインをカスタマイズし、多様なハードウェアにモデルをデプロイできるオープンな機械学習コンパイルフレームワーク。