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

MIT/Apache

42KB
887

VkProfiles RS

Rust 使用 Ash 的 Rust 对 Vulkan Profiles 库的绑定。该包设计得尽可能接近 Ash,以便于使用。

注意:在 ash 中必须静态链接 vulkan 加载器

其他依赖

这些是构建 vulkan profiles 库所必需的

  • C++ 编译器
  • CMake
  • Vulkan SDK。构建只需要 vulkan 头文件。

许可

根据以下任一许可使用

由你选择。

贡献

除非你明确说明,否则根据 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