#[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::displaywas notNonebut 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>
impl<'a> SurfaceTarget<'a>
Sourcepub fn from_window_without_display(window: impl WindowHandle + 'a) -> Self
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,
impl<'a, T> From<T> for SurfaceTarget<'a>where
T: DisplayAndWindowHandle + 'a,
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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