small optimizations to avoid System.arraycopy()

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1810 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2002-10-17 02:11:58 +00:00
parent efe514eb3b
commit 366111dbfe
@@ -1,5 +1,5 @@
//
// $Id: RegionManager.java,v 1.3 2002/06/18 22:25:33 mdb Exp $
// $Id: RegionManager.java,v 1.4 2002/10/17 02:11:58 ray Exp $
package com.threerings.media;
@@ -72,16 +72,17 @@ public class RegionManager
{
ArrayList merged = new ArrayList();
while (_dirty.size() > 0) {
for (int ii=_dirty.size() - 1; ii >= 0; ii--) {
// pop the next rectangle from the dirty list
Rectangle mr = (Rectangle)_dirty.remove(0);
Rectangle mr = (Rectangle)_dirty.remove(ii);
// merge in any overlapping rectangles
for (int ii = 0; ii < _dirty.size(); ii++) {
Rectangle r = (Rectangle)_dirty.get(ii);
for (int jj = ii - 1; jj >= 0; jj--) {
Rectangle r = (Rectangle)_dirty.get(jj);
if (mr.intersects(r)) {
// remove the overlapping rectangle from the list
_dirty.remove(ii--);
_dirty.remove(jj);
ii--;
// grow the merged dirty rectangle
mr.add(r);
}