1use crate::peniko::BlendMode;
5use core::ops::Range;
6use vello_common::geometry::RectU16;
7use vello_common::mask::Mask;
8use vello_common::paint::Paint;
9use vello_common::record::Drawable;
10use vello_common::strip::Strip;
11use vello_common::util::strip_bbox;
12
13#[derive(Debug)]
14pub(crate) struct RecordedFill {
15 pub(crate) thread_idx: u8,
16 pub(crate) strip_range: Range<usize>,
17 pub(crate) paint: Paint,
18 pub(crate) blend_mode: BlendMode,
19 pub(crate) mask: Option<Mask>,
20}
21
22impl RecordedFill {
23 pub(crate) fn new(
24 thread_idx: u8,
25 strip_range: Range<usize>,
26 paint: Paint,
27 blend_mode: BlendMode,
28 mask: Option<Mask>,
29 ) -> Self {
30 Self {
31 thread_idx,
32 strip_range,
33 paint,
34 blend_mode,
35 mask,
36 }
37 }
38}
39
40impl Drawable for RecordedFill {
41 fn bbox(&self, strips: &[Strip]) -> Option<RectU16> {
42 strip_bbox(strips)
43 }
44}