pub struct SubSlice {
pub tiles: FastHashMap<TileOffset, Box<Tile>>,
pub native_surface: Option<NativeSurface>,
pub compositor_surfaces: Vec<CompositorSurface>,
pub composite_tiles: Vec<CompositeTile>,
pub opaque_tile_descriptors: Vec<CompositeTileDescriptor>,
pub alpha_tile_descriptors: Vec<CompositeTileDescriptor>,
}
Expand description
A SubSlice represents a potentially overlapping set of tiles within a picture cache. Most picture cache instances will have only a single sub-slice. The exception to this is when a picture cache has compositor surfaces, in which case sub slices are used to interleave content under or order the compositor surface(s).
Fields§
§tiles: FastHashMap<TileOffset, Box<Tile>>
Hash of tiles present in this picture.
native_surface: Option<NativeSurface>
The allocated compositor surfaces for this picture cache. May be None if not using native compositor, or if the surface was destroyed and needs to be reallocated next time this surface contains valid tiles.
compositor_surfaces: Vec<CompositorSurface>
List of compositor surfaces that have been promoted from primitives in this tile cache.
composite_tiles: Vec<CompositeTile>
List of visible tiles to be composited for this subslice
opaque_tile_descriptors: Vec<CompositeTileDescriptor>
Compositor descriptors of visible, opaque tiles (used by composite_state.push_surface)
alpha_tile_descriptors: Vec<CompositeTileDescriptor>
Compositor descriptors of visible, alpha tiles (used by composite_state.push_surface)
Implementations§
source§impl SubSlice
impl SubSlice
sourcefn reset(&mut self)
fn reset(&mut self)
Reset the list of compositor surfaces that follow this sub-slice. Built per-frame, since APZ may change whether an image is suitable to be a compositor surface.
sourcefn resize(
&mut self,
new_tile_rect: Box2D<i32, TileCoordinate>,
) -> FastHashMap<TileOffset, Box<Tile>>
fn resize( &mut self, new_tile_rect: Box2D<i32, TileCoordinate>, ) -> FastHashMap<TileOffset, Box<Tile>>
Resize the tile grid to match a new tile bounds
Auto Trait Implementations§
impl Freeze for SubSlice
impl RefUnwindSafe for SubSlice
impl Send for SubSlice
impl Sync for SubSlice
impl Unpin for SubSlice
impl UnwindSafe for SubSlice
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
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>
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>
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