Поделиться через


Функция glStencilFunc

Функция glStencilFunc задает значение функции и ссылочного значения для тестирования наборов элементов.

Синтаксис

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

Параметры

func

Тестовая функция. Следующие восемь маркеров допустимы.

Значение Значение
GL_NEVER
Всегда завершается ошибкой.
GL_LESS
Передается, если (ссылка и маска) < (набор элементов и маска).
GL_LEQUAL
Передает значение if (ref & mask) = (набор элементов и маска).
GL_GREATER
Передается, если (ссылка и маска) > (набор элементов и маска).
GL_GEQUAL
Передает значение if (ref & mask) = (набор элементов и маска).
GL_EQUAL
Передает значение if (ref & mask) = (набор элементов и маска).
GL_NOTEQUAL
Передается, если (ссылка и маска) ? (набор элементов и маска).
GL_ALWAYS
Всегда проходит.

ref;

Значение ссылки для теста наборов элементов. Параметр ref заклинается к диапазону [0, 2n 1], где n — количество битовых плоскостей в буфере наборов элементов.

mask

Маска, которая имеет значение ссылки и хранимое значение набора элементов при выполнении теста.

Возвращаемое значение

Эта функция не возвращает значение.

Коды ошибок

Следующие коды ошибок можно получить функцией glGetError .

Имя. Значение
GL_INVALID_ENUM
func не был одним из восьми принятых значений.
GL_INVALID_OPERATION
Функция была вызвана между вызовом glBegin и соответствующим вызовом glEnd.

Замечания

Набор элементов, таких как z-буферизация, включает и отключает рисование на основе пикселей. Вы рисуете в плоскости набора элементов с помощью примитивов рисования OpenGL, а затем отрисовываете геометрию и изображения с помощью плоскостей элементов для маскирования частей экрана. Набор элементов обычно используется в алгоритмах многопассной отрисовки для достижения специальных эффектов, таких как декалы, выстраивание и конструктивная геометрическая отрисовка.

Тест набора элементов условно устраняет пиксель на основе результата сравнения между ссылочным значением и значением в буфере наборов элементов. Тест включен с помощью glEnable и glDisable с аргументом GL_STENCIL_TEST. Действия, выполняемые на основе результата теста набора элементов, указываются с помощью glStencilOp.

Параметр func является символьной константой, которая определяет функцию сравнения элементов. Он принимает одно из восьми значений, показанных выше. Параметр ref является целочисленным ссылочным значением, которое используется в сравнении наборов элементов. Он зажат в диапазоне [0, 2n 1], где n — количество битовых плоскостей в буфере наборов элементов. Параметр маски побитово Иимеет значение ссылки и хранимое значение набора элементов, при этом значения AND ed, участвующие в сравнении.

Если набор представляет значение, хранящееся в соответствующем расположении буфера наборов элементов, предыдущий список показывает эффект каждой функции сравнения, которую можно указать с помощью func. Только если сравнение выполнено успешно, пиксель передается на следующий этап процесса растеризации (см. glStencilOp). Все тесты обрабатывают значения наборов как неподписанные целые числа в диапазоне [0, 2n 1], где n — количество битовых плоскостей в буфере набора элементов.

Изначально тест набора элементов отключен. Если буфер набора элементов отсутствует, изменение набора элементов не может произойти, и это так, как будто тест наборов всегда проходит.

Следующие функции извлекают сведения, связанные с glStencilFunc:

glGet с аргументом GL_STENCIL_FUNC

glGet с аргументом GL_STENCIL_VALUE_MASK

glGet с аргументом GL_STENCIL_REF

glGet с аргументом GL_STENCIL_BITS

glIsEnabled с аргументом GL_STENCIL_TEST

Requirements

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Верхний колонтитул
Gl.h
Библиотека
Opengl32.lib
DLL-библиотеки
Opengl32.dll

См. также

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp