Skip to main content

SurfaceTarget

Enum SurfaceTarget 

Source
#[non_exhaustive]
pub enum SurfaceTarget<'window> { DisplayAndWindow(Box<dyn DisplayAndWindowHandle + 'window>), Window(Box<dyn WindowHandle + 'window>), Canvas(HtmlCanvasElement), OffscreenCanvas(OffscreenCanvas), }
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

§

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.

§

Canvas(HtmlCanvasElement)

Available on web only.

Surface from a web_sys::HtmlCanvasElement.

The canvas argument must be a valid <canvas> element to create a surface upon.

§Errors

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

OffscreenCanvas(OffscreenCanvas)

Available on web only.

Surface from a web_sys::OffscreenCanvas.

The canvas argument must be a valid OffscreenCanvas object to create a surface upon.

§Errors

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

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 Debug for SurfaceTarget<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
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> !RefUnwindSafe for SurfaceTarget<'window>

§

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

§

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

§

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

§

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

§

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

§

impl<'window> UnsafeUnpin 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
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CommonTraits for T
where T: AsAny + Any + Debug + WasmNotSendSync,

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: Sized + ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
Source§

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

Source§

impl<T> WasmNotSendSync for T

Source§

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