bug fix, etc
parent
6c48be6c91
commit
beafc99d43
|
@ -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");
|
||||||
|
|
Loading…
Reference in New Issue