avoid MT crash in VR/physics server due to printf from separate thread.
add fps display in VR use 1./240. internal substep for real-time physics sim in VR/physics server for more accurate robotics sim.
This commit is contained in:
@@ -490,7 +490,7 @@ void MyComboBoxCallback(int comboId, const char* item)
|
|||||||
void MyGuiPrintf(const char* msg)
|
void MyGuiPrintf(const char* msg)
|
||||||
{
|
{
|
||||||
printf("b3Printf: %s\n",msg);
|
printf("b3Printf: %s\n",msg);
|
||||||
if (gui2)
|
if (!gDisableDemoSelection)
|
||||||
{
|
{
|
||||||
gui2->textOutput(msg);
|
gui2->textOutput(msg);
|
||||||
gui2->forceUpdateScrollBars();
|
gui2->forceUpdateScrollBars();
|
||||||
@@ -502,7 +502,7 @@ void MyGuiPrintf(const char* msg)
|
|||||||
void MyStatusBarPrintf(const char* msg)
|
void MyStatusBarPrintf(const char* msg)
|
||||||
{
|
{
|
||||||
printf("b3Printf: %s\n", msg);
|
printf("b3Printf: %s\n", msg);
|
||||||
if (gui2)
|
if (!gDisableDemoSelection)
|
||||||
{
|
{
|
||||||
bool isLeft = true;
|
bool isLeft = true;
|
||||||
gui2->setStatusBarMessage(msg,isLeft);
|
gui2->setStatusBarMessage(msg,isLeft);
|
||||||
@@ -513,7 +513,7 @@ void MyStatusBarPrintf(const char* msg)
|
|||||||
void MyStatusBarError(const char* msg)
|
void MyStatusBarError(const char* msg)
|
||||||
{
|
{
|
||||||
printf("Warning: %s\n", msg);
|
printf("Warning: %s\n", msg);
|
||||||
if (gui2)
|
if (!gDisableDemoSelection)
|
||||||
{
|
{
|
||||||
bool isLeft = false;
|
bool isLeft = false;
|
||||||
gui2->setStatusBarMessage(msg,isLeft);
|
gui2->setStatusBarMessage(msg,isLeft);
|
||||||
|
|||||||
@@ -2445,7 +2445,7 @@ void PhysicsServerCommandProcessor::stepSimulationRealTime(double dtInSec)
|
|||||||
loadUrdf("plane.urdf", btVector3(0, 0, 0), btQuaternion(0, 0, 0, 1), true, true, &bodyId, &bufferServerToClient[0], bufferServerToClient.size());
|
loadUrdf("plane.urdf", btVector3(0, 0, 0), btQuaternion(0, 0, 0, 1), true, true, &bodyId, &bufferServerToClient[0], bufferServerToClient.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
m_data->m_dynamicsWorld->stepSimulation(dtInSec);
|
m_data->m_dynamicsWorld->stepSimulation(dtInSec,10,1./240.);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -872,7 +872,22 @@ void PhysicsServerExample::renderScene()
|
|||||||
static int frameCount=0;
|
static int frameCount=0;
|
||||||
frameCount++;
|
frameCount++;
|
||||||
char bla[1024];
|
char bla[1024];
|
||||||
sprintf(bla,"VR sub-title text test, frame %d", frameCount/2);
|
|
||||||
|
static btScalar prevTime = m_clock.getTimeSeconds();
|
||||||
|
btScalar curTime = m_clock.getTimeSeconds();
|
||||||
|
static btScalar deltaTime = 0.f;
|
||||||
|
static int count = 10;
|
||||||
|
if (count-- < 0)
|
||||||
|
{
|
||||||
|
count = 10;
|
||||||
|
deltaTime = curTime - prevTime;
|
||||||
|
}
|
||||||
|
if (deltaTime == 0)
|
||||||
|
deltaTime = 1000;
|
||||||
|
|
||||||
|
prevTime = curTime;
|
||||||
|
|
||||||
|
sprintf(bla,"VR sub-title text test,fps = %f, frame %d", 1./deltaTime, frameCount/2);
|
||||||
float pos[4];
|
float pos[4];
|
||||||
m_guiHelper->getAppInterface()->m_renderer->getActiveCamera()->getCameraTargetPosition(pos);
|
m_guiHelper->getAppInterface()->m_renderer->getActiveCamera()->getCameraTargetPosition(pos);
|
||||||
btTransform viewTr;
|
btTransform viewTr;
|
||||||
|
|||||||
Reference in New Issue
Block a user