diff options
Diffstat (limited to 'OpenSim/Region/Physics/BulletSPlugin')
-rwxr-xr-x | OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs | 46 | ||||
-rw-r--r-- | OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | 4 |
2 files changed, 47 insertions, 3 deletions
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs b/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs index 6db5f5e..2a820be 100755 --- a/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSAPIXNA.cs | |||
@@ -1221,6 +1221,50 @@ private sealed class BulletConstraintXNA : BulletConstraint | |||
1221 | //BSParam.TerrainImplementation = 0; | 1221 | //BSParam.TerrainImplementation = 0; |
1222 | world.SetGravity(new IndexedVector3(0,0,p.gravity)); | 1222 | world.SetGravity(new IndexedVector3(0,0,p.gravity)); |
1223 | 1223 | ||
1224 | // Turn off Pooling since globals and pooling are bad for threading. | ||
1225 | BulletGlobals.VoronoiSimplexSolverPool.SetPoolingEnabled(false); | ||
1226 | BulletGlobals.SubSimplexConvexCastPool.SetPoolingEnabled(false); | ||
1227 | BulletGlobals.ManifoldPointPool.SetPoolingEnabled(false); | ||
1228 | BulletGlobals.CastResultPool.SetPoolingEnabled(false); | ||
1229 | BulletGlobals.SphereShapePool.SetPoolingEnabled(false); | ||
1230 | BulletGlobals.DbvtNodePool.SetPoolingEnabled(false); | ||
1231 | BulletGlobals.SingleRayCallbackPool.SetPoolingEnabled(false); | ||
1232 | BulletGlobals.SubSimplexClosestResultPool.SetPoolingEnabled(false); | ||
1233 | BulletGlobals.GjkPairDetectorPool.SetPoolingEnabled(false); | ||
1234 | BulletGlobals.DbvtTreeColliderPool.SetPoolingEnabled(false); | ||
1235 | BulletGlobals.SingleSweepCallbackPool.SetPoolingEnabled(false); | ||
1236 | BulletGlobals.BroadphaseRayTesterPool.SetPoolingEnabled(false); | ||
1237 | BulletGlobals.ClosestNotMeConvexResultCallbackPool.SetPoolingEnabled(false); | ||
1238 | BulletGlobals.GjkEpaPenetrationDepthSolverPool.SetPoolingEnabled(false); | ||
1239 | BulletGlobals.ContinuousConvexCollisionPool.SetPoolingEnabled(false); | ||
1240 | BulletGlobals.DbvtStackDataBlockPool.SetPoolingEnabled(false); | ||
1241 | |||
1242 | BulletGlobals.BoxBoxCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1243 | BulletGlobals.CompoundCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1244 | BulletGlobals.ConvexConcaveCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1245 | BulletGlobals.ConvexConvexAlgorithmPool.SetPoolingEnabled(false); | ||
1246 | BulletGlobals.ConvexPlaneAlgorithmPool.SetPoolingEnabled(false); | ||
1247 | BulletGlobals.SphereBoxCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1248 | BulletGlobals.SphereSphereCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1249 | BulletGlobals.SphereTriangleCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1250 | BulletGlobals.GImpactCollisionAlgorithmPool.SetPoolingEnabled(false); | ||
1251 | BulletGlobals.GjkEpaSolver2MinkowskiDiffPool.SetPoolingEnabled(false); | ||
1252 | BulletGlobals.PersistentManifoldPool.SetPoolingEnabled(false); | ||
1253 | BulletGlobals.ManifoldResultPool.SetPoolingEnabled(false); | ||
1254 | BulletGlobals.GJKPool.SetPoolingEnabled(false); | ||
1255 | BulletGlobals.GIM_ShapeRetrieverPool.SetPoolingEnabled(false); | ||
1256 | BulletGlobals.TriangleShapePool.SetPoolingEnabled(false); | ||
1257 | BulletGlobals.SphereTriangleDetectorPool.SetPoolingEnabled(false); | ||
1258 | BulletGlobals.CompoundLeafCallbackPool.SetPoolingEnabled(false); | ||
1259 | BulletGlobals.GjkConvexCastPool.SetPoolingEnabled(false); | ||
1260 | BulletGlobals.LocalTriangleSphereCastCallbackPool.SetPoolingEnabled(false); | ||
1261 | BulletGlobals.BridgeTriangleRaycastCallbackPool.SetPoolingEnabled(false); | ||
1262 | BulletGlobals.BridgeTriangleConcaveRaycastCallbackPool.SetPoolingEnabled(false); | ||
1263 | BulletGlobals.BridgeTriangleConvexcastCallbackPool.SetPoolingEnabled(false); | ||
1264 | BulletGlobals.MyNodeOverlapCallbackPool.SetPoolingEnabled(false); | ||
1265 | BulletGlobals.ClosestRayResultCallbackPool.SetPoolingEnabled(false); | ||
1266 | BulletGlobals.DebugDrawcallbackPool.SetPoolingEnabled(false); | ||
1267 | |||
1224 | return world; | 1268 | return world; |
1225 | } | 1269 | } |
1226 | //m_constraint.ptr, ConstraintParams.BT_CONSTRAINT_STOP_CFM, cfm, ConstraintParamAxis.AXIS_ALL | 1270 | //m_constraint.ptr, ConstraintParams.BT_CONSTRAINT_STOP_CFM, cfm, ConstraintParamAxis.AXIS_ALL |
@@ -1914,7 +1958,7 @@ private sealed class BulletConstraintXNA : BulletConstraint | |||
1914 | heightMap, scaleFactor, | 1958 | heightMap, scaleFactor, |
1915 | minHeight, maxHeight, upAxis, | 1959 | minHeight, maxHeight, upAxis, |
1916 | false); | 1960 | false); |
1917 | terrainShape.SetMargin(collisionMargin + 0.5f); | 1961 | terrainShape.SetMargin(collisionMargin); |
1918 | terrainShape.SetUseDiamondSubdivision(true); | 1962 | terrainShape.SetUseDiamondSubdivision(true); |
1919 | terrainShape.SetUserPointer(id); | 1963 | terrainShape.SetUserPointer(id); |
1920 | return new BulletShapeXNA(terrainShape, BSPhysicsShapeType.SHAPE_TERRAIN); | 1964 | return new BulletShapeXNA(terrainShape, BSPhysicsShapeType.SHAPE_TERRAIN); |
diff --git a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs index 88d50b4..c92c9b9 100644 --- a/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs +++ b/OpenSim/Region/Physics/BulletSPlugin/BSScene.cs | |||
@@ -946,7 +946,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
946 | 946 | ||
947 | private void ProcessRegularTaints() | 947 | private void ProcessRegularTaints() |
948 | { | 948 | { |
949 | if (_taintOperations.Count > 0) // save allocating new list if there is nothing to process | 949 | if (m_initialized && _taintOperations.Count > 0) // save allocating new list if there is nothing to process |
950 | { | 950 | { |
951 | // swizzle a new list into the list location so we can process what's there | 951 | // swizzle a new list into the list location so we can process what's there |
952 | List<TaintCallbackEntry> oldList; | 952 | List<TaintCallbackEntry> oldList; |
@@ -989,7 +989,7 @@ public sealed class BSScene : PhysicsScene, IPhysicsParameters | |||
989 | // Taints that happen after the normal taint processing but before the simulation step. | 989 | // Taints that happen after the normal taint processing but before the simulation step. |
990 | private void ProcessPostTaintTaints() | 990 | private void ProcessPostTaintTaints() |
991 | { | 991 | { |
992 | if (_postTaintOperations.Count > 0) | 992 | if (m_initialized && _postTaintOperations.Count > 0) |
993 | { | 993 | { |
994 | Dictionary<string, TaintCallbackEntry> oldList; | 994 | Dictionary<string, TaintCallbackEntry> oldList; |
995 | lock (_taintLock) | 995 | lock (_taintLock) |