diff --git a/Demos/CMakeLists.txt b/Demos/CMakeLists.txt index eb1b50e3b..e5a220647 100644 --- a/Demos/CMakeLists.txt +++ b/Demos/CMakeLists.txt @@ -1,4 +1,4 @@ -SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo ConcaveDemo ConstraintDemo ConvexDecompositionDemo SerializeDemo ) +SUBDIRS( OpenGL BasicDemo Benchmarks Box2dDemo ConcaveDemo ConstraintDemo ConvexDecompositionDemo GenericJointDemo SerializeDemo ) #todo: re-enable the rest of the demos again diff --git a/Demos/GenericJointDemo/CMakeLists.txt b/Demos/GenericJointDemo/CMakeLists.txt index ef5cdc60b..6de955ada 100644 --- a/Demos/GenericJointDemo/CMakeLists.txt +++ b/Demos/GenericJointDemo/CMakeLists.txt @@ -9,17 +9,40 @@ # You shouldn't have to modify anything below this line ######################################################## +IF (USE_GLUT) -INCLUDE_DIRECTORIES( -${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL -) + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL + ) -LINK_LIBRARIES( -OpenGLSupport BulletDynamics BulletCollision LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} -) + LINK_LIBRARIES( + OpenGLSupport BulletDynamics BulletCollision LinearMath ${GLUT_glut_LIBRARY} ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) -ADD_EXECUTABLE(AppGenericJointDemo - GenericJointDemo.cpp - Ragdoll.cpp -) + ADD_EXECUTABLE(AppGenericJointDemo + GenericJointDemo.cpp + GenericJointDemo.h + Ragdoll.cpp + main.cpp + ) +ELSE(USE_GLUT) + + INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src ${BULLET_PHYSICS_SOURCE_DIR}/Demos/OpenGL + ) + + LINK_LIBRARIES( + OpenGLSupport BulletDynamics BulletCollision LinearMath ${OPENGL_gl_LIBRARY} ${OPENGL_glu_LIBRARY} + ) + + ADD_EXECUTABLE(AppGenericJointDemo + WIN32 + ../OpenGL/Win32AppMain.cpp + Win32GenericJointDemo.cpp + GenericJointDemo.cpp + GenericJointDemo.h + Ragdoll.cpp + + ) +ENDIF (USE_GLUT) \ No newline at end of file diff --git a/Demos/GenericJointDemo/GenericJointDemo.cpp b/Demos/GenericJointDemo/GenericJointDemo.cpp index c944ae98f..2ba766fae 100644 --- a/Demos/GenericJointDemo/GenericJointDemo.cpp +++ b/Demos/GenericJointDemo/GenericJointDemo.cpp @@ -38,22 +38,6 @@ GLDebugDrawer debugDrawer; -int main(int argc,char* argv[]) -{ - GenericJointDemo demoApp; -// demoApp.configDebugDrawer(&debugDrawer); - - demoApp.initPhysics(); - demoApp.setCameraDistance(btScalar(10.)); - -#ifdef USE_ODE_QUICKSTEP - return glutmain(argc, argv,640,480,"Joint 6DOF - ODE QuickStep Solver",&demoApp); -#else - return glutmain(argc, argv,640,480,"Joint 6DOF - Sequencial Impulse Solver",&demoApp); -#endif - - -} @@ -129,7 +113,7 @@ void GenericJointDemo::clientMoveAndDisplay() glFlush(); - glutSwapBuffers(); + swapBuffers(); } void GenericJointDemo::displayCallback() @@ -142,7 +126,7 @@ void GenericJointDemo::displayCallback() renderme(); glFlush(); - glutSwapBuffers(); + swapBuffers(); } void GenericJointDemo::keyboardCallback(unsigned char key, int x, int y) diff --git a/Demos/GenericJointDemo/GenericJointDemo.h b/Demos/GenericJointDemo/GenericJointDemo.h index 53fd438f4..03bfe3f1c 100644 --- a/Demos/GenericJointDemo/GenericJointDemo.h +++ b/Demos/GenericJointDemo/GenericJointDemo.h @@ -19,11 +19,18 @@ Written by: Marten Svanfeldt #ifndef GENERIGJOINTDEMO_H #define GENERIGJOINTDEMO_H +#ifdef _WINDOWS +#include "Win32DemoApplication.h" +#define PlatformDemoApplication Win32DemoApplication +#else #include "GlutDemoApplication.h" +#define PlatformDemoApplication GlutDemoApplication +#endif + #include "LinearMath/btAlignedObjectArray.h" #include "Ragdoll.h" -class GenericJointDemo : public GlutDemoApplication +class GenericJointDemo : public PlatformDemoApplication { btAlignedObjectArray m_ragdolls; diff --git a/Demos/GenericJointDemo/Win32GenericJointDemo.cpp b/Demos/GenericJointDemo/Win32GenericJointDemo.cpp new file mode 100644 index 000000000..35f604063 --- /dev/null +++ b/Demos/GenericJointDemo/Win32GenericJointDemo.cpp @@ -0,0 +1,25 @@ +#ifdef _WINDOWS +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2009 Erwin Coumans http://bulletphysics.org + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#include "GenericJointDemo.h" + +///The 'createDemo' function is called from Bullet/Demos/OpenGL/Win32AppMain.cpp to instantiate this particular demo +DemoApplication* createDemo() +{ + return new GenericJointDemo(); +} + +#endif diff --git a/Demos/GenericJointDemo/main.cpp b/Demos/GenericJointDemo/main.cpp new file mode 100644 index 000000000..a3dd20062 --- /dev/null +++ b/Demos/GenericJointDemo/main.cpp @@ -0,0 +1,28 @@ +/* +Bullet Continuous Collision Detection and Physics Library +Copyright (c) 2003-2010 Erwin Coumans http://continuousphysics.com/Bullet/ + +This software is provided 'as-is', without any express or implied warranty. +In no event will the authors be held liable for any damages arising from the use of this software. +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it freely, +subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. +*/ + +#include "GenericJointDemo.h" + +int main(int argc,char* argv[]) +{ + GenericJointDemo demoApp; +// demoApp.configDebugDrawer(&debugDrawer); + + demoApp.initPhysics(); + demoApp.setCameraDistance(btScalar(10.)); + + return glutmain(argc, argv,640,480,"Joint 6DOF - Sequencial Impulse Solver",&demoApp); + +} diff --git a/src/BulletMultiThreaded/CMakeLists.txt b/src/BulletMultiThreaded/CMakeLists.txt index eb0623f47..0e25f5099 100644 --- a/src/BulletMultiThreaded/CMakeLists.txt +++ b/src/BulletMultiThreaded/CMakeLists.txt @@ -7,7 +7,6 @@ ADD_LIBRARY(BulletMultiThreaded PlatformDefinitions.h SpuFakeDma.cpp SpuFakeDma.h - SpuSync.h SpuDoubleBuffer.h SpuLibspe2Support.cpp SpuLibspe2Support.h diff --git a/src/BulletMultiThreaded/SpuSync.h b/src/BulletMultiThreaded/SpuSync.h deleted file mode 100644 index b90d0fcbf..000000000 --- a/src/BulletMultiThreaded/SpuSync.h +++ /dev/null @@ -1,148 +0,0 @@ -/* -Bullet Continuous Collision Detection and Physics Library -Copyright (c) 2007 Starbreeze Studios - -This software is provided 'as-is', without any express or implied warranty. -In no event will the authors be held liable for any damages arising from the use of this software. -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it freely, -subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. - -Written by: Marten Svanfeldt -*/ - -#ifndef SPU_SYNC_H -#define SPU_SYNC_H - - -#include "PlatformDefinitions.h" - - -#if defined(WIN32) - -#define WIN32_LEAN_AND_MEAN -#ifdef _XBOX -#include -#else -#include -#endif - -///The btSpinlock is a structure to allow multi-platform synchronization. This allows to port the SPU tasks to other platforms. -class btSpinlock -{ -public: - //typedef volatile LONG SpinVariable; - typedef CRITICAL_SECTION SpinVariable; - - btSpinlock (SpinVariable* var) - : spinVariable (var) - {} - - void Init () - { - //*spinVariable = 0; - InitializeCriticalSection(spinVariable); - } - - void Lock () - { - EnterCriticalSection(spinVariable); - } - - void Unlock () - { - LeaveCriticalSection(spinVariable); - } - -private: - SpinVariable* spinVariable; -}; - - -#elif defined (__CELLOS_LV2__) - -//#include -#include - -///The btSpinlock is a structure to allow multi-platform synchronization. This allows to port the SPU tasks to other platforms. -class btSpinlock -{ -public: - typedef CellSyncMutex SpinVariable; - - btSpinlock (SpinVariable* var) - : spinVariable (var) - {} - - void Init () - { -#ifndef __SPU__ - //*spinVariable = 1; - cellSyncMutexInitialize(spinVariable); -#endif - } - - - - void Lock () - { -#ifdef __SPU__ - // lock semaphore - /*while (cellAtomicTestAndDecr32(atomic_buf, (uint64_t)spinVariable) == 0) - { - - };*/ - cellSyncMutexLock((uint64_t)spinVariable); -#endif - } - - void Unlock () - { -#ifdef __SPU__ - //cellAtomicIncr32(atomic_buf, (uint64_t)spinVariable); - cellSyncMutexUnlock((uint64_t)spinVariable); -#endif - } - - -private: - SpinVariable* spinVariable; - ATTRIBUTE_ALIGNED128(uint32_t atomic_buf[32]); -}; - -#else -//create a dummy implementation (without any locking) useful for serial processing -class btSpinlock -{ -public: - typedef int SpinVariable; - - btSpinlock (SpinVariable* var) - : spinVariable (var) - {} - - void Init () - { - } - - void Lock () - { - } - - void Unlock () - { - } - -private: - SpinVariable* spinVariable; -}; - - -#endif - - -#endif