@sitev_ru
sitev.ru - мой блог ...

Является ли GLUT многозадачной?

Изучаю библиотеку GLUT. Создаётся впечатление, что в GLUT отрисовка и события работают параллельно, создавая многозадачность?
  • Вопрос задан
  • 2329 просмотров
Пригласить эксперта
Ответы на вопрос 1
Нет, но можно самостоятельно разделить. Там все находиться в одном цикле, сначала ввод, а потом TimerFunc. Ввод происходит быстро, вот и незаметен.

Тестовый код
#include<glut.h>

void Keyboard(unsigned char key, int x, int y)
{
	while (true);
}
float angle = 0;
void Draw()
{
	angle++;
	glLoadIdentity();
	glRotatef(angle, 0,0,1);
	glClear(GL_COLOR_BUFFER_BIT);
	glBegin(GL_LINES);
		glVertex3f(1, 1, 0);
		glVertex3f(-1, -1, 0);
	glEnd();
	glFlush();
}
void Time(int)
{	
	Draw();
	glutTimerFunc(0,Time,50);
}
void Init()
{	
	glClearColor(1.0,1.0,1.0,0.0);  
	glColor3f(0,0,0);
	glOrtho(0.0,1,0.0,1, 1,-1); 
}

int main(int argv, char** argc)
{	
	glutInit(&argv, argc);
	glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); 
	glutInitWindowPosition(200,200);
	glutInitWindowSize(400,400);
	glutCreateWindow("hello");
	Init();
	glutKeyboardFunc(Keyboard);
	glutDisplayFunc(Draw);
	glutTimerFunc(0,Time,50);
	glutMainLoop();
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы