#version 330

layout (location = 0) in vec2 i_pos;
layout (location = 1) in vec2 i_size;
layout (location = 2) in vec2 i_uv_pos;
layout (location = 3) in vec2 i_uv_size;
layout (location = 4) in vec4 i_color;

out vec2 v_uv;
out vec4 v_color;

void main(void) {
  vec2 p =
      gl_VertexID == 0? vec2(0.,  0.):
      gl_VertexID == 1? vec2(0., -1.):
      gl_VertexID == 2? vec2(1., -1.):
      gl_VertexID == 3? vec2(0.,  0.):
      gl_VertexID == 4? vec2(1., -1.):
      gl_VertexID == 5? vec2(1.,  0.):
      vec2(0.);

  gl_Position = vec4(p*i_size+i_pos, 0, 1);
  v_uv        = p*i_uv_size + i_uv_pos;
  v_color     = i_color;
}