Skip to main content

ShapeRecorder

Struct ShapeRecorder 

Source
pub struct ShapeRecorder { /* private fields */ }
Expand description

The POD half of a recording as it is written: the shape records with their brush and stop tables and coalesced segments, and the bounds those records reach. Plain data throughout, so a scene carries one across threads; CommandRecording wraps it with the other lane.

Implementations§

Source§

impl ShapeRecorder

Source

pub fn tables(&self) -> &RecordTables

The owned shape columns and their brush, stop and segment tables.

Source

pub fn is_empty(&self) -> bool

Source

pub fn all_segments(&self) -> Range<u32> ⓘ

Every segment, the range a run of the whole recording draws.

Source

pub fn bounds(&self) -> Option<Rect>

The rect every recorded shape’s pixels lie within; None when nothing was recorded.

Source

pub fn fingerprint(&self) -> u64

The tables’ fingerprint; see RecordTables::fingerprint.

Source

pub fn clear(&mut self)

Empties the recorder while retaining its table capacities.

Source

pub fn push_primitive(&mut self, primitive: DrawPrimitive) -> Recorded

Records a rect, rounded rect or arc, blended or not; hands any other primitive back untouched.

Source

pub fn push_shape_primitive( &mut self, primitive: DrawPrimitive, blend_mode: BlendMode, ) -> Recorded

Records a rect, rounded rect or arc with the supplied blend mode. Returns any other primitive untouched, including blend wrappers.

Source

pub fn push_line( &mut self, line: &LineGeometry, brush: &Brush, stroke: Stroke, blend: BlendMode, ) -> Rect

Records the segment line stroked with stroke and returns the pixels it can reach. The ends ride in the arc columns, and the unit direction and half length the vertex stage orients its quad by in the curve column; a degenerate segment is kept, as the app drew it, and draws nothing.

Source

pub fn push_trapezoids( &mut self, brush_rect: Rect, trapezoids: &[Trapezoid], brush: &Brush, blend: BlendMode, ) -> Rect

Records the slices of a path fill, each painted by brush resolved against brush_rect, and returns the box they reach. The brush is interned once for them all. A slice’s corners ride in the arc column; its sides and width, which is never zero, in the curve’s normalised column, so no slice’s row equals a band’s, whose trig the GPU writes into its radii; and the brush rect in the radii.

Source

pub fn push_rect( &mut self, rect: Rect, brush: &Brush, stroke: Option<Stroke>, blend: BlendMode, ) -> Rect

Source

pub fn push_round_rect( &mut self, rect: Rect, brush: &Brush, radii: CornerRadii, stroke: Option<Stroke>, blend: BlendMode, ) -> Rect

Source

pub fn push_arc(&mut self, rect: Rect, args: &ArcRecordArgs<'_>) -> Rect

Records an arc band or annular sector with the rect the primitive carries.

Source

pub fn push_scope_arc( &mut self, args: &ArcRecordArgs<'_>, geometry: &ArcGeometry, ) -> Rect

Records an arc the draw scope drew, whose band the scope already normalised: the record keeps the disc around the band as its rect and derives the primitive’s tight bounds only when asked.

The scope records only bands that enclose area, so the band is known not to be degenerate.

Trait Implementations§

Source§

impl Clone for ShapeRecorder

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ShapeRecorder

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for ShapeRecorder

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for ShapeRecorder

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.