OES_draw_buffers_indexed: blendFuncSeparateiOES() метод
Базовая линия 2022
Новое
С декабря 2022 года эта функция работает во всех последних версиях устройств и браузеров. Возможно, эта функция не будет работать на старых устройствах или браузерах.
Метод blendFuncSeparateiOES() расширения WebGL OES_draw_buffers_indexed определяет функцию, используемую при смешивании пикселей для RGB и альфа-компонентов отдельно для конкретного буфера отрисовки.
См. OES_draw_buffers_indexed.blendFunciOES() для настройки RGB и альфа вместе и WebGLRenderingContext.blendFuncSeparate() для версии этого метода в WebGL 1.
Синтаксис
blendFuncSeparateiOES(buf, srcRGB, dstRGB, srcAlpha, dstAlpha)
Параметры
buf-
Целое число
i, определяющее буфер отрисовки, связанный с константойgl.DRAW_BUFFERi, см. константы буферов отрисовки WebGL. srcRGB-
GLenum, определяющий множитель для красной, зелёной и синей (RGB) исходных коэффициентов смешивания. Принимает те же перечисления, что и параметрsrcRGBвWebGLRenderingContext.blendFuncSeparate(). dstRGB-
GLenum, определяющий множитель для красной, зелёной и синей (RGB) целевых коэффициентов смешивания. Принимает те же перечисления, что и параметрdstRGBвWebGLRenderingContext.blendFuncSeparate(). srcAlpha-
GLenum, определяющий множитель для альфа-коэффициента исходного смешивания. Принимает те же перечисления, что и параметрsrcAlphaвWebGLRenderingContext.blendFuncSeparate(). dstAlpha-
GLenum, определяющий множитель для альфа-коэффициента целевого смешивания. Принимает те же перечисления, что и параметрsrcAlphaвWebGLRenderingContext.blendFuncSeparate().
Возвращаемое значение
Ничего (undefined).
Исключения
- Если
bufне является допустимым значением, выбрасывается ошибкаgl.INVALID_VALUE. - Если
srcRGB,dstRGB,srcAlphaилиdstAlphaне являются одним из возможных значений, выбрасывается ошибкаgl.INVALID_ENUM. - Применяются те же ограничения на смешивание, что и для
WebGLRenderingContext.blendFuncSeparate(): если постоянный цвет и постоянное значение альфа используются вместе в качестве исходных и целевых коэффициентов, выбрасывается ошибкаgl.INVALID_ENUM.
Примеры
Установка и получение функций смешивания
Следующее устанавливает функции смешивания для буферов отрисовки gl.DRAW_BUFFER0 (вызов, где buf равно 0) и gl.DRAW_BUFFER1 (вызов, где buf равно 1).
const ext = gl.getExtension("OES_draw_buffers_indexed");
ext.blendFuncSeparateiOES(0, gl.ONE, gl.ONE, gl.ZERO, gl.ZERO);
ext.blendFuncSeparateiOES(
1,
gl.SRC_ALPHA,
gl.ONE_MINUS_SRC_ALPHA,
gl.ZERO,
gl.ZERO,
);
Чтобы получить функции смешивания для буферов отрисовки 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 | |
blendFuncSeparateiOES |
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/blendFuncSeparateiOES