有谁知道为什么会这样:
我使用带有GL_POINTS(交错数组)的glDrawArrays绘制到2D屏幕。如果我在调用glDrawArrays之后翻转缓冲区(presentRenderbuffer) - 所以在绘制每个“tile”之后 - 一切正常。
这当然是效率低下的..所以如果我将presentRenderBuffer移到draw循环之外,我就会得到错误。基本上屏幕的一部分不会画,而且它总是在同一个地方(屏幕的中间,水平)。
我正在使用retainbacking(因为我只更新了更改过的图块),所以我需要依赖帧缓冲区在绘制之间保持相同,这样我就可以绘制它了。
任何想法为什么每个瓷砖之后的presentRenderBuffer工作正常,而所有的绘制后最后一个presenRenderBuffer不会?
编辑:此外,在平铺绘制循环中添加glFlush(),并在循环外移动presentRenderBuffer也会生成正确的图像。