struct BackingState {
segments: Vec<FramebufferSegment>,
size: usize,
external: bool,
}Expand description
Backing-store state for the scanout resource.
Held behind a Mutex so a physically-contiguous buffer allocated after device init (the video driver’s double buffer) can be attached as the resource backing itself, making presentation zero-copy: draw targets become what TRANSFER_TO_HOST_2D reads, no bounce copy needed.
Fields§
§segments: Vec<FramebufferSegment>HHDM-mapped segments covering the backing store, in offset order.
size: usizeTotal backing size in bytes.
external: boolTrue when the backing is an externally provided contiguous buffer
(attach_external_backing) rather than driver-scattered pages.
Auto Trait Implementations§
impl Freeze for BackingState
impl RefUnwindSafe for BackingState
impl Send for BackingState
impl Sync for BackingState
impl Unpin for BackingState
impl UnsafeUnpin for BackingState
impl UnwindSafe for BackingState
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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