diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 0802e88..30034dc 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -555,7 +555,7 @@ this.blendModes[CONST.BLEND_MODES.NORMAL] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.ADD] = [gl.SRC_ALPHA, gl.DST_ALPHA]; this.blendModes[CONST.BLEND_MODES.MULTIPLY] = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA]; - this.blendModes[CONST.BLEND_MODES.SCREEN] = [gl.SRC_ALPHA, gl.ONE]; + this.blendModes[CONST.BLEND_MODES.SCREEN] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR]; this.blendModes[CONST.BLEND_MODES.OVERLAY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.DARKEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.LIGHTEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index 0802e88..30034dc 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -555,7 +555,7 @@ this.blendModes[CONST.BLEND_MODES.NORMAL] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.ADD] = [gl.SRC_ALPHA, gl.DST_ALPHA]; this.blendModes[CONST.BLEND_MODES.MULTIPLY] = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA]; - this.blendModes[CONST.BLEND_MODES.SCREEN] = [gl.SRC_ALPHA, gl.ONE]; + this.blendModes[CONST.BLEND_MODES.SCREEN] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR]; this.blendModes[CONST.BLEND_MODES.OVERLAY] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.DARKEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; this.blendModes[CONST.BLEND_MODES.LIGHTEN] = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA]; diff --git a/src/core/renderers/webgl/managers/BlendModeManager.js b/src/core/renderers/webgl/managers/BlendModeManager.js index a928031..b6eb6e1 100644 --- a/src/core/renderers/webgl/managers/BlendModeManager.js +++ b/src/core/renderers/webgl/managers/BlendModeManager.js @@ -29,11 +29,11 @@ */ BlendModeManager.prototype.setBlendMode = function (blendMode, isSourcePremultiplied) { - if (typeof isSourcePremultiplied === "undefined") { + if (typeof isSourcePremultiplied === 'undefined') { isSourcePremultiplied = true; } if (this.currentBlendMode === blendMode && - this.currentSourcePremultiplied == isSourcePremultiplied) + this.currentSourcePremultiplied === isSourcePremultiplied) { return false; } @@ -43,9 +43,11 @@ var mode = this.renderer.blendModes[this.currentBlendMode]; var gl = this.renderer.gl; - if (isSourcePremultiplied && mode[0] == gl.SRC_ALPHA) + if (isSourcePremultiplied && mode[0] === gl.SRC_ALPHA) { gl.blendFunc(gl.ONE, mode[1]); - else + } + else { gl.blendFunc(mode[0], mode[1]); + } return true; };