aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJustin Clark-Casey (justincc)2012-03-23 03:33:07 +0000
committerJustin Clark-Casey (justincc)2012-03-23 03:33:07 +0000
commit54887bf38623007d9148e651b1d08f6d6fca35e7 (patch)
tree30b16c24be22595d521f715c2fb0a936f9717b51
parentAdd a scene maintenance thread in parallel to the heartbeat thread. The main... (diff)
downloadopensim-SC-54887bf38623007d9148e651b1d08f6d6fca35e7.zip
opensim-SC-54887bf38623007d9148e651b1d08f6d6fca35e7.tar.gz
opensim-SC-54887bf38623007d9148e651b1d08f6d6fca35e7.tar.bz2
opensim-SC-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.cs17
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;