Struct webrender::scene::BuiltScene
source · pub struct BuiltScene {Show 15 fields
pub has_root_pipeline: bool,
pub pipeline_epochs: FastHashMap<PipelineId, Epoch>,
pub output_rect: DeviceIntRect,
pub prim_store: PrimitiveStore,
pub clip_store: ClipStore,
pub config: FrameBuilderConfig,
pub hit_testing_scene: Arc<HitTestingScene>,
pub tile_cache_config: TileCacheConfig,
pub tile_cache_pictures: Vec<PictureIndex>,
pub picture_graph: PictureGraph,
pub num_plane_splitters: usize,
pub prim_instances: Vec<PrimitiveInstance>,
pub surfaces: Vec<SurfaceInfo>,
pub clip_tree: ClipTree,
pub recycler_tx: Option<Sender<BuiltScene>>,
}
Expand description
WebRender’s internal representation of the scene.
Fields§
§has_root_pipeline: bool
§pipeline_epochs: FastHashMap<PipelineId, Epoch>
§output_rect: DeviceIntRect
§prim_store: PrimitiveStore
§clip_store: ClipStore
§config: FrameBuilderConfig
§hit_testing_scene: Arc<HitTestingScene>
§tile_cache_config: TileCacheConfig
§tile_cache_pictures: Vec<PictureIndex>
§picture_graph: PictureGraph
§num_plane_splitters: usize
§prim_instances: Vec<PrimitiveInstance>
§surfaces: Vec<SurfaceInfo>
§clip_tree: ClipTree
§recycler_tx: Option<Sender<BuiltScene>>
Deallocating memory outside of the thread that allocated it causes lock contention in jemalloc. To avoid this we send the built scene back to the scene builder thread when we don’t need it anymore, and in the process, also reuse some allocations.
Implementations§
source§impl BuiltScene
impl BuiltScene
pub fn empty() -> Self
sourcepub fn recycle(self)
pub fn recycle(self)
Send the scene back to the scene builder thread so that recycling/deallocations can happen there.
sourcepub fn get_stats(&self) -> SceneStats
pub fn get_stats(&self) -> SceneStats
Get the memory usage statistics to pre-allocate for the next scene.
pub fn create_hit_tester(&mut self, spatial_tree: &SpatialTree) -> HitTester
Auto Trait Implementations§
impl Freeze for BuiltScene
impl RefUnwindSafe for BuiltScene
impl Send for BuiltScene
impl Sync for BuiltScene
impl Unpin for BuiltScene
impl UnwindSafe for BuiltScene
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
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