diff --git a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
index 9d91b44b710dc9a604ab2ab02b4e6873b84bf47b..ba3dfd53efdae1384b1da22d5da9fdd0c55405c5 100644
--- a/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
+++ b/src/main/java/bdv/tools/RecordMaxProjectionDialog.java
@@ -74,7 +74,6 @@ import net.imglib2.img.array.ArrayImgs;
import net.imglib2.realtransform.AffineTransform3D;
import net.imglib2.type.numeric.ARGBType;
import bdv.viewer.OverlayRenderer;
-import net.imglib2.ui.PainterThread;
import bdv.viewer.render.RenderTarget;
import net.imglib2.util.LinAlgHelpers;
@@ -369,7 +368,7 @@ public class RecordMaxProjectionDialog extends JDialog implements OverlayRendere
}
final MyTarget target = new MyTarget();
final MultiResolutionRenderer renderer = new MultiResolutionRenderer(
- target, new PainterThread( null ), new double[] { 1 }, 0, 1, null, false,
+ target, () -> {}, new double[] { 1 }, 0, 1, null, false,
viewer.getOptionValues().getAccumulateProjectorFactory(), new CacheControl.Dummy() );
progressWriter.setProgress( 0 );
for ( int timepoint = minTimepointIndex; timepoint <= maxTimepointIndex; ++timepoint )
diff --git a/src/main/java/bdv/tools/RecordMovieDialog.java b/src/main/java/bdv/tools/RecordMovieDialog.java
index c4adb030d275a3154f5478927908db03c02d5cf5..4fe673696c745c300b4234e737e6050162ef856c 100644
--- a/src/main/java/bdv/tools/RecordMovieDialog.java
+++ b/src/main/java/bdv/tools/RecordMovieDialog.java
@@ -68,7 +68,6 @@ import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import net.imglib2.realtransform.AffineTransform3D;
import bdv.viewer.OverlayRenderer;
-import net.imglib2.ui.PainterThread;
import bdv.viewer.render.RenderTarget;
public class RecordMovieDialog extends JDialog implements OverlayRenderer
@@ -303,7 +302,7 @@ public class RecordMovieDialog extends JDialog implements OverlayRenderer
}
final MyTarget target = new MyTarget();
final MultiResolutionRenderer renderer = new MultiResolutionRenderer(
- target, new PainterThread( null ), new double[] { 1 }, 0, 1, null, false,
+ target, () -> {}, new double[] { 1 }, 0, 1, null, false,
viewer.getOptionValues().getAccumulateProjectorFactory(), new CacheControl.Dummy() );
progressWriter.setProgress( 0 );
for ( int timepoint = minTimepointIndex; timepoint <= maxTimepointIndex; ++timepoint )
diff --git a/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java b/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
index 89b26654f4f8b6613204a6410c4f37ff7e3905ee..679721875664beea16df86a40ba72473a483adf2 100644
--- a/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
+++ b/src/main/java/bdv/viewer/render/MultiResolutionRenderer.java
@@ -28,6 +28,7 @@
*/
package bdv.viewer.render;
+import bdv.viewer.RequestRepaint;
import java.util.concurrent.ExecutorService;
import net.imglib2.Interval;
@@ -36,7 +37,6 @@ import net.imglib2.Volatile;
import net.imglib2.cache.iotiming.CacheIoTiming;
import net.imglib2.realtransform.AffineTransform3D;
import net.imglib2.type.numeric.ARGBType;
-import net.imglib2.ui.PainterThread;
import net.imglib2.util.Intervals;
import bdv.cache.CacheControl;
@@ -98,7 +98,7 @@ public class MultiResolutionRenderer
* Thread that triggers repainting of the display.
* Requests for repainting are send there.
*/
- private final PainterThread painterThread;
+ private final RequestRepaint painterThread;
/**
* Creates projectors for rendering current {@code ViewerState} to a
@@ -265,7 +265,7 @@ public class MultiResolutionRenderer
*/
public MultiResolutionRenderer(
final RenderTarget< ? > display,
- final PainterThread painterThread,
+ final RequestRepaint painterThread,
final double[] screenScaleFactors,
final long targetRenderNanos,
final int numRenderingThreads,
diff --git a/src/main/java/net/imglib2/ui/PainterThread.java b/src/main/java/net/imglib2/ui/PainterThread.java
index e6d1ed5dc6d28ffc3ab5a5ea9bb986bfa28a983f..143b45354c0c5d12517acfaf3b8c3f655a0d7c91 100644
--- a/src/main/java/net/imglib2/ui/PainterThread.java
+++ b/src/main/java/net/imglib2/ui/PainterThread.java
@@ -33,12 +33,13 @@
*/
package net.imglib2.ui;
+import bdv.viewer.RequestRepaint;
import java.util.concurrent.RejectedExecutionException;
/**
* Thread to repaint display.
*/
-final public class PainterThread extends Thread
+public class PainterThread extends Thread implements RequestRepaint
{
public interface Paintable
{
@@ -109,6 +110,7 @@ final public class PainterThread extends Thread
* Request repaint. This will trigger a call to {@link Paintable#paint()}
* from the {@link PainterThread}.
*/
+ @Override
public void requestRepaint()
{
synchronized ( this )