| #version 430 |
| |
| layout (triangles) in; |
| layout (triangle_strip, max_vertices = 3) out; |
| |
| // OK: different instance names is allowed |
| layout (std140, binding = 1) uniform ColorBlock |
| { |
| vec4 color1; |
| bool b; |
| vec4 color2; |
| vec4 color3; |
| } uColor; |
| |
| // OK: different instance names is allowed |
| layout (std430, binding = 1) buffer BufferBlock |
| { |
| mat4 p; |
| } uBuffer; |
| |
| // OK: different instance names is allowed |
| layout (std140, binding = 0) uniform MatrixBlock |
| { |
| mat4 uProj; |
| mat4 uWorld; |
| } uMatrix; |
| |
| // OK, it's allowed for input/output interfaces to |
| // be anonymous is one unit and not in another |
| out Vertex |
| { |
| vec4 val1; |
| }; |
| |
| in Vertex |
| { |
| vec4 v1; |
| vec4 v2; |
| } iVV[]; |
| |
| |
| in vec4 P[3]; |
| |
| vec4 getColor2() |
| { |
| return uColor.color2; |
| } |
| |
| vec4 getWorld(int i) |
| { |
| val1 = vec4(1); |
| return uMatrix.uWorld * iVV[i].v1; |
| } |
| |