Struct webrender::picture::SubSlice

source ·
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

source

fn new() -> Self

Construct a new sub-slice

source

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.

source

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§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.