[PR #4854] [MERGED] Move dirty interface to N rectangles, not just one #25984

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/4854
Author: @miniksa
Created: 3/9/2020
Status: Merged
Merged: 3/10/2020
Merged by: @undefined

Base: masterHead: dev/miniksa/plural_dirty_rects


📝 Commits (4)

  • 5079c0f Turn singular dirty rect into a vector of rects so it can be returned in smaller segments if need be.
  • 5f9bb81 code format
  • 69235d8 Take noexcept off GetDirtyArea.
  • 2d8fad1 missed a noexcept.

📊 Changes

15 files changed (+96 additions, -76 deletions)

View changed files

📝 src/interactivity/onecore/BgfxEngine.cpp (+2 -2)
📝 src/interactivity/onecore/BgfxEngine.hpp (+1 -1)
📝 src/renderer/base/renderer.cpp (+64 -55)
📝 src/renderer/dx/DxRenderer.cpp (+2 -2)
📝 src/renderer/dx/DxRenderer.hpp (+1 -1)
📝 src/renderer/gdi/gdirenderer.hpp (+1 -1)
📝 src/renderer/gdi/math.cpp (+2 -2)
📝 src/renderer/inc/IRenderEngine.hpp (+1 -1)
📝 src/renderer/uia/UiaRenderer.cpp (+2 -2)
📝 src/renderer/uia/UiaRenderer.hpp (+1 -1)
📝 src/renderer/vt/XtermEngine.cpp (+13 -2)
📝 src/renderer/vt/math.cpp (+2 -2)
📝 src/renderer/vt/vtrenderer.hpp (+1 -1)
📝 src/renderer/wddmcon/WddmConRenderer.cpp (+2 -2)
📝 src/renderer/wddmcon/WddmConRenderer.hpp (+1 -1)

📄 Description

Summary of the Pull Request

  • Changes the IRenderEngine interface to return a vector of values instead of just a single one. Engines that want to report one still can. Engines that want to report multiple smaller ones will be able to do so going forward.

PR Checklist

  • In support of differential rendering #778
  • I work here.
  • Manually tested it still works.
  • Am core contributor.

Detailed Description of the Pull Request / Additional comments

  • Some of my ideas for the DxEngine require the ability to specify multiple smaller rectangles instead of one giant one, specifically to mitigate the case where someone refreshes just one cell in two opposite corners of the display (which currently coalesces into refreshing the entire display.)
  • This is pulled out into an individual PR to make it easier to review that concept changing.

Validation Steps Performed

  • Ran the Terminal

🔄 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/4854 **Author:** [@miniksa](https://github.com/miniksa) **Created:** 3/9/2020 **Status:** ✅ Merged **Merged:** 3/10/2020 **Merged by:** [@undefined](undefined) **Base:** `master` ← **Head:** `dev/miniksa/plural_dirty_rects` --- ### 📝 Commits (4) - [`5079c0f`](https://github.com/microsoft/terminal/commit/5079c0f79f916fa9aac045355bd5835513beeaa7) Turn singular dirty rect into a vector of rects so it can be returned in smaller segments if need be. - [`5f9bb81`](https://github.com/microsoft/terminal/commit/5f9bb815b1481f5fb911c73061a445366e3f8f04) code format - [`69235d8`](https://github.com/microsoft/terminal/commit/69235d8dd30ca18063b7e72da15d89654e2ad429) Take noexcept off GetDirtyArea. - [`2d8fad1`](https://github.com/microsoft/terminal/commit/2d8fad1544328502b5eb7b29e61c5821f8dc9646) missed a noexcept. ### 📊 Changes **15 files changed** (+96 additions, -76 deletions) <details> <summary>View changed files</summary> 📝 `src/interactivity/onecore/BgfxEngine.cpp` (+2 -2) 📝 `src/interactivity/onecore/BgfxEngine.hpp` (+1 -1) 📝 `src/renderer/base/renderer.cpp` (+64 -55) 📝 `src/renderer/dx/DxRenderer.cpp` (+2 -2) 📝 `src/renderer/dx/DxRenderer.hpp` (+1 -1) 📝 `src/renderer/gdi/gdirenderer.hpp` (+1 -1) 📝 `src/renderer/gdi/math.cpp` (+2 -2) 📝 `src/renderer/inc/IRenderEngine.hpp` (+1 -1) 📝 `src/renderer/uia/UiaRenderer.cpp` (+2 -2) 📝 `src/renderer/uia/UiaRenderer.hpp` (+1 -1) 📝 `src/renderer/vt/XtermEngine.cpp` (+13 -2) 📝 `src/renderer/vt/math.cpp` (+2 -2) 📝 `src/renderer/vt/vtrenderer.hpp` (+1 -1) 📝 `src/renderer/wddmcon/WddmConRenderer.cpp` (+2 -2) 📝 `src/renderer/wddmcon/WddmConRenderer.hpp` (+1 -1) </details> ### 📄 Description ## Summary of the Pull Request - Changes the `IRenderEngine` interface to return a vector of values instead of just a single one. Engines that want to report one still can. Engines that want to report multiple smaller ones will be able to do so going forward. ## PR Checklist * [x] In support of differential rendering #778 * [x] I work here. * [x] Manually tested it still works. * [x] Am core contributor. ## Detailed Description of the Pull Request / Additional comments - Some of my ideas for the `DxEngine` require the ability to specify multiple smaller rectangles instead of one giant one, specifically to mitigate the case where someone refreshes just one cell in two opposite corners of the display (which currently coalesces into refreshing the entire display.) - This is pulled out into an individual PR to make it easier to review that concept changing. ## Validation Steps Performed - Ran the Terminal --- <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:13:06 +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#25984