#vulkan #graphics #gpu #ffi #rendering

nobs-vulkanism

用于窗口渲染的 vulkan

1 个不稳定版本

0.1.0 2019年2月24日

#1066图形 API

MIT 许可证

90KB
2K SLoC

nobs-vulkanism

编译 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);
  //...
}

依赖项

~3–13MB
~137K SLoC