Author: vhennebert
Date: Thu Jul 10 17:35:52 2014
New Revision: 1609516

URL: http://svn.apache.org/r1609516
Log:
Factorized check for transparent colors out of gradient-handling code

Modified:
    
xmlgraphics/fop/branches/FOP-2393_gradient-rendering/src/java/org/apache/fop/svg/PDFGraphics2D.java

Modified: 
xmlgraphics/fop/branches/FOP-2393_gradient-rendering/src/java/org/apache/fop/svg/PDFGraphics2D.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/branches/FOP-2393_gradient-rendering/src/java/org/apache/fop/svg/PDFGraphics2D.java?rev=1609516&r1=1609515&r2=1609516&view=diff
==============================================================================
--- 
xmlgraphics/fop/branches/FOP-2393_gradient-rendering/src/java/org/apache/fop/svg/PDFGraphics2D.java
 (original)
+++ 
xmlgraphics/fop/branches/FOP-2393_gradient-rendering/src/java/org/apache/fop/svg/PDFGraphics2D.java
 Thu Jul 10 17:35:52 2014
@@ -817,10 +817,10 @@ public class PDFGraphics2D extends Abstr
                     new Color[] {gpaint.getColor1(), gpaint.getColor2()},
                     gpaint.isCyclic() ? LinearGradientPaint.REPEAT : 
LinearGradientPaint.NO_CYCLE);
         }
-        if (paint instanceof LinearGradientPaint) {
+        if (paint instanceof LinearGradientPaint && 
!gradientContainsTransparency((LinearGradientPaint) paint)) {
             return applyLinearGradient(paint, fill);
         }
-        if (paint instanceof RadialGradientPaint) {
+        if (paint instanceof RadialGradientPaint && 
!gradientContainsTransparency((RadialGradientPaint) paint)) {
             return applyRadialGradient(paint, fill);
         }
         if (paint instanceof PatternPaint) {
@@ -830,6 +830,15 @@ public class PDFGraphics2D extends Abstr
         return false; // unknown paint
     }
 
+    private boolean gradientContainsTransparency(MultipleGradientPaint 
gradient) {
+        for (Color color : gradient.getColors()) {
+            if (color.getAlpha() != 255) {
+                return true;
+            }
+        }
+        return false;
+    }
+
     private boolean applyLinearGradient(Paint paint, boolean fill) {
         LinearGradientPaint gp = (LinearGradientPaint)paint;
 
@@ -876,9 +885,6 @@ public class PDFGraphics2D extends Abstr
         }
         for (int count = 0; count < cols.length; count++) {
             Color cc = cols[count];
-            if (cc.getAlpha() != 255) {
-                return false;  // PDF can't do alpha
-            }
             someColors.add(cc);
         }
         if (fractions[fractions.length - 1] < 1f) {
@@ -951,9 +957,6 @@ public class PDFGraphics2D extends Abstr
         }
         for (int count = 0; count < cols.length; count++) {
             Color cc = cols[count];
-            if (cc.getAlpha() != 255) {
-                return false;  // PDF can't do alpha
-            }
             someColors.add(cc);
         }
         if (fractions[fractions.length - 1] < 1f) {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to