Files
hyperframes/packages
Miguel Ángel 0bb7b2f61a fix(shader-transitions): a runtime seek during the prewarm is where the preview lands (#4523)
* fix(shader-transitions): a runtime seek during the prewarm is where the preview lands

The runtime seeks the timeline through totalTime, which HyperShader did not
wrap. A seek that arrived while the transition prewarm ran moved the
timeline under the capture and was never recorded, so the prewarm restored
the playhead it had before the seek and the film's tweens showed that time
while the player showed the new one. totalTime is now wrapped like time and
seek: while the prewarm runs it records the playhead, and the prewarm
restores it. HyperShader's own play, pause, time and seek calls, which GSAP
routes through totalTime, pass straight through.

* fix(shader-transitions): a speed change during the prewarm does not move the playhead

GSAP re-renders in place through totalTime from timeScale, paused and
reversed, so those now pass through as HyperShader's own seeks instead of
recording the capture frame as the playhead to restore.

* fix(shader-transitions): an outside seek during the prewarm is applied, not dropped

Dropping outside totalTime calls while the prewarm ran also dropped the
runtime's bind-time render, so a warm reload at 0 never drew tl.set states
at 0, and it starved the runtime's volume probe. An outside totalTime call
is now applied as before and recorded as the playhead the prewarm restores;
reading totalTime during the prewarm still returns that playhead.

* fix(shader-transitions): the prewarm captures its sample frame even after an outside seek

Outside seeks now apply during the prewarm, so one that lands while a
capture frame paints (the runtime's volume probe restoring the playhead,
a transport tick, a restored playhead) could move the timeline before the
capture and cache the wrong frame. The capture re-seeks to its sample, with
events suppressed, right after the paint wait.
2026-09-26 08:21:14 +00:00
..
2026-09-25 22:58:59 -04:00
2026-09-25 22:58:59 -04:00
2026-09-25 22:58:59 -04:00