WebGLRenderingContext: метод stencilOp()
Базовая Широко поддерживается
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
Примечание: Эта функция доступна в Потоках Web Workers.
Метод WebGLRenderingContext.stencilOp() API WebGL устанавливает действия проверки по грани для передней и задней сторон.
Синтаксис
stencilOp(fail, zfail, zpass)
Параметры
fail-
GLenum, определяющий функцию, используемую при неудачном тесте стентирования. Значение по умолчанию —gl.KEEP. zfail-
GLenum, определяющий функцию, используемую при успешном тесте стентирования, но неудачном тесте глубины. Значение по умолчанию —gl.KEEP. zpass-
GLenum, определяющий функцию, используемую при успешном прохождении и теста стентирования, и теста глубины, или при успешном тесте стентирования и отсутствии буфера глубины или отключении проверки глубины. Значение по умолчанию —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.stencilOp(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 для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
stencilOp |
9 | 12 | 4 | 12 | 5.1 | 25 | 4 | 12 | 8 | 1.5 | 4.4.3 |
См. также
© 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/stencilOp