| #version 460 | |
| layout(points) in; | |
| layout(triangle_strip, max_vertices=3) out; | |
| in vec4 vgo1[]; | |
| in vec2 vgo2[]; | |
| layout(location = 5) in outBlock { | |
| vec4 o3; | |
| } inBlock[]; | |
| out vec4 gfo1; | |
| out vec2 gfo2; | |
| layout(location = 5) out outBlock { | |
| vec4 o3; | |
| } gf_out; | |
| uniform vec2 u1; | |
| uniform vec3 u2 = vec3(0); // initializer not present in fragment stage | |
| uniform vec4 u3 = vec4(0); // initializer matches initializer in fragment stage | |
| uniform crossStageBlock2 { | |
| uniform vec4 a; | |
| vec2 b; | |
| } blockName1 [2]; // instance name different from frag | |
| void main() | |
| { | |
| for (int i = 0; i < 3; i++) { | |
| gfo1 = vec4(0); | |
| gfo2 = vec2(0); | |
| gf_out.o3 = inBlock[i].o3; | |
| EmitVertex(); | |
| } | |
| EndPrimitive(); | |
| } | |