Веб программирование

C++ & GLUT. Урок 1. Создаем и закрашиваем окно.

 
 

Приветствую! Сейчас сделаем и закрасим окно на OpenGL.

ВНИМАНИЕ! Скачайте библиотеку GLUT отсюда.

Установка GLUT'а:

Теперь код. Объясню потом:

#include <gl/glut.h>

void Display() {
	glClear(GL_COLOR_BUFFER_BIT);
	glFlush();
}

void Initialize() {
	glClearColor(0.8, 1.0, 0.6, 1.0);
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(-200.0, 200.0, -200.0, 200.0, -5.0, 5.0);
}

int main(int argc, char ** argv) {
	glutInit(&argc, argv);
	glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
	glutInitWindowSize(400, 400);
	glutInitWindowPosition(100, 200);
	glutCreateWindow("Our first GLUT application!");
	glutDisplayFunc(Display);
	Initialize();
	glutMainLoop();
	return 0;
}

Объясняю:

int main(int argc, char ** argv) /* Это надо для обработки параметров командной строки */

далее...

glutInit(&argc, argv); /* Инициализируем GLUT */

...далее...

glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); 
/* Инициализируем режим прорисовки, GLUT_SINGLE означает, что рисовать будем статическую картинку, а GLUT_RGB - то, что цвета соответствуют RGB. */

...далее...

glutInitWindowSize(400, 400);
glutInitWindowPosition(100, 740);
glutCreateWindow("Our first GLUT application!");
/* Обозначение размера, позиции и заголовка окна соответственно */

...далее...

glutDisplayFunc(Display);
Subroutine();
glutMainLoop();
/* Обозначаем функцию прорисовки, вызываем Initialize и запускаем цикл соот-но */

...далее...

void Initialize() {
    glClearColor(0.2, 1.0, 1.0, 1.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(-200.0, 200.0, -200.0, 200.0, -5.0, 5.0);
}
/* Функция Initialize. Обозначаем цвет фона, выбираем тип матрицы, затем загружаемся с этими настройками. Потом устанавливем диапазон изменения координат */

...конец:

void Display() {
    glClear(GL_COLOR_BUFFER_BIT);
    glFlush();
}
/* Очищаем экран и обновляем его. */

Вот и все! Надеюсь, все понятно.


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.