基于 Metal 4 与 Vulkan 1.4 的极简 C++20 图形库,用 GPU 指针和描述符堆取代传统缓冲区与绑定模型。
KhronosGroup/Vulkan-Hpp
Vulkan C API 的纯头文件 C++ 绑定,提供类型安全枚举、STL 支持、异常与 RAII 句柄。
- Star
- 3,818
- Fork
- 374
- 未关闭 Issue
- 29
- 最近提交
- 3天前
这是什么?
Vulkan-Hpp 是对 Vulkan C API 的纯头文件 C++ 封装,目标是在不增加运行时 CPU 开销的前提下,让 Vulkan 代码更易于用 C++ 编写。绑定提供枚举与位域的类型安全、STL 容器支持、基于异常的错误处理,以及多种支持 RAII 的句柄类型。
仓库中包含生成器,它读取 Vulkan 的 XML 规范并输出 C++ 头文件。文档涵盖头文件的构建与重新生成、使用示例、配置宏,以及三类句柄(类似 unique_ptr、shared_ptr 和 vk::raii 语义)。C API 的配置宏同样可用。
头文件随 LunarG Vulkan SDK 和 Khronos Vulkan-Headers 仓库分发,并已提供 vcpkg 与 Conan 包。持续集成覆盖 Windows、Linux 和 macOS(通过 MoltenVK)上的 GCC、Clang 与 MSVC。
核心功能
- 01纯头文件,无需单独链接库
- 02枚举与位域的类型安全
- 03支持 STL 容器与基于异常的错误处理
- 04提供多种 RAII 句柄,包括 vk::raii
- 05头文件由官方 Vulkan XML 规范生成
- 06可通过 Vulkan SDK、vcpkg 和 Conan 获取
适用场景
- 使用现代 C++ 编写 Vulkan 渲染器或计算代码
- 减少 Vulkan 应用中的样板代码与手动资源释放
- 在使用 C++ 命名模块的项目中引入 vulkan 模块
快速上手
- 1
通过 vcpkg 安装 Vulkan-Hpp:克隆 vcpkg 仓库
git clone https://github.com/Microsoft/vcpkg.git - 2
在 vcpkg 目录中运行引导脚本
cd vcpkg && ./bootstrap-vcpkg.sh - 3
安装包含 Vulkan-Hpp 的 vulkan-headers 组件
./vcpkg install vulkan-headers
使用前须知
- 需要支持较新 C++ 标准的编译器,具体取决于所用功能。
- README 推荐通过 LunarG Vulkan SDK 安装,单独使用可能需要额外配置。
收录于专题
标签
常见问题
- Vulkan-Hpp 是什么?
- Vulkan C API 的纯头文件 C++ 绑定,提供类型安全枚举、STL 支持、异常与 RAII 句柄。 Vulkan-Hpp 是对 Vulkan C API 的纯头文件 C++ 封装,目标是在不增加运行时 CPU 开销的前提下,让 Vulkan 代码更易于用 C++ 编写。绑定提供枚举与位域的类型安全、STL 容器支持、基于异常的错误处理,以及多种支持 RAII 的句柄类型。
- Vulkan-Hpp 可以免费使用吗?用的什么许可证?
- Vulkan-Hpp 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- Vulkan-Hpp 还在维护吗?
- 活跃维护中。Vulkan-Hpp 最近一次提交是在 2026年11月4日。
- Vulkan-Hpp 适合用来做什么?
- 使用现代 C++ 编写 Vulkan 渲染器或计算代码 减少 Vulkan 应用中的样板代码与手动资源释放 在使用 C++ 命名模块的项目中引入 vulkan 模块
- Vulkan-Hpp 怎么安装和运行?
- 通过 vcpkg 安装 Vulkan-Hpp:克隆 vcpkg 仓库: git clone https://github.com/Microsoft/vcpkg.git 在 vcpkg 目录中运行引导脚本: cd vcpkg && ./bootstrap-vcpkg.sh 安装包含 Vulkan-Hpp 的 vulkan-headers 组件: ./vcpkg install vulkan-headers
- 在哪里获取 Vulkan-Hpp?
- 源代码和安装说明在 GitHub 上:https://github.com/KhronosGroup/Vulkan-Hpp
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个跨平台 C++ 渲染库,统一封装 Direct3D、Metal、OpenGL、Vulkan 等图形 API,可接入自有引擎或框架。
根据官方规范生成 OpenGL、Vulkan、EGL 等图形 API 加载代码的工具,支持多种语言。
一个函数式 WebGL 封装库,通过消除共享状态,把绘制调用描述为命令并编译成优化后的 JavaScript。
开源机器学习编译框架,支持用 Python 定制编译流程,并将模型部署到多种硬件平台。