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 |
|
#540 在 游戏开发
每月下载量 35
96KB
1.5K SLoC
erupt-bootstrap
Vulkan Bootstrapping库,受vk-bootstrap
启发。
- ✅ 实例创建
- ✅ 物理设备选择
- ✅ 设备创建
- ✅ 获取队列
- ✅ 处理交换链 (由Ralith提供 - 感谢!)
维护模式通知
由于erupt处于维护模式,不建议用于新项目。目前正在使用erupt项目中的想法重写ash,有关更新请参阅https://github.com/ash-rs/ash/issues/344。一旦这项工作完成,erupt-bootstrap的功能将以某种形式重新提供。erupt-bootstrap仍将合并简单的补丁,但不会预期有大的改动。
Cargo功能
surface
(默认启用):启用raw-window-handle
的使用。
示例
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