/// <summary> /// Starts the effect. /// </summary> /// <param name="switchEffect">The switch effect.</param> /// <param name="timeToSwitch">The time to switch.</param> private void StartEffect(ISceneSwitchEffect switchEffect, float timeToSwitch) { if (null == switchEffect) throw new ArgumentNullException("switchEffect"); if (timeToSwitch < 0.05f) throw new ArgumentException("Scene switch effect should be at least 50 ms length", "timeToSwitch"); // if(_oldEffectTarget!=null){ _oldEffectTarget.Dispose(); } _oldEffectTarget = _effectTarget; //2012/10/11 Neio , turn off mipmap PresentationParameters pp = graphics.GraphicsDevice.PresentationParameters; _effectTarget = new RenderTarget2D(graphics.GraphicsDevice, pp.BackBufferWidth, pp.BackBufferHeight, false, pp.BackBufferFormat, DepthFormat.Depth24Stencil8); //2. Create player targeted this effect... _switchEffectPlayer = new SceneSwitchEffectPlayer(switchEffect, timeToSwitch, _effectTarget, _oldEffectTarget); }
protected override void Update(GameTime gameTime) { base.Update(gameTime); float timeDelta = (float)(gameTime.ElapsedGameTime.TotalMilliseconds / 1000); _script.Update(timeDelta); if (CurrentScene != null) { shadow.AddRoot(CurrentScene); shadow.Update(timeDelta); shadow.Clear(); } if (null != _switchEffectPlayer) { if (!_switchEffectPlayer.Update((float)(gameTime.ElapsedGameTime.TotalMilliseconds/1000))) { _switchEffectPlayer.Dispose(); _switchEffectPlayer = null; } } }