diff --git a/packages/core/src/batch/generateMultiTextureShader.js b/packages/core/src/batch/generateMultiTextureShader.js index 95bac2e..b00c9ab 100644 --- a/packages/core/src/batch/generateMultiTextureShader.js +++ b/packages/core/src/batch/generateMultiTextureShader.js @@ -44,7 +44,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: defaultGroupCache[maxTextures], }; diff --git a/packages/core/src/batch/generateMultiTextureShader.js b/packages/core/src/batch/generateMultiTextureShader.js index 95bac2e..b00c9ab 100644 --- a/packages/core/src/batch/generateMultiTextureShader.js +++ b/packages/core/src/batch/generateMultiTextureShader.js @@ -44,7 +44,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: defaultGroupCache[maxTextures], }; diff --git a/packages/core/src/batch/texture.vert b/packages/core/src/batch/texture.vert index a9ca159..7567e10 100644 --- a/packages/core/src/batch/texture.vert +++ b/packages/core/src/batch/texture.vert @@ -6,7 +6,7 @@ uniform mat3 projectionMatrix; uniform mat3 translationMatrix; -uniform vec3 tint; +uniform vec4 tint; varying vec2 vTextureCoord; varying vec4 vColor; @@ -17,5 +17,5 @@ vTextureCoord = aTextureCoord; vTextureId = aTextureId; - vColor = aColor * vec4(tint,1.); + vColor = aColor * tint; } diff --git a/packages/core/src/batch/generateMultiTextureShader.js b/packages/core/src/batch/generateMultiTextureShader.js index 95bac2e..b00c9ab 100644 --- a/packages/core/src/batch/generateMultiTextureShader.js +++ b/packages/core/src/batch/generateMultiTextureShader.js @@ -44,7 +44,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: defaultGroupCache[maxTextures], }; diff --git a/packages/core/src/batch/texture.vert b/packages/core/src/batch/texture.vert index a9ca159..7567e10 100644 --- a/packages/core/src/batch/texture.vert +++ b/packages/core/src/batch/texture.vert @@ -6,7 +6,7 @@ uniform mat3 projectionMatrix; uniform mat3 translationMatrix; -uniform vec3 tint; +uniform vec4 tint; varying vec2 vTextureCoord; varying vec4 vColor; @@ -17,5 +17,5 @@ vTextureCoord = aTextureCoord; vTextureId = aTextureId; - vColor = aColor * vec4(tint,1.); + vColor = aColor * tint; } diff --git a/packages/graphics/src/Graphics.js b/packages/graphics/src/Graphics.js index ad83954..ddb65ca 100644 --- a/packages/graphics/src/Graphics.js +++ b/packages/graphics/src/Graphics.js @@ -857,7 +857,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: UniformGroup.from({ uSamplers: sampleValues }, true), }; @@ -866,7 +866,14 @@ } // apply the tint.. - hex2rgb(this.tint, this.shader.uniforms.tint); + const tint = this.shader.uniforms.tint; + const hexTint = this.tint; + const wa = this.worldAlpha; + + tint[0] = (((hexTint >> 16) & 0xFF) / 255) * wa; + tint[1] = (((hexTint >> 8) & 0xFF) / 255) * wa; + tint[2] = ((hexTint & 0xFF) / 255) * wa; + tint[3] = wa; this.shader.uniforms.translationMatrix = this.transform.worldTransform;// .toArray(true); // the first draw call, we can set the uniforms of the shader directly here. diff --git a/packages/core/src/batch/generateMultiTextureShader.js b/packages/core/src/batch/generateMultiTextureShader.js index 95bac2e..b00c9ab 100644 --- a/packages/core/src/batch/generateMultiTextureShader.js +++ b/packages/core/src/batch/generateMultiTextureShader.js @@ -44,7 +44,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: defaultGroupCache[maxTextures], }; diff --git a/packages/core/src/batch/texture.vert b/packages/core/src/batch/texture.vert index a9ca159..7567e10 100644 --- a/packages/core/src/batch/texture.vert +++ b/packages/core/src/batch/texture.vert @@ -6,7 +6,7 @@ uniform mat3 projectionMatrix; uniform mat3 translationMatrix; -uniform vec3 tint; +uniform vec4 tint; varying vec2 vTextureCoord; varying vec4 vColor; @@ -17,5 +17,5 @@ vTextureCoord = aTextureCoord; vTextureId = aTextureId; - vColor = aColor * vec4(tint,1.); + vColor = aColor * tint; } diff --git a/packages/graphics/src/Graphics.js b/packages/graphics/src/Graphics.js index ad83954..ddb65ca 100644 --- a/packages/graphics/src/Graphics.js +++ b/packages/graphics/src/Graphics.js @@ -857,7 +857,7 @@ } const uniforms = { - tint: new Float32Array([1, 1, 1]), + tint: new Float32Array([1, 1, 1, 1]), translationMatrix: new Matrix(), default: UniformGroup.from({ uSamplers: sampleValues }, true), }; @@ -866,7 +866,14 @@ } // apply the tint.. - hex2rgb(this.tint, this.shader.uniforms.tint); + const tint = this.shader.uniforms.tint; + const hexTint = this.tint; + const wa = this.worldAlpha; + + tint[0] = (((hexTint >> 16) & 0xFF) / 255) * wa; + tint[1] = (((hexTint >> 8) & 0xFF) / 255) * wa; + tint[2] = ((hexTint & 0xFF) / 255) * wa; + tint[3] = wa; this.shader.uniforms.translationMatrix = this.transform.worldTransform;// .toArray(true); // the first draw call, we can set the uniforms of the shader directly here. diff --git a/packages/graphics/src/GraphicsGeometry.js b/packages/graphics/src/GraphicsGeometry.js index 20bb209..d8d3ce9 100644 --- a/packages/graphics/src/GraphicsGeometry.js +++ b/packages/graphics/src/GraphicsGeometry.js @@ -496,7 +496,7 @@ this.indicesUint16 = new Uint16Array(this.indices); // TODO make this a const.. - this.batchable = this.points.length < GraphicsGeometry.BATCHABLE_SIZE * 2; + this.batchable = false;// this.points.length < GraphicsGeometry.BATCHABLE_SIZE * 2; if (this.batchable) {