aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/ClientStack/Linden/UDP
diff options
context:
space:
mode:
authorMelanie2013-02-12 01:02:16 +0100
committerMelanie2013-02-12 01:02:16 +0100
commit04235e58e87ae42617111cad2884e42785914d4e (patch)
tree9cccb05ea7355be02d2e4d9bef5b9b1da3225afa /OpenSim/Region/ClientStack/Linden/UDP
parentMake keyframes use the sim's frame timer (diff)
downloadopensim-SC-04235e58e87ae42617111cad2884e42785914d4e.zip
opensim-SC-04235e58e87ae42617111cad2884e42785914d4e.tar.gz
opensim-SC-04235e58e87ae42617111cad2884e42785914d4e.tar.bz2
opensim-SC-04235e58e87ae42617111cad2884e42785914d4e.tar.xz
Push updates from keyframe directly to the front of the output queue rather
than through the update system.
Diffstat (limited to 'OpenSim/Region/ClientStack/Linden/UDP')
-rw-r--r--OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs20
1 files changed, 20 insertions, 0 deletions
diff --git a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
index ca15e3e..8d46415 100644
--- a/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
+++ b/OpenSim/Region/ClientStack/Linden/UDP/LLClientView.cs
@@ -3721,6 +3721,12 @@ namespace OpenSim.Region.ClientStack.LindenUDP
3721 /// </summary> 3721 /// </summary>
3722 public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags) 3722 public void SendEntityUpdate(ISceneEntity entity, PrimUpdateFlags updateFlags)
3723 { 3723 {
3724 if ((updateFlags & PrimUpdateFlags.Immediate) != 0)
3725 {
3726 SendUnqueuedTerseUpdate((SceneObjectPart)entity);
3727 return;
3728 }
3729
3724 if (entity is SceneObjectPart) 3730 if (entity is SceneObjectPart)
3725 { 3731 {
3726 SceneObjectPart e = (SceneObjectPart)entity; 3732 SceneObjectPart e = (SceneObjectPart)entity;
@@ -4075,6 +4081,20 @@ namespace OpenSim.Region.ClientStack.LindenUDP
4075 ProcessEntityUpdates(-1); 4081 ProcessEntityUpdates(-1);
4076 } 4082 }
4077 4083
4084 public void SendUnqueuedTerseUpdate(SceneObjectPart part)
4085 {
4086 ImprovedTerseObjectUpdatePacket packet
4087 = (ImprovedTerseObjectUpdatePacket)PacketPool.Instance.GetPacket(
4088 PacketType.ImprovedTerseObjectUpdate);
4089 packet.RegionData.RegionHandle = m_scene.RegionInfo.RegionHandle;
4090 packet.RegionData.TimeDilation = Utils.FloatToUInt16(1.0f, 0.0f, 1.0f);
4091 packet.ObjectData = new ImprovedTerseObjectUpdatePacket.ObjectDataBlock[1];
4092
4093 packet.ObjectData[0] = CreateImprovedTerseBlock(part, false);
4094
4095 OutPacket(packet, ThrottleOutPacketType.Task | ThrottleOutPacketType.HighPriority);
4096 }
4097
4078 #endregion Primitive Packet/Data Sending Methods 4098 #endregion Primitive Packet/Data Sending Methods
4079 4099
4080 // These are used to implement an adaptive backoff in the number 4100 // These are used to implement an adaptive backoff in the number