Implement suspended updates - When an operation is occurring on lots of prims in a single group, don't schedule any updates until the operation has completed. This makes things like llSetAlpha(LINK_SET,0.0,ALL_SIDES); a *lot* faster, more efficient and less buggy, and also makes unlinking a lot better. Linking is still treacherous.. this needs to be analysed.

This commit is contained in:
Tom Grimshaw
2010-05-29 02:10:34 -07:00
parent 3a5d379db8
commit e3dac1292e
5 changed files with 168 additions and 39 deletions

View File

@@ -2724,7 +2724,10 @@ namespace OpenSim.Region.Framework.Scenes
if (m_parentGroup != null)
{
m_parentGroup.QueueForUpdateCheck();
if (!m_parentGroup.areUpdatesSuspended)
{
m_parentGroup.QueueForUpdateCheck();
}
}
int timeNow = Util.UnixTimeSinceEpoch();
@@ -4450,8 +4453,9 @@ namespace OpenSim.Region.Framework.Scenes
{
m_shape.TextureEntry = textureEntry;
TriggerScriptChangedEvent(Changed.TEXTURE);
m_updateFlag = 1;
ParentGroup.HasGroupChanged = true;
//This is madness..
//ParentGroup.ScheduleGroupForFullUpdate();
//This is sparta