Les applications utilisant d'anciennes versions d'Opengl peuvent-elles toujours fonctionner sur des cartes plus récentes?

8

OpenGl 3.0 et supérieur a une assez grande différence avec les anciennes versions comme OpenGl 2.x et opengl 1.x en termes d'implémentation, cela signifie-t-il que les applications écrites avec les anciennes versions d'Opengl ne fonctionneront pas sur les ordinateurs dotés de cartes vidéo supporte Opengl 3.x et plus?

Désolé, si ce n'est pas le bon endroit pour poser cette question.

Merci.

Stalker ka NOOB
la source

Réponses:

2

En bref: OpenGL 1.x sera toujours pris en charge.

Il est théoriquement possible pour quelqu'un d'écrire une implémentation OpenGL qui ne prend en charge que les versions 3.x et supérieures, mais la prise en charge des éléments plus anciens vous donne une telle gamme d'applications existantes qu'il serait stupide de ne pas la prendre en charge.

Certaines parties du pipeline OpenGL 1.x peuvent être implémentées de manière non optimale (c'est-à-dire lente), mais les choses fonctionneront toujours. Les pilotes ATI ont rendu la cueillette horriblement lente à un moment donné, provoquant des changements dans Blender, par exemple.

Du côté d'OpenGL ES, les choses sont un peu plus compliquées. Je n'en connais aucune, mais ES 2.0 et les versions ultérieures sont tellement différentes d'ES 1.x qu'il est possible que certains appareils ne prennent pas en charge ES 1.x. Dans la plupart des cas, le matériel ES2 + émulait ES 1.x dans le logiciel (générant des shaders à la volée et des choses amusantes comme ça).

Jari Komppa
la source
3

Actuellement, aucun pilote n'a supprimé la prise en charge des versions antérieures d'OpenGL. En plus de cela, la plupart implémentent également l'extension de compatibilité, ce qui signifie que vous pouvez mélanger des éléments anciens avec des contextes OpenGL 3.2+ (à l'exception de Mac OSX, où seul le profil de base pour OpenGL 3.2 est disponible - vous pouvez toujours utiliser d'anciens éléments, mais pas avec de nouvelles choses).

Tapio
la source
1
Voulez-vous dire que le code glBegin..glEnd ne se compilera pas sur OSX moderne?
Jari Komppa
@JariKomppa, a modifié ma réponse.
Tapio