Как использовать текущую версию OpenGL в Cygwin? - PullRequest
7 голосов
/ 29 марта 2012

Я использую OpenGL с Cygwin в течение нескольких месяцев для программирования некоторых 3d-приложений. Теперь я хочу попытаться написать несколько более продвинутых техник, используя такие вещи, как объекты буфера вершин. Однако я заметил, что столкнулся с препятствием: когда я использую glGetString(GL_VERSION) в своей программе, он выплевывает 1.4.

Я компилирую свою программу с этими флагами: -lGL -lglut -lGLU -lGLEW и включил эти заголовки: freeglut.h glew.h. Я решил связать библиотеки X11 с библиотеками Windows, как объяснено здесь . Мои текущие программы OpenGL собираются и могут работать (потому что до сих пор я использовал более старую функциональность - pre-OpenGL 1.4).

У меня есть новый настольный компьютер с графической картой ATI FirePro V4800 (FireGL), которая поддерживает OpenGL 4.1. Я установил последние версии драйверов, и он проходит тесты, предоставляемые программой: OpenGL Extensions Viewer. Кроме того, программа показывает, что для моей видеокарты доступны все расширения до 4.1 включительно.

Здесь есть краткое упоминание здесь под последним ответом о том, что cygwin может захотеть использовать более старые dll (те, которые не поддерживают шейдеры и т. Д.). Это проблема Cygwin? Будет ли Cygwin просто не распознавать мои последние версии драйверов и предлагать мне классные вещи в OpenGL 4.1? Или я не ссылаюсь на правильные библиотеки?

UPDATE

После того, как я узнал, как работает X-сервер Cygwin, я решил, что мне следует переключиться на собственные библиотеки windows freeglut. Я взял предварительно скомпилированные двоичные файлы, найденные здесь , и поместил файлы в соответствующие каталоги, чтобы связать их с ними. После перекомпиляции я могу использовать все опции, найденные в OpenGL, как позволяет моя видеокарта (4.1).

1 Ответ

3 голосов
/ 15 января 2015

При использовании X-сервера Cygwin, запустите его с параметром -wgl (текущие версии делают это автоматически), затем

export LIBGL_USE_WGL=1

На компьютере, с которого я отправляю сообщение, я получаю:

$ glxinfo | grep OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Intel(R) HD Graphics 2500
OpenGL version string: 4.0.0 - Build 9.17.10.3062
OpenGL shading language version string: 4.00 - Build 9.17.10.3062
[...]

Сброс переменной среды:

$ glxinfo | grep OpenGL
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on llvmpipe (LLVM 3.4, 256 bits)
OpenGL version string: 3.0 Mesa 10.3.5
OpenGL shading language version string: 1.30
[...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...