Always send a time dilation of 1.0 while we debug rubberbanding issues
parent
a069a1ee68
commit
1c9696a9d2
|
@ -3168,107 +3168,6 @@ namespace OpenSim.Region.ClientStack.LindenUDP
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region Prim/Avatar Updates
|
|
||||||
|
|
||||||
/*void SendObjectUpdate(SceneObjectPart obj, PrimFlags creatorFlags, PrimUpdateFlags updateFlags)
|
|
||||||
{
|
|
||||||
bool canUseCompressed, canUseImproved;
|
|
||||||
UpdateFlagsToPacketType(creatorFlags, updateFlags, out canUseCompressed, out canUseImproved);
|
|
||||||
|
|
||||||
if (!canUseImproved && !canUseCompressed)
|
|
||||||
SendFullObjectUpdate(obj, creatorFlags, updateFlags);
|
|
||||||
else if (!canUseImproved)
|
|
||||||
SendObjectUpdateCompressed(obj, creatorFlags, updateFlags);
|
|
||||||
else
|
|
||||||
SendImprovedTerseObjectUpdate(obj, creatorFlags, updateFlags);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SendFullObjectUpdate(SceneObjectPart obj, PrimFlags creatorFlags, PrimUpdateFlags updateFlags)
|
|
||||||
{
|
|
||||||
IClientAPI owner;
|
|
||||||
if (m_scene.ClientManager.TryGetValue(obj.OwnerID, out owner) && owner is LLClientView)
|
|
||||||
{
|
|
||||||
LLClientView llOwner = (LLClientView)owner;
|
|
||||||
|
|
||||||
// Send an update out to the owner
|
|
||||||
ObjectUpdatePacket updateToOwner = new ObjectUpdatePacket();
|
|
||||||
updateToOwner.RegionData.RegionHandle = obj.RegionHandle;
|
|
||||||
//updateToOwner.RegionData.TimeDilation = (ushort)(timeDilation * (float)UInt16.MaxValue);
|
|
||||||
updateToOwner.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
|
||||||
updateToOwner.ObjectData[0] = BuildUpdateBlock(obj, obj.Flags | creatorFlags | PrimFlags.ObjectYouOwner, 0);
|
|
||||||
|
|
||||||
m_udpServer.SendPacket(llOwner.UDPClient, updateToOwner, ThrottleOutPacketType.State, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Send an update out to everyone else
|
|
||||||
ObjectUpdatePacket updateToOthers = new ObjectUpdatePacket();
|
|
||||||
updateToOthers.RegionData.RegionHandle = obj.RegionHandle;
|
|
||||||
//updateToOthers.RegionData.TimeDilation = (ushort)(timeDilation * (float)UInt16.MaxValue);
|
|
||||||
updateToOthers.ObjectData = new ObjectUpdatePacket.ObjectDataBlock[1];
|
|
||||||
updateToOthers.ObjectData[0] = BuildUpdateBlock(obj, obj.Flags, 0);
|
|
||||||
|
|
||||||
m_scene.ClientManager.ForEach(
|
|
||||||
delegate(IClientAPI client)
|
|
||||||
{
|
|
||||||
if (client.AgentId != obj.OwnerID && client is LLClientView)
|
|
||||||
{
|
|
||||||
LLClientView llClient = (LLClientView)client;
|
|
||||||
m_udpServer.SendPacket(llClient.UDPClient, updateToOthers, ThrottleOutPacketType.State, true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
void SendObjectUpdateCompressed(SceneObjectPart obj, PrimFlags creatorFlags, PrimUpdateFlags updateFlags)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void SendImprovedTerseObjectUpdate(SceneObjectPart obj, PrimFlags creatorFlags, PrimUpdateFlags updateFlags)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
void UpdateFlagsToPacketType(PrimFlags creatorFlags, PrimUpdateFlags updateFlags, out bool canUseCompressed, out bool canUseImproved)
|
|
||||||
{
|
|
||||||
canUseCompressed = true;
|
|
||||||
canUseImproved = true;
|
|
||||||
|
|
||||||
if ((updateFlags & PrimUpdateFlags.FullUpdate) == PrimUpdateFlags.FullUpdate || creatorFlags != PrimFlags.None)
|
|
||||||
{
|
|
||||||
canUseCompressed = false;
|
|
||||||
canUseImproved = false;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if ((updateFlags & PrimUpdateFlags.Velocity) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Acceleration) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.CollisionPlane) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Joint) != 0)
|
|
||||||
{
|
|
||||||
canUseCompressed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((updateFlags & PrimUpdateFlags.PrimFlags) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.ParentID) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Scale) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.PrimData) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Text) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.NameValue) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.ExtraData) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.TextureAnim) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Sound) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Particles) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Material) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.ClickAction) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.MediaURL) != 0 ||
|
|
||||||
(updateFlags & PrimUpdateFlags.Joint) != 0)
|
|
||||||
{
|
|
||||||
canUseImproved = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
|
|
||||||
#endregion Prim/Avatar Updates
|
|
||||||
|
|
||||||
#region Avatar Packet/Data Sending Methods
|
#region Avatar Packet/Data Sending Methods
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -1015,9 +1015,9 @@ namespace OpenSim.Region.Framework.Scenes
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public float GetTimeDilation()
|
public ushort GetTimeDilation()
|
||||||
{
|
{
|
||||||
return m_scene.TimeDilation;
|
return Utils.FloatToUInt16(m_scene.TimeDilation, 0.0f, 1.0f);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -2383,7 +2383,7 @@ if (m_shape != null) {
|
||||||
//isattachment = ParentGroup.RootPart.IsAttachment;
|
//isattachment = ParentGroup.RootPart.IsAttachment;
|
||||||
|
|
||||||
byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A};
|
byte[] color = new byte[] {m_color.R, m_color.G, m_color.B, m_color.A};
|
||||||
remoteClient.SendPrimitiveToClient(new SendPrimitiveData(m_regionHandle, (ushort)(m_parentGroup.GetTimeDilation() * (float)ushort.MaxValue), LocalId, m_shape,
|
remoteClient.SendPrimitiveToClient(new SendPrimitiveData(m_regionHandle, m_parentGroup.GetTimeDilation(), LocalId, m_shape,
|
||||||
lPos, Velocity, Acceleration, RotationOffset, RotationalVelocity, clientFlags, m_uuid, _ownerID,
|
lPos, Velocity, Acceleration, RotationOffset, RotationalVelocity, clientFlags, m_uuid, _ownerID,
|
||||||
m_text, color, _parentID, m_particleSystem, m_clickAction, (byte)m_material, m_TextureAnimation, IsAttachment,
|
m_text, color, _parentID, m_particleSystem, m_clickAction, (byte)m_material, m_TextureAnimation, IsAttachment,
|
||||||
AttachmentPoint,FromItemID, Sound, SoundGain, SoundFlags, SoundRadius, ParentGroup.GetUpdatePriority(remoteClient)));
|
AttachmentPoint,FromItemID, Sound, SoundGain, SoundFlags, SoundRadius, ParentGroup.GetUpdatePriority(remoteClient)));
|
||||||
|
@ -3785,8 +3785,7 @@ if (m_shape != null) {
|
||||||
// Causes this thread to dig into the Client Thread Data.
|
// Causes this thread to dig into the Client Thread Data.
|
||||||
// Remember your locking here!
|
// Remember your locking here!
|
||||||
remoteClient.SendPrimTerseUpdate(new SendPrimitiveTerseData(m_regionHandle,
|
remoteClient.SendPrimTerseUpdate(new SendPrimitiveTerseData(m_regionHandle,
|
||||||
(ushort)(m_parentGroup.GetTimeDilation() *
|
m_parentGroup.GetTimeDilation(), LocalId, lPos,
|
||||||
(float)ushort.MaxValue), LocalId, lPos,
|
|
||||||
RotationOffset, Velocity, Acceleration,
|
RotationOffset, Velocity, Acceleration,
|
||||||
RotationalVelocity, state, FromItemID,
|
RotationalVelocity, state, FromItemID,
|
||||||
OwnerID, (int)AttachmentPoint, null, ParentGroup.GetUpdatePriority(remoteClient)));
|
OwnerID, (int)AttachmentPoint, null, ParentGroup.GetUpdatePriority(remoteClient)));
|
||||||
|
|
|
@ -2672,7 +2672,8 @@ namespace OpenSim.Region.Physics.OdePlugin
|
||||||
//(step_time == 0.004f, there's 250 of those per second. Times the step time/step size
|
//(step_time == 0.004f, there's 250 of those per second. Times the step time/step size
|
||||||
|
|
||||||
fps = (step_time / ODE_STEPSIZE) * 1000;
|
fps = (step_time / ODE_STEPSIZE) * 1000;
|
||||||
m_timeDilation = Math.Min((step_time / ODE_STEPSIZE) / (0.09375f / ODE_STEPSIZE), 1.0f);
|
// HACK: Using a time dilation of 1.0 to debug rubberbanding issues
|
||||||
|
//m_timeDilation = Math.Min((step_time / ODE_STEPSIZE) / (0.09375f / ODE_STEPSIZE), 1.0f);
|
||||||
|
|
||||||
step_time = 0.09375f;
|
step_time = 0.09375f;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue