Expandable player: kill sluggish morph (cheaper compositing + snappy spring) — vc=76

- The detail body's alpha fade was rendering the whole scroll subtree to
  an offscreen buffer every frame (CompositingStrategy.Auto goes offscreen
  when alpha<1). Switch to ModulateAlpha — the body's rows don't overlap,
  so the per-draw-op fade is correct and skips the buffer. Main fix.
- Replace the 300ms FastOutSlowIn tween (slow ramp at both ends) with a
  no-bounce StiffnessMedium spring — distance-adaptive, reads as snappy.
This commit is contained in:
Sulkta 2026-06-20 13:41:46 -07:00
parent c6e7f46633
commit d7f86ebf14
2 changed files with 27 additions and 6 deletions

View file

@ -9,6 +9,14 @@ const val STRAW_SDK_TARGET = 35
// Sulkta fork — Straw
//
// vc=76 / 0.1.0-CJ — expandable-player smoothness pass:
// * The detail body no longer renders to an offscreen buffer every
// frame during the morph (CompositingStrategy.ModulateAlpha) — that
// offscreen alpha pass on the whole scroll subtree was the main
// cause of the sluggish feel.
// * Morph animation is now a snappy no-bounce spring instead of a
// 300ms FastOutSlowIn tween (which ramped slowly at both ends).
//
// vc=75 / 0.1.0-CI — expandable player (full rearchitect):
// * The video page and the bottom minibar are now ONE container that
// morphs continuously between them, both directions. Replaces the
@ -74,6 +82,6 @@ const val STRAW_SDK_TARGET = 35
// vc=19 / 0.1.0-AE — rust pipeline cutover. Extraction via
// strawcore-core (Sulkta-OSS/strawcore) via the UniFFI wrapper; no
// NewPipeExtractor in the runtime path.
const val STRAW_VERSION_CODE = 75
const val STRAW_VERSION_NAME = "0.1.0-CI"
const val STRAW_VERSION_CODE = 76
const val STRAW_VERSION_NAME = "0.1.0-CJ"
const val STRAW_APPLICATION_ID = "com.sulkta.straw"