diff options
author | Dan Lake | 2011-11-11 17:16:52 -0800 |
---|---|---|
committer | Dan Lake | 2011-11-11 17:16:52 -0800 |
commit | 5fd17491509fb4b939666cdc37951e213f054242 (patch) | |
tree | 966baad538ac254ca1e1ba6cd83cc6487bf2726d /OpenSim/Region/Framework/Scenes/ScenePresence.cs | |
parent | doh - correct build break (diff) | |
download | opensim-SC-5fd17491509fb4b939666cdc37951e213f054242.zip opensim-SC-5fd17491509fb4b939666cdc37951e213f054242.tar.gz opensim-SC-5fd17491509fb4b939666cdc37951e213f054242.tar.bz2 opensim-SC-5fd17491509fb4b939666cdc37951e213f054242.tar.xz |
Remove SceneViewer from ScenePresence to reduce quadruple queueing of
prim update to only triple queuing. Existing method was:
1. Schedule prim for update, adding to scene update list
2. Update on SOGs during heartbeat queues update onto each SceneViewer
3. Update on SPs during heartbeat queues update onto each IClientAPI
4. ProcessEntityUpdates queues updates into UDP send stack
Now the SceneViewer has been eliminated so updates are scheduled at any
time and then put onto the IClientAPI priority queues immediately during
SceneGraph.UpdateObjectGroups.
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 3fee642..a4cb7cf 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -135,7 +135,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
135 | private Vector3 m_lastPosition; | 135 | private Vector3 m_lastPosition; |
136 | private Quaternion m_lastRotation; | 136 | private Quaternion m_lastRotation; |
137 | private Vector3 m_lastVelocity; | 137 | private Vector3 m_lastVelocity; |
138 | //private int m_lastTerseSent; | ||
139 | 138 | ||
140 | private Vector3? m_forceToApply; | 139 | private Vector3? m_forceToApply; |
141 | private int m_userFlags; | 140 | private int m_userFlags; |
@@ -644,14 +643,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
644 | set { m_health = value; } | 643 | set { m_health = value; } |
645 | } | 644 | } |
646 | 645 | ||
647 | private ISceneViewer m_sceneViewer; | ||
648 | |||
649 | public ISceneViewer SceneViewer | ||
650 | { | ||
651 | get { return m_sceneViewer; } | ||
652 | private set { m_sceneViewer = value; } | ||
653 | } | ||
654 | |||
655 | public void AdjustKnownSeeds() | 646 | public void AdjustKnownSeeds() |
656 | { | 647 | { |
657 | Dictionary<ulong, string> seeds; | 648 | Dictionary<ulong, string> seeds; |
@@ -755,7 +746,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
755 | AttachmentsSyncLock = new Object(); | 746 | AttachmentsSyncLock = new Object(); |
756 | 747 | ||
757 | m_sendCourseLocationsMethod = SendCoarseLocationsDefault; | 748 | m_sendCourseLocationsMethod = SendCoarseLocationsDefault; |
758 | SceneViewer = new SceneViewer(this); | ||
759 | Animator = new ScenePresenceAnimator(this); | 749 | Animator = new ScenePresenceAnimator(this); |
760 | PresenceType = type; | 750 | PresenceType = type; |
761 | DrawDistance = world.DefaultDrawDistance; | 751 | DrawDistance = world.DefaultDrawDistance; |
@@ -866,16 +856,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
866 | return m_scene.Permissions.GenerateClientFlags(m_uuid, ObjectID); | 856 | return m_scene.Permissions.GenerateClientFlags(m_uuid, ObjectID); |
867 | } | 857 | } |
868 | 858 | ||
869 | /// <summary> | ||
870 | /// Send updates to the client about prims which have been placed on the update queue. We don't | ||
871 | /// necessarily send updates for all the parts on the queue, e.g. if an updates with a more recent | ||
872 | /// timestamp has already been sent. | ||
873 | /// </summary> | ||
874 | public void SendPrimUpdates() | ||
875 | { | ||
876 | SceneViewer.SendPrimUpdates(); | ||
877 | } | ||
878 | |||
879 | #region Status Methods | 859 | #region Status Methods |
880 | 860 | ||
881 | /// <summary> | 861 | /// <summary> |
@@ -2412,10 +2392,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2412 | const float ROTATION_TOLERANCE = 0.01f; | 2392 | const float ROTATION_TOLERANCE = 0.01f; |
2413 | const float VELOCITY_TOLERANCE = 0.001f; | 2393 | const float VELOCITY_TOLERANCE = 0.001f; |
2414 | const float POSITION_TOLERANCE = 0.05f; | 2394 | const float POSITION_TOLERANCE = 0.05f; |
2415 | //const int TIME_MS_TOLERANCE = 3000; | ||
2416 | |||
2417 | if (!sendingPrims) | ||
2418 | Util.FireAndForget(delegate { sendingPrims = true; SendPrimUpdates(); sendingPrims = false; }); | ||
2419 | 2395 | ||
2420 | if (IsChildAgent == false) | 2396 | if (IsChildAgent == false) |
2421 | { | 2397 | { |
@@ -2427,7 +2403,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2427 | if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || | 2403 | if (!Rotation.ApproxEquals(m_lastRotation, ROTATION_TOLERANCE) || |
2428 | !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || | 2404 | !Velocity.ApproxEquals(m_lastVelocity, VELOCITY_TOLERANCE) || |
2429 | !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE)) | 2405 | !m_pos.ApproxEquals(m_lastPosition, POSITION_TOLERANCE)) |
2430 | //Environment.TickCount - m_lastTerseSent > TIME_MS_TOLERANCE) | ||
2431 | { | 2406 | { |
2432 | SendTerseUpdateToAllClients(); | 2407 | SendTerseUpdateToAllClients(); |
2433 | 2408 | ||
@@ -2435,7 +2410,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
2435 | m_lastPosition = m_pos; | 2410 | m_lastPosition = m_pos; |
2436 | m_lastRotation = Rotation; | 2411 | m_lastRotation = Rotation; |
2437 | m_lastVelocity = Velocity; | 2412 | m_lastVelocity = Velocity; |
2438 | //m_lastTerseSent = Environment.TickCount; | ||
2439 | } | 2413 | } |
2440 | 2414 | ||
2441 | // followed suggestion from mic bowman. reversed the two lines below. | 2415 | // followed suggestion from mic bowman. reversed the two lines below. |
@@ -3418,8 +3392,6 @@ namespace OpenSim.Region.Framework.Scenes | |||
3418 | // unsetting the elapsed callback should be enough to allow for cleanup however. | 3392 | // unsetting the elapsed callback should be enough to allow for cleanup however. |
3419 | // m_reprioritizationTimer.Dispose(); | 3393 | // m_reprioritizationTimer.Dispose(); |
3420 | 3394 | ||
3421 | SceneViewer.Close(); | ||
3422 | |||
3423 | RemoveFromPhysicalScene(); | 3395 | RemoveFromPhysicalScene(); |
3424 | Animator.Close(); | 3396 | Animator.Close(); |
3425 | Animator = null; | 3397 | Animator = null; |