[poppler] [PATCH] Arthur backend fixes; poppler-qt4 direct rendering

Albert Astals Cid aacid at kde.org
Mon Nov 1 12:21:26 PDT 2010

A Dilluns, 1 de novembre de 2010, Matthias Fauconneau va escriure:
> Hi,


> I'm currently using Poppler for a score player application, and since
> the synthesizer is already using all my memory and CPU, I wanted to
> render the PDF using the GPU.
> I wonder why it seems nobody cares about the Arthur backend ?

Because the Splash backend works well enough and there is quite a lot to do to 
get the Arthur backend up to standards.

> The first patch contains two easy fixes for Arthur :
> - font rendering (transforming the glyph path and not only the glyph
> origin). - image rendering (alpha was set to zero).

Please don't leave commented code behind, like
//state->transform(x, y, &x1, &y1);
If we don't need it, just remove it.

Also you seem to not use buffer anymore but didn't remove the declaration

> The second patch expose the QPainter interface directly through a
> renderToPainter method which use an existing painter instead of
> creating an image.
> This allows to directly render the PDF using OpenGL, and since the
> painting is fast, there is no need to cache prerendered pages. so it's
> using less CPU and less memory.

You must be the only person in the world with a working Qt OpenGL 
painterengine :D Now, seriously, each time i tried it it showed that OpenGl 
was not meant for making things correct, just for making things paint fast and 
left quite a lot to desire in terms of rendering precision.

Anyhow there are some things in the patch that i want changed/fixed:

+ \warning This method is only supported for Arthur and Cairo Qt backends
+ \since 0.6

There is no Cairo Qt backend and poppler 0.6 was released 3 years ago ;-)

Also i please do not to copy code from renderToImage to renderToQPainter, 
copying code is bad. Another nice thing would be if the new method returned a 
bool so that if you actually try to use it with a Splash backend you return 

Thanks for the work.


> in case you want to try the QGraphicsView OpenGL PDF renderer:
> http://gitorious.org/qt-pdfviewer (only needs Qt and Poppler, the
> other deps are optionnal)

More information about the poppler mailing list