diff --git a/Demos/GyroscopicDemo/GyroscopicDemo.cpp b/Demos/GyroscopicDemo/GyroscopicDemo.cpp index 1655c16e8..31b399686 100644 --- a/Demos/GyroscopicDemo/GyroscopicDemo.cpp +++ b/Demos/GyroscopicDemo/GyroscopicDemo.cpp @@ -58,7 +58,7 @@ void GyroscopicDemo::initPhysics() setShadows(true); setCameraUp(btVector3(0,0,1)); setCameraForwardAxis(1); - m_sundirection.setValue(0,-1,-1); + m_sundirection.setValue(0,-1000,-1000); setCameraDistance(7.f); setupEmptyDynamicsWorld(); diff --git a/src/BulletDynamics/Character/btKinematicCharacterController.cpp b/src/BulletDynamics/Character/btKinematicCharacterController.cpp index e853c469e..31faf1df5 100644 --- a/src/BulletDynamics/Character/btKinematicCharacterController.cpp +++ b/src/BulletDynamics/Character/btKinematicCharacterController.cpp @@ -636,7 +636,7 @@ void btKinematicCharacterController::playerStep ( btCollisionWorld* collisionWo // printf(" dt = %f", dt); // quick check... - if (!m_useWalkDirection && m_velocityTimeInterval <= 0.0) { + if (!m_useWalkDirection && (m_velocityTimeInterval <= 0.0 || m_walkDirection.fuzzyZero())) { // printf("\n"); return; // no motion } diff --git a/src/LinearMath/btScalar.h b/src/LinearMath/btScalar.h index 520c3669f..fdb736272 100644 --- a/src/LinearMath/btScalar.h +++ b/src/LinearMath/btScalar.h @@ -72,8 +72,9 @@ inline int btGetVersion() #define btFsel(a,b,c) __fsel((a),(b),(c)) #else -#if (!defined (_M_ARM) && WINAPI_FAMILY != WINAPI_FAMILY_PHONE_APP)//Do not turn SSE on for Windows Phone Emulators -#if (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400) && (!defined (BT_USE_DOUBLE_PRECISION)) +#if defined (_M_ARM) + //Do not turn SSE on for ARM (may want to turn on BT_USE_NEON however) +#elif (defined (_WIN32) && (_MSC_VER) && _MSC_VER >= 1400) && (!defined (BT_USE_DOUBLE_PRECISION)) #if _MSC_VER>1400 #define BT_USE_SIMD_VECTOR3 #endif @@ -94,7 +95,6 @@ inline int btGetVersion() //#define BT_USE_SSE_IN_API #endif //BT_USE_SSE #include -#endif #endif #endif//_XBOX