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 ca...@apache.org on 2008/11/13 03:50:32 UTC
svn commit: r713617 - in /xmlgraphics/batik/trunk/sources/org/apache/batik:
bridge/RepaintManager.java gvt/renderer/DynamicRenderer.java
Author: cam
Date: Wed Nov 12 18:50:31 2008
New Revision: 713617
URL: http://svn.apache.org/viewvc?rev=713617&view=rev
Log:
Avoid repainting failures in some circurmstances when the canvas
is resized. Fix from Thomas in:
http://markmail.org/message/snmfoso5ue6s3ger
Modified:
xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java
xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java?rev=713617&r1=713616&r2=713617&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java Wed Nov 12 18:50:31 2008
@@ -80,10 +80,10 @@
rects.add(r);
}
- RectListManager devRLM =null;
+ RectListManager devRLM = null;
try {
- devRLM = new RectListManager(rects);
- devRLM.mergeRects(COPY_OVERHEAD, COPY_LINE_OVERHEAD);
+ devRLM = new RectListManager(rects);
+ devRLM.mergeRects(COPY_OVERHEAD, COPY_LINE_OVERHEAD);
} catch(Exception e) {
e.printStackTrace();
}
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java?rev=713617&r1=713616&r2=713617&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java Wed Nov 12 18:50:31 2008
@@ -179,6 +179,10 @@
boolean repaintAll = false;
Rectangle dr = copyRaster.getBounds();
+ Rectangle sr = null;
+ if (currentRaster != null) {
+ sr = currentRaster.getBounds();
+ }
// Ensure only one thread works on baseRaster at a time...
synchronized (syncRaster) {
@@ -216,6 +220,8 @@
Rectangle r = (Rectangle)iter.next();
if (!dr.intersects(r)) continue;
r = dr.intersection(r);
+ if (sr != null && !sr.intersects(r)) continue;
+ r = sr.intersection(r);
// System.err.println("Copy: " + r);
Raster src = currentRaster.createWritableChild
(r.x, r.y, r.width, r.height, r.x, r.y, null);
@@ -252,11 +258,12 @@
}
}
- if (HaltingThread.hasBeenHalted())
+ if (HaltingThread.hasBeenHalted()) {
return;
+ }
// System.out.println("Dmg: " + damagedAreas);
- // System.out.println("Areas: " + devRects);
+ // System.out.println("Areas: " + devRLM);
// Swap the buffers if the rendering completed cleanly.
BufferedImage tmpBI = workingOffScreen;