Struct Surface
pub struct Surface { /* private fields */ }Available on crate feature
unstable-wgpu-27 only.Implementations§
§impl Surface
impl Surface
pub unsafe fn raw_handle(&self) -> SurfaceKHR
pub fn raw_swapchain(&self) -> Option<SwapchainKHR>
pub fn raw_swapchain(&self) -> Option<SwapchainKHR>
Get the raw Vulkan swapchain associated with this surface.
Returns None if the surface is not configured.
pub fn set_next_present_time(&self, present_timing: PresentTimeGOOGLE)
pub fn set_next_present_time(&self, present_timing: PresentTimeGOOGLE)
Set the present timing information which will be used for the next presentation of this surface, using VK_GOOGLE_display_timing.
This can be used to give an id to presentations, for future use of [vk::PastPresentationTimingGOOGLE].
Note that wgpu-hal does not provide a way to use that API - you should manually access this through [ash].
This can also be used to add a “not before” timestamp to the presentation.
The exact semantics of the fields are also documented in the specification for the extension.
§Panics
- If the surface hasn’t been configured.
- If the device doesn’t support present timing.
Trait Implementations§
§impl DynResource for Surface
impl DynResource for Surface
§impl Surface for Surface
impl Surface for Surface
type A = Api
§unsafe fn configure(
&self,
device: &Device,
config: &SurfaceConfiguration,
) -> Result<(), SurfaceError>
unsafe fn configure( &self, device: &Device, config: &SurfaceConfiguration, ) -> Result<(), SurfaceError>
§unsafe fn unconfigure(&self, device: &Device)
unsafe fn unconfigure(&self, device: &Device)
§unsafe fn acquire_texture(
&self,
timeout: Option<Duration>,
fence: &Fence,
) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
unsafe fn acquire_texture( &self, timeout: Option<Duration>, fence: &Fence, ) -> Result<Option<AcquiredSurfaceTexture<Api>>, SurfaceError>
Return the next texture to be presented by
self, for the caller to draw on. Read more§unsafe fn discard_texture(&self, _texture: SurfaceTexture)
unsafe fn discard_texture(&self, _texture: SurfaceTexture)
Relinquish an acquired texture without presenting it. Read more
Auto Trait Implementations§
impl !Freeze for Surface
impl !RefUnwindSafe for Surface
impl Send for Surface
impl Sync for Surface
impl Unpin for Surface
impl !UnwindSafe for Surface
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
Mutably borrows from an owned value. Read more
§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>
Convert
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>
Convert
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)
Convert
&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)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<S> DynSurface for Swhere
S: Surface + DynResource,
impl<S> DynSurface for Swhere
S: Surface + DynResource,
unsafe fn configure( &self, device: &(dyn DynDevice + 'static), config: &SurfaceConfiguration, ) -> Result<(), SurfaceError>
unsafe fn unconfigure(&self, device: &(dyn DynDevice + 'static))
unsafe fn acquire_texture( &self, timeout: Option<Duration>, fence: &(dyn DynFence + 'static), ) -> Result<Option<DynAcquiredSurfaceTexture>, SurfaceError>
unsafe fn discard_texture(&self, texture: Box<dyn DynSurfaceTexture>)
§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>
Converts
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>
Converts
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>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
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
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.