Partager via


Spécification des rappels

Vous pouvez spécifier jusqu’à cinq fonctions de rappel pour un pavage. Toutes les fonctions que vous ne spécifiez pas ne sont pas appelées pendant la pavage, et vous n’obtenez pas d’informations qu’elles auraient pu renvoyer. Vous spécifiez les fonctions de rappel avec gluTessCallback.

La fonction gluTessCallback associe la fonction de rappel fn à l’objet de pavage tessobj. Le type du rappel est déterminé par le paramètre type, qui peut être GLU_BEGIN, GLU_EDGE_FLAG, GLU_VERTEX, GLU_END ou GLU_ERROR. Les prototypes des cinq fonctions de rappel possibles sont les suivants.

Fonction de rappel Prototype
GLU_BEGIN void begin(GLenumtype ) ;
GLU_EDGE_FLAG void edgeFlag(GLbooleanflag ) ;
GLU_VERTEX void vertex(**void ***data ) ;
GLU_END void end( void ) ;
GLU_ERROR void error(GLenumerrno ) ;

 

Pour modifier une fonction de rappel, appelez gluTessCallback avec la nouvelle fonction. Pour éliminer une fonction de rappel sans la remplacer par une nouvelle, transmettez à gluTessCallback un pointeur Null pour la fonction appropriée.

À mesure que le pavage se poursuit, les fonctions de rappel sont appelées de manière similaire à la façon dont vous utiliseriez les fonctions OpenGL glBegin, glEdgeFlag, glVertex et glEnd.

La fonction de rappel GLU_BEGIN est appelée avec l’un des trois paramètres possibles :

  • GL_TRIANGLE_FAN
  • GL_TRIANGLE_STRIP
  • GL_TRIANGLES

Après avoir appelé la fonction de rappel GLU_BEGIN et avant d’appeler la fonction de rappel associée à GLU_END, une combinaison des rappels GLU_EDGE_FLAG et GLU_VERTEX est appelée. Les sommets et indicateurs de bord associés sont interprétés exactement comme dans OpenGL entre glBegin(GL_TRIANGLE_FAN), glBegin(GL_TRIANGLE_STRIP), or glBegin(GL_TRIANGLES**)** et la glEnd correspondante.

Les drapeaux de bord n’ayant aucun sens dans un éventail ou une bande de triangles, si une fonction de rappel est associée à GLU_EDGE_FLAG, le rappel GLU_BEGIN est uniquement appelé avec GL_TRIANGLES. La fonction de rappel GLU_EDGE_FLAG fonctionne de manière analogue à la fonction OpenGL glEdgeFlag.

En cas d’erreur lors du pavage, la fonction de rappel d’erreur est appelée. La fonction de rappel d’erreur est passée à un numéro d’erreur GLU. Vous pouvez obtenir une chaîne de caractères décrivant l’erreur avec la fonction gluErrorString.