50 lines
		
	
	
		
			896 B
		
	
	
	
		
			GLSL
		
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			896 B
		
	
	
	
		
			GLSL
		
	
	
	
#version 400
 | 
						|
 | 
						|
uniform sampler2D samp2D;
 | 
						|
in vec2 coord;
 | 
						|
 | 
						|
struct lunarStruct1 {
 | 
						|
    int i;
 | 
						|
    float f;
 | 
						|
};
 | 
						|
 | 
						|
struct lunarStruct2 {
 | 
						|
    int i;
 | 
						|
    float f;
 | 
						|
    lunarStruct1 s1_1;
 | 
						|
};
 | 
						|
 | 
						|
struct lunarStruct3 {
 | 
						|
    lunarStruct2 s2_1[3];
 | 
						|
    int i;
 | 
						|
    float f;
 | 
						|
    lunarStruct1 s1_1;
 | 
						|
};
 | 
						|
 | 
						|
 | 
						|
flat in lunarStruct1 foo;
 | 
						|
flat in lunarStruct2 foo2[5];
 | 
						|
flat in lunarStruct3 foo3;
 | 
						|
flat in int Count;
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    float scale;
 | 
						|
    int iLocal = Count;
 | 
						|
 | 
						|
    if (foo3.s2_1[1].i > 0)
 | 
						|
        scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f;
 | 
						|
    else
 | 
						|
        scale = foo3.s2_1[0].s1_1.f;
 | 
						|
 | 
						|
    //for (int i = 0; i < iLocal; ++i) {
 | 
						|
    //	scale += foo2[i].f;
 | 
						|
    //}
 | 
						|
 | 
						|
    gl_FragColor =  scale * texture(samp2D, coord);
 | 
						|
 | 
						|
    vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0));
 | 
						|
    gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]);
 | 
						|
}
 | 
						|
 |