Как обрабатывать команды OpenGL в цикле

Пишу простую программу - точка ползёт по экрану.

Не понимаю, как написать цикл. Написал такой код. Переменная X изменяется в цикле, и у точки меняются координаты. Ошибки компилятора нет, но окно с точкой не выводится. Может я с последовательностью команд что-то напутал?

#include <iostream>
#include <glut.h>
#include <windows.h>
 
float X;
 
void display() 
{
    glClearColor(1.0, 1.0, 1.0, 1.0);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glPointSize(8);
   
        glBegin(GL_POINTS);
 
            glColor3f(0,0,0);
            glVertex2f(X, X);   
 
        glEnd();
   
    glutSwapBuffers();
}
 
 
int main(int argc, char** argv)
{
    X = 0.1;
 
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
    glutInitWindowPosition(0, 0);
    glutInitWindowSize(1920, 1080);
    glutCreateWindow("Проба");
      
    glutDisplayFunc(display);
 
    while (X < 1)
    {
        X = X + 0.01;
        glutDisplayFunc(display);
        glutMainLoop();
        return 0;
    }
}

Ответы (0 шт):