调整我的简单OpenGL / GLUT窗口大小会产生奇怪的线条

时间:2013-05-27 04:59:30

标签: c++ opengl resize window glut

我最近创建了我的第一个GLUT窗口并给它一个白色背景,并在某处可以看到相机。

无论如何,我调整窗口大小,我得到了这些奇怪的线条。好像它会闪现并捕获我桌面屏幕的最新碎片。这是我在imgur上的截图链接:

http://i.imgur.com/gSRWnc5.png

很抱歉,如果图片有点过大,但我想知道是否有修复这种奇怪的故障。

这是我的代码:

#include <OpenGL/OpenGL.h>
#include <GLUT/GLUT.h>
void display(void) {
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
    glFlush();
}   

int main (int argc, char **argv) {

    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutInitWindowSize(400, 400);
    glutInitWindowPosition(100, 100);
    glutCreateWindow("My First GLUT/OpenGL Window");
    glutDisplayFunc(display);
    glutMainLoop();
    return 0;
}

1 个答案:

答案 0 :(得分:1)

你得到那些奇怪的故障,因为你没有调整视口大小。您需要做的是为glutReshapeFunc创建一个回调函数,您可以在其中调用glViewport来调整视口大小。然后,您需要调用glutPostRedisplay才能重新执行显示功能。

另外,如果您希望不断执行显示功能,请在glutDisplayFunc旁边使用glutIdleFunc。

干杯!