Maybe I'm blind but I don't see big differences between the two pictures.
Here is a zoom of both. You see the colored pixel on the right. It is very well possible that there is no or hardly any difference on your display. It depends on how the different colors of the pixels are ordered. See: http://en.wikipedia.org/wiki/Subpixel_rendering
<<inline: comparison.png>>
the first showing trunk with normal antialiasing, the right showing direct font rendering with the pixmap cache disabled, i.e. Qt is using sub-pixel rendering. On a CRT there is no difference at all, on an LCD the left one looks bad.On Windows, enabling or disabling the cache has strictly no effect on my LCD screen.
In Windows you can change the way fonts are rendered in the control center somewhere. But it wouldn't surprise me if on Windows pixmap font rendering is done with the native functions, so always with sub- pixel rendering.
I haven't found a way to enable sub-pixel rendering yet on a pixmap. I would guess that it can only be implemented with an alpha channel for red/green/blue each, but a QPixmap only has one alpha channel for all.This is really bizarre in that, even when the cache is disabled, we still uses a backing QPixmap. What you are saying means that painting a QPixmap onto the screen does not render the same as painting it onto another QPixmap... weird isn't it?
Well, maybe not so wired. Just a guess: the backing pixmap is not transparent. The cache uses transparent pixmaps and as I wrote in the last posting, I think this makes a difference.
Hope there is a solution for this.One solution would be to use a QImage instead. This would also enable to use the cache on X11. But using the global QPixmapCache is the Qt recommended way to cache painted string of text; so there might be some settings that we don't do correctly.
Probably. Stefan
PGP.sig
Description: Signierter Teil der Nachricht