aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Region/Framework
diff options
context:
space:
mode:
authorMelanie2013-02-12 01:02:16 +0100
committerMelanie2013-02-12 01:02:16 +0100
commit04235e58e87ae42617111cad2884e42785914d4e (patch)
tree9cccb05ea7355be02d2e4d9bef5b9b1da3225afa /OpenSim/Region/Framework
parentMake keyframes use the sim's frame timer (diff)
downloadopensim-SC_OLD-04235e58e87ae42617111cad2884e42785914d4e.zip
opensim-SC_OLD-04235e58e87ae42617111cad2884e42785914d4e.tar.gz
opensim-SC_OLD-04235e58e87ae42617111cad2884e42785914d4e.tar.bz2
opensim-SC_OLD-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/Framework')
-rw-r--r--OpenSim/Region/Framework/Scenes/KeyframeMotion.cs12
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs7
-rw-r--r--OpenSim/Region/Framework/Scenes/SceneObjectPart.cs14
3 files changed, 24 insertions, 9 deletions
diff --git a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
index 75b16dc..722c031 100644
--- a/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
+++ b/OpenSim/Region/Framework/Scenes/KeyframeMotion.cs
@@ -417,7 +417,7 @@ namespace OpenSim.Region.Framework.Scenes
417 417
418 m_group.RootPart.Velocity = Vector3.Zero; 418 m_group.RootPart.Velocity = Vector3.Zero;
419 m_group.RootPart.AngularVelocity = Vector3.Zero; 419 m_group.RootPart.AngularVelocity = Vector3.Zero;
420 m_group.SendGroupRootTerseUpdate(); 420 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
421// m_group.RootPart.ScheduleTerseUpdate(); 421// m_group.RootPart.ScheduleTerseUpdate();
422 m_frames.Clear(); 422 m_frames.Clear();
423 } 423 }
@@ -429,7 +429,7 @@ namespace OpenSim.Region.Framework.Scenes
429 429
430 m_group.RootPart.Velocity = Vector3.Zero; 430 m_group.RootPart.Velocity = Vector3.Zero;
431 m_group.RootPart.AngularVelocity = Vector3.Zero; 431 m_group.RootPart.AngularVelocity = Vector3.Zero;
432 m_group.SendGroupRootTerseUpdate(); 432 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
433// m_group.RootPart.ScheduleTerseUpdate(); 433// m_group.RootPart.ScheduleTerseUpdate();
434 434
435 } 435 }
@@ -551,7 +551,7 @@ namespace OpenSim.Region.Framework.Scenes
551 if (m_group.RootPart.Velocity != Vector3.Zero) 551 if (m_group.RootPart.Velocity != Vector3.Zero)
552 { 552 {
553 m_group.RootPart.Velocity = Vector3.Zero; 553 m_group.RootPart.Velocity = Vector3.Zero;
554 m_group.SendGroupRootTerseUpdate(); 554 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
555 555
556 } 556 }
557 return; 557 return;
@@ -695,7 +695,7 @@ namespace OpenSim.Region.Framework.Scenes
695 695
696 if (update) 696 if (update)
697 { 697 {
698 m_group.SendGroupRootTerseUpdate(); 698 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
699 } 699 }
700 } 700 }
701 701
@@ -731,7 +731,7 @@ namespace OpenSim.Region.Framework.Scenes
731 if (m_group.RootPart.Velocity != Vector3.Zero) 731 if (m_group.RootPart.Velocity != Vector3.Zero)
732 { 732 {
733 m_group.RootPart.Velocity = Vector3.Zero; 733 m_group.RootPart.Velocity = Vector3.Zero;
734 m_group.SendGroupRootTerseUpdate(); 734 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
735// m_group.RootPart.ScheduleTerseUpdate(); 735// m_group.RootPart.ScheduleTerseUpdate();
736 } 736 }
737 } 737 }
@@ -743,7 +743,7 @@ namespace OpenSim.Region.Framework.Scenes
743 if (m_group != null) 743 if (m_group != null)
744 { 744 {
745 m_group.RootPart.Velocity = Vector3.Zero; 745 m_group.RootPart.Velocity = Vector3.Zero;
746 m_group.SendGroupRootTerseUpdate(); 746 m_group.SendGroupRootTerseUpdate(PrimUpdateFlags.Immediate);
747// m_group.RootPart.ScheduleTerseUpdate(); 747// m_group.RootPart.ScheduleTerseUpdate();
748 748
749 if (m_running) 749 if (m_running)
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
index ed1bbd8..910f42e 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectGroup.cs
@@ -2638,10 +2638,15 @@ namespace OpenSim.Region.Framework.Scenes
2638 /// </summary> 2638 /// </summary>
2639 public void SendGroupRootTerseUpdate() 2639 public void SendGroupRootTerseUpdate()
2640 { 2640 {
2641 SendGroupRootTerseUpdate(0);
2642 }
2643
2644 public void SendGroupRootTerseUpdate(PrimUpdateFlags flags)
2645 {
2641 if (IsDeleted) 2646 if (IsDeleted)
2642 return; 2647 return;
2643 2648
2644 RootPart.SendTerseUpdateToAllClients(); 2649 RootPart.SendTerseUpdateToAllClients(flags);
2645 } 2650 }
2646 2651
2647 public void QueueForUpdateCheck() 2652 public void QueueForUpdateCheck()
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
index 20a6626..7e94eda 100644
--- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
+++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs
@@ -3315,6 +3315,11 @@ namespace OpenSim.Region.Framework.Scenes
3315 /// </summary> 3315 /// </summary>
3316 public void SendTerseUpdateToAllClients() 3316 public void SendTerseUpdateToAllClients()
3317 { 3317 {
3318 SendTerseUpdateToAllClients(0);
3319 }
3320
3321 public void SendTerseUpdateToAllClients(PrimUpdateFlags flags)
3322 {
3318 if (ParentGroup == null || ParentGroup.Scene == null) 3323 if (ParentGroup == null || ParentGroup.Scene == null)
3319 return; 3324 return;
3320 3325
@@ -3328,7 +3333,7 @@ namespace OpenSim.Region.Framework.Scenes
3328 3333
3329 ParentGroup.Scene.ForEachClient(delegate(IClientAPI client) 3334 ParentGroup.Scene.ForEachClient(delegate(IClientAPI client)
3330 { 3335 {
3331 SendTerseUpdateToClient(client); 3336 SendTerseUpdateToClient(client, flags);
3332 }); 3337 });
3333 } 3338 }
3334 3339
@@ -5133,6 +5138,11 @@ namespace OpenSim.Region.Framework.Scenes
5133 5138
5134 public void SendTerseUpdateToClient(IClientAPI remoteClient) 5139 public void SendTerseUpdateToClient(IClientAPI remoteClient)
5135 { 5140 {
5141 SendTerseUpdateToClient(remoteClient, 0);
5142 }
5143
5144 public void SendTerseUpdateToClient(IClientAPI remoteClient, PrimUpdateFlags flags)
5145 {
5136 if (ParentGroup.IsDeleted) 5146 if (ParentGroup.IsDeleted)
5137 return; 5147 return;
5138 5148
@@ -5146,7 +5156,7 @@ namespace OpenSim.Region.Framework.Scenes
5146 remoteClient.SendEntityUpdate( 5156 remoteClient.SendEntityUpdate(
5147 this, 5157 this,
5148 PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity 5158 PrimUpdateFlags.Position | PrimUpdateFlags.Rotation | PrimUpdateFlags.Velocity
5149 | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity); 5159 | PrimUpdateFlags.Acceleration | PrimUpdateFlags.AngularVelocity | flags);
5150 5160
5151 ParentGroup.Scene.StatsReporter.AddObjectUpdates(1); 5161 ParentGroup.Scene.StatsReporter.AddObjectUpdates(1);
5152 } 5162 }