tkormann 01/10/15 05:33:51
Modified: samples/tests/spec/paints linearGradientOrientation.svg
sources/org/apache/batik/bridge
SVGLinearGradientElementBridge.java
SVGRadialGradientElementBridge.java
Log:
- bug fix: if x1=x2=y1=y2 on linear gradient - this is not an error but we have
to use the last stop color and opacity.
- modify the linear gradient example to illustrate that
Revision Changes Path
1.2 +19 -2
xml-batik/samples/tests/spec/paints/linearGradientOrientation.svg
Index: linearGradientOrientation.svg
===================================================================
RCS file:
/home/cvs/xml-batik/samples/tests/spec/paints/linearGradientOrientation.svg,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linearGradientOrientation.svg 2001/10/15 12:15:51 1.1
+++ linearGradientOrientation.svg 2001/10/15 12:33:51 1.2
@@ -14,7 +14,7 @@
<!-- Test external paint servers -->
<!-- -->
<!-- @author [EMAIL PROTECTED] -->
-<!-- @version $Id: linearGradientOrientation.svg,v 1.1 2001/10/15 12:15:51 tkormann
Exp $ -->
+<!-- @version $Id: linearGradientOrientation.svg,v 1.2 2001/10/15 12:33:51 tkormann
Exp $ -->
<!-- ========================================================================= -->
<?xml-stylesheet type="text/css" href="../../resources/style/test.css" ?>
@@ -27,7 +27,7 @@
<!-- ============================================================= -->
<g id="testContent">
<text x="225" y="50" class="title">Linear Gradient Orientation</text>
-
+<g transform="translate(0 -30)">
<!-- ############################### -->
<g id="board" style="fill:none; stroke:black;">
@@ -53,6 +53,10 @@
<rect x="75" y="120" width="150" height="50" />
<rect x="225" y="120" width="150" height="50" />
</g>
+ <g transform="translate(75 340)">
+ <rect x="75" y="100" width="150" height="20" style="fill:#eee"/>
+ <rect x="75" y="120" width="150" height="50" />
+ </g>
<g style="stroke:none; fill:black; text-anchor:middle; font-size:12">
<text x="150" y="114">x1 < x2 / y1 = y2</text>
<text x="300" y="114">x1 > x2 / y1 = y2</text>
@@ -69,6 +73,9 @@
<text x="150" y="114">x1 > x2 / y1 < y2</text>
<text x="300" y="114">x1 > x2 / y1 > y2</text>
</g>
+ <g transform="translate(75 340)">
+ <text x="150" y="114">x1 = x2 = y1 = y2</text>
+ </g>
</g>
</g>
@@ -103,6 +110,11 @@
xlink:href="#genericGrad" />
<linearGradient id="grad8" x1="1" y1="1" x2="0" y2="0"
xlink:href="#genericGrad" />
+
+ <!-- ### fifth board ### -->
+ <linearGradient id="grad9" x1=".5" y1=".5" x2=".5" y2=".5"
+ xlink:href="#genericGrad" />
+
</defs>
@@ -124,6 +136,11 @@
<rect x="235" y="130" width="130" height="30" fill="url(#grad8)"/>
</g>
+<g transform="translate(75 340)">
+ <rect x="85" y="130" width="130" height="30" fill="url(#grad9)"/>
+</g>
+
+ </g>
</g>
<!-- ============================================================= -->
1.5 +15 -9
xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java
Index: SVGLinearGradientElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGLinearGradientElementBridge.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- SVGLinearGradientElementBridge.java 2001/09/17 13:37:30 1.4
+++ SVGLinearGradientElementBridge.java 2001/10/15 12:33:51 1.5
@@ -24,7 +24,7 @@
* Bridge class for the <linearGradient> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGLinearGradientElementBridge.java,v 1.4 2001/09/17 13:37:30
tkormann Exp $
+ * @version $Id: SVGLinearGradientElementBridge.java,v 1.5 2001/10/15 12:33:51
tkormann Exp $
*/
public class SVGLinearGradientElementBridge
extends AbstractSVGGradientElementBridge {
@@ -124,13 +124,19 @@
SVG_Y2_ATTRIBUTE,
coordSystemType,
uctx);
-
- return new LinearGradientPaint(p1,
- p2,
- offsets,
- colors,
- spreadMethod,
- colorSpace,
- transform);
+ // If x1 = x2 and y1 = y2, then the area to be painted will be painted
+ // as a single color using the color and opacity of the last gradient
+ // stop.
+ if (p1.getX() == p2.getX() && p1.getY() == p2.getY()) {
+ return colors[colors.length-1];
+ } else {
+ return new LinearGradientPaint(p1,
+ p2,
+ offsets,
+ colors,
+ spreadMethod,
+ colorSpace,
+ transform);
+ }
}
}
1.6 +3 -1
xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java
Index: SVGRadialGradientElementBridge.java
===================================================================
RCS file:
/home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGRadialGradientElementBridge.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- SVGRadialGradientElementBridge.java 2001/09/17 13:37:30 1.5
+++ SVGRadialGradientElementBridge.java 2001/10/15 12:33:51 1.6
@@ -24,7 +24,7 @@
* Bridge class for the <radialGradient> element.
*
* @author <a href="mailto:[EMAIL PROTECTED]">Thierry Kormann</a>
- * @version $Id: SVGRadialGradientElementBridge.java,v 1.5 2001/09/17 13:37:30
tkormann Exp $
+ * @version $Id: SVGRadialGradientElementBridge.java,v 1.6 2001/10/15 12:33:51
tkormann Exp $
*/
public class SVGRadialGradientElementBridge
extends AbstractSVGGradientElementBridge {
@@ -124,6 +124,8 @@
SVG_R_ATTRIBUTE,
coordSystemType,
uctx);
+ // A value of zero will cause the area to be painted as a single color
+ // using the color and opacity of the last gradient stop.
if (r == 0) {
return colors[colors.length-1];
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]