graphics: the alternate screen shares the primary screen's image store #89
Labels
No labels
Area/ci
Area/cli
Area/client
Area/client-core
Area/daemon
Area/deps
Area/docs
Area/grid
Area/manual
Area/nix
Area/protocol
Area/pty
Area/render
Area/shaping
Area/skills
Area/transport
Area/vt
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Performance
Kind/Security
Kind/Testing
perf-regression-accepted
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Blocked
Status
Need More Info
Status
Upstream
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
felis-terminal/felis#89
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
felis keeps one image store per session, shared by the primary and alternate screens; only the placements are per screen (the primary's are stashed on
?1049hand restored on?1049l). kitty keeps a separate graphics manager, images included, for each screen, so nothing a program does to images on the alternate screen touches the primary's.With a shared store, an image operation on the alternate screen reaches placements stashed for the primary:
U=1extent is restored against the new image.Found while reviewing the placement identity and lifetime fixes; an event-driven purge of the stash was tried there and dropped, because frame deletes re-emit
Transmit, frees are decided without the stash, and virtual extents need their own rule.Decide: per-screen image stores as in kitty (daemon, wire and client mirror all change), or keep the shared store and give stashed placements a way to tell their image was replaced or freed (an image generation recorded on each placement and checked on restore, plus counting stashed placements in the free decision).