diff --git a/packages/core/src/state/StateSystem.js b/packages/core/src/state/StateSystem.js index 39c35bb..7d8e4de 100755 --- a/packages/core/src/state/StateSystem.js +++ b/packages/core/src/state/StateSystem.js @@ -188,7 +188,17 @@ } this.blendMode = value; - this.gl.blendFunc(this.blendModes[value][0], this.blendModes[value][1]); + + const mode = this.blendModes[value]; + + if (mode.length === 2) + { + this.gl.blendFunc(mode[0], mode[1]); + } + else + { + this.gl.blendFuncSeparate(mode[0], mode[1], mode[2], mode[3]); + } } /** diff --git a/packages/core/src/state/StateSystem.js b/packages/core/src/state/StateSystem.js index 39c35bb..7d8e4de 100755 --- a/packages/core/src/state/StateSystem.js +++ b/packages/core/src/state/StateSystem.js @@ -188,7 +188,17 @@ } this.blendMode = value; - this.gl.blendFunc(this.blendModes[value][0], this.blendModes[value][1]); + + const mode = this.blendModes[value]; + + if (mode.length === 2) + { + this.gl.blendFunc(mode[0], mode[1]); + } + else + { + this.gl.blendFuncSeparate(mode[0], mode[1], mode[2], mode[3]); + } } /** diff --git a/packages/core/src/state/utils/mapWebGLBlendModesToPixi.js b/packages/core/src/state/utils/mapWebGLBlendModesToPixi.js index 10ffe4d..c307d79 100644 --- a/packages/core/src/state/utils/mapWebGLBlendModesToPixi.js +++ b/packages/core/src/state/utils/mapWebGLBlendModesToPixi.js @@ -7,8 +7,8 @@ * @function mapWebGLBlendModesToPixi * @private * @param {WebGLRenderingContext} gl - The rendering context. - * @param {string[]} [array=[]] - The array to output into. - * @return {string[]} Mapped modes. + * @param {number[][]} [array=[]] - The array to output into. + * @return {number[][]} Mapped modes. */ export default function mapWebGLBlendModesToPixi(gl, array = []) {