#vulkan #graphics #gamedev

erupt-bootstrap

Rust的vk-bootstrap

6个版本

0.3.0 2022年11月14日
0.2.3 2022年2月1日
0.2.2 2022年1月30日
0.1.0 2022年1月25日
0.0.0 2022年1月13日

#540游戏开发

每月下载量 35

Zlib许可证

96KB
1.5K SLoC

erupt-bootstrap

docs.rs crates.io

Vulkan Bootstrapping库,受vk-bootstrap启发。

维护模式通知

由于erupt处于维护模式,不建议用于新项目。目前正在使用erupt项目中的想法重写ash,有关更新请参阅https://github.com/ash-rs/ash/issues/344。一旦这项工作完成,erupt-bootstrap的功能将以某种形式重新提供。erupt-bootstrap仍将合并简单的补丁,但不会预期有大的改动。

Cargo功能

示例

let entry = erupt::EntryLoader::new().unwrap();
let instance_builder = InstanceBuilder::new()
    .validation_layers(ValidationLayers::Request)
    .request_debug_messenger(DebugMessenger::Default)
    .require_surface_extensions(&window)
    .unwrap();
let (instance, debug_messenger, instance_metadata) =
    unsafe { instance_builder.build(&entry) }.unwrap();

let surface =
    unsafe { erupt::utils::surface::create_surface(&instance, &window, None) }.unwrap();

let graphics_present = QueueFamilyCriteria::graphics_present();
let transfer = QueueFamilyCriteria::preferably_separate_transfer();

let device_features = vk::PhysicalDeviceFeatures2Builder::new()
    .features(vk::PhysicalDeviceFeaturesBuilder::new().build());

let device_builder = DeviceBuilder::new()
    .queue_family(graphics_present)
    .queue_family(transfer)
    .require_features(&device_features)
    .for_surface(surface);
let (device, device_metadata) =
    unsafe { device_builder.build(&instance, &instance_metadata) }.unwrap();
let graphics_present = device_metadata
    .device_queue(&instance, &device, graphics_present, 0)
    .unwrap()
    .unwrap();
let transfer = device_metadata
    .device_queue(&instance, &device, transfer, 0)
    .unwrap()
    .unwrap();

更多示例,请访问git仓库

许可

标志包含Twemoji的火山表情符号 (许可)。在火山上方添加了“erupt”这个名字。靴子是“Hiking Boot” from Openclipart,已进入公共领域。

本项目受zlib License许可。

vk-bootstrap,本项目的灵感来源,受MIT license许可。

依赖项

~7MB
~167K SLoC