[poppler] about patterns

Leonard Rosenthol leonardr at pdfsages.com
Sun Aug 20 15:20:44 PDT 2006

At 09:15 AM 8/20/2006, Rafael Rodríguez wrote:
> >          Tiling patterns are pretty simple - you
> > simply "replay" the pattern each time with
> > appropriate transformation handling.
>So it's all about looping in X and Y and modifying the needed transformation
>matrix (state->concatCTM() and out->updateCTM()) everytime I find a painting
>operator inside the pattern stream?

         Well, you determine the "bounding box" 
of the pattern and then start looping to play it 
back as many times as necessary (in whatever x/y 
locs are required) in order to have it fill the entire specified "shape".

> > That's
> > probably one reason for the performance problems
> > - - Xpdf doesn't cache anything nor does it use a
> > "display list architecture", while Acrobat does
> > both.  So in the case of a tiled pattern, Xpdf
> > must reparse and rerender each time.
>What's a display list architecture? Any place where i can read about it?

         A Google search didn't turn up a 
description of it, though lots of uses of the phrase.

         The idea, which has been around FOREVER 
in both 2D and 3D rendering engines is that in 
order to improve performance you first parse the 
commands into actual "objects" that form a list 
of the operations to render/display - hence the term "display list".

         In order to improve performance, esp. 
when zooming, doing thumbs, etc Acrobat does just 
this - building an "object tree" of the commands 
and then plays them back (in many cases also 
caching the results).  This offers significant 
rendering improvements (no parsing, organized 
objects, e3tc.) but does increase memory requirements.

>Maybe i'm wrong, but the attached one-page pdf file doesn't render right with
>poppler from CVS (using test-poppler-qt4).

         Well, at the moment, I can't get it to 
render at all :(.   But I don't have a current 
build...need to try later with updated code.


Leonard Rosenthol                            <mailto:leonardr at pdfsages.com>
Chief Technical Officer                      <http://www.pdfsages.com>
PDF Sages, Inc.                              215-938-7080 (voice)
                                              215-938-0880 (fax)

More information about the poppler mailing list