SDL_GPU1/shaders/triangle.vert

43 lines
929 B
GLSL

#version 450
vec2 temp_pos;
vec4 temp_color;
// layout(location = 0) out vec4 out_var_TEXCOORD0;
layout(location = 0) out vec4 outColor;
void main()
{
vec4 color;
vec2 pos;
if (uint(gl_VertexIndex) == 0u)
{
color = vec4(1.0, 0.0, 0.0, 1.0);
pos = vec2(-0.5);
}
else
{
vec4 vert_color;
vec2 vert_pos;
if (uint(gl_VertexIndex) == 1u)
{
vert_color = vec4(0.0, 1.0, 0.0, 1.0);
vert_pos = vec2(0.5, -0.5);
}
else
{
bool index_exists = uint(gl_VertexIndex) == 2u;
vert_color = mix(temp_color, vec4(0.0, 0.0, 1.0, 1.0), bvec4(index_exists));
vert_pos = mix(temp_pos, vec2(0.0, 0.5), bvec2(index_exists));
}
color = vert_color;
pos = vert_pos;
}
// out_var_TEXCOORD0 = color;
outColor = color;
gl_Position = vec4(pos, 0.0, 1.0);
}