Class Gallery

java.lang.Object
limn.demo.site.Gallery

public final class Gallery extends Object
Renders every gallery entry twice (once in Limn, once in Limn Light) and writes gallery.json beside the PNGs.

The site renders its component pages from that manifest, so adding a scene to GalleryScenes.entries() adds it to the site and nobody maintains a list twice.

One process and one window for the whole set. The obvious shape (one JVM per capture, the way --screenshot is used by hand) costs a backend start, a GL context and a font load every time; measured on a headless Linux runner that is around fifteen seconds each, so forty captures would be ten minutes of process startup. Here the event loop advances a cursor: render the current entry, capture it, build the next, ask for another frame, and close when the list runs out.

Both palettes are one manifest entry with two image paths, not two entries: they are the same component, and the page swaps the image with the theme toggle.

Run: ./gradlew :limn-demo:captureGallery (adds -XstartOnFirstThread on macOS and never anywhere else). Needs a GL context; on a headless Linux machine run it under xvfb-run -a with LIBGL_ALWAYS_SOFTWARE=1.