在一个函数中多次交换缓冲区(OpenGL和C ++)

时间:2014-10-18 17:11:42

标签: c++ opengl buffer swap

我正在使用包含以下代码行的OpenGL显示功能:

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);

//Draw some stuff

glMatrixMode(GL_PROJECTION);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glutSwapBuffers();

但是,我在整个功能中多次应用此代码。我想要发生的是它绘制一些东西,回应用户的输入,绘制其他内容,再次响应用户的输入,最后绘制最后一件事。是否可以接受调用" glutSwapBuffers"多次在同一个功能?如果它不是一个大问题,有没有办法让它正确显示最终图纸?它绘制了我想要的前两张图片,但第三次屏幕保持白色。

1 个答案:

答案 0 :(得分:0)

通常你做一个循环

检查循环开始时的输入,然后更新变量,然后根据这些变量绘制一次并重新启动循环。

如果没有输入,则不依赖于时间的变量将保持不变,并且您绘制的变量将保持不变。