diff options
author | Justin Clark-Casey (justincc) | 2012-03-23 03:33:07 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-03-23 03:33:07 +0000 |
commit | 54887bf38623007d9148e651b1d08f6d6fca35e7 (patch) | |
tree | 30b16c24be22595d521f715c2fb0a936f9717b51 | |
parent | Add a scene maintenance thread in parallel to the heartbeat thread. The main... (diff) | |
download | opensim-SC_OLD-54887bf38623007d9148e651b1d08f6d6fca35e7.zip opensim-SC_OLD-54887bf38623007d9148e651b1d08f6d6fca35e7.tar.gz opensim-SC_OLD-54887bf38623007d9148e651b1d08f6d6fca35e7.tar.bz2 opensim-SC_OLD-54887bf38623007d9148e651b1d08f6d6fca35e7.tar.xz |
Add experimental SendPeriodicAppearanceUpdates = true/false setting to [Startup] in OpenSim.ini
On osgrid and other places, I have observed that manually sending appearance updates from the console often relieves grey avatar syndrome.
Despite hunting high and low, I haven't been able to find where this packet is sometimes being lost - it might be a persistent viewer bug for all I know.
Therefore, this experimental setting resends appearance data for everybody in the scene every 60 seconds. These packets are small and the viewer only fetches texture
data if it doesn't already have it.
Default is false.
-rw-r--r-- | OpenSim/Region/Framework/Scenes/Scene.cs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index 41e9bbc..5809508 100644 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs | |||
@@ -104,6 +104,11 @@ namespace OpenSim.Region.Framework.Scenes | |||
104 | public bool m_allowScriptCrossings; | 104 | public bool m_allowScriptCrossings; |
105 | public bool m_useFlySlow; | 105 | public bool m_useFlySlow; |
106 | 106 | ||
107 | /// <summary> | ||
108 | /// Temporarily setting to trigger appearance resends at 60 second intervals. | ||
109 | /// </summary> | ||
110 | public bool SendPeriodicAppearanceUpdates { get; set; } | ||
111 | |||
107 | protected float m_defaultDrawDistance = 255.0f; | 112 | protected float m_defaultDrawDistance = 255.0f; |
108 | public float DefaultDrawDistance | 113 | public float DefaultDrawDistance |
109 | { | 114 | { |
@@ -761,6 +766,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
761 | m_update_presences = startupConfig.GetInt( "UpdateAgentsEveryNFrames", m_update_presences); | 766 | m_update_presences = startupConfig.GetInt( "UpdateAgentsEveryNFrames", m_update_presences); |
762 | m_update_terrain = startupConfig.GetInt( "UpdateTerrainEveryNFrames", m_update_terrain); | 767 | m_update_terrain = startupConfig.GetInt( "UpdateTerrainEveryNFrames", m_update_terrain); |
763 | m_update_temp_cleaning = startupConfig.GetInt( "UpdateTempCleaningEveryNFrames", m_update_temp_cleaning); | 768 | m_update_temp_cleaning = startupConfig.GetInt( "UpdateTempCleaningEveryNFrames", m_update_temp_cleaning); |
769 | |||
770 | SendPeriodicAppearanceUpdates = startupConfig.GetBoolean("SendPeriodicAppearanceUpdates", SendPeriodicAppearanceUpdates); | ||
764 | } | 771 | } |
765 | 772 | ||
766 | #endregion Region Config | 773 | #endregion Region Config |
@@ -1296,6 +1303,16 @@ namespace OpenSim.Region.Framework.Scenes | |||
1296 | }); | 1303 | }); |
1297 | } | 1304 | } |
1298 | 1305 | ||
1306 | if (SendPeriodicAppearanceUpdates && MaintenanceRun % 60 == 0) | ||
1307 | { | ||
1308 | m_log.DebugFormat("[SCENE]: Sending periodic appearance updates"); | ||
1309 | |||
1310 | if (AvatarFactory != null) | ||
1311 | { | ||
1312 | ForEachRootScenePresence(sp => AvatarFactory.SendAppearance(sp.UUID)); | ||
1313 | } | ||
1314 | } | ||
1315 | |||
1299 | Watchdog.UpdateThread(); | 1316 | Watchdog.UpdateThread(); |
1300 | 1317 | ||
1301 | previousMaintenanceTick = m_lastMaintenanceTick; | 1318 | previousMaintenanceTick = m_lastMaintenanceTick; |