7 个版本
0.3.1 | 2022 年 7 月 13 日 |
---|---|
0.3.0 | 2022 年 7 月 10 日 |
0.2.1 | 2022 年 6 月 3 日 |
0.2.0 | 2022 年 4 月 13 日 |
0.1.2 | 2022 年 4 月 13 日 |
#483 in 图形 API
42KB
887 行
VkProfiles RS
Rust 使用 Ash 的 Rust 对 Vulkan Profiles 库的绑定。该包设计得尽可能接近 Ash,以便于使用。
注意:在 ash 中必须静态链接 vulkan 加载器
其他依赖
这些是构建 vulkan profiles 库所必需的
- C++ 编译器
- CMake
- Vulkan SDK。构建只需要 vulkan 头文件。
许可
根据以下任一许可使用
- Apache 许可证 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT 许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
由你选择。
贡献
除非你明确说明,否则根据 Apache-2.0 许可证定义,你提交的任何有意包含在作品中的贡献都应如上所述双重许可,无需任何附加条款或条件。
lib.rs
:
Vulkan Profiles 库
https://github.com/KhronosGroup/Vulkan-Profiles
示例
use ash::vk;
use vk_profiles_rs::vp;
// Load the function pointers
let vk_profiles = vk_profiles_rs::VulkanProfiles::linked();
// Select the lunarg desktop portability 2021 profile and test instance support
let profile = vp::LunargDesktopPortability2021::profile_properties();
assert!(unsafe { vk_profiles.get_instance_profile_support(None, &profile)? });
let instance_info = vk::InstanceCreateInfo::builder();
let vp_instance_info = vp::InstanceCreateInfo::builder()
.create_info(&instance_info)
.profile(&profile);
let entry = ash::Entry::linked();
// The created instance is a standard [ash::Instance]
let instance = unsafe { vk_profiles.create_instance(&entry, &vp_instance_info, None)? };
Ash 设计模式
该包尽可能使用 ash 设计模式,以实现无缝使用。结构体有构建器版本,枚举使用相同的结构等。
重要说明
目前仅支持静态链接。这意味着 vulkan 加载器也必须在 ash 中静态链接。
依赖
~5.5MB
~130K SLoC