[skycastle-commits] SF.net SVN: skycastle: [342] trunk/skycastle/modules/utils/src/main/java/ org/skycastle/util/view2d/layer

  • From: zzorn@xxxxxxxxxxxxxxxxxxxxx
  • To: skycastle-commits@xxxxxxxxxxxxx
  • Date: Sun, 06 Jan 2008 05:09:19 -0800

Revision: 342
          http://skycastle.svn.sourceforge.net/skycastle/?rev=342&view=rev
Author:   zzorn
Date:     2008-01-06 05:09:18 -0800 (Sun, 06 Jan 2008)

Log Message:
-----------
Refactored the LayeredView to use Renderer2D:s directly, instead of Layers.

Removed Paths:
-------------
    
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/AbstractLayer.java
    
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/Layer.java
    
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/RendererLayer.java

Deleted: 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/AbstractLayer.java
===================================================================
--- 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/AbstractLayer.java
      2008-01-06 04:23:12 UTC (rev 341)
+++ 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/AbstractLayer.java
      2008-01-06 13:09:18 UTC (rev 342)
@@ -1,78 +0,0 @@
-package org.skycastle.util.view2d.layer;
-
-import org.skycastle.util.ParameterChecker;
-import org.skycastle.util.region.RectangularRegion;
-import org.skycastle.util.view2d.renderer.RendererListener;
-
-import java.util.HashSet;
-import java.util.Set;
-
-/**
- * Common functionality of layers.
- *
- * @author Hans H\xE4ggstr\xF6m
- */
-public abstract class AbstractLayer
-        implements Layer
-{
-
-    //======================================================================
-    // Private Fields
-
-    private final Set<RendererListener> myRendererListeners = new 
HashSet<RendererListener>();
-    private final RendererListener myRendererListener = new RendererListener()
-    {
-
-        public void onAreaChanged( RectangularRegion changedArea )
-        {
-            notifyAreaChanged( changedArea );
-        }
-
-    };
-
-    //======================================================================
-    // Public Methods
-
-    //----------------------------------------------------------------------
-    // Layer Implementation
-
-    public final void addRendererListener( RendererListener listener )
-    {
-        ParameterChecker.checkNotNull( listener, "addedRendererListener" );
-        ParameterChecker.checkNotAlreadyContained( listener, 
myRendererListeners, "myRendererListeners" );
-
-        myRendererListeners.add( listener );
-    }
-
-
-    public final void removeRendererListener( RendererListener listener )
-    {
-        ParameterChecker.checkNotNull( listener, "removedRendererListener" );
-        ParameterChecker.checkContained( listener, myRendererListeners, 
"myRendererListeners" );
-
-        myRendererListeners.remove( listener );
-    }
-
-    //======================================================================
-    // Protected Methods
-
-    protected final RendererListener getRendererListener()
-    {
-        return myRendererListener;
-    }
-
-
-    /**
-     * Notifies listeners that the specified area of the image has changed.
-     *
-     * @param changedArea the area, specified in world coordinates.  Null if 
the whole image has changed.
-     */
-    protected final void notifyAreaChanged( final RectangularRegion 
changedArea )
-    {
-        for ( RendererListener rendererListener : myRendererListeners )
-        {
-            rendererListener.onAreaChanged( changedArea );
-        }
-    }
-
-}

Deleted: 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/Layer.java
===================================================================
--- 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/Layer.java
      2008-01-06 04:23:12 UTC (rev 341)
+++ 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/Layer.java
      2008-01-06 13:09:18 UTC (rev 342)
@@ -1,57 +0,0 @@
-package org.skycastle.util.view2d.layer;
-
-import org.skycastle.util.region.RectangularRegion;
-import org.skycastle.util.view2d.camera.Camera2D;
-import org.skycastle.util.view2d.camera.CameraListener;
-import org.skycastle.util.view2d.renderer.RendererListener;
-
-import java.awt.image.BufferedImage;
-
-/**
- * Helper class for the LayeredView.  Contains a renderer, and if the renderer 
is used in buffered mode, an image buffer.
- * <p/>
- * A layer may be cached if it is also buffered, if so, the buffer is stored 
in the layer, and re-drawn only when the
- * layer image changes for some area.
- * <p/>
- * If a layer is not cached, it uses a common image buffer if it is buffered, 
or draws directly on the target image
- * if unbuffered.
- * <p/>
- * There may also be an overcaching policy for the view, if so, the cached 
image is rendered larger than the
- * view size, allowing some panning to occur without re-rendering the image.
- * <p/>
- * The layer keeps track of which parts of the cache it holds outside the view 
are up-to-date, and which ones will need to be re-drawn..
- * <p/>
- * The layer can also support rendering itself in a separarte thread.
- * <p/>
- * REFACTOR: Perhaps combine the layer and renderer concepts, and add an 
abstract base class for renderers that takes care of buffering and such.
- *
- * @author Hans H\xE4ggstr\xF6m
- */
-public interface Layer
-        extends CameraListener
-{
-    /**
-     * Renders the layer to a buffer.
-     *
-     * @param target       the buffer to render to.
-     * @param screenRegion the region of the target buffer to render to.  
Coordinates in pixels.
-     * @param worldRegion  the world region to render to the specified screen 
region.
-     * @param camera       the camera transformation used.
-     */
-    void render( BufferedImage target,
-                 RectangularRegion screenRegion,
-                 RectangularRegion worldRegion,
-                 Camera2D camera );
-
-    /**
-     * @param listener a listener that is notified when the rendered picture 
changes for some specified area,
-     *                 and should be re-drawn there
-     */
-    void addRendererListener( RendererListener listener );
-
-    /**
-     * @param listener listener to remove.
-     */
-    void removeRendererListener( RendererListener listener );
-
-}

