Я использую 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).