有没有办法在下一个命令之前等待最后一个命令到GPU?

时间:2013-04-03 18:55:41

标签: c++ opengl glut

我在显示屏上有以下代码:(它是整个显示功能,空闲功能中的数据发生变化)

glClear(GL_COLOR_BUFFER_BIT);
glDrawPixels(100,100,GL_RGBA,GL_FLOAT,data);
glutSwapBuffers();
glutPostRedisplay();

当我编译此代码时,有时它会闪烁与背景相同的颜色。 我认为GPU在清晰颜色之前捕获了drawpixel,它清除了缓冲区。

我可以在清晰和平局之间延迟,但我几乎在每一帧之间改变data 我该怎么办? 是否有像命令一样的冲洗?

1 个答案:

答案 0 :(得分:4)

我怀疑您忘记在glutInitDisplayMode()调用中指定GLUT_DOUBLE,因此给出了非双缓冲上下文。

此外,在您的显示功能中包含glutPostRedisplay()并不习惯 - 这应该是在您的空闲功能结束时。