pub struct VulkanFrameAccessGuard<'a> { /* private fields */ }Expand description
Guard for one locked FFmpeg frame and queue handoff.
Safe code cannot change what is written back: an unsignaled timeline value hangs later users and a wrong layout makes the contents undefined.
ⓘ
let mut guard = lease.lock_access().unwrap();
guard.access_mut().frame_mut().semaphore_values[0] += 1000;
guard.commit();Implementations§
Source§impl VulkanFrameAccessGuard<'_>
impl VulkanFrameAccessGuard<'_>
Sourcepub const fn access(&self) -> &VulkanFrameAccess
pub const fn access(&self) -> &VulkanFrameAccess
The frame’s state while its FFmpeg locks are held.
Sourcepub const unsafe fn access_mut(&mut self) -> &mut VulkanFrameAccess
pub const unsafe fn access_mut(&mut self) -> &mut VulkanFrameAccess
The record written back on Self::commit. Planes whose image or semaphore changed and
timeline values below the frame’s are ignored.
§Safety
On commit, each layout and access mask must be what the submitted work leaves the image in, and each timeline value one that work submitted before the guard drops signals.
Trait Implementations§
Source§impl Drop for VulkanFrameAccessGuard<'_>
Available on Linux and crate feature hwdevice only.
impl Drop for VulkanFrameAccessGuard<'_>
Available on Linux and crate feature
hwdevice only.Auto Trait Implementations§
impl<'a> !Send for VulkanFrameAccessGuard<'a>
impl<'a> !Sync for VulkanFrameAccessGuard<'a>
impl<'a> Freeze for VulkanFrameAccessGuard<'a>
impl<'a> RefUnwindSafe for VulkanFrameAccessGuard<'a>
impl<'a> Unpin for VulkanFrameAccessGuard<'a>
impl<'a> UnsafeUnpin for VulkanFrameAccessGuard<'a>
impl<'a> UnwindSafe for VulkanFrameAccessGuard<'a>
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