Главная страница

Руководство по работе с графической библиотекой OpenGL. Руководство разработано с учетом опыта чтения курса Компьютерная графика


Скачать 0.66 Mb.
НазваниеРуководство по работе с графической библиотекой OpenGL. Руководство разработано с учетом опыта чтения курса Компьютерная графика
Дата21.10.2022
Размер0.66 Mb.
Формат файлаdocx
Имя файла221937-83556.docx
ТипРуководство
#747097
страница19 из 30
1   ...   15   16   17   18   19   20   21   22   ...   30
};

В случае , если приложение должно строить статичное изоб­ражение, можно заменить GLUT_DOUBLE на GLUT_SINGLE, так как одного буфера в этом случае будет достаточно, и убрать вызов функции glutldleFuncQ.

10.2. GLUT в среде Microsoft Visual C++ 6.0

Перед началом работы необходимо скопировать файлы glut.h, glut32.1ib glut32.dll в каталоги MSVC\Include\Gl, MSVC\Lib, Windows\System соответственно. Также в этих каталогах на­до проверить наличие файлов gl.h, glu.h, opengl32.1ib, glu32.1ib, opengl32.dll, glu32.dll, которые обычно входят в состав Visual C++ и Windows. При использовании команд из библиотеки

138 Глава 10. OPENGL-приложения с помощью GLUT

GLAUX к перечисленным файлам надо добавить подключаемые файлы библиотеки — glaux.h и glaux.lib.

Для создания приложения надо выполнить следующие дей­ствия:

  • Создание проекта: для этого надо выбрать File—>New—> Projects—^Win32 Console Application, набрать имя проекта, ОК.

  • В появившемся окне выбрать «An empty project», Finish, ОК.

  • Текст программы можно либо разместить в созданном тек­стовом файле (выбрав File—>New—>Files—>Text File), либо добавить файл с расширением *.с или *.срр в проект (вы­брав Project—)► Add To Project—s^Files).

  • Подключить к проекту библиотеки OpenGL. Для этого на­до выбрать Project—^Settings—>Link и в поле Object\library modules набрать названия нужных библиотек: opengl32.1ib, glu32.1ib, glut32.1ib и, если надо, glaux.lib.

  • Для компиляции выбрать Build—>Build program.exe, для выполнения — Build—>Execute program.exe.

  • Чтобы при запуске не появлялось текстовое окно, надо вы­брать Project—>Settings—>Link и в поле Project Options вме­сто «subsystem:console» набрать «subsystem:windows», и на­брать там же строку «/cntry:mainCRTStartup».

Когда программа готова, рекомендуется перекомпилировать ее в режиме «Release» для оптимизации по быстродействию и объему. Для этого надо выбрать Build—>Set Active Configuration и отметить «... -Win32 Release», а затем заново подключить необ­ходимые библиотеки.

10.3. GLUT в среде MICROSOFT VISUAL C++ 2005 139

10.3. GLUT в среде Microsoft Visual C++ 2005

Перед началом работы необходимо скопировать файлы glut.h, glut32.1ib и glut32.dll в каталоги MVS8\VC\PlatformSDK\Include, MVS8\VC\PlatformSDK\Lib, Windows\System соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.h, opengl32.1ib, glu32.1ib, opengl32.dll, glu32.dll, которые обыч­но входят в состав Visual СИ—Ь и Windows. При использовании команд из библиотеки GLAUX к перечисленным файлам надо добавить подключаемые файлы библиотеки — glaux.h и glaux.lib.

Для создания приложения надо выполнить следующие дей­ствия:

  • Создание проекта: для этого надо выбрать File—>New—> Projects—>Win32—>Win32 Console Application, набрать имя проекта, ОК.

  • В появившемся окне во вкладке Application Settings вы­брать «Console application», «An empty project», Finish.

  • Текст программы можно либо разместить в созданном текстовом файле (выбрав File—>New—>Files—>Visual C+H—> C++File ), либо добавить файл с расширением *.с или *.срр в проект (выбрав Project—>Add To Project—>Files).

  • Подключить к проекту библиотеки OpenGL. Для этого на­до выбрать Project—^Properties—^Configuration Properties—> Linker—>Input и в поле Additional dependencies набрать на­звания нужных библиотек: opengl32.1ib, glu32.1ib, glut32.1ib и, если надо, glaux.lib.

  • Для компиляции выбрать Build—> program.exe, для выпол­нения—Debug—> Start Debugging или Debug—>Start Without Debugging.

