Spec-Zone.ru › Web APIs

WebGLRenderingContext: метод stencilOpSeparate()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Веб-воркерах.

Метод WebGLRenderingContext.stencilOpSeparate() из API WebGL задаёт действия проверки по маске стенок для передней и/или задней граней.

Синтаксис

stencilOpSeparate(face, fail, zfail, zpass)

Параметры

face

Значение, указывающее, обновляется ли состояние маски стенок для передней и/или задней граней. Возможные значения:

  • gl.FRONT
  • gl.BACK
  • gl.FRONT_AND_BACK
fail

Функция, используемая, когда проверка маски стенок завершается неудачно. По умолчанию значение gl.KEEP.

zfail

Функция, используемая, когда проверка маски стенок прошла успешно, но проверка глубины завершилась неудачно. По умолчанию значение gl.KEEP.

zpass

Функция, используемая, когда обе проверки (маски стенок и глубины) прошли успешно, или когда проверка маски стенок прошла успешно, но буфер глубины отсутствует или проверка глубины отключена. По умолчанию значение gl.KEEP.

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

Ничего (undefined).

Константы

gl.KEEP

Сохраняет текущее значение.

gl.ZERO

Устанавливает значение буфера маски стенок в 0.

gl.REPLACE

Устанавливает значение буфера маски стенок в значение сравнения, заданное в WebGLRenderingContext.stencilFunc().

gl.INCR

Увеличивает текущее значение буфера маски стенок. Обрезает до максимального представимого беззнакового значения.

gl.INCR_WRAP

Увеличивает текущее значение буфера маски стенок. Переносит значение буфера маски стенок в ноль при увеличении до максимального представимого беззнакового значения.

gl.DECR

Уменьшает текущее значение буфера маски стенок. Обрезает до 0.

gl.DECR_WRAP

Уменьшает текущее значение буфера маски стенок. Переносит значение буфера маски стенок в максимальное представимое беззнаковое значение при уменьшении до 0.

gl.INVERT

Инвертирует текущее значение буфера маски стенок побитово.

Примеры

Проверка маски стенок по умолчанию отключена. Чтобы включить или отключить проверку маски стенок, используйте методы enable() и disable() с аргументом gl.STENCIL_TEST.

gl.enable(gl.STENCIL_TEST);
gl.stencilOpSeparate(gl.FRONT, gl.INCR, gl.DECR, gl.INVERT);

Чтобы получить текущую информацию о проверке маски стенок и глубины (проход/непроход), запросите следующие константы с помощью getParameter().

gl.getParameter(gl.STENCIL_FAIL);
gl.getParameter(gl.STENCIL_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BACK_FAIL);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_PASS);
gl.getParameter(gl.STENCIL_BACK_PASS_DEPTH_FAIL);
gl.getParameter(gl.STENCIL_BITS);

Спецификации

Спецификация
Спецификация WebGL
# 5.14.3

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на iOS Samsung Internet WebView Android
stencilOpSeparate 9 12 4 12 5.1 25 4 12 8 1.5 4.4.3

См. также

  • WebGLRenderingContext.stencilOp()
  • WebGLRenderingContext.stencilFunc()
  • WebGLRenderingContext.stencilFuncSeparate()
  • WebGLRenderingContext.stencilMask()
  • WebGLRenderingContext.stencilMaskSeparate()

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/stencilOpSeparate

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API