0x7c13 / Notepads

A modern, lightweight text editor with a minimalist design.
https://www.NotepadsApp.com
MIT License
8.8k stars 482 forks source link

[Feature request] Implement subpixel LCD font antialiasing (ClearType) #294

Open wdhwg001 opened 4 years ago

wdhwg001 commented 4 years ago

Yes, I know that for all UWP applications, it is a hard feature.

But as Notepads is a text editor, displaying non-blurry font (especially on low-dpi monitors) is a key feature that can significantly improve the experience and reduce eye strain.

And although it's hard, it is possible. As ClearType for Direct2D is completely compatible with transparent background (https://github.com/microsoft/terminal/issues/1298#issuecomment-562809902), the thing we need to do is to use a Direct2D canvas instead of built-in UWP text containers to render the text (https://stackoverflow.com/questions/46154604/uwp-cleartype-or-smooth-font). Also, as described in the Roadmap, this can be done by porting the entire application to win32 and use ID2D1RenderTarget::SetTextAntialiasMode directly.

I do understand that this probably leads to a whopping number of refactors, but I really hope that we can have non-blurry font rendering in the future.

0x7c13 commented 4 years ago

Yeah, it is ver sad that UWP as a modern app framework does not support ClearType out of box. There are reasons behind it but it is what it is. I am not going to put effort on it in the near future. But if there is a cheap solution that I can borrow, I will do it. Btw Windows terminal is not using Direct2D low level APIs with xaml island. I would not consider it as a pure UWP app.

kpietraszko commented 2 days ago

@0x7c13 any update on this?