Add a btIDEbugDraw::clearLines, helps multi-threaded rendering of lines (while updating those lines in a dynamics world in a different thread)

Expose COV_ENABLE_VR_RENDER_CONTROLLERS, to enable/disable rendering of controllers (and some frames) in VR
Expose COV_ENABLE_RENDERING to enable/disable rendering.
Fix some multi-threading issues (potential crashes), related to debug drawing/rendering in one thread, while changing the dynamics world/removing/resetSimulation in a different thread.
This commit is contained in:
Erwin Coumans
2017-05-16 12:19:03 -07:00
parent 4dea68e43e
commit 433d11d8cf
24 changed files with 354 additions and 110 deletions

View File

@@ -1514,6 +1514,8 @@ void btCollisionWorld::debugDrawWorld()
{
if (getDebugDrawer())
{
getDebugDrawer()->clearLines();
btIDebugDraw::DefaultColors defaultColors = getDebugDrawer()->getDefaultColors();
if ( getDebugDrawer()->getDebugMode() & btIDebugDraw::DBG_DrawContactPoints)

View File

@@ -798,6 +798,8 @@ void btMultiBodyDynamicsWorld::debugDrawWorld()
{
BT_PROFILE("btMultiBodyDynamicsWorld debugDrawWorld");
btDiscreteDynamicsWorld::debugDrawWorld();
bool drawConstraints = false;
if (getDebugDrawer())
{
@@ -867,7 +869,7 @@ void btMultiBodyDynamicsWorld::debugDrawWorld()
}
}
btDiscreteDynamicsWorld::debugDrawWorld();
}

View File

@@ -469,6 +469,10 @@ class btIDebugDraw
drawLine(transform*pt2,transform*pt3,color);
}
virtual void clearLines()
{
}
virtual void flushLines()
{
}