void glutMouseFunc ( void (*func)(int button, int state, int x, int y));

Параметр button принимает одно из значений GLUTLEFTBUTTON, GLUT_MIDDLE_BUTTON или GLUTRIGHTBUTTON и несет в себе информацию о том, какая клавиша мыши была нажата (или отпущена). Параметр state принимает одно из значений GLUTDOWN (клавиша нажата) или GLUT UP (клавиша отпущена). Параметры хиу содержат координаты курсора мыши.

Вызов обработчика, установленного glutMouseFunc, происходит лишь при нажатии или отпускании клавиши мыши. Если необходимо установить обработчик на перемещение мыши, то для этого следует воспользоваться функциями

void glutmotionfunc ( void (*func)(int x, int у ) );

void glutPassiveMotionFunc ( void (*func)(int x, int y) );

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

Обработчик клавиш, не имеющих ASCII-кодов, можно задать при помощи функции

void glutSpecialFunc ( void (*func)(int key, int x, int y) );

Параметр key несет в себе информацию о нажатой клавише и может принимать одно из следующих значений: GLUT_KEY_F1, GLUT_KEY_F2, GLUT_KEY_F3, GLUT_KEY_F4, GLUT_KEY_F5, GLUT_KEY_F6, GLUT. KEY_F7, GLUT_KEY_F8, GLUT_KEY_F9, GLUT_KEY_F10, GLUT_KEY_F11, GLUT_KEY_F 12, GLUT_KEY_LEFT, GLUT_KEY_RIGHT, GLUT_KEY_UP, GLUT_KEY_DOWN, GLUT_PAGE_UP, GLUT_PAGE_DOWN, GLUT_HOME, GLUT_END, GLUT_INSERT.

Клавиши Esc, BS и Delete имеют ASCII-коды, и их обработчик устанавливается функцией glutKeyboardFunc.

Обработчик, который постоянно будет вызываться (например, для анимации), можно установить при помощи функции

void glutldleFunc ( void (*func)() );

При использовании двойной буферизации для смеиы буферов местами (буфера, содержимое которого видно сейчас на экране, и буфера, в который производится вывод) служит функция:

void glutSwapBuffers ();

Для получения информации о внутренних переменных glut можно использовать следующую функцию


⇐ Предыдущая| |Следующая ⇒