#vulkan #graphics #gpu #ffi #rendering

nobs-vulkanism-headless

离屏渲染和计算用的 vulkan

1 个不稳定版本

0.1.0 2019 年 2 月 24 日

#836 in 图形 API


nobs-vulkanism 中使用

MIT 许可证

1MB
19K SLoC

nobs-vulkanism-headless

将 vulkanism 模块编译成渲染到窗口的程序

这个库是所有 vulkanism 模块的一个精选。包括

重新排列模块命名空间,这样我们只需要使用一个 外部 crate nobs_vulkanism 指令。

示例

extern crate nobs_vulkanism as vk;

fn main() {
  // nobs-vk Symbols remain in vk::*
  let lib = vk::Core::new();
  let inst = vk::instance::new()
    .validate(vk::DEBUG_REPORT_ERROR_BIT_EXT | vk::DEBUG_REPORT_WARNING_BIT_EXT)
    .application("awesome app", 0)
    .add_extension(vk::KHR_SURFACE_EXTENSION_NAME)
    .add_extension(vk::KHR_XLIB_SURFACE_EXTENSION_NAME)
    .create(lib)
    .unwrap();

  let (pdevice, device) = vk::device::PhysicalDevice::enumerate_all(inst.handle)
    .remove(0)
    .into_device()
    .add_extension(vk::KHR_SWAPCHAIN_EXTENSION_NAME)
    .add_queue(vk::device::QueueProperties {
      present: false,
      graphics: true,
      compute: true,
      transfer: true,
    })
    .create()
    .unwrap();

  // Symbols of dependent moduls are put in their own namespace within vk::
  // e.g.:
  let mut allocator = vk::mem::Allocator::new(pdevice.handle, device.handle);
  //...
}

依赖项