mcclim/tests.lisp
Fresh borrowed texture wrappers for one native drawable must address the same per-frame uniform state.
The standalone solid stage names its vec4 binding COLOR. Its rgb operand
is a direct input reference, not another multiplication by opacity.
A delayed older repaint cannot replace the newer publication.
Publication already prepared the semantic revision. Clear that observation to model a later frame whose McCLIM stream stayed static.
Give unrealized test frame one immutable direct-GPU revision and a probe.
Initial semantic publication has no compositor. Every later probe observation therefore belongs to the tested static refresh boundary.
Each capture target has a fresh identity. Repeating screenshots must return every per-frame cache to the one persistent drawable slot.
Retrying cleanup cannot release wrappers a second time.
A failing native wrapper must not strand the state or prevent sibling resources from being released, and a retry remains a no-op.
The two complete capture cohorts contribute six releases each; the deliberately failing cohort still attempts all four of its resources.
Logical ownership was detached before the error; retry is a no-op.
Each vertex is position, local coordinate, half-size/radius, color.
Six vertices, each containing five packed float32x3 attributes.
Six vertices, each containing seven packed float32x3 attributes.
(key-name &key character modifiers repeat-p)(event gesture)Whether portable luv key EVENT is the McCLIM GESTURE. A character gesture matches EVENT's unshifted character, making it a place on the current keyboard layout. A symbol gesture matches the physical key name. The modifier :ANY means the key matches however it is modified.
Logical negation of one test or raw truth value.
(gesture)An ordered McCLIM drawing stream containing no software pixel surface.
A GPU presentation relationship configured for a canvas.
(context surface-texture)Return the stable presentation slot key for SURFACE-TEXTURE in CONTEXT. Applications use this to retain per-frame resources without assuming that a backend returns the same Lisp wrapper every time it revisits a native drawable.
A MuPDF context: its allocator, its store, and its error stack.
A direct GPU target for an ordered LUV-GPU-MEDIUM drawing stream. An embedded mirror retains an immutable prepared CPU revision for the game's final pass; a standalone mirror renders into its native canvas drawable.
A retained McCLIM command stream replayed into a caller-owned GPU pass. The caller supplies one 4x4 clip-space affine state and the actual destination texture for each frame. Semantic solids, analytic shapes, gradients, images, lattices, and Slug text are evaluated at that texture's native resolution; there is no…
(overlay surface-texture)Return the bounded backend frame key for SURFACE-TEXTURE. Metal presents a stable drawable through a fresh Lisp texture wrapper each time. Keying by that wrapper leaks one uniform buffer and several bind groups per frame; the canvas context exposes the native drawable identity instead.
(compositor command)Whether COMPOSITOR wants prepared COMMAND in the mirror texture. A compositor which replays a command directly into its final render pass can return false, avoiding a lower-resolution copy underneath the direct draw.
(medium x y color)Test whether two compatible scalars are equal.
(data width height screen-x screen-y alpha outline-x outline-y
horizontal-count band-offset curve-offset vertical-count
min-x min-y max-x max-y color)(specification output)(role stage)Return the current durable shader specification for ROLE and STAGE.
Select and reorder vector components by a designator such as :XYZ or :RGB.
(object)(binding)(mirror commands vertices analytic-vertices relief-vertices
gradient-vertices image-vertices text-data &key (copy-p t))(mirror revision)(compositor mirror revision)Prepare COMPOSITOR for immutable MIRROR REVISION outside a render pass.
(mirror &key
(target-format nil target-format-p)
(depth-stencil nil depth-stencil-p))Prepare MIRROR's compositor for its current immutable GPU revision. Applications call this at their pre-pass refresh boundary even when McCLIM's semantic command stream is unchanged. It deliberately accepts only a direct GPU mirror: raster mirrors have no retained semantic revision and are not a fallback for…
An explicitly owned AVFrame.
Compare compatible quantities and produce dimensionless values.
Addition over compatible quantities.
Multiplication and scalar scaling.
(compositor frame-state revision)(compositor target-format depth-stencil families)(handle)Logically invalidate HANDLE immediately. Native teardown may be deferred until submitted work which captured HANDLE has completed.
(events name &key fail-shape-p)A simple Org table without formulas.
(compositor frame-key)Evict COMPOSITOR's GPU state retained for one canvas FRAME-KEY. The state and all bind groups which borrow its affine buffer are detached before any native resource is destroyed. Other drawable slots remain available.
(overlay)Logically release every GPU resource retained by OVERLAY. LUV:DESTROY invalidates each wrapper now and defers native teardown through the backend submission frontier when an in-flight command buffer still owns it.
((type (eql :luv)))A luv port whose media record McCLIM drawing directly as GPU geometry.
A luv port whose media rasterize into MCCLIM-RENDER images.
(command offsets)Copy COMMAND with its dense-stream range rebased by OFFSETS. Commands without dense-stream ranges may return themselves. There is no default method: every semantic command family must state its compose rule.
(command mirror frame-build)Prepare semantic COMMAND for MIRROR within FRAME-BUILD. Return the command to encode, or NIL when it produces no draw. There is no default method so adding a semantic command requires an explicit preparation decision.
(command pass frame-state)Encode one prepared COMMAND into PASS using destination FRAME-STATE. Dispatch is at command grain. Vertex and texture payloads remain in the dense buffers owned by FRAME-STATE.
Test whether one compatible scalar is greater than another.
(specification)(specification &optional (target *metal-4-target*))((medium luv-gpu-medium) x1 y1 x2 y2 filled)(medium)Describe which BASIC-MEDIUM fallbacks fed MEDIUM's GPU polygon leaf. Each entry reports semantic calls, polygon points produced by McCLIM, and GPU triangles emitted by luv. Direct polygon calls are named :DIRECT-POLYGON.
((medium luv-gpu-medium)
cx cy rdx1 rdy1 rdx2 rdy2 eta1 eta2 filled)(medium x1 y1 x2 y2 radius filled)Draw the uniform-radius roundrect primitive when MEDIUM supports it.
(x1 y1 x2 y2 start-color end-color)((design relief-design) x y)(center-x center-y radius start-color end-color)(albedo height)(transformation (design relief-design))((medium luv-gpu-medium) pattern x y)(design)(design x y)Test whether one compatible scalar is less than another.
The componentwise absolute value of a raw value.
Subtraction or unary negation.
((medium luv-gpu-medium) coordinates closed filled)
Locks do not stop an application command from being an application command, while an ordinary modifier still denotes another gesture.