55 lines
		
	
	
		
			796 B
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			796 B
		
	
	
	
		
			GLSL
		
	
	
	
| #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;
 | |
| }
 | |
| 
 |