glStencilOp fonction)

La fonction glStencilOp définit les actions de test de stencil.

Syntaxe

void WINAPI glStencilOp(
   GLenum fail,
   GLenum zfail,
   GLenum zpass
);

Paramètres

incident

Action à effectuer en cas d’échec du test du stencil. Les six constantes symboliques suivantes sont acceptées.

Valeur Signification
conserver le GL _
Conserve la valeur actuelle.
_zéro GL
Définit la valeur de la mémoire tampon du stencil sur zéro.
remplacement du GL _
Définit la valeur de la mémoire tampon du stencil sur ref, comme spécifié par glStencilFunc.
incrémental du GL _
Incrémente la valeur de la mémoire tampon du stencil actuelle. S’attache à la valeur non signée maximale représentable.
_DECR (GL
Décrémente la valeur de la mémoire tampon du stencil actuelle. La valeur de est ancrée à zéro.
GL _ inversée
L’opération de bits inverse la valeur de la mémoire tampon du stencil actuelle.

zfail

Action du stencil lorsque le test du stencil réussit, mais le test de profondeur échoue. Accepte les mêmes constantes symboliques que Fail.

zpass

Action de stencil lorsque le test de stencil et le test de profondeur réussissent, ou lorsque le test de stencil réussit et qu’il n’y a pas de mémoire tampon de profondeur ou de test de profondeur n’est pas activé. Accepte les mêmes constantes symboliques que Fail.

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
_enum GL non valide _
Fail, zfail ou ZPass a une valeur autre que les six valeurs constantes définies.
_opération non valide du GL _
La fonction a été appelée entre un appel à glBegin et l’appel correspondant à glEnd.

Notes

Le stencil, tel que la mise en mémoire tampon z, permet d’activer et de désactiver le dessin par pixel. Vous dessinez dans les plans de stencil à l’aide de primitives de dessin OpenGL, puis vous affichez la géométrie et les images à l’aide des plans de gabarit pour masquer des parties de l’écran. Le stencil est généralement utilisé dans les algorithmes de rendu multipasses pour obtenir des effets spéciaux, tels que les décalques, le mode plan et le rendu de géométrie solide constructive.

Le test de stencil élimine conditionnellement un pixel en fonction du résultat d’une comparaison entre la valeur dans la mémoire tampon de stencil et une valeur de référence. Le test est activé avec des appels glEnable et glDisable avec l’argument de test de stencil de la comptabilité _ _ , et contrôlé avec glStencilFunc.

La fonction glStencilOp accepte trois arguments qui indiquent ce qui se passe à la valeur du stencil stocké lorsque le stencil est activé. Si le test du stencil échoue, aucune modification n’est apportée aux mémoires tampons de couleur ou de profondeur du pixel et l' échec spécifie ce qui se passe au contenu de la mémoire tampon du stencil.

Les valeurs de mémoire tampon de stencil sont traitées comme des entiers non signés. En cas de incrémentation et de décrémentation, les valeurs sont ancrées à 0 et 2 n 1, où n est la valeur retournée par l’interrogation des bits du stencil du GL _ _ .

Les deux autres arguments de glStencilOp spécifient des actions de tampon de stencil qui réussissent (ZPass) ou échouent (zfail). (Voir glDepthFunc.) Elles sont spécifiées à l’aide des six mêmes constantes symboliques que Fail. Notez que zfail est ignoré lorsqu’il n’y a pas de mémoire tampon de profondeur, ou lorsque la mémoire tampon de profondeur n’est pas activée. Dans ces cas, Fail et ZPass spécifient l’action du stencil lorsque le test du stencil échoue et passe, respectivement.

Initialement, le test stencil est désactivé. S’il n’existe pas de mémoire tampon de stencil, aucune modification de stencil ne peut se produire et c’est comme si les tests de stencil réussissent toujours, quel que soit l’appel à glStencilOp.

Les fonctions suivantes récupèrent les informations relatives à glStencilOp:

échec de glGet avec l’argument du stencil du GL _ _

glGet avec argument de la passe de _ _ profondeur passe-passe de stencil _ _

échec de la _ profondeur de _ réussite du stencil _ de glGet avec argument GL _

glGet avec arguments de stencil de la comptabilité GL _ _

glIsEnabled avec l’argument _ test de stencil du GL _

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

glStencilFunc