1
0
Fork 0
forked from wry/wry

Document deferred retained scaling polish

This commit is contained in:
atagen 2026-05-21 15:53:19 +10:00
parent fba9d65ba1
commit 7575f851fe

View file

@ -20,6 +20,9 @@ be handled deliberately.
working and testable.
- Content freezing will use retained per-surface texture references, not a full
offscreen snapshot as the default design.
- Retained records should keep using the existing renderer behavior for now,
including clipping and edge stretch/clamp behavior for undersized contents. A
dedicated retained-tree scaling path is deferred to a later polish phase.
- The multiphase animation concept is original to Wry. Hy3 is relevant only as
partial inspiration for tiling style and titlebar/grouping behavior.
- Mono mode should mostly avoid animations. Exceptions are windows entering or
@ -107,6 +110,8 @@ Initial retained-record implementation status:
- 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.
- Retained records render through the same texture and stretch/clamp paths used
by live surfaces. This is the expected Phase 2 behavior.
- Async SHM textures are not retained yet because Wry's per-surface SHM
front/back textures can be reused by later commits while an animation is still
running. Those surfaces fall back to live rendering until an explicit offscreen
@ -121,13 +126,16 @@ Implementation shape:
- Extend event/sync handling so retained buffers remain valid until the animation
is complete.
Open design work:
Deferred/future polish:
- Exact lifetime model for retained `SurfaceBuffer` / `GfxTexture` references.
- Whether retained records participate in frame callbacks or presentation
feedback. Default assumption: no, because they are compositor animation frames,
not client commits.
- How to fall back when a buffer cannot be safely retained.
- A distinct retained-tree scaling render path for true spawn-in/spawn-out
content scaling. If added, start with retained GPU-backed records only, keep
the animated frame as the clip boundary, and avoid live SHM scaling until there
is an explicit snapshot/copy fallback.
## Phase 3: Multiphase No-Overlap Animations