Get AS fringing actually working. We end up with a double-layer of sprites on the base tiles for the background as one and all the fringing as another. This is definitely pretty slow in the debug player, so still need to track down what's spending all that time.

git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@954 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Mike Thomas
2010-07-15 19:03:55 +00:00
parent 6a064af9dc
commit 3d70c731a5
13 changed files with 172 additions and 39 deletions
@@ -53,6 +53,8 @@ import com.threerings.util.MathUtil;
import com.threerings.util.Set;
import com.threerings.util.Sets;
import com.threerings.util.StringUtil;
import com.threerings.util.maps.WeakValueMap;
import com.threerings.media.tile.BaseTile;
import com.threerings.media.tile.Colorizer;
import com.threerings.media.tile.NoSuchTileSetError;
import com.threerings.media.tile.TileSet;
@@ -61,6 +63,7 @@ import com.threerings.miso.client.MisoMetricsTransformation;
import com.threerings.miso.client.PrioritizedSceneLayoutRenderer;
import com.threerings.miso.data.MisoSceneModel;
import com.threerings.miso.data.ObjectInfo;
import com.threerings.miso.tile.FringeTile;
import com.threerings.miso.util.MisoContext;
import com.threerings.miso.util.ObjectSet;
import com.threerings.miso.util.MisoSceneMetrics;
@@ -151,6 +154,13 @@ public class MisoScenePanel extends Sprite
{
}
/** Computes the fringe tile for the specified coordinate. */
public function computeFringeTile (tx :int, ty :int) :BaseTile
{
return _ctx.getTileManager().getFringer().getFringeTile(_model, tx, ty, _fringes,
_masks);
}
protected function getBaseBlocks () :Set
{
var blocks :Set = Sets.newSetOf(int);
@@ -306,6 +316,9 @@ public class MisoScenePanel extends Sprite
protected var _pendingBlocks :Set = Sets.newSetOf(SceneBlock);
protected var _readyBlocks :Set = Sets.newSetOf(SceneBlock);
protected var _masks :Map = Maps.newMapOf(int);
protected var _fringes :Map = new WeakValueMap(Maps.newMapOf(FringeTile));
protected const DEF_WIDTH :int = 985;
protected const DEF_HEIGHT :int = 560;