- Update the bullet source files
- Update the visual studio project accordingly (e.g. add any new cpp files)
- Apply the patches required:
See https://github.com/libgdx/libgdx/commit/da30acc5b3521d0fda760ba765ae76a951bd41d7
- Add a default ctor to btWheelInfo.h (around line 82): `btWheelInfo() {}`
- Comment out `class btVehicleTuning;` in btRaycastVehicle.h ~22
- Add ContactStartedCallback and ContactEndedCallback, based on http://www.bulletphysics.org/Bullet/phpBB3/viewtopic.php?t=7739&p=32470, as shown in https://github.com/libgdx/libgdx/commit/d492533c3ed9447560770a7482d32c2bfbae5df7:
btManifoldResult.cpp ~87:
bool isNewCollision = m_manifoldPtr->getNumContacts() == 0;
btManifoldResult.cpp ~154:
if (gContactStartedCallback && isNewCollision)
{
gContactStartedCallback(m_manifoldPtr);
}
btPersistentManifold.cpp ~24:
ContactStartedCallback gContactStartedCallback = 0;
ContactEndedCallback gContactEndedCallback = 0;
btPersistentManifold.h ~31:
#ifndef SWIG
class btPersistentManifold;
btPersistentManifold.h ~36:
typedef void(*ContactStartedCallback)(btPersistentManifold* const &manifold);
typedef void(*ContactEndedCallback)(btPersistentManifold* const &manifold);
btPersistentManifold.h ~40:
extern ContactStartedCallback gContactStartedCallback;
extern ContactEndedCallback gContactEndedCallback;
#endif //SWIG
btPersistentManifold.h ~183:
if (gContactEndedCallback && m_cachedPoints == 0)
{
gContactEndedCallback(this);
}
btPersistentManifold.h ~242:
if (gContactEndedCallback && m_cachedPoints)
{
gContactEndedCallback(this);
}
- Fix cast error for mingw: bDNA.cpp ~393+429 & bFile.cpp ~446+483: `nr= (long)*(intptr_t*)&cp;`
- Disable SSE for IOS, in btScalar.h, around line 176, that starts with `#if (defined(__APPLE__) `...
btScalar.h ~177: Add: `#include <TargetConditionals.h>`
btScalar.h ~178: Modify the line to look `like: #if (defined (__i386__) || defined (__x86_64__)) && (!(TARGET_IPHONE_SIMULATOR))`
btScalar.h ~179+180+183: comment out `#define BT_USE_SIMD_VECTOR3` and `BT_USE_SSE` and `#define BT_USE_SSE_IN_API`