All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m33s
Merges full history from art-dag/mono.git into the monorepo under the artdag/ directory. Contains: core (DAG engine), l1 (Celery rendering server), l2 (ActivityPub registry), common (shared templates/middleware), client (CLI), test (e2e). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> git-subtree-dir: artdag git-subtree-mainline:1a179de547git-subtree-split:4c2e716558
26 lines
852 B
Common Lisp
26 lines
852 B
Common Lisp
;; Crossfade with Zoom Transition
|
|
;;
|
|
;; Macro for transitioning between two frames with a zoom effect.
|
|
;; Active frame zooms out while next frame zooms in.
|
|
;;
|
|
;; Required context:
|
|
;; - zoom effect must be loaded
|
|
;; - blend effect must be loaded
|
|
;;
|
|
;; Parameters:
|
|
;; active-frame: current frame
|
|
;; next-frame: frame to transition to
|
|
;; fade-amt: transition progress (0 = all active, 1 = all next)
|
|
;;
|
|
;; Usage:
|
|
;; (include :path "../templates/crossfade-zoom.sexp")
|
|
;; ...
|
|
;; (crossfade-zoom active-frame next-frame 0.5)
|
|
|
|
(defmacro crossfade-zoom (active-frame next-frame fade-amt)
|
|
(let [active-zoom (+ 1.0 fade-amt)
|
|
active-zoomed (zoom active-frame :amount active-zoom)
|
|
next-zoom (+ 0.1 (* fade-amt 0.9))
|
|
next-zoomed (zoom next-frame :amount next-zoom)]
|
|
(blend active-zoomed next-zoomed :opacity fade-amt)))
|