diff --git a/src/java/com/threerings/media/sprite/AnimationManager.java b/src/java/com/threerings/media/sprite/AnimationManager.java
index 273f873f9..0e42c1c67 100644
--- a/src/java/com/threerings/media/sprite/AnimationManager.java
+++ b/src/java/com/threerings/media/sprite/AnimationManager.java
@@ -1,5 +1,5 @@
//
-// $Id: AnimationManager.java,v 1.5 2001/08/02 23:12:19 shaper Exp $
+// $Id: AnimationManager.java,v 1.6 2001/08/04 01:41:02 shaper Exp $
package com.threerings.miso.sprite;
@@ -82,7 +82,7 @@ public class AnimationManager implements Interval, PerformanceObserver
_view.invalidateRects(rects);
// update frame-rate information
- PerformanceMonitor.tick(AnimationManager.this, "refresh");
+ //PerformanceMonitor.tick(AnimationManager.this, "refresh");
// refresh the display
_target.paintImmediately(_target.getBounds());
diff --git a/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java b/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
index 5f1200b7c..f1f920985 100644
--- a/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
+++ b/src/java/com/threerings/miso/client/DisplayMisoSceneImpl.java
@@ -1,5 +1,5 @@
//
-// $Id: DisplayMisoSceneImpl.java,v 1.16 2001/08/02 18:58:59 shaper Exp $
+// $Id: DisplayMisoSceneImpl.java,v 1.17 2001/08/04 01:41:02 shaper Exp $
package com.threerings.miso.scene;
@@ -22,10 +22,13 @@ public class Scene
public static final int LAYER_BASE = 0;
/** The object layer id. */
- public static final int LAYER_OBJECT = 1;
+ public static final int LAYER_FRINGE = 1;
+
+ /** The object layer id. */
+ public static final int LAYER_OBJECT = 2;
/** The total number of layers. */
- public static final int NUM_LAYERS = 2;
+ public static final int NUM_LAYERS = 3;
/** The latest scene file format version. */
public static final short VERSION = 1;
@@ -37,7 +40,7 @@ public class Scene
public static final int TILE_HEIGHT = 22;
/** String translations of each tile layer name. */
- public static final String[] XLATE_LAYERS = { "Base", "Object" };
+ public static final String[] XLATE_LAYERS = { "Base", "Fringe", "Object" };
/** Scene id to denote an unset or otherwise invalid scene id. */
public static final short SID_INVALID = -1;
diff --git a/src/java/com/threerings/miso/client/SceneViewPanel.java b/src/java/com/threerings/miso/client/SceneViewPanel.java
new file mode 100644
index 000000000..2c3db7247
--- /dev/null
+++ b/src/java/com/threerings/miso/client/SceneViewPanel.java
@@ -0,0 +1,75 @@
+//
+// $Id: SceneViewPanel.java,v 1.1 2001/08/04 01:41:02 shaper Exp $
+
+package com.threerings.miso.scene;
+
+import java.awt.*;
+import javax.swing.JPanel;
+
+import com.threerings.miso.sprite.SpriteManager;
+import com.threerings.miso.tile.TileManager;
+
+/**
+ * The SceneViewPanel class is responsible for managing a
+ * SceneView, rendering it to the screen, and handling
+ * view-related UI events.
+ */
+public class SceneViewPanel extends JPanel
+{
+ /**
+ * Construct the panel and initialize it with a context.
+ */
+ public SceneViewPanel (TileManager tilemgr, SpriteManager spritemgr)
+ {
+ // create the data model for the scene view
+ _smodel = new IsoSceneModel();
+ _smodel.setTileDimensions(TWIDTH, THEIGHT);
+ _smodel.setBounds((HTILES * TWIDTH), (VTILES * THEIGHT));
+ _smodel.setOrigin(_smodel.bounds.width / 2, VOFFSET);
+
+ // create the scene view
+ _view = new IsoSceneView(tilemgr, spritemgr, _smodel);
+
+ // set our attributes for optimal display performance
+ setDoubleBuffered(false);
+ setOpaque(true);
+ }
+
+ /**
+ * Set the scene managed by the panel.
+ */
+ public void setScene (Scene scene)
+ {
+ _view.setScene(scene);
+ }
+
+ /**
+ * Render the panel and the scene view to the given graphics object.
+ */
+ public void paintComponent (Graphics g)
+ {
+ super.paintComponent(g);
+ _view.paint(g);
+ }
+
+ /** Tile width in pixels. */
+ protected static final int TWIDTH = 64;
+
+ /** Tile height in pixels. */
+ protected static final int THEIGHT = 48;
+
+ /** Number of horizontal tiles in the scene. */
+ protected static final int HTILES = 10;
+
+ /** Number of vertical tiles in the scene. */
+ protected static final int VTILES = 12;
+
+ /** Origin vertical offset in pixels. */
+ protected static final int VOFFSET = -(5 * THEIGHT);
+
+ /** The scene data model. */
+ protected IsoSceneModel _smodel;
+
+ /** The scene view we're managing. */
+ protected SceneView _view;
+}
diff --git a/tests/rsrc/scenes/default.xml b/tests/rsrc/scenes/default.xml
index e50c5578c..bc7560eea 100644
--- a/tests/rsrc/scenes/default.xml
+++ b/tests/rsrc/scenes/default.xml
@@ -31,6 +31,7 @@
1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10,1004,10
+
diff --git a/tests/src/java/com/threerings/miso/viewer/ViewerFrame.java b/tests/src/java/com/threerings/miso/viewer/ViewerFrame.java
index 7a9da02da..d87568aa6 100644
--- a/tests/src/java/com/threerings/miso/viewer/ViewerFrame.java
+++ b/tests/src/java/com/threerings/miso/viewer/ViewerFrame.java
@@ -1,5 +1,5 @@
//
-// $Id: ViewerFrame.java,v 1.6 2001/08/02 21:02:57 shaper Exp $
+// $Id: ViewerFrame.java,v 1.7 2001/08/04 01:41:02 shaper Exp $
package com.threerings.miso.viewer;
@@ -25,7 +25,6 @@ class ViewerFrame extends JFrame implements WindowListener
public ViewerFrame ()
{
super("Scene Viewer");
-
addWindowListener(this);
}
@@ -45,8 +44,16 @@ class ViewerFrame extends JFrame implements WindowListener
new AmbulatorySprite(spritemgr, 300, 300, tilemgr, TSID_CHAR);
spritemgr.addSprite(sprite);
+ // create a top-level panel to manage everything
+ JPanel top = new JPanel();
+ GroupLayout gl = new HGroupLayout(GroupLayout.STRETCH);
+ gl.setOffAxisPolicy(GroupLayout.STRETCH);
+ top.setLayout(gl);
+
// set up the scene view panel with a default scene
- SceneViewPanel svpanel = new SceneViewPanel(_ctx, spritemgr, sprite);
+ ViewerSceneViewPanel svpanel =
+ new ViewerSceneViewPanel(_ctx, spritemgr, sprite);
+ top.add(svpanel, GroupLayout.FIXED);
// add the scene view panel
getContentPane().add(svpanel, BorderLayout.CENTER);
@@ -69,7 +76,7 @@ class ViewerFrame extends JFrame implements WindowListener
protected static final int TSID_CHAR = 1003;
/** The panel displaying the scene. */
- SceneViewPanel _svpanel;
+ ViewerSceneViewPanel _svpanel;
/** The context object. */
protected ViewerContext _ctx;
diff --git a/tests/src/java/com/threerings/miso/viewer/SceneViewPanel.java b/tests/src/java/com/threerings/miso/viewer/ViewerSceneViewPanel.java
similarity index 66%
rename from tests/src/java/com/threerings/miso/viewer/SceneViewPanel.java
rename to tests/src/java/com/threerings/miso/viewer/ViewerSceneViewPanel.java
index 431987c15..4f156c3f9 100644
--- a/tests/src/java/com/threerings/miso/viewer/SceneViewPanel.java
+++ b/tests/src/java/com/threerings/miso/viewer/ViewerSceneViewPanel.java
@@ -1,5 +1,5 @@
//
-// $Id: SceneViewPanel.java,v 1.8 2001/08/02 23:12:19 shaper Exp $
+// $Id: ViewerSceneViewPanel.java,v 1.1 2001/08/04 01:41:02 shaper Exp $
package com.threerings.miso.viewer;
@@ -14,38 +14,25 @@ import com.threerings.miso.viewer.util.ViewerContext;
import com.threerings.miso.scene.*;
import com.threerings.miso.scene.xml.XMLFileSceneRepository;
import com.threerings.miso.sprite.*;
-import com.threerings.miso.util.PerformanceMonitor;
-import com.threerings.miso.util.PerformanceObserver;
+import com.threerings.miso.util.*;
-/**
- * The SceneViewPanel class is responsible for managing a
- * SceneView, rendering it to the screen, and handling
- * view-related UI events.
- */
-public class SceneViewPanel extends JPanel
+public class ViewerSceneViewPanel extends SceneViewPanel
implements MouseListener, MouseMotionListener, PerformanceObserver
{
/**
* Construct the panel and initialize it with a context.
*/
- public SceneViewPanel (ViewerContext ctx, SpriteManager spritemgr,
- Sprite sprite)
+ public ViewerSceneViewPanel (
+ ViewerContext ctx, SpriteManager spritemgr, Sprite sprite)
{
+ super(ctx.getTileManager(), spritemgr);
+
_ctx = ctx;
-
_sprite = sprite;
- // construct the view object
- IsoSceneModel smodel = new IsoSceneModel();
- smodel.setTileDimensions(64, 48);
- smodel.setBounds((10 * 64), (12 * 48));
- smodel.setOrigin(320, -(5 * 48));
-
- _view = new IsoSceneView(_ctx.getTileManager(), spritemgr, smodel);
-
// create an animation manager for this panel
AnimationManager animmgr =
- new AnimationManager(spritemgr, this, _view);
+ new AnimationManager(spritemgr, this, _view);
// listen to the desired events
addMouseListener(this);
@@ -54,9 +41,6 @@ public class SceneViewPanel extends JPanel
// load up the initial scene
prepareStartingScene();
- setDoubleBuffered(false);
- setOpaque(true);
-
PerformanceMonitor.register(this, "paint", 1000);
}
@@ -82,29 +66,6 @@ public class SceneViewPanel extends JPanel
}
}
- /**
- * Set the scene managed by the panel.
- */
- public void setScene (Scene scene)
- {
- _view.setScene(scene);
- }
-
- /**
- * Render the panel and the scene view to the given graphics object.
- */
- public void paintComponent (Graphics g)
- {
- Rectangle bounds = getBounds();
-
-// Log.info("SceneViewPanel: paint [width=" + bounds.width +
-// ", height=" + bounds.height + "].");
-
- _view.paint(g);
-
- PerformanceMonitor.tick(this, "paint");
- }
-
public void checkpoint (String name, int ticks)
{
Log.info(name + " [ticks=" + ticks + "].");
@@ -148,7 +109,4 @@ public class SceneViewPanel extends JPanel
/** The context object. */
protected ViewerContext _ctx;
-
- /** The scene view we're managing. */
- protected SceneView _view;
}