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

/comp/gb.opengl/gl/calllists

# Gl.CallLists (gb.opengl)

Static Sub CallLists ( Lists 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 -128 à 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 -32768 à 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