#[non_exhaustive]pub enum SurfaceTargetUnsafe {
RawHandle {
raw_display_handle: RawDisplayHandle,
raw_window_handle: RawWindowHandle,
},
Drm {
fd: i32,
plane: u32,
connector_id: u32,
width: u32,
height: u32,
refresh_rate: u32,
},
}unstable-wgpu-26 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
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_handlemust be valid objects to create a surface upon.raw_window_handle&raw_display_handlemust remain valid until after the returnedSurfaceis dropped.
Fields
raw_display_handle: RawDisplayHandleRaw display handle, underlying display must outlive the surface created from this.
raw_window_handle: RawWindowHandleRaw display handle, underlying window must outlive the surface created from this.
Drm
Surface from a DRM device.
If the specified DRM configuration is not supported by any of the backends, then the surface will not be supported by any adapters.
§Safety
- All parameters must point to valid DRM values and remain valid for as long as the resulting
Surfaceexists. - The file descriptor (
fd), plane, connector, and mode configuration must be valid and compatible.
Fields
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
windowmust 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
§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>
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>
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)
&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)
&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>
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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.