Qt & OpenGL: как заставить OpenGL 2.1? - PullRequest
3 голосов
/ 26 июня 2011

Я занимаюсь разработкой приложения, использующего Qt и OpenGL, с использованием подклассов Qt Creator и QGLWidget.

У моего приложения есть пользовательская база, в которой доля устаревшего оборудования выше, чем в среднем, поэтомуМне нужно, чтобы он работал на машинах с графическими картами, поддерживающими только OpenGL 2.1, или, другими словами, я не могу полагаться на то, что в нем присутствует что-то более новое, чем 2.1.

Меня беспокоит неосознанное использование функциональности OpenGL, которая была представлена ​​после2.1.Есть ли способ настроить OpenGL на «только» поддержку 2.1, чтобы я мог получить ошибку времени выполнения, если я сделаю что-то, чего не должен делать?Или, в противном случае, какова лучшая практика для обеспечения совместимости?

1 Ответ

2 голосов
/ 26 июня 2011

Единственное, о чем вам нужно беспокоиться, это не создавать контекст профиля ядра OpenGL-3, а использовать только функции, описанные в спецификации OpenGL-2.1.

Поскольку создание основного контекста OpenGL-3 требует от вас нескольких скачков, у вас нет проблем там. Система может дать вам что-то более новое, чем OpenGL-2.1, но до тех пор, пока вы не используете какие-либо функции, которых нет в документе спецификации 2.1, все в порядке. Вам придется использовать механизм расширения, чтобы фактически получить функциональность в Windows; OpenGL-2.1 технически представляет собой список расширений, сделанных официальной функциональностью, поэтому внимательно прочитайте Приложение спецификации, где явно упоминаются функции, которые ранее были расширениями.

...