Почему glClear не очищает мой экран?

Вот моя простая программа opengl. Я пытаюсь очистить экран перед тем, как нарисовать треугольник. Я вызвал glClear () в своей функции init (), однако казалось, что она не смогла очистить экран.

#include <stdio.h>
#include <stdlib.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

void myIdleFunc()
{
    glBegin(GL_TRIANGLES);
    {
        glColor3f(1.0f, 1.0f, 1.0f);
        glVertex2f(0.0f, 1.0f);
        glVertex2f(-1.0f, -1.0f);
        glVertex2f(1.0f, -1.0f);
    }
    glEnd();

    glFlush();

    usleep(1000000);
}

void init()
{
    glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}

int main(int argc, char **argv)
{
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE);
    glutCreateWindow("Hello, World!");

    init();

    glutIdleFunc(myIdleFunc);
    glutMainLoop();
    return 1;
}

Вот снимок экрана, текст взят из терминала gnome на заднем плане.

enter image description here

6
задан xzhu 22 May 2011 в 03:14
поделиться