Skip to main content

vello_cpu/
record.rs

1// Copyright 2026 the Vello Authors
2// SPDX-License-Identifier: Apache-2.0 OR MIT
3
4use 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}