int glutGet (GLEnum state );
Здесь величина state может принимать такие значения:
GLUT_WINDOW_X - для возврата л-координаты окна;
GLUT_WINDOW_Y - для возврата .у-координаты окна;
GLUT_WINDOW_WIDTH - для возврата ширины окна;
GLUT_WINDOW_HEIGHT - для возврата высоты окна;
GLUT_ELAPSED_TIME - для возврата времени в миллисекундах с момента инициализации glut.
Также glut поддерживает вывод ряда стандартных трехмерных объектов, таких, как прямоугольные параллелепипеды, сферы, торы, пирамиды и многое другое.
Конечно, библиотека glut содержит гораздо больше функций, чем приведено здесь. Полное описание glut, а также сами файлы для работы с ней можно найти на официальном сайте библиотеки OpenGL www.opengl.org.
Ниже приводится пример простейшей программы с использованием glut.
Основы библиотеки OpenGL
#include <gl/glut.h> #include <stdio.h>
void init () {
giclearColor ( 0.0, 0.0, 0.0, 1.0 ); glEnable ( GL_DEPTH_TEST );
}
void display () {
glClear { GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_B1T ); glutSwapBuffers ();
}
void reshape ( int w, int h ) {
glViewport ( 0, 0, (GLsizei)w, (GLsizei)h );
glMatrixMode ( GL_PROJECTION ); glLoadldentity (); glMatrixMode ( GL_MODELVIEW ); glLoadldentity ();
}
void key ( unsigned char key, int x, int y ) {
if ( key ==27 || key == 'q' || key == 'Q' ) exit ( 0 >; // quit requested
}
int main ( int argc, char** argv ) {
// initialise glut glutlnit ( &argc, argv );
glutlnitDisplayMode ( GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH >; glutlnitWindowSize ( 400, 400 ) ;
// create window int glWin = glutCreateWindow ( "OpenGL example 1" );
init();
// register handlers glutDisplayFunc ( display );
А. В: Боресков. Графика трехмерной компьютерной игры
glutReshapeFunc ( reshape ); glutKeyboardFunc ( key );
glutMainLoop ();
return 0;
}
Данная программа создает окно размером 400 на 400 пикселов с поддержкой двойной буферизации и буфера глубины, после чего очищает его.
Рисование геометрических объектов