Deleted: 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/RendererLayer.java
===================================================================
--- 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/RendererLayer.java
      2008-01-06 04:23:12 UTC (rev 341)
+++ 
trunk/skycastle/modules/utils/src/main/java/org/skycastle/util/view2d/layer/RendererLayer.java
      2008-01-06 13:09:18 UTC (rev 342)
@@ -1,96 +0,0 @@
-package org.skycastle.util.view2d.layer;
-
-import org.skycastle.util.ImageUtils;
-import org.skycastle.util.ParameterChecker;
-import org.skycastle.util.region.RectangularRegion;
-import org.skycastle.util.view2d.camera.Camera2D;
-import org.skycastle.util.view2d.renderer.Renderer2D;
-
-import java.awt.Graphics2D;
-import java.awt.image.BufferedImage;
-
-/**
- * A simple layer, that encapsulates a Renderer2D.
- *
- * @author Hans H\xE4ggstr\xF6m
- */
-public class RendererLayer
-        extends AbstractLayer
-{
-
-    //======================================================================
-    // Private Fields
-
-    private final Renderer2D myRenderer2D;
-
-    private BufferedImage myBuffer = null;
-
-    //======================================================================
-    // Public Methods
-
-    //----------------------------------------------------------------------
-    // Constructors
-
-    /**
-     * Creates a new RendererLayer.
-     *
-     * @param renderer2D the renderer to use.
-     */
-    public RendererLayer( final Renderer2D renderer2D )
-    {
-        ParameterChecker.checkNotNull( renderer2D, "renderer2D" );
-
-        myRenderer2D = renderer2D;
-
-        myRenderer2D.addRendererListener( getRendererListener() );
-    }
-
-    //----------------------------------------------------------------------
-    // CameraListener Implementation
-
-    public void onCameraChanged( Camera2D camera, boolean positionChanged, 
boolean zoomChanged )
-    {
-        // Nothing to do
-    }
-
-    //----------------------------------------------------------------------
-    // Layer Implementation
-
-    public void render( BufferedImage target, RectangularRegion screenRegion, 
RectangularRegion worldRegion, Camera2D camera )
-    {
-        if ( myRenderer2D.isBuffered() )
-        {
-            // Create or re-create the buffer if needed
-            if ( bufferShouldBeCreated( target ) )
-            {
-                myBuffer = new BufferedImage( target.getWidth(), 
target.getHeight(), BufferedImage.TYPE_INT_ARGB );
-            }
-
-            // Clear buffer from previous content
-            ImageUtils.clear( myBuffer );
-
-            // Render image
-            myRenderer2D.render( myBuffer, (Graphics2D) 
myBuffer.getGraphics(), screenRegion, worldRegion, camera );
-
-            // Copy image to target buffer
-            final Graphics2D graphics = (Graphics2D) target.getGraphics();
-            graphics.drawImage( myBuffer, 0, 0, null );
-        }
-        else
-        {
-            // Render directly to target buffer
-            myRenderer2D.render( target, (Graphics2D) target.getGraphics(), 
screenRegion, worldRegion, camera );
-        }
-    }
-
-    //======================================================================
-    // Private Methods
-
-    private boolean bufferShouldBeCreated( final BufferedImage target )
-    {
-        return myBuffer == null ||
-               myBuffer.getWidth() != target.getWidth() ||
-               myBuffer.getHeight() != target.getHeight();
-    }
-
-}


This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.

Other related posts:

  • » [skycastle-commits] SF.net SVN: skycastle: [342] trunk/skycastle/modules/utils/src/main/java/ org/skycastle/util/view2d/layer