Skip to content

Commit 95c1e1d

Browse files
committed
Only apply CPU mosaic+pixelate in "logical bounds"
1 parent 33afac9 commit 95c1e1d

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
@@ -217,12 +217,15 @@ class EffectTransform {
217217
dst[1] = (dst[1] - skinUniforms.u_logicalBounds[1]) /
218218
(skinUniforms.u_logicalBounds[3] - skinUniforms.u_logicalBounds[1]);
219219

220-
if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0) {
220+
const pointInsideLogicalBounds = dst[0] >= 0 && dst[0] <= 1 && dst[1] >= 0 && dst[1] <= 1;
221+
222+
// Only apply mosaic and pixelate effects to points inside the "logical bounds".
223+
if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0 && pointInsideLogicalBounds) {
221224
// texcoord0 = fract(u_mosaic * texcoord0);
222225
dst[0] = uniforms.u_mosaic * dst[0] % 1;
223226
dst[1] = uniforms.u_mosaic * dst[1] % 1;
224227
}
225-
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0) {
228+
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0 && pointInsideLogicalBounds) {
226229
// vec2 pixelTexelSize = u_skinSize / u_pixelate;
227230
const texelX = skinUniforms.u_skinSize[0] / uniforms.u_pixelate;
228231
const texelY = skinUniforms.u_skinSize[1] / uniforms.u_pixelate;

0 commit comments

Comments
 (0)