pub struct ClearPunch {
pub strip_range: Range<usize>,
pub bounds: RectU16,
pub depth: u32,
}Expand description
One hoisted clear, ready to be issued as destination-out coverage.
Fields§
§strip_range: Range<usize>Half-open range selecting this punch’s coverage from the frame’s shared strip storage.
The strips are generated after the frame’s draws and referenced by no draw, so a renderer that drops the punch pass reads the frame exactly as if the clear had never been recorded.
bounds: RectU16The device-space rectangle the punch covers, clamped to the grid the strip pipeline addresses.
The coverage in strip_range is authoritative for which pixels are
erased; this is the pass’s own extent, for a scissor or a bounds check.
depth: u32The painter-order depth the punch was hoisted from.
A depth of its own rather than the depth of a neighbouring draw, so every draw recorded after the clear sits strictly in front of it. It is read twice: the renderer cuts the surface round at it (contract point 1) and the depth test uses it against the frame’s one depth-writing pass (contract point 3).
Trait Implementations§
Source§impl Clone for ClearPunch
impl Clone for ClearPunch
Source§impl Debug for ClearPunch
impl Debug for ClearPunch
impl Eq for ClearPunch
Source§impl PartialEq for ClearPunch
impl PartialEq for ClearPunch
impl StructuralPartialEq for ClearPunch
Auto Trait Implementations§
impl Freeze for ClearPunch
impl RefUnwindSafe for ClearPunch
impl Send for ClearPunch
impl Sync for ClearPunch
impl Unpin for ClearPunch
impl UnsafeUnpin for ClearPunch
impl UnwindSafe for ClearPunch
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.