[PR #817] [CLOSED] Strawman: Dumb implementation of text D2D effects. #24326

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

📋 Pull Request Information

Original PR: https://github.com/microsoft/terminal/pull/817
Author: @simonbuchan
Created: 5/15/2019
Status: Closed

Base: masterHead: d2d-effects


📝 Commits (2)

  • 711c6f5 Dumb implementation of text D2D effects.
  • 1610371 Apply shadow effect to all control rendering, add settings.

📊 Changes

13 files changed (+278 additions, -57 deletions)

View changed files

📝 src/cascadia/TerminalApp/Profile.cpp (+51 -1)
📝 src/cascadia/TerminalApp/Profile.h (+6 -0)
📝 src/cascadia/TerminalControl/TermControl.cpp (+9 -0)
📝 src/cascadia/TerminalControl/TerminalControl.vcxproj (+2 -2)
📝 src/cascadia/TerminalControl/TerminalControl.vcxproj.filters (+0 -5)
📝 src/cascadia/TerminalSettings/IControlSettings.idl (+5 -0)
📝 src/cascadia/TerminalSettings/TerminalSettings.cpp (+55 -1)
📝 src/cascadia/TerminalSettings/terminalsettings.h (+22 -0)
📝 src/inc/DefaultSettings.h (+2 -0)
📝 src/renderer/dx/CustomTextRenderer.cpp (+29 -29)
📝 src/renderer/dx/CustomTextRenderer.h (+5 -3)
📝 src/renderer/dx/DxRenderer.cpp (+80 -16)
📝 src/renderer/dx/DxRenderer.hpp (+12 -0)

📄 Description

More for feedback and ideas after I was screwing around with the code,
not really for merging, though this is probably not that far off.

Edit

Updated with settings parsing (though pretty hacky), and applies to all rendering output:

updated-shadow

Note the offset x,y settings are not hooked up, but they are other settings you'd probably want. I'm thinking all those should be extracted to a shadow setting block and a shadow renderer effect taking it that can plug in, design wise.

Original

After building this, I realized you probably actually want to do it on
the whole buffer, not just the text layer, which would make things way
easier, and correctly handle cases like the vim bottom separator.

Here's the current shadow effect:
shadow-effect

And without acrylic:
shadow-opaque

The super-dumb displacement effect, also showing a weird limit on the affected output size:
displacement-effect


🔄 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/817 **Author:** [@simonbuchan](https://github.com/simonbuchan) **Created:** 5/15/2019 **Status:** ❌ Closed **Base:** `master` ← **Head:** `d2d-effects` --- ### 📝 Commits (2) - [`711c6f5`](https://github.com/microsoft/terminal/commit/711c6f5e6ef17415789d178f3855515a99c22cf1) Dumb implementation of text D2D effects. - [`1610371`](https://github.com/microsoft/terminal/commit/161037112cfe7fcab92c3310f6be9b2d6975353d) Apply shadow effect to all control rendering, add settings. ### 📊 Changes **13 files changed** (+278 additions, -57 deletions) <details> <summary>View changed files</summary> 📝 `src/cascadia/TerminalApp/Profile.cpp` (+51 -1) 📝 `src/cascadia/TerminalApp/Profile.h` (+6 -0) 📝 `src/cascadia/TerminalControl/TermControl.cpp` (+9 -0) 📝 `src/cascadia/TerminalControl/TerminalControl.vcxproj` (+2 -2) 📝 `src/cascadia/TerminalControl/TerminalControl.vcxproj.filters` (+0 -5) 📝 `src/cascadia/TerminalSettings/IControlSettings.idl` (+5 -0) 📝 `src/cascadia/TerminalSettings/TerminalSettings.cpp` (+55 -1) 📝 `src/cascadia/TerminalSettings/terminalsettings.h` (+22 -0) 📝 `src/inc/DefaultSettings.h` (+2 -0) 📝 `src/renderer/dx/CustomTextRenderer.cpp` (+29 -29) 📝 `src/renderer/dx/CustomTextRenderer.h` (+5 -3) 📝 `src/renderer/dx/DxRenderer.cpp` (+80 -16) 📝 `src/renderer/dx/DxRenderer.hpp` (+12 -0) </details> ### 📄 Description More for feedback and ideas after I was screwing around with the code, not really for merging, though this is probably not *that* far off. ## Edit Updated with settings parsing (though pretty hacky), and applies to all rendering output: ![updated-shadow](https://user-images.githubusercontent.com/1840547/57893511-5ac89380-7897-11e9-922f-276dd28e3d04.png) Note the offset x,y settings are not hooked up, but they are other settings you'd probably want. I'm thinking all those should be extracted to a shadow setting block and a shadow renderer effect taking it that can plug in, design wise. ## Original After building this, I realized you probably actually want to do it on the whole buffer, not just the text layer, which would make things way easier, and correctly handle cases like the vim bottom separator. Here's the current shadow effect: ![shadow-effect](https://user-images.githubusercontent.com/1840547/57765363-6746d200-7759-11e9-9e30-b6682235b406.png) And without acrylic: ![shadow-opaque](https://user-images.githubusercontent.com/1840547/57765451-9e1ce800-7759-11e9-8b16-c1ffb1463a59.png) The super-dumb displacement effect, also showing a weird limit on the affected output size: ![displacement-effect](https://user-images.githubusercontent.com/1840547/57765635-f8b64400-7759-11e9-96f1-ba3f8872a57a.png) --- <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:02:37 +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#24326