diff --git a/src/java/com/threerings/jme/effect/FadeInOutEffect.java b/src/java/com/threerings/jme/effect/FadeInOutEffect.java index 65a4a3abc..5ad4b2d88 100644 --- a/src/java/com/threerings/jme/effect/FadeInOutEffect.java +++ b/src/java/com/threerings/jme/effect/FadeInOutEffect.java @@ -62,6 +62,13 @@ public class FadeInOutEffect extends Node color.r, color.g, color.b, alphaFunc.getValue(0)); _alphaFunc = alphaFunc; + DisplaySystem ds = DisplaySystem.getDisplaySystem(); + _astate = ds.getRenderer().createAlphaState(); + _astate.setBlendEnabled(true); + _astate.setSrcFunction(AlphaState.SB_SRC_ALPHA); + _astate.setDstFunction(AlphaState.DB_ONE_MINUS_SRC_ALPHA); + _astate.setEnabled(true); + if (quad != null) { setQuad(quad); } @@ -69,14 +76,6 @@ public class FadeInOutEffect extends Node setRenderQueueMode(Renderer.QUEUE_ORTHO); setZOrder(overUI ? -1 : 1); - DisplaySystem ds = DisplaySystem.getDisplaySystem(); - AlphaState astate = ds.getRenderer().createAlphaState(); - astate.setBlendEnabled(true); - astate.setSrcFunction(AlphaState.SB_SRC_ALPHA); - astate.setDstFunction(AlphaState.DB_ONE_MINUS_SRC_ALPHA); - astate.setEnabled(true); - setRenderState(astate); - updateRenderState(); } @@ -87,6 +86,7 @@ public class FadeInOutEffect extends Node { attachChild(quad); quad.setDefaultColor(_color); + quad.setRenderState(_astate); } /** @@ -137,12 +137,13 @@ public class FadeInOutEffect extends Node // create a quad the size of the screen DisplaySystem ds = DisplaySystem.getDisplaySystem(); float width = ds.getWidth(), height = ds.getHeight(); - Quad curtain = new Quad("curtain", width, height); + Quad curtain = new Quad("curtain" + hashCode(), width, height); curtain.setLocalTranslation(new Vector3f(width/2, height/2, 0f)); return curtain; } protected ColorRGBA _color; + protected AlphaState _astate; protected TimeFunction _alphaFunc; protected boolean _paused; } diff --git a/src/java/com/threerings/jme/util/TimeFunction.java b/src/java/com/threerings/jme/util/TimeFunction.java index e3547b260..73afaa0f5 100644 --- a/src/java/com/threerings/jme/util/TimeFunction.java +++ b/src/java/com/threerings/jme/util/TimeFunction.java @@ -76,6 +76,12 @@ public abstract class TimeFunction return _elapsed >= _duration; } + /** Generates a string representation of this instance. */ + public String toString () + { + return _start + " to " + _end + ", " + _elapsed + " of " + _duration; + } + /** * This must be implemented by our derived class to compute our value given * the currently stored {@link #_elapsed} time.