Account for blocks a bit below our visible bounds because otherwise there
can be serious popping when entire buildings don't come into view until after we've started displaying. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2597 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
//
|
//
|
||||||
// $Id: MisoScenePanel.java,v 1.33 2003/05/20 23:58:27 mdb Exp $
|
// $Id: MisoScenePanel.java,v 1.34 2003/05/21 00:28:22 mdb Exp $
|
||||||
|
|
||||||
package com.threerings.miso.client;
|
package com.threerings.miso.client;
|
||||||
|
|
||||||
@@ -691,7 +691,7 @@ public class MisoScenePanel extends VirtualMediaPanel
|
|||||||
this, origin.x, origin.y,
|
this, origin.x, origin.y,
|
||||||
_metrics.blockwid, _metrics.blockhei);
|
_metrics.blockwid, _metrics.blockhei);
|
||||||
boolean visible =
|
boolean visible =
|
||||||
block.getFootprint().getBounds().intersects(_vbounds);
|
block.getFootprint().getBounds().intersects(_vibounds);
|
||||||
_blocks.put(bkey, block);
|
_blocks.put(bkey, block);
|
||||||
|
|
||||||
// queue the block up to be resolved
|
// queue the block up to be resolved
|
||||||
@@ -718,7 +718,11 @@ public class MisoScenePanel extends VirtualMediaPanel
|
|||||||
/**
|
/**
|
||||||
* Called during the {@link #rethink} process, configures {@link
|
* Called during the {@link #rethink} process, configures {@link
|
||||||
* #_ibounds} to contain the bounds of the potentially "influential"
|
* #_ibounds} to contain the bounds of the potentially "influential"
|
||||||
* world. Everything that intersects the influential area will be
|
* world and {@link #_ivbounds} to contain bounds that are used to
|
||||||
|
* determine which blocks should be resolved before making the view
|
||||||
|
* visible.
|
||||||
|
*
|
||||||
|
* <p> Everything that intersects the influential area will be
|
||||||
* resolved on the expectation that it could be scrolled into view at
|
* resolved on the expectation that it could be scrolled into view at
|
||||||
* any time. The influential bounds should be large enough that the
|
* any time. The influential bounds should be large enough that the
|
||||||
* time between a block becoming influential and the time at which it
|
* time between a block becoming influential and the time at which it
|
||||||
@@ -735,6 +739,8 @@ public class MisoScenePanel extends VirtualMediaPanel
|
|||||||
// we go extra on the height because objects
|
// we go extra on the height because objects
|
||||||
// below can influence fairly high up
|
// below can influence fairly high up
|
||||||
_vbounds.height+3*infbory);
|
_vbounds.height+3*infbory);
|
||||||
|
_vibounds.setBounds(_vbounds.x, _vbounds.y,
|
||||||
|
_vbounds.width, _vbounds.height+infbory);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1458,6 +1464,10 @@ public class MisoScenePanel extends VirtualMediaPanel
|
|||||||
/** Contains the bounds of our "area of influence" in screen coords. */
|
/** Contains the bounds of our "area of influence" in screen coords. */
|
||||||
protected Rectangle _ibounds = new Rectangle();
|
protected Rectangle _ibounds = new Rectangle();
|
||||||
|
|
||||||
|
/** Contains the bounds of our visible "area of influence" in screen
|
||||||
|
* coords. */
|
||||||
|
protected Rectangle _vibounds = new Rectangle();
|
||||||
|
|
||||||
/** Used by {@link #rethink}. */
|
/** Used by {@link #rethink}. */
|
||||||
protected RethinkOp _rethinkOp = new RethinkOp();
|
protected RethinkOp _rethinkOp = new RethinkOp();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user