diff options
author | Diva Canto | 2012-03-22 20:36:01 -0700 |
---|---|---|
committer | Diva Canto | 2012-03-22 20:36:01 -0700 |
commit | 179c0f5f562ae9d6994dda3c6702a55a79872bda (patch) | |
tree | af09cf69626cc375ad73b1072399a41c7a578e87 /OpenSim/Region/Physics | |
parent | Added new simple_build_permissions config to the .ini and .example files. (diff) | |
parent | Comment out login parameters debug output accidentally included with c4b2d24 (diff) | |
download | opensim-SC_OLD-179c0f5f562ae9d6994dda3c6702a55a79872bda.zip opensim-SC_OLD-179c0f5f562ae9d6994dda3c6702a55a79872bda.tar.gz opensim-SC_OLD-179c0f5f562ae9d6994dda3c6702a55a79872bda.tar.bz2 opensim-SC_OLD-179c0f5f562ae9d6994dda3c6702a55a79872bda.tar.xz |
Merge branch '0.7.3-post-fixes' of ssh://opensimulator.org/var/git/opensim into 0.7.3-post-fixes
Diffstat (limited to 'OpenSim/Region/Physics')
-rw-r--r-- | OpenSim/Region/Physics/Meshing/Meshmerizer.cs | 2 | ||||
-rw-r--r-- | OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | 26 |
2 files changed, 17 insertions, 11 deletions
diff --git a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs index 6f6ed7f..3bd15ce 100644 --- a/OpenSim/Region/Physics/Meshing/Meshmerizer.cs +++ b/OpenSim/Region/Physics/Meshing/Meshmerizer.cs | |||
@@ -358,7 +358,7 @@ namespace OpenSim.Region.Physics.Meshing | |||
358 | 358 | ||
359 | if (physicsParms == null) | 359 | if (physicsParms == null) |
360 | { | 360 | { |
361 | m_log.Warn("[MESH]: no recognized physics mesh found in mesh asset"); | 361 | m_log.WarnFormat("[MESH]: No recognized physics mesh found in mesh asset for {0}", primName); |
362 | return false; | 362 | return false; |
363 | } | 363 | } |
364 | 364 | ||
diff --git a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs index 97890ee..1f79cd8 100644 --- a/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs +++ b/OpenSim/Region/Physics/OdePlugin/ODEPrim.cs | |||
@@ -842,17 +842,23 @@ namespace OpenSim.Region.Physics.OdePlugin | |||
842 | mesh.getIndexListAsPtrToIntArray(out indices, out triStride, out indexCount); // Also fixed, needs release after usage | 842 | mesh.getIndexListAsPtrToIntArray(out indices, out triStride, out indexCount); // Also fixed, needs release after usage |
843 | 843 | ||
844 | mesh.releaseSourceMeshData(); // free up the original mesh data to save memory | 844 | mesh.releaseSourceMeshData(); // free up the original mesh data to save memory |
845 | if (m_MeshToTriMeshMap.ContainsKey(mesh)) | ||
846 | { | ||
847 | _triMeshData = m_MeshToTriMeshMap[mesh]; | ||
848 | } | ||
849 | else | ||
850 | { | ||
851 | _triMeshData = d.GeomTriMeshDataCreate(); | ||
852 | 845 | ||
853 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); | 846 | // We must lock here since m_MeshToTriMeshMap is static and multiple scene threads may call this method at |
854 | d.GeomTriMeshDataPreprocess(_triMeshData); | 847 | // the same time. |
855 | m_MeshToTriMeshMap[mesh] = _triMeshData; | 848 | lock (m_MeshToTriMeshMap) |
849 | { | ||
850 | if (m_MeshToTriMeshMap.ContainsKey(mesh)) | ||
851 | { | ||
852 | _triMeshData = m_MeshToTriMeshMap[mesh]; | ||
853 | } | ||
854 | else | ||
855 | { | ||
856 | _triMeshData = d.GeomTriMeshDataCreate(); | ||
857 | |||
858 | d.GeomTriMeshDataBuildSimple(_triMeshData, vertices, vertexStride, vertexCount, indices, indexCount, triStride); | ||
859 | d.GeomTriMeshDataPreprocess(_triMeshData); | ||
860 | m_MeshToTriMeshMap[mesh] = _triMeshData; | ||
861 | } | ||
856 | } | 862 | } |
857 | 863 | ||
858 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); | 864 | // _parent_scene.waitForSpaceUnlock(m_targetSpace); |