140 Глава 10. OPENGL-приложения с помощью GLUT

Чтобы при запуске программы не появлялось консольное текстовое окно, надо выбрать Project—^Properties—» Configuration Properties—^Linker—^System и в поле SubSystem вместо «Console» выбрать «Windows». Пе­рейти в раздел Linker—> Advanced и в поле Entry Point написать «wmainCRTStartup» (без кавычек).

Когда программа готова, рекомендуется перекомпилировать ее в режиме «Release» для оптимизации по быстродействию и объему. Для этого надо выбрать Build—> Configuration Manager и в поле «Active solution configuration» выбрать «Release», а затем заново подключить необходимые библиотеки для этой конфигу­рации.

10.4. GLUT в среде Borland C++ Builder 6

Перед началом работы необходимо скопировать файлы glut.h, glut32.1ib, glut32.dll в каталоги CBuilder6\Include\Gl, CBuilder6\Lib, Windows\System соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.li, opengl32.1ib, glu32.1ib, opengl32.dll, glu32.dll, которые обычно входят в состав Borland C++ и Windows.

При этом надо учитывать, что оригинальные (для Microsoft Visual C++) версии файла glut32.1ib с Borland C++ Builder 6 работать не будут, и следует использовать только совмести­мую версию. Чтобы создать такую версию, надо использовать стандартную программу 'implib', которая находится в каталоге CBuilder6\Bin. Для этого в командной строке надо выполнить команду

implib glut32.1ib glut32.dll

которая создает нужный lib-файл из соответствующего dll-фай-ла.

10.5. GLUT в среде BORLAND C++ BUILDER 2006 141

Для создания приложения надо выполнить следующие дей­ствия:

  • Создание проекта: для этого надо выбрать File—>New—> Other—^Console Wizard, OK.

  • В появившемся окне выбрать Source Type — C++, Console Application, сбросить опции «Use VCL», «Use CLX», «Multi Threaded». Нажать ОК.

  • Текст программы можно либо разместить в созданном текстовом файле, либо удалить его из проекта (Project—> Remove From Project) и добавить файл с расширением *.с или *.срр в проект (выбрав Project—>Add To Project).

  • Сохраните созданный проект в желаемом каталоге (выбрав File^Save All).

  • Подключить к проекту библиотеку GLUT. Для этого надо выбрать Project—>Add To Project и добавить файл glut32.1ib

  • Для компиляции выбрать Project—>Build ..., для выполне­ния — Run—> Run.

Когда программа готова, рекомендуется перекомпилировать ее в режиме «Release» для оптимизации по быстродействию и объему. Для этого сначала надо выбрать Project—>Options—> Compiler и нажать кнопку «Release».

10.5. GLUT в среде Borland C++ Builder 2006

Перед началом работы необходимо скопиро-

вать файлы glut.h, glut32.1ib, glut32.dll в катало­
ги Borland\BDS\4.0\Include\Gl, Borland\BDS\4.0\Lib,

142 Глава 10. OPENGL-приложения с помощью GLUT

Windows\System соответственно. Также в этих каталогах надо проверить наличие файлов gl.h, glu.li, opengl32.1ib, glu32.1ib, opengl32.dll, glu32.dll, которые обычно входят в состав Borland C++ и Windows.

При этом надо учитывать, что оригинальные (для Microsoft Visual C++) версии файла glut32.1ib с Borland C++ Builder 6 работать не будут, и следует использовать только совмести­мую версию. Чтобы создать такую версию, надо использовать стандартную программу 'implib', которая находится в каталоге Borland\BDS\4.0\Bin. Для этого в командной строке надо вы­полнить команду

implib glut32.1ib glut32.dll

которая создает нужный lib-файл из соответствующего dll-фай-ла.

