ИНТЕРФЕЙС OpenGL

Интерфейс OpenGL реализован в виде набора команд (функций и процедур), которые позволяют программисту организовывать высококачественную визуализацию 2D- или ЗО-графику.

Все базовые функции OpenGL хранятся в основной библиотеке GL и нескольких дополнительных, например, библиотеке утилит - GLU (GL Utility).

Функции библиотеки GLU определены через базовые функции GL. Благодаря GLU можно легко строить такие геометрических примитивы, как куб, шар, цилиндр, диск. Кроме этого, GLU предоставляет функции построения сплайнов, реализацию дополнительных операций над матрицами и т.п.

OpenGL не включает в себя никаких специальных команд для работы с окнами или вводом информации от пользователя. Программист должен самостоятельно организовывать связь своих графических приложений с оконными подсистемами и обеспечивать взаимодействия с функциями пользователя. Для облегчения подобной работы программиста были созданы специальные библиотеки для обеспечения часто используемых функций взаимодействия с пользователем и для отображения информации с помощью оконной подсистемы. Наиболее популярной является библиотека GLUT (GL Utility Toolkit). Официально GLUT не входит в OpenGL, но ее легко найти в Интернете. Более того, имеются свои реализации GLUT для различных операционных систем.

СТРУКТУРА ГРАФИЧЕСКОЙ ПРОГРАММЫ OpenGL ДЛЯ СРЕДЫ WINDOWS

Для работы OpenGL в операционной системе Windows используется понятие контекста воспроизведения (rendering context), который связывает OpenGL с оконной системой Windows.

Приложение, работающее с командами OpenGL, должно создать одно или несколько контекстов воспроизведения для потока и сделать одно из них текущим. Перед созданием контекста воспроизведения необходимо установить для него формат пикселей, который определяет некоторые свойства поверхности рисования OpenGL. Таким образом, программы, использующие OpenGL, строятся по следующей схеме.

  • 1. Создаем окно программы. Здесь необходимо обязательно установить стиль окна функцией Create Window через параметры WS_CLIPCHILDREN и WS_CLIPSIBLINGS.
  • 2. После успешного создания окна необходимо открыть контекст отображения (rendering context). Рекомендуется открывать контекст отображения во время обработки сообщения WM_CREATE.
  • 3. Для создания контекста отображения необходимо предварительно открыть контекст окна (hDC), например функцией GetDC.
  • 4. При настройке характеристик контекста отображения установить соответствующие значения полей структуры PIXELFORMATDESCRIPTOR и вызвать функцию ChoosePixelFormat. Эта функция возвращает номер пиксельного формата, который можно использовать.
  • 5. Вызовом функции SetPixelFormat задать соответствующий пиксельный формат в контексте hDC.
  • 6. На основании контекста hDC создать контекст отображения (hRC) вызовом функции wglCreateContext. Для переадресации текущего вывода графики OpenGL в hRC необходимо вызывать функцию wglMakeCurrent.
  • 7. В текущий контекст отображения вывести графические объекты, используя функции для работы с графическими примитивами OpenGL. Графический вывод можно осуществлять во время обработки сообщения WM_PAINT или других необходимых сообщений Windows.
  • 8. Перед закрытием окна программы необходимо закрыть все открытые контексты отображения. Также следует закрыть все контексты графического устройства. Это можно сделать в ходе обработки сообщений WMJDESTROY вызовом функций ReleaseDC и wglDeleteContext.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ   След >