reduce stack usage (cause some crashes in low-stack tests)

fix crashing bug in changeVisualShape
add differential gear version of racecar (only 2 back wheels are powered)
This commit is contained in:
Erwin Coumans
2017-06-20 20:22:14 -07:00
parent 61f27a5c72
commit 71170d6384
7 changed files with 857 additions and 33 deletions

View File

@@ -686,17 +686,19 @@ void TinyRendererVisualShapeConverter::changeRGBAColor(int bodyUniqueId, int lin
break;
}
}
TinyRendererObjectArray** visualArrayPtr = m_data->m_swRenderInstances.getAtIndex(start);
TinyRendererObjectArray* visualArray = *visualArrayPtr;
btHashPtr colObjHash = m_data->m_swRenderInstances.getKeyAtIndex(start);
const btCollisionObject* colObj = (btCollisionObject*) colObjHash.getPointer();
float rgba[4] = {rgbaColor[0], rgbaColor[1], rgbaColor[2], rgbaColor[3]};
for (int v=0;v<visualArray->m_renderObjects.size();v++)
if (start>=0)
{
visualArray->m_renderObjects[v]->m_model->setColorRGBA(rgba);
TinyRendererObjectArray** visualArrayPtr = m_data->m_swRenderInstances.getAtIndex(start);
TinyRendererObjectArray* visualArray = *visualArrayPtr;
btHashPtr colObjHash = m_data->m_swRenderInstances.getKeyAtIndex(start);
const btCollisionObject* colObj = (btCollisionObject*) colObjHash.getPointer();
float rgba[4] = {rgbaColor[0], rgbaColor[1], rgbaColor[2], rgbaColor[3]};
for (int v=0;v<visualArray->m_renderObjects.size();v++)
{
visualArray->m_renderObjects[v]->m_model->setColorRGBA(rgba);
}
}
}