pub struct ParticleBatch { /* private fields */ }Expand description
Validated opaque instance payload, consumed directly by CPU/GPU paths.
Implementations§
Source§impl ParticleBatch
impl ParticleBatch
Trait Implementations§
Source§impl Clone for ParticleBatch
impl Clone for ParticleBatch
Source§impl Debug for ParticleBatch
impl Debug for ParticleBatch
Source§impl Drawable for ParticleBatch
impl Drawable for ParticleBatch
Source§fn bounds(&self, context: &DrawContext) -> Rect
fn bounds(&self, context: &DrawContext) -> Rect
Local layout/ink bounds before node placement.
Source§fn draw(
&self,
_: &DrawContext,
canvas: &mut Canvas<'_>,
) -> Result<(), ValidationError>
fn draw( &self, _: &DrawContext, canvas: &mut Canvas<'_>, ) -> Result<(), ValidationError>
Emits local commands; validation errors propagate without partial output.
Source§fn resolve_node(
&self,
_context: &DrawContext,
) -> Result<Option<Node>, ValidationError>
fn resolve_node( &self, _context: &DrawContext, ) -> Result<Option<Node>, ValidationError>
Resolves deferred content to ordinary nodes at the current drawing time.
Source§fn try_bounds(&self, context: &DrawContext) -> Result<Rect, ValidationError>
fn try_bounds(&self, context: &DrawContext) -> Result<Rect, ValidationError>
Checked bounds for fallible content such as explicit-font paragraphs.
Existing geometry implementations may keep the infallible bounds method.
Source§impl InstanceBatch for ParticleBatch
impl InstanceBatch for ParticleBatch
Source§fn blend(&self) -> InstanceBlend
fn blend(&self) -> InstanceBlend
Batch compositing policy; the default is source-over.
Source§fn spatial(&self) -> Option<&dyn SpatialInstances>
fn spatial(&self) -> Option<&dyn SpatialInstances>
Optional conservative supports and ordered sampling; defaults to full-batch traversal.
Source§fn validate(&self) -> Result<(), ValidationError>
fn validate(&self) -> Result<(), ValidationError>
Validates all stored instance/style values, including hidden instances.
Source§fn sample(
&self,
point: Point,
antialias: f64,
destination: [f32; 4],
space: BlendSpace,
composite: InstanceComposite,
) -> Result<[f32; 4], ValidationError>
fn sample( &self, point: Point, antialias: f64, destination: [f32; 4], space: BlendSpace, composite: InstanceComposite, ) -> Result<[f32; 4], ValidationError>
Samples instances in their declared order using the consumer’s compositor.
Source§fn sample_with_zero_identity(
&self,
point: Point,
antialias: f64,
destination: [f32; 4],
space: BlendSpace,
composite: InstanceComposite,
) -> Result<[f32; 4], ValidationError>
fn sample_with_zero_identity( &self, point: Point, antialias: f64, destination: [f32; 4], space: BlendSpace, composite: InstanceComposite, ) -> Result<[f32; 4], ValidationError>
Samples with a compositor for which every all-zero source, including
signed zeros, is an infallible identity without observable side effects.
Implementations may omit those calls, but must preserve nonzero sample
order and errors. The default retains the ordinary sampling behavior.
Callers with an arbitrary compositor must use
Self::sample instead.Source§fn content_eq(&self, other: &dyn InstanceBatch) -> bool
fn content_eq(&self, other: &dyn InstanceBatch) -> bool
Compares the logical payload of two instance records.
Source§fn upload_bytes(&self) -> u64
fn upload_bytes(&self) -> u64
Exact upload charge for preflight admission; zero by default for CPU-only batches.
Source§fn upload(&self) -> Result<Option<InstanceUpload>, ValidationError>
fn upload(&self) -> Result<Option<InstanceUpload>, ValidationError>
Checked evaluated primitives, or None when only CPU sampling is available.
Source§impl PartialEq for ParticleBatch
impl PartialEq for ParticleBatch
Source§impl SpatialInstances for ParticleBatch
impl SpatialInstances for ParticleBatch
Source§fn support(&self, index: usize, antialias: f64) -> Rect
fn support(&self, index: usize, antialias: f64) -> Rect
Local support, including antialiasing and numeric guards, for one instance.
Source§fn sample_indices(
&self,
indices: &[usize],
point: Point,
antialias: f64,
destination: [f32; 4],
space: BlendSpace,
composite: InstanceComposite,
) -> Result<[f32; 4], ValidationError>
fn sample_indices( &self, indices: &[usize], point: Point, antialias: f64, destination: [f32; 4], space: BlendSpace, composite: InstanceComposite, ) -> Result<[f32; 4], ValidationError>
Samples only the ascending, in-range instance indices supplied by a consumer.
The compositor must treat all-zero sources as infallible identities.
Auto Trait Implementations§
impl Forget for ParticleBatch
impl Freeze for ParticleBatch
impl RefUnwindSafe for ParticleBatch
impl Send for ParticleBatch
impl Sync for ParticleBatch
impl Unpin for ParticleBatch
impl UnsafeUnpin for ParticleBatch
impl UnwindSafe for ParticleBatch
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Output> IntoSceneOutput for Output
impl<Output> IntoSceneOutput for Output
Source§impl<Value> NodeModifiers for Value
impl<Value> NodeModifiers for Value
Source§fn layered_shadow(self, color: Color, radius: f64, offset: Vector2) -> Node
fn layered_shadow(self, color: Color, radius: f64, offset: Vector2) -> Node
Layers three soft silhouettes behind a single untouched source snapshot.
Source§fn elevated(self, elevation: Elevation) -> Node
fn elevated(self, elevation: Elevation) -> Node
Layers contact, key and ambient soft shadows that scale with an
Elevation.Source§fn gate_weave(self, seed: u64, frame: u64, amount: f64) -> Node
fn gate_weave(self, seed: u64, frame: u64, amount: f64) -> Node
Repeatable physical gate drift, keyed only by an explicit frame and seed.
Source§fn next_to(self, reference: &Node, side: Side, gap: f64) -> Node
fn next_to(self, reference: &Node, side: Side, gap: f64) -> Node
Places content next to the reference during compile-time layout.
Source§fn align_to(self, reference: &Node, edge: Side) -> Node
fn align_to(self, reference: &Node, edge: Side) -> Node
Aligns an edge with a compile-time measured reference snapshot.
Source§fn at(self, position: impl Into<Point>) -> Node
fn at(self, position: impl Into<Point>) -> Node
Places the selected pivot at a parent-space point, before translation.
Source§fn translate(self, horizontal: f64, vertical: f64) -> Node
fn translate(self, horizontal: f64, vertical: f64) -> Node
Adds parent-space translation, after scale and rotation.
Source§fn rotate(self, radians: f64) -> Node
fn rotate(self, radians: f64) -> Node
Adds clockwise radians about the pivot, after scale and before translation.
Source§fn scale(self, factor: f64) -> Node
fn scale(self, factor: f64) -> Node
Multiplies both scale factors; negative factors reflect and zero collapses.
Source§fn scale_xy(self, horizontal: f64, vertical: f64) -> Node
fn scale_xy(self, horizontal: f64, vertical: f64) -> Node
Multiplies per-axis scale factors about the pivot.
Source§fn pivot(self, pivot: Pivot) -> Node
fn pivot(self, pivot: Pivot) -> Node
Replaces the local-space pivot; defaults to the layout-bounds center.
Source§fn opacity(self, opacity: f64) -> Node
fn opacity(self, opacity: f64) -> Node
Replaces subtree opacity; invalid values are reported during conversion.
Source§fn blend_mode(self, mode: BlendMode) -> Node
fn blend_mode(self, mode: BlendMode) -> Node
Blends the completed subtree once against its immediate parent backdrop. Read more
Source§fn filter(self, filter: Filter) -> Node
fn filter(self, filter: Filter) -> Node
Appends a source-only filter, preserving declaration order. Read more
Source§fn clip(self, shape: impl Into<ShapeClip>) -> Node
fn clip(self, shape: impl Into<ShapeClip>) -> Node
Replaces the subtree’s local path-coverage clip without changing layout. Read more
Source§fn clip_with(self, shape: impl Into<ShapeClip>, mode: ClipMode) -> Node
fn clip_with(self, shape: impl Into<ShapeClip>, mode: ClipMode) -> Node
Clips with explicit coverage multiplication or geometric intersection.
Source§fn mask(self, mask: impl Into<Node>, mode: MaskMode) -> Node
fn mask(self, mask: impl Into<Node>, mode: MaskMode) -> Node
Replaces the local geometric rectangle clip without changing layout. Read more
Source§fn z_index(self, index: i32) -> Node
fn z_index(self, index: i32) -> Node
Replaces sibling-local stacking order; ties retain insertion order.