Gestion des erreurs (OpenGL)
Quand OpenGL détecte une erreur, il enregistre un code d’erreur actuel. La fonction à l’origine de l’erreur est ignorée. Elle n’a donc aucun effet sur l’état OpenGL ou sur le contenu du framebuffer. (Toutefois, si l’erreur enregistrée était GL_OUT_OF_MEMORY, les résultats de la fonction ne sont pas définis.) Une fois enregistré, le code d’erreur actuel n’est pas effacé tant que vous n’appelez pas la fonction de requête glGetError , qui retourne le code d’erreur actuel.
Les implémentations d’OpenGL peuvent retourner plusieurs codes d’erreur actuels, chacun d’eux restant défini jusqu’à ce qu’ils soient interrogés. La fonction glGetError retourne GL_NO_ERROR une fois que vous avez interrogé tous les codes d’erreur actuels ou s’il n’y a pas d’erreur. Par conséquent, si vous obtenez un code d’erreur, appelez glGetError jusqu’à ce que GL_NO_ERROR soit retourné pour être sûr d’avoir découvert toutes les erreurs. Pour obtenir la liste des codes d’erreur, consultez Codes d’erreur OpenGL.
Vous pouvez utiliser la fonction gluErrorString GLU pour obtenir une chaîne descriptive correspondant au code d’erreur transmis. Pour plus d’informations sur gluErrorString, consultez Gestion des erreurs.
Notes
Les fonctions GLU retournent souvent des valeurs d’erreur si une erreur est détectée. En outre, la bibliothèque de l’utilitaire OpenGL définit les codes d’erreur GLU_INVALID_ENUM, GLU_INVALID_VALUE et GLU_OUT_OF_MEMORY, qui ont la même signification que les codes d’erreur OpenGL associés.