OES_draw_buffers_indexed: метод blendFunciOES()
Базовая версия 2022
Новое
Начиная с декабря 2022 года, эта функция работает на последних устройствах и версиях браузеров. Эта функция может не работать на старых устройствах или браузерах.
Метод blendFunciOES() расширения OES_draw_buffers_indexed WebGL определяет функцию, используемую при смешивании пикселей для конкретного буфера отрисовки.
См. OES_draw_buffers_indexed.blendFuncSeparateiOES() для задания RGB и альфа-компонентов отдельно и WebGLRenderingContext.blendFunc() для версии этого метода в WebGL 1.
Синтаксис
blendFunciOES(buf, src, dst)
Параметры
buf-
Целое число
i, определяющее буфер отрисовки, связанный с константойgl.DRAW_BUFFERi, см. константы буферов отрисовки WebGL. src-
GLenum, определяющий множитель для исходных факторов смешивания. Принимает те же перечисления, что и параметрsfactorвWebGLRenderingContext.blendFunc(). dst-
GLenum, определяющий множитель для целевых факторов смешивания. Принимает те же перечисления, что и параметрdfactorвWebGLRenderingContext.blendFunc().
Возвращаемое значение
None (undefined).
Исключения
- Если
bufне является допустимым значением, выбрасывается ошибкаgl.INVALID_VALUE. - Если
srcилиdstне являются одним из возможных значений, выбрасывается ошибкаgl.INVALID_ENUM. - Применяются те же ограничения на смешивание, что и для
WebGLRenderingContext.blendFunc(): если постоянный цвет и постоянное альфа-значение используются вместе как исходные и целевые множители, выбрасывается ошибкаgl.INVALID_ENUM.
Примеры
Установка и получение функций смешивания
Вы можете установить функции смешивания для буферов отрисовки gl.DRAW_BUFFER0 и gl.DRAW_BUFFER1 следующим образом:
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendFunciOES(0, gl.ONE, gl.ONE);
ext.blendFunciOES(1, gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA);
Чтобы получить функции смешивания для буферов отрисовки gl.DRAW_BUFFER0 и gl.DRAW_BUFFER1, запросите константы BLEND_SRC_RGB, BLEND_SRC_ALPHA, BLEND_DST_RGB, и BLEND_DST_ALPHA с помощью WebGL2RenderingContext.getIndexedParameter():
// For gl.DRAW_BUFFER0 gl.getIndexedParameter(gl.BLEND_SRC_RGB, 0); gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 0); gl.getIndexedParameter(gl.BLEND_DST_RGB, 0); gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 0); // For gl.DRAW_BUFFER0 gl.getIndexedParameter(gl.BLEND_SRC_RGB, 1); gl.getIndexedParameter(gl.BLEND_SRC_ALPHA, 1); gl.getIndexedParameter(gl.BLEND_DST_RGB, 1); gl.getIndexedParameter(gl.BLEND_DST_ALPHA, 1);
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
blendFunciOES |
100 | 100 | 108 | 86 | 16 | 100 | 108 | 69 | 16 | 19.0 | 100 |
См. также
© 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/OES_draw_buffers_indexed/blendFunciOES