pub struct PrimitiveCluster {
pub spatial_node_index: SpatialNodeIndex,
pub unsnapped_bounding_rect: LayoutRect,
pub snapped_bounding_rect: LayoutRect,
pub prim_range: Range<usize>,
pub flags: ClusterFlags,
}Expand description
Descriptor for a cluster of primitives. For now, this is quite basic but will be extended to handle more spatial clustering of primitives.
Fields§
§spatial_node_index: SpatialNodeIndexThe positioning node for this cluster.
unsnapped_bounding_rect: LayoutRectThe bounding rect of the cluster, in the local space of the spatial node, using display-list-authored prim culling rects (not snapped to the device pixel grid). This is used to quickly determine the overall bounding rect for a picture during the first picture traversal, which is needed for local scale determination, and render task size calculations.
snapped_bounding_rect: LayoutRectThe bounding rect of the cluster, snapped to the device pixel grid in
the cluster’s own spatial-node space. Refreshed each frame by
frame_snap::snap_frame_rects from unsnapped_bounding_rect, before
any frame-time consumer reads it.
prim_range: Range<usize>The range of primitive instance indices associated with this cluster.
flags: ClusterFlagsVarious flags / state for this cluster.
Implementations§
Source§impl PrimitiveCluster
impl PrimitiveCluster
Sourcefn new(
spatial_node_index: SpatialNodeIndex,
flags: ClusterFlags,
first_instance_index: usize,
) -> Self
fn new( spatial_node_index: SpatialNodeIndex, flags: ClusterFlags, first_instance_index: usize, ) -> Self
Construct a new primitive cluster for a given positioning node.
Sourcepub fn is_compatible(
&self,
spatial_node_index: SpatialNodeIndex,
flags: ClusterFlags,
instance_index: usize,
) -> bool
pub fn is_compatible( &self, spatial_node_index: SpatialNodeIndex, flags: ClusterFlags, instance_index: usize, ) -> bool
Return true if this cluster is compatible with the given params
pub fn prim_range(&self) -> Range<usize>
Sourcefn add_instance(&mut self, culling_rect: &LayoutRect, instance_index: usize)
fn add_instance(&mut self, culling_rect: &LayoutRect, instance_index: usize)
Add a primitive instance to this cluster, at the start or end
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PrimitiveCluster
impl RefUnwindSafe for PrimitiveCluster
impl Send for PrimitiveCluster
impl Sync for PrimitiveCluster
impl Unpin for PrimitiveCluster
impl UnsafeUnpin for PrimitiveCluster
impl UnwindSafe for PrimitiveCluster
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