2.86
don't use GL_LINEAR_MIPMAP_LINEAR for shadow maps optimize gpu upload (use glBufferSubData instead of glMapBuffer Avoid checking char array against zero.
enable URDF loading throught the 'File/Open' menu set a default camera targets for each demo. note that it is only reset when switching to a different demo, so you can restart at your chosen location. no OpenCL pairbench drawing in OpenGL2 (there is no VBO available etc)
fix many warnings remove btMultiSapBroadphase.* make collisionFilterGroup/collisionFilterMark int (instead of short int)
move 'main' functions into a separate folder, to make it easier to create standalone demos (console app without gui, or opengl app, and possibly even other versions, like a software renderer, producing pictures in the cloud) Add a line in an example cpp file to allow a standalone version. See examples/BasicExample.cpp: B3_STANDALONE_EXAMPLE(BasicExampleCreateFunc)
MultiThreaded Demo: - fixing various race conditions throughout (usage of static vars, etc) - addition of a few lightweight mutexes (which are compiled out by default) - slight code rearrangement in discreteDynamicsWorld to facilitate multithreading - PoolAllocator::allocate() can now be called when pool is full without crashing (null pointer returned) - PoolAllocator allocate and freeMemory, are OPTIONALLY threadsafe (default is un-threadsafe) - CollisionDispatcher no longer checks if the pool allocator is full before calling allocate(), instead it just calls allocate() and checks if the return is null -- this avoids a race condition - SequentialImpulseConstraintSolver OPTIONALLY uses different logic in getOrInitSolverBody() to avoid a race condition with kinematic bodies - addition of 2 classes which together allow simulation islands to be run in parallel: - btSimulationIslandManagerMt - btDiscreteDynamicsWorldMt - MultiThreadedDemo example in the example browser demonstrating use of OpenMP, Microsoft PPL, and Intel TBB - use multithreading for other demos - benchmark demo: add parallel raycasting