From 7684c1b92df1388ae91a764adcbbad9ef8958b30 Mon Sep 17 00:00:00 2001 From: "erwin.coumans" Date: Wed, 21 Jul 2010 21:33:40 +0000 Subject: [PATCH] use relative path, to make it easier to include btBulletWorldImporter, #include "../BulletFileLoader/btBulletFile.h" Create a separate library for MiniCL (a rudimentary OpenCL wrapper to run kernels on multi-core CPU using the default C++ compiler, using Win32 Threads or Posix) tweak vectormath/vmInclude.h for PS3 platforms fix warning in btKinematicCharacterController --- CMakeLists.txt | 14 ++++--- Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt | 3 +- Demos/VectorAdd_OpenCL/MiniCL/CMakeLists.txt | 4 +- .../btBulletWorldImporter.cpp | 2 +- .../btKinematicCharacterController.cpp | 4 +- src/BulletMultiThreaded/CMakeLists.txt | 10 ----- src/CMakeLists.txt | 2 +- src/MiniCL/CMakeLists.txt | 40 +++++++++++++++++++ .../MiniCL.cpp | 0 .../MiniCLTask/MiniCLTask.cpp | 2 +- .../MiniCLTask/MiniCLTask.h | 0 .../MiniCLTaskScheduler.cpp | 0 .../MiniCLTaskScheduler.h | 0 src/vectormath/vmInclude.h | 8 +--- 14 files changed, 60 insertions(+), 29 deletions(-) create mode 100644 src/MiniCL/CMakeLists.txt rename src/{BulletMultiThreaded => MiniCL}/MiniCL.cpp (100%) rename src/{BulletMultiThreaded => MiniCL}/MiniCLTask/MiniCLTask.cpp (97%) rename src/{BulletMultiThreaded => MiniCL}/MiniCLTask/MiniCLTask.h (100%) rename src/{BulletMultiThreaded => MiniCL}/MiniCLTaskScheduler.cpp (100%) rename src/{BulletMultiThreaded => MiniCL}/MiniCLTaskScheduler.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 970deb46c..a38c7fa65 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,12 +31,16 @@ ENDIF() OPTION(USE_MSVC_RUNTIME_LIBRARY_DLL "Use MSVC Runtime Library DLL (/MD or /MDd)" ON) OPTION(USE_MSVC_INCREMENTAL_LINKING "Use MSVC Incremental Linking" OFF) -IF(WIN32) -SET (VECTOR_MATH_INCLUDE ${BULLET_PHYSICS_SOURCE_DIR}/src/BulletMultiThreaded/vectormath/sse CACHE PATH "Vector Math library include path.") -ELSE(WIN32) -SET (VECTOR_MATH_INCLUDE ${BULLET_PHYSICS_SOURCE_DIR}/src/BulletMultiThreaded/vectormath/scalar CACHE PATH "Vector Math library include path.") -ENDIF(WIN32) +OPTION(USE_CUSTOM_VECTOR_MATH "Use custom vectormath library" OFF) +IF (USE_CUSTOM_VECTOR_MATH) + ADD_DEFINITIONS(-DUSE_SYSTEM_VECTORMATH) + IF(WIN32) + SET (VECTOR_MATH_INCLUDE ${BULLET_PHYSICS_SOURCE_DIR}/src/vectormath/sse CACHE PATH "Vector Math library include path.") + ELSE(WIN32) + SET (VECTOR_MATH_INCLUDE ${BULLET_PHYSICS_SOURCE_DIR}/src/vectormath/scalar CACHE PATH "Vector Math library include path.") + ENDIF(WIN32) +ENDIF(USE_CUSTOM_VECTOR_MATH) IF (WIN32) FIND_PATH(DIRECTX_SDK_BASE_DIR Include/D3D11.h PATH $ENV{DXSDK_DIR} ) diff --git a/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt b/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt index 1b2266814..ae1dd5e96 100644 --- a/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt +++ b/Demos/ParticlesOpenCL/MiniCL/CMakeLists.txt @@ -25,7 +25,8 @@ IF (USE_GLUT) LINK_LIBRARIES( OpenGLSupport BulletDynamics - BulletCollision + BulletCollision + MiniCL BulletMultiThreaded LinearMath ${GLUT_glut_LIBRARY} diff --git a/Demos/VectorAdd_OpenCL/MiniCL/CMakeLists.txt b/Demos/VectorAdd_OpenCL/MiniCL/CMakeLists.txt index 7bea05fdc..be4e270a0 100644 --- a/Demos/VectorAdd_OpenCL/MiniCL/CMakeLists.txt +++ b/Demos/VectorAdd_OpenCL/MiniCL/CMakeLists.txt @@ -8,7 +8,9 @@ ${BULLET_PHYSICS_SOURCE_DIR}/src ) LINK_LIBRARIES( - BulletMultiThreaded LinearMath + MiniCL + BulletMultiThreaded + LinearMath ) ADD_EXECUTABLE(AppVectorAdd_Mini diff --git a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp index 07a20eeff..9fcd74698 100644 --- a/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp +++ b/Extras/Serialize/BulletWorldImporter/btBulletWorldImporter.cpp @@ -1,6 +1,6 @@ #include "btBulletWorldImporter.h" -#include "btBulletFile.h" +#include "../BulletFileLoader/btBulletFile.h" #include "btBulletDynamicsCommon.h" #include "BulletCollision/Gimpact/btGImpactShape.h" diff --git a/src/BulletDynamics/Character/btKinematicCharacterController.cpp b/src/BulletDynamics/Character/btKinematicCharacterController.cpp index 3f4b6d7ec..973255313 100644 --- a/src/BulletDynamics/Character/btKinematicCharacterController.cpp +++ b/src/BulletDynamics/Character/btKinematicCharacterController.cpp @@ -217,7 +217,7 @@ void btKinematicCharacterController::stepUp ( btCollisionWorld* world) { // phase 1: up btTransform start, end; - m_targetPosition = m_currentPosition + getUpAxisDirections()[m_upAxis] * (m_stepHeight + (m_verticalOffset > 0.0?m_verticalOffset:0.0)); + m_targetPosition = m_currentPosition + getUpAxisDirections()[m_upAxis] * (m_stepHeight + (m_verticalOffset > 0.f?m_verticalOffset:0.f)); start.setIdentity (); end.setIdentity (); @@ -392,7 +392,7 @@ void btKinematicCharacterController::stepDown ( btCollisionWorld* collisionWorld btVector3 gravity_drop = getUpAxisDirections()[m_upAxis] * downVelocity; m_targetPosition -= (step_drop + gravity_drop);*/ - btScalar downVelocity = (m_verticalVelocity<0.0?-m_verticalVelocity:0.0) * dt; + btScalar downVelocity = (m_verticalVelocity<0.f?-m_verticalVelocity:0.f) * dt; if(downVelocity > 0.0 && downVelocity < m_stepHeight && (m_wasOnGround || !m_wasJumping)) { diff --git a/src/BulletMultiThreaded/CMakeLists.txt b/src/BulletMultiThreaded/CMakeLists.txt index 326936f1c..b4207a72b 100644 --- a/src/BulletMultiThreaded/CMakeLists.txt +++ b/src/BulletMultiThreaded/CMakeLists.txt @@ -65,16 +65,6 @@ ADD_LIBRARY(BulletMultiThreaded btGpuUtilsSharedCode.h btGpuUtilsSharedDefs.h -#MiniCL provides a small subset of OpenCL - MiniCL.cpp - MiniCLTaskScheduler.cpp - MiniCLTaskScheduler.h - MiniCLTask/MiniCLTask.cpp - MiniCLTask/MiniCLTask.h - ../MiniCL/cl.h - ../MiniCL/cl_gl.h - ../MiniCL/cl_platform.h - ../MiniCL/cl_MiniCL_Defs.h ) #for now, only Direct 11 (Direct Compute) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d70e6004c..4b9e67162 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,4 +1,4 @@ -SUBDIRS( BulletMultiThreaded BulletSoftBody BulletCollision BulletDynamics LinearMath ) +SUBDIRS( MiniCL BulletMultiThreaded BulletSoftBody BulletCollision BulletDynamics LinearMath ) IF(INSTALL_LIBS) #INSTALL of other files requires CMake 2.6 diff --git a/src/MiniCL/CMakeLists.txt b/src/MiniCL/CMakeLists.txt new file mode 100644 index 000000000..6753febe2 --- /dev/null +++ b/src/MiniCL/CMakeLists.txt @@ -0,0 +1,40 @@ +#MiniCL provides a small subset of OpenCL + +INCLUDE_DIRECTORIES( + ${BULLET_PHYSICS_SOURCE_DIR}/src + ${VECTOR_MATH_INCLUDE} +) + +ADD_LIBRARY(MiniCL + MiniCL.cpp + MiniCLTaskScheduler.cpp + MiniCLTaskScheduler.h + MiniCLTask/MiniCLTask.cpp + MiniCLTask/MiniCLTask.h + ../MiniCL/cl.h + ../MiniCL/cl_gl.h + ../MiniCL/cl_platform.h + ../MiniCL/cl_MiniCL_Defs.h +) + + +IF (BUILD_SHARED_LIBS) + TARGET_LINK_LIBRARIES(MiniCL BulletMultiThreaded BulletDynamics BulletCollision) +ENDIF (BUILD_SHARED_LIBS) + +IF (INSTALL_LIBS) + IF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) + #INSTALL of other files requires CMake 2.6 + IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + IF(INSTALL_EXTRA_LIBS) + IF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS MiniCL DESTINATION .) + ELSE (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + INSTALL(TARGETS MiniCL DESTINATION lib) + INSTALL(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} DESTINATION include FILES_MATCHING PATTERN "*.h") + ENDIF (APPLE AND BUILD_SHARED_LIBS AND FRAMEWORK) + ENDIF (INSTALL_EXTRA_LIBS) + ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.5) + ENDIF (NOT INTERNAL_CREATE_DISTRIBUTABLE_MSVC_PROJECTFILES) +ENDIF (INSTALL_LIBS) + diff --git a/src/BulletMultiThreaded/MiniCL.cpp b/src/MiniCL/MiniCL.cpp similarity index 100% rename from src/BulletMultiThreaded/MiniCL.cpp rename to src/MiniCL/MiniCL.cpp diff --git a/src/BulletMultiThreaded/MiniCLTask/MiniCLTask.cpp b/src/MiniCL/MiniCLTask/MiniCLTask.cpp similarity index 97% rename from src/BulletMultiThreaded/MiniCLTask/MiniCLTask.cpp rename to src/MiniCL/MiniCLTask/MiniCLTask.cpp index babb1d24a..a56e96a0c 100644 --- a/src/BulletMultiThreaded/MiniCLTask/MiniCLTask.cpp +++ b/src/MiniCL/MiniCLTask/MiniCLTask.cpp @@ -19,7 +19,7 @@ subject to the following restrictions: #include "BulletMultiThreaded/SpuFakeDma.h" #include "LinearMath/btMinMax.h" #include "MiniCLTask.h" -#include "BulletMultiThreaded/MiniCLTaskScheduler.h" +#include "MiniCL/MiniCLTaskScheduler.h" #ifdef __SPU__ diff --git a/src/BulletMultiThreaded/MiniCLTask/MiniCLTask.h b/src/MiniCL/MiniCLTask/MiniCLTask.h similarity index 100% rename from src/BulletMultiThreaded/MiniCLTask/MiniCLTask.h rename to src/MiniCL/MiniCLTask/MiniCLTask.h diff --git a/src/BulletMultiThreaded/MiniCLTaskScheduler.cpp b/src/MiniCL/MiniCLTaskScheduler.cpp similarity index 100% rename from src/BulletMultiThreaded/MiniCLTaskScheduler.cpp rename to src/MiniCL/MiniCLTaskScheduler.cpp diff --git a/src/BulletMultiThreaded/MiniCLTaskScheduler.h b/src/MiniCL/MiniCLTaskScheduler.h similarity index 100% rename from src/BulletMultiThreaded/MiniCLTaskScheduler.h rename to src/MiniCL/MiniCLTaskScheduler.h diff --git a/src/vectormath/vmInclude.h b/src/vectormath/vmInclude.h index 7334691a2..63a84998c 100644 --- a/src/vectormath/vmInclude.h +++ b/src/vectormath/vmInclude.h @@ -4,17 +4,11 @@ #include "LinearMath/btScalar.h" -#if defined (USE_SYSTEM_VECTORMATH) +#if defined (USE_SYSTEM_VECTORMATH) || defined (__CELLOS_LV2__) #include #else //(USE_SYSTEM_VECTORMATH) #if defined (BT_USE_SSE) && defined (_WIN32) #include "sse/vectormath_aos.h" - #elif defined (__CELLOS_LV2__) - #ifdef __SPU__ - #include "spu/vectormath_aos.h" - #else - #include "ppu/vectormath_aos.h" - #endif //__SPU__ #else //all other platforms #include "scalar/vectormath_aos.h" #endif //(BT_USE_SSE) && defined (_WIN32)