vello_common 0.3.0

Core data structures and utilities shared across the Vello rendering, including geometry processing and tiling logic.
Documentation
// Copyright 2026 the Vello Authors
// SPDX-License-Identifier: Apache-2.0 OR MIT

//! Configuring how a render target is initialized before drawing.

/// Controls how existing target contents are handled before drawing.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum TargetInit<C> {
    /// Composite rendered content over the existing target contents with src-over blending.
    SrcOver,
    /// Clear the drawing surface with the specified color before drawing.
    ///
    /// The clear color is treated as an isolated background on top of which the fully
    /// rendered scene is composited. In particular, it will not be used as the backdrop
    /// for blending operations in the main scene.
    Clear(C),
}

impl<C> TargetInit<C> {
    /// Transform the clear value while preserving the target initialization mode.
    pub fn map<T>(self, f: impl FnOnce(C) -> T) -> TargetInit<T> {
        match self {
            Self::SrcOver => TargetInit::SrcOver,
            Self::Clear(clear) => TargetInit::Clear(f(clear)),
        }
    }
}