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<'_>
impl Surface<'_>
Sourcepub fn get_capabilities(&self, adapter: &Adapter) -> SurfaceCapabilities
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.
Sourcepub fn get_default_config(
&self,
adapter: &Adapter,
width: u32,
height: u32,
) -> Option<SurfaceConfiguration<Vec<TextureFormat>>>
pub fn get_default_config( &self, adapter: &Adapter, width: u32, height: u32, ) -> Option<SurfaceConfiguration<Vec<TextureFormat>>>
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
Sourcepub fn configure(
&self,
device: &Device,
config: &SurfaceConfiguration<Vec<TextureFormat>>,
)
pub fn configure( &self, device: &Device, config: &SurfaceConfiguration<Vec<TextureFormat>>, )
Initializes Surface for presentation.
§Panics
- A old
SurfaceTextureis still alive referencing an old surface. - Texture format requested is unsupported on the surface.
config.widthorconfig.heightis zero.
Sourcepub fn get_current_texture(&self) -> Result<SurfaceTexture, SurfaceError>
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.
Sourcepub unsafe fn as_hal<A, F, R>(&mut self, hal_surface_callback: F) -> Option<R>
pub unsafe fn as_hal<A, F, R>(&mut self, hal_surface_callback: F) -> Option<R>
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
Trait Implementations§
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> UnsafeUnpin for Surface<'window>
impl<'window> !UnwindSafe for Surface<'window>
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.