varying vec2 vTextureCoord;
uniform sampler2D uSampler;
uniform vec4 uColor;
uniform vec4 uFrame;
uniform vec2 uPixelSize;
void main(void)
{
    vec2 coord = mod(vTextureCoord, uFrame.zw);
    coord = clamp(coord, uPixelSize, uFrame.zw - uPixelSize);
    coord += uFrame.xy;
    vec4 sample = texture2D(uSampler, coord);
    vec4 color = vec4(uColor.rgb * uColor.a, uColor.a);
    gl_FragColor = sample * color ;
}