Merge branch 'master' into careminster

Conflicts:
	OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
	bin/OpenMetaverse.StructuredData.XML
	bin/OpenMetaverse.XML
	bin/OpenMetaverseTypes.XML
This commit is contained in:
Melanie
2013-04-21 14:11:39 +01:00
16 changed files with 21708 additions and 21453 deletions

View File

@@ -5005,6 +5005,14 @@ namespace OpenSim.Region.Framework.Scenes
oldTex.DefaultTexture = fallbackOldFace;
}
// Materials capable viewers can send a ObjectImage packet
// when nothing in TE has changed. MaterialID should be updated
// by the RenderMaterials CAP handler, so updating it here may cause a
// race condtion. Therefore, if no non-materials TE fields have changed,
// we should ignore any changes and not update Shape.TextureEntry
bool otherFieldsChanged = false;
for (int i = 0 ; i < GetNumberOfSides(); i++)
{
@@ -5031,18 +5039,36 @@ namespace OpenSim.Region.Framework.Scenes
// Max change, skip the rest of testing
if (changeFlags == (Changed.TEXTURE | Changed.COLOR))
break;
if (!otherFieldsChanged)
{
if (oldFace.Bump != newFace.Bump) otherFieldsChanged = true;
if (oldFace.Fullbright != newFace.Fullbright) otherFieldsChanged = true;
if (oldFace.Glow != newFace.Glow) otherFieldsChanged = true;
if (oldFace.MediaFlags != newFace.MediaFlags) otherFieldsChanged = true;
if (oldFace.OffsetU != newFace.OffsetU) otherFieldsChanged = true;
if (oldFace.OffsetV != newFace.OffsetV) otherFieldsChanged = true;
if (oldFace.RepeatU != newFace.RepeatU) otherFieldsChanged = true;
if (oldFace.RepeatV != newFace.RepeatV) otherFieldsChanged = true;
if (oldFace.Rotation != newFace.Rotation) otherFieldsChanged = true;
if (oldFace.Shiny != newFace.Shiny) otherFieldsChanged = true;
if (oldFace.TexMapType != newFace.TexMapType) otherFieldsChanged = true;
}
}
m_shape.TextureEntry = newTex.GetBytes();
if (changeFlags != 0)
TriggerScriptChangedEvent(changeFlags);
UpdateFlag = UpdateRequired.FULL;
ParentGroup.HasGroupChanged = true;
if (changeFlags != 0 || otherFieldsChanged)
{
m_shape.TextureEntry = newTex.GetBytes();
if (changeFlags != 0)
TriggerScriptChangedEvent(changeFlags);
UpdateFlag = UpdateRequired.FULL;
ParentGroup.HasGroupChanged = true;
//This is madness..
//ParentGroup.ScheduleGroupForFullUpdate();
//This is sparta
ScheduleFullUpdate();
//This is madness..
//ParentGroup.ScheduleGroupForFullUpdate();
//This is sparta
ScheduleFullUpdate();
}
}