diff --git a/examples/ExampleBrowser/InProcessExampleBrowser.cpp b/examples/ExampleBrowser/InProcessExampleBrowser.cpp index c08b27d53..6a6d413a1 100644 --- a/examples/ExampleBrowser/InProcessExampleBrowser.cpp +++ b/examples/ExampleBrowser/InProcessExampleBrowser.cpp @@ -309,7 +309,7 @@ void* ExampleBrowserMemoryFunc() void ExampleBrowserMemoryReleaseFunc(void* ptr) { ExampleBrowserThreadLocalStorage* p = (ExampleBrowserThreadLocalStorage*) ptr; - delete ptr; + delete p; } diff --git a/examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp b/examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp index c8995f5b0..95e1d4a34 100644 --- a/examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp +++ b/examples/Importers/ImportMJCFDemo/BulletMJCFImporter.cpp @@ -1032,6 +1032,11 @@ struct BulletMJCFImporterInternalData //todo break; } + case URDF_GEOM_CDF: + { + //todo + break; + } case URDF_GEOM_CYLINDER: case URDF_GEOM_CAPSULE: { @@ -2541,6 +2546,11 @@ class btCompoundShape* BulletMJCFImporter::convertLinkCollisionShapes( int linkI } break; } + case URDF_GEOM_CDF: + { + //todo + break; + } case URDF_GEOM_UNKNOWN: { break; diff --git a/examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp b/examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp index 8bdfe77b7..9768dd71e 100644 --- a/examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp +++ b/examples/Importers/ImportObjDemo/Wavefront2GLInstanceGraphicsShape.cpp @@ -2,7 +2,8 @@ #include "../../OpenGLWindow/GLInstancingRenderer.h" #include "../../OpenGLWindow/GLInstanceGraphicsShape.h" -#include "btBulletDynamicsCommon.h" +//#include "btBulletDynamicsCommon.h" +#include "LinearMath/btVector3.h" #include "../../OpenGLWindow/SimpleOpenGL3App.h" #include "Wavefront2GLInstanceGraphicsShape.h" #include "../../OpenGLWindow/GLInstancingRenderer.h" diff --git a/examples/MultiThreading/MultiThreadingExample.cpp b/examples/MultiThreading/MultiThreadingExample.cpp index d0ad1ba51..49fdfe2c9 100644 --- a/examples/MultiThreading/MultiThreadingExample.cpp +++ b/examples/MultiThreading/MultiThreadingExample.cpp @@ -21,7 +21,7 @@ void SampleThreadFunc(void* userPtr,void* lsMemory); void* SamplelsMemoryFunc(); - +void SamplelsMemoryReleaseFunc(void* ptr); #include //#include "BulletMultiThreaded/PlatformDefinitions.h" @@ -34,6 +34,7 @@ b3ThreadSupportInterface* createThreadSupport(int numThreads) b3PosixThreadSupport::ThreadConstructionInfo constructionInfo("testThreads", SampleThreadFunc, SamplelsMemoryFunc, + SamplelsMemoryReleaseFunc, numThreads); b3ThreadSupportInterface* threadSupport = new b3PosixThreadSupport(constructionInfo); @@ -47,7 +48,7 @@ b3ThreadSupportInterface* createThreadSupport(int numThreads) b3ThreadSupportInterface* createThreadSupport(int numThreads) { - b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",SampleThreadFunc,SamplelsMemoryFunc,numThreads); + b3Win32ThreadSupport::Win32ThreadConstructionInfo threadConstructionInfo("testThreads",SampleThreadFunc,SamplelsMemoryFunc,SamplelsMemoryReleaseFunc,numThreads); b3Win32ThreadSupport* threadSupport = new b3Win32ThreadSupport(threadConstructionInfo); return threadSupport; @@ -155,7 +156,11 @@ void* SamplelsMemoryFunc() return new SampleThreadLocalStorage; } - +void SamplelsMemoryReleaseFunc(void* ptr) +{ + SampleThreadLocalStorage* p = (SampleThreadLocalStorage*) ptr; + delete p; +} diff --git a/examples/MultiThreading/b3PosixThreadSupport.cpp b/examples/MultiThreading/b3PosixThreadSupport.cpp index 269579ab5..dfec90df6 100644 --- a/examples/MultiThreading/b3PosixThreadSupport.cpp +++ b/examples/MultiThreading/b3PosixThreadSupport.cpp @@ -251,7 +251,8 @@ void b3PosixThreadSupport::startThreads(ThreadConstructionInfo& threadConstructi spuStatus.m_mainSemaphore = m_mainSemaphore; spuStatus.m_lsMemory = threadConstructionInfo.m_lsMemoryFunc(); spuStatus.m_userThreadFunc = threadConstructionInfo.m_userThreadFunc; - spuStatus.threadUsed = 0; + spuStatus.m_lsMemoryReleaseFunc = threadConstructionInfo.m_lsMemoryReleaseFunc; + spuStatus.threadUsed = 0; printf("started thread %d \n",i); @@ -277,7 +278,12 @@ void b3PosixThreadSupport::stopThreads() destroySem(spuStatus.startSemaphore); printf("semaphore destroyed\n"); checkPThreadFunction(pthread_join(spuStatus.thread,0)); - delete spuStatus.m_lsMemory; + + if (spuStatus.m_lsMemoryReleaseFunc) + { + spuStatus.m_lsMemoryReleaseFunc( spuStatus.m_lsMemory); + } + } printf("destroy main semaphore\n"); destroySem(m_mainSemaphore); diff --git a/examples/MultiThreading/b3PosixThreadSupport.h b/examples/MultiThreading/b3PosixThreadSupport.h index 3f54d4ab5..7ed95a262 100644 --- a/examples/MultiThreading/b3PosixThreadSupport.h +++ b/examples/MultiThreading/b3PosixThreadSupport.h @@ -35,6 +35,7 @@ subject to the following restrictions: typedef void (*b3PosixThreadFunc)(void* userPtr,void* lsMemory); typedef void* (*b3PosixlsMemorySetupFunc)(); +typedef void (*b3PosixlsMemoryReleaseFunc)(void* ptr); // b3PosixThreadSupport helps to initialize/shutdown libspe2, start/stop SPU tasks and communication class b3PosixThreadSupport : public b3ThreadSupportInterface @@ -55,6 +56,8 @@ public: b3PosixThreadFunc m_userThreadFunc; void* m_userPtr; //for taskDesc etc + b3PosixlsMemoryReleaseFunc m_lsMemoryReleaseFunc; + void* m_lsMemory; //initialized using PosixLocalStoreMemorySetupFunc pthread_t thread; @@ -83,12 +86,14 @@ public: ThreadConstructionInfo(const char* uniqueName, b3PosixThreadFunc userThreadFunc, b3PosixlsMemorySetupFunc lsMemoryFunc, + b3PosixlsMemoryReleaseFunc lsMemoryReleaseFunc, int numThreads=1, int threadStackSize=65535 ) :m_uniqueName(uniqueName), m_userThreadFunc(userThreadFunc), m_lsMemoryFunc(lsMemoryFunc), + m_lsMemoryReleaseFunc(lsMemoryReleaseFunc), m_numThreads(numThreads), m_threadStackSize(threadStackSize) { @@ -98,6 +103,8 @@ public: const char* m_uniqueName; b3PosixThreadFunc m_userThreadFunc; b3PosixlsMemorySetupFunc m_lsMemoryFunc; + b3PosixlsMemoryReleaseFunc m_lsMemoryReleaseFunc; + int m_numThreads; int m_threadStackSize; diff --git a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp index 11041e3a2..018463307 100644 --- a/examples/SharedMemory/PhysicsServerCommandProcessor.cpp +++ b/examples/SharedMemory/PhysicsServerCommandProcessor.cpp @@ -9693,10 +9693,13 @@ void PhysicsServerCommandProcessor::stepSimulationRealTime(double dtInSec,const void PhysicsServerCommandProcessor::resetSimulation() { //clean up all data + +#ifndef SKIP_SOFT_BODY_MULTI_BODY_DYNAMICS_WORLD if (m_data && m_data->m_dynamicsWorld) { m_data->m_dynamicsWorld->getWorldInfo().m_sparsesdf.Reset(); } +#endif if (m_data && m_data->m_guiHelper) { m_data->m_guiHelper->removeAllGraphicsInstances(); diff --git a/examples/SharedMemory/PhysicsServerSharedMemory.cpp b/examples/SharedMemory/PhysicsServerSharedMemory.cpp index 4413a5aab..dcdd996b3 100644 --- a/examples/SharedMemory/PhysicsServerSharedMemory.cpp +++ b/examples/SharedMemory/PhysicsServerSharedMemory.cpp @@ -170,7 +170,7 @@ bool PhysicsServerSharedMemory::connectSharedMemory( struct GUIHelperInterface* } } else { - b3Error("Cannot connect to shared memory"); + //b3Error("Cannot connect to shared memory"); m_data->m_areConnected[block] = false; } } while (counter++ < 10 && !m_data->m_areConnected[block]); diff --git a/examples/SharedMemory/SharedMemoryCommands.h b/examples/SharedMemory/SharedMemoryCommands.h index 9331c87d9..891b07d90 100644 --- a/examples/SharedMemory/SharedMemoryCommands.h +++ b/examples/SharedMemory/SharedMemoryCommands.h @@ -23,7 +23,11 @@ typedef unsigned long long int smUint64_t; #endif -#define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (8*1024*1024) +#ifdef __APPLE__ + #define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (512*1024) +#else + #define SHARED_MEMORY_MAX_STREAM_CHUNK_SIZE (8*1024*1024) +#endif #define SHARED_MEMORY_SERVER_TEST_C #define MAX_DEGREE_OF_FREEDOM 128