[PR #13496] [MERGED] AtlasEngine: Fix bugs introduced in 66f4f9d and d74b66a #29589

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/13496
Author: @lhecker
Created: 7/13/2022
Status: Merged
Merged: 7/15/2022
Merged by: @undefined

Base: mainHead: dev/lhecker/atlas-engine-fixup


📝 Commits (3)

📊 Changes

3 files changed (+109 additions, -28 deletions)

View changed files

📝 src/renderer/atlas/AtlasEngine.cpp (+54 -13)
📝 src/renderer/atlas/AtlasEngine.h (+41 -10)
📝 src/renderer/atlas/AtlasEngine.r.cpp (+14 -5)

📄 Description

Disappearing glyphs

We only process glyphs within the dirtyRect, but glyphs outside of the dirtyRect
are still in use and shouldn't be discarded. This is critical if someone uses
a tool like tmux to split the terminal horizontally. If they then print a lot
of Unicode text on just one side, we have to ensure that the (for example)
plain ASCII glyphs on the other half of the viewport are still retained.

Black viewport after font changes

The cursor was drawn without a clip rect, causing the entire atlas
texture to be filled with black. This just so happened to work fine
in Windows Terminal but relied on a race condition.

Closes #13490

Validation Steps Performed

  • Disappearing glyphs
    • Start tmux in wsl
    • Split horizontally with Ctrl+B, "
    • cat a huge Unicode text file on the bottom
    • Ensure ASCII glyphs in the top half don't disappear
  • Black viewport after font changes
    • Start OpenConsole with AtlasEngine
    • Open Properties dialog and click "Ok"
    • Viewport content doesn't disappear

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/microsoft/terminal/pull/13496 **Author:** [@lhecker](https://github.com/lhecker) **Created:** 7/13/2022 **Status:** ✅ Merged **Merged:** 7/15/2022 **Merged by:** [@undefined](undefined) **Base:** `main` ← **Head:** `dev/lhecker/atlas-engine-fixup` --- ### 📝 Commits (3) - [`0b7a027`](https://github.com/microsoft/terminal/commit/0b7a02799d3707b0e05e2b7cdee0e9369b8b846b) AtlasEngine: Fix bugs introduced in 66f4f9d and d74b66a - [`565bef6`](https://github.com/microsoft/terminal/commit/565bef658b0bdd7b63a1ae1e059d70905671a22c) Address feedback - [`3e7bbec`](https://github.com/microsoft/terminal/commit/3e7bbec0d6dcfad70084390d4d72b8acb54d5f43) Add Buffer comment ### 📊 Changes **3 files changed** (+109 additions, -28 deletions) <details> <summary>View changed files</summary> 📝 `src/renderer/atlas/AtlasEngine.cpp` (+54 -13) 📝 `src/renderer/atlas/AtlasEngine.h` (+41 -10) 📝 `src/renderer/atlas/AtlasEngine.r.cpp` (+14 -5) </details> ### 📄 Description ### Disappearing glyphs We only process glyphs within the dirtyRect, but glyphs outside of the dirtyRect are still in use and shouldn't be discarded. This is critical if someone uses a tool like tmux to split the terminal horizontally. If they then print a lot of Unicode text on just one side, we have to ensure that the (for example) plain ASCII glyphs on the other half of the viewport are still retained. ### Black viewport after font changes The cursor was drawn without a clip rect, causing the entire atlas texture to be filled with black. This just so happened to work fine in Windows Terminal but relied on a race condition. Closes #13490 ## Validation Steps Performed * Disappearing glyphs * Start `tmux` in `wsl` * Split horizontally with `Ctrl+B`, `"` * `cat` a huge Unicode text file on the bottom * Ensure ASCII glyphs in the top half don't disappear ✅ * Black viewport after font changes * Start `OpenConsole` with `AtlasEngine` * Open Properties dialog and click "Ok" * Viewport content doesn't disappear ✅ --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
claunia added the pull-request label 2026-01-31 09:35:46 +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#29589