diff --git a/CHANGELOG.md b/CHANGELOG.md index e48a39eb6..5bba8bc43 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Change Log +## Version 2.14.1 - asap 2020 + +### API Changes + + + +### New Features + + + +### Updates + + + +### Bug Fixes + +* Reversion of WebGLSpriteBatch Bug introced at PR #641 + +### Thanks + +@weedshaker + ## Version 2.14.0 - 19 Jan 2020 ### API Changes diff --git a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js index f1cb6e4a2..ae3579f0e 100644 --- a/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/pixi/renderers/webgl/utils/WebGLSpriteBatch.js @@ -253,6 +253,15 @@ PIXI.WebGLSpriteBatch.prototype.end = function () PIXI.WebGLSpriteBatch.prototype.render = function (sprite, matrix) { var texture = sprite.texture; + var baseTexture = texture.baseTexture; + var gl = this.gl; + if (PIXI.WebGLRenderer.textureArray[baseTexture.textureIndex] != baseTexture) // eslint-disable-line eqeqeq + { + this.flush(); + gl.activeTexture(gl.TEXTURE0 + baseTexture.textureIndex); + gl.bindTexture(gl.TEXTURE_2D, baseTexture._glTextures[gl.id]); + PIXI.WebGLRenderer.textureArray[baseTexture.textureIndex] = baseTexture; + } // They provided an alternative rendering matrix, so use it var wt = sprite.worldTransform; @@ -425,7 +434,16 @@ PIXI.WebGLSpriteBatch.prototype.render = function (sprite, matrix) PIXI.WebGLSpriteBatch.prototype.renderTilingSprite = function (sprite) { var texture = sprite.tilingTexture; + var baseTexture = texture.baseTexture; + var gl = this.gl; var textureIndex = sprite.texture.baseTexture.textureIndex; + if (PIXI.WebGLRenderer.textureArray[textureIndex] != baseTexture) // eslint-disable-line eqeqeq + { + this.flush(); + gl.activeTexture(gl.TEXTURE0 + textureIndex); + gl.bindTexture(gl.TEXTURE_2D, baseTexture._glTextures[gl.id]); + PIXI.WebGLRenderer.textureArray[textureIndex] = baseTexture; + } // check texture.. if (this.currentBatchSize >= this.size) @@ -657,7 +675,7 @@ PIXI.WebGLSpriteBatch.prototype.flush = function () } // - if ((currentBaseTexture !== nextTexture && !skip) || + if (/* (currentBaseTexture !== nextTexture && !skip) || */ blendSwap || shaderSwap) {