我在Windows上使用glMapBuffer时遇到问题
下面的代码运行良好,并且渲染了场景
glBufferSubData(GL_ARRAY_BUFFER, from, to, bufferData)
但如果我尝试Map缓冲区并使用memcpy更改glBufferSubData,如下所示
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中,这很好用,所以我想知道我是否真的犯了一个错误。
此外,我发现很奇怪的是,当调用glDrawElementsInstanced时会发生错误,而不是在调用glMapBuffer时失败。
1条答案
按热度按时间ercv8c1e1#
我只是忘了在memcpy之后使用glUnmapBuffer,由于某些原因,在macos上不需要