diff options
author | Melanie | 2013-02-12 01:02:16 +0100 |
---|---|---|
committer | Melanie | 2013-02-12 01:02:16 +0100 |
commit | 04235e58e87ae42617111cad2884e42785914d4e (patch) | |
tree | 9cccb05ea7355be02d2e4d9bef5b9b1da3225afa /OpenSim/Region/ClientStack/Linden/UDP | |
parent | Make keyframes use the sim's frame timer (diff) | |
download | opensim-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.cs | 20 |
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 |