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 )