Почему в GLUT не происходит переход на следующий кадр OpenGL?

Я пытаюсь нарисовать треугольник и вращать его (не важно вдоль какой оси).

Почему-то после вызова glutMainLoop() и вывода первого кадра (самого треугольника), то бишь завершение вызова процедуры display() в первый раз, для того чтобы display вызывался ещё раз и соответственно я получил следующий кадр с повернутым треугольником, мне необходимо кликнуть ЛКМ по создаваемому окну с треугольником. Как сделать так, чтобы мне не приходилось каждый раз нажимать ЛКМ (причем именно ЛКМ) чтобы треугольник вращался и получать следующий кадр автоматически без нажатия ЛКМ?

причем создается впечатление, что после отрисовки этого 1 кадра, приложение становится не активным (происходит что-то на подобии, после того как я переключусь между окнами и приходится каждый раз нужно нажимать ЛКМ чтобы начать печатать что-то в браузере) но при этом я не переключаюсь между окнами.

Использую Visual Studio 2022 с установленным при помощи нее же (функция manage NuGet packeges) freeglut 3.22 v140, Windows 11.

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

float point_f[] = { -1,-1,0, -1,1,0, 1,-1,0, 1,1,0 };
float a = 0;

void display() {
    glClearColor(0.7f, 0.7f, 0.7f, 0.7f);
    glClear(GL_COLOR_BUFFER_BIT);
    glPushMatrix();
    glRotatef(a, 0, 0, 1);
    glEnableClientState(GL_VERTEX_ARRAY);
    glVertexPointer(3, GL_FLOAT, 0, &point_f);
    glColor3f(0, 1, 0);
    glDrawArrays(GL_TRIANGLES, 0, 4);
    glDisableClientState(GL_VERTEX_ARRAY);
    glPopMatrix();
    glutSwapBuffers();
    a++;
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
    glutCreateWindow("hi");

    glutDisplayFunc(display);
    glutMainLoop();
}

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