[][src]Trait gfx_hal::Instance

pub trait Instance<B: Backend>: Any + Send + Sync + Sized {
    fn create(name: &str, version: u32) -> Result<Self, UnsupportedBackend>;
fn enumerate_adapters(&self) -> Vec<Adapter<B>>;
unsafe fn create_surface(
        &self,
        _: &impl HasRawWindowHandle
    ) -> Result<B::Surface, InitError>;
unsafe fn destroy_surface(&self, surface: B::Surface); }

An instantiated backend.

Any startup the backend needs to perform will be done when creating the type that implements Instance.

Examples

use gfx_backend_empty as backend;
use gfx_hal as hal;

// Create a concrete instance of our backend (this is backend-dependent and may be more
// complicated for some backends).
let instance = backend::Instance;
// We can get a list of the available adapters, which are either physical graphics
// devices, or virtual adapters. Because we are using the dummy `empty` backend,
// there will be nothing in this list.
for (idx, adapter) in hal::Instance::enumerate_adapters(&instance).iter().enumerate() {
    println!("Adapter {}: {:?}", idx, adapter.info);
}

Required methods

fn create(name: &str, version: u32) -> Result<Self, UnsupportedBackend>

Create a new instance.

fn enumerate_adapters(&self) -> Vec<Adapter<B>>

Return all available adapters.

unsafe fn create_surface(
    &self,
    _: &impl HasRawWindowHandle
) -> Result<B::Surface, InitError>

Create a new surface.

unsafe fn destroy_surface(&self, surface: B::Surface)

Destroy a surface.

The surface shouldn't be destroyed before the attached swapchain is destroyed.

Loading content...

Implementors

Loading content...