Как настроить среду разработки OpenGL без Mesa - PullRequest
2 голосов
/ 16 февраля 2012

Согласно тому, что я прочитал здесь: http://www.linuxquestions.org/questions/linux-software-2/opengl-vs-mesa-whats-the-diff-351037/

Mesa - это программный рендеринг, в то время как драйвер OpenGL - это аппаратный рендеринг.

В каждом уроке, который я нашел, показано только, как установить Mesa.Как я могу установить настоящий (аппаратно ускоренный) openGL?Установка драйвера устанавливает шапку?Если да, то какой заголовок?Если у меня есть программа, скомпилированная с помощью mesa, нужно ли перекомпилировать ее, чтобы использовать преимущества аппаратного ускорения?При установке драйвера установите необходимую библиотеку и заголовок, что произойдет с mesa?

Из последнего поста на указанном сайте: «Значит ли это, что я должен удалить пакеты mesa, если у меня установлены драйверы NVidia?»

Кроме того, теперь openGL теперь версии 4 и 5, но я не могу найти учебник, который показывает, как создать контекст для этой версии, только версия 3 max ...

Как и вывидите, я не очень уверен, как это работает.

И еще одна вещь, эта книга: http://glprogramming.com/red/ для какой версии openGL?Версия руководства 1.1, но в ней не написано, для какой версии.

1 Ответ

7 голосов
/ 16 февраля 2012

Mesa - программный рендеринг, а драйвер OpenGL - аппаратный рендеринг.

Нет. Mesa представляет собой реализацию OpenGL API с открытым исходным кодом, а также предоставляет запасной вариант программного растеризатора. Но Mesa также является основой для драйверов GPU с открытым исходным кодом для intel , radeon , radeonhd и noveau .

В каждом уроке, который я встречал, показано только, как установить Mesa. Как мне установить настоящий (аппаратно ускоренный) openGL?

OpenGL - это просто API. Это означает, что не имеет значения, какую реализацию OpenGL вы используете для разработки. Вы можете разрабатывать с Mesa, но ваша программа также будет работать с проприетарными драйверами.

Устанавливает ли заголовок установка драйвера?

Иногда. Но большинство дистрибутивов Linux препятствуют этому и принимают заголовки Mesa в качестве канонического ресурса разработки.

Если у меня есть программа, скомпилированная с mesa, нужно ли мне перекомпилировать ее, чтобы использовать преимущества аппаратного ускорения?

Нет. Если вы все сделали правильно, то есть динамически связали свой исполняемый файл с libGL.so ваша программа будет работать с любой реализацией OpenGL.

При установке драйвера установить необходимую библиотеку и заголовок, что будет с mesa?

Зависит от распределения. В некоторых дистрибутивах драйвер поставщика заменяет libGL.so, но не файлы разработки Mesa. Некоторые дистрибутивы заменяют libGL.so и заголовки. А некоторые дистрибутивы помещают реализации OpenGL в / usr / lib / opengl и предоставляют инструмент для настройки символических ссылок (Gentoo). На практике это не имеет значения.

Из последнего поста на указанном сайте: «Означает ли это, что я должен удалить пакеты mesa, если у меня установлены драйверы NVidia?»

Ваш менеджер пакетов дистрибутивов выдаст предупреждение, если это потребуется. Но, как я уже сказал: вас это не должно беспокоить, за исключением того, что реализация Mesa поддерживает только OpenGL-2.1. Но это не значит, что вы не можете скомпилировать OpenGL-3 и более поздние программы с ним. Они просто не смогут создать контекст OpenGL-3 и прервать работу с сообщением об ошибке или вернуться к OpenGL-2

...