Cairo backend for Qt4 wrapper
Submitted by Paul Gideon Dann
Assigned to poppler-bugs
Description
Splash has served Poppler very well, but I believe most will agree that it's starting to show its age. In my opinion, this is made particularly apparent in Splash's inability to render fonts on a subpixel level. I tried my hardest to fix Splash to allow this, but grayscale fonts are a deeply embedded concept in Splash, and I eventually gave up.
On the other hand, it seems that most current effort is going into the Cairo backend, which is used by the GTK2 wrapper (e.g. Evince), and it's certainly possible to enable subpixel-rendered fonts in the Cairo backend (see #3307).
My proposal is to introduce support for the Cairo backend to the Qt4 wrapper, so that Qt-based viewers (such as Okular) may be able to benefit from future enhancements of the Cairo backend, especially subpixel-rendering. I created a patchset to add the Cairo backend to the Qt4 wrapper; it may be found here: http://github.com/giddie/poppler-qt4-cairo-backend. I am only suggesting the merging of patches 1 and 2 to Poppler; the remainder of the patches are simply hacks to force subpixel rendering, but once the Cairo backend is merged, it will be possible to add more elegant support to the client applications to enable or disable subpixel rendering.
It has been suggested that adding a dependency on Cairo to a Qt application is a controversial step. Please bear in mind that the Qt wrapper will only provide an interface to the Cairo backend if Cairo support has been enabled at compile-time, and Qt applications are free to choose between backends at run-time. It seems unlikely that anyone would be inconvenienced by the addition of the option to use Cairo.