makepad/libs/image_tiles/Cargo.toml
Admin b0380bac34 image-tiles: the picture-wall engine as a library — tape atlases, a baker CLI, and the TileGrid widget
The Source Library wall's pixel engine, extracted for anyone's pictures:
libs/image_tiles carries the NV12 slot pyramid, the 32x32 shard atlas
geometry and the one-HEVC-intra-frame-per-file tape codec (tape.rs), a
small SQLite index (db.rs), a priority decode pool (store.rs), and the
TileGrid widget — instanced tiles batched per atlas page, anchor-locked
wheel zoom with log-space glide, continuous per-shard LOD with
crossfades, full-resolution promotion under byte budgets with LRU
eviction, and uniform-only re-presents inside the pad of the last build.
image-tiles-bake downloads a manifest of URLs (fetch pool free to be
wide, encode pool hard-capped — concurrent VT session churn has panicked
the encoder's IOMMU) and bakes a library; examples/image_tiles views one.
No JPEGs on disk; decode and encode are the hardware's.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 20:19:56 +02:00

26 lines
1 KiB
TOML

[package]
name = "makepad-image-tiles"
version = "0.1.0"
edition = "2021"
description = "Pannable, zoomable wall of image tiles: a small baker CLI downloads pictures into hardware-HEVC tape atlases, and the TileGrid widget draws them as instanced NV12 textures with continuous LOD"
license = "MIT OR Apache-2.0"
[lib]
name = "makepad_image_tiles"
path = "src/lib.rs"
# The baker: reads a manifest of image URLs, downloads and decodes them in
# RAM, and bakes the tile library a TileGrid widget opens. No window.
[[bin]]
name = "image-tiles-bake"
path = "src/bin/bake.rs"
[dependencies]
makepad-widgets = { path = "../../widgets" }
# The library index: items and shard bookkeeping in our own SQLite engine.
makepad-sqlite = { path = "../sqlite_query" }
# Hardware HEVC intra frames (VideoToolbox) for the on-disk tapes: no JPEGs
# or PNGs are ever kept, one hardware decode fills a whole atlas level.
makepad-video = { path = "../../platform/video" }
# The baker's downloader: the dependency-free blocking HTTP client.
makepad-network = { path = "../../platform/network" }