Страница 20

Введение в OpenGl. Учебник

Главная
Страница 1
Страница 2
Страница 3
Страница 4
Страница 5
Страница 6
Страница 7
Страница 8
Страница 9
Страница 10
Страница 11
Страница 12
Страница 13
Страница 14
Страница 15
Страница 16
Страница 17
Страница 18
Страница 19
Страница 20
Страница 21






Скачать учебник
Предыдущая страница
Следующая страница
(-25.0,-25.0,25.0,25.0);
glPopMatrix();
glutSwapBuffers();
}

void spinDisplay(void)
{
spin=spin+1.0;

if(spin>360.0) spin=spin-360.0;

glutPostRedisplay();
}

void reshape(int w, int h)
{
glViewport(0,0,(GLsizei) w, (GLsizei) h);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-50.0,50.0,-50.0,50.0,-1.0,1.0);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
}

//При нажатии левой кнопки зарегистрировать
//
функцию фоновой обработки (поворота)
//
При нажатии правойотменить регистрацию
void mouse(int button,int state,int x,int y)
{
switch(button)
{
case GLUT_LEFT_BUTTON:
if (state==GLUT_DOWN) glutIdleFunc(spinDisplay); break;

case GLUT_RIGHT_BUTTON: if (state==GLUT_DOWN) glutIdleFunc(NULL); break;
}
}

//Запросить режим двойной буферизации
//З
арегистрировать функции обработки мышиного ввода
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow("Двойная буферизация");
init();
glutDisplayFunc(display);
glutReshapeFunc(reshape);
glutMouseFunc(mouse);
glutMainLoop();

return 0;
}

1.13 Ссылки на примеры главы

Приложение hello: простейшее приложение, отображающее белый квадрат на черном фоне.
Скачать

Приложение double: пример использования двойной буферизации. Левая кнопка мыши запускает вращение квадрата, правая – останавливает, средняя – меняет режим отображения квадрата (заливка, точки или линии).
Скачать

Исходный код библиотеки glut версии 3.7.
Скачать

Предыдущая страница
Следующая страница
Hosted by uCoz