glBegin |
OpenGL : Début |
OpenGL |
GL/gl.h |
Syntaxe
void glBegin(GLenum mode);
|
Paramètres
Nom |
Description |
mode |
Ce paramètre permet d'indiquer la ou les primitives étant créées à partir des sommets présentés entre glBegin et le glEnd suivant. Dix constantes symboliques sont acceptées : GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP et GL_POLYGON. |
Description
Cette fonction permet de délimiter le début 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