1617a3babSopenharmony_ci#version 130 2617a3babSopenharmony_ciuniform sampler2D sampler; 3617a3babSopenharmony_civarying vec2 coord; 4617a3babSopenharmony_ci 5617a3babSopenharmony_cistruct lunarStruct1 { 6617a3babSopenharmony_ci int i; 7617a3babSopenharmony_ci float f; 8617a3babSopenharmony_ci}; 9617a3babSopenharmony_ci 10617a3babSopenharmony_cistruct lunarStruct2 { 11617a3babSopenharmony_ci int i; 12617a3babSopenharmony_ci float f; 13617a3babSopenharmony_ci lunarStruct1 s1_1; 14617a3babSopenharmony_ci}; 15617a3babSopenharmony_ci 16617a3babSopenharmony_cistruct lunarStruct3 { 17617a3babSopenharmony_ci lunarStruct2 s2_1[3]; 18617a3babSopenharmony_ci int i; 19617a3babSopenharmony_ci float f; 20617a3babSopenharmony_ci lunarStruct1 s1_1; 21617a3babSopenharmony_ci}; 22617a3babSopenharmony_ci 23617a3babSopenharmony_ci 24617a3babSopenharmony_ciuniform lunarStruct1 foo; 25617a3babSopenharmony_ciuniform lunarStruct2 foo2[5]; 26617a3babSopenharmony_ciuniform lunarStruct3 foo3; 27617a3babSopenharmony_ciuniform int Count; 28617a3babSopenharmony_ci 29617a3babSopenharmony_civoid main() 30617a3babSopenharmony_ci{ 31617a3babSopenharmony_ci float scale; 32617a3babSopenharmony_ci int iLocal = Count; 33617a3babSopenharmony_ci 34617a3babSopenharmony_ci if (foo3.s2_1[1].i > 0) 35617a3babSopenharmony_ci scale = foo2[foo3.s2_1[foo.i].i + 2 + ++iLocal].s1_1.f; 36617a3babSopenharmony_ci else 37617a3babSopenharmony_ci scale = foo3.s2_1[0].s1_1.f; 38617a3babSopenharmony_ci 39617a3babSopenharmony_ci //for (int i = 0; i < iLocal; ++i) { 40617a3babSopenharmony_ci // scale += foo2[i].f; 41617a3babSopenharmony_ci //} 42617a3babSopenharmony_ci 43617a3babSopenharmony_ci gl_FragColor = scale * texture2D(sampler, coord); 44617a3babSopenharmony_ci 45617a3babSopenharmony_ci vec2[3] constructed = vec2[3](coord, vec2(scale), vec2(1.0, 2.0)); 46617a3babSopenharmony_ci gl_FragColor += vec4(constructed[foo.i], constructed[foo.i]); 47617a3babSopenharmony_ci} 48617a3babSopenharmony_ci 49