http://forum.cocos.com/t/cocos2d-x-3-10-bug/37040
3.10的实现有点不一样,你可以试一下修改代码如下
void Renderer::setupVBO()
{
glGenBuffers(2, &_buffersVBO[0]);
glGenBuffers(2, &_quadbuffersVBO[0]);
mapBuffers();
}
void Renderer::mapBuffers()
{
// Avoid changing the element buffer for whatever VAO might be bound.
GL::bindVAO(0);
// comment the following lines
// glBindBuffer(GL_ARRAY_BUFFER, _buffersVBO[0]);
// glBufferData(GL_ARRAY_BUFFER, sizeof(_verts[0]) * VBO_SIZE, _verts, GL_DYNAMIC_DRAW);
//
// glBindBuffer(GL_ARRAY_BUFFER, _quadbuffersVBO[0]);
// glBufferData(GL_ARRAY_BUFFER, sizeof(_quadVerts[0]) * VBO_SIZE, _quadVerts, GL_DYNAMIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _buffersVBO[1]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(_indices[0]) * INDEX_VBO_SIZE, _indices, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _quadbuffersVBO[1]);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(_quadIndices[0]) * INDEX_VBO_SIZE, _quadIndices, GL_STATIC_DRAW);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
CHECK_GL_ERROR_DEBUG();
}
注释掉Renderer::mapBuffers()
的几行代码。