Список реализаций OpenGL для c ++ - PullRequest
3 голосов
/ 15 января 2012

Я просто перенесу свои проекты из Visual Studio в Eclipse, чтобы я мог собрать их для Linux, но у меня возникли проблемы с файлами библиотеки OpenGl.Visual Studio поставляется с библиотекой Microsoft и заголовочными файлами для включения OpenGL в проекты, но в Eclipse это не так.Я не знаю, какое лицензирование используется для этих файлов Microsoft, поэтому я не хочу просто «красть» их из их SDK, но я не могу найти никакой альтернативы.Я нашел только MESA.Он должен быть похож на OpenGL, но я не уверен, в чем разница.Итак, какие у меня есть варианты для включения, если не для Microsoft?

Редактировать: Я немного читал MESA и могу сказать, что это не вариант.Они заявляют, что их GLSL-компилятор поддерживает только версию 1.2.Это очень старый.Мне нужен для моих проектов хотя бы GLSL 1.5.

1 Ответ

2 голосов
/ 15 января 2012

OpenGL - это не какая-то библиотека, а API.Установленный графический драйвер реализует OpenGL, а ваша программа загружает OpenGL из драйверов.Mesa3D - это набор драйверов с открытым исходным кодом и реализация API OpenGL для Linux.Но если вы устанавливаете проприетарные драйверы NVidia или AMD / ATI, именно те, кто реализует OpenGL в вашей системе.

Для разработки единственное, что вам нужно знать, это то, что ваша программа должнадинамически связываться с libGL.so (Linux) или opengl32.dll (Windows) и что любая функциональность, кроме OpenGL-1.1, доступна через так называемую систему расширений , которую легче всего использовать через такую ​​библиотеку, как GLEW(http://glew.sf.net).

Нет библиотеки, которую необходимо установить или связать с вашей программой!

Реализация системы OpenGL имеетконечно, библиотека, но все реализации OpenGL реализуют один и тот же API, и именно этот API вы используете.

Для разработки под Windows компиляторы должны поставлять правильные заголовки (MinGW, Cygwin и Microsoft SDK идут с ним)плюс заглушка библиотеки информации о компоновщике под названием opengl32.lib .

Под Linux для разработки вы устанавливаете разработку Mesa3DЛюбые библиотеки, которые предоставляют вам минимальный заголовок и заглушку libGL.so , дающие компоновщику информацию для построения правильной таблицы импорта в исполняемый файл.

Ваша программа не нуждается ввключает в себя некоторый OpenGL, но скорее ожидает, что он будет установлен в системе - предположение, которое очень безопасно сделать.Даже Windows Vista и 7 поставляются с некоторой реализацией OpenGL, а в Linux это обычно устанавливаемая вещь.В MacOS X он присутствует всегда, поскольку весь графический интерфейс OS X основан на OpenGL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...