Struct nannou::wgpu::AdapterMap

source ·
pub struct AdapterMap { /* private fields */ }
Expand description

A map from RequestAdapterOptions to active adapters.

Each time an adapter is requested via the App, it keeps track of which adapters are active. This is done in order to allow re-use of adapters and in turn re-use of logical devices and the sharing of resources between windows.

At the end of the application loop (after update and view have been called), adapters containing no active device connections are removed from the map.

Implementations§

source§

impl AdapterMap

source

pub fn get_or_request<'a, 'b>( &'a self, options: RequestAdapterOptions<&'b Surface>, instance: &'a Instance ) -> Option<Arc<ActiveAdapter>>

Check for an adaptor with the given options or request one.

First checks to see if an adapter for the given set of options is active. If so, returns a handle to this adapter. Otherwise, requests a new adapter via Adapter::request.

Returns None if there are no available adapters that meet the specified options.

source

pub fn request<'a, 'b>( &'a self, options: RequestAdapterOptions<&'b Surface>, instance: &'a Instance ) -> Option<Arc<ActiveAdapter>>

Request an adaptor with the given options.

This will always request a new adapter and will never attempt to share an existing one. The new adapter will take the place of the old within the map in the case that an existing active adapter exists.

Returns None if there are no available adapters that meet the specified options.

source

pub async fn get_or_request_async<'a, 'b>( &'a self, options: RequestAdapterOptions<&'b Surface>, instance: &'a Instance ) -> Option<Arc<ActiveAdapter>>

The async implementation of get_or_request.

source

pub async fn request_async<'a, 'b>( &'a self, options: RequestAdapterOptions<&'b Surface>, instance: &'b Instance ) -> Option<Arc<ActiveAdapter>>

The async implementation of request.

source

pub fn clear_inactive_adapters_and_devices(&self)

Clear all adapters that currently have no connected devices.

First clears all devices that no longer have any external references.

Trait Implementations§

source§

impl Default for AdapterMap

source§

fn default() -> AdapterMap

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<S, D, Swp, Dwp, T> AdaptInto<D, Swp, Dwp, T> for S
where T: Component + Float, Swp: WhitePoint, Dwp: WhitePoint, D: AdaptFrom<S, Swp, Dwp, T>,

source§

fn adapt_into_using<M>(self, method: M) -> D
where M: TransformMatrix<Swp, Dwp, T>,

Convert the source color to the destination color using the specified method
source§

fn adapt_into(self) -> D

Convert the source color to the destination color using the bradford method by default
source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T, U> ConvertInto<U> for T
where U: ConvertFrom<T>,

source§

fn convert_into(self) -> U

Convert into T with values clamped to the color defined bounds Read more
source§

fn convert_unclamped_into(self) -> U

Convert into T. The resulting color might be invalid in its color space Read more
source§

fn try_convert_into(self) -> Result<U, OutOfBounds<U>>

Convert into T, returning ok if the color is inside of its defined range, otherwise an OutOfBounds error is returned which contains the unclamped color. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSync for T
where T: Sync,