| // Copyright 2025 the Vello Authors |
| // SPDX-License-Identifier: Apache-2.0 OR MIT |
| |
| //! This crate includes common geometry representations, tiling logic, and other fundamental components used by both [Vello CPU][vello_cpu] and Vello Hybrid. |
| //! |
| //! ## Usage |
| //! |
| //! This crate should not be used on its own, and you should instead use one of the renderers which use it. |
| //! At the moment, only [Vello CPU][vello_cpu] is published, and you probably want to use that. |
| //! |
| //! We also develop [Vello](https://crates.io/crates/vello), which makes use of the GPU for 2D rendering and has higher performance than Vello CPU. |
| //! Vello CPU is being developed as part of work to address shortcomings in Vello. |
| //! Vello does not use this crate. |
| //! |
| //! ## Features |
| //! |
| //! - Shared data structures for paths, tiles, and strips |
| //! - Geometry processing utilities |
| //! - Common logic for rendering stages |
| //! |
| //! This crate acts as a foundation for `vello_cpu` and `vello_hybrid`, providing essential components to minimize duplication. |
| //! |
| //! [vello_cpu]: https://crates.io/crates/vello_cpu |
| |
| // LINEBENDER LINT SET - lib.rs - v3 |
| // See https://linebender.org/wiki/canonical-lints/ |
| // These lints shouldn't apply to examples or tests. |
| #![cfg_attr(not(test), warn(unused_crate_dependencies))] |
| // These lints shouldn't apply to examples. |
| #![warn(clippy::print_stdout, clippy::print_stderr)] |
| // Targeting e.g. 32-bit means structs containing usize can give false positives for 64-bit. |
| #![cfg_attr(target_pointer_width = "64", warn(clippy::trivially_copy_pass_by_ref))] |
| // END LINEBENDER LINT SET |
| #![cfg_attr(docsrs, feature(doc_auto_cfg))] |
| #![cfg_attr(not(feature = "simd"), forbid(unsafe_code))] |
| #![expect( |
| clippy::cast_possible_truncation, |
| reason = "We temporarily ignore those because the casts\ |
| only break in edge cases, and some of them are also only related to conversions from f64 to f32." |
| )] |
| #![no_std] |
| |
| extern crate alloc; |
| |
| pub mod blurred_rounded_rect; |
| pub mod coarse; |
| pub mod colr; |
| pub mod encode; |
| pub mod execute; |
| pub mod flatten; |
| pub mod glyph; |
| pub mod mask; |
| pub mod math; |
| pub mod paint; |
| #[doc(hidden)] |
| #[cfg(feature = "pico_svg")] |
| pub mod pico_svg; |
| pub mod pixmap; |
| pub mod strip; |
| pub mod tile; |
| |
| pub use peniko; |
| pub use peniko::color; |
| pub use peniko::kurbo; |