diff --git a/examples/Importers/ImportURDFDemo/UrdfParser.h b/examples/Importers/ImportURDFDemo/UrdfParser.h index 0bb291e58..de96885e5 100644 --- a/examples/Importers/ImportURDFDemo/UrdfParser.h +++ b/examples/Importers/ImportURDFDemo/UrdfParser.h @@ -87,7 +87,16 @@ struct UrdfGeometry UrdfGeometry() :m_type(URDF_GEOM_UNKNOWN), - m_hasFromTo(false), + m_sphereRadius(1), + m_boxSize(1,1,1), + m_capsuleRadius(1), + m_capsuleHeight(1), + m_hasFromTo(0), + m_capsuleFrom(0,1,0), + m_capsuleTo(1,0,0), + m_planeNormal(0,0,1), + m_meshFileType(0), + m_meshScale(1,1,1), m_hasLocalMaterial(false) { } diff --git a/examples/OpenGLWindow/GLInstancingRenderer.cpp b/examples/OpenGLWindow/GLInstancingRenderer.cpp index 39a8c8a5b..7d628b11d 100644 --- a/examples/OpenGLWindow/GLInstancingRenderer.cpp +++ b/examples/OpenGLWindow/GLInstancingRenderer.cpp @@ -893,17 +893,25 @@ int GLInstancingRenderer::registerShape(const float* vertices, int numvertices, gfxObj->m_numVertices = numvertices; - glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + int vertexStrideInBytes = 9*sizeof(float); int sz = numvertices*vertexStrideInBytes; + int totalUsed = vertexStrideInBytes*gfxObj->m_vertexArrayOffset+sz; + b3Assert(totalUsedm_maxShapeCapacityInBytes); + if (totalUsed>=m_data->m_maxShapeCapacityInBytes) + { + return -1; + } + + glBindBuffer(GL_ARRAY_BUFFER, m_data->m_vbo); + #if 0 char* dest= (char*)glMapBuffer( GL_ARRAY_BUFFER,GL_WRITE_ONLY);//GL_WRITE_ONLY #ifdef B3_DEBUG - int totalUsed = vertexStrideInBytes*gfxObj->m_vertexArrayOffset+sz; - b3Assert(totalUsedm_maxShapeCapacityInBytes); + #endif//B3_DEBUG memcpy(dest+vertexStrideInBytes*gfxObj->m_vertexArrayOffset,vertices,sz);