Как использовать текущую версию opengl в cygwin?

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

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

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

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

ОБНОВЛЕНИЕ

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

7
задан Community 23 May 2017 в 10:31
поделиться