hal/capture-specification.lisp
A named recipe for one generated wiki image or video.
The semantic metadata is inspectable and retained in source; renderer is the
ordinary named function installed by define-capture. Rendered bytes live
under the capture output directory and do not belong in Git. #IVRWI8
Install specification by name, replacing a live redefinition in place.
Return every registered capture specification in definition order.
Find the capture recipe name, accepting either a symbol or a string.
Define one inspectable wiki capture recipe.
name is its command-line identity. figure is the stable six-character wiki
figure ID; KIND is :IMAGE or :video; extension is the generated file suffix.
layout is :LANDSCAPE by default or :PORTRAIT for uncropped 9:16 presentation.
body is an ordinary named renderer function body with pathname bound to its
requested output. Re-evaluating the definition replaces the recipe without
leaving stale closures in the registry.
The deterministic media pathname for specification under directory.
Return pathname with suffix appended to its name and a new extension.
The deterministic card-sized WebP beside an original capture pathname.
The deterministic card-sized WebP poster beside a captured film.
Downsample source to width as a deterministic photographic WebP.
Create the small public-index derivative for captured media at pathname.
Image originals get 480w and 768w WebPs whenever those are true downscales. Films get a card-sized WebP poster from their first frame. Originals remain untouched and retain their stable capture identity. #IVRWI8
Describe specification's original and any generated web derivative.
Render specification to pathname and return pathname.
Render names, or every registered recipe, under directory.
Each recipe announces its start and completion so a GPU build never becomes an unexplained silent process. A manifest records stable names, wiki figure IDs, media kinds, filenames, and the source revision that produced the set.
ASDF is the local executor. Host selection (for example, invoking this operation over SSH) stays outside the repository and the capture graph.
Explicit capture builds mean “make fresh evidence”, even when a previous artifact exists.
A named recipe for one generated wiki image or video. The semantic metadata is inspectable and retained in source; RENDERER is the ordinary named function installed by DEFINE-CAPTURE. Rendered bytes live under the capture output directory and do not belong in Git. #IVRWI8
How the children of a list are arranged.
(name (&key figure kind extension (description "") (layout :landscape))
(pathname) &body body)Define one inspectable wiki capture recipe. NAME is its command-line identity. FIGURE is the stable six-character wiki figure ID; KIND is :IMAGE or :VIDEO; EXTENSION is the generated file suffix. LAYOUT is :LANDSCAPE by default or :PORTRAIT for uncropped 9:16 presentation. BODY is an ordinary named renderer function…
The default intrinsic width of a showcase card image derivative.
The maximum intrinsic width of a showcase video poster.
The deterministic responsive widths generated for each larger still.
Logical conjunction of tests and raw truth values.
Test whether two compatible scalars are equal.
(extension)(layout)(specification)(name &key (errorp t))(&rest ids)An open video file and its decoder.
(specification directory)(pathname suffix extension)(pathname &optional (width +capture-web-image-width+))(pathname)(pathname)(source destination width)(specification pathname)Create the small public-index derivative for captured media at PATHNAME. Image originals get 480w and 768w WebPs whenever those are true downscales. Films get a card-sized WebP poster from their first frame. Originals remain untouched and retain their stable capture identity. #IVRWI8
Test whether one compatible scalar is greater than another.
The minimum of compatible quantities.
(specification directory)(specification pathname)Render SPECIFICATION to PATHNAME and return PATHNAME.
(directory specifications)(directory &key names)Render NAMES, or every registered recipe, under DIRECTORY. Each recipe announces its start and completion so a GPU build never becomes an unexplained silent process. A manifest records stable names, wiki figure IDs, media kinds, filenames, and the source revision that produced the set.
((operation capture-op))((operation capture-op) (system asdf:system))((operation capture-op) (system asdf:system))((operation capture-op) (system asdf:system))(function)Call FUNCTION where synchronous SDL canvas work can use the native main thread. On Darwin, a batch Lisp normally evaluates its toplevel form on the process main thread. Opening a canvas from that continuation would let Cocoa replace the continuation with its durable event loop. This boundary moves FUNCTION to a…
Pictures that carry design evidence should be reproducible without making Git the video store. capture-specification is the semantic boundary: a stable name, wiki figure ID, media kind, extension, description, and an ordinary named renderer function. define-capture is only a thin definition-site macro over that…
Named, reproducible media recipes for wiki figures.
A recipe is source; its PNG or MP4 is a disposable build product. The protocol deliberately knows nothing about SSH hosts or artifact stores: ASDF performs it on whichever GPU machine invoked the operation. #IVRWI8