#line 1

uniform vec2 u_textureSize;
uniform mat4 u_transform;
uniform bool u_flipped;

in vec2 in_position;

#ifdef OVERLAY
uniform bool u_overlayFlipped;
out vec2 overlayTexcoords;
out vec2 texelCoords;
#endif

#ifdef REGION_OF_INTEREST
out vec2 position;
#endif

void main()
{
    gl_Position = u_transform * vec4(in_position * u_textureSize, 0.0, 1.0);

#ifdef OVERLAY
    overlayTexcoords = (u_overlayFlipped ? vec2(in_position.x, 1.0 - in_position.y) : in_position);
    vec2 texcoords = (u_flipped ? vec2(in_position.x, 1.0 - in_position.y) : in_position);
    texelCoords = texcoords * u_textureSize;
#endif
    
#ifdef REGION_OF_INTEREST
    position = (u_flipped ? vec2(in_position.x, 1.0 - in_position.y) : in_position);
    position = position * u_textureSize;
#endif
}
