Struct wgpu::rwh::WindowHandle

pub struct WindowHandle<'a> { /* private fields */ }
Expand description

The handle to a window.

This is the primary return type of the HasWindowHandle trait. All pointers within this type are guaranteed to be valid and not dangling for the lifetime of the handle. This excludes window IDs like XIDs and the window ID for web platforms. See the documentation on the HasWindowHandle trait for more information about these safety requirements.

This handle is guaranteed to be safe and valid.

Implementations§

§

impl<'a> WindowHandle<'a>

pub unsafe fn borrow_raw(raw: RawWindowHandle) -> WindowHandle<'a>

Borrow a WindowHandle from a RawWindowHandle.

Safety

Users can safely assume that non-null/0 fields are valid handles, and it is up to the implementer of this trait to ensure that condition is upheld.

Despite that qualification, implementers should still make a best-effort attempt to fill in all available fields. If an implementation doesn’t, and a downstream user needs the field, it should try to derive the field from other fields the implementer does provide via whatever methods the platform provides.

Note that this guarantee only applies to pointers, and not any window ID types in the handle. This includes Window IDs (XIDs) from X11 and the window ID for web platforms. There is no way for Rust to enforce any kind of invariant on these types, since:

  • For all three listed platforms, it is possible for safe code in the same process to delete the window.
  • For X11, it is possible for code in a different process to delete the window. In fact, it is possible for code on a different machine to delete the window.

It is also possible for the window to be replaced with another, valid-but-different window. User code should be aware of this possibility, and should be ready to soundly handle the possible error conditions that can arise from this.

pub fn as_raw(&self) -> RawWindowHandle

Get the underlying raw window handle.

Trait Implementations§

§

impl AsRef<RawWindowHandle> for WindowHandle<'_>

§

fn as_ref(&self) -> &RawWindowHandle

Converts this type into a shared reference of the (usually inferred) input type.
§

impl Borrow<RawWindowHandle> for WindowHandle<'_>

§

fn borrow(&self) -> &RawWindowHandle

Immutably borrows from an owned value. Read more
§

impl<'a> Clone for WindowHandle<'a>

§

fn clone(&self) -> WindowHandle<'a>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for WindowHandle<'_>

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
§

impl From<WindowHandle<'_>> for RawWindowHandle

§

fn from(handle: WindowHandle<'_>) -> RawWindowHandle

Converts to this type from the input type.
§

impl HasWindowHandle for WindowHandle<'_>

§

fn window_handle(&self) -> Result<WindowHandle<'_>, HandleError>

Get a handle to the window.
§

impl<'a> Hash for WindowHandle<'a>

§

fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
§

impl<'a> PartialEq for WindowHandle<'a>

§

fn eq(&self, other: &WindowHandle<'a>) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl<'a> Copy for WindowHandle<'a>

§

impl<'a> Eq for WindowHandle<'a>

§

impl<'a> StructuralEq for WindowHandle<'a>

§

impl<'a> StructuralPartialEq for WindowHandle<'a>

Auto Trait Implementations§

§

impl<'a> RefUnwindSafe for WindowHandle<'a>

§

impl<'a> !Send for WindowHandle<'a>

§

impl<'a> !Sync for WindowHandle<'a>

§

impl<'a> Unpin for WindowHandle<'a>

§

impl<'a> UnwindSafe for WindowHandle<'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> HasRawWindowHandle for T
where T: HasWindowHandle + ?Sized,

§

fn raw_window_handle(&self) -> Result<RawWindowHandle, HandleError>

👎Deprecated: Use HasWindowHandle instead
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>