SurfaceTarget

Enum SurfaceTarget 

Source
#[non_exhaustive]
pub enum SurfaceTarget<'window> { DisplayAndWindow(Box<dyn DisplayAndWindowHandle + 'window>), Window(Box<dyn WindowHandle + 'window>), }
Expand description

The window/canvas/surface/swap-chain/etc. a surface is attached to, for use with safe surface creation.

This is either a window or an actual web canvas depending on the platform and enabled features. Refer to the individual variants for more information.

See also SurfaceTargetUnsafe for unsafe variants.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

DisplayAndWindow(Box<dyn DisplayAndWindowHandle + 'window>)

Window and display handle producer.

If the specified display and window handle are not supported by any of the backends, then the surface will not be supported by any adapters.

§Errors

  • On WebGL2: surface creation returns an error if the browser does not support WebGL2, or declines to provide GPU access (such as due to a resource shortage).

§Panics

  • On macOS/Metal: will panic if not called on the main thread.
  • On web: will panic if the [HasWindowHandle] does not properly refer to a canvas element.
  • On all platforms: If crate::InstanceDescriptor::display was not None but its value is not identical to that returned by [HasDisplayHandle::display_handle()].
§

Window(Box<dyn WindowHandle + 'window>)

Window handle producer.

[HasWindowHandle]-only version of SurfaceTarget::DisplayAndWindow.

This requires that the display handle was already passed through crate::InstanceDescriptor::display.

Implementations§

Source§

impl<'a> SurfaceTarget<'a>

Source

pub fn from_window_without_display(window: impl WindowHandle + 'a) -> Self

Constructor for Self::Window without consuming a display handle

Trait Implementations§

Source§

impl<'a, T> From<T> for SurfaceTarget<'a>
where T: DisplayAndWindowHandle + 'a,

Source§

fn from(window: T) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'window> Freeze for SurfaceTarget<'window>

§

impl<'window> !RefUnwindSafe for SurfaceTarget<'window>

§

impl<'window> Send for SurfaceTarget<'window>

§

impl<'window> Sync for SurfaceTarget<'window>

§

impl<'window> Unpin for SurfaceTarget<'window>

§

impl<'window> !UnwindSafe for SurfaceTarget<'window>

Blanket Implementations§

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> AsAny for T
where T: 'static,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

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
§

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.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

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

Source§

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>,

Source§

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<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T

§

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