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
impl Swapchain
sourceunsafe fn release_resources(self, device: &Device) -> Self
unsafe fn release_resources(self, device: &Device) -> Self
§Safety
- The device must have been made idle before calling this function.
source§impl Swapchain
impl Swapchain
fn advance_surface_semaphores(&mut self)
fn get_surface_semaphores(&self) -> Arc<Mutex<SwapchainImageSemaphores>>
Auto Trait Implementations§
impl Freeze for Swapchain
impl !RefUnwindSafe for Swapchain
impl Send for Swapchain
impl Sync for Swapchain
impl Unpin for Swapchain
impl !UnwindSafe for Swapchain
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