Skip to content

Play effects over a wallpaper in shiftpaper-render - #30

Merged
CPritch merged 1 commit into
mainfrom
feat/effects
Oct 11, 2026
Merged

CPritch merged 1 commit into
mainfrom
feat/effects

Conversation

@CPritch

@CPritch CPritch commented Oct 11, 2026

Copy link
Copy Markdown
Owner

Tiltpane plays something as the phone unlocks. Its first go moved the camera (a small zoom, or a lift), which didn't use the depth and felt flat next to the transitions. This adds effects that move through the scene itself.

  • Effect (public): Ripple, Swell and Glint, with ALL and as_str() like Transition
  • OutputRenderState::start_effect(effect, duration, origin): plays one over the wallpaper showing, starting from origin in screen uv. is_playing_effect() says whether one is going, and step_and_write reports a change while one plays, so it gets drawn
  • Three new uniforms: effect, effect_progress and effect_origin. With no effect the shader takes the same path as before
  • ripple: waves spread from the origin across the screen and back through the scene by depth rank at once, so they reach near things before far ones beside them, moving the picture to and from the origin and lighting their crests
  • swell: a band rolls from the nearest things to the furthest by depth rank, each part of the scene leaning toward the viewer as it passes
  • glint: a band of warm light passes back through the scene the same way, catching the brighter parts most
  • Effects show over a wallpaper at rest, not during a transition, and each leaves it exactly as it was

shiftpaperd doesn't use any of this, so it looks the same.

Format, clippy and tests pass. New tests check the effect numbers match the shader, the names are unique, and the timing runs evenly to the end. Tiltpane builds against this branch, and on the emulator each effect plays on unlock as described. Not yet run on the Pixel or the desktop.

OutputRenderState::start_effect plays a short effect over the wallpaper
showing, starting from a point on the screen, for front ends to mark a
moment like a phone unlocking. Each moves through the depth of the scene
and leaves it exactly as it was:

- ripple: waves spread from the point across the screen and back through
  the scene at once, so they reach near things before far ones beside
  them, moving and lighting the picture as they pass.
- swell: a band rolls from the nearest things to the furthest by depth
  rank, each part of the scene leaning toward the viewer as it passes.
- glint: a band of warm light passes back through the scene the same
  way, catching the brighter parts most.

Effects show over a wallpaper at rest, not during a transition.
@CPritch
CPritch merged commit ab0ffdc into main Oct 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant