Compartilhar via


Função glStencilFunc

A função glStencilFunc define a função e o valor de referência para teste de estêncil.

Sintaxe

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

Parâmetros

func

A função de teste. Os oito tokens a seguir são válidos.

Valor Significado
GL_NEVER
Sempre falha.
GL_LESS
Passa se (máscararef&) < (máscarade estêncil&).
GL_LEQUAL
Passa se (máscararef&) = (máscarade estêncil&).
GL_GREATER
Passa se (máscararef&) > (máscarade estêncil&).
GL_GEQUAL
Passa se (máscararef&) = (máscarade estêncil&).
GL_EQUAL
Passa se (máscararef&) = (máscarade estêncil&).
GL_NOTEQUAL
Passa se (máscararef&) ? (estêncil&máscara).
GL_ALWAYS
Sempre passa.

ref

O valor de referência para o teste de estêncil. O parâmetro ref é fixado ao intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil.

mask

Uma máscara que é ANDcom o valor de referência e o valor do estêncil armazenado quando o teste é feito.

Retornar valor

Essa função não retorna um valor.

Códigos de erro

Os códigos de erro a seguir podem ser recuperados pela função glGetError .

Nome Significado
GL_INVALID_ENUM
func não foi um dos oito valores aceitos.
GL_INVALID_OPERATION
A função foi chamada entre uma chamada para glBegin e a chamada correspondente para glEnd.

Comentários

O estêncil, como o buffer z, habilita e desabilita o desenho por pixel. Você desenha nos planos de estêncil usando primitivos de desenho OpenGL e, em seguida, renderiza geometria e imagens, usando os planos de estêncil para mascarar partes da tela. O estêncil normalmente é usado em algoritmos de renderização multipasso para obter efeitos especiais, como decalques, estrutura de tópicos e renderização de geometria sólida construtiva.

O teste de estêncil elimina condicionalmente um pixel com base no resultado de uma comparação entre o valor de referência e o valor no buffer de estêncil. O teste é habilitado por glEnable e glDisable com GL_STENCIL_TEST de argumento. As ações executadas com base no resultado do teste de estêncil são especificadas com glStencilOp.

O parâmetro func é uma constante simbólica que determina a função de comparação de estêncil. Ele aceita um dos oito valores mostrados acima. O parâmetro ref é um valor de referência inteiro usado na comparação de estêncil. Ele é fixado ao intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil. O parâmetro mask é bit a bit ANDcom o valor de referência e o valor do estêncil armazenado, com os valores anded participando da comparação.

Se o estêncil representar o valor armazenado no local do buffer de estêncil correspondente, a lista anterior mostrará o efeito de cada função de comparação que pode ser especificada pelo func. Somente se a comparação for bem-sucedida é que o pixel passou para o próximo estágio no processo de rasterização (consulte glStencilOp). Todos os testes tratam valores de estêncil como inteiros sem sinal no intervalo [0, 2n 1], em que n é o número de planos de bits no buffer de estêncil.

Inicialmente, o teste de estêncil está desabilitado. Se não houver nenhum buffer de estêncil, nenhuma modificação de estêncil poderá ocorrer e será como se o teste de estêncil sempre fosse aprovado.

As seguintes funções recuperam informações relacionadas a glStencilFunc:

glGet com GL_STENCIL_FUNC de argumento

glGet com GL_STENCIL_VALUE_MASK de argumento

glGet com GL_STENCIL_REF de argumento

glGet com GL_STENCIL_BITS de argumento

glIsEnabled com GL_STENCIL_TEST de argumento

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Gl.h
Biblioteca
Opengl32.lib
DLL
Opengl32.dll

Confira também

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp