Formation OpenGL |
|
Les instructions pour stocker les éléments d'une liste d'affichage sont
regroupées entre une instruction glNewList(GLuint
numList, GLenum mode ) et une instruction glEndList().
Le paramètre numList est un numéro unique (index)qui est généré
par glGenLists(GLsizei range
) et qui identifie la liste.
Le paramètre mode vaut GL_COMPILE ou GL_COMPILE_AND_EXECUTE.
Dans le deuxième cas, les commandes sont non seulement compilées
dans la liste d'affichage, mais aussi exécutées immédiatement
pour obtenir un affichage.
Les éléments stockés dans la liste d'affichage sont dessinés par l'instruction glCallList(GLuint numList)
Une fois qu'une liste a été définie, il est impossible de la modifier à part en la détruisant et en la redéfinissant.
Il y a un nombre maximal d'imbrications qui dépend des implémentations d'OpenGL.
L'instruction glDeleteLists(GLuint list, GLsizei range) permet de supprimer range listes en commençant par la numéro list. Une tentative de suppression d'une liste qui n'existe pas est simplement ignorée.
Les instructions suivantes ne peuvent pas être stockées dans une liste d'affichage :
glAreTextureResident() | glClientActiveTexture() | glColorPointer() | glDeleteLists() | glDeleteTextures() |
glDisableClientState() | glEdgeFlagPointer() | glEnableClientState() | glFeedbackBuffer() | glFinish() |
glFlush() | glFogCoordPointer() | glGenLists() | glGenTextures() | glGet*() |
glIndexPointer() | glInterleavedArrays() | glIsEnabled() | glIsList() | glIsTexture() |
glNormalPointer() | glPixelStore() | glPopClientAttrib() | glPushClientAttrib() | glReadPixels() |
glRenderMode() | glSecondaryColorPointer() | glSelectBuffer() | glTexCoordPointer() | glVertexPointer() |
Il y a une vingtaine de groupes, qui peuvent être combinés ensemble par un OU logique pour former le masque.
GL_ACCUM_BUFFER_BIT | Tampon d`accumulation | Valeur de vidage du Tampon d'Accumulation |
GL_ALL_ATTRIB_BITS | Tous | TOUS les états sauvegardables ! |
GL_COLOR_BUFFER_BIT | Tampon de couleurs | et états du Blending |
GL_CURRENT_BIT | Etats Courants | Couleur, Normale, Coordonnées de texture... |
GL_DEPTH_BUFFER_BIT | Tampon de profondeur | (Élimination des parties cachées) |
GL_ENABLE_BIT | Activation | Les états qui s'"énablent" |
GL_EVAL_BIT | Évaluation | |
GL_FOG_BIT | Brouillard | |
GL_HINT_BIT | Suggestion | Critères de qualité demandés |
GL_LIGHTING_BIT | Éclairage | Couleurs des lampes, Propriétés Matérielles, ... |
GL_LINE_BIT | Ligne | Pointillés, ... |
GL_LIST_BIT | Liste | |
GL_MULTISAMPLE_BIT_EXT | Echantillons | |
GL_PIXEL_MODE_BIT | Pixel | Coefficients de zoom, tampon actif en lecture, ... |
GL_POINT_BIT | Point | Taille, ... |
GL_POLYGON_BIT | Polygone | Tout ce qui s'y rapporte... |
GL_POLYGON_STIPPLE_BIT | Patron d'hachurage des polygones | Tiens, il est tout seul, lui. |
GL_SCISSOR_BIT | Ciseaux | |
GL_STENCIL_BUFFER_BIT | Tampon Stencil | Tout ce qui s'y rapporte |
GL_TEXTURE_BIT | Texture | Propriétés des textures |
GL_TRANSFORM_BIT | Transformation | Les coefficients des plans de clipping, le mode de matrice courant, ... |
GL_VIEWPORT_BIT | Cadrage | et ses propriétés |
void ConstruireCylindre (void ) { LA_CylindreFilFer = glGenLists ( 1 ); glNewList ( LA_CylindreFilFer, GL_COMPILE_AND_EXECUTE); glPushAttrib ( GL_CURRENT_BIT | GL_COLOR_BUFFER_BIT ); glColor3f ( Brown ); CreerCylindre (FIL_DE_FER); glPopAttrib(); glEndList();Merci à Louis Granger