mirror of
https://github.com/heygen-com/hyperframes.git
synced 2026-10-30 17:27:09 +00:00
* 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.