precision mediump float;

varying lowp vec4 vColor;
varying vec2 vTexCoord;

uniform sampler2D u_texture;

uniform float bias;
uniform vec4 rectangle;

void main() {
  vec4 texColor;
  if (vTexCoord.x >= rectangle.x && vTexCoord.x <= rectangle.x + rectangle.z
   && vTexCoord.y >= rectangle.y && vTexCoord.y <= rectangle.y + rectangle.w)
    texColor = texture2D(u_texture, vTexCoord, bias);
  else
    texColor = texture2D(u_texture, vTexCoord);
  gl_FragColor = texColor * vColor;
}