[poppler] 4 commits - CMakeLists.txt poppler/Gfx.cc poppler/Gfx.h poppler/GfxState.cc poppler/GfxState_helpers.h poppler/Makefile.am poppler/OutputDev.h poppler/PSOutputDev.cc poppler/PSOutputDev.h poppler/SplashOutputDev.cc poppler/SplashOutputDev...

Leonard Rosenthol lrosenth at adobe.com
Thu Jun 4 10:29:59 PDT 2009


Depends on what "contentIsHidden()" is testing.

If it is testing something like clipping bounds - then yes, there is no reason to render the content if it's "offscreen".

HOWEVER,  if that is a test of optional content, then you STILL need to "pretend" to render the content - but not actually put any bits down.  This is stipulate in the PDF Ref/ISO 32K because it ensures that any states (including text position) are maintained even if something is not currently visible.

Leonard

From: poppler-bounces at lists.freedesktop.org [mailto:poppler-bounces at lists.freedesktop.org] On Behalf Of Thomas Freitag
Sent: Thursday, June 04, 2009 2:33 AM
To: Albert Astals Cid
Cc: poppler at lists.freedesktop.org
Subject: Re: [poppler] 4 commits - CMakeLists.txt poppler/Gfx.cc poppler/Gfx.h poppler/GfxState.cc poppler/GfxState_helpers.h poppler/Makefile.am poppler/OutputDev.h poppler/PSOutputDev.cc poppler/PSOutputDev.h poppler/SplashOutputDev.cc poppler/SplashOutputDev...

Hello Albert!

Sorry, Carlos is true: Also the filling should (and MUST) only be done if content is NOT hidden, therefore the curly brackets must be inserted.

Best regards,
Thomas

Albert Astals Cid schrieb:

A Dimecres, 3 de juny de 2009, Carlos Garcia Campos va escriure:



El mar, 02-06-2009 a las 14:02 -0700, Albert Astals Cid escribió:



@@ -3695,6 +3780,12 @@ void Gfx::doImage(Object *ref, Stream *str,

GBool inlineImg) {

     // draw it

     if (!contentIsHidden())

       out->drawImageMask(state, ref, str, width, height, invert,

inlineImg);

+      if (out->fillMaskCSPattern(state)) {

+        maskHaveCSPattern = gTrue;

+        doPatternFill(gTrue);

+        out->endMaskClip(state);

+        maskHaveCSPattern = gFalse;

+      }



   } else {



I think {} are missing there, I guess it should be:



if (!contentIsHidden()) {

  out->drawImageMask(state, ref, str, width, height, invert, inlineImg);

  if (out->fillMaskCSPattern(state)) {

    [....]

  }

}



or am I wrong?





Good question, Thomas?



Albert










--

Thomas Freitag



alfa Media Partner GmbH

Niederlassung Kiel

Sophienblatt 57

D-24114 Kiel



Phone: +49-431-66119-38

Fax: +49-431-66119-11

Visit our home page http://www.alfa.de



Sitz des Unternehmens: Rödermark - AG Offenbach HRB 21171

Geschäftsführer: Guido Falcenberg, Jens Emmerich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/poppler/attachments/20090604/65d84bf4/attachment-0001.htm 


More information about the poppler mailing list