OpenRCT2/data/shaders/fillrect.vert

37 lines
607 B
GLSL
Raw Normal View History

2016-06-15 18:53:26 +02:00
#version 150
2016-06-07 00:57:01 +02:00
uniform ivec2 uScreenSize;
2016-06-09 00:13:49 +02:00
uniform ivec4 uBounds;
2016-06-07 00:57:01 +02:00
2016-06-15 18:53:26 +02:00
in uint vIndex;
2016-06-07 00:57:01 +02:00
out vec2 fPosition;
2016-06-07 00:57:01 +02:00
void main()
{
2016-06-09 00:13:49 +02:00
vec2 pos;
switch (vIndex) {
2016-06-15 18:53:26 +02:00
case 0u:
2016-06-09 00:13:49 +02:00
pos = uBounds.xy;
break;
2016-06-15 18:53:26 +02:00
case 1u:
2016-06-09 00:13:49 +02:00
pos = uBounds.zy;
break;
2016-06-15 18:53:26 +02:00
case 2u:
2016-06-09 00:13:49 +02:00
pos = uBounds.xw;
break;
2016-06-15 18:53:26 +02:00
case 3u:
pos = uBounds.zw;
break;
2016-06-09 00:13:49 +02:00
}
fPosition = pos;
2016-06-07 00:57:01 +02:00
// Transform screen coordinates to viewport
pos.x = (pos.x * (2.0 / uScreenSize.x)) - 1.0;
pos.y = (pos.y * (2.0 / uScreenSize.y)) - 1.0;
pos.y *= -1;
2016-06-08 22:24:39 +02:00
gl_Position = vec4(pos, 0.0, 1.0);
2016-06-07 00:57:01 +02:00
}