//This renders the frame protected override void OnRenderFrame(FrameEventArgs e) { Program.MouseMovement(); Program.Renderer.FrameRate = RenderFrequency; //Do not do anything whilst loading if (currentlyLoading) { return; } ProcessEvents(); double TimeElapsed = CPreciseTimer.GetElapsedTime(); if (Program.CurrentRouteFile != null) { DateTime d = DateTime.Now; Game.SecondsSinceMidnight = (double)(3600 * d.Hour + 60 * d.Minute + d.Second) + 0.001 * (double)d.Millisecond; ObjectManager.UpdateAnimatedWorldObjects(TimeElapsed, false); World.UpdateAbsoluteCamera(TimeElapsed); Program.Renderer.UpdateVisibility(Program.Renderer.CameraTrackFollower.TrackPosition + Program.Renderer.Camera.Alignment.Position.Z); Program.Sounds.Update(TimeElapsed, SoundModels.Linear); } Program.Renderer.Lighting.UpdateLighting(Program.CurrentRoute.SecondsSinceMidnight, Program.CurrentRoute.LightDefinitions); Program.Renderer.RenderScene(TimeElapsed); MessageManager.UpdateMessages(); SwapBuffers(); }
//This renders the frame protected override void OnRenderFrame(FrameEventArgs e) { Program.MouseMovement(); Program.Renderer.FrameRate = RenderFrequency; //Do not do anything whilst loading if (currentlyLoading) { return; } ProcessEvents(); double TimeElapsed = CPreciseTimer.GetElapsedTime(); if (Program.CpuReducedMode) { Thread.Sleep(250); } else { Thread.Sleep(1); if (ReducedModeEnteringTime == 0) { ReducedModeEnteringTime = 2500; } if (Program.Renderer.Camera.AlignmentDirection.Position.X != 0.0 | Program.Renderer.Camera.AlignmentDirection.Position.Y != 0.0 | Program.Renderer.Camera.AlignmentDirection.Position.Z != 0.0 | Program.Renderer.Camera.AlignmentDirection.Pitch != 0.0 | Program.Renderer.Camera.AlignmentDirection.Yaw != 0.0 | Program.Renderer.Camera.AlignmentDirection.Roll != 0.0 | Program.Renderer.Camera.AlignmentDirection.TrackPosition != 0.0 | Program.Renderer.Camera.AlignmentDirection.Zoom != 0.0) { ReducedModeEnteringTime = 2500; } //Automatically enter reduced CPU mode if appropriate if (Program.CpuAutomaticMode && Program.CpuReducedMode == false) { ReducedModeEnteringTime -= TimeElapsed; if (ReducedModeEnteringTime <= 0) { Program.CpuReducedMode = true; ReducedModeEnteringTime = 0; } } } if (Program.CurrentRouteFile != null) { DateTime d = DateTime.Now; Game.SecondsSinceMidnight = (double)(3600 * d.Hour + 60 * d.Minute + d.Second) + 0.001 * (double)d.Millisecond; ObjectManager.UpdateAnimatedWorldObjects(TimeElapsed, false); World.UpdateAbsoluteCamera(TimeElapsed); Program.Renderer.UpdateVisibility(Program.Renderer.CameraTrackFollower.TrackPosition + Program.Renderer.Camera.Alignment.Position.Z); Program.Sounds.Update(TimeElapsed, SoundModels.Linear); } Program.Renderer.Lighting.UpdateLighting(Program.CurrentRoute.SecondsSinceMidnight, Program.CurrentRoute.LightDefinitions); Program.Renderer.RenderScene(TimeElapsed); MessageManager.UpdateMessages(); SwapBuffers(); }