Struct wgpu_hal::vulkan::Swapchain

source ·
struct Swapchain {
    raw: SwapchainKHR,
    raw_flags: SwapchainCreateFlagsKHR,
    functor: Device,
    device: Arc<DeviceShared>,
    images: Vec<Image>,
    config: SurfaceConfiguration,
    view_formats: Vec<TextureFormat>,
    surface_semaphores: Vec<Arc<Mutex<SwapchainImageSemaphores>>>,
    next_semaphore_index: usize,
    next_present_time: Option<PresentTimeGOOGLE>,
}

Fields§

§raw: SwapchainKHR§raw_flags: SwapchainCreateFlagsKHR§functor: Device§device: Arc<DeviceShared>§images: Vec<Image>§config: SurfaceConfiguration§view_formats: Vec<TextureFormat>§surface_semaphores: Vec<Arc<Mutex<SwapchainImageSemaphores>>>

One wait semaphore per swapchain image. This will be associated with the surface texture, and later collected during submission.

We need this to be Arc<Mutex<>> because we need to be able to pass this data into the surface texture, so submit/present can use it.

§next_semaphore_index: usize

The index of the next semaphore to use. Ideally we would use the same index as the image index, but we need to specify the semaphore as an argument to the acquire_next_image function which is what tells us which image to use.

§next_present_time: Option<PresentTimeGOOGLE>

The present timing information which will be set in the next call to present().

§Safety

This must only be set if wgt::Features::VULKAN_GOOGLE_DISPLAY_TIMING is enabled, and so the VK_GOOGLE_display_timing extension is present.

Implementations§

source§

impl Swapchain

source

unsafe fn release_resources(self, device: &Device) -> Self

§Safety
  • The device must have been made idle before calling this function.
source§

impl Swapchain

Auto Trait Implementations§

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> Downcast<T> for T

source§

fn downcast(&self) -> &T

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> Upcast<T> for T

source§

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

source§

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

source§

impl<T> WasmNotSendSync for T

source§

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