Могут ли приложения, использующие старые версии Opengl, работать на новых картах?


8

OpenGl 3.0 и выше имеет довольно большое отличие от старых версий, таких как OpenGl 2.x и opengl 1.x, с точки зрения реализации, означает ли это, что приложения, написанные на старых версиях opengl, не будут работать на компьютерах с видеокартами поддержка OpenGL 3.x и выше?

Извините, если это не то место, чтобы спросить это.

Спасибо.

Ответы:


2

Вкратце: OpenGL 1.x по-прежнему будет поддерживаться.

Теоретически возможно, что кто-то напишет реализацию OpenGL, которая поддерживает только версии 3.x и выше, но поддержка более старых компонентов дает вам такой широкий спектр существующих приложений, что было бы глупо не поддерживать его.

Некоторые части конвейера OpenGL 1.x могут быть реализованы неоптимальным (то есть медленным) способом, но все будет работать. Драйверы ATI в какой-то момент сделали ужасно медленный сбор, вызвав, например, изменения в Blender.

Со стороны OpenGL ES все немного сложнее. Я не знаю ни одного такого примера, но ES 2.0 и более поздние версии настолько сильно отличаются от ES 1.x, что возможно, что некоторые устройства не поддерживают ES 1.x. В большинстве случаев аппаратное обеспечение ES2 + эмулировало ES 1.x в программном обеспечении (создание шейдеров на лету и тому подобное).


3

В настоящее время ни один драйвер не удалил поддержку более ранних версий OpenGL. Вдобавок к этому большинство также реализуют расширение совместимости, что означает, что вы можете смешивать старые вещи с контекстами OpenGL 3.2+ (исключение составляет Mac OSX, где доступен только основной профиль для OpenGL 3.2 - вы все еще можете использовать старые вещи, но не вместе с новыми вещами).


1
Вы хотите сказать, что код glBegin..glEnd не будет компилироваться на современном OSX?
Яри ​​Комппа

@JariKomppa, исправил мой ответ.
Тапио
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.