Для работы с OpenGL под Linux вам понядобятся библиотеки libGL и libGLU, расположенные обычно
в каталоге /usr/lib.
Если вы хотите использовать glut, то вам придется собрать его из исходных файлов.
Необходимы следующие заголовочные файлы - <GL/gl.h>, <GL/glx.h>, <GL/glu.h> и
<GL/glext.h>.
На данный момент версия OpenGL, поставляемая с Linux, как минимум 1.2 (в отличии от Windows, где
все до сих пор работают с версией 1.1).
В эту версию уже включена поддержка мультитекстурирования (т.е. данное расширение уже стало частью
стандарта OpenGL). Единственное отличие заключается в том, что функция glActiveTextureARB теперь
называется glActiveTexture, что впрочем очень легко исправить для однообразия с кодом для Windows:
Проверка поддержки расширения осуществляется под Linux точно также, как и под Windows, поэтому
функция isExtensionSupported из предыдущих статей может непосредственно использоваться.
Функция для получения адреса вводимых расширением функция выглядит несколько иначе:
Для получения кроссплатформенного кода легко вынести изменяющуюся часть в отдельную функцию.
Прототипы всех вводимых расширениями функций хотя и содержатся в файле glext.h, но скрыты
условной компиляцией. Чтобы включить эти прототипы следует до включения файлов
gl.h, glx.h и glext.h определить GL_GLEXT_PROTOTYPES. Однако если вы хотите ввести указатели
на функции, то определять GL_GLEXT_PROTOTYPES не следует (иначе он определит их как функции, а не
как указатели на функции, что может привети к ошибке на этапе выполнения).
В остальном работа с расширениями проходит точно так же, как и под M$ Windows.
Обратите внимание, что библиотека glaux, часто используемая для загрузки текстур из bmp-файлов
под Linux обычно не доступна, поэтому следует пользоваться другими средствами для загрузки
текстур из файлов.
Автором реализована небольшая библиотека libTexture,
позволяющая загружать текстуры из bmp и tga файлов самых различных форматов (включая
32-битовый формат bmp файлов).
Данная библиотека является полностью кроссплатформенной и легко может использоваться как под
Windows, так и под Linux.
Удобно спрятать все межплатформенные отличия в небольшой библиотеке, что позволит остальному коду
не зависеть от конкретной платформы. Написанная автором библиотека
libExt является примером подобной библиотеки, причем она
отличается крайне небольшим размером.
Примеры к последним нескольким статьям рассчитаны на компиляцую и выполнение как в Windows, так и
в Linux. Для сборки под Linux следует использовать Makefile.
Обратите внимание, что для компиляции под Linux, вам может понадобиться изменить отдельные пути,
задаваемые в Makefile.
Полная информация по работе с OpenGL под Linux можно найти в статье
OpenGL® Application
Binary Interface for Linux.
Более полное описание работы с различными расширенями OpenGL в Linux, включая многочисленные
примеры, можно найти в недавно вышедшей книге
"Расширения OpenGL".
Все примеры в этой книге компилируются как под Windoze, так и под Linux.