Skip to content

feat: scaffold vector and raster component pipeline#2

Merged
AsPulse merged 9 commits into
mainfrom
feat/scaffold-components
May 23, 2026
Merged

feat: scaffold vector and raster component pipeline#2
AsPulse merged 9 commits into
mainfrom
feat/scaffold-components

Conversation

@AsPulse
Copy link
Copy Markdown
Member

@AsPulse AsPulse commented May 23, 2026

Initial scaffolding of tellur's component pipeline.

  • VectorComponent and RasterComponent traits, each with
    view_box() -> Vec2 and a render() method; pixel resolution
    flows through RasterComponent::render(target: Resolution).
  • tellur-core::vector: VectorGraphic, Node (Group / Path),
    PathCommand, Fill, Stroke, Paint.
  • tellur-core::shapes: Rectangle, Circle, Ellipse anchored at
    local origin so positioning is a composition-time concern.
  • tellur-core::geometry: Vec2, Rect, Transform, plus
    Anchor and AnchoredSize::snap_to for fractional-anchor placement.
  • tellur-core::layer: VectorLayer (translate-wrapped vector
    composition) and Layer (per-child sub-resolution render +
    source-over alpha compositing).
  • tellur-core::raster: RasterImage with export_png (RGBA8,
    straight alpha).
  • tellur-core::color: Color with rgb_u8 / hsv / hsl (+ alpha).
  • tellur-renderer: Rasterize<V> (tiny-skia based) and the
    Rasterizable ext trait so any VectorComponent can become a
    RasterComponent via .rasterize().
  • Examples: scene_to_png (single-rasterize VectorLayer path) and
    raster_layer_to_png (per-child Layer path with translucent
    overlap blending).

@AsPulse AsPulse merged commit 8acf62b into main May 23, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant