我在windows上有一个glMapBuffer问题
下面的代码工作正常,场景呈现
glBufferSubData(GL_ARRAY_BUFFER, from, to, bufferData)
但如果我想映射缓冲区并将glBufferSubData更改为memcpy
mappedBuffer = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY);
memcpy(mappedBuffer, (char *)bufferData + from, to);
然后我得到这个错误
OpenGL error
Debug message (1000): glDrawElementsInstanced has generated an error (GL_INVALID_OPERATION)
Source: API
Type: Error
Severity: high
在macos中,这工作得很好,所以我想知道我是否真的做错了。
我也发现相当奇怪的是,错误发生时,gldrawelementsinstancedget调用,而不是失败的glMapBuffer调用。
我只是忘记在memcpy之后使用glUnmapBuffer,由于某种原因在macos上不需要