23个重大版本发布
新 0.25.0 | 2024年8月23日 |
---|---|
0.24.0 | 2024年7月20日 |
0.23.0 | 2024年3月29日 |
0.22.0 | 2023年9月15日 |
0.2.3 | 2020年11月24日 |
#431 在 图形API 中
每月558 次下载
在 3 个crate中(2个直接使用) 使用
2MB
48K SLoC
vulkanalia
Rust的Vulkan绑定。
在Apache License 2.0下发布。
深受ash
crate的影响。
Vulkan教程
对于Vulkan的新用户,有https://vulkan-tutorial.com的完整改编版本,由Alexander Overvoorde编写,使用Rust和vulkanalia
而不是C++。该教程的发布版本可以在这里找到,该教程的源代码(包括每个章节的独立工作代码示例)在该仓库的tutorial
目录中。
概述
vulkanalia-sys
包含从Vulkan API注册表生成的Vulkan类型和命令签名。如果您想使用原始Vulkan API并愿意自己处理函数加载,则可以使用此crate。
vulkanalia
在vulkanalia-sys
周围提供了一个相当薄的包装,为您处理函数加载,并使Vulkan API的使用更加不易出错和更具Rust风格。有关vulkanalia
如何包装Vulkan API的详细概述,请参阅Vulkan教程中“概述”章节的“API概念”部分,该部分可在这里找到。
Cargo功能
《vulkanalia》crate具有以下值得注意的非默认Cargo功能
libloading
(非默认)- 允许与libloading
集成(添加了LibloadingLoader
结构体,可用于从Vulkan共享库中加载初始Vulkan命令)window
(非默认)- 允许与raw-window-handle
集成(添加了window
模块,可用于从支持raw-window-handle
的库(例如,winit
)创建窗口的表面)provisional
(非默认)- 允许访问临时Vulkan扩展(警告:这些扩展可能不具有向后兼容性,且不建议在生产应用程序中使用)
默认情况下,《vulkanalia-sys》和《vulkanalia》crate依赖于Rust标准库。然而,通过禁用这些crate的默认功能,您可以在no_std
环境中使用这两个crate之一。如果您这样做,以下功能值得关注
no_std_error
(非默认):在默认的std
功能未启用的情况下,为《vulkanalia》和《vulkanalia-sys》中的各种错误类型实现Error
特性(core
中Error
特性的使用尚未稳定,需要启用core-error
功能)
示例
请参阅examples
目录以查看使用《vulkanalia》实现的经典三角形示例。