// get our VBO
vboID = vboIDList.get(1);
glBindBuffer(GL_COPY_READ_BUFFER, vboID);
// create new buffer and copy data
int newVboID = glGenBuffers();
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, newVboID);
indexBuffer = MemoryUtil.memAllocInt(indexBufferLength);
indexBuffer.put(new int[indexBufferLength]).flip();
glBufferData(GL_ELEMENT_ARRAY_BUFFER, indexBuffer, GL_STATIC_DRAW);
if(indexCount>0)
{
glCopyBufferSubData(GL_COPY_READ_BUFFER, GL_ELEMENT_ARRAY_BUFFER, 0, 0, indexCount * INT_SIZE);
//INT_SIZE is a static final = 4
//replace VBO
vboIDList.set(1, newVboID);
glDeleteBuffers(vboID);
// unbind buffers
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glBindBuffer(GL_COPY_READ_BUFFER, 0);
}
glCopyBufferSubData GL_COPY_READ_BUFFER GL_COPY_WHITE_BUFFER
最新推荐文章于 2024-01-23 17:17:23 发布