#[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
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
HasWindowHandledoes not properly refer to a canvas element. - On all platforms: If
crate::InstanceDescriptor::displaywas notNonebut its value is not identical to that returned byHasDisplayHandle::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.
Canvas(HtmlCanvasElement)
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)
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>
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 Debug for SurfaceTarget<'_>
impl Debug for SurfaceTarget<'_>
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> !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> 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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CommonTraits for T
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> ⓘ
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> ⓘ
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