Первая программа OpenGL
Файлы к лабораторной работе Вы можете скачать
здесь.
Реализация библиотеки Microsoft OpenGL (Open Graphics Library)
включает в себя следующие компоненты:
- Набор базовых команд (около 300) для описания форм объектов,
преобразования координат, управления освещением, цветом,
текстурой, туманом, вывода растровых картинок и т.д. Имена
базовых команд в реализации на C начинаются с префикса gl
- Библиотеку утилит ( GLU - библиотеку). Команды этой библиотеки
дополняют базовые функции OpenGL и позволяют выполнять триангуляцию
многоугольников, создавать и выводить стандартные фигуры
(сферы, цилиндры, ...), строить сплайновые кривые и поверхности,
обрабатывать ошибки. Имена
команд библиотеки утилит в реализации на C начинаются с префикса glu
- Дополнительную библиотеку OpenGL ( AUX -
библиотеку). Библиотека содержит функции управления окнами,
обработки событий, управления цветовой палитрой, вывода стандартных 3D -объектов
(тор, тетраэдр, ...), управления двойной буферизацией. Имена
команд этой библиотеки в реализации на C начинаются с префикса aux
- Функции, соединяющие OpenGL с Windows ( WGL - функции).
Эти функции управляют контекстом воспроизведения, списками
команд, шрифтами. Имена WGL - функций начинаются с префикса wgl
-
Win32 - функции для управления форматов пикселов и двойной
буферизацией. Они заменяют библиотеку AUX.
Создание заготовки приложения OpenGL
На этом этапе мы создадим простую программу с использованием
графической библиотеки OpenGL. Для этого мы создадим консольное
приложение на C++ и настроим его на вызов функций библиотеки OpenGL.
-
Выполните
команду меню оболочки File/New/Project
-
В появившемся
окне мастера создания заготовки проекта задайте имя проекта Simple, выберите каталог размещения проекта и другие установки,
как показано на рисунке
-
Оставьте
установки мастера по умолчанию и щелкните на кнопке Finish
-
Переименуйте
функцию _tmain() файла Simple.cpp в main(), уберите параметры
в заголовке определения функции main() и возвращаемое
значение, чтобы код выглядел так
// Simple.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int main()
{
}
Листинг
19.1.
Начальная заготовка файла Simple.cpp
Теперь необходимо сообщить линковщику о необходимости использования
библиотечных файлов OpenGL (хотя это и не обязательно, поскольку
далее мы используем вспомогательный заголовочный файл glut.h,
где все это будет прописано).
Для этого:
-
Выполните
команду меню оболочки Project/Simple Properties и
в открывшемся диалоговом окне в поле Linker/Input/Additional
Dependencies введите разделенные пробелами наименования
библиотек
opengl32.lib glu32.lib glaux.lib
Необходимые подключемые файлы OpenGL
хранятся по адресу:
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl
|
Необходимые статические библиотеки OpenGL
- OpenGL32.Lib
- GLU32.Lib
- GLAux.Lib
хранятся в файловой системе компьютера по адресу:
C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Lib
|
Необходимые динамические библиотеки OpenGL
хранятся в системном каталоге по адресу:
|
Но нам понадобится дополнительно еще
одна статическая библиотека glut32.lib и
одна динамическая библиотека glut32.dll,
а также один заголовочный файл glut.h - все они находятся в каталоге Source, прилагаемом к этой лабораторной
работе!!!
-
Скопируйте
из каталога Source данной лабораторной
работы файл glut32.lib в
каталог статических библиотек, файл glut32.dll в
каталог динамических библиотек, а файл glut.h -
в каталог размещения подключаемых файлов Вашего
компьютера (примерные адреса размещения перечислены
выше)
-
Через
панель Solution Explorer оболочки откройте файл stdafx.h,
который создал мастер проекта, и добавьте в самое его начало после инструкции #pragma once код подключения стандартных заголовочных файлов
// stdafx.h : include file for standard system include files,
// or project specific include files that are used frequently, but
// are changed infrequently
//
#pragma once
#include <windows.h>
#include <gl/gl.h>
#include <gl/glu.h>
#include <gl/glut.h>
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <stdio.h>
#include <tchar.h>
// TODO: reference additional headers your program requires here
Листинг
19.6.
Добавление стандартных заголовков в файл stdafx.h