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]);
 | |
| }
 | |
| 
 | 
