Patch from nvanderh: handle dirtying properly if our bounds change between

frames.


git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@86 ed5b42cb-e716-0410-a449-f6a68f950b19
This commit is contained in:
Michael Bayne
2006-12-05 06:21:33 +00:00
parent e74970ac1e
commit 562b1f11ab
@@ -98,11 +98,23 @@ public class MultiFrameAnimation extends Animation
_finished = true;
} else if (fidx != _fidx) {
// make a note of our current bounds
Rectangle dirty = new Rectangle(_bounds);
// update our frame index and bounds
setFrameIndex(fidx);
// and have ourselves repainted
invalidate();
if (_mgr != null) {
// if our new bounds intersect our old bounds, grow a single
// dirty rectangle to incorporate them both, otherwise
// invalidate them separately
if (_bounds.intersects(dirty)) {
dirty.add(_bounds);
} else {
_mgr.getRegionManager().invalidateRegion(_bounds);
}
_mgr.getRegionManager().addDirtyRegion(dirty);
}
}
}