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 dv...@apache.org on 2007/02/08 09:40:19 UTC
svn commit: r504822 -
/xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java
Author: dvholten
Date: Thu Feb 8 00:40:18 2007
New Revision: 504822
URL: http://svn.apache.org/viewvc?view=rev&rev=504822
Log:
fix spurious ArrayIndexOutOfBoundsException
Modified:
xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java
Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java?view=diff&rev=504822&r1=504821&r2=504822
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/apps/slideshow/Main.java Thu Feb 8 00:40:18 2007
@@ -72,7 +72,7 @@
static int duration = 3000;
static int frameDelay = duration+7000;
- boolean done = false;
+ volatile boolean done = false;
public Main(File []files, Dimension size) {
setBackground(Color.black);
@@ -117,6 +117,11 @@
}
class RenderThread extends Thread {
+ RenderThread(){
+ super("RenderThread");
+ setDaemon( true );
+ }
+
public void run() {
renderer.setDoubleBuffered(true);
for (int i=0; i<files.length; i++) {
@@ -124,12 +129,12 @@
GVTBuilder builder = new GVTBuilder();
try {
- System.out.println("Reading: " + files[i]);
- Document svgDoc = loader.loadDocument
- (files[i].toURL().toString());
- System.out.println("Building: " + files[i]);
+ String fileName = files[ i ].toURL().toString();
+ System.out.println("Reading: " + fileName );
+ Document svgDoc = loader.loadDocument( fileName );
+ System.out.println("Building: " + fileName );
gvtRoot = builder.build(ctx, svgDoc);
- System.out.println("Rendering: " + files[i]);
+ System.out.println("Rendering: " + fileName );
renderer.setTree(gvtRoot);
Element elt = ((SVGDocument)svgDoc).getRootElement();
@@ -145,9 +150,10 @@
display.getWidth(),
display.getHeight());
renderer.repaint(r);
- System.out.println("Painting: " + files[i]);
+ System.out.println("Painting: " + fileName );
image = renderer.getOffScreen();
setTransition(image);
+
} catch (Exception ex) {
ex.printStackTrace();
}
@@ -159,6 +165,7 @@
done = true;
setCursor(new Cursor(Cursor.WAIT_CURSOR));
}
+
}
}
@@ -205,6 +212,8 @@
int blockh = 75;
public TransitionThread(BufferedImage bi) {
+ super( "TransitionThread");
+ setDaemon( true );
src = bi;
}
@@ -250,7 +259,7 @@
for (int i=0; i<rects.length; i++) {
int idx = (int)(Math.random()*(rects.length-i));
Point pt = rects[idx];
- System.arraycopy( rects, idx + 1, rects, idx + 1 - 1, rects.length - i - idx + 1 );
+ System.arraycopy( rects, idx + 1, rects, idx + 1 - 1, rects.length - i - idx -1 ); // +1??
int x=pt.x*blockw, y=pt.y*blockh;
int w=blockw, h = blockh;
if (x+w > src.getWidth()) w = src.getWidth()-x;
@@ -279,6 +288,7 @@
Main.this.notifyAll();
}
}
+
}
public void paint(Graphics g) {