added experimental method of trying to relieve missing prim problem (by adding a limit of the number of prim update packets sent in each update loop).

This commit is contained in:
MW
2007-09-06 14:15:16 +00:00
parent 3586beb81b
commit 804e87861b
4 changed files with 123 additions and 13 deletions

View File

@@ -391,14 +391,14 @@ namespace OpenSim.Region.Environment.Scenes
{
if (m_updateFlag == 1) //some change has been made so update the clients
{
SendTerseUpdateToAllClients();
AddTerseUpdateToAllAvatars();
ClearUpdateSchedule();
}
else
{
if (m_updateFlag == 2) // is a new prim, just created/reloaded or has major changes
{
SendFullUpdateToAllClients();
AddFullUpdateToAllAvatars();
ClearUpdateSchedule();
}
}
@@ -603,6 +603,20 @@ namespace OpenSim.Region.Environment.Scenes
#endregion
#region Client Update Methods
public void AddFullUpdateToAllAvatars()
{
List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars();
for (int i = 0; i < avatars.Count; i++)
{
avatars[i].AddFullPart(this);
}
}
public void AddFullUpdateToAvatar(ScenePresence presence)
{
presence.AddFullPart(this);
}
/// <summary>
///
/// </summary>
@@ -649,6 +663,22 @@ namespace OpenSim.Region.Environment.Scenes
m_text, ParentID, this.m_particleSystem, lRot);
}
/// Terse updates
public void AddTerseUpdateToAllAvatars()
{
List<ScenePresence> avatars = this.m_parentGroup.RequestSceneAvatars();
for (int i = 0; i < avatars.Count; i++)
{
avatars[i].AddTersePart(this);
}
}
public void AddTerseUpdateToAvatar(ScenePresence presence)
{
presence.AddTersePart(this);
}
/// <summary>
///
/// </summary>