#[non_exhaustive]pub enum SurfaceTargetUnsafe {
RawHandle {
raw_display_handle: Option<RawDisplayHandle>,
raw_window_handle: RawWindowHandle,
},
Drm {
fd: i32,
plane: u32,
connector_id: u32,
width: u32,
height: u32,
refresh_rate: u32,
},
}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.
If the raw_display_handle is not None here and was not None in
crate::InstanceDescriptor::display, their values must be identical.
§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: Option<RawDisplayHandle>Raw display handle, underlying display must outlive the surface created from this.
raw_window_handle: RawWindowHandleRaw window handle, underlying window must outlive the surface created from this.
Drm
target_family=wasm only.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_display_and_window(
display: &impl HasDisplayHandle,
window: &impl HasWindowHandle,
) -> Result<Self, HandleError>
pub unsafe fn from_display_and_window( display: &impl HasDisplayHandle, window: &impl HasWindowHandle, ) -> Result<Self, HandleError>
Creates a SurfaceTargetUnsafe::RawHandle from a display and window.
The display is optional and may be omitted if it was also passed to
crate::InstanceDescriptor::display. If passed to both it must (currently) be identical.
§Safety
displaymust outlive the resulting surface target (and subsequently the surface created for this target).windowmust outlive the resulting surface target (and subsequently the surface created for this target).
Sourcepub unsafe fn from_window(
window: &impl HasWindowHandle,
) -> Result<Self, HandleError>
pub unsafe fn from_window( window: &impl HasWindowHandle, ) -> Result<Self, HandleError>
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
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