Struct webrender::picture::PrimitiveCluster
source · 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: SpatialNodeIndex
The positioning node for this cluster.
bounding_rect: LayoutRect
The 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: LayoutRect
a 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: ClusterFlags
Various 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