#version 130

/* Viewport width and height */
uniform ivec2 viewport_size;
/* Position offset */
uniform ivec2 position;

/* Vertex coordinates: x, y */
in vec2 coords;

/**
 * Map coordinates such that:
 * (0 .. viewport_size.[xy]) => (-1.0 .. 1.0)
 */
vec2 map_to_screen(vec2 position)
{
    return 2.0 * position / viewport_size - 1.0;
}

void main(void)
{
    gl_Position = vec4(map_to_screen(vec2(position) + coords), 0, 1);
}
