lib.rs
raw
//! Backend-agnostic scene abstraction: display lists, fragments, and the
//! render backend trait.
//!
//! Widgets paint by emitting [`DisplayItem`]s into [`Fragment`]s; a tree of
//! fragments composes via per-child transforms. Render backends consume the
//! fragment tree through the [`RenderBackend`] trait, so nothing above this
//! crate knows which renderer is in use.
//!
//! Geometry and paint vocabulary types come from kurbo and peniko, re-exported
//! here as [`geom`] and [`paint`]. Downstream code should spell
//! `guiduck_scene::geom::Rect`, not `kurbo::Rect`, so that the choice of
//! underlying crates remains this crate's private decision.
pub use peniko as paint;
pub use peniko::kurbo as geom;
pub mod backend;
pub mod display_list;
pub use backend::{RenderBackend, RenderError};
pub use display_list::{
DisplayItem, Fragment, FragmentId, FragmentStore, Glyph, GlyphRun, NormalizedCoord, ScopeKind,
ScopeTracker, Shape,
};