-
Notifications
You must be signed in to change notification settings - Fork 8.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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... |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Someone asked for this to be blocked. Sorry champ I don’t make the rules.
Fixed in latest commit |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just curious, why don't we care?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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
PushLayer
to 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.