22 个重大版本

0.23.0+213 2022 年 11 月 14 日
0.22.0+204 2022 年 1 月 25 日
0.21.0+202 2021 年 12 月 11 日
0.20.0+190 2021 年 8 月 30 日
0.11.0+148 2020 年 7 月 21 日

#294图形 API

Download history 91/week @ 2024-04-23 56/week @ 2024-04-30 61/week @ 2024-05-07 67/week @ 2024-05-14 78/week @ 2024-05-21 63/week @ 2024-05-28 48/week @ 2024-06-04 48/week @ 2024-06-11 58/week @ 2024-06-18 56/week @ 2024-06-25 4/week @ 2024-07-02 21/week @ 2024-07-09 48/week @ 2024-07-16 27/week @ 2024-07-23 210/week @ 2024-07-30 45/week @ 2024-08-06

332 每月下载量
9 个 Crates 中使用 (8 个直接使用)

Zlib 许可证

6MB
142K SLoC

erupt

docs.rs crates.io

Vulkan API 绑定

请参阅 erupt 用户指南

维护模式通知

不推荐使用 erupt 用于新项目,请使用 ash。正在进行重写 ash 的工作,使用 erupt 项目的想法,更新请参阅 https://github.com/ash-rs/ash/issues/344。erupt 的简单补丁仍然会被合并,但预期不会有大的更改。

功能

  • 完全覆盖 Vulkan API
  • 对所有扩展的第一类支持
  • 高质量自动生成的函数包装器
  • 一个辅助您使用此 crate 的 实用模块
  • 生成代码分布到多个模块中
  • 函数加载 (EntryLoader, InstanceLoader, DeviceLoader)
  • 单独的 FlagsFlagBits 类型
  • 每个结构体的 Builder 高级功能
  • 支持类型安全的指针链
  • 每个类型的 DefaultDebug 实现
  • 已确认支持 Linux、Windows、macOS 和 Android
  • 除了utils之外,自动生成一切内容

示例:实例创建

use erupt::{vk, EntryLoader, InstanceLoader};

let entry = EntryLoader::new()?;

let app_info = vk::ApplicationInfoBuilder::new()
    .api_version(vk::API_VERSION_1_1);
let instance_info = vk::InstanceCreateInfoBuilder::new()
    .application_info(&app_info);
let instance = InstanceLoader::new(&entry, &instance_info)?;

// ...

instance.destroy_instance(None);

更多示例

Cargo特性

常见问题解答

问:这个、ash和vulkano有什么区别?

答:Vulkano特别之处在于它提供了手写的Vulkan封装器,这意味着例如它有一个特殊的围绕Vulkan PhysicalDevice的手写封装器。另一方面,ash和erupt都提供了Vulkan API绑定,但不暴露这种花哨的封装器,而是专注于拥有对原始 Vulkan API的良好绑定。

erupt的卖点在于它有更好的文档,对所有扩展的高层函数支持(这只有在您使用这些扩展时才有实际意义),完全生成以及一些小的改进。另一方面,ash有一个更大的现有社区。

问:版本号末尾的数字代表什么?

答:它代表erupt版本所针对的Vulkan头文件版本,仅用于信息。

生态系统

初始化

内存分配

最低支持的Rust版本(MSRV)

Rust 1.48或更高版本。

感谢

许可

标志是Twemoji许可)的火山表情符号。在它上面添加了“erupt”这个名字。

本项目采用zlib许可

依赖项