Open Enyium opened 3 months ago
same as me, i think anti-aliasing is broken with FemtoVG and winit-skia backend, for both win and linux. But winit-software and qt backend have normal smoothing, you can try
$env:SLINT_BACKEND='winit-software'; cargo run --release
I think that's a valid bug report. If I understand correctly, we're not setting the lcd config on the skia surface, and we should probably also set SK_FONT_HOST_USE_SYSTEM_SETTINGS
when compiling skia to read the correct gramma correction values from the system.
You added issue labels specifying this as a Windows bug. But I have no idea whether it works on the other OSs. macOS has subpixel font antialiasing; and with Linux, there are apparently also ways to render text like this.
It's true that while macOS does support sub pixel anti-aliasing, it's not enabled by default. That said, AFAICS Skia uses glyphs rendered by CoreText that are LCD optimised.
On Linux, I don't see Skia supporting LCD filtering, i.e. I don't see it forwarding any filter setting to FreeType.
Setting the LCD config on the skia surface is a cross-platform matter, but we need to find a way to get the correct setting there. Unless... there isn't a way and we should just set it to kRGB_H_SkPixelGeometry
?
If, after using Skia in a way that activates ClearType, ClearType in Slint windows can't be deactivated anymore by changing the system setting, Slint should read the system setting SPI_GETFONTSMOOTHINGTYPE
(there's also the ClearType-related SPI_GETFONTSMOOTHINGORIENTATION
and SPI_GETFONTSMOOTHINGCONTRAST
), and possibly also SPI_GETFONTSMOOTHING
. It would need to be tested how Slint behaves after the change.
Bump. Fonts look ugly for me on macOS.
No renderer I tried (at least software, FemtoVG and Skia) rendered text on Windows 10 with ClearType, that is, utilizing the R, G, B hardware subpixels of the monitor. I have it turned on in my system (confirmed by screenshots with orange and blue sides on letters) and @tronical called the way Skia renders text the one and true way of doing it in another issue. ChatGPT with GPT-4o claimed that Skia is able to render using ClearType, but the text rendered with it in my Slint window only uses shades of gray.