1
0
Fork 0
forked from wry/wry

Add retained spawn-out animations

This commit is contained in:
atagen 2026-05-21 17:09:06 +10:00
parent d0cc5dc3c7
commit fa5c28ca3d
9 changed files with 331 additions and 8 deletions

View file

@ -14,8 +14,9 @@ be handled deliberately.
in-flight windows keep their existing timelines.
- Spawn-in uses scale and position for newly mapped tiled and floating app
windows. Layer-shell, overlay, override-redirect, and fullscreen surfaces do
not use this path. Spawn-out requires retained visual content after the live
node is gone and remains deferred.
not use this path. Spawn-out uses retained visual content after the live node
is gone, when a stable retained surface tree can be captured before unmap or
destroy.
- Command-driven tile-to-float and float-to-tile transitions may animate.
Protocol drag/drop paths do not.
- The no-overlap multiphase system is a separate phase after the linear path is
@ -90,7 +91,8 @@ Initial scope:
- Live client buffers are rendered in Phase 1. Retained content freezing is
deferred, but animated windows must still be clipped to their presentation
bounds and must preserve the existing stretch behavior for undersized contents.
- No spawn-out.
- Spawn-out is retained-content-only. If the surface cannot be retained safely
the window snaps out instead of animating an empty frame.
- No multiphase no-overlap planner.
Tests:
@ -116,6 +118,9 @@ Initial retained-record implementation status:
for both tiled windows and floating child contents.
- Tile-to-float and float-to-tile transitions retain GPU/dmabuf-backed child
contents while the presentation geometry changes.
- Spawn-out captures retained app-window contents before XDG/Xwayland unmap or
destroy, then renders a detached shrinking presentation record until the
animation completes.
- Retained records hold both `GfxTexture` and `SurfaceBuffer` references so the
existing buffer release/sync path remains authoritative.
- Single-pixel buffers can be retained as color records.