The dissolve that starts when the displayed level becomes toIdx (the
previous frame displayed prevIdx), given the dissolve in flight, if any.
It starts from what is on screen. With nothing in flight, from prevIdx at
progress 0. Reversing an in-flight dissolve (back to its outgoing level)
starts at 1 − progress, so each level keeps exactly its current opacity
and the reversal only undoes what happened. Retargeting to a THIRD level
keeps the more opaque of the two as the outgoing level, at its current
opacity (the other one, at most half-weight, drops out).
The dissolve that starts when the displayed level becomes
toIdx(the previous frame displayedprevIdx), given the dissolve in flight, if any. It starts from what is on screen. With nothing in flight, fromprevIdxat progress 0. Reversing an in-flight dissolve (back to its outgoing level) starts at1 − progress, so each level keeps exactly its current opacity and the reversal only undoes what happened. Retargeting to a THIRD level keeps the more opaque of the two as the outgoing level, at its current opacity (the other one, at most half-weight, drops out).