Information sur OpenGL

 

La fonction glGet() permet de récupérer tous les états d'OpenGL:

glGetBooleanv(GLenum pname, GLboolean *params)
glGetDoublev(GLenum pname, GLdouble *params)
glGetFloatv(GLenum pname, GLfloat *params)
glGetIntegerv(GLenum pname, GLint *params)

En entrée:

pname Spécifier la valeur que l'on veut récupérer

params Pointeur sur une zone mémoire qui recevra la valeur retournée
Ne peut pas être utilisé entre glBegin et glEnd ! Sinon la fonction retournera GL_INVALID_OPERATION. GL_INVALID_ENUM si pname est incorrecte !

 

Valeur Désignation
GL_MAX_LIST_NESTING Niveau maximum d'imbrication des display list
GL_MAX_ATTRIB_STACK_DEPTH Taille maximum de la pile de sauvegarde des attributs (glPushAttrib())
GL_MAX_MODELVIEW_STACK_DEPTH Taille maximum de la pile de matrices de modelview
GL_MAX_NAME_STACK_DEPTH Taille maximum de la pile de nom (picking)
GL_MAX_PROJECTION_STACK_DEPTH Taille maximum de la pile de matrices de projection
GL_MAX_TEXTURE_STACK_DEPTH Taille maximum de la pile des textures
GL_MAX_LIGHTS Nombre maximum de lampes activables
GL_MAX_CLIP_PLANES Nombre maximum de plans de clipping
GL_MAX_VIEWPORT_DIMS Taille maximum du viewport
GL_MAX_CLIENT_ATTRIB_STACK_DEPTH Taille maximum de la pile de sauvegarde des attributs clients (glPushClientAttrib())

Il y a d'autres valeurs possible...

Version d'OpenGL:

Il est possible de récupérer des informations sur la version d'OpenGL utilisée.

La fonction à utiliser et glGetString()

const GLubyte * glGetString( GLenum name )


En entrée:
name peut prendre 4 valeurs, suivant l'information que l'on désire récupérer: GL_VENDOR, GL_RENDERER, GL_VERSION ou GL_EXTENSIONS.

En sortie:
glGetString retourne un pointeur sur une chaîne de caractères répondant à l'information demandée.

0 si erreur. Vous pourrez récupérer comme code erreur: GL_INVALID_ENUM si vous passez autre chose que GL_VENDOR, GL_RENDERER, GL_VERSION ou GL_EXTENSIONS.

ou GL_INVALID_OPERATION s'il vous prenez l'envie de mettre l'appel à cette fonction entre glBegin() et glEnd().

Informations récupérables:

Valeur Description
GL_VENDOR Retourne le nom de la compagnie qui a implémenté les fonctions OpenGL. Ce nom ne changeant pas de release en release. (pourra être suivi d'un espace et d'un numéro de version)
GL_RENDERER Retourne le nom de la carte graphique. Ce nom ne changeant pas non plus de release en release
GL_VERSION

Retourne la version d'OpenGL installée:

La version pouvant s'écrire sous deux formes différentes:

valeur majeur.valeur mineur
valeur majeur.valeur mineur.numéro de release

GL_EXTENSIONS Retourne le nom des fonctions étendues disponibles sur la carte. Le séparateur de la liste étant l'espace.

Comme il n'existe pas de fonction permettant de déterminer les performances de la carte, certains développeurs utilisent ces informations pour pouvoir déduires ces performances.

 

Exemple:

Sous Microsoft Windows:

MessageBox (NULL, (char*) glGetString (GL_VENDOR), "Vendeur", MB_OK);
MessageBox (NULL, (char*) glGetString (GL_RENDERER), "Carte", MB_OK);
MessageBox (NULL, (char*) glGetString (GL_VERSION), "Version", MB_OK);
MessageBox (NULL, (char*) glGetString (GL_EXTENSIONS), "Fonctions étendues disponibles", MB_OK);