/// <summary> /// 各フレームの処理を行います。 /// </summary> private void UpdateFrame(object sender, EventArgs e) { // アイドル時間を強制的に発生させます。 using (new ActionOnDispose(PrepareToNextRender)) { var diff = WaitNextFrame(); // 各フレームの処理を行います。 EnterFrame.SafeRaiseEvent(this, new FrameEventArgs(diff)); } }
/// <summary> /// フレーム枚の更新処理を行います。 /// </summary> protected virtual void OnEnterFrame(EnterFrameEventArgs e) { EnterFrame.SafeRaiseEvent(this, e); // シナリオの更新を行います。 if (Scenario != null) { Scenario.DoEnterFrame(e.ElapsedTime, e.StateObject); } // 行列の更新 UpdateTransform(); }
/// <summary> /// 各フレームに必要な処理を行います。 /// </summary> private void DoEnterFrame(double diff, bool frameSkipped) { EnterFrame.SafeRaiseEvent(this, new FrameEventArgs(diff, frameSkipped)); }
/// <summary> /// フレーム枚の更新処理を行います。 /// </summary> protected virtual void OnEnterFrame(EnterFrameEventArgs e) { EnterFrame.SafeRaiseEvent(this, e); }