bug fix, etc

LSLKeyTest
UbitUmarov 2016-07-06 17:31:05 +01:00
parent 6c48be6c91
commit beafc99d43
1 changed files with 10 additions and 3 deletions

View File

@ -3993,8 +3993,15 @@ namespace OpenSim.Region.Framework.Scenes
float limit = Scene.ReprioritizationDistance; float limit = Scene.ReprioritizationDistance;
bool byDrawdistance = Scene.ObjectsCullingByDistance; bool byDrawdistance = Scene.ObjectsCullingByDistance;
if(byDrawdistance) if(byDrawdistance)
byDrawdistance = (Math.Abs(DrawDistance-m_reprioritizationLastDrawDistance) > 0.5f * limit); {
float minregionSize = (float)Scene.RegionInfo.RegionSizeX;
if(minregionSize > (float)Scene.RegionInfo.RegionSizeY)
minregionSize = (float)Scene.RegionInfo.RegionSizeY;
if(DrawDistance > minregionSize && m_reprioritizationLastDrawDistance > minregionSize)
byDrawdistance = false;
else
byDrawdistance = (Math.Abs(DrawDistance-m_reprioritizationLastDrawDistance) > 0.5f * limit);
}
int tdiff = Util.EnvironmentTickCountSubtract(m_reprioritizationLastTime); int tdiff = Util.EnvironmentTickCountSubtract(m_reprioritizationLastTime);
if(!byDrawdistance && tdiff < Scene.ReprioritizationInterval) if(!byDrawdistance && tdiff < Scene.ReprioritizationInterval)
return; return;
@ -4012,7 +4019,7 @@ namespace OpenSim.Region.Framework.Scenes
Util.FireAndForget( Util.FireAndForget(
o => o =>
{ {
ControllingClient.ReprioritizeUpdates(); ControllingClient.ReprioritizeUpdates();
m_reprioritizationLastTime = Util.EnvironmentTickCount(); m_reprioritizationLastTime = Util.EnvironmentTickCount();
m_reprioritizationBusy = false; m_reprioritizationBusy = false;
}, null, "ScenePresence.Reprioritization"); }, null, "ScenePresence.Reprioritization");