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