variableArrayIndex.frag
WARNING: 0:3: varying deprecated in version 130; may be removed in future release

Shader version: 130
0:? Sequence
0:29  Function Definition: main( ( global void)
0:29    Function Parameters: 
0:?     Sequence
0:32      Sequence
0:32        move second child to first child ( temp int)
0:32          'iLocal' ( temp int)
0:32          'Count' ( uniform int)
0:34      Test condition and select ( temp void)
0:34        Condition
0:34        Compare Greater Than ( temp bool)
0:34          i: direct index for structure ( global int)
0:34            direct index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34              s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34                'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34                Constant:
0:34                  0 (const int)
0:34              Constant:
0:34                1 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        true case
0:35        move second child to first child ( temp float)
0:35          'scale' ( temp float)
0:35          f: direct index for structure ( global float)
0:35            s1_1: direct index for structure ( global structure{ global int i,  global float f})
0:35              indirect index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                'foo2' ( uniform 5-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                add ( temp int)
0:35                  add ( temp int)
0:35                    i: direct index for structure ( global int)
0:35                      indirect index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                        s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                          'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                          Constant:
0:35                            0 (const int)
0:35                        i: direct index for structure ( global int)
0:35                          'foo' ( uniform structure{ global int i,  global float f})
0:35                          Constant:
0:35                            0 (const int)
0:35                      Constant:
0:35                        0 (const int)
0:35                    Constant:
0:35                      2 (const int)
0:35                  Pre-Increment ( temp int)
0:35                    'iLocal' ( temp int)
0:35              Constant:
0:35                2 (const int)
0:35            Constant:
0:35              1 (const int)
0:34        false case
0:37        move second child to first child ( temp float)
0:37          'scale' ( temp float)
0:37          f: direct index for structure ( global float)
0:37            s1_1: direct index for structure ( global structure{ global int i,  global float f})
0:37              direct index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                  'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                  Constant:
0:37                    0 (const int)
0:37                Constant:
0:37                  0 (const int)
0:37              Constant:
0:37                2 (const int)
0:37            Constant:
0:37              1 (const int)
0:43      move second child to first child ( temp 4-component vector of float)
0:43        'gl_FragColor' ( fragColor 4-component vector of float FragColor)
0:43        vector-scale ( temp 4-component vector of float)
0:43          'scale' ( temp float)
0:43          texture ( global 4-component vector of float)
0:43            'sampler' ( uniform sampler2D)
0:43            'coord' ( smooth in 2-component vector of float)
0:45      Sequence
0:45        move second child to first child ( temp 3-element array of 2-component vector of float)
0:45          'constructed' ( temp 3-element array of 2-component vector of float)
0:45          Construct vec2 ( temp 3-element array of 2-component vector of float)
0:45            'coord' ( smooth in 2-component vector of float)
0:45            Construct vec2 ( temp 2-component vector of float)
0:45              'scale' ( temp float)
0:45            Constant:
0:45              1.000000
0:45              2.000000
0:46      add second child into first child ( temp 4-component vector of float)
0:46        'gl_FragColor' ( fragColor 4-component vector of float FragColor)
0:46        Construct vec4 ( temp 4-component vector of float)
0:46          indirect index ( temp 2-component vector of float)
0:46            'constructed' ( temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure ( global int)
0:46              'foo' ( uniform structure{ global int i,  global float f})
0:46              Constant:
0:46                0 (const int)
0:46          indirect index ( temp 2-component vector of float)
0:46            'constructed' ( temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure ( global int)
0:46              'foo' ( uniform structure{ global int i,  global float f})
0:46              Constant:
0:46                0 (const int)
0:?   Linker Objects
0:?     'sampler' ( uniform sampler2D)
0:?     'coord' ( smooth in 2-component vector of float)
0:?     'foo' ( uniform structure{ global int i,  global float f})
0:?     'foo2' ( uniform 5-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:?     'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:?     'Count' ( uniform int)


Linked fragment stage:


Shader version: 130
0:? Sequence
0:29  Function Definition: main( ( global void)
0:29    Function Parameters: 
0:?     Sequence
0:32      Sequence
0:32        move second child to first child ( temp int)
0:32          'iLocal' ( temp int)
0:32          'Count' ( uniform int)
0:34      Test condition and select ( temp void)
0:34        Condition
0:34        Compare Greater Than ( temp bool)
0:34          i: direct index for structure ( global int)
0:34            direct index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34              s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34                'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:34                Constant:
0:34                  0 (const int)
0:34              Constant:
0:34                1 (const int)
0:34            Constant:
0:34              0 (const int)
0:34          Constant:
0:34            0 (const int)
0:34        true case
0:35        move second child to first child ( temp float)
0:35          'scale' ( temp float)
0:35          f: direct index for structure ( global float)
0:35            s1_1: direct index for structure ( global structure{ global int i,  global float f})
0:35              indirect index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                'foo2' ( uniform 5-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                add ( temp int)
0:35                  add ( temp int)
0:35                    i: direct index for structure ( global int)
0:35                      indirect index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                        s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                          'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:35                          Constant:
0:35                            0 (const int)
0:35                        i: direct index for structure ( global int)
0:35                          'foo' ( uniform structure{ global int i,  global float f})
0:35                          Constant:
0:35                            0 (const int)
0:35                      Constant:
0:35                        0 (const int)
0:35                    Constant:
0:35                      2 (const int)
0:35                  Pre-Increment ( temp int)
0:35                    'iLocal' ( temp int)
0:35              Constant:
0:35                2 (const int)
0:35            Constant:
0:35              1 (const int)
0:34        false case
0:37        move second child to first child ( temp float)
0:37          'scale' ( temp float)
0:37          f: direct index for structure ( global float)
0:37            s1_1: direct index for structure ( global structure{ global int i,  global float f})
0:37              direct index ( temp structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                s2_1: direct index for structure ( global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                  'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:37                  Constant:
0:37                    0 (const int)
0:37                Constant:
0:37                  0 (const int)
0:37              Constant:
0:37                2 (const int)
0:37            Constant:
0:37              1 (const int)
0:43      move second child to first child ( temp 4-component vector of float)
0:43        'gl_FragColor' ( fragColor 4-component vector of float FragColor)
0:43        vector-scale ( temp 4-component vector of float)
0:43          'scale' ( temp float)
0:43          texture ( global 4-component vector of float)
0:43            'sampler' ( uniform sampler2D)
0:43            'coord' ( smooth in 2-component vector of float)
0:45      Sequence
0:45        move second child to first child ( temp 3-element array of 2-component vector of float)
0:45          'constructed' ( temp 3-element array of 2-component vector of float)
0:45          Construct vec2 ( temp 3-element array of 2-component vector of float)
0:45            'coord' ( smooth in 2-component vector of float)
0:45            Construct vec2 ( temp 2-component vector of float)
0:45              'scale' ( temp float)
0:45            Constant:
0:45              1.000000
0:45              2.000000
0:46      add second child into first child ( temp 4-component vector of float)
0:46        'gl_FragColor' ( fragColor 4-component vector of float FragColor)
0:46        Construct vec4 ( temp 4-component vector of float)
0:46          indirect index ( temp 2-component vector of float)
0:46            'constructed' ( temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure ( global int)
0:46              'foo' ( uniform structure{ global int i,  global float f})
0:46              Constant:
0:46                0 (const int)
0:46          indirect index ( temp 2-component vector of float)
0:46            'constructed' ( temp 3-element array of 2-component vector of float)
0:46            i: direct index for structure ( global int)
0:46              'foo' ( uniform structure{ global int i,  global float f})
0:46              Constant:
0:46                0 (const int)
0:?   Linker Objects
0:?     'sampler' ( uniform sampler2D)
0:?     'coord' ( smooth in 2-component vector of float)
0:?     'foo' ( uniform structure{ global int i,  global float f})
0:?     'foo2' ( uniform 5-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:?     'foo3' ( uniform structure{ global 3-element array of structure{ global int i,  global float f,  global structure{ global int i,  global float f} s1_1} s2_1,  global int i,  global float f,  global structure{ global int i,  global float f} s1_1})
0:?     'Count' ( uniform int)

