From 5544701e5a71d8ad568cfcebd029d63d01f44f63 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Thu, 24 Mar 2005 04:50:52 +0000 Subject: [PATCH] Let our caller know if our fade level actually changed. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3427 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../media/animation/FadeAnimation.java | 7 ++++--- .../threerings/media/effects/FadeEffect.java | 20 ++++++++++++------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/java/com/threerings/media/animation/FadeAnimation.java b/src/java/com/threerings/media/animation/FadeAnimation.java index 424c593a8..c276a0931 100644 --- a/src/java/com/threerings/media/animation/FadeAnimation.java +++ b/src/java/com/threerings/media/animation/FadeAnimation.java @@ -54,9 +54,10 @@ public abstract class FadeAnimation extends Animation // documentation inherited public void tick (long timestamp) { - _effect.tick(timestamp); - _finished = _effect.finished(); - invalidate(); + if (_effect.tick(timestamp)) { + _finished = _effect.finished(); + invalidate(); + } } // documentation inherited diff --git a/src/java/com/threerings/media/effects/FadeEffect.java b/src/java/com/threerings/media/effects/FadeEffect.java index 9da8f4819..a8b20b79d 100644 --- a/src/java/com/threerings/media/effects/FadeEffect.java +++ b/src/java/com/threerings/media/effects/FadeEffect.java @@ -52,18 +52,24 @@ public class FadeEffect (_alpha >= _target) : (_alpha <= _target); } - public void tick (long tickStamp) + public boolean tick (long tickStamp) { // figure out the current alpha long msecs = tickStamp - _initStamp; - _alpha = _startAlpha + (msecs * _step); - if (_alpha < 0.0f) { - _alpha = 0.0f; - } else if (_alpha > 1.0f) { - _alpha = 1.0f; + float alpha = _startAlpha + (msecs * _step); + if (alpha < 0.0f) { + alpha = 0.0f; + } else if (alpha > 1.0f) { + alpha = 1.0f; } - _comp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, _alpha); + if (_alpha != alpha) { + _alpha = alpha; + _comp = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, _alpha); + return true; + } + + return false; } public void beforePaint (Graphics2D gfx)