40 lines
		
	
	
		
			770 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			770 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#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();
 | 
						|
}
 | 
						|
 |