out vec4 FragColor; in vec2 tex_coord; uniform vec2 size; uniform sampler2D tex; uniform bool use_tex; uniform float border; uniform vec4 fill_t; uniform vec4 fill_b; uniform vec4 border_t; uniform vec4 border_b; void main() { vec2 tex_pos = tex_coord * size; if(tex_pos.x < border || tex_pos.x > (size.x - border) || tex_pos.y < border || tex_pos.y > (size.y - border)) FragColor = mix(border_t, border_b, tex_coord.y); else FragColor = (use_tex ? texture(tex, (tex_coord - (border / size)) * (size / (size - (border * 2.0)))) : vec4(1.0)) * mix(fill_t, fill_b, tex_coord.y); }