Gl.CallList (gb.opengl)
Static Sub CallList ( Index As Integer )
Exécute une liste de "display list"
Paramètres
- n
-
Spécifie le nombre de ‘display lists’ à exécuter.
- type
-
Spécifie le type de valeurs dans lists.
Les constantes symboliques
Gl.BYTE,
Gl.UNSIGNED_BYTE,
Gl.SHORT,
Gl.UNSIGNED_SHORT,
Gl.INT,
Gl.UNSIGNED_INT,
Gl.FLOAT,
Gl.2_BYTES,
Gl.3_BYTES, et
Gl.4_BYTES sont acceptées.
- lists
-
Spécifie l’adresse d’un tableau d’offsets (décalages) de noms dans la ‘display list’.
Le type du pointeur est ‘void’ car les offsets peuvent être des octets,
des shorts, des entiers ou des flottants selon la valeur de type.
Description
Gl.CallLists entraîne l’exécution de chaque ‘display list’ de la liste de noms passée par
lists. Le résultat est que les commandes enregistrées dans chaque ‘display list’ sont exécutées dans l’ordre, comme si elles étaient appelées sans avoir recours à une ‘display list’. Les noms des ‘display list’ qui n’ont pas étés définis sont ignorés.
Gl.CallLists fournit un moyen efficace d’exécuter plus d’une ‘display list’.
type autorise des listes avec différents formats de nom.
Les formats sont comme suit :
- Gl.BYTE
-
lists est traitée comme un tableau d’octets signés, dans la gamme
à 127.
- Gl.UNSIGNED_BYTE
-
lists est traitée comme un tableau d’octets non signés dans la gamme 0 à 255.
- Gl.SHORT
-
lists est traitée comme un tableau d’entiers signés sur deux octets, dans la gamme
à 32767.
- Gl.UNSIGNED_SHORT
-
lists est traitée comme un tableau d’entiers non signés sur deux octets, dans la gamme 0 à 65535.
- Gl.INT
-
lists est traitée comme un tableau d’entiers signés sur quatre octets
- Gl.UNSIGNED_INT
-
lists est traitée comme un tableau d’entiers non signés sur quatre octets
- Gl.FLOAT
-
lists est traitée comme un tableau de flottants sur quatre octets.
- Gl.2_BYTES
-
lists est traitée comme un tableau d’octets non signés.
Chaque couple d’octets spécifie un nom unique de display-list.
La valeur de la paire est calculée comme 256 fois la valeur non signées du premier octet plus la valeur non signée du second.
- Gl.3_BYTES
-
lists est traitée comme un tableau d’octets non signés.
Chaque triplet d’octets spécifie un nom unique de display-list.
La valeur du triplet est calculée comme 65536 fois la valeur non signées du premier octet plus 256 fois la valeur non signées du deuxième octet plus la valeur non signée du troisième.
- Gl.4_BYTES
-
lists est traitée comme un tableau d’octets non signés.
Chaque quadruplet d’octets spécifie un nom unique de display-list.
La valeur du quadruplet est calculée comme 16777216 fois la valeur non signées du premier octet plus 65536 fois la valeur non signées du deuxième octet plus 256 fois la valeur non signées du troisième octet plus la valeur non signée du quatrième.
La liste de noms de display-list n’est pas terminée par null. Au contraire, -n- spécifie combien de noms doivent être extraits de
list.
Un niveau d’indirection est rendu possible avec la commande
Gl.ListBase, qui spécifie un offset non signé ajouté à chaque nom de "display list" spécifié dans les listes avant que cette "display list" soit exécutée.
Gl.CallLists peut apparaître dans une "display list". Pour éviter le risque d’une récursions infinie résultant de "display lists" s’appelant l’une l’autre, une limite est fixée pour le niveau d’imbrications des "display list" à leur exécution. Cette limite doit être au moins de 64, et elle dépend de l’implémentation.
L’état de GL n’est pas sauvegardé et restauré au cours l’appel à
Gl.CallList. Aussi, les changements faits à l’état de GL pendant l’exécution de la "display list" demeurent une fois son exécution achevée. Utilisez Gl.PushAttrib, Gl.PopAttrib,
Gl.PushMatrix, et
Gl.PopMatrix pour préserver l’état de GL au cours des appels à
Gl.CallLists
Notes
Les "Display lists" peuvent être exécutées entre un appel à
Gl.Begin et l’appel correspondant à
Gl.End, tant que la "display list" n’inclut que des commandes autorisées dans cet intervalle.
Errors
Gl.INVALID_VALUE est généré si
n est négatif.
Gl.INVALID_ENUM est généré si
type ne fait pas partie de
Gl.BYTE,
Gl.UNSIGNED_BYTE,
Gl.SHORT,
Gl.UNSIGNED_SHORT,
Gl.INT,
Gl.UNSIGNED_INT,
Gl.FLOAT,
Gl.2_BYTES,
Gl.3_BYTES,
Gl.4_BYTES.
Gets Associés
Gl.Get avec l’argument Gl.LIST_BASE
Gl.Get avec l’argument Gl.MAX_LIST_NESTING
Gl.IsList
Voir aussi
Gl.CallList,
Gl.DeleteLists,
Gl.GenLists,
Gl.ListBase,
Gl.NewList,
Gl.PushAttrib,
Gl.PushMatrix
Copyright © 1991-2006 Silicon Graphics, Inc. Ce document est sous licence SGI Free Software B License. Pour tout detail, voir http://oss.sgi.com/projects/FreeB.
➡ Voir la documentation originale