Почему в 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();
}