【问题标题】:Swapping buffers multiple times in one function (OpenGL and C++)在一个函数中多次交换缓冲区(OpenGL 和 C++)
【发布时间】:2014-10-18 17:11:42
【问题描述】:

我正在使用包含以下代码行的 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”是否被认为是可接受的做法?如果这不是一个大问题,有没有办法让它正确显示最终的图纸?它绘制了我想要的前两张图片,但第三次屏幕仍然保持白色。

【问题讨论】:

    标签: c++ opengl buffer swap


    【解决方案1】:

    通常你会做一个循环

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

    如果没有输入,那么不依赖于时间的变量将保持不变,您绘制的内容将保持不变。

    【讨论】:

      猜你喜欢
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多