Для создания приложения надо выполнить следующие дей­ствия:

  • Создание проекта: для этого надо выбрать File—>New—> Other—^Console Application, OK.

  • В появившемся окне выбрать Source Type — «C++», «Console Application», сбросить опции «Use VCL», «Multi Threaded». Нажать ОК.

  • Текст программы можно либо разместить в созданном текстовом файле, либо удалить его из проекта (Project—^ Remove From Project) и добавить файл с расширением *.с или *.срр в проект (выбрав Project—>Add To Project).

  • Сохраните созданный проект в желаемом каталоге (выбрав File^Save All).

  • Подключить к проекту библиотеку GLUT. Для этого надо выбрать Project—>Add To Project и добавить файл glut32.1ib

10.5. GLUT в среде BORLAND C++ BUILDER 2006 143

Для компиляции выбрать Project—>Build ..., для выполне­ния — Run—> Run.

Когда программа готова, рекомендуется перекомпилировать ее в режиме «Release» для оптимизации по быстродействию и объему. Для этого надо выбрать Project—>Build Configurations и в списке «Configuration name» выбрать «Release Build».
Глава 11.

Использование OpenGL в MFC и VCL

Далее будем рассматривать принципы построение оконного приложения Windows с поддержкой OpenGL при помощи воз­можностей библиотек MFC (Microsoft Foundation Classes) и VCL (Visual Component Library).

Поскольку Windows является многооконной операционной системой, основная задача приложения на этапе инициализа­ции — «привязать» команды OpenGL к конкретному окну и со­здать для этого окна все вспомогательные буферы (буфер кадра, буфер глубины и т.п.). Сама библиотека не содержит средств для этого, поэтому каждая операционная система, поддерживающая OpenGL, предоставляет свои. Библиотека GLUT представля­ет унифицированный интерфейс для доступа к этой функцио­нальности, однако платой за унификацию является достаточно скромные возможности построения графического интерфейса пользователя, реализованные в GLUT. Для создания приложе­ний с развитым интерфейсом необходимо применять средства конкретной операционной системы для работы с OpenGL.

Для инициализации и работы с OpenGL в Windows необхо-

145

146

Глава П. Использование OPENGL в MFC и VCL

димо выполнить следующие шаги:

1) инициализация (при создании окна);

а) получение и установка контекста графического устрой­
ства (см. п.11.1);

б) установка пиксельного формата (п. 11.2);

в) получение и установка контекста рисования (п. 11.3);

  1. рисование с помощью OpenGL в окне;

  2. освобождение контекстов (при удалении окна).

11.1. Контекст устройства

Контекст устройства (device context) —важный элемент гра­фики в среде ОС Windows. Контекст устройства указывает место отображения графических команд. Контекстом может быть окно программы на экране, принтер, или другое устройство, поддер­живающее графический вывод.

Идентификатор контекста устройства —это числовое значе­ние, знание которого позволяет направить графический вывод в нужный контекст. Перед началом рисования необходимо по­лучить это числовое значение, а после рисования нужно кон­текст освободить, т.е. вернуть используемые ресурсы в систему. Несоблюдение этого правила чревато такими последствиями как утечки памяти и прекращение нормальной работы программы.

Поскольку нашей задачей является рисование в окне, кон­текст устройства hDC можно получить по идентификатору окна hWnd:

HWND hWnd = <код получение идентификатора окна>; HDC ЮС = GetDC(hWnd);

Для освобождения контекста используется команда ReleaseDC:

ReleaseDC(hWnd, ШС);

11.2. Установка формата пикселей

147

11.2. Установка формата пикселей

После получения контекста устройств нужно установить фор­мат пикселей (pixel format) контекста. Это нужно для того, что­бы сообщить операционной системе, какие ресурсы необходимо выделить для данного контекста. Формат пикселей указывает, какие возможности OpcnGL мы будем использовать: двойной буфер, буфер маски, буфер глубины, формат цвета и т.д.

Чтобы установить формат пикселя, нужно заполнить струк­туру PIXELFORMATDESCRIPTOR и передать ее в текущий кон­текст:

PKELFORMATDESCRIPTOR pfd ;

// обнуляем все только что созданной структуры;

ZeroMemory(&pfd ,
1   ...   15   16   17   18   19   20   21   22   ...   30


написать администратору сайта