Skip to content

fix(flterm): keep Kitty replacements drawable - #107

Closed
adonm wants to merge 1 commit into
elias8:mainfrom
adonm:upstream/101-kitty-replacement
Closed

fix(flterm): keep Kitty replacements drawable#107
adonm wants to merge 1 commit into
elias8:mainfrom
adonm:upstream/101-kitty-replacement

Conversation

@adonm

@adonm adonm commented Jul 15, 2026

Copy link
Copy Markdown

Summary

  • keep the prior same-sized Kitty texture drawable while a replacement decodes
  • coalesce rapid retransmissions to the newest queued generation
  • retain ready cache entries until their replacement is usable

Why

Replacing an image previously removed the drawable immediately, producing blank frames and redundant decode work during rapid retransmission.

This is a two-file, independent extraction from #101.

Verification

  • flutter test test/rendering/kitty_image_cache_test.dart: 6 passed
  • dart format --output=none --set-exit-if-changed packages/flterm: clean
  • dart analyze packages/flterm: only the 3 existing info-level collection-style lints

@elias8

elias8 commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Thanks, superded by #149

@elias8 elias8 closed this Aug 18, 2026
elias8 added a commit that referenced this pull request Aug 18, 2026
Stabilize flterm’s Kitty graphics rendering by retaining ready images
across unchanged frames and replacements, bounding and deduplicating
asynchronous decode work, reusing pixel storage, and refreshing
placement geometry when terminal dimensions change. This also replaces
the allocating Kitty image pixel getter with a destination-required copy
API across the native and Wasm libghostty bindings, with focused
coverage for image lifetime, decode failure and backpressure, placement
snapshots, resizing, and rendering behavior.

Supersedes #107
@adonm
adonm deleted the upstream/101-kitty-replacement branch August 21, 2026 21:27
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.

2 participants