glFeedbackBuffer fonction)
La fonction glFeedbackBuffer contrôle le mode de feedback.
Syntaxe
void WINAPI glFeedbackBuffer(
GLsizei size,
GLenum type,
GLfloat *buffer
);
Paramètres
-
size
-
Nombre maximal de valeurs qui peuvent être écrites dans la mémoire tampon.
-
type
-
Constante symbolique qui décrit les informations qui seront retournées pour chaque vertex. Les constantes symboliques suivantes sont acceptées : GL _ 2D, GL _ 3D, GL _ 3D _ Color, GL _ 3D texture Color _ _ et GL _ 4D _ Color _ texture.
-
mémoire tampon
-
Retourne les données de commentaires.
Valeur renvoyée
Cette fonction ne retourne pas de valeur.
Codes d’erreur
Les codes d’erreur suivants peuvent être récupérés par la fonction glGetError .
| Name | Signification |
|---|---|
|
le type n’est pas une valeur acceptée. |
|
la taille était négative. |
|
glFeedbackBuffer a été appelé alors que le mode de rendu était _ Commentaires sur le GL, ou glRenderMode a été appelé avec des commentaires sur l’argument GL _ avant que glFeedbackBuffer n’ait été appelé au moins une fois. |
|
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd. |
Remarques
La fonction glFeedbackBuffer contrôle les commentaires. Les commentaires, comme la sélection, sont un mode OpenGL. Le mode est sélectionné en appelant glRenderMode avec les commentaires sur le GL _ . Lorsque OpenGL est en mode commentaires, aucun Pixel n’est généré par pixellisation. Au lieu de cela, les informations sur les primitives qui auraient été pixellisées sont renvoyées à l’application à l’aide de OpenGL.
La fonction glFeedbackBuffer a trois arguments :
- buffer est un pointeur vers un tableau de valeurs à virgule flottante dans lequel les informations de commentaires sont placées.
- taille indique la taille du tableau.
- le type est une constante symbolique décrivant les informations qui sont renvoyées pour chaque vertex.
Vous devez émettre glFeedbackBuffer pour que le mode Commentaires soit activé (en appelant glRenderMode avec les commentaires sur l’argument GL _ ). La définition _ de commentaires sur le GL sans l’établissement de la mémoire tampon de commentaires, ou l’appel de glFeedbackBuffer alors que OpenGL est en mode commentaires, est une erreur.
Veillez à utiliser le mode Feedback en appelant glRenderMode avec une valeur de paramètre autre que le _ Feedback GL. Lorsque vous effectuez cette opération alors que OpenGL est en mode commentaires, glRenderMode retourne le nombre d’entrées placées dans le tableau de commentaires. La valeur retournée n’est jamais supérieure à la taille. Si les données de commentaires requièrent plus d’espace que ce qui était disponible dans la mémoire tampon, glRenderMode retourne une valeur négative.
En mode commentaires, chaque primitive qui serait pixellisée génère un bloc de valeurs copiées dans le tableau de commentaires. Si vous procédez ainsi, le nombre d’entrées dépasse le maximum, glFeedbackBuffer écrit partiellement le bloc afin de remplir le tableau (s’il reste de la place) et définit un indicateur de dépassement de capacité. Chaque bloc commence par un code qui indique le type primitif, suivi de valeurs qui décrivent les vertex de la primitive et les données associées. La fonction glFeedbackBuffer écrit également des entrées pour les bitmaps et les rectangles de pixels. Des commentaires se produisent après l’élimination des polygones et l’interprétation glPolygonMode des polygones, de sorte que les polygones qui sont supprimés ne sont pas retournés dans la mémoire tampon de commentaires. Elle peut également se produire lorsque les polygones avec plus de trois bords sont divisés en triangles, si l’implémentation OpenGL affiche des polygones en effectuant cette décomposition.
Vous pouvez insérer un marqueur dans la mémoire tampon de commentaires avec glPassThrough.
Voici la grammaire des blocs de valeurs écrites dans la mémoire tampon de commentaires. Chaque primitive est indiquée avec une valeur d’identification unique suivie d’un certain nombre de vertex. Les entrées de polygone incluent une valeur entière indiquant le nombre de vertex qui suivent. Un vertex est renvoyé sous la forme d’un certain nombre de valeurs à virgule flottante, comme déterminé par le type. Les couleurs sont renvoyées sous forme de quatre valeurs en mode RVBA et d’une valeur en mode d’index des couleurs.
feedbackList < feedbackItem feedbackList | feedbackItem
feedbackItem < point | LineSegment | Polygon | bitmap | pixelRectangle | PassThru
point < sommet du jeton de _ point GL _
lineSegment < jeton de ligne GL vertex vertex de la _ _ | ligne GL de _ _ réinitialisation du _ jeton de sommet
Polygon < _ jeton de polygone GL _ n
polyspec < vertex vertex vertex vertex vertex |
bitmap < vertex de jeton de _ bitmap GL _
pixelRectangle < GL-créer un vertex de jeton de pixel de _ _ _ | _ copie GL _ _ de nuance de pixel
valeur de jeton de transmission de transfert de < du GL passThru _ _ _
vertex < 2D | 3D | 3dColor | 3dColorTexture | 4dColorTexture
valeur de la valeur de < 2D
valeur de la valeur de la valeur de < 3D
3dColor < valeur de la valeur de valeur de valeur
3dColorTexture < valeur valeur valeur couleur Tex
4dColorTexture < valeur valeur valeur valeur couleur Tex
index de couleur < RVBA |
valeur de valeur de valeur de la valeur de < RVBA
valeur de < d’index
valeur de valeur de valeur de valeur <
Le paramètre de valeur est un nombre à virgule flottante, et n est un entier à virgule flottante qui donne le nombre de vertex du polygone. Les éléments suivants sont des constantes à virgule flottante symboliques : _ jeton de point GL _ , jeton de _ ligne GL _ , jeton de _ _ réinitialisation de ligne GL _ , jeton de _ polygone GL _ , jeton de _ bitmap GL, jeton de texte _ _ de dessin GL _ _ , jeton de copie GL de _ _ pixel _ et jeton de transfert de GL _ _ _ . _ _ Le jeton de réinitialisation de ligne GL _ est renvoyé chaque fois que le modèle de ligne stipple est réinitialisé. Les données retournées en tant que vertex dépendent du type de commentaires.
Le tableau suivant donne la correspondance entre le type et le nombre de valeurs par vertex ; k est 1 en mode d’index de couleurs et 4 en mode RVBA.
| Type | Coordinates | Couleur | Texture | Nombre total de valeurs |
|---|---|---|---|---|
| COMPTABILITÉ _ 2D | x, y | 2 | ||
| _3D GL | x, y, z | 3 | ||
| _Couleur 3D _ GL | x, y, z | DK | 3 + k | |
| _Texture de _ couleur _ 3D GL | x, y, z, | DK | 4 | 7 + k |
| TEXTURE GL de _ _ couleur 4D _ | x, y, z, w | DK | 4 | 8 + k |
Les coordonnées des sommets de commentaires sont exprimées en coordonnées de fenêtre, sauf w, qui est en coordonnées de clip. Les couleurs de commentaires sont claires, si l’éclairage est activé. Des coordonnées de texture de commentaires sont générées si la génération de coordonnées de texture est activée. Elles sont toujours transformées par la matrice de texture.
La fonction glFeedbackBuffer , lorsqu’elle est utilisée dans une liste d’affichage, n’est pas compilée dans la liste d’affichage, mais plutôt exécutée immédiatement.
La fonction suivante récupère des informations relatives à glFeedbackBuffer:
glGet avec argument GL _ Render _ mode
Configuration requise
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge |
Windows 2000 Professionnel - [Applications de bureau uniquement] |
| Serveur minimal pris en charge |
Windows 2000 Server - [Applications de bureau uniquement] |
| En-tête |
|
| Bibliothèque |
|
| DLL |
|