diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index bd7ea14..2bcb4da 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -2,7 +2,7 @@ tempPoint = new core.Point(), CanvasTinter = require('../core/sprites/canvas/CanvasTinter'), TilingShader = require('./webgl/TilingShader'); - + tempArray = new Float32Array(4); /** * A tiling sprite is a fast way of rendering a tiling image * @@ -184,7 +184,13 @@ glData.shader.uniforms.uTransform = uTransform; glData.shader.uniforms.translationMatrix = this.worldTransform.toArray(true); - glData.shader.uniforms.alpha = this.worldAlpha; + + var color = tempArray; + + core.utils.hex2rgb(this.tint, color); + color[3] = this.worldAlpha; + + glData.shader.uniforms.uColor = color; renderer.bindTexture(this._texture, 0); glData.quad.draw(); diff --git a/src/extras/TilingSprite.js b/src/extras/TilingSprite.js index bd7ea14..2bcb4da 100644 --- a/src/extras/TilingSprite.js +++ b/src/extras/TilingSprite.js @@ -2,7 +2,7 @@ tempPoint = new core.Point(), CanvasTinter = require('../core/sprites/canvas/CanvasTinter'), TilingShader = require('./webgl/TilingShader'); - + tempArray = new Float32Array(4); /** * A tiling sprite is a fast way of rendering a tiling image * @@ -184,7 +184,13 @@ glData.shader.uniforms.uTransform = uTransform; glData.shader.uniforms.translationMatrix = this.worldTransform.toArray(true); - glData.shader.uniforms.alpha = this.worldAlpha; + + var color = tempArray; + + core.utils.hex2rgb(this.tint, color); + color[3] = this.worldAlpha; + + glData.shader.uniforms.uColor = color; renderer.bindTexture(this._texture, 0); glData.quad.draw(); diff --git a/src/extras/webgl/tilingSprite.frag b/src/extras/webgl/tilingSprite.frag index cad664a..77d7176 100644 --- a/src/extras/webgl/tilingSprite.frag +++ b/src/extras/webgl/tilingSprite.frag @@ -2,15 +2,19 @@ varying vec4 vColor; uniform sampler2D uSampler; +uniform vec4 uColor; uniform vec4 uFrame; uniform vec2 uPixelSize; void main(void) { - vec2 coord = mod(vTextureCoord, uFrame.zw); - coord = clamp(coord, uPixelSize, uFrame.zw - uPixelSize); - coord += uFrame.xy; + vec2 coord = mod(vTextureCoord, uFrame.zw); + coord = clamp(coord, uPixelSize, uFrame.zw - uPixelSize); + coord += uFrame.xy; - gl_FragColor = texture2D(uSampler, coord) ; + vec4 sample = texture2D(uSampler, coord); + vec4 color = vec4(uColor.rgb * uColor.a, uColor.a); + + gl_FragColor = sample * color ; }