pub struct PaintList(Vec<ClippedShape>);
Expand description
A list of Shape
s paired with a clip rectangle.
Tuple Fields§
§0: Vec<ClippedShape>
Implementations§
source§impl PaintList
impl PaintList
pub fn is_empty(&self) -> bool
pub fn next_idx(&self) -> ShapeIdx
sourcepub fn add(&mut self, clip_rect: Rect, shape: Shape) -> ShapeIdx
pub fn add(&mut self, clip_rect: Rect, shape: Shape) -> ShapeIdx
Returns the index of the new Shape
that can be used with PaintList::set
.
pub fn extend<I: IntoIterator<Item = Shape>>( &mut self, clip_rect: Rect, shapes: I, )
sourcepub fn set(&mut self, idx: ShapeIdx, clip_rect: Rect, shape: Shape)
pub fn set(&mut self, idx: ShapeIdx, clip_rect: Rect, shape: Shape)
Modify an existing Shape
.
Sometimes you want to paint a frame behind some contents, but don’t know how large the frame needs to be
until the contents have been added, and therefor also painted to the PaintList
.
The solution is to allocate a Shape
using let idx = paint_list.add(cr, Shape::Noop);
and then later setting it using paint_list.set(idx, cr, frame);
.
sourcepub fn reset_shape(&mut self, idx: ShapeIdx)
pub fn reset_shape(&mut self, idx: ShapeIdx)
Set the given shape to be empty (a Shape::Noop
).
sourcepub fn mutate_shape(&mut self, idx: ShapeIdx, f: impl FnOnce(&mut ClippedShape))
pub fn mutate_shape(&mut self, idx: ShapeIdx, f: impl FnOnce(&mut ClippedShape))
Mutate the shape at the given index, if any.
sourcepub fn transform(&mut self, transform: TSTransform)
pub fn transform(&mut self, transform: TSTransform)
Transform each Shape
and clip rectangle by this much, in-place
sourcepub fn transform_range(
&mut self,
start: ShapeIdx,
end: ShapeIdx,
transform: TSTransform,
)
pub fn transform_range( &mut self, start: ShapeIdx, end: ShapeIdx, transform: TSTransform, )
Transform each Shape
and clip rectangle in range by this much, in-place
sourcepub fn all_entries(&self) -> impl ExactSizeIterator<Item = &ClippedShape>
pub fn all_entries(&self) -> impl ExactSizeIterator<Item = &ClippedShape>
Read-only access to all held shapes.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for PaintList
impl !RefUnwindSafe for PaintList
impl Send for PaintList
impl Sync for PaintList
impl Unpin for PaintList
impl !UnwindSafe for PaintList
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
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)