glEnd |
OpenGL : Fin |
---|---|
OpenGL | GL/gl.h |
Syntaxe
void glEnd(void); |
Description
Cette fonction permet de délimiter la fin des sommets d'une primitive ou d'un groupe de primitives similaires.
Remarques
- glBegin et glEnd délimitent les sommets définissant une primitive ou un groupe de primitives similaires. glBegin
accepte un seul paramètre spécifiant dans laquelle des dix façons les sommets sont interprétés. En prenant n comme nombre entier commençant à un et N comme le
nombre total de sommets spécifiés, les interprétations sont les suivantes :
Constante Description GL_POINTS Traite chaque sommet comme un point unique. Le sommet n définit le point n. N points sont dessinés. GL_LINES Traite chaque paire de sommets comme un segment de ligne indépendant. Les sommets 2 ? n - 1 et 2 ? n définissent la ligne n. N 2 lignes sont dessinées. GL_LINE_STRIP Dessine un groupe connecté de segments de ligne du premier sommet au dernier. Les sommets n et n + 1 définissent la droite n. N - 1 lignes sont tracées. GL_LINE_LOOP Dessine un groupe connecté de segments de ligne du premier sommet au dernier, puis de nouveau au premier. Les sommets n et n + 1 définissent la droite n. La dernière ligne, cependant, est définie par les sommets N et 1 . N lignes sont tracées. GL_TRIANGLES Traite chaque triplet de sommets comme un triangle indépendant. Les sommets 3 ? n - 2 , 3 ? n - 1 et 3 ? n définissent le triangle n. N 3 triangles sont dessinés. GL_TRIANGLE_STRIP Dessine un groupe de triangles connectés. Un triangle est défini pour chaque sommet présenté après les deux premiers sommets. Pour n impair, les sommets n, n + 1 et n + 2 définissent le triangle n. Pour n pair, les sommets n + 1 , n et n + 2 définissent le triangle n. N - 2 triangles sont dessinés. GL_TRIANGLE_FAN Dessine un groupe de triangles connectés. Un triangle est défini pour chaque sommet présenté après les deux premiers sommets. Les sommets 1 , n + 1 et n + 2 définissent le triangle n. N - 2 triangles sont dessinés. GL_QUADS Traite chaque groupe de quatre sommets comme un quadrilatère indépendant. Les sommets 4 ? n - 3 , 4 ? n - 2 , 4 ? n - 1 et 4 ? n définissent le quadrilatère n. N 4 quadrilatères sont dessinés. GL_QUAD_STRIP Dessine un groupe connexe de quadrilatères. Un quadrilatère est défini pour chaque paire de sommets présentés après la première paire. Les sommets 2 ? n - 1 , 2 ? n , 2 ? n + 2 et 2 ? n + 1 définissent le quadrilatère n. N 2 - 1 quadrilatères sont dessinés. Notez que l'ordre dans lequel les sommets sont utilisés pour construire un quadrilatère à partir de données de bande est différent de celui utilisé avec des données indépendantes. GL_POLYGONE Dessine un seul polygone convexe. Les sommets 1 à N définissent ce polygone. - Seul un sous-ensemble de commandes GL peut être utilisé entre glBegin et glEnd. Les commandes sont glVertex, glColor, glSecondaryColor, glIndex, glNormal, glFogCoord, glTexCoord, glMultiTexCoord, glVertexAttrib, glEvalCoord, glEvalPoint, glArrayElement, glMaterial et glEdgeFlag. De plus, il est acceptable d'utiliser glCallList ou glCallLists pour exécuter des listes d'affichage incluant uniquement les commandes précédentes. Si une autre commande GL est exécutée entre glBegin et glEnd, le drapeau d'erreur est défini et la commande est ignorée.
- Quelle que soit la valeur choisie pour mode, il n'y a pas de limite au nombre de sommets pouvant être définis entre glBegin et glEnd. Les lignes, triangles, quadrilatères et polygones incomplètement spécifiés ne sont pas dessinés. Une spécification incomplète se produit lorsque trop peu de sommets sont fournis pour spécifier ne serait-ce qu'une seule primitive ou lorsqu'un multiple incorrect de sommets est spécifié. La primitive incomplète est ignorée ; le reste est dessiné.
- La spécification minimale des sommets pour chaque primitive est la suivante : 1 pour un point, 2 pour une ligne, 3 pour un triangle, 4 pour un quadrilatère et 3 pour un polygone. Les modes nécessitant un certain multiple de sommets sont GL_LINES (2), GL_TRIANGLES (3), GL_QUADS (4) et GL_QUAD_STRIP (2).
Erreurs
Constante | Description |
---|---|
GL_INVALID_ENUM | Est généré si mode est défini sur une valeur non acceptée. |
GL_INVALID_OPERATION | Est généré si glBegin est exécuté entre un glBegin et l'exécution correspondante de glEnd. |
GL_INVALID_OPERATION | Est généré si glEnd est exécuté sans être précédé d'un glBegin. |
GL_INVALID_OPERATION | Est générée si une commande autre que glVertex, glColor, glSecondaryColor, glIndex, glNormal, glFogCoord, glTexCoord, glMultiTexCoord, glVertexAttrib, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, glEdgeFlag, glCallList ou glCallLists est exécutée entre l'exécution de glBe gin et l'exécution correspondante glEnd. |
L'exécution de glEnableClientState, glDisableClientState, glEdgeFlagPointer, glFogCoordPointer, glTexCoordPointer, glColorPointer, glSecondaryColorPointer, glIndexPointer, glNormalPointer, glVertexPointer, glVertexAttribPointer, glInterleavedArrays ou glPixelStore n'est pas autorisée après un appel à glBegin et avant l'appel correspondant à glEnd, mais une erreur peut ou peut pas être généré.
Dernière mise à jour : Mercredi, le 12 Juillet 2023