1

我最近创建了我的第一个 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;
}
4

1 回答 1

1

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

附带说明一下,如果您希望不断执行显示功能,请在 glutDisplayFunc 旁边使用 glutIdleFunc。

干杯!

于 2013-05-27T05:19:32.460 回答