diff --git a/src/core/textures/TextureTransform.js b/src/core/textures/TextureTransform.js index f914c18..5b58021 100644 --- a/src/core/textures/TextureTransform.js +++ b/src/core/textures/TextureTransform.js @@ -84,12 +84,13 @@ const texBase = tex.baseTexture; const frame = this.clampFrame; const margin = tex.clampMargin / texBase.resolution; + const offset = tex.clampOffset; - frame[0] = (tex._frame.x + margin) / texBase.width; - frame[1] = (tex._frame.y + margin) / texBase.height; - frame[2] = (tex._frame.x + tex._frame.width - margin) / texBase.width; - frame[3] = (tex._frame.y + tex._frame.height - margin) / texBase.height; - this.clampOffset[0] = tex.clampOffset / texBase.realWidth; - this.clampOffset[1] = tex.clampOffset / texBase.realHeight; + frame[0] = (tex._frame.x + margin + offset) / texBase.width; + frame[1] = (tex._frame.y + margin + offset) / texBase.height; + frame[2] = (tex._frame.x + tex._frame.width - margin + offset) / texBase.width; + frame[3] = (tex._frame.y + tex._frame.height - margin + offset) / texBase.height; + this.clampOffset[0] = offset / texBase.realWidth; + this.clampOffset[1] = offset / texBase.realHeight; } } diff --git a/src/core/textures/TextureTransform.js b/src/core/textures/TextureTransform.js index f914c18..5b58021 100644 --- a/src/core/textures/TextureTransform.js +++ b/src/core/textures/TextureTransform.js @@ -84,12 +84,13 @@ const texBase = tex.baseTexture; const frame = this.clampFrame; const margin = tex.clampMargin / texBase.resolution; + const offset = tex.clampOffset; - frame[0] = (tex._frame.x + margin) / texBase.width; - frame[1] = (tex._frame.y + margin) / texBase.height; - frame[2] = (tex._frame.x + tex._frame.width - margin) / texBase.width; - frame[3] = (tex._frame.y + tex._frame.height - margin) / texBase.height; - this.clampOffset[0] = tex.clampOffset / texBase.realWidth; - this.clampOffset[1] = tex.clampOffset / texBase.realHeight; + frame[0] = (tex._frame.x + margin + offset) / texBase.width; + frame[1] = (tex._frame.y + margin + offset) / texBase.height; + frame[2] = (tex._frame.x + tex._frame.width - margin + offset) / texBase.width; + frame[3] = (tex._frame.y + tex._frame.height - margin + offset) / texBase.height; + this.clampOffset[0] = offset / texBase.realWidth; + this.clampOffset[1] = offset / texBase.realHeight; } } diff --git a/src/extras/webgl/TilingRenderer.js b/src/extras/webgl/TilingRenderer.js index 32e6ea3..157baf9 100644 --- a/src/extras/webgl/TilingRenderer.js +++ b/src/extras/webgl/TilingRenderer.js @@ -123,8 +123,8 @@ else { shader.uniforms.uMapCoord = uv.mapCoord.toArray(true); - shader.uniforms.uFrame = uv.frameClamp; - shader.uniforms.uClampOffset = tex.uClampOffset; + shader.uniforms.uClampFrame = uv.clampFrame; + shader.uniforms.uClampOffset = uv.clampOffset; } shader.uniforms.uTransform = tempMat.toArray(true); diff --git a/src/core/textures/TextureTransform.js b/src/core/textures/TextureTransform.js index f914c18..5b58021 100644 --- a/src/core/textures/TextureTransform.js +++ b/src/core/textures/TextureTransform.js @@ -84,12 +84,13 @@ const texBase = tex.baseTexture; const frame = this.clampFrame; const margin = tex.clampMargin / texBase.resolution; + const offset = tex.clampOffset; - frame[0] = (tex._frame.x + margin) / texBase.width; - frame[1] = (tex._frame.y + margin) / texBase.height; - frame[2] = (tex._frame.x + tex._frame.width - margin) / texBase.width; - frame[3] = (tex._frame.y + tex._frame.height - margin) / texBase.height; - this.clampOffset[0] = tex.clampOffset / texBase.realWidth; - this.clampOffset[1] = tex.clampOffset / texBase.realHeight; + frame[0] = (tex._frame.x + margin + offset) / texBase.width; + frame[1] = (tex._frame.y + margin + offset) / texBase.height; + frame[2] = (tex._frame.x + tex._frame.width - margin + offset) / texBase.width; + frame[3] = (tex._frame.y + tex._frame.height - margin + offset) / texBase.height; + this.clampOffset[0] = offset / texBase.realWidth; + this.clampOffset[1] = offset / texBase.realHeight; } } diff --git a/src/extras/webgl/TilingRenderer.js b/src/extras/webgl/TilingRenderer.js index 32e6ea3..157baf9 100644 --- a/src/extras/webgl/TilingRenderer.js +++ b/src/extras/webgl/TilingRenderer.js @@ -123,8 +123,8 @@ else { shader.uniforms.uMapCoord = uv.mapCoord.toArray(true); - shader.uniforms.uFrame = uv.frameClamp; - shader.uniforms.uClampOffset = tex.uClampOffset; + shader.uniforms.uClampFrame = uv.clampFrame; + shader.uniforms.uClampOffset = uv.clampOffset; } shader.uniforms.uTransform = tempMat.toArray(true); diff --git a/src/extras/webgl/tilingSprite.frag b/src/extras/webgl/tilingSprite.frag index 13fb147..3caa383 100644 --- a/src/extras/webgl/tilingSprite.frag +++ b/src/extras/webgl/tilingSprite.frag @@ -3,14 +3,14 @@ uniform sampler2D uSampler; uniform vec4 uColor; uniform mat3 uMapCoord; -uniform vec4 uFrame; +uniform vec4 uClampFrame; uniform vec2 uClampOffset; void main(void) { vec2 coord = mod(vTextureCoord - uClampOffset, vec2(1.0, 1.0)) + uClampOffset; coord = (uMapCoord * vec3(coord, 1.0)).xy; - coord = clamp(coord, uFrame.xy, uFrame.zw); + coord = clamp(coord, uClampFrame.xy, uClampFrame.zw); vec4 sample = texture2D(uSampler, coord); vec4 color = vec4(uColor.rgb * uColor.a, uColor.a);