Compartir a través de


función glStencilOp

La función glStencilOp establece las acciones de prueba de galería de símbolos.

Sintaxis

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

Parámetros

Fallar

Acción que se va a realizar cuando se produce un error en la prueba de galería de símbolos. Se aceptan las seis constantes simbólicas siguientes.

Value Significado
GL_KEEP
Mantiene el valor actual.
GL_ZERO
Establece el valor del búfer de galería de símbolos en cero.
GL_REPLACE
Establece el valor del búfer de galería de símbolos en ref, como se especifica en glStencilFunc.
GL_INCR
Incrementa el valor actual del búfer de galería de símbolos. Fija el valor máximo que se puede representar sin signo.
GL_DECR
Disminuye el valor actual del búfer de galería de símbolos. Sujeta a cero.
GL_INVERT
Bit a bit invierte el valor actual del búfer de galería de símbolos.

zfail

Acción de galería de símbolos cuando se supera la prueba de galería de símbolos, pero se produce un error en la prueba de profundidad. Acepta las mismas constantes simbólicas que producen errores.

Zpass

Acción de galería de símbolos cuando se supera la prueba de galería de símbolos y la prueba de profundidad, o cuando se supera la prueba de galería de símbolos y no hay ningún búfer de profundidad o pruebas de profundidad no está habilitada. Acepta las mismas constantes simbólicas que producen errores.

Valor devuelto

Esta función no devuelve ningún valor.

Códigos de error

La función glGetError puede recuperar los siguientes códigos de error.

Nombre Significado
GL_INVALID_ENUM
fail, zfail o zpass era cualquier valor distinto de los seis valores constantes definidos.
GL_INVALID_OPERATION
Se llamó a la función entre una llamada a glBegin y la llamada correspondiente a glEnd.

Comentarios

La galería de símbolos, como el almacenamiento en búfer z, habilita y deshabilita el dibujo por píxel. Puede dibujar en los planos de galería de símbolos mediante primitivos de dibujo de OpenGL y, a continuación, representar geometría e imágenes con los planos de galería de símbolos para enmascarar partes de la pantalla. La galería de símbolos se usa normalmente en algoritmos de representación multipaso para lograr efectos especiales, como calcales, esquematización y representación de geometría sólida constructiva.

La prueba de galería de símbolos elimina condicionalmente un píxel en función del resultado de una comparación entre el valor del búfer de galería de símbolos y un valor de referencia. La prueba está habilitada con llamadas glEnable y glDisable con GL_STENCIL_TEST de argumentos y controladas con glStencilFunc.

La función glStencilOp toma tres argumentos que indican lo que sucede con el valor de la galería de símbolos almacenada mientras la galería de símbolos está habilitada. Si se produce un error en la prueba de galería de símbolos, no se realiza ningún cambio en los búferes de color o profundidad del píxel y se produce un error en lo que sucede con el contenido del búfer de galería de símbolos.

Los valores del búfer de galería de símbolos se tratan como enteros sin signo. Cuando se incrementa y disminuye, los valores se fijan en 0 y 2n 1, donde n es el valor devuelto consultando GL_STENCIL_BITS.

Los otros dos argumentos para glStencilOp especifican acciones de búfer de galería de símbolos si las pruebas de búfer de profundidad posteriores se realizan correctamente (zpass) o producen un error (zfail). (Consulte glDepthFunc). Se especifican con las mismas seis constantes simbólicas que producen errores. Tenga en cuenta que zfail se omite cuando no hay ningún búfer de profundidad o cuando el búfer de profundidad no está habilitado. En estos casos, fail y zpass especifican la acción de galería de símbolos cuando se produce un error en la prueba de galería de símbolos y se supera, respectivamente.

Inicialmente, la prueba de galería de símbolos está deshabilitada. Si no hay ningún búfer de galería de símbolos, se puede producir ninguna modificación de la galería de símbolos y es como si las pruebas de galería de símbolos siempre se superen, independientemente de cualquier llamada a glStencilOp.

Las siguientes funciones recuperan información relacionada con glStencilOp:

glGet con GL_STENCIL_FAIL de argumentos

glGet con GL_STENCIL_PASS_DEPTH_PASS de argumentos

glGet con GL_STENCIL_PASS_DEPTH_FAIL de argumentos

glGet con GL_STENCIL_BITS de argumentos

glIsEnabled con GL_STENCIL_TEST de argumento

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Gl.h
Biblioteca
Opengl32.lib
Archivo DLL
Opengl32.dll

Consulte también

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilFunc