#[non_exhaustive]pub enum SurfaceTargetUnsafe {
RawHandle {
raw_display_handle: RawDisplayHandle,
raw_window_handle: RawWindowHandle,
},
}
Available on crate feature
unstable-wgpu-24
only.Expand description
The window/canvas/surface/swap-chain/etc. a surface is attached to, for use with unsafe 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 SurfaceTarget
for safe 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.
RawHandle
Raw window & display handle.
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.
§Safety
raw_window_handle
&raw_display_handle
must be valid objects to create a surface upon.raw_window_handle
&raw_display_handle
must remain valid until after the returnedSurface
is dropped.
Fields
§
raw_display_handle: RawDisplayHandle
Raw display handle, underlying display must outlive the surface created from this.
§
raw_window_handle: RawWindowHandle
Raw display handle, underlying window must outlive the surface created from this.
Implementations§
Source§impl SurfaceTargetUnsafe
impl SurfaceTargetUnsafe
Sourcepub unsafe fn from_window<T>(
window: &T,
) -> Result<SurfaceTargetUnsafe, HandleError>where
T: HasDisplayHandle + HasWindowHandle,
pub unsafe fn from_window<T>(
window: &T,
) -> Result<SurfaceTargetUnsafe, HandleError>where
T: HasDisplayHandle + HasWindowHandle,
Creates a SurfaceTargetUnsafe::RawHandle
from a window.
§Safety
window
must outlive the resulting surface target (and subsequently the surface created for this target).
Auto Trait Implementations§
impl Freeze for SurfaceTargetUnsafe
impl RefUnwindSafe for SurfaceTargetUnsafe
impl !Send for SurfaceTargetUnsafe
impl !Sync for SurfaceTargetUnsafe
impl Unpin for SurfaceTargetUnsafe
impl UnwindSafe for SurfaceTargetUnsafe
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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