Documentation de Gambas - /comp/gb.opengl/gl/begin

/comp/gb.opengl/gl/begin

# Gl.Begin (gb.opengl)

Static Sub Begin ( Primitive As Integer )

### Délimite les sommets d’une primitive ou d'un groupe de quasi primitives

#### Paramètres

- Primitive spécifie la ou les primitives qui seront créées à partir des sommets présentés entre Gl.Begin et le Gl.End subséquent. Dix constantes symbolic sont acceptées : Gl.GL_POINTS, Gl.GL_LINES, Gl.GL_LINE_STRIP, Gl.GL_LINE_LOOP, Gl.GL_TRIANGLES, Gl.GL_TRIANGLE_STRIP, Gl.GL_TRIANGLE_FAN, Gl.GL_QUADS, Gl.GL_QUAD_STRIP, et Gl.GL_POLYGON.

#### Description

Gl.Begin et Gl.End délimitent les sommets qui définissent une Primitive ou un groupe de quasi primitives. Gl.Begin accepte un argument entier qui spécifie de laquelle des dix manières les sommets sont interprétés. En posant n comme entier de comptage débutant à 1, et N comme nombre total de sommets spécifiés, les interprétations sont comme suit :

- Gl.GL_POINTS traite chaque sommet comme un point isolé. Le sommet n définit le point n. N points sont tracés.

- Gl.GL_LINES traite chaque paire de of sommet s comme un segment de ligne indépendant. Les sommets 2n-1 et 2n définissent la ligne n. N/2 lignes sot tracées.

- Gl.GL_LINE_STRIP trace un groupe connecté de segments de lignes depuis le premier sommet jusqu’au dernier. Les sommets n et n+1 définissent la ligne n. N-1 lignes sont tracées.

- Gl.GL_LINE_LOOP trace un groupe connecté de segments depuis le premier sommet jusqu’au dernier, puis retourne au premier. Les sommets n et n+1 definissent la ligne n. La dernière ligne, toutefois, est definie par les sommets N et 1. N lignes sont tracées.

- Gl.GL_TRIANGLES traite chaque triplet de sommets comme un triangle indépendant. Les sommets 3n-2, 3n-1, et 3n définissent le triangle n. N/3 triangles sont tracés.

- Gl.GL_TRIANGLE_STRIP trace un groupe de triangles connectés. Un triangle est défini pour chaque sommet présenté après les 2 premiers sommets. Pour les n impaires, les sommets n, n+1, et n+2 définissent le triangle n. Pour les n pairs, les sommets n+1, n, et n+2 définissent triangle n. N-2 triangles sont tracés.

- Gl.GL_TRIANGLE_FAN trace un groupe de triangles connectés. Un triangle est défini pour chaque sommet présenté après les 2 premiers sommets. Les sommets 1, n+1, et n+2 définissent le triangle n. N-2 triangles sont tracés.

- Gl.GL_QUADS traite chaque groupe de quatre sommets comme un quadrilatère indépendant. Les sommets 4n-3, 4n-2, 4n-1, et 4n définissent le quadrilatère n. N/4 quadrilatère sont tracés.

- Gl.GL_QUAD_STRIP trace un groupe de quadrilatères connectés. Un quadrilatère est défini pour chaque paire de sommets présentés après la première paire. Les sommets 2n-1, 2n, 2n+2, and 2n+1 définissent le quadrilatère. N/2-1 quadrilatères sont tracés. Notez que l’ordre dans lequel les sommets sont utilisés pour construire un quadrilatère à partir de données ordonnées est différent de celui utilisé avec des données indépendantes.

- Gl.GL_POLYGON trace un seul polygone convexe. Les sommets 1 à N définissent ce polygone.

### Exemples

    ' trace 2 points, dépendants des réglages de la fenêtre de visualisation
    Gl.Begin(Gl.GL_POINTS)
      Gl.Vertex2i(100, 200)
      Gl.Vertex2i(300, 400)
    Gl.End()

Seul un sous ensemble de commandes GL peut être utilisé entre Gl.Begin et Gl.End. Les commandes sont Gl.Vertex, Gl.Color, Gl.Index, Gl.Normal, Gl.TexCoord, Gl.EvalCoord, Gl.EvalPoint, Gl.Material, et Gl.EdgeFlag. Aussi, l’utilisation de Gl.CallList ou Gl.CallLists est plus adéquat pour exécuter des "display lists" Qui n’incluent que les commandes ci-dessus. Si une autre commande GL est appelée entre Gl.Begin et Gl.End, le drapeau d’erreur est positionné 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 qui peuvent être définis entre Gl.Begin et Gl.End. Les lignes, triangles, quadrilatères, et polygones qui sont incomplètement spécifiés ne sont pas tracés. Une spécification incomplète apparait soit quand trop peu de sommets sont fournis pour spécifier une primitive seule soit quand un multiple incorrect de sommets est spécifié. La primitive incomplète est ignorée ; le reste est tracé.

La spécification minimum de sommets pour chaque primitive est comme suit: 1 pour un point, 2 pour une ligne, 3 pour un triangle, 4 pour un quadrilatère, et 3 pour un polygone. Les modes qui requièrent un certain multiple de sommets sont Gl.GL_LINES, Gl.GL_TRIANGLES, Gl.GL_QUADS, et Gl.GL_QUAD_STRIP.

#### Erreurs

Gl.GL_INVALID_ENUM est générée si mode est défini à une valeur non acceptée.
Gl.GL_INVALID_OPERATION est générée si une commande autre que Gl.Vertex, Gl.Color, Gl.Index, Gl.Normal, Gl.TexCoord, Gl.EvalCoord, Gl.EvalPoint, Gl.Material, Gl.EdgeFlag, Gl.CallList, ou Gl.CallLists est appelée entre un appel à Gl.Begin et l’appel correspondant à Gl.End .
Gl.GL_INVALID_OPERATION est générée si Gl.End est appelé avant le Gl.Begin correspondant, ou si Gl.Begin est appelé dans une séquence Gl.Begin / Gl.End.

### Voir aussi

- Gl.CallList,

- Gl.CallLists, Gl.Color, Gl.EdgeFlag, Gl.EvalCoord, Gl.EvalPoint, Gl.Index, Gl.Material, Gl.Normal, Gl.TexCoord, Gl.Vertex