diff --git a/src/main/java/bdv/viewer/render/RenderResult.java b/src/main/java/bdv/viewer/render/RenderResult.java index fe44b2ce0e28e22e96d2dcb4750454d47fbd8cdc..16caf1b1fc13879f5b79c26ff19ff5141cbbdc9b 100644 --- a/src/main/java/bdv/viewer/render/RenderResult.java +++ b/src/main/java/bdv/viewer/render/RenderResult.java @@ -6,49 +6,65 @@ import net.imglib2.realtransform.AffineTransform3D; import net.imglib2.type.numeric.ARGBType; /** - * TODO javadoc + * Provides the {@link MultiResolutionRenderer renderer} with a target image + * ({@code RandomAccessibleInterval<ARGBType>}) to render to. Provides the + * {@link RenderTarget} with the rendered image and transform etc necessary to + * display it. */ public interface RenderResult { /** - * TODO javadoc + * Allocate storage such that {@link #getScreenImage()} holds an image of + * {@code width * height}. + * <p> + * (Called by the {@link MultiResolutionRenderer renderer}.) */ void init( int width, int height ); /** - * TODO javadoc * Get the image to render to. + * <p> + * (Called by the {@link MultiResolutionRenderer renderer}.) * - * @return + * @return the image to render to */ // TODO: rename getTargetImage() ??? RandomAccessibleInterval< ARGBType > getScreenImage(); /** - * TODO javadoc - * Get the viewer transform used to render image. - * This is with respect to the screen resolution (doesn't include scaling). + * Get the viewer transform used to render image. This is with respect to + * the screen resolution (doesn't include scaling). + * <p> + * (Called by the {@link MultiResolutionRenderer renderer} to set the + * transform.) */ AffineTransform3D getViewerTransform(); /** - * TODO javadoc + * Get the scale factor from target coordinates to screen resolution. */ double getScaleFactor(); /** - * TODO javadoc + * Set the scale factor from target coordinates to screen resolution. */ void setScaleFactor( double scaleFactor ); /** - * Fill in {@code interval} with data from {@code patch}, - * scaled by the relative scale between this {@code RenderResult} and {@code patch}, - * and shifted such that {@code (0,0)} of the {@code patch} is placed at {@code (ox,oy)} of this {@code RenderResult} + * Fill in {@code interval} with data from {@code patch}, scaled by the + * relative scale between this {@code RenderResult} and {@code patch}, and + * shifted such that {@code (0,0)} of the {@code patch} is placed at + * {@code (ox,oy)} of this {@code RenderResult} * <p> - * Note that only data in {@code interval} will be modified, although the scaled and shifted {@code patch} might fall partially outside. + * Note that only data in {@code interval} will be modified, although the + * scaled and shifted {@code patch} might fall partially outside. */ void patch( final RenderResult patch, final Interval interval, final double ox, final double oy ); + /** + * Notify that the {@link #getScreenImage() target image} data was changed. + * <p> + * (Called by the {@link MultiResolutionRenderer renderer}.) + */ void setUpdated(); }