You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2021/11/11 03:14:43 UTC
svn commit: r1894944 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Author: tilman
Date: Thu Nov 11 03:14:43 2021
New Revision: 1894944
URL: http://svn.apache.org/viewvc?rev=1894944&view=rev
Log:
PDFBOX-5319: restore reversion but use colorspace instead of Paint to decide whether to intersect
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1894944&r1=1894943&r2=1894944&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Thu Nov 11 03:14:43 2021
@@ -797,8 +797,8 @@ public class PageDrawer extends PDFGraph
@Override
public void fillPath(int windingRule) throws IOException
{
- graphics.setComposite(getGraphicsState().getNonStrokingJavaComposite());
- graphics.setPaint(getNonStrokingPaint());
+ PDGraphicsState graphicsState = getGraphicsState();
+ graphics.setComposite(graphicsState.getNonStrokingJavaComposite());
setClip();
linePath.setWindingRule(windingRule);
@@ -816,7 +816,7 @@ public class PageDrawer extends PDFGraph
}
Shape shape;
- if (!(graphics.getPaint() instanceof Color))
+ if (graphicsState.getNonStrokingColorSpace() instanceof PDPattern)
{
// apply clip to path to avoid oversized device bounds in shading contexts (PDFBOX-2901)
Area area = new Area(linePath);
@@ -825,7 +825,7 @@ public class PageDrawer extends PDFGraph
{
area.intersect(new Area(clip));
}
- intersectShadingBBox(getGraphicsState().getNonStrokingColor(), area);
+ intersectShadingBBox(graphicsState.getNonStrokingColor(), area);
shape = area;
}
else
@@ -834,6 +834,8 @@ public class PageDrawer extends PDFGraph
}
if (isContentRendered() && !shape.getPathIterator(null).isDone())
{
+ // creating Paint is sometimes a costly operation, so avoid if possible
+ graphics.setPaint(getNonStrokingPaint());
graphics.fill(shape);
}