Use grayscale AA always on non-opaque backgrounds#5277
Conversation
… alpha?" This reverts commit d714a10.
…ent default BG as grayscale always
…leartype-on-light # Conflicts: # src/renderer/dx/DxRenderer.cpp
|
BLOCK THIS It doesn't work on first launch when you've got acrylic + cleartype. In that scenario it starts by using the solid BG by default. Need to investigate... |
DHowett-MSFT
left a comment
There was a problem hiding this comment.
Someone asked for this to be blocked. Sorry champ I don’t make the rules.
Fixed in latest commit |
carlos-zamora
left a comment
There was a problem hiding this comment.
Looks fine to me, but I'd feel a LOT more comfortable if @DHowett-MSFT or @miniksa signs off on this.
|
|
||
| // Make sure we redraw all the cells, to update whether they're actually | ||
| // drawn with cleartype or not. | ||
| // We don't terribly care if this fails. |
There was a problem hiding this comment.
Just curious, why don't we care?
There was a problem hiding this comment.
It's not worth crashing over if it does fail. It'll just make a graphical glitch... is my most likely candidate for a reason.
There was a problem hiding this comment.
that's definitely the reason
|
@DHowett-MSFT you blocked this for me, unblock yo self plz |
|
Oop |
|
Hello @zadjii-msft! Because this pull request has the p.s. you can customize the way I help with merging this pull request, such as holding this pull request until a specific person approves. Simply @mention me (
|
|
🎉 Handy links: |
Summary of the Pull Request
When we're on acrylic, we can't have cleartype text unfortunately. This PR changes the DX renderer to force cleartype runs of text that are on a non-opaque background to use grayscale AA instead.
References
Here are some of the URLS I was referencing as writing this:
Additionally:
PR Checklist
Detailed Description of the Pull Request / Additional comments
Basically, if you use cleartype on a light background, what you'll get today is the text foreground color added to the background. This will make the text look basically invisible.
So, what I did was use some trickery with
PushLayerto basically create a layer where the text would be forced to render in grayscale AA. I only enable this layer pushing business when both:This plumbs some information through from the TermControl to the DX Renderer to make this smooth.
Validation Steps Performed
Opened both cleartype and grayscale panes SxS, and messed with the opacity liberally.