add some micro-sleep to prevent 100% CPU/memory bus hogging, preventing the graphics thread from making progress.

debug draw color black for contact normal
move debug draw option for constraint frames into 'k' key.
This commit is contained in:
YunfeiBai
2016-08-19 13:58:53 -07:00
parent 94161246d9
commit 6751648bce
3 changed files with 17 additions and 4 deletions

View File

@@ -194,7 +194,6 @@ void MyKeyboardCallback(int key, int state)
}
if (key=='c' && state)
{
gDebugDrawFlags ^= btIDebugDraw::DBG_DrawConstraints;
gDebugDrawFlags ^= btIDebugDraw::DBG_DrawContactPoints;
}
if (key == 'd' && state)
@@ -202,6 +201,11 @@ void MyKeyboardCallback(int key, int state)
gDebugDrawFlags ^= btIDebugDraw::DBG_NoDeactivation;
gDisableDeactivation = ((gDebugDrawFlags & btIDebugDraw::DBG_NoDeactivation) != 0);
}
if (key == 'k' && state)
{
gDebugDrawFlags ^= btIDebugDraw::DBG_DrawConstraints;
}
if (key=='l' && state)
{
gDebugDrawFlags ^= btIDebugDraw::DBG_DrawConstraintLimits;

View File

@@ -85,8 +85,8 @@ public:
virtual void drawContactPoint(const btVector3& PointOnB,const btVector3& normalOnB,btScalar distance,int lifeTime,const btVector3& color)
{
drawLine(PointOnB,PointOnB+normalOnB*distance,color);
btVector3 red(0.3, 1., 0.3);
drawLine(PointOnB, PointOnB + normalOnB*0.01, red);
btVector3 ncolor(0, 0, 0);
drawLine(PointOnB, PointOnB + normalOnB*0.01, ncolor);
}

View File

@@ -131,12 +131,14 @@ void MotionThreadFunc(void* userPtr,void* lsMemory)
{
//todo(erwincoumans): do we want some sleep to reduce CPU resources in this thread?
double deltaTimeInSeconds = double(clock.getTimeMicroseconds())/1000000.;
if (deltaTimeInSeconds<(1./5000.))
{
skip++;
skip1++;
if (0==(skip1&0x3))
{
b3Clock::usleep(250);
}
@@ -281,6 +283,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
}
@@ -294,6 +297,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
}
@@ -326,6 +330,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
return m_textureId;
}
@@ -343,6 +348,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
return m_shapeIndex;
}
@@ -359,6 +365,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
return m_instanceId;
}
@@ -370,6 +377,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
}
@@ -444,6 +452,7 @@ public:
m_cs->unlock();
while (m_cs->getSharedParam(1)!=eGUIHelperIdle)
{
b3Clock::usleep(1000);
}
}