GLUT 显示窗口超出窗口框并重复像素

问题描述 投票:0回答:1

我创建了一个简单的 GLUT 程序,它应该简单地绘制一个三角形:

#include <GL/glut.h>
#include <iostream>

using namespace std;

void render(void) {
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    glBegin(GL_TRIANGLES);
        glVertex3f(-0.5,-0.5,0.0);
        glVertex3f(0.5,0.0,0.0);
        glVertex3f(0.0,0.5,0.0);
    glEnd();
    cout << "ran" << endl;
    glutSwapBuffers();
}

void update(int value) {
    static_cast<void>(value);
    glutPostRedisplay();
    glutTimerFunc(16, update, 0);
}

int main(int argc, char **argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(0, 0);
    glutInitWindowSize(1000, 1000);
    glutCreateWindow("window");
    glutDisplayFunc(render);
    glutTimerFunc(25, update, 0);
    glutMainLoop();
    return 1;
}

...但是却有意想不到的结果:

当我没有更新功能时,它似乎只显示一次奇怪的屏幕,然后它会自行修复。当拖动窗口时,它还会显示正确的显示。我觉得可能是我机器的问题?我过去已经能够使用 OpenGL 和 GLUT。

c++ opengl windows-subsystem-for-linux glut freeglut
1个回答
0
投票

我遇到了同样的问题,相同的视觉效果,相同的环境。我觉得自己很傻,没有早点尝试,但是

wsl --update
,然后重新启动就解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.