1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
//! vulkan for offscreen rendering and compute //! //! This library compiles the nobs-vk base crates into a single depencency and introduces two more moduls: //! - [cmd](cmd/index.html) - Handles command buffers and syrchronization //! - [fm](fb/index.html) - Handles renderpass and framebuffer management //! //! Rearranges module namespaces, so that we only have to use a single `external crate nobs_vulkanism` instruction instead of //! the all three depencencies (nobs-vk, nobs-vkmem, nobs-vkpipes). Inlines the nobs-vk Symbols into thes crates root namespace. //! for nobs-vkmem and nobs-vkpipes the modules `mem` and `pipes` are created respectively. //! //! ## Example //! ```rust //! extern crate nobs_vulkanism_headless as vk; //! //! fn main() { //! // nobs-vk Symbols remain in vk::* //! let lib = vk::VkLib::new(); //! let inst = vk::instance::new() //! .validate(vk::DEBUG_REPORT_ERROR_BIT_EXT | vk::DEBUG_REPORT_WARNING_BIT_EXT) //! .application("awesome app", 0) //! .create(lib) //! .unwrap(); //! //! let (pdevice, device) = vk::device::PhysicalDevice::enumerate_all(inst.handle) //! .remove(0) //! .into_device() //! .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); //! //... //! } //! ``` #[macro_use] extern crate nobs_vk as vk; extern crate nobs_vkmem; extern crate nobs_vkpipes; pub use vk::*; /// See [nobs_vkmem](../nobs_vkmem/index.html) pub mod mem { pub use nobs_vkmem::*; } /// See [nobs_vkpipes](../nobs_vkpipes/index.html) pub mod pipes { pub use nobs_vkpipes::*; } pub mod cmd; pub mod fb;