pub struct PrimitiveCluster {
    pub spatial_node_index: SpatialNodeIndex,
    bounding_rect: LayoutRect,
    pub opaque_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.
bounding_rect: LayoutRectThe bounding rect of the cluster, in the local space of the spatial node. 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.
opaque_rect: LayoutRecta part of the cluster that we know to be opaque if any. Does not always describe the entire opaque region, but all content within that rect must be opaque.
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 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