[PR #17581] AtlasEngine: Implement sixels #31280

Open
opened 2026-01-31 09:46:17 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/microsoft/terminal/pull/17581

State: closed
Merged: Yes


  • Add a revision to ImageSlice so that the renderers
    can use it to cache them as bitmaps across frames.
  • Hooked up the revision tracking to AtlasEngine to cache the
    slices into Buffers so we can own them into the Present.
  • Hooked up those snapshots to BackendD3D with a straightforward
    hashmap -> atlas-rect logic. Just like rendering text.
  • Hooked up BackendD2D with a bad, but simple & direct drawing logic.
  • Bonus: Modify ImageSlice to be returned as a raw pointers
    as this helps performance slightly. (Trivial type == good.)
  • Bonus: Fixed the _debugShowDirty code (disabled by default).

Validation Steps Performed

  • mpv --really-quiet --vo=sixel foo.mp4 looks good
  • Scroll up down & observe dirty rects
**Original Pull Request:** https://github.com/microsoft/terminal/pull/17581 **State:** closed **Merged:** Yes --- * Add a revision to `ImageSlice` so that the renderers can use it to cache them as bitmaps across frames. * Hooked up the revision tracking to AtlasEngine to cache the slices into `Buffer`s so we can own them into the `Present`. * Hooked up those snapshots to BackendD3D with a straightforward hashmap -> atlas-rect logic. Just like rendering text. * Hooked up BackendD2D with a bad, but simple & direct drawing logic. * Bonus: Modify `ImageSlice` to be returned as a raw pointers as this helps performance slightly. (Trivial type == good.) * Bonus: Fixed the `_debugShowDirty` code (disabled by default). ## Validation Steps Performed * `mpv --really-quiet --vo=sixel foo.mp4` looks good ✅ * Scroll up down & observe dirty rects ✅
claunia added the pull-request label 2026-01-31 09:46:17 +00:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#31280