Partager via


fonction glStencilFunc

La fonction glStencilFunc définit la fonction et la valeur de référence pour le test de gabarit.

Syntaxe

void WINAPI glStencilFunc(
   GLenum func,
   GLint  ref,
   GLuint mask
);

Paramètres

func

Fonction de test. Les huit jetons suivants sont valides.

Valeur Signification
GL_NEVER
Échoue toujours.
GL_LESS
Passe si (masque de référence&)< (masquede gabarit&).
GL_LEQUAL
Passe if (ref&mask) = (stencil&mask).
GL_GREATER
Passe si (masque de référence&)> (masquede gabarit&).
GL_GEQUAL
Passe if (ref&mask) = (stencil&mask).
GL_EQUAL
Passe if (ref&mask) = (stencil&mask).
GL_NOTEQUAL
Passe si (masquede référence&) ? (gabarit&) masque).
GL_ALWAYS
Passe toujours.

ref

Valeur de référence pour le test de gabarit. Le paramètre ref est limité à la plage [0, 2n 1], où n est le nombre de plans de bits dans la mémoire tampon de gabarit.

mask

Masque ETavec la valeur de référence et la valeur de gabarit stockée lorsque le test est effectué.

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 .

Nom Signification
GL_INVALID_ENUM
func n’était pas l’une des huit valeurs acceptées.
GL_INVALID_OPERATION
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

Le pochoir, comme la mise en mémoire tampon z, active et désactive le dessin par pixel. Vous dessinez dans les plans de gabarit à l’aide de primitives de dessin OpenGL, puis affichez la géométrie et les images, en utilisant les plans de gabarit pour masquer des parties de l’écran. La sténonciation est généralement utilisée dans les algorithmes de rendu multipass pour obtenir des effets spéciaux, tels que des décalques, des plan et un rendu constructif de la géométrie pleine.

Le test de gabarit élimine de manière conditionnelle un pixel basé sur le résultat d’une comparaison entre la valeur de référence et la valeur dans la mémoire tampon de gabarit. Le test est activé par glEnable et glDisable avec argument GL_STENCIL_TEST. Les actions effectuées en fonction du résultat du test de gabarit sont spécifiées avec glStencilOp.

Le paramètre func est une constante symbolique qui détermine la fonction de comparaison de gabarits. Il accepte l’une des huit valeurs indiquées ci-dessus. Le paramètre ref est une valeur de référence entière utilisée dans la comparaison de gabarits. Il est limité à la plage [0, 2n 1], où n est le nombre de plans de bits dans la mémoire tampon de gabarit. Le paramètre mask est ANDau niveau du bit avec la valeur de référence et la valeur de gabarit stockée, les valeurs ANDed participant à la comparaison.

Si stencil représente la valeur stockée dans l’emplacement de mémoire tampon de gabarit correspondant, la liste précédente montre l’effet de chaque fonction de comparaison qui peut être spécifiée par func. C’est seulement si la comparaison réussit que le pixel est passé à l’étape suivante du processus de rastérisation (voir glStencilOp). Tous les tests traitent les valeurs de gabarit comme des entiers non signés dans la plage [0, 2n 1], où n est le nombre de plans de bits dans la mémoire tampon de gabarit.

Initialement, le test de gabarit est désactivé. S’il n’existe aucune mémoire tampon de gabarit, aucune modification de gabarit ne peut se produire et c’est comme si le test de gabarit réussit toujours.

Les fonctions suivantes récupèrent des informations relatives à glStencilFunc :

glGet avec argument GL_STENCIL_FUNC

glGet avec argument GL_STENCIL_VALUE_MASK

glGet avec argument GL_STENCIL_REF

glGet avec argument GL_STENCIL_BITS

glIsEnabled avec argument GL_STENCIL_TEST

Spécifications

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
Gl.h
Bibliothèque
Opengl32.lib
DLL
Opengl32.dll

Voir aussi

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp