Skip to content

Commit 1a32333

Browse files
committed
Only apply CPU mosaic+pixelate in "logical bounds"
1 parent 7155dbe commit 1a32333

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/EffectTransform.js

+5-2
Original file line numberDiff line numberDiff line change
@@ -138,12 +138,15 @@ class EffectTransform {
138138
dst[1] = (dst[1] - skinUniforms.u_logicalBounds[1]) /
139139
(skinUniforms.u_logicalBounds[3] - skinUniforms.u_logicalBounds[1]);
140140

141-
if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0) {
141+
const pointInsideLogicalBounds = dst[0] >= 0 && dst[0] <= 1 && dst[1] >= 0 && dst[1] <= 1;
142+
143+
// Only apply mosaic and pixelate effects to points inside the "logical bounds".
144+
if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0 && pointInsideLogicalBounds) {
142145
// texcoord0 = fract(u_mosaic * texcoord0);
143146
dst[0] = uniforms.u_mosaic * dst[0] % 1;
144147
dst[1] = uniforms.u_mosaic * dst[1] % 1;
145148
}
146-
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0) {
149+
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0 && pointInsideLogicalBounds) {
147150
// vec2 pixelTexelSize = u_skinSize / u_pixelate;
148151
const texelX = skinUniforms.u_skinSize[0] / uniforms.u_pixelate;
149152
const texelY = skinUniforms.u_skinSize[1] / uniforms.u_pixelate;

0 commit comments

Comments
 (0)