diff options
author | Justin Clark-Casey (justincc) | 2010-06-07 18:49:22 +0100 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2010-06-07 19:14:40 +0100 |
commit | 912f0c7fde1d3ec159b9f9b61136a2ac64e7d9dd (patch) | |
tree | 7320f592a1400241bec3855d48ba3036f5033744 /OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |
parent | reapply fix for double sending of attachment update on standalone region cros... (diff) | |
download | opensim-SC_OLD-912f0c7fde1d3ec159b9f9b61136a2ac64e7d9dd.zip opensim-SC_OLD-912f0c7fde1d3ec159b9f9b61136a2ac64e7d9dd.tar.gz opensim-SC_OLD-912f0c7fde1d3ec159b9f9b61136a2ac64e7d9dd.tar.bz2 opensim-SC_OLD-912f0c7fde1d3ec159b9f9b61136a2ac64e7d9dd.tar.xz |
Stop some hud components disappearing on region crossings
If viewers (or at least, Linden Viewer 1.23.5) receive child hud object updates before the root prim, then the children are not displayed.
Updates were being queued in LLClientView in the right order (root first) but were being sent in a random order since they were all at the same prioritization
This commit prioritizes the root prim of a hud to its highest level when queued.
I'm not sure if the periodic reprioritization triggered via ScenePresence might reset this, but boosting priority appears to work so far.
Also committed is a belt and braces mechanism in LLClientView to prevent child hud prim being sent out before their root, but since this doesn't appear to be needed it is currently commented out.
Diffstat (limited to 'OpenSim/Region/Framework/Scenes/SceneObjectPart.cs')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index 33624a2..479ee4d 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -2929,10 +2929,33 @@ namespace OpenSim.Region.Framework.Scenes | |||
2929 | //isattachment = ParentGroup.RootPart.IsAttachment; | 2929 | //isattachment = ParentGroup.RootPart.IsAttachment; |
2930 | 2930 | ||
2931 | byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A}; | 2931 | byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A}; |
2932 | remoteClient.SendPrimitiveToClient(new SendPrimitiveData(m_regionHandle, m_parentGroup.GetTimeDilation(), LocalId, m_shape, | 2932 | |
2933 | lPos, Velocity, Acceleration, RotationOffset, AngularVelocity, clientFlags, m_uuid, _ownerID, | 2933 | double priority = ParentGroup.GetUpdatePriority(remoteClient); |
2934 | m_text, color, _parentID, m_particleSystem, m_clickAction, (byte)m_material, m_TextureAnimation, IsAttachment, | 2934 | if (IsRoot && IsAttachment) |
2935 | AttachmentPoint,FromItemID, Sound, SoundGain, SoundFlags, SoundRadius, ParentGroup.GetUpdatePriority(remoteClient))); | 2935 | { |
2936 | if (double.MinValue == priority) | ||
2937 | { | ||
2938 | m_log.WarnFormat( | ||
2939 | "[SOP]: Couldn't raise update priority of root part for attachment {0} {1} because priority is already highest value", | ||
2940 | Name, LocalId); | ||
2941 | } | ||
2942 | else | ||
2943 | { | ||
2944 | priority = double.MinValue; | ||
2945 | } | ||
2946 | } | ||
2947 | |||
2948 | remoteClient.SendPrimitiveToClient( | ||
2949 | new SendPrimitiveData(m_regionHandle, m_parentGroup.GetTimeDilation(), LocalId, m_shape, | ||
2950 | lPos, Velocity, Acceleration, RotationOffset, AngularVelocity, clientFlags, m_uuid, _ownerID, | ||
2951 | m_text, color, _parentID, m_particleSystem, m_clickAction, (byte)m_material, m_TextureAnimation, IsAttachment, | ||
2952 | AttachmentPoint,FromItemID, Sound, SoundGain, SoundFlags, SoundRadius, priority)); | ||
2953 | |||
2954 | // if (IsRoot && IsAttachment) | ||
2955 | // { | ||
2956 | // ScenePresence sp = ParentGroup.Scene.GetScenePresence(remoteClient.AgentId); | ||
2957 | // remoteClient.ReprioritizeUpdates(StateUpdateTypes.PrimitiveFull, sp.UpdatePriority); | ||
2958 | // } | ||
2936 | } | 2959 | } |
2937 | 2960 | ||
2938 | /// <summary> | 2961 | /// <summary> |