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

Download history 110/week @ 2024-05-03 83/week @ 2024-05-10 91/week @ 2024-05-17 125/week @ 2024-05-24 134/week @ 2024-05-31 75/week @ 2024-06-07 87/week @ 2024-06-14 110/week @ 2024-06-21 58/week @ 2024-06-28 83/week @ 2024-07-05 96/week @ 2024-07-12 211/week @ 2024-07-19 277/week @ 2024-07-26 95/week @ 2024-08-02 105/week @ 2024-08-09 63/week @ 2024-08-16

每月558 次下载
3 个crate中(2个直接使用) 使用

Apache-2.0

2MB
48K SLoC

vulkanalia

Crate Documentation CI MSRV

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。

vulkanaliavulkanalia-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特性coreError特性的使用尚未稳定,需要启用core-error功能)

示例

请参阅examples目录以查看使用《vulkanalia》实现的经典三角形示例。

依赖项