@module quad

@vs vs
in vec3 position;
in vec2 texcoord0;
out vec2 uv;
out vec2 pos;

void main() {
    gl_Position = vec4(position.xyz, 1.0);
    uv = texcoord0;
    pos = position.xy;
}
@end

@fs fs
uniform sampler2D tex;
uniform fs_params {
    vec4 tint;

    // both in clip space
    vec2 clip_ul;
    vec2 clip_lr;

    float alpha_clip_threshold;
};

in vec2 uv;
in vec2 pos;
out vec4 frag_color;


void main() {
    // clip space is from [-1,1] [left, right]of screen on X, and [-1,1] [bottom, top] of screen on Y
    if(pos.x < clip_ul.x || pos.x > clip_lr.x || pos.y < clip_lr.y || pos.y > clip_ul.y) discard;
    frag_color = texture(tex, uv) * tint;
    if(frag_color.a <= alpha_clip_threshold)
    {
     discard;
    }
    //frag_color = vec4(pos.x,0.0,0.0,1.0);
}
@end

@program program vs fs 
