Les extensions OpenGL

 

Les extensions OpenGL permettent d'ajouter des fonctions qui ne sont pas prévues à l'origine dans OpenGL.

Il existe de nombreuses extensions (environ 800 à ce jour) qui vont permettre d'accéder à des nouvelles fonctionnalités liées au hardware.

Constructions du nom des extensions

Les extensions commencent par GL_, GLX_ ou WGL_ (suivant la plateforme utilisée: GL pour toutes plateformes, GLX pour X Window, WGL pour Windows).

Vous pouvez trouver GLEW à la place au début des extensions. Dans ce cas, il s'agit d'une utilisation de la librairie GLEW (Linux, windows, apple).

 

Les fabriquants de cartes graphiques vont donc fournir des fonctionnalités spécifiques à leur carte.

Pour distinguer ces extensions par constructeurs, un préfixe sur la fonction est utilisé:

NV_ pour nvidia

IBM_ pour ibm

3DFX_ pour 3d fx

...

Exemple: GL_SGI_color_table

 

Mais lorsqu'une extension est commune à plusieurs constructeurs, celle-ci se nommera

EXT_

Exemple: GL_EXT_texture3D

 

Les extensions qui ont été revues par l'ARB sont préfixées ARB_ et sont des fonctions étendues qui peuvent prétendre à une intégration standard sous OpenGL.

Exemple: GL_ARB_clear_texture

 

Pour OpenGL ES, les extensions seront côdées GL_OES

 

Liste des extensions

Pour connaître la liste des extensions disponibles, il faudra utiliser

Image non trouvée !Dans ce cas, il faudra tester GLEW_ARB_...

Une description de ces différentes extensions pour openGL pourra être trouvée sur https://www.opengl.org/registry/ ou pour OpenGL ES sur https://www.khronos.org/registry/gles/

 

Exemple de fonction indiquant la présence d'une extension

Voici un exemple d'utilisation de glGetString dans une fonction nommée existExtension() pour déterminer la présence ou non d'une extension:

 

Image non trouvée !Il faudra qu'OpenGL soit initialisé avant de faire appel à cette fonction.