[][src]Module rhyoea::instance

The primary connection between your application and the Vulkan library.

It involves specifying some details about your application to the driver.

Examples

Minimal :

use rhyoea::instance::{application::Application, Instance};
use rhyoea::result::InstanceError;

let application = Application::default();
let _ = Instance::new(&application, vec![], vec![])?;

With a application:

use rhyoea::instance::{application::Application, application::Engine, version::Version, Instance};
use rhyoea::result::InstanceError;

let application_version = Version::new(1, 0, 0);

let engine_version = Version::new(1, 0, 0);
let api_version = Version::new(1, 1, 82);
let engine = Engine::new("buzz".to_string(), engine_version, api_version)?;

let application = Application::new(
    "qux".to_string(),
    application_version,
    engine
)?;

let _ = Instance::new(&application, vec![], vec![])?;

Complete, with application informations and extends. To more informations about the extends see the Vulkan referance

use rhyoea::instance::{application::Application, application::Engine, version::Version, Instance};
use rhyoea::result::InstanceError;
use rhyoea::extends::{Extends, Extensions, Layers};

let application_version = Version::new(1, 0, 0);

let engine_version = Version::new(1, 0, 0);
let api_version = Version::new(1, 1, 82);
let engine = Engine::new("buzz".to_string(), engine_version, api_version)?;

let application = Application::new(
    "qux".to_string(),
    application_version,
    engine
)?;

let extensions = Extensions::available()
    .into_iter()
    .filter(|extension| extension.name() == "VK_EXT_debug_report" )
    .collect();

let layers: Vec <_> = Layers::available()
    .into_iter()
    .filter(|layer| layer.name() == "VK_LAYER_LUNARG_core_validation")
    .collect();

let _ = Instance::new(&application, extensions, layers)?;

Modules

application

rhyoea application metadata to construct an instance.

bind

TODO: Doc

information

TODO: Doc

version

Version number with the Vulkan convention

Structs

Instance

The Instance type. See the module level documentation for more

Traits

Connection

Connection between an application and the Vulkan library