aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework/Scenes/Scene.cs
diff options
context:
space:
mode:
authorJohn Hurliman2009-10-27 16:24:43 -0700
committerJohn Hurliman2009-10-27 16:24:43 -0700
commit0c466b28bbfeac8a4e0c3c61038290621c4f9f4f (patch)
tree1647b1d98633d0f0e1aad4963522d5ed250e04ef /OpenSim/Region/Framework/Scenes/Scene.cs
parentMerge branch 'master' of ssh://opensimulator.org/var/git/opensim (diff)
downloadopensim-SC_OLD-0c466b28bbfeac8a4e0c3c61038290621c4f9f4f.zip
opensim-SC_OLD-0c466b28bbfeac8a4e0c3c61038290621c4f9f4f.tar.gz
opensim-SC_OLD-0c466b28bbfeac8a4e0c3c61038290621c4f9f4f.tar.bz2
opensim-SC_OLD-0c466b28bbfeac8a4e0c3c61038290621c4f9f4f.tar.xz
Move the calculation of time dilation from the scene to the physics engine. The scene is still the one reporting dilation so this does not break the API or remove flexibility, but it gets the calculation happening in the right place for the normal OpenSim usage. The actual calculation of physics time dilation probably needs tweaking
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/Scene.cs')
-rw-r--r--OpenSim/Region/Framework/Scenes/Scene.cs19
1 files changed, 6 insertions, 13 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs
index 7c3875d..3b8cd1e 100644
--- a/OpenSim/Region/Framework/Scenes/Scene.cs
+++ b/OpenSim/Region/Framework/Scenes/Scene.cs
@@ -135,6 +135,11 @@ namespace OpenSim.Region.Framework.Scenes
135 protected SceneCommunicationService m_sceneGridService; 135 protected SceneCommunicationService m_sceneGridService;
136 public bool loginsdisabled = true; 136 public bool loginsdisabled = true;
137 137
138 public float TimeDilation
139 {
140 get { return m_sceneGraph.PhysicsScene.TimeDilation; }
141 }
142
138 public SceneCommunicationService SceneGridService 143 public SceneCommunicationService SceneGridService
139 { 144 {
140 get { return m_sceneGridService; } 145 get { return m_sceneGridService; }
@@ -1094,7 +1099,7 @@ namespace OpenSim.Region.Framework.Scenes
1094 // if (m_frame%m_update_avatars == 0) 1099 // if (m_frame%m_update_avatars == 0)
1095 // UpdateInWorldTime(); 1100 // UpdateInWorldTime();
1096 StatsReporter.AddPhysicsFPS(physicsFPS); 1101 StatsReporter.AddPhysicsFPS(physicsFPS);
1097 StatsReporter.AddTimeDilation(m_timedilation); 1102 StatsReporter.AddTimeDilation(TimeDilation);
1098 StatsReporter.AddFPS(1); 1103 StatsReporter.AddFPS(1);
1099 StatsReporter.AddInPackets(0); 1104 StatsReporter.AddInPackets(0);
1100 StatsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount()); 1105 StatsReporter.SetRootAgents(m_sceneGraph.GetRootAgentCount());
@@ -1141,18 +1146,6 @@ namespace OpenSim.Region.Framework.Scenes
1141 } 1146 }
1142 finally 1147 finally
1143 { 1148 {
1144 //updateLock.ReleaseMutex();
1145 // Get actual time dilation
1146 float tmpval = (m_timespan / (float)SinceLastFrame.TotalSeconds);
1147
1148 // If actual time dilation is greater then one, we're catching up, so subtract
1149 // the amount that's greater then 1 from the time dilation
1150 if (tmpval > 1.0)
1151 {
1152 tmpval = tmpval - (tmpval - 1.0f);
1153 }
1154 m_timedilation = tmpval;
1155
1156 m_lastupdate = DateTime.UtcNow; 1149 m_lastupdate = DateTime.UtcNow;
1157 } 1150 }
1158 maintc = Environment.TickCount - maintc; 1151 maintc = Environment.TickCount - maintc;