Void glutMainLoop(void);
Программа чертит линию посередине экрана. Вот текст самой программы: #include <GL/glut.h>
void Reshape(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(-1, 1, -1, 1); glMatrixMode(GL_MODELVIEW); }
void Draw(void) { glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 1.0f); glLineWidth(1);
glBegin(GL_LINES); glVertex2f(0, 0.5f); glVertex2f(0, -0.5f); glEnd();
glFlush(); }
int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitWindowSize(400, 300); glutInitWindowPosition(100, 100);
glutInitDisplayMode(GLUT_RGB); glutCreateWindow("Romka Demo");
glutReshapeFunc(Reshape); glutDisplayFunc(Draw); glClearColor(0, 0, 0, 0);
glutMainLoop(); return 0; }
Работа с окнами в GLUT GLUT предоставляет всевозможные функции для работы с окнами. Среди этих функций найти можно практически всё необходимое для создания небольших программ. Функция glutCreateWindow при успешном завершении возвращает дескриптор созданного окна (значение int). Это значение в дальнейшем может быть использовано для операций с этим окном. Рассмотрим те операции, которые можно производить над окном. Прежде всего необходимо выбрать наше окно, т.е. сделать его текущим (не забывайте, создано может быть несколько окон и надо сообщить GLUT с каким именно окном вы хотите работать). Если вы создали всего одно окно то следующую функцию можно опустить. Void glutSetWindow(int win); Эта функция делает окно win текущим. После этого можно производить различные операции над этим окном. Int glutGetWindow(void); Эта функция позволяет вам определить какое в данный момент окно является активным. Функция возвращает дескриптор окна. После того как выбрано окно, можно производить над ним конкретные действия:
Существует еще одна интересная функция, которая позволяет устанавливать в окне форму курсора: Void glutSetCursor(int cursor); Параметр cursor может принимать одно из следующих значений: GLUT_CURSOR_RIGHT_ARROW, GLUT_CURSOR_LEFT_ARROW, GLUT_CURSOR_INFO, GLUT_CURSOR_DESTROY, GLUT_CURSOR_HELP, GLUT_CURSOR_CYCLE, GLUT_CURSOR_SPRAY, GLUT_CURSOR_WAIT, GLUT_CURSOR_TEXT, GLUT_CURSOR_CROSSHAIR, GLUT_CURSOR_UP_DOWN, GLUT_CURSOR_LEFT_RIGHT, GLUT_CURSOR_TOP_SIDE, GLUT_CURSOR_BOTTOM_SIDE, GLUT_CURSOR_LEFT_SIDE, GLUT_CURSOR_RIGHT_SIDE, GLUT_CURSOR_TOP_LEFT_CORNER, GLUT_CURSOR_TOP_RIGHT_CORNER, GLUT_CURSOR_BOTTOM_RIGHT_CORNER, GLUT_CURSOR_BOTTOM_LEFT_CORNER, GLUT_CURSOR_INHERIT, GLUT_CURSOR_NONE, GLUT_CURSOR_FULL_CROSSHAIR. В GLUT существует специальный режим, позволяющий вам использовать режим игры для вашей OpenGL программы, т.е. когда ваше приложение занимает весь экран. Для этого в GLUT существуют специальные команды для управления этим режимом. Первая из них: void glutGameModeString(const char *string); Эта функция определяет параметры устанавливаемого разрешения экрана, глубину цвета и частоту обновления экрана(в герцах). Формат входного параметра такой: (Screen_width)x(Screen_height):(Depth)@(Refresh_Frequency) Например: glutGameModeString("640x480:16@72"); - Означает, что необходимо выбрать разрешение экрана 640 на 480 пикселей при глубине цвета в 16 бит и частоте обновления экрана 72 герца. Чтобы перейти в режим GAME MODE необходимо вызвать функцию: Int glutEnterGameMode(void); А чтобы выйти из режима GAME MODE необходимо вызвать функцию:
|