Struct wgpu::Surface

source ·
pub struct Surface<'window> { /* private fields */ }
Expand description

Handle to a presentable surface.

A Surface represents a platform-specific surface (e.g. a window) onto which rendered images may be presented. A Surface may be created with the function Instance::create_surface.

This type is unique to the Rust API of wgpu. In the WebGPU specification, GPUCanvasContext serves a similar role.

Implementations§

source§

impl Surface<'_>

source

pub fn get_capabilities(&self, adapter: &Adapter) -> SurfaceCapabilities

Returns the capabilities of the surface when used with the given adapter.

Returns specified values (see SurfaceCapabilities) if surface is incompatible with the adapter.

source

pub fn get_default_config( &self, adapter: &Adapter, width: u32, height: u32 ) -> Option<SurfaceConfiguration>

Return a default SurfaceConfiguration from width and height to use for the Surface with this adapter.

Returns None if the surface isn’t supported by this adapter

source

pub fn configure(&self, device: &Device, config: &SurfaceConfiguration)

Initializes Surface for presentation.

§Panics
  • A old SurfaceTexture is still alive referencing an old surface.
  • Texture format requested is unsupported on the surface.
  • config.width or config.height is zero.
source

pub fn get_current_texture(&self) -> Result<SurfaceTexture, SurfaceError>

Returns the next texture to be presented by the swapchain for drawing.

In order to present the SurfaceTexture returned by this method, first a Queue::submit needs to be done with some work rendering to this texture. Then SurfaceTexture::present needs to be called.

If a SurfaceTexture referencing this surface is alive when the swapchain is recreated, recreating the swapchain will panic.

source

pub unsafe fn as_hal<A: HalApi, F: FnOnce(Option<&A::Surface>) -> R, R>( &mut self, hal_surface_callback: F ) -> Option<R>

Available on wgpu_core only.

Returns the inner hal Surface using a callback. The hal surface will be None if the backend type argument does not match with this wgpu Surface

§Safety
  • The raw handle obtained from the hal Surface must not be manually destroyed
source§

impl Surface<'_>

source

pub fn global_id(&self) -> Id<Surface<'_>>

Returns a globally-unique identifier for this Surface.

Calling this method multiple times on the same object will always return the same value. The returned value is guaranteed to be different for all resources created from the same Instance.

Trait Implementations§

source§

impl<'window> Debug for Surface<'window>

source§

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

Formats the value using the given formatter. Read more
source§

impl Drop for Surface<'_>

source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<'window> !Freeze for Surface<'window>

§

impl<'window> !RefUnwindSafe for Surface<'window>

§

impl<'window> Send for Surface<'window>

§

impl<'window> Sync for Surface<'window>

§

impl<'window> Unpin for Surface<'window>

§

impl<'window> !UnwindSafe for Surface<'window>

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
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

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, 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.
source§

impl<T> WasmNotSend for T
where T: Send,

source§

impl<T> WasmNotSendSync for T

source§

impl<T> WasmNotSync for T
where T: Sync,