| #version 430 |
| |
| layout(location = 0) in vec4 in_position; |
| layout(location = 1) in vec4 in_color; |
| layout(location = 2) in int in_refVertexIndex; |
| |
| layout(location = 0) out vec4 out_color; |
| |
| out gl_PerVertex { |
| vec4 gl_Position; |
| }; |
| |
| void main() { |
| vec2 perVertex = vec2(in_position.x, in_position.y); |
| vec2 perInstance[6] = vec2[6](vec2(0.7, -0.7), vec2(-0.75, 0.8), vec2(0.0, 0.0), vec2(0.3, 0.0), vec2(0.0, -0.3),vec2(0.3, -0.3) ); |
| |
| gl_Position = vec4(perVertex + perInstance[gl_InstanceIndex], 0.0, 1.0); |
| |
| if (gl_VertexIndex == in_refVertexIndex) |
| out_color = in_color; |
| else |
| out_color = vec4(1.0, 0.0, 0.0, 1.0); |
| } |