diff options
author | Teravus Ovares | 2009-07-17 07:28:09 +0000 |
---|---|---|
committer | Teravus Ovares | 2009-07-17 07:28:09 +0000 |
commit | f74622c65fe8934d5f3b69975e8dba24d02985fe (patch) | |
tree | ff0bd8a26de159686987b7d57820b614429e5afa /OpenSim/Region/Framework/Scenes/Scene.cs | |
parent | Revert the nonessential part of r10033 to restore sanity to trampolines (diff) | |
download | opensim-SC-f74622c65fe8934d5f3b69975e8dba24d02985fe.zip opensim-SC-f74622c65fe8934d5f3b69975e8dba24d02985fe.tar.gz opensim-SC-f74622c65fe8934d5f3b69975e8dba24d02985fe.tar.bz2 opensim-SC-f74622c65fe8934d5f3b69975e8dba24d02985fe.tar.xz |
* Change the order of Update so Physics processes a frame before the scene manipulates the physics Scene.cs
* Remove the draconic locking around adding an avatar to the Scene
* Handle an extreme error case when border crossing fails and user uses map to teleport to a different region on the same instance causing control commands to go to a child agent.
* Make the Set Appearance method use the proper 'remove from physics scene' method.
* It *may* help border crossings.
* It *may* help the 'on avatar rez' lag, that people have been seeing the past week.
* It may also cause physics to crash more often on failed teleports (though.. I think I got the cases covered).
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 38 |
1 files changed, 20 insertions, 18 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 660ee8d..81d54e7 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -901,24 +901,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
901 | if (m_frame == Int32.MaxValue) | 901 | if (m_frame == Int32.MaxValue) |
902 | m_frame = 0; | 902 | m_frame = 0; |
903 | 903 | ||
904 | physicsMS2 = Environment.TickCount; | 904 | |
905 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | ||
906 | m_sceneGraph.UpdatePreparePhysics(); | ||
907 | physicsMS2 = Environment.TickCount - physicsMS2; | ||
908 | |||
909 | if (m_frame % m_update_entitymovement == 0) | ||
910 | m_sceneGraph.UpdateEntityMovement(); | ||
911 | |||
912 | physicsMS = Environment.TickCount; | ||
913 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | ||
914 | physicsFPS = m_sceneGraph.UpdatePhysics( | ||
915 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) | ||
916 | ); | ||
917 | if (m_frame % m_update_physics == 0 && SynchronizeScene != null) | ||
918 | SynchronizeScene(this); | ||
919 | |||
920 | physicsMS = Environment.TickCount - physicsMS; | ||
921 | physicsMS += physicsMS2; | ||
922 | 905 | ||
923 | otherMS = Environment.TickCount; | 906 | otherMS = Environment.TickCount; |
924 | // run through all entities looking for updates (slow) | 907 | // run through all entities looking for updates (slow) |
@@ -949,6 +932,25 @@ namespace OpenSim.Region.Framework.Scenes | |||
949 | if (m_frame % m_update_presences == 0) | 932 | if (m_frame % m_update_presences == 0) |
950 | m_sceneGraph.UpdatePresences(); | 933 | m_sceneGraph.UpdatePresences(); |
951 | 934 | ||
935 | physicsMS2 = Environment.TickCount; | ||
936 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | ||
937 | m_sceneGraph.UpdatePreparePhysics(); | ||
938 | physicsMS2 = Environment.TickCount - physicsMS2; | ||
939 | |||
940 | if (m_frame % m_update_entitymovement == 0) | ||
941 | m_sceneGraph.UpdateEntityMovement(); | ||
942 | |||
943 | physicsMS = Environment.TickCount; | ||
944 | if ((m_frame % m_update_physics == 0) && m_physics_enabled) | ||
945 | physicsFPS = m_sceneGraph.UpdatePhysics( | ||
946 | Math.Max(SinceLastFrame.TotalSeconds, m_timespan) | ||
947 | ); | ||
948 | if (m_frame % m_update_physics == 0 && SynchronizeScene != null) | ||
949 | SynchronizeScene(this); | ||
950 | |||
951 | physicsMS = Environment.TickCount - physicsMS; | ||
952 | physicsMS += physicsMS2; | ||
953 | |||
952 | // Delete temp-on-rez stuff | 954 | // Delete temp-on-rez stuff |
953 | if (m_frame % m_update_backup == 0) | 955 | if (m_frame % m_update_backup == 0) |
954 | CleanTempObjects(); | 956 | CleanTempObjects(); |