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

标签 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;
}

最佳答案

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

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

干杯!

关于c++ - 调整我简单的 OpenGL/GLUT 窗口的大小会产生奇怪的线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16766543/

相关文章:

c++ - QT/C++ Commit a value to other class

c++ - std::vector<T> 的字符串表示

c++ - 跨线程的内存管理

opengl - glew32.lib 链接器错误

html - 当我调整它的大小时,我的 html 网页乱七八糟

c++ - 如何在调整窗口大小时使文本显示在窗口中央,visual c++

c++ - 是否在C++标准中定义了memcpy(dest,src,0)?

java - 我在哪里可以下载 JOGL?

python - glBufferData 用0分隔数据

jquery - JQuery 中的动态高度