Skip to content

Commit

Permalink
Only apply CPU mosaic+pixelate in "logical bounds"
Browse files Browse the repository at this point in the history
  • Loading branch information
adroitwhiz committed Jul 14, 2020
1 parent 33afac9 commit 95c1e1d
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions src/EffectTransform.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,12 +217,15 @@ class EffectTransform {
dst[1] = (dst[1] - skinUniforms.u_logicalBounds[1]) /
(skinUniforms.u_logicalBounds[3] - skinUniforms.u_logicalBounds[1]);

if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0) {
const pointInsideLogicalBounds = dst[0] >= 0 && dst[0] <= 1 && dst[1] >= 0 && dst[1] <= 1;

// Only apply mosaic and pixelate effects to points inside the "logical bounds".
if ((effects & ShaderManager.EFFECT_INFO.mosaic.mask) !== 0 && pointInsideLogicalBounds) {
// texcoord0 = fract(u_mosaic * texcoord0);
dst[0] = uniforms.u_mosaic * dst[0] % 1;
dst[1] = uniforms.u_mosaic * dst[1] % 1;
}
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0) {
if ((effects & ShaderManager.EFFECT_INFO.pixelate.mask) !== 0 && pointInsideLogicalBounds) {
// vec2 pixelTexelSize = u_skinSize / u_pixelate;
const texelX = skinUniforms.u_skinSize[0] / uniforms.u_pixelate;
const texelY = skinUniforms.u_skinSize[1] / uniforms.u_pixelate;
Expand Down

0 comments on commit 95c1e1d

Please sign in to comment.