pub struct ClipStore {
pub clip_node_instances: Vec<ClipNodeInstance>,
mask_tiles: Vec<VisibleMaskImageTile>,
active_clip_node_info: Vec<ClipNodeInfo>,
active_local_clip_rect: Option<LayoutRect>,
active_pic_coverage_rect: PictureRect,
}
Expand description
The main clipping public interface that other modules access.
Fields§
§clip_node_instances: Vec<ClipNodeInstance>
§mask_tiles: Vec<VisibleMaskImageTile>
§active_clip_node_info: Vec<ClipNodeInfo>
§active_local_clip_rect: Option<LayoutRect>
§active_pic_coverage_rect: PictureRect
Implementations§
source§impl ClipStore
impl ClipStore
pub fn new() -> Self
pub fn reset(&mut self)
pub fn get_instance_from_range( &self, node_range: &ClipNodeRange, index: u32, ) -> &ClipNodeInstance
sourcepub fn set_active_clips(
&mut self,
prim_spatial_node_index: SpatialNodeIndex,
pic_spatial_node_index: SpatialNodeIndex,
clip_leaf_id: ClipLeafId,
spatial_tree: &SpatialTree,
clip_data_store: &DataStore<ClipIntern>,
clip_tree: &ClipTree,
)
pub fn set_active_clips( &mut self, prim_spatial_node_index: SpatialNodeIndex, pic_spatial_node_index: SpatialNodeIndex, clip_leaf_id: ClipLeafId, spatial_tree: &SpatialTree, clip_data_store: &DataStore<ClipIntern>, clip_tree: &ClipTree, )
Setup the active clip chains for building a clip chain instance.
sourcepub fn set_active_clips_from_clip_chain(
&mut self,
prim_clip_chain: &ClipChainInstance,
prim_spatial_node_index: SpatialNodeIndex,
spatial_tree: &SpatialTree,
clip_data_store: &DataStore<ClipIntern>,
)
pub fn set_active_clips_from_clip_chain( &mut self, prim_clip_chain: &ClipChainInstance, prim_spatial_node_index: SpatialNodeIndex, spatial_tree: &SpatialTree, clip_data_store: &DataStore<ClipIntern>, )
Setup the active clip chains, based on an existing primitive clip chain instance.
sourcepub fn get_inner_rect_for_clip_chain(
&self,
clip_chain: &ClipChainInstance,
clip_data_store: &DataStore<ClipIntern>,
spatial_tree: &SpatialTree,
) -> Option<PictureRect>
pub fn get_inner_rect_for_clip_chain( &self, clip_chain: &ClipChainInstance, clip_data_store: &DataStore<ClipIntern>, spatial_tree: &SpatialTree, ) -> Option<PictureRect>
Given a clip-chain instance, return a safe rect within the visible region that can be assumed to be unaffected by clip radii. Returns None if it encounters any complex cases, just handling rounded rects in the same coordinate system as the clip-chain for now.
sourcepub fn build_clip_chain_instance(
&mut self,
local_prim_rect: LayoutRect,
prim_to_pic_mapper: &SpaceMapper<LayoutPixel, PicturePixel>,
pic_to_world_mapper: &SpaceMapper<PicturePixel, WorldPixel>,
spatial_tree: &SpatialTree,
gpu_cache: &mut GpuCache,
resource_cache: &mut ResourceCache,
device_pixel_scale: DevicePixelScale,
world_rect: &WorldRect,
clip_data_store: &mut DataStore<ClipIntern>,
rg_builder: &mut RenderTaskGraphBuilder,
request_resources: bool,
) -> Option<ClipChainInstance>
pub fn build_clip_chain_instance( &mut self, local_prim_rect: LayoutRect, prim_to_pic_mapper: &SpaceMapper<LayoutPixel, PicturePixel>, pic_to_world_mapper: &SpaceMapper<PicturePixel, WorldPixel>, spatial_tree: &SpatialTree, gpu_cache: &mut GpuCache, resource_cache: &mut ResourceCache, device_pixel_scale: DevicePixelScale, world_rect: &WorldRect, clip_data_store: &mut DataStore<ClipIntern>, rg_builder: &mut RenderTaskGraphBuilder, request_resources: bool, ) -> Option<ClipChainInstance>
The main interface external code uses. Given a local primitive, positioning information, and a clip chain id, build an optimized clip chain instance.
pub fn begin_frame(&mut self, scratch: &mut ClipStoreScratchBuffer)
pub fn end_frame(&mut self, scratch: &mut ClipStoreScratchBuffer)
pub fn visible_mask_tiles( &self, instance: &ClipNodeInstance, ) -> &[VisibleMaskImageTile]
Trait Implementations§
source§impl MallocSizeOf for ClipStore
impl MallocSizeOf for ClipStore
source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
Auto Trait Implementations§
impl Freeze for ClipStore
impl RefUnwindSafe for ClipStore
impl Send for ClipStore
impl Sync for ClipStore
impl Unpin for ClipStore
impl UnwindSafe for ClipStore
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