You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by de...@apache.org on 2005/10/13 13:39:49 UTC
svn commit: r320740 - in /xmlgraphics/batik/trunk:
sources/org/apache/batik/gvt/ sources/org/apache/batik/gvt/renderer/
test-references/samples/ test-references/samples/tests/spec/coordinates/
test-references/samples/tests/spec/filters/ test-references...
Author: deweese
Date: Thu Oct 13 04:39:26 2005
New Revision: 320740
URL: http://svn.apache.org/viewcvs?rev=320740&view=rev
Log:
1) New MacRenderer implementation that avoids 10x slowdown on
Tiger.
2) Update to the handling of clipping in AbstractGraphicsNode.
This avoids 'dirty bits' with Mac Renderer and potentially
avoids other rendering errors around the edges of clipped
regions.
Added:
xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/MacRenderer.java
- copied unchanged from r320711, xmlgraphics/batik/branches/svg11/sources/org/apache/batik/gvt/renderer/MacRenderer.java
Modified:
xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/AbstractGraphicsNode.java
xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/ConcreteImageRendererFactory.java
xmlgraphics/batik/trunk/test-references/samples/tests/spec/coordinates/percentagesAndUnits.png
xmlgraphics/batik/trunk/test-references/samples/tests/spec/filters/feTileTarget.png
xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/relativeURI.png
xmlgraphics/batik/trunk/test-references/samples/textRotate.png
xmlgraphics/batik/trunk/test-references/samples/textRotateShadows.png
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/AbstractGraphicsNode.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/AbstractGraphicsNode.java?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/AbstractGraphicsNode.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/AbstractGraphicsNode.java Thu Oct 13 04:39:26 2005
@@ -445,25 +445,36 @@
// Set up graphic context. It is important to setup the
// transform first, because the clip is defined in this node's
// user space.
- Shape defaultClip = g2d.getClip();
- Composite defaultComposite = g2d.getComposite();
- AffineTransform defaultTransform = g2d.getTransform();
- RenderingHints defaultHints = null;
-
- if (hints != null) {
- defaultHints = g2d.getRenderingHints();
- g2d.addRenderingHints(hints);
- }
- if (transform != null) {
- g2d.transform(transform);
- }
- if (composite != null) {
- g2d.setComposite(composite);
- }
- if (clip != null){
+ Composite defaultComposite = null;
+ AffineTransform defaultTransform = null;
+ RenderingHints defaultHints = null;
+ Graphics2D baseG2d = null;
+
+ if (clip != null) {
+ baseG2d = g2d;
+ g2d = (Graphics2D)g2d.create();
+ if (hints != null)
+ g2d.addRenderingHints(hints);
+ if (transform != null)
+ g2d.transform(transform);
+ if (composite != null)
+ g2d.setComposite(composite);
g2d.clip(clip.getClipPath());
+ } else {
+ if (hints != null) {
+ defaultHints = g2d.getRenderingHints();
+ g2d.addRenderingHints(hints);
+ }
+ if (transform != null) {
+ defaultTransform = g2d.getTransform();
+ g2d.transform(transform);
+ }
+ if (composite != null) {
+ defaultComposite = g2d.getComposite();
+ g2d.setComposite(composite);
+ }
}
-
+
Shape curClip = g2d.getClip();
g2d.setRenderingHint(RenderingHintsKeyExt.KEY_AREA_OF_INTEREST,
curClip);
@@ -520,6 +531,12 @@
filteredImage = clip;
}
+ baseG2d = g2d;
+ // Only muck with the clip on a 'child'
+ // graphics 2D otherwise when we restore the
+ // clip it might 'wander' by a pixel.
+ g2d = (Graphics2D)g2d.create();
+
if(antialiasedClip){
// Remove hard edged clip
g2d.setClip(null);
@@ -530,17 +547,23 @@
org.apache.batik.ext.awt.image.GraphicsUtil.drawImage
(g2d, filteredImage);
+
+ g2d = baseG2d;
+ baseG2d = null;
}
}
// Restore default rendering attributes
- if (defaultHints != null) {
- g2d.setRenderingHints(defaultHints);
- }
- g2d.setTransform(defaultTransform);
- g2d.setClip(defaultClip);
- if (composite != null) {
- g2d.setComposite(defaultComposite);
+ if (baseG2d != null) {
+ g2d.dispose();
+ } else {
+ if (defaultHints != null)
+ g2d.setRenderingHints(defaultHints);
+ if (defaultTransform != null)
+ g2d.setTransform(defaultTransform);
+ if (defaultComposite != null) {
+ g2d.setComposite(defaultComposite);
+ }
}
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/ConcreteImageRendererFactory.java
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/ConcreteImageRendererFactory.java?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/ConcreteImageRendererFactory.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/ConcreteImageRendererFactory.java Thu Oct 13 04:39:26 2005
@@ -37,6 +37,8 @@
* Creates a new static image renderer
*/
public ImageRenderer createStaticImageRenderer(){
+ if (onMacOSX)
+ return new MacRenderer();
return new StaticRenderer();
}
@@ -44,6 +46,15 @@
* Creates a new dynamic image renderer
*/
public ImageRenderer createDynamicImageRenderer(){
+ if (onMacOSX)
+ return new MacRenderer();
return new DynamicRenderer();
+ }
+
+
+ static final boolean onMacOSX;
+ static {
+ // This should be OK for applets.
+ onMacOSX = ("Mac OS X".equals(System.getProperty("os.name")));
}
}
Modified: xmlgraphics/batik/trunk/test-references/samples/tests/spec/coordinates/percentagesAndUnits.png
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/test-references/samples/tests/spec/coordinates/percentagesAndUnits.png?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlgraphics/batik/trunk/test-references/samples/tests/spec/filters/feTileTarget.png
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/test-references/samples/tests/spec/filters/feTileTarget.png?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/relativeURI.png
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/test-references/samples/tests/spec/scripting/relativeURI.png?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlgraphics/batik/trunk/test-references/samples/textRotate.png
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/test-references/samples/textRotate.png?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlgraphics/batik/trunk/test-references/samples/textRotateShadows.png
URL: http://svn.apache.org/viewcvs/xmlgraphics/batik/trunk/test-references/samples/textRotateShadows.png?rev=320740&r1=320739&r2=320740&view=diff
==============================================================================
Binary files - no diff available.