lock collision mesh cache when accessing
parent
60e719286b
commit
73efb1633f
|
@ -928,9 +928,12 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
if (shouldCache)
|
if (shouldCache)
|
||||||
{
|
{
|
||||||
key = primShape.GetMeshKey(size, lod);
|
key = primShape.GetMeshKey(size, lod);
|
||||||
|
lock (m_uniqueMeshes)
|
||||||
|
{
|
||||||
if (m_uniqueMeshes.TryGetValue(key, out mesh))
|
if (m_uniqueMeshes.TryGetValue(key, out mesh))
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (size.X < 0.01f) size.X = 0.01f;
|
if (size.X < 0.01f) size.X = 0.01f;
|
||||||
if (size.Y < 0.01f) size.Y = 0.01f;
|
if (size.Y < 0.01f) size.Y = 0.01f;
|
||||||
|
@ -954,10 +957,13 @@ namespace OpenSim.Region.Physics.Meshing
|
||||||
mesh.TrimExcess();
|
mesh.TrimExcess();
|
||||||
|
|
||||||
if (shouldCache)
|
if (shouldCache)
|
||||||
|
{
|
||||||
|
lock (m_uniqueMeshes)
|
||||||
{
|
{
|
||||||
m_uniqueMeshes.Add(key, mesh);
|
m_uniqueMeshes.Add(key, mesh);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return mesh;
|
return mesh;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue