95 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
#version 420
 | 
						|
 | 
						|
struct S 
 | 
						|
{
 | 
						|
    vec3 color;
 | 
						|
};
 | 
						|
 | 
						|
layout(location = 0) out vec3 OutColor;
 | 
						|
 | 
						|
flat in int u;
 | 
						|
 | 
						|
void GetColor1(const S i) 
 | 
						|
{ 
 | 
						|
    OutColor += i.color.x;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor2(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color[comp];
 | 
						|
}
 | 
						|
 | 
						|
void GetColor3(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color[comp].x;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor4(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color[comp].x;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor5(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor6(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color.yx[comp];
 | 
						|
}
 | 
						|
 | 
						|
void GetColor7(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor.xy += i.color.yxz.yx;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor8(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor += i.color.yzx.yx.x.x;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor9(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor.zxy += i.color;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor10(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor.zy += i.color.xy;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor11(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor.zxy.yx += i.color.xy;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor12(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor[comp] += i.color.x;
 | 
						|
}
 | 
						|
 | 
						|
void GetColor13(const S i, int comp)
 | 
						|
{ 
 | 
						|
    OutColor.zy[comp] += i.color.x;
 | 
						|
}
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    S s;
 | 
						|
    OutColor = vec3(0.0);
 | 
						|
    GetColor1(s);
 | 
						|
    GetColor2(s, u);
 | 
						|
    GetColor3(s, u);
 | 
						|
    GetColor4(s, u);
 | 
						|
    GetColor5(s, u);
 | 
						|
    GetColor6(s, u);
 | 
						|
    GetColor7(s, u);
 | 
						|
    GetColor8(s, u);
 | 
						|
    GetColor9(s, u);
 | 
						|
    GetColor10(s, u);
 | 
						|
    GetColor11(s, u);
 | 
						|
    GetColor12(s, u);
 | 
						|
    GetColor13(s, u);
 | 
						|
}
 |