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 |
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);