mural 1.0.0-dev.0
mural: ^1.0.0-dev.0 copied to clipboard
Capture any Flutter widget as an image, at any size. Screenshot huge lists, full pages, and even unseen widgets — past the GPU texture limit, always crisp, in constant memory.
Prerelease Changelog #
1.0.0-dev.0 #
First release — capture any Flutter widget as an image, at any size: offscreen widgets, on-screen snapshots, and captures beyond the GPU texture limit (flutter/flutter#118024), streamed in constant memory.
- Capture: three doors on one
Muralfacade —capture(offscreen, staged with the caller's theme and text direction),captureBoundary(on-screen, snapshotted synchronously at the call),captureInto(streams into anySink<List<int>>) - Any size: captures in strips under a GPU limit learned from the engine's own responses; output size bounded by neither the GPU nor memory
- Fidelity: strip output byte-identical to a one-shot render — strip origins aligned to the engines' 8x8 dither matrix,
bleedmargin around interior seams for shadows and blurs; verified by a differential test against the framework's own rasterization - Memory: peak working memory is one band plus one strip readback, set by
memoryLimitBytes, independent of output size - Readiness: one deterministic signal,
MuralStage.ready(context)— no timer options - Tasks: every door returns a
MuralTask— awaitable, live progress (sealedMuralProgressfamily), cooperative cancellation - Output: in-package streaming PNG (RFC 2083/1950/1951) encoded off the UI thread (isolate on native,
CompressionStreamon web); raw straight-alpha RGBA as the escape hatch - Errors: sealed
MuralErrorfamily — every failure typed and named, includingMuralBudgetErrorwhen the memory budget and bleed cannot form a plan - Platforms: Android, iOS, macOS, Windows, Linux, web — one codebase, zero runtime dependencies
- SDK: requires Dart >=3.11.0
Commits since initial (6)
- 2dcd58c release: v1.0.0-dev.0
- 5beb774 ci: bump dorny/paths-filter from 4.0.1 to 4.0.2 in the actions group across 1 directory (#1)
- d72aa28 ci: restore byte-parity with the shared workflow stubs
- 1cbc810 ci: touch dispatch-only workflows so GitHub registers them
- 369c19b chore: nudge workflow registration for dispatch-only workflows
- 459bd56 chore: initial import of mural from the whuppi workspace