Add full support for uniforms with initializers, including intra-stage link validatio...
authorJohn Kessenich <cepheus@frii.com>
Sat, 28 Sep 2013 04:02:08 +0000 (04:02 +0000)
committerJohn Kessenich <cepheus@frii.com>
Sat, 28 Sep 2013 04:02:08 +0000 (04:02 +0000)
This included
 - encapsulating aggregate constants
 - removal of constant-aggregate comparison algorithms, instead using a flattened and direct std::vector comparison
 - adding structure type comparison for independently declared structures that still might match types

git-svn-id: https://cvs.khronos.org/svn/repos/ogl/trunk/ecosystem/public/sdk/tools/glslang@23274 e7fa87d3-cd2b-0410-9028-fcbf551c1848

98 files changed:
Test/baseResults/120.frag.out
Test/baseResults/120.vert.out
Test/baseResults/300.frag.out
Test/baseResults/300.vert.out
Test/baseResults/300BuiltIns.frag.out
Test/baseResults/300block.frag.out
Test/baseResults/300layout.frag.out
Test/baseResults/300layout.vert.out
Test/baseResults/300operations.frag.out
Test/baseResults/300scope.vert.out
Test/baseResults/330.frag.out
Test/baseResults/330comp.frag.out
Test/baseResults/400.geom.out
Test/baseResults/400.tese.out
Test/baseResults/420.vert.out
Test/baseResults/430scope.vert.out
Test/baseResults/Operations.frag.out
Test/baseResults/aggOps.frag.out
Test/baseResults/always-discard.frag.out
Test/baseResults/always-discard2.frag.out
Test/baseResults/array.frag.out
Test/baseResults/array100.frag.out
Test/baseResults/conditionalDiscard.frag.out
Test/baseResults/constErrors.frag.out
Test/baseResults/constFold.frag.out
Test/baseResults/conversion.frag.out
Test/baseResults/cppComplexExpr.vert.out
Test/baseResults/cppIndent.vert.out
Test/baseResults/cppNest.vert.out
Test/baseResults/cppSimple.vert.out
Test/baseResults/dataOut.frag.out
Test/baseResults/dce.frag.out
Test/baseResults/decls.frag.out
Test/baseResults/deepRvalue.frag.out
Test/baseResults/discard-dce.frag.out
Test/baseResults/doWhileLoop.frag.out
Test/baseResults/earlyReturnDiscard.frag.out
Test/baseResults/errors.frag.out
Test/baseResults/forLoop.frag.out
Test/baseResults/forwardRef.frag.out
Test/baseResults/functionCall.frag.out
Test/baseResults/functionSemantics.frag.out
Test/baseResults/length.frag.out
Test/baseResults/link1.frag.out
Test/baseResults/localAggregates.frag.out
Test/baseResults/loops.frag.out
Test/baseResults/loopsArtificial.frag.out
Test/baseResults/matrix.frag.out
Test/baseResults/matrix2.frag.out
Test/baseResults/matrixError.vert.out
Test/baseResults/newTexture.frag.out
Test/baseResults/nonSquare.vert.out
Test/baseResults/numeral.frag.out
Test/baseResults/pointCoord.frag.out
Test/baseResults/precision.frag.out
Test/baseResults/precision.vert.out
Test/baseResults/prepost.frag.out
Test/baseResults/sample.frag.out
Test/baseResults/sample.vert.out
Test/baseResults/specExamples.frag.out
Test/baseResults/specExamples.vert.out
Test/baseResults/structAssignment.frag.out
Test/baseResults/structDeref.frag.out
Test/baseResults/structure.frag.out
Test/baseResults/switch.frag.out
Test/baseResults/swizzle.frag.out
Test/baseResults/test.frag.out
Test/baseResults/texture.frag.out
Test/baseResults/tokenLength.vert.out
Test/baseResults/types.frag.out
Test/baseResults/uint.frag.out
Test/baseResults/uniformArray.frag.out
Test/baseResults/variableArrayIndex.frag.out
Test/baseResults/varyingArray.frag.out
Test/baseResults/varyingArrayIndirect.frag.out
Test/baseResults/versionsClean.frag.out
Test/baseResults/versionsClean.vert.out
Test/baseResults/versionsErrors.frag.out
Test/baseResults/versionsErrors.vert.out
Test/baseResults/voidFunction.frag.out
Test/baseResults/whileLoop.frag.out
Test/decls.frag
Test/link1.frag
Test/link2.frag
glslang/Include/Common.h
glslang/Include/ConstantUnion.h
glslang/Include/Types.h
glslang/Include/intermediate.h
glslang/MachineIndependent/Constant.cpp
glslang/MachineIndependent/Intermediate.cpp
glslang/MachineIndependent/ParseHelper.cpp
glslang/MachineIndependent/ParseHelper.h
glslang/MachineIndependent/SymbolTable.cpp
glslang/MachineIndependent/SymbolTable.h
glslang/MachineIndependent/glslang.y
glslang/MachineIndependent/intermOut.cpp
glslang/MachineIndependent/localintermediate.h
glslang/MachineIndependent/parseConst.cpp

index 777a0e9..a396c84 100644 (file)
@@ -49,14 +49,17 @@ ERROR: node is still EOpNull!
 0:28        move second child to first child (2-element array of float)\r
 0:28          'ia' (2-element array of float)\r
 0:28          Construct float (2-element array of float)\r
-0:28            3.000000\r
+0:28            Constant:\r
+0:28              3.000000\r
 0:28            direct index (float)\r
 0:28              'i' (smooth in 4-component vector of float)\r
-0:28              1 (const int)\r
+0:28              Constant:\r
+0:28                1 (const int)\r
 0:29      Sequence\r
 0:29        move second child to first child (float)\r
 0:29          'f1' (float)\r
-0:29          1.000000\r
+0:29          Constant:\r
+0:29            1.000000\r
 0:30      Sequence\r
 0:30        move second child to first child (float)\r
 0:30          'f' (float)\r
@@ -102,23 +105,27 @@ ERROR: node is still EOpNull!
 0:39        divide (3-component vector of float)\r
 0:39          Convert int to float (3-component vector of float)\r
 0:39            'iv3' (3-component vector of int)\r
-0:39          2.000000\r
+0:39          Constant:\r
+0:39            2.000000\r
 0:40      move second child to first child (3-component vector of float)\r
 0:40        'v3' (3-component vector of float)\r
 0:40        vector-scale (3-component vector of float)\r
-0:40          3.000000\r
+0:40          Constant:\r
+0:40            3.000000\r
 0:40          Convert int to float (3-component vector of float)\r
 0:40            'iv3' (3-component vector of int)\r
 0:41      move second child to first child (3-component vector of float)\r
 0:41        'v3' (3-component vector of float)\r
 0:41        vector-scale (3-component vector of float)\r
-0:41          2.000000\r
+0:41          Constant:\r
+0:41            2.000000\r
 0:41          'v3' (3-component vector of float)\r
 0:42      move second child to first child (3-component vector of float)\r
 0:42        'v3' (3-component vector of float)\r
 0:42        subtract (3-component vector of float)\r
 0:42          'v3' (3-component vector of float)\r
-0:42          2.000000\r
+0:42          Constant:\r
+0:42            2.000000\r
 0:43      Test condition and select (void)\r
 0:43        Condition\r
 0:47        logical-or (bool)\r
@@ -188,8 +195,10 @@ ERROR: node is still EOpNull!
 0:54      vector swizzle (2-component vector of float)\r
 0:54        'i' (smooth in 4-component vector of float)\r
 0:54        Sequence\r
-0:54          0 (const int)\r
-0:54          1 (const int)\r
+0:54          Constant:\r
+0:54            0 (const int)\r
+0:54          Constant:\r
+0:54            1 (const int)\r
 0:55      'm' (uniform 4X2 matrix of float)\r
 0:56      'm' (uniform 4X2 matrix of float)\r
 0:58      'f' (float)\r
@@ -212,18 +221,22 @@ ERROR: node is still EOpNull!
 0:79        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:82      direct index (float)\r
 0:82        'gl_FragColor' (fragColor 4-component vector of float)\r
-0:82        0 (const int)\r
+0:82        Constant:\r
+0:82          0 (const int)\r
 0:83      direct index (float)\r
 0:83        'gl_FragColor' (fragColor 4-component vector of float)\r
-0:83        0 (const int)\r
+0:83        Constant:\r
+0:83          0 (const int)\r
 0:84      direct index (float)\r
 0:84        'centTexCoord' (centroid smooth in 2-component vector of float)\r
-0:84        0 (const int)\r
+0:84        Constant:\r
+0:84          0 (const int)\r
 0:85      move second child to first child (bool)\r
 0:85        Comma (bool)\r
 0:85          'a' (int)\r
 0:85          'b' (bool)\r
-0:85        true (const bool)\r
+0:85        Constant:\r
+0:85          true (const bool)\r
 0:91  Function Definition: main( (int)\r
 0:91    Function Parameters: \r
 0:92  Function Definition: main(i1; (void)\r
@@ -234,7 +247,8 @@ ERROR: node is still EOpNull!
 0:97      'a' (out float)\r
 0:99    Sequence\r
 0:99      Branch: Return with expression\r
-0:99        3.200000\r
+0:99        Constant:\r
+0:99          3.200000\r
 0:100      Function Call: foo(f1; (int)\r
 0:100        'a' (out float)\r
 0:103  Function Definition: gen(vf3; (bool)\r
@@ -248,17 +262,22 @@ ERROR: node is still EOpNull!
 0:105            Absolute value (float)\r
 0:105              direct index (in float)\r
 0:105                'v' (in 3-component vector of float)\r
-0:105                0 (const int)\r
-0:105            0.000100\r
+0:105                Constant:\r
+0:105                  0 (const int)\r
+0:105            Constant:\r
+0:105              0.000100\r
 0:105          Compare Less Than (bool)\r
 0:105            Absolute value (float)\r
 0:105              direct index (in float)\r
 0:105                'v' (in 3-component vector of float)\r
-0:105                1 (const int)\r
-0:105            0.000100\r
+0:105                Constant:\r
+0:105                  1 (const int)\r
+0:105            Constant:\r
+0:105              0.000100\r
 0:105        true case\r
 0:106        Branch: Return with expression\r
-0:106          true (const bool)\r
+0:106          Constant:\r
+0:106            true (const bool)\r
 0:109  Function Definition: v1( (void)\r
 0:109    Function Parameters: \r
 0:113  Function Definition: v2( (void)\r
@@ -274,12 +293,14 @@ ERROR: node is still EOpNull!
 0:120          'v' (4-component vector of float)\r
 0:120          direct index (smooth in 4-component vector of float)\r
 0:120            'gl_TexCoord' (smooth in unsized array of 4-component vector of float)\r
-0:120            1 (const int)\r
+0:120            Constant:\r
+0:120              1 (const int)\r
 0:121      add second child into first child (4-component vector of float)\r
 0:121        'v' (4-component vector of float)\r
 0:121        direct index (smooth in 4-component vector of float)\r
 0:121          'gl_TexCoord' (smooth in unsized array of 4-component vector of float)\r
-0:121          3 (const int)\r
+0:121          Constant:\r
+0:121            3 (const int)\r
 0:?   Linker Objects\r
 0:?     'lowp' (float)\r
 0:?     'mediump' (float)\r
index 96a7fee..f0395f3 100644 (file)
@@ -43,22 +43,26 @@ ERROR: node is still EOpNull!
 0:22        'gl_Position' (invariant gl_Position 4-component vector of float)\r
 0:22        direct index (4-component vector of float)\r
 0:22          'b' (12-element array of 4-component vector of float)\r
-0:22          11 (const int)\r
+0:22          Constant:\r
+0:22            11 (const int)\r
 0:25      Sequence\r
 0:25        move second child to first child (int)\r
 0:25          'a1' (int)\r
-0:25          1 (const int)\r
+0:25          Constant:\r
+0:25            1 (const int)\r
 0:27      Sequence\r
 0:27        move second child to first child (int)\r
 0:27          'aa' (int)\r
-0:27          7 (const int)\r
+0:27          Constant:\r
+0:27            7 (const int)\r
 0:28      Sequence\r
 0:28        move second child to first child (int)\r
 0:28          'a2' (int)\r
 0:29      Sequence\r
 0:29        move second child to first child (int)\r
 0:29          'a3' (int)\r
-0:29          12 (const int)\r
+0:29          Constant:\r
+0:29            12 (const int)\r
 0:37      Sequence\r
 0:37        move second child to first child (2-element array of float)\r
 0:37          'md9' (2-element array of float)\r
@@ -69,11 +73,8 @@ ERROR: node is still EOpNull!
 0:38          Construct float (const 2-element array of float)\r
 0:40      move second child to first child (float)\r
 0:40        'gl_PointSize' (invariant gl_PointSize float)\r
-0:40        3.800000\r
-0:43  Sequence\r
-0:43    move second child to first child (float)\r
-0:43      'initted' (uniform float)\r
-0:43      3.400000\r
+0:40        Constant:\r
+0:40          3.800000\r
 0:?   Linker Objects\r
 0:?     'i' (in 4-component vector of float)\r
 0:?     'o' (smooth out 4-component vector of float)\r
@@ -82,5 +83,7 @@ ERROR: node is still EOpNull!
 0:?     's2D' (uniform sampler2D)\r
 0:?     'centTexCoord' (invariant smooth out 2-component vector of float)\r
 0:?     'initted' (uniform float)\r
+0:?       3.400000\r
 0:?     'concall' (const float)\r
+0:?       0.295520\r
 \r
index 7f15f91..75f1a87 100644 (file)
@@ -40,7 +40,8 @@ ERROR: node is still EOpNull!
 0:59        Function Call: textureLod(sA21;vf3;f1; (lowp 4-component vector of float)\r
 0:59          's2DArray' (uniform lowp sampler2DArray)\r
 0:59          'c3D' (smooth in lowp 3-component vector of float)\r
-0:59          1.200000\r
+0:59          Constant:\r
+0:59            1.200000\r
 0:60      move second child to first child (lowp float)\r
 0:60        'f' (lowp float)\r
 0:60        Function Call: textureOffset(sS21;vf3;vi2;f1; (lowp float)\r
@@ -59,9 +60,11 @@ ERROR: node is still EOpNull!
 0:62        Function Call: texelFetchOffset(s21;vi2;i1;vi2; (lowp 4-component vector of float)\r
 0:62          direct index (uniform lowp sampler2D)\r
 0:62            'arrayedSampler' (uniform 5-element array of lowp sampler2D)\r
-0:62            2 (const int)\r
+0:62            Constant:\r
+0:62              2 (const int)\r
 0:62          'ic2D' (flat in mediump 2-component vector of int)\r
-0:62          4 (const int)\r
+0:62          Constant:\r
+0:62            4 (const int)\r
 0:62          'ic2D' (flat in mediump 2-component vector of int)\r
 0:63      move second child to first child (lowp float)\r
 0:63        'f' (lowp float)\r
@@ -143,7 +146,8 @@ ERROR: node is still EOpNull!
 0:76        Function Call: texture(is31;vf3;f1; (mediump 4-component vector of int)\r
 0:76          'is3D' (uniform lowp isampler3D)\r
 0:76          'c3D' (smooth in lowp 3-component vector of float)\r
-0:76          4.200000\r
+0:76          Constant:\r
+0:76            4.200000\r
 0:77      move second child to first child (mediump 4-component vector of int)\r
 0:77        'iv' (mediump 4-component vector of int)\r
 0:77        Function Call: textureLod(isC1;vf3;f1; (mediump 4-component vector of int)\r
@@ -160,16 +164,20 @@ ERROR: node is still EOpNull!
 0:80        vector swizzle (mediump 2-component vector of int)\r
 0:80          'iv' (mediump 4-component vector of int)\r
 0:80          Sequence\r
-0:80            0 (const int)\r
-0:80            1 (const int)\r
+0:80            Constant:\r
+0:80              0 (const int)\r
+0:80            Constant:\r
+0:80              1 (const int)\r
 0:80        Function Call: textureSize(sSC1;i1; (highp 2-component vector of int)\r
 0:80          'sCubeShadow' (uniform lowp samplerCubeShadow)\r
-0:80          2 (const int)\r
+0:80          Constant:\r
+0:80            2 (const int)\r
 0:88      add second child into first child (highp float)\r
 0:88        'f' (lowp float)\r
 0:88        direct index (highp float)\r
 0:88          'gl_FragCoord' (gl_FragCoord highp 4-component vector of float)\r
-0:88          1 (const int)\r
+0:88          Constant:\r
+0:88            1 (const int)\r
 0:89      move second child to first child (highp float)\r
 0:89        'gl_FragDepth' (gl_FragDepth highp float)\r
 0:89        'f' (lowp float)\r
@@ -177,12 +185,14 @@ ERROR: node is still EOpNull!
 0:91        'sc' (out lowp 3-component vector of float)\r
 0:91        c: direct index for structure (lowp 3-component vector of float)\r
 0:91          's2' (smooth in structure)\r
-0:91          0 (const int)\r
+0:91          Constant:\r
+0:91            0 (const int)\r
 0:92      move second child to first child (lowp float)\r
 0:92        'sf' (out lowp float)\r
 0:92        f: direct index for structure (lowp float)\r
 0:92          's2' (smooth in structure)\r
-0:92          1 (const int)\r
+0:92          Constant:\r
+0:92            1 (const int)\r
 0:94      add (lowp 2-component vector of float)\r
 0:94        hyp. sine (lowp float)\r
 0:94          'c1D' (smooth in lowp float)\r
index 1388f66..aa5f8e3 100644 (file)
@@ -33,47 +33,58 @@ ERROR: node is still EOpNull!
 0:31      Sequence\r
 0:31        move second child to first child (highp int)\r
 0:31          'c0' (highp int)\r
-0:31          64 (const int)\r
+0:31          Constant:\r
+0:31            64 (const int)\r
 0:32      Sequence\r
 0:32        move second child to first child (highp int)\r
 0:32          'c1' (highp int)\r
-0:32          128 (const int)\r
+0:32          Constant:\r
+0:32            128 (const int)\r
 0:33      Sequence\r
 0:33        move second child to first child (highp int)\r
 0:33          'c2' (highp int)\r
-0:33          16 (const int)\r
+0:33          Constant:\r
+0:33            16 (const int)\r
 0:34      Sequence\r
 0:34        move second child to first child (highp int)\r
 0:34          'c3' (highp int)\r
-0:34          15 (const int)\r
+0:34          Constant:\r
+0:34            15 (const int)\r
 0:35      Sequence\r
 0:35        move second child to first child (highp int)\r
 0:35          'c4' (highp int)\r
-0:35          32 (const int)\r
+0:35          Constant:\r
+0:35            32 (const int)\r
 0:36      Sequence\r
 0:36        move second child to first child (highp int)\r
 0:36          'c5' (highp int)\r
-0:36          32 (const int)\r
+0:36          Constant:\r
+0:36            32 (const int)\r
 0:37      Sequence\r
 0:37        move second child to first child (highp int)\r
 0:37          'c6' (highp int)\r
-0:37          32 (const int)\r
+0:37          Constant:\r
+0:37            32 (const int)\r
 0:38      Sequence\r
 0:38        move second child to first child (highp int)\r
 0:38          'c7' (highp int)\r
-0:38          16 (const int)\r
+0:38          Constant:\r
+0:38            16 (const int)\r
 0:39      Sequence\r
 0:39        move second child to first child (highp int)\r
 0:39          'c8' (highp int)\r
-0:39          32 (const int)\r
+0:39          Constant:\r
+0:39            32 (const int)\r
 0:40      Sequence\r
 0:40        move second child to first child (highp int)\r
 0:40          'c9' (highp int)\r
-0:40          -8 (const int)\r
+0:40          Constant:\r
+0:40            -8 (const int)\r
 0:41      Sequence\r
 0:41        move second child to first child (highp int)\r
 0:41          'c10' (highp int)\r
-0:41          7 (const int)\r
+0:41          Constant:\r
+0:41            7 (const int)\r
 0:43      Sequence\r
 0:43        move second child to first child (highp 3X4 matrix of float)\r
 0:43          'tm' (highp 3X4 matrix of float)\r
@@ -99,27 +110,32 @@ ERROR: node is still EOpNull!
 0:49        'gl_Position' (gl_Position highp 4-component vector of float)\r
 0:49        direct index (uniform highp 4-component vector of float)\r
 0:49          'm44' (uniform highp 4X4 matrix of float)\r
-0:49          2 (const int)\r
+0:49          Constant:\r
+0:49            2 (const int)\r
 0:50      move second child to first child (highp float)\r
 0:50        'gl_PointSize' (gl_PointSize highp float)\r
 0:50        direct index (highp float)\r
 0:50          'v2' (smooth out highp 2-component vector of float)\r
-0:50          1 (const int)\r
+0:50          Constant:\r
+0:50            1 (const int)\r
 0:52      move second child to first child (highp 3-component vector of float)\r
 0:52        c: direct index for structure (highp 3-component vector of float)\r
 0:52          's' (smooth out structure)\r
-0:52          0 (const int)\r
+0:52          Constant:\r
+0:52            0 (const int)\r
 0:52        'v3' (in highp 3-component vector of float)\r
 0:53      move second child to first child (highp float)\r
 0:53        f: direct index for structure (highp float)\r
 0:53          's' (smooth out structure)\r
-0:53          1 (const int)\r
+0:53          Constant:\r
+0:53            1 (const int)\r
 0:53        'dm' (highp float)\r
 0:68  Sequence\r
 0:68    move second child to first child (2-element array of highp float)\r
 0:68      'okayA' (2-element array of highp float)\r
-0:68      3.000000\r
-0:68      4.000000\r
+0:68      Constant:\r
+0:68        3.000000\r
+0:68        4.000000\r
 0:?   Linker Objects\r
 0:?     'm43' (uniform highp 4X3 matrix of float)\r
 0:?     'm33' (uniform highp 3X3 matrix of float)\r
index 91b0218..bababaf 100644 (file)
@@ -180,7 +180,8 @@ ERROR: node is still EOpNull!
 0:67          'v18' (mediump 2-component vector of float)\r
 0:67          unpackHalf2x16 (mediump 2-component vector of float)\r
 0:67            'uy' (mediump uint)\r
-0:70      0.000000\r
+0:70      Constant:\r
+0:70        0.000000\r
 0:?   Linker Objects\r
 0:?     'imax' (mediump int)\r
 0:?     'imin' (mediump int)\r
index ec460b4..adcc273 100644 (file)
@@ -11,33 +11,42 @@ ERROR: node is still EOpNull!
 0:44      Function Call: texture(is31;vf3; (mediump 4-component vector of int)\r
 0:44        sampler: direct index for structure (lowp isampler3D)\r
 0:44          's' (uniform structure)\r
-0:44          2 (const int)\r
+0:44          Constant:\r
+0:44            2 (const int)\r
 0:44        Construct vec3 (3-component vector of float)\r
 0:44          Convert int to float (float)\r
 0:44            ni: direct index for structure (layout(column_major shared ) mediump int)\r
 0:44              'inst' (layout(shared ) uniform block)\r
-0:44              1 (const int)\r
+0:44              Constant:\r
+0:44                1 (const int)\r
 0:44          Convert uint to float (float)\r
 0:44            direct index (mediump uint)\r
 0:44              bv: direct index for structure (layout(column_major shared ) mediump 4-component vector of uint)\r
 0:44                '__anon__0' (layout(shared ) uniform block)\r
-0:44                0 (const uint)\r
-0:44              1 (const int)\r
+0:44                Constant:\r
+0:44                  0 (const uint)\r
+0:44              Constant:\r
+0:44                1 (const int)\r
 0:44          Convert uint to float (float)\r
 0:44            direct index (mediump uint)\r
 0:44              nbv: direct index for structure (layout(column_major shared ) mediump 4-component vector of uint)\r
 0:44                direct index (layout(shared ) uniform block)\r
 0:44                  'insts' (layout(shared ) uniform 4-element array of block)\r
-0:44                  2 (const int)\r
-0:44                0 (const int)\r
-0:44              2 (const int)\r
+0:44                  Constant:\r
+0:44                    2 (const int)\r
+0:44                Constant:\r
+0:44                  0 (const int)\r
+0:44              Constant:\r
+0:44                2 (const int)\r
 0:45      indirect index (layout(shared ) uniform block)\r
 0:45        'insts' (layout(shared ) uniform 4-element array of block)\r
 0:45        direct index (mediump uint)\r
 0:45          v: direct index for structure (mediump 4-component vector of uint)\r
 0:45            's' (uniform structure)\r
-0:45            1 (const int)\r
-0:45          0 (const int)\r
+0:45            Constant:\r
+0:45              1 (const int)\r
+0:45          Constant:\r
+0:45            0 (const int)\r
 0:?   Linker Objects\r
 0:?     's' (uniform structure)\r
 0:?     '__anon__0' (layout(shared ) uniform block)\r
index f2128e1..58d870d 100644 (file)
@@ -14,7 +14,8 @@ ERROR: node is still EOpNull!
 0:14      move second child to first child (mediump 4-component vector of float)\r
 0:14        direct index (layout(location=4 ) out mediump 4-component vector of float)\r
 0:14          'q' (layout(location=4 ) out 2-element array of mediump 4-component vector of float)\r
-0:14          1 (const int)\r
+0:14          Constant:\r
+0:14            1 (const int)\r
 0:14        'pos' (smooth in mediump 4-component vector of float)\r
 0:?   Linker Objects\r
 0:?     'pos' (smooth in mediump 4-component vector of float)\r
index 77f487d..ae82733 100644 (file)
@@ -26,26 +26,32 @@ ERROR: node is still EOpNull!
 0:43                add (highp 4X4 matrix of float)\r
 0:43                  M1: direct index for structure (layout(row_major std140 ) highp 4X4 matrix of float)\r
 0:43                    'tblock' (layout(std140 ) uniform block)\r
-0:43                    0 (const int)\r
+0:43                    Constant:\r
+0:43                      0 (const int)\r
 0:43                  M2: direct index for structure (layout(column_major std140 ) highp 4X4 matrix of float)\r
 0:43                    'tblock' (layout(std140 ) uniform block)\r
-0:43                    1 (const int)\r
+0:43                    Constant:\r
+0:43                      1 (const int)\r
 0:43                M4: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)\r
 0:43                  '__anon__1' (layout(shared ) uniform block)\r
-0:43                  1 (const uint)\r
+0:43                  Constant:\r
+0:43                    1 (const uint)\r
 0:43              M3: direct index for structure (layout(column_major shared ) highp 4X4 matrix of float)\r
 0:43                '__anon__1' (layout(shared ) uniform block)\r
-0:43                0 (const uint)\r
+0:43                Constant:\r
+0:43                  0 (const uint)\r
 0:43            t2m: direct index for structure (layout(row_major shared ) highp 4X4 matrix of float)\r
 0:43              '__anon__0' (layout(shared ) uniform block)\r
-0:43              1 (const uint)\r
+0:43              Constant:\r
+0:43                1 (const uint)\r
 0:44      move second child to first child (highp 3-component vector of float)\r
 0:44        'color' (smooth out highp 3-component vector of float)\r
 0:44        vector-times-matrix (highp 3-component vector of float)\r
 0:44          'c' (layout(location=7 ) in highp 3-component vector of float)\r
 0:44          N1: direct index for structure (layout(row_major std140 ) highp 3X3 matrix of float)\r
 0:44            'tblock' (layout(std140 ) uniform block)\r
-0:44            2 (const int)\r
+0:44            Constant:\r
+0:44              2 (const int)\r
 0:?   Linker Objects\r
 0:?     'c' (layout(location=7 ) in highp 3-component vector of float)\r
 0:?     'p' (layout(location=3 ) in highp 4-component vector of float)\r
index a40b7f7..b480785 100644 (file)
@@ -78,18 +78,30 @@ ERROR: node is still EOpNull!
 0:46      's' (structure)\r
 0:47      'a' (5-element array of mediump float)\r
 0:48      'b3' (3-component vector of bool)\r
-0:50      false (const bool)\r
-0:51      false (const bool)\r
-0:52      false (const bool)\r
-0:53      false (const bool)\r
-0:54      false (const bool)\r
-0:55      false (const bool)\r
-0:57      false (const bool)\r
-0:58      false (const bool)\r
-0:59      false (const bool)\r
-0:60      false (const bool)\r
-0:61      false (const bool)\r
-0:62      false (const bool)\r
+0:50      Constant:\r
+0:50        false (const bool)\r
+0:51      Constant:\r
+0:51        false (const bool)\r
+0:52      Constant:\r
+0:52        false (const bool)\r
+0:53      Constant:\r
+0:53        false (const bool)\r
+0:54      Constant:\r
+0:54        false (const bool)\r
+0:55      Constant:\r
+0:55        false (const bool)\r
+0:57      Constant:\r
+0:57        false (const bool)\r
+0:58      Constant:\r
+0:58        false (const bool)\r
+0:59      Constant:\r
+0:59        false (const bool)\r
+0:60      Constant:\r
+0:60        false (const bool)\r
+0:61      Constant:\r
+0:61        false (const bool)\r
+0:62      Constant:\r
+0:62        false (const bool)\r
 0:64      'u' (mediump uint)\r
 0:65      'i' (mediump int)\r
 0:66      'm2' (mediump 2X2 matrix of float)\r
@@ -132,10 +144,12 @@ ERROR: node is still EOpNull!
 0:96        'iv3' (mediump 3-component vector of int)\r
 0:98      mod second child into first child (mediump int)\r
 0:98        'i' (mediump int)\r
-0:98        3 (const int)\r
+0:98        Constant:\r
+0:98          3 (const int)\r
 0:99      mod (mediump 3-component vector of uint)\r
 0:99        'uv3' (mediump 3-component vector of uint)\r
-0:99        4 (const uint)\r
+0:99        Constant:\r
+0:99          4 (const uint)\r
 0:100      Pre-Decrement (mediump 2X2 matrix of float)\r
 0:100        'm2' (mediump 2X2 matrix of float)\r
 0:101      Post-Increment (mediump 4-component vector of int)\r
index ba95ec3..55699cb 100644 (file)
@@ -23,7 +23,8 @@ ERROR: node is still EOpNull!
 0:8            add (highp float)\r
 0:8              Convert int to float (highp float)\r
 0:8                'a' (in highp int)\r
-0:8              1.000000\r
+0:8              Constant:\r
+0:8                1.000000\r
 0:11      Branch: Return with expression\r
 0:11        'a' (in highp int)\r
 0:22  Function Definition: cos(f1; (highp float)\r
@@ -31,19 +32,24 @@ ERROR: node is still EOpNull!
 0:22      'x' (in highp float)\r
 0:24    Sequence\r
 0:24      Branch: Return with expression\r
-0:24        1.000000\r
+0:24        Constant:\r
+0:24          1.000000\r
 0:29  Function Definition: main( (void)\r
 0:29    Function Parameters: \r
 0:?     Sequence\r
 0:32      Function Call: g( (highp int)\r
 0:35      'sin' (highp float)\r
 0:37      Function Call: f(i1;i1;i1; (highp int)\r
-0:37        1 (const int)\r
-0:37        2 (const int)\r
-0:37        3 (const int)\r
+0:37        Constant:\r
+0:37          1 (const int)\r
+0:37        Constant:\r
+0:37          2 (const int)\r
+0:37        Constant:\r
+0:37          3 (const int)\r
 0:40      move second child to first child (highp float)\r
 0:40        'f' (highp float)\r
-0:40        3.000000\r
+0:40        Constant:\r
+0:40          3.000000\r
 0:42      move second child to first child (highp 4-component vector of float)\r
 0:42        'gl_Position' (invariant gl_Position highp 4-component vector of float)\r
 0:42        Construct vec4 (highp 4-component vector of float)\r
@@ -52,12 +58,14 @@ ERROR: node is still EOpNull!
 0:44        Sequence\r
 0:44          move second child to first child (highp int)\r
 0:44            'f' (highp int)\r
-0:44            0 (const int)\r
+0:44            Constant:\r
+0:44              0 (const int)\r
 0:44        Loop with condition tested first\r
 0:44          Loop Condition\r
 0:44          Compare Less Than (bool)\r
 0:44            'f' (highp int)\r
-0:44            10 (const int)\r
+0:44            Constant:\r
+0:44              10 (const int)\r
 0:44          Loop Body\r
 0:45          Pre-Increment (highp int)\r
 0:45            'f' (highp int)\r
@@ -67,12 +75,14 @@ ERROR: node is still EOpNull!
 0:47      Sequence\r
 0:47        move second child to first child (highp int)\r
 0:47          'x' (highp int)\r
-0:47          1 (const int)\r
+0:47          Constant:\r
+0:47            1 (const int)\r
 0:49      Sequence\r
 0:49        Sequence\r
 0:49          move second child to first child (highp float)\r
 0:49            'x' (highp float)\r
-0:49            2.000000\r
+0:49            Constant:\r
+0:49              2.000000\r
 0:49          move second child to first child (highp float)\r
 0:49            'y' (highp float)\r
 0:49            'x' (highp float)\r
@@ -85,10 +95,12 @@ ERROR: node is still EOpNull!
 0:61        Sequence\r
 0:61          move second child to first child (structure)\r
 0:61            'S' (structure)\r
-0:61            0 (const int)\r
+0:61            Constant:\r
+0:61              0 (const int)\r
 0:62        x: direct index for structure (highp int)\r
 0:62          'S' (structure)\r
-0:62          0 (const int)\r
+0:62          Constant:\r
+0:62            0 (const int)\r
 0:?   Linker Objects\r
 0:?     'b' (bool)\r
 0:?     'gl_VertexID' (gl_VertexId highp int)\r
index 61aa5bf..8e5906b 100644 (file)
@@ -9,12 +9,14 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:11      move second child to first child (4-component vector of float)\r
 0:11        direct index (fragColor 4-component vector of float)\r
 0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:11          1 (const int)\r
+0:11          Constant:\r
+0:11            1 (const int)\r
 0:11        'inVar' (smooth in 4-component vector of float)\r
 0:12      Sequence\r
 0:12        move second child to first child (int)\r
 0:12          'buffer' (int)\r
-0:12          4 (const int)\r
+0:12          Constant:\r
+0:12            4 (const int)\r
 0:?   Linker Objects\r
 0:?     'inVar' (smooth in 4-component vector of float)\r
 0:?     'outVar' (out 4-component vector of float)\r
index 993804c..1917bb4 100644 (file)
@@ -8,7 +8,8 @@
 0:11      move second child to first child (4-component vector of float)\r
 0:11        direct index (fragColor 4-component vector of float)\r
 0:11          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:11          1 (const int)\r
+0:11          Constant:\r
+0:11            1 (const int)\r
 0:11        vector-times-matrix (4-component vector of float)\r
 0:11          'inVar' (smooth in 4-component vector of float)\r
 0:11          'gl_ModelViewMatrix' (uniform 4X4 matrix of float)\r
index b32b57f..88769fd 100644 (file)
@@ -3,9 +3,11 @@
 0:3    Function Parameters: \r
 0:5    Sequence\r
 0:5      EmitStreamVertex (void)\r
-0:5        1 (const int)\r
+0:5        Constant:\r
+0:5          1 (const int)\r
 0:6      EndStreamPrimitive (void)\r
-0:6        0 (const int)\r
+0:6        Constant:\r
+0:6          0 (const int)\r
 0:7      EmitVertex (void)\r
 0:8      EndPrimitive (void)\r
 0:?   Linker Objects\r
index 67821cf..033c642 100644 (file)
@@ -5,6 +5,7 @@ ERROR: node is still EOpNull!
 0:3  Function Definition: main( (void)\r
 0:3    Function Parameters: \r
 0:5    Sequence\r
-0:5      0.000000\r
+0:5      Constant:\r
+0:5        0.000000\r
 0:?   Linker Objects\r
 \r
index 4150d4e..01bfda7 100644 (file)
@@ -22,7 +22,8 @@ ERROR: node is still EOpNull!
 0:18        Condition\r
 0:18        Compare Equal (bool)\r
 0:18          'i' (int)\r
-0:18          3 (const int)\r
+0:18          Constant:\r
+0:18            3 (const int)\r
 0:18        true case\r
 0:19        Sequence\r
 0:19          move second child to first child (int)\r
@@ -30,7 +31,8 @@ ERROR: node is still EOpNull!
 0:19            'i' (int)\r
 0:25      Loop with condition tested first\r
 0:25        Loop Condition\r
-0:25        true (const bool)\r
+0:25        Constant:\r
+0:25          true (const bool)\r
 0:25        No loop body\r
 0:30  Function Definition: bar(vf4; (void)\r
 0:30    Function Parameters: \r
index 39d2556..7a42aa7 100644 (file)
@@ -19,7 +19,8 @@ ERROR: node is still EOpNull!
 0:8            add (float)\r
 0:8              Convert int to float (float)\r
 0:8                'a' (in int)\r
-0:8              1.000000\r
+0:8              Constant:\r
+0:8                1.000000\r
 0:11      Branch: Return with expression\r
 0:11        'a' (in int)\r
 0:22  Function Definition: cos(f1; (float)\r
@@ -27,19 +28,24 @@ ERROR: node is still EOpNull!
 0:22      'x' (in float)\r
 0:24    Sequence\r
 0:24      Branch: Return with expression\r
-0:24        1.000000\r
+0:24        Constant:\r
+0:24          1.000000\r
 0:29  Function Definition: main( (void)\r
 0:29    Function Parameters: \r
 0:?     Sequence\r
 0:32      Function Call: g( (int)\r
 0:35      'sin' (float)\r
 0:37      Function Call: f(i1;i1;i1; (int)\r
-0:37        1 (const int)\r
-0:37        2 (const int)\r
-0:37        3 (const int)\r
+0:37        Constant:\r
+0:37          1 (const int)\r
+0:37        Constant:\r
+0:37          2 (const int)\r
+0:37        Constant:\r
+0:37          3 (const int)\r
 0:40      move second child to first child (float)\r
 0:40        'f' (float)\r
-0:40        3.000000\r
+0:40        Constant:\r
+0:40          3.000000\r
 0:42      move second child to first child (4-component vector of float)\r
 0:42        'gl_Position' (invariant gl_Position 4-component vector of float)\r
 0:42        Construct vec4 (4-component vector of float)\r
@@ -48,12 +54,14 @@ ERROR: node is still EOpNull!
 0:44        Sequence\r
 0:44          move second child to first child (int)\r
 0:44            'f' (int)\r
-0:44            0 (const int)\r
+0:44            Constant:\r
+0:44              0 (const int)\r
 0:44        Loop with condition tested first\r
 0:44          Loop Condition\r
 0:44          Compare Less Than (bool)\r
 0:44            'f' (int)\r
-0:44            10 (const int)\r
+0:44            Constant:\r
+0:44              10 (const int)\r
 0:44          Loop Body\r
 0:45          Pre-Increment (int)\r
 0:45            'f' (int)\r
@@ -63,12 +71,14 @@ ERROR: node is still EOpNull!
 0:47      Sequence\r
 0:47        move second child to first child (int)\r
 0:47          'x' (int)\r
-0:47          1 (const int)\r
+0:47          Constant:\r
+0:47            1 (const int)\r
 0:49      Sequence\r
 0:49        Sequence\r
 0:49          move second child to first child (float)\r
 0:49            'x' (float)\r
-0:49            2.000000\r
+0:49            Constant:\r
+0:49              2.000000\r
 0:49          move second child to first child (float)\r
 0:49            'y' (float)\r
 0:49            'x' (float)\r
@@ -81,10 +91,12 @@ ERROR: node is still EOpNull!
 0:61        Sequence\r
 0:61          move second child to first child (structure)\r
 0:61            'S' (structure)\r
-0:61            0 (const int)\r
+0:61            Constant:\r
+0:61              0 (const int)\r
 0:62        x: direct index for structure (int)\r
 0:62          'S' (structure)\r
-0:62          0 (const int)\r
+0:62          Constant:\r
+0:62            0 (const int)\r
 0:?   Linker Objects\r
 0:?     'b' (bool)\r
 0:?     'tan' (float)\r
index ff98593..f882301 100644 (file)
 0:63          'v' (4-component vector of float)\r
 0:63          direct index (float)\r
 0:63            'v' (4-component vector of float)\r
-0:63            0 (const int)\r
+0:63            Constant:\r
+0:63              0 (const int)\r
 0:69      add second child into first child (4-component vector of float)\r
 0:69        'v' (4-component vector of float)\r
 0:69        min (4-component vector of float)\r
 0:142                'ui' (uniform int)\r
 0:142            Compare Not Equal (bool)\r
 0:142              'i' (int)\r
-0:142              2 (const int)\r
+0:142              Constant:\r
+0:142                2 (const int)\r
 0:142        true case\r
 0:143        Pre-Increment (int)\r
 0:143          'i' (int)\r
 0:151            vector swizzle (3-component vector of float)\r
 0:151              'v' (4-component vector of float)\r
 0:151              Sequence\r
-0:151                0 (const int)\r
-0:151                1 (const int)\r
-0:151                2 (const int)\r
+0:151                Constant:\r
+0:151                  0 (const int)\r
+0:151                Constant:\r
+0:151                  1 (const int)\r
+0:151                Constant:\r
+0:151                  2 (const int)\r
 0:151            vector swizzle (3-component vector of float)\r
 0:151              'v' (4-component vector of float)\r
 0:151              Sequence\r
-0:151                0 (const int)\r
-0:151                1 (const int)\r
-0:151                2 (const int)\r
-0:151          0 (const int)\r
+0:151                Constant:\r
+0:151                  0 (const int)\r
+0:151                Constant:\r
+0:151                  1 (const int)\r
+0:151                Constant:\r
+0:151                  2 (const int)\r
+0:151          Constant:\r
+0:151            0 (const int)\r
 0:153      Test condition and select (void)\r
 0:153        Condition\r
 0:153        logical-or (bool)\r
 0:153              'uf' (uniform float)\r
 0:153            Compare Not Equal (bool)\r
 0:153              'f' (float)\r
-0:153              2.000000\r
+0:153              Constant:\r
+0:153                2.000000\r
 0:153        true case\r
 0:154        Pre-Increment (float)\r
 0:154          'f' (float)\r
 0:156        'ui' (uniform int)\r
 0:157      or second child into first child (int)\r
 0:157        'i' (int)\r
-0:157        66 (const int)\r
+0:157        Constant:\r
+0:157          66 (const int)\r
 0:158      exclusive or second child into first child (int)\r
 0:158        'i' (int)\r
 0:158        'ui' (uniform int)\r
 0:159      mod second child into first child (int)\r
 0:159        'i' (int)\r
-0:159        17 (const int)\r
+0:159        Constant:\r
+0:159          17 (const int)\r
 0:160      right shift second child into first child (int)\r
 0:160        'i' (int)\r
-0:160        2 (const int)\r
+0:160        Constant:\r
+0:160          2 (const int)\r
 0:161      left shift second child into first child (int)\r
 0:161        'i' (int)\r
 0:161        'ui' (uniform int)\r
index a8fc4b8..5ce7323 100644 (file)
@@ -11,41 +11,51 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:27            Convert float to int (int)\r
 0:27              direct index (float)\r
 0:27                'u' (smooth in 4-component vector of float)\r
-0:27                0 (const int)\r
+0:27                Constant:\r
+0:27                  0 (const int)\r
 0:27            direct index (float)\r
 0:27              'u' (smooth in 4-component vector of float)\r
-0:27              1 (const int)\r
+0:27              Constant:\r
+0:27                1 (const int)\r
 0:27          Construct structure (structure)\r
 0:27            Convert float to int (int)\r
 0:27              direct index (float)\r
 0:27                'u' (smooth in 4-component vector of float)\r
-0:27                2 (const int)\r
+0:27                Constant:\r
+0:27                  2 (const int)\r
 0:27            direct index (float)\r
 0:27              'u' (smooth in 4-component vector of float)\r
-0:27              3 (const int)\r
-0:27          14 (const int)\r
-0:27          14.000000\r
+0:27              Constant:\r
+0:27                3 (const int)\r
+0:27          Constant:\r
+0:27            14 (const int)\r
+0:27            14.000000\r
 0:28      move second child to first child (3-element array of structure)\r
 0:28        'b' (3-element array of structure)\r
 0:28        Construct structure (3-element array of structure)\r
-0:28          17 (const int)\r
-0:28          17.000000\r
+0:28          Constant:\r
+0:28            17 (const int)\r
+0:28            17.000000\r
 0:28          Construct structure (structure)\r
 0:28            Convert float to int (int)\r
 0:28              direct index (float)\r
 0:28                'w' (smooth in 4-component vector of float)\r
-0:28                0 (const int)\r
+0:28                Constant:\r
+0:28                  0 (const int)\r
 0:28            direct index (float)\r
 0:28              'w' (smooth in 4-component vector of float)\r
-0:28              1 (const int)\r
+0:28              Constant:\r
+0:28                1 (const int)\r
 0:28          Construct structure (structure)\r
 0:28            Convert float to int (int)\r
 0:28              direct index (float)\r
 0:28                'w' (smooth in 4-component vector of float)\r
-0:28                2 (const int)\r
+0:28                Constant:\r
+0:28                  2 (const int)\r
 0:28            direct index (float)\r
 0:28              'w' (smooth in 4-component vector of float)\r
-0:28              3 (const int)\r
+0:28              Constant:\r
+0:28                3 (const int)\r
 0:30      Test condition and select (void)\r
 0:30        Condition\r
 0:30        Compare Equal (bool)\r
@@ -63,7 +73,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:33          Function Call: texture2D(s21;vf2; (4-component vector of float)\r
 0:33            'sampler' (uniform sampler2D)\r
 0:33            vector-scale (2-component vector of float)\r
-0:33              2.000000\r
+0:33              Constant:\r
+0:33                2.000000\r
 0:33              'coord' (smooth in 2-component vector of float)\r
 0:35      Test condition and select (void)\r
 0:35        Condition\r
@@ -73,7 +84,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:35        true case\r
 0:36        vector scale second child into first child (4-component vector of float)\r
 0:36          'v' (4-component vector of float)\r
-0:36          3.000000\r
+0:36          Constant:\r
+0:36            3.000000\r
 0:38      Test condition and select (void)\r
 0:38        Condition\r
 0:38        Compare Not Equal (bool)\r
@@ -82,7 +94,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:38        true case\r
 0:39        vector scale second child into first child (4-component vector of float)\r
 0:39          'v' (4-component vector of float)\r
-0:39          4.000000\r
+0:39          Constant:\r
+0:39            4.000000\r
 0:41      Test condition and select (void)\r
 0:41        Condition\r
 0:41        Compare Equal (bool)\r
@@ -90,12 +103,15 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:41          vector swizzle (2-component vector of float)\r
 0:41            'v' (4-component vector of float)\r
 0:41            Sequence\r
-0:41              1 (const int)\r
-0:41              3 (const int)\r
+0:41              Constant:\r
+0:41                1 (const int)\r
+0:41              Constant:\r
+0:41                3 (const int)\r
 0:41        true case\r
 0:42        vector scale second child into first child (4-component vector of float)\r
 0:42          'v' (4-component vector of float)\r
-0:42          5.000000\r
+0:42          Constant:\r
+0:42            5.000000\r
 0:44      Test condition and select (void)\r
 0:44        Condition\r
 0:44        Compare Equal (bool)\r
@@ -104,7 +120,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:44        true case\r
 0:45        vector scale second child into first child (4-component vector of float)\r
 0:45          'v' (4-component vector of float)\r
-0:45          6.000000\r
+0:45          Constant:\r
+0:45            6.000000\r
 0:47      Test condition and select (void)\r
 0:47        Condition\r
 0:47        Compare Not Equal (bool)\r
@@ -113,7 +130,8 @@ WARNING: 0:6: varying deprecated in version 130; may be removed in future releas
 0:47        true case\r
 0:48        vector scale second child into first child (4-component vector of float)\r
 0:48          'v' (4-component vector of float)\r
-0:48          7.000000\r
+0:48          Constant:\r
+0:48            7.000000\r
 0:50      move second child to first child (4-component vector of float)\r
 0:50        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:50        'v' (4-component vector of float)\r
index 9dedfb6..579e3ec 100644 (file)
@@ -5,17 +5,19 @@
 0:6      Sequence\r
 0:6        move second child to first child (4-component vector of float)\r
 0:6          'white' (4-component vector of float)\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
+0:6          Constant:\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
 0:7      Sequence\r
 0:7        move second child to first child (4-component vector of float)\r
 0:7          'black' (4-component vector of float)\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
+0:7          Constant:\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
 0:8      Sequence\r
 0:8        move second child to first child (4-component vector of float)\r
 0:8          'color' (4-component vector of float)\r
 0:11            component-wise multiply (float)\r
 0:11              direct index (float)\r
 0:11                'tex_coord' (smooth in 2-component vector of float)\r
-0:11                0 (const int)\r
-0:11              2.000000\r
-0:11            1.000000\r
+0:11                Constant:\r
+0:11                  0 (const int)\r
+0:11              Constant:\r
+0:11                2.000000\r
+0:11            Constant:\r
+0:11              1.000000\r
 0:12      Sequence\r
 0:12        move second child to first child (float)\r
 0:12          'y' (float)\r
 0:12            component-wise multiply (float)\r
 0:12              direct index (float)\r
 0:12                'tex_coord' (smooth in 2-component vector of float)\r
-0:12                1 (const int)\r
-0:12              2.000000\r
-0:12            1.000000\r
+0:12                Constant:\r
+0:12                  1 (const int)\r
+0:12              Constant:\r
+0:12                2.000000\r
+0:12            Constant:\r
+0:12              1.000000\r
 0:14      Sequence\r
 0:14        move second child to first child (float)\r
 0:14          'radius' (float)\r
 0:15        Condition\r
 0:15        Compare Greater Than (bool)\r
 0:15          'radius' (float)\r
-0:15          1.000000\r
+0:15          Constant:\r
+0:15            1.000000\r
 0:15        true case\r
 0:16        Sequence\r
 0:16          Test condition and select (void)\r
 0:16            Condition\r
 0:16            Compare Greater Than (bool)\r
 0:16              'radius' (float)\r
-0:16              1.100000\r
+0:16              Constant:\r
+0:16                1.100000\r
 0:16            true case\r
 0:17            Sequence\r
 0:17              Pre-Increment (4-component vector of float)\r
@@ -74,7 +84,8 @@
 0:22            Condition\r
 0:22            Compare Greater Than (bool)\r
 0:22              'radius' (float)\r
-0:22              1.200000\r
+0:22              Constant:\r
+0:22                1.200000\r
 0:22            true case\r
 0:23            Sequence\r
 0:23              Pre-Increment (4-component vector of float)\r
@@ -84,7 +95,8 @@
 0:31        Condition\r
 0:31        Compare Greater Than or Equal (bool)\r
 0:31          'radius' (float)\r
-0:31          0.750000\r
+0:31          Constant:\r
+0:31            0.750000\r
 0:31        true case\r
 0:32        subtract second child into first child (4-component vector of float)\r
 0:32          'color' (4-component vector of float)\r
 0:32            divide (float)\r
 0:32              pow (float)\r
 0:32                'radius' (float)\r
-0:32                16.000000\r
-0:32              2.000000\r
+0:32                Constant:\r
+0:32                  16.000000\r
+0:32              Constant:\r
+0:32                2.000000\r
 0:34      move second child to first child (4-component vector of float)\r
 0:34        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:34        'color' (4-component vector of float)\r
index e45cdb8..401fab7 100644 (file)
@@ -5,17 +5,19 @@
 0:6      Sequence\r
 0:6        move second child to first child (4-component vector of float)\r
 0:6          'white' (4-component vector of float)\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
+0:6          Constant:\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
 0:7      Sequence\r
 0:7        move second child to first child (4-component vector of float)\r
 0:7          'black' (4-component vector of float)\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
+0:7          Constant:\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
 0:8      Sequence\r
 0:8        move second child to first child (4-component vector of float)\r
 0:8          'color' (4-component vector of float)\r
 0:11            component-wise multiply (float)\r
 0:11              direct index (float)\r
 0:11                'tex_coord' (smooth in 2-component vector of float)\r
-0:11                0 (const int)\r
-0:11              2.000000\r
-0:11            1.000000\r
+0:11                Constant:\r
+0:11                  0 (const int)\r
+0:11              Constant:\r
+0:11                2.000000\r
+0:11            Constant:\r
+0:11              1.000000\r
 0:12      Sequence\r
 0:12        move second child to first child (float)\r
 0:12          'y' (float)\r
 0:12            component-wise multiply (float)\r
 0:12              direct index (float)\r
 0:12                'tex_coord' (smooth in 2-component vector of float)\r
-0:12                1 (const int)\r
-0:12              2.000000\r
-0:12            1.000000\r
+0:12                Constant:\r
+0:12                  1 (const int)\r
+0:12              Constant:\r
+0:12                2.000000\r
+0:12            Constant:\r
+0:12              1.000000\r
 0:14      Branch: Kill\r
 0:17      move second child to first child (4-component vector of float)\r
 0:17        'gl_FragColor' (fragColor 4-component vector of float)\r
index fa745eb..eac0736 100644 (file)
@@ -23,16 +23,20 @@ ERROR: node is still EOpNull!
 0:11        Construct float (4-element array of float)\r
 0:11          direct index (in float)\r
 0:11            'a' (in 5-element array of float)\r
-0:11            0 (const int)\r
+0:11            Constant:\r
+0:11              0 (const int)\r
 0:11          direct index (in float)\r
 0:11            'a' (in 5-element array of float)\r
-0:11            1 (const int)\r
+0:11            Constant:\r
+0:11              1 (const int)\r
 0:11          direct index (in float)\r
 0:11            'a' (in 5-element array of float)\r
-0:11            2 (const int)\r
+0:11            Constant:\r
+0:11              2 (const int)\r
 0:11          direct index (in float)\r
 0:11            'a' (in 5-element array of float)\r
-0:11            3 (const int)\r
+0:11            Constant:\r
+0:11              3 (const int)\r
 0:14  Function Definition: bar(f1[5]; (void)\r
 0:14    Function Parameters: \r
 0:14      '' (in 5-element array of float)\r
@@ -43,109 +47,138 @@ ERROR: node is still EOpNull!
 0:21        move second child to first child (float)\r
 0:21          direct index (float)\r
 0:21            'gu' (2-element array of float)\r
-0:21            2 (const int)\r
-0:21          4.000000\r
+0:21            Constant:\r
+0:21              2 (const int)\r
+0:21          Constant:\r
+0:21            4.000000\r
 0:24      move second child to first child (float)\r
 0:24        direct index (float)\r
 0:24          'gu' (unsized array of float)\r
-0:24          2 (const int)\r
-0:24        4.000000\r
+0:24          Constant:\r
+0:24            2 (const int)\r
+0:24        Constant:\r
+0:24          4.000000\r
 0:26      move second child to first child (float)\r
 0:26        direct index (float)\r
 0:26          'gu' (unsized array of float)\r
-0:26          3 (const int)\r
-0:26        3.000000\r
+0:26          Constant:\r
+0:26            3 (const int)\r
+0:26        Constant:\r
+0:26          3.000000\r
 0:27      move second child to first child (float)\r
 0:27        indirect index (float)\r
 0:27          'gu' (unsized array of float)\r
 0:27          'a' (uniform int)\r
-0:27        5.000000\r
+0:27        Constant:\r
+0:27          5.000000\r
 0:29      move second child to first child (4-element array of float)\r
 0:29        'g4' (4-element array of float)\r
 0:29        Function Call: foo(f1[5]; (4-element array of float)\r
 0:29          'g5' (5-element array of float)\r
 0:30      'g5' (5-element array of float)\r
 0:31      'gu' (unsized array of float)\r
-0:33      0.000000\r
+0:33      Constant:\r
+0:33        0.000000\r
 0:34      Function Call: bar(f1[5]; (void)\r
 0:34        'g5' (5-element array of float)\r
 0:36      Test condition and select (void)\r
 0:36        Condition\r
 0:36        Compare Equal (bool)\r
-0:36          1.000000\r
-0:36          2.000000\r
-0:36          3.000000\r
-0:36          4.000000\r
+0:36          Constant:\r
+0:36            1.000000\r
+0:36            2.000000\r
+0:36            3.000000\r
+0:36            4.000000\r
 0:36          'g4' (4-element array of float)\r
 0:36        true case\r
 0:37        move second child to first child (float)\r
 0:37          direct index (float)\r
 0:37            'gu' (unsized array of float)\r
-0:37            0 (const int)\r
-0:37          2.000000\r
+0:37            Constant:\r
+0:37              0 (const int)\r
+0:37          Constant:\r
+0:37            2.000000\r
 0:40      move second child to first child (float)\r
 0:40        direct index (float)\r
 0:40          'u' (5-element array of float)\r
-0:40          2 (const int)\r
-0:40        3.000000\r
+0:40          Constant:\r
+0:40            2 (const int)\r
+0:40        Constant:\r
+0:40          3.000000\r
 0:42      move second child to first child (float)\r
 0:42        direct index (float)\r
 0:42          'u' (5-element array of float)\r
-0:42          5 (const int)\r
-0:42        5.000000\r
+0:42          Constant:\r
+0:42            5 (const int)\r
+0:42        Constant:\r
+0:42          5.000000\r
 0:43      Function Call: foo(f1[5]; (4-element array of float)\r
 0:43        'u' (5-element array of float)\r
 0:45      move second child to first child (4-component vector of float)\r
 0:45        direct index (fragColor 4-component vector of float)\r
 0:45          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:45          1000 (const int)\r
-0:45        1.000000\r
-0:45        1.000000\r
-0:45        1.000000\r
-0:45        1.000000\r
+0:45          Constant:\r
+0:45            1000 (const int)\r
+0:45        Constant:\r
+0:45          1.000000\r
+0:45          1.000000\r
+0:45          1.000000\r
+0:45          1.000000\r
 0:46      move second child to first child (4-component vector of float)\r
 0:46        direct index (fragColor 4-component vector of float)\r
 0:46          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:46          -1 (const int)\r
-0:46        1.000000\r
-0:46        1.000000\r
-0:46        1.000000\r
-0:46        1.000000\r
+0:46          Constant:\r
+0:46            -1 (const int)\r
+0:46        Constant:\r
+0:46          1.000000\r
+0:46          1.000000\r
+0:46          1.000000\r
+0:46          1.000000\r
 0:47      move second child to first child (4-component vector of float)\r
 0:47        direct index (fragColor 4-component vector of float)\r
 0:47          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:47          3 (const int)\r
-0:47        1.000000\r
-0:47        1.000000\r
-0:47        1.000000\r
-0:47        1.000000\r
+0:47          Constant:\r
+0:47            3 (const int)\r
+0:47        Constant:\r
+0:47          1.000000\r
+0:47          1.000000\r
+0:47          1.000000\r
+0:47          1.000000\r
 0:50      Sequence\r
 0:50        move second child to first child (int)\r
 0:50          'sum' (int)\r
-0:50          3 (const int)\r
+0:50          Constant:\r
+0:50            3 (const int)\r
 0:51      add second child into first child (int)\r
 0:51        'sum' (int)\r
-0:51        2 (const int)\r
+0:51        Constant:\r
+0:51          2 (const int)\r
 0:52      add second child into first child (int)\r
 0:52        'sum' (int)\r
-0:52        3 (const int)\r
+0:52        Constant:\r
+0:52          3 (const int)\r
 0:55      Sequence\r
 0:55        move second child to first child (2-element array of int)\r
 0:55          'ica' (2-element array of int)\r
-0:55          3 (const int)\r
-0:55          2 (const int)\r
+0:55          Constant:\r
+0:55            3 (const int)\r
+0:55            2 (const int)\r
 0:57      move second child to first child (int)\r
 0:57        direct index (int)\r
 0:57          'ica' (2-element array of int)\r
-0:57          3.100000\r
-0:57        3 (const int)\r
+0:57          Constant:\r
+0:57            3.100000\r
+0:57        Constant:\r
+0:57          3 (const int)\r
 0:58      move second child to first child (int)\r
 0:58        indirect index (int)\r
 0:58          'ica' (2-element array of int)\r
 0:58          direct index (float)\r
 0:58            'u' (5-element array of float)\r
-0:58            1 (const int)\r
-0:58        4 (const int)\r
+0:58            Constant:\r
+0:58              1 (const int)\r
+0:58        Constant:\r
+0:58          4 (const int)\r
 0:?   Linker Objects\r
 0:?     'gu' (unsized array of float)\r
 0:?     'g4' (4-element array of float)\r
index d3eb529..05b5797 100644 (file)
@@ -22,16 +22,20 @@ ERROR: node is still EOpNull!
 0:11        Construct float (4-element array of float)\r
 0:11          direct index (in mediump float)\r
 0:11            'a' (in 5-element array of mediump float)\r
-0:11            0 (const int)\r
+0:11            Constant:\r
+0:11              0 (const int)\r
 0:11          direct index (in mediump float)\r
 0:11            'a' (in 5-element array of mediump float)\r
-0:11            1 (const int)\r
+0:11            Constant:\r
+0:11              1 (const int)\r
 0:11          direct index (in mediump float)\r
 0:11            'a' (in 5-element array of mediump float)\r
-0:11            2 (const int)\r
+0:11            Constant:\r
+0:11              2 (const int)\r
 0:11          direct index (in mediump float)\r
 0:11            'a' (in 5-element array of mediump float)\r
-0:11            3 (const int)\r
+0:11            Constant:\r
+0:11              3 (const int)\r
 0:14  Function Definition: bar(f1[5]; (void)\r
 0:14    Function Parameters: \r
 0:14      '' (in 5-element array of mediump float)\r
@@ -42,62 +46,76 @@ ERROR: node is still EOpNull!
 0:21        move second child to first child (mediump float)\r
 0:21          direct index (mediump float)\r
 0:21            'gu' (2-element array of mediump float)\r
-0:21            2 (const int)\r
-0:21          4.000000\r
+0:21            Constant:\r
+0:21              2 (const int)\r
+0:21          Constant:\r
+0:21            4.000000\r
 0:24      move second child to first child (4-element array of mediump float)\r
 0:24        'g4' (4-element array of mediump float)\r
 0:24        Function Call: foo(f1[5]; (4-element array of mediump float)\r
 0:24          'g5' (5-element array of mediump float)\r
 0:25      'g5' (5-element array of mediump float)\r
 0:26      'gu' (unsized array of mediump float)\r
-0:28      0.000000\r
+0:28      Constant:\r
+0:28        0.000000\r
 0:29      Function Call: bar(f1[5]; (void)\r
 0:29        'g5' (5-element array of mediump float)\r
 0:31      Test condition and select (void)\r
 0:31        Condition\r
 0:31        Compare Equal (bool)\r
-0:31          1.000000\r
-0:31          2.000000\r
-0:31          3.000000\r
-0:31          4.000000\r
+0:31          Constant:\r
+0:31            1.000000\r
+0:31            2.000000\r
+0:31            3.000000\r
+0:31            4.000000\r
 0:31          'g4' (4-element array of mediump float)\r
 0:31        true case\r
 0:32        move second child to first child (mediump float)\r
 0:32          direct index (mediump float)\r
 0:32            'gu' (unsized array of mediump float)\r
-0:32            0 (const int)\r
-0:32          2.000000\r
+0:32            Constant:\r
+0:32              0 (const int)\r
+0:32          Constant:\r
+0:32            2.000000\r
 0:35      move second child to first child (mediump float)\r
 0:35        direct index (mediump float)\r
 0:35          'u' (5-element array of mediump float)\r
-0:35          5 (const int)\r
-0:35        5.000000\r
+0:35          Constant:\r
+0:35            5 (const int)\r
+0:35        Constant:\r
+0:35          5.000000\r
 0:36      Function Call: foo(f1[5]; (4-element array of mediump float)\r
 0:36        'u' (5-element array of mediump float)\r
 0:38      move second child to first child (4-component vector of float)\r
 0:38        direct index (fragColor 4-component vector of float)\r
 0:38          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:38          1000 (const int)\r
-0:38        1.000000\r
-0:38        1.000000\r
-0:38        1.000000\r
-0:38        1.000000\r
+0:38          Constant:\r
+0:38            1000 (const int)\r
+0:38        Constant:\r
+0:38          1.000000\r
+0:38          1.000000\r
+0:38          1.000000\r
+0:38          1.000000\r
 0:39      move second child to first child (4-component vector of float)\r
 0:39        direct index (fragColor 4-component vector of float)\r
 0:39          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:39          -1 (const int)\r
-0:39        1.000000\r
-0:39        1.000000\r
-0:39        1.000000\r
-0:39        1.000000\r
+0:39          Constant:\r
+0:39            -1 (const int)\r
+0:39        Constant:\r
+0:39          1.000000\r
+0:39          1.000000\r
+0:39          1.000000\r
+0:39          1.000000\r
 0:40      move second child to first child (4-component vector of float)\r
 0:40        direct index (fragColor 4-component vector of float)\r
 0:40          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:40          3 (const int)\r
-0:40        1.000000\r
-0:40        1.000000\r
-0:40        1.000000\r
-0:40        1.000000\r
+0:40          Constant:\r
+0:40            3 (const int)\r
+0:40        Constant:\r
+0:40          1.000000\r
+0:40          1.000000\r
+0:40          1.000000\r
+0:40          1.000000\r
 0:?   Linker Objects\r
 0:?     'gu' (unsized array of mediump float)\r
 0:?     'g4' (4-element array of mediump float)\r
index d96b5b6..a4c3e6c 100644 (file)
 0:10        Condition\r
 0:10        Compare Equal (bool)\r
 0:10          'v' (4-component vector of float)\r
-0:10          0.100000\r
-0:10          0.200000\r
-0:10          0.300000\r
-0:10          0.400000\r
+0:10          Constant:\r
+0:10            0.100000\r
+0:10            0.200000\r
+0:10            0.300000\r
+0:10            0.400000\r
 0:10        true case\r
 0:11        Branch: Kill\r
 0:13      move second child to first child (4-component vector of float)\r
index 8291315..692529e 100644 (file)
@@ -16,6 +16,7 @@ ERROR: node is still EOpNull!
 0:?     'inVar' (smooth in 4-component vector of float)\r
 0:?     'outVar' (out 4-component vector of float)\r
 0:?     'constInt' (const int)\r
+0:?       3 (const int)\r
 0:?     'uniformInt' (uniform int)\r
 0:?     's' (structure)\r
 0:?     's2' (structure)\r
index 8d7b120..539a331 100644 (file)
 0:30            'inv' (smooth in 4-component vector of float)\r
 0:37      move second child to first child (4-component vector of float)\r
 0:37        'FragColor' (out 4-component vector of float)\r
-0:37        2.000000\r
-0:37        6.000000\r
-0:37        3.000000\r
-0:37        171.887339\r
+0:37        Constant:\r
+0:37          2.000000\r
+0:37          6.000000\r
+0:37          3.000000\r
+0:37          171.887339\r
 0:42      move second child to first child (4-component vector of float)\r
 0:42        'FragColor' (out 4-component vector of float)\r
-0:42        3.000000\r
-0:42        2.000000\r
-0:42        0.001593\r
-0:42        -0.999999\r
+0:42        Constant:\r
+0:42          3.000000\r
+0:42          2.000000\r
+0:42          0.001593\r
+0:42          -0.999999\r
 0:43      move second child to first child (2-component vector of float)\r
 0:43        'out2' (out 2-component vector of float)\r
-0:43        5.600000\r
-0:43        5.800000\r
+0:43        Constant:\r
+0:43          5.600000\r
+0:43          5.800000\r
 0:44      move second child to first child (4-component vector of float)\r
 0:44        'out3' (out 4-component vector of float)\r
-0:44        20.085537\r
-0:44        2.302585\r
-0:44        16.000000\r
-0:44        8.000000\r
+0:44        Constant:\r
+0:44          20.085537\r
+0:44          2.302585\r
+0:44          16.000000\r
+0:44          8.000000\r
 0:45      move second child to first child (4-component vector of float)\r
 0:45        'out4' (out 4-component vector of float)\r
-0:45        10.000000\r
-0:45        0.100000\r
-0:45        4.700000\r
-0:45        10.900000\r
+0:45        Constant:\r
+0:45          10.000000\r
+0:45          0.100000\r
+0:45          4.700000\r
+0:45          10.900000\r
 0:46      move second child to first child (4-component vector of int)\r
 0:46        'out5' (out 4-component vector of int)\r
-0:46        8 (const int)\r
-0:46        17 (const int)\r
-0:46        -1 (const int)\r
-0:46        1 (const int)\r
+0:46        Constant:\r
+0:46          8 (const int)\r
+0:46          17 (const int)\r
+0:46          -1 (const int)\r
+0:46          1 (const int)\r
 0:47      move second child to first child (3-component vector of float)\r
 0:47        'out6' (out 3-component vector of float)\r
-0:47        -1.000000\r
-0:47        1.000000\r
-0:47        0.000000\r
+0:47        Constant:\r
+0:47          -1.000000\r
+0:47          1.000000\r
+0:47          0.000000\r
 0:48      move second child to first child (4-component vector of float)\r
 0:48        'out7' (out 4-component vector of float)\r
-0:48        4.000000\r
-0:48        -4.000000\r
-0:48        5.000000\r
-0:48        -5.000000\r
+0:48        Constant:\r
+0:48          4.000000\r
+0:48          -4.000000\r
+0:48          5.000000\r
+0:48          -5.000000\r
 0:49      move second child to first child (4-component vector of float)\r
 0:49        'out8' (out 4-component vector of float)\r
-0:49        4.000000\r
-0:49        5.000000\r
-0:49        4.000000\r
-0:49        -6.000000\r
+0:49        Constant:\r
+0:49          4.000000\r
+0:49          5.000000\r
+0:49          4.000000\r
+0:49          -6.000000\r
 0:50      move second child to first child (4-component vector of float)\r
 0:50        'out9' (out 4-component vector of float)\r
-0:50        8.000000\r
-0:50        -4.000000\r
-0:50        0.345000\r
-0:50        0.400000\r
+0:50        Constant:\r
+0:50          8.000000\r
+0:50          -4.000000\r
+0:50          0.345000\r
+0:50          0.400000\r
 0:51      move second child to first child (4-component vector of float)\r
 0:51        'out10' (out 4-component vector of float)\r
-0:51        1.000000\r
-0:51        1.000000\r
-0:51        0.000000\r
-0:51        0.000000\r
+0:51        Constant:\r
+0:51          1.000000\r
+0:51          1.000000\r
+0:51          0.000000\r
+0:51          0.000000\r
 0:52      move second child to first child (4-component vector of float)\r
 0:52        'out11' (out 4-component vector of float)\r
-0:52        0.000000\r
-0:52        0.000000\r
-0:52        1.000000\r
-0:52        0.000000\r
+0:52        Constant:\r
+0:52          0.000000\r
+0:52          0.000000\r
+0:52          1.000000\r
+0:52          0.000000\r
 0:53      move second child to first child (4-component vector of float)\r
 0:53        'out11' (out 4-component vector of float)\r
-0:53        1.029639\r
-0:53        0.799690\r
-0:53        0.674741\r
-0:53        1.570696\r
+0:53        Constant:\r
+0:53          1.029639\r
+0:53          0.799690\r
+0:53          0.674741\r
+0:53          1.570696\r
 0:54      move second child to first child (4-component vector of float)\r
 0:54        'out11' (out 4-component vector of float)\r
-0:54        0.000000\r
-0:54        0.523599\r
-0:54        1.570796\r
-0:54        1.047198\r
+0:54        Constant:\r
+0:54          0.000000\r
+0:54          0.523599\r
+0:54          1.570796\r
+0:54          1.047198\r
 0:58      move second child to first child (4-component vector of float)\r
 0:58        'out11' (out 4-component vector of float)\r
-0:58        1.373401\r
-0:58        0.000000\r
-0:58        0.896055\r
-0:58        -0.380506\r
+0:58        Constant:\r
+0:58          1.373401\r
+0:58          0.000000\r
+0:58          0.896055\r
+0:58          -0.380506\r
 0:62      move second child to first child (2-component vector of int)\r
 0:62        'out12' (out 2-component vector of int)\r
-0:62        15 (const int)\r
-0:62        16 (const int)\r
+0:62        Constant:\r
+0:62          15 (const int)\r
+0:62          16 (const int)\r
 0:63      move second child to first child (2-component vector of int)\r
 0:63        'out12' (out 2-component vector of int)\r
-0:63        17 (const int)\r
-0:63        17 (const int)\r
+0:63        Constant:\r
+0:63          17 (const int)\r
+0:63          17 (const int)\r
 0:64      move second child to first child (2-component vector of float)\r
 0:64        'out2' (out 2-component vector of float)\r
-0:64        871.421253\r
-0:64        4913.000000\r
+0:64        Constant:\r
+0:64          871.421253\r
+0:64          4913.000000\r
 0:65      move second child to first child (3-component vector of uint)\r
 0:65        'out13' (out 3-component vector of uint)\r
-0:65        10 (const uint)\r
-0:65        20 (const uint)\r
-0:65        30 (const uint)\r
+0:65        Constant:\r
+0:65          10 (const uint)\r
+0:65          20 (const uint)\r
+0:65          30 (const uint)\r
 0:66      move second child to first child (2-component vector of float)\r
 0:66        'out2' (out 2-component vector of float)\r
-0:66        3.000000\r
-0:66        6.000000\r
+0:66        Constant:\r
+0:66          3.000000\r
+0:66          6.000000\r
 0:67      move second child to first child (2-component vector of float)\r
 0:67        'out2' (out 2-component vector of float)\r
-0:67        3.500000\r
-0:67        4.500000\r
+0:67        Constant:\r
+0:67          3.500000\r
+0:67          4.500000\r
 0:68      move second child to first child (2-component vector of float)\r
 0:68        'out2' (out 2-component vector of float)\r
-0:68        0.000000\r
-0:68        1.000000\r
+0:68        Constant:\r
+0:68          0.000000\r
+0:68          1.000000\r
 0:69      move second child to first child (4-component vector of float)\r
 0:69        'out11' (out 4-component vector of float)\r
-0:69        0.000000\r
-0:69        0.028000\r
-0:69        0.500000\r
-0:69        1.000000\r
+0:69        Constant:\r
+0:69          0.000000\r
+0:69          0.028000\r
+0:69          0.500000\r
+0:69          1.000000\r
 0:78  Function Definition: foo( (void)\r
 0:78    Function Parameters: \r
 0:?     Sequence\r
 0:81      move second child to first child (float)\r
 0:81        direct index (float)\r
 0:81          'a' (3-element array of float)\r
-0:81          0 (const int)\r
-0:81        7.000000\r
+0:81          Constant:\r
+0:81            0 (const int)\r
+0:81        Constant:\r
+0:81          7.000000\r
 0:?   Linker Objects\r
 0:?     'a' (const int)\r
+0:?       1 (const int)\r
 0:?     'b' (const int)\r
+0:?       2 (const int)\r
 0:?     'c' (const int)\r
+0:?       3 (const int)\r
 0:?     'd' (const int)\r
+0:?       2 (const int)\r
 0:?     'e' (const float)\r
+0:?       2.000000\r
 0:?     'f' (const float)\r
+0:?       6.000000\r
 0:?     'g' (const float)\r
+0:?       3.000000\r
 0:?     'pytho' (const 2-component vector of float)\r
+0:?       3.000000\r
+0:?       4.000000\r
 0:?     'inv' (smooth in 4-component vector of float)\r
 0:?     'FragColor' (out 4-component vector of float)\r
 0:?     'out2' (out 2-component vector of float)\r
 0:?     'out12' (out 2-component vector of int)\r
 0:?     'out13' (out 3-component vector of uint)\r
 0:?     's' (const structure)\r
+0:?       3.000000\r
+0:?       3.000000\r
+0:?       3.000000\r
+0:?       3 (const int)\r
+0:?       3 (const int)\r
+0:?       1.000000\r
+0:?       2.000000\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       7.000000\r
+0:?       8.000000\r
 \r
index 1ba0c4f..2379ea1 100644 (file)
 0:74              false case\r
 0:74              direct index (float)\r
 0:74                'f2' (2-component vector of float)\r
-0:74                0 (const int)\r
+0:74                Constant:\r
+0:74                  0 (const int)\r
 0:74            Test condition and select (float)\r
 0:74              Condition\r
 0:74              direct index (bool)\r
 0:74                'b2' (2-component vector of bool)\r
-0:74                0 (const int)\r
+0:74                Constant:\r
+0:74                  0 (const int)\r
 0:74              true case\r
 0:74              direct index (float)\r
 0:74                'f3' (3-component vector of float)\r
-0:74                0 (const int)\r
+0:74                Constant:\r
+0:74                  0 (const int)\r
 0:74              false case\r
 0:74              Convert int to float (float)\r
 0:74                direct index (int)\r
 0:74                  'i2' (2-component vector of int)\r
-0:74                  1 (const int)\r
+0:74                  Constant:\r
+0:74                    1 (const int)\r
 0:76      move second child to first child (4-component vector of float)\r
 0:76        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:86        Test condition and select (4-component vector of float)\r
 0:77                            'b' (bool)\r
 0:78                            direct index (bool)\r
 0:78                              'b2' (2-component vector of bool)\r
-0:78                              0 (const int)\r
+0:78                              Constant:\r
+0:78                                0 (const int)\r
 0:79                          direct index (bool)\r
 0:79                            'b2' (2-component vector of bool)\r
-0:79                            1 (const int)\r
+0:79                            Constant:\r
+0:79                              1 (const int)\r
 0:80                        direct index (bool)\r
 0:80                          'b3' (3-component vector of bool)\r
-0:80                          0 (const int)\r
+0:80                          Constant:\r
+0:80                            0 (const int)\r
 0:81                      direct index (bool)\r
 0:81                        'b3' (3-component vector of bool)\r
-0:81                        1 (const int)\r
+0:81                        Constant:\r
+0:81                          1 (const int)\r
 0:82                    direct index (bool)\r
 0:82                      'b3' (3-component vector of bool)\r
-0:82                      2 (const int)\r
+0:82                      Constant:\r
+0:82                        2 (const int)\r
 0:83                  direct index (bool)\r
 0:83                    'b4' (4-component vector of bool)\r
-0:83                    0 (const int)\r
+0:83                    Constant:\r
+0:83                      0 (const int)\r
 0:84                direct index (bool)\r
 0:84                  'b4' (4-component vector of bool)\r
-0:84                  1 (const int)\r
+0:84                  Constant:\r
+0:84                    1 (const int)\r
 0:85              direct index (bool)\r
 0:85                'b4' (4-component vector of bool)\r
-0:85                2 (const int)\r
+0:85                Constant:\r
+0:85                  2 (const int)\r
 0:86            direct index (bool)\r
 0:86              'b4' (4-component vector of bool)\r
-0:86              3 (const int)\r
+0:86              Constant:\r
+0:86                3 (const int)\r
 0:86          true case\r
 0:105          Construct vec4 (4-component vector of float)\r
 0:105            add (float)\r
 0:87                                                    'i' (int)\r
 0:88                                                    direct index (int)\r
 0:88                                                      'i2' (2-component vector of int)\r
-0:88                                                      0 (const int)\r
+0:88                                                      Constant:\r
+0:88                                                        0 (const int)\r
 0:89                                                  direct index (int)\r
 0:89                                                    'i2' (2-component vector of int)\r
-0:89                                                    1 (const int)\r
+0:89                                                    Constant:\r
+0:89                                                      1 (const int)\r
 0:90                                                direct index (int)\r
 0:90                                                  'i3' (3-component vector of int)\r
-0:90                                                  0 (const int)\r
+0:90                                                  Constant:\r
+0:90                                                    0 (const int)\r
 0:91                                              direct index (int)\r
 0:91                                                'i3' (3-component vector of int)\r
-0:91                                                1 (const int)\r
+0:91                                                Constant:\r
+0:91                                                  1 (const int)\r
 0:92                                            direct index (int)\r
 0:92                                              'i3' (3-component vector of int)\r
-0:92                                              2 (const int)\r
+0:92                                              Constant:\r
+0:92                                                2 (const int)\r
 0:93                                          direct index (int)\r
 0:93                                            'i4' (4-component vector of int)\r
-0:93                                            0 (const int)\r
+0:93                                            Constant:\r
+0:93                                              0 (const int)\r
 0:94                                        direct index (int)\r
 0:94                                          'i4' (4-component vector of int)\r
-0:94                                          1 (const int)\r
+0:94                                          Constant:\r
+0:94                                            1 (const int)\r
 0:95                                      direct index (int)\r
 0:95                                        'i4' (4-component vector of int)\r
-0:95                                        2 (const int)\r
+0:95                                        Constant:\r
+0:95                                          2 (const int)\r
 0:96                                    direct index (int)\r
 0:96                                      'i4' (4-component vector of int)\r
-0:96                                      3 (const int)\r
+0:96                                      Constant:\r
+0:96                                        3 (const int)\r
 0:97                                'f' (float)\r
 0:98                              direct index (float)\r
 0:98                                'f2' (2-component vector of float)\r
-0:98                                0 (const int)\r
+0:98                                Constant:\r
+0:98                                  0 (const int)\r
 0:99                            direct index (float)\r
 0:99                              'f2' (2-component vector of float)\r
-0:99                              1 (const int)\r
+0:99                              Constant:\r
+0:99                                1 (const int)\r
 0:100                          direct index (float)\r
 0:100                            'f3' (3-component vector of float)\r
-0:100                            0 (const int)\r
+0:100                            Constant:\r
+0:100                              0 (const int)\r
 0:101                        direct index (float)\r
 0:101                          'f3' (3-component vector of float)\r
-0:101                          1 (const int)\r
+0:101                          Constant:\r
+0:101                            1 (const int)\r
 0:102                      direct index (float)\r
 0:102                        'f3' (3-component vector of float)\r
-0:102                        2 (const int)\r
+0:102                        Constant:\r
+0:102                          2 (const int)\r
 0:103                    direct index (float)\r
 0:103                      'f4' (4-component vector of float)\r
-0:103                      0 (const int)\r
+0:103                      Constant:\r
+0:103                        0 (const int)\r
 0:104                  direct index (float)\r
 0:104                    'f4' (4-component vector of float)\r
-0:104                    1 (const int)\r
+0:104                    Constant:\r
+0:104                      1 (const int)\r
 0:105                direct index (float)\r
 0:105                  'f4' (4-component vector of float)\r
-0:105                  2 (const int)\r
+0:105                  Constant:\r
+0:105                    2 (const int)\r
 0:106              direct index (float)\r
 0:106                'f4' (4-component vector of float)\r
-0:106                3 (const int)\r
+0:106                Constant:\r
+0:106                  3 (const int)\r
 0:86          false case\r
-0:106          1.000000\r
-0:106          1.000000\r
-0:106          1.000000\r
-0:106          1.000000\r
+0:106          Constant:\r
+0:106            1.000000\r
+0:106            1.000000\r
+0:106            1.000000\r
+0:106            1.000000\r
 0:109      Sequence\r
 0:109        move second child to first child (4-component vector of int)\r
 0:109          'cv2' (4-component vector of int)\r
-0:109          1 (const int)\r
-0:109          1 (const int)\r
-0:109          1 (const int)\r
-0:109          1 (const int)\r
+0:109          Constant:\r
+0:109            1 (const int)\r
+0:109            1 (const int)\r
+0:109            1 (const int)\r
+0:109            1 (const int)\r
 0:110      Sequence\r
 0:110        move second child to first child (4-component vector of bool)\r
 0:110          'cv5' (4-component vector of bool)\r
index 6069fc0..a214cd8 100644 (file)
@@ -3,19 +3,23 @@ WARNING: #version: statement missing; use #version on first line of shader
 0:4  Sequence\r
 0:4    move second child to first child (highp float)\r
 0:4      'sum' (highp float)\r
-0:4      0.000000\r
+0:4      Constant:\r
+0:4        0.000000\r
 0:6  Function Definition: main( (void)\r
 0:6    Function Parameters: \r
 0:10    Sequence\r
 0:10      add second child into first child (highp float)\r
 0:10        'sum' (highp float)\r
-0:10        1.000000\r
+0:10        Constant:\r
+0:10          1.000000\r
 0:15      add second child into first child (highp float)\r
 0:15        'sum' (highp float)\r
-0:15        20.000000\r
+0:15        Constant:\r
+0:15          20.000000\r
 0:30      add second child into first child (highp float)\r
 0:30        'sum' (highp float)\r
-0:30        300.000000\r
+0:30        Constant:\r
+0:30          300.000000\r
 0:39      move second child to first child (highp 4-component vector of float)\r
 0:39        'gl_Position' (gl_Position highp 4-component vector of float)\r
 0:39        Construct vec4 (highp 4-component vector of float)\r
index 2ef0dcd..221640e 100644 (file)
@@ -2,25 +2,31 @@
 0:5  Sequence\r
 0:5    move second child to first child (float)\r
 0:5      'sum' (float)\r
-0:5      0.000000\r
+0:5      Constant:\r
+0:5        0.000000\r
 0:7  Function Definition: main( (void)\r
 0:7    Function Parameters: \r
 0:12    Sequence\r
 0:12      add second child into first child (float)\r
 0:12        'sum' (float)\r
-0:12        1.000000\r
+0:12        Constant:\r
+0:12          1.000000\r
 0:22      add second child into first child (float)\r
 0:22        'sum' (float)\r
-0:22        300.000000\r
+0:22        Constant:\r
+0:22          300.000000\r
 0:37      add second child into first child (float)\r
 0:37        'sum' (float)\r
-0:37        600000.000000\r
+0:37        Constant:\r
+0:37          600000.000000\r
 0:47      add second child into first child (float)\r
 0:47        'sum' (float)\r
-0:47        80000000.000000\r
+0:47        Constant:\r
+0:47          80000000.000000\r
 0:52      add second child into first child (float)\r
 0:52        'sum' (float)\r
-0:52        900000000.000000\r
+0:52        Constant:\r
+0:52          900000000.000000\r
 0:56      move second child to first child (4-component vector of float)\r
 0:56        'gl_Position' (gl_Position 4-component vector of float)\r
 0:56        Construct vec4 (4-component vector of float)\r
index 38894d8..918f832 100644 (file)
@@ -2,28 +2,35 @@
 0:5  Sequence\r
 0:5    move second child to first child (float)\r
 0:5      'sum' (float)\r
-0:5      0.000000\r
+0:5      Constant:\r
+0:5        0.000000\r
 0:7  Function Definition: main( (void)\r
 0:7    Function Parameters: \r
 0:12    Sequence\r
 0:12      add second child into first child (float)\r
 0:12        'sum' (float)\r
-0:12        1.000000\r
+0:12        Constant:\r
+0:12          1.000000\r
 0:21      add second child into first child (float)\r
 0:21        'sum' (float)\r
-0:21        300.000000\r
+0:21        Constant:\r
+0:21          300.000000\r
 0:61      add second child into first child (float)\r
 0:61        'sum' (float)\r
-0:61        600000.000000\r
+0:61        Constant:\r
+0:61          600000.000000\r
 0:65      add second child into first child (float)\r
 0:65        'sum' (float)\r
-0:65        80000000.000000\r
+0:65        Constant:\r
+0:65          80000000.000000\r
 0:69      add second child into first child (float)\r
 0:69        'sum' (float)\r
-0:69        900000000.000000\r
+0:69        Constant:\r
+0:69          900000000.000000\r
 0:76      add second child into first child (float)\r
 0:76        'sum' (float)\r
-0:76        7000000.000000\r
+0:76        Constant:\r
+0:76          7000000.000000\r
 0:86      move second child to first child (4-component vector of float)\r
 0:86        'gl_Position' (gl_Position 4-component vector of float)\r
 0:86        Construct vec4 (4-component vector of float)\r
index 76415b2..89201f1 100644 (file)
@@ -25,31 +25,39 @@ ERROR: node is still EOpNull!
 0:5  Sequence\r
 0:5    move second child to first child (float)\r
 0:5      'sum' (float)\r
-0:5      0.000000\r
+0:5      Constant:\r
+0:5        0.000000\r
 0:7  Function Definition: main( (void)\r
 0:7    Function Parameters: \r
 0:12    Sequence\r
 0:12      add second child into first child (float)\r
 0:12        'sum' (float)\r
-0:12        1.000000\r
+0:12        Constant:\r
+0:12          1.000000\r
 0:22      add second child into first child (float)\r
 0:22        'sum' (float)\r
-0:22        300.000000\r
+0:22        Constant:\r
+0:22          300.000000\r
 0:37      add second child into first child (float)\r
 0:37        'sum' (float)\r
-0:37        600000.000000\r
+0:37        Constant:\r
+0:37          600000.000000\r
 0:48      add second child into first child (float)\r
 0:48        'sum' (float)\r
-0:48        7000000.000000\r
+0:48        Constant:\r
+0:48          7000000.000000\r
 0:53      add second child into first child (float)\r
 0:53        'sum' (float)\r
-0:53        80000000.000000\r
+0:53        Constant:\r
+0:53          80000000.000000\r
 0:58      add second child into first child (float)\r
 0:58        'sum' (float)\r
-0:58        900000000.000000\r
+0:58        Constant:\r
+0:58          900000000.000000\r
 0:65      add second child into first child (float)\r
 0:65        'sum' (float)\r
-0:65        0.050000\r
+0:65        Constant:\r
+0:65          0.050000\r
 0:69      move second child to first child (4-component vector of float)\r
 0:69        'gl_Position' (gl_Position 4-component vector of float)\r
 0:69        Construct vec4 (4-component vector of float)\r
@@ -57,19 +65,23 @@ ERROR: node is still EOpNull!
 0:124  Sequence\r
 0:124    move second child to first child (int)\r
 0:124      'linenumber' (int)\r
-0:124      124 (const int)\r
+0:124      Constant:\r
+0:124        124 (const int)\r
 0:125  Sequence\r
 0:125    move second child to first child (int)\r
 0:125      'filenumber' (int)\r
-0:125      0 (const int)\r
+0:125      Constant:\r
+0:125        0 (const int)\r
 0:126  Sequence\r
 0:126    move second child to first child (int)\r
 0:126      'version' (int)\r
-0:126      110 (const int)\r
+0:126      Constant:\r
+0:126        110 (const int)\r
 0:130  Sequence\r
 0:130    move second child to first child (float)\r
 0:130      'twoPi' (float)\r
-0:130      6.280000\r
+0:130      Constant:\r
+0:130        6.280000\r
 0:?   Linker Objects\r
 0:?     'sum' (float)\r
 0:?     'linenumber' (int)\r
index bbaf345..f23cfc3 100644 (file)
@@ -6,7 +6,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:7      move second child to first child (4-component vector of float)\r
 0:7        direct index (fragColor 4-component vector of float)\r
 0:7          'gl_FragData' (fragColor 32-element array of 4-component vector of float)\r
-0:7          1 (const int)\r
+0:7          Constant:\r
+0:7            1 (const int)\r
 0:7        'Color' (smooth in 4-component vector of float)\r
 0:?   Linker Objects\r
 0:?     'Color' (smooth in 4-component vector of float)\r
index d2d7ac5..06ffada 100644 (file)
@@ -2,13 +2,15 @@
 0:5  Sequence\r
 0:5    move second child to first child (int)\r
 0:5      'c' (int)\r
-0:5      0 (const int)\r
+0:5      Constant:\r
+0:5        0 (const int)\r
 0:7  Function Definition: bar( (void)\r
 0:7    Function Parameters: \r
 0:9    Sequence\r
 0:9      Test condition and select (void)\r
 0:9        Condition\r
-0:9        false (const bool)\r
+0:9        Constant:\r
+0:9          false (const bool)\r
 0:9        true case\r
 0:10        Pre-Increment (int)\r
 0:10          'c' (int)\r
@@ -17,7 +19,8 @@
 0:12          'c' (int)\r
 0:14      Test condition and select (int)\r
 0:14        Condition\r
-0:14        false (const bool)\r
+0:14        Constant:\r
+0:14          false (const bool)\r
 0:14        true case\r
 0:14        Pre-Increment (int)\r
 0:14          'c' (int)\r
@@ -30,7 +33,8 @@
 0:16      body\r
 0:16        Sequence\r
 0:17          case:  with expression\r
-0:17            1 (const int)\r
+0:17            Constant:\r
+0:17              1 (const int)\r
 0:?           Sequence\r
 0:18            Pre-Increment (int)\r
 0:18              'c' (int)\r
@@ -38,7 +42,8 @@
 0:20            Pre-Increment (int)\r
 0:20              'c' (int)\r
 0:21          case:  with expression\r
-0:21            2 (const int)\r
+0:21            Constant:\r
+0:21              2 (const int)\r
 0:?           Sequence\r
 0:22            Branch: Break\r
 0:23            Pre-Increment (int)\r
 0:28        Sequence\r
 0:28          move second child to first child (int)\r
 0:28            'i' (int)\r
-0:28            0 (const int)\r
+0:28            Constant:\r
+0:28              0 (const int)\r
 0:28        Loop with condition tested first\r
 0:28          Loop Condition\r
 0:28          Compare Less Than (bool)\r
 0:28            'i' (int)\r
-0:28            0 (const int)\r
+0:28            Constant:\r
+0:28              0 (const int)\r
 0:28          Loop Body\r
 0:29          Pre-Increment (int)\r
 0:29            'c' (int)\r
 0:31        Sequence\r
 0:31          move second child to first child (int)\r
 0:31            'i' (int)\r
-0:31            0 (const int)\r
+0:31            Constant:\r
+0:31              0 (const int)\r
 0:31        Loop with condition tested first\r
 0:31          Loop Condition\r
 0:31          Compare Less Than (bool)\r
 0:31            'i' (int)\r
-0:31            10 (const int)\r
+0:31            Constant:\r
+0:31              10 (const int)\r
 0:31          Loop Body\r
 0:32          Sequence\r
 0:32            Test condition and select (void)\r
 0:32              Condition\r
 0:32              Compare Less Than (bool)\r
 0:32                'c' (int)\r
-0:32                3 (const int)\r
+0:32                Constant:\r
+0:32                  3 (const int)\r
 0:32              true case\r
 0:33              Sequence\r
 0:33                Branch: Break\r
 0:48        Condition\r
 0:48        Compare Greater Than (bool)\r
 0:48          'c' (int)\r
-0:48          4 (const int)\r
+0:48          Constant:\r
+0:48            4 (const int)\r
 0:48        true case\r
 0:49        Sequence\r
 0:49          Branch: Return with expression\r
-0:49            4 (const int)\r
+0:49            Constant:\r
+0:49              4 (const int)\r
 0:50          Pre-Increment (int)\r
 0:50            'c' (int)\r
 0:53      Branch: Return with expression\r
-0:53        5 (const int)\r
+0:53        Constant:\r
+0:53          5 (const int)\r
 0:55      Pre-Increment (int)\r
 0:55        'c' (int)\r
 0:?   Linker Objects\r
 0:?     'flag' (const bool)\r
+0:?       false (const bool)\r
 0:?     'c' (int)\r
 \r
index ad0ac0a..f965ed9 100644 (file)
@@ -5,119 +5,134 @@ ERROR: 0:21: 'vm2' : illegal use of type 'void'
 ERROR: 0:21: 'vm3' : illegal use of type 'void' \r
 ERROR: 0:22: 'vn8' : illegal use of type 'void' \r
 ERROR: 0:22: 'vp' : illegal use of type 'void' \r
-ERROR: 0:24: 'gl_' : reserved built-in name \r
-ERROR: 0:25: 'gl_' : reserved built-in name \r
-ERROR: 0:25: 'gl_' : reserved built-in name \r
-ERROR: 0:26: 'gl_' : reserved built-in name \r
-ERROR: 0:26: 'gl_' : reserved built-in name \r
-ERROR: 0:27: 'gl_' : reserved built-in name \r
-ERROR: 0:27: 'gl_' : reserved built-in name \r
-ERROR: 0:32: '' : boolean expression expected \r
-ERROR: 0:33: 'gl_' : reserved built-in name \r
-ERROR: 16 compilation errors.  No code generated.\r
+ERROR: 0:25: 'cij' : variables with qualifier 'const' must be initialized \r
+ERROR: 0:27: 'cip' : variables with qualifier 'const' must be initialized \r
+ERROR: 0:34: 'gl_' : reserved built-in name \r
+ERROR: 0:35: 'gl_' : reserved built-in name \r
+ERROR: 0:35: 'gl_' : reserved built-in name \r
+ERROR: 0:36: 'gl_' : reserved built-in name \r
+ERROR: 0:36: 'gl_' : reserved built-in name \r
+ERROR: 0:37: 'gl_' : reserved built-in name \r
+ERROR: 0:37: 'gl_' : reserved built-in name \r
+ERROR: 0:42: '' : boolean expression expected \r
+ERROR: 0:43: 'gl_' : reserved built-in name \r
+ERROR: 18 compilation errors.  No code generated.\r
 \r
 ERROR: node is still EOpNull!\r
 0:5  Sequence\r
 0:5    move second child to first child (int)\r
 0:5      'd1' (int)\r
-0:5      1 (const int)\r
+0:5      Constant:\r
+0:5        1 (const int)\r
 0:6  Sequence\r
 0:6    move second child to first child (int)\r
 0:6      'e2' (int)\r
-0:6      2 (const int)\r
+0:6      Constant:\r
+0:6        2 (const int)\r
 0:7  Sequence\r
 0:7    move second child to first child (int)\r
 0:7      'h3' (int)\r
-0:7      3 (const int)\r
+0:7      Constant:\r
+0:7        3 (const int)\r
 0:14  Sequence\r
 0:14    move second child to first child (4-element array of int)\r
 0:14      'ii4' (4-element array of int)\r
-0:14      1 (const int)\r
-0:14      2 (const int)\r
-0:14      3 (const int)\r
-0:14      4 (const int)\r
+0:14      Constant:\r
+0:14        1 (const int)\r
+0:14        2 (const int)\r
+0:14        3 (const int)\r
+0:14        4 (const int)\r
 0:15  Sequence\r
 0:15    move second child to first child (5-element array of int)\r
 0:15      'ik5' (5-element array of int)\r
-0:15      5 (const int)\r
-0:15      6 (const int)\r
-0:15      7 (const int)\r
-0:15      8 (const int)\r
-0:15      9 (const int)\r
+0:15      Constant:\r
+0:15        5 (const int)\r
+0:15        6 (const int)\r
+0:15        7 (const int)\r
+0:15        8 (const int)\r
+0:15        9 (const int)\r
 0:16  Sequence\r
 0:16    move second child to first child (2-element array of int)\r
 0:16      'im2' (2-element array of int)\r
-0:16      10 (const int)\r
-0:16      11 (const int)\r
+0:16      Constant:\r
+0:16        10 (const int)\r
+0:16        11 (const int)\r
 0:16    move second child to first child (3-element array of int)\r
 0:16      'im3' (3-element array of int)\r
-0:16      12 (const int)\r
-0:16      13 (const int)\r
-0:16      14 (const int)\r
+0:16      Constant:\r
+0:16        12 (const int)\r
+0:16        13 (const int)\r
+0:16        14 (const int)\r
 0:17  Sequence\r
 0:17    move second child to first child (4-element array of int)\r
 0:17      'in8' (4-element array of int)\r
-0:17      21 (const int)\r
-0:17      22 (const int)\r
-0:17      23 (const int)\r
-0:17      24 (const int)\r
-0:24  Sequence\r
-0:24    move second child to first child (4-element array of int)\r
-0:24      'gl_vi4' (4-element array of int)\r
-0:24      1 (const int)\r
-0:24      2 (const int)\r
-0:24      3 (const int)\r
-0:24      4 (const int)\r
-0:25  Sequence\r
-0:25    move second child to first child (5-element array of int)\r
-0:25      'gl_vk5' (5-element array of int)\r
-0:25      5 (const int)\r
-0:25      6 (const int)\r
-0:25      7 (const int)\r
-0:25      8 (const int)\r
-0:25      9 (const int)\r
-0:26  Sequence\r
-0:26    move second child to first child (2-element array of int)\r
-0:26      'gl_vm2' (2-element array of int)\r
-0:26      10 (const int)\r
-0:26      11 (const int)\r
-0:26    move second child to first child (3-element array of int)\r
-0:26      'gl_vm3' (3-element array of int)\r
-0:26      12 (const int)\r
-0:26      13 (const int)\r
-0:26      14 (const int)\r
-0:27  Sequence\r
-0:27    move second child to first child (4-element array of int)\r
-0:27      'gl_vn8' (4-element array of int)\r
-0:27      21 (const int)\r
-0:27      22 (const int)\r
-0:27      23 (const int)\r
-0:27      24 (const int)\r
-0:29  Function Definition: main( (void)\r
-0:29    Function Parameters: \r
-0:31    Sequence\r
-0:31      Loop with condition tested first\r
-0:31        Loop Condition\r
-0:31        move second child to first child (bool)\r
-0:31          'cond' (bool)\r
-0:31          Compare Less Than (bool)\r
-0:31            'b' (int)\r
-0:31            'c' (int)\r
-0:31        No loop body\r
-0:32      Loop with condition tested first\r
-0:32        Loop Condition\r
-0:32        move second child to first child (int)\r
-0:32          'icond' (int)\r
-0:32          'b' (int)\r
-0:32        No loop body\r
-0:33      Loop with condition tested first\r
-0:33        Loop Condition\r
-0:33        move second child to first child (bool)\r
-0:33          'gl_cond' (bool)\r
-0:33          Compare Less Than (bool)\r
-0:33            'b' (int)\r
-0:33            'c' (int)\r
-0:33        No loop body\r
+0:17      Constant:\r
+0:17        21 (const int)\r
+0:17        22 (const int)\r
+0:17        23 (const int)\r
+0:17        24 (const int)\r
+0:34  Sequence\r
+0:34    move second child to first child (4-element array of int)\r
+0:34      'gl_vi4' (4-element array of int)\r
+0:34      Constant:\r
+0:34        1 (const int)\r
+0:34        2 (const int)\r
+0:34        3 (const int)\r
+0:34        4 (const int)\r
+0:35  Sequence\r
+0:35    move second child to first child (5-element array of int)\r
+0:35      'gl_vk5' (5-element array of int)\r
+0:35      Constant:\r
+0:35        5 (const int)\r
+0:35        6 (const int)\r
+0:35        7 (const int)\r
+0:35        8 (const int)\r
+0:35        9 (const int)\r
+0:36  Sequence\r
+0:36    move second child to first child (2-element array of int)\r
+0:36      'gl_vm2' (2-element array of int)\r
+0:36      Constant:\r
+0:36        10 (const int)\r
+0:36        11 (const int)\r
+0:36    move second child to first child (3-element array of int)\r
+0:36      'gl_vm3' (3-element array of int)\r
+0:36      Constant:\r
+0:36        12 (const int)\r
+0:36        13 (const int)\r
+0:36        14 (const int)\r
+0:37  Sequence\r
+0:37    move second child to first child (4-element array of int)\r
+0:37      'gl_vn8' (4-element array of int)\r
+0:37      Constant:\r
+0:37        21 (const int)\r
+0:37        22 (const int)\r
+0:37        23 (const int)\r
+0:37        24 (const int)\r
+0:39  Function Definition: main( (void)\r
+0:39    Function Parameters: \r
+0:41    Sequence\r
+0:41      Loop with condition tested first\r
+0:41        Loop Condition\r
+0:41        move second child to first child (bool)\r
+0:41          'cond' (bool)\r
+0:41          Compare Less Than (bool)\r
+0:41            'b' (int)\r
+0:41            'c' (int)\r
+0:41        No loop body\r
+0:42      Loop with condition tested first\r
+0:42        Loop Condition\r
+0:42        move second child to first child (int)\r
+0:42          'icond' (int)\r
+0:42          'b' (int)\r
+0:42        No loop body\r
+0:43      Loop with condition tested first\r
+0:43        Loop Condition\r
+0:43        move second child to first child (bool)\r
+0:43          'gl_cond' (bool)\r
+0:43          Compare Less Than (bool)\r
+0:43            'b' (int)\r
+0:43            'c' (int)\r
+0:43        No loop body\r
 0:?   Linker Objects\r
 0:?     'a' (int)\r
 0:?     'b' (int)\r
@@ -141,6 +156,56 @@ ERROR: node is still EOpNull!
 0:?     'im3' (3-element array of int)\r
 0:?     'in8' (4-element array of int)\r
 0:?     'ip' (int)\r
+0:?     'cii4' (const 4-element array of int)\r
+0:?       1 (const int)\r
+0:?       2 (const int)\r
+0:?       3 (const int)\r
+0:?       4 (const int)\r
+0:?     'cij' (int)\r
+0:?     'cik5' (const 5-element array of int)\r
+0:?       5 (const int)\r
+0:?       6 (const int)\r
+0:?       7 (const int)\r
+0:?       8 (const int)\r
+0:?       9 (const int)\r
+0:?     'cim2' (const 2-element array of int)\r
+0:?       10 (const int)\r
+0:?       11 (const int)\r
+0:?     'cim3' (const 3-element array of int)\r
+0:?       12 (const int)\r
+0:?       13 (const int)\r
+0:?       14 (const int)\r
+0:?     'cin8' (const 4-element array of int)\r
+0:?       21 (const int)\r
+0:?       22 (const int)\r
+0:?       23 (const int)\r
+0:?       24 (const int)\r
+0:?     'cip' (int)\r
+0:?     'uii4' (uniform 4-element array of int)\r
+0:?       1 (const int)\r
+0:?       2 (const int)\r
+0:?       3 (const int)\r
+0:?       4 (const int)\r
+0:?     'uij' (uniform int)\r
+0:?     'uik5' (uniform 5-element array of int)\r
+0:?       5 (const int)\r
+0:?       6 (const int)\r
+0:?       7 (const int)\r
+0:?       8 (const int)\r
+0:?       9 (const int)\r
+0:?     'uim2' (uniform 2-element array of int)\r
+0:?       10 (const int)\r
+0:?       11 (const int)\r
+0:?     'uim3' (uniform 3-element array of int)\r
+0:?       12 (const int)\r
+0:?       13 (const int)\r
+0:?       14 (const int)\r
+0:?     'uin8' (uniform 4-element array of int)\r
+0:?       21 (const int)\r
+0:?       22 (const int)\r
+0:?       23 (const int)\r
+0:?       24 (const int)\r
+0:?     'uip' (uniform int)\r
 0:?     'gl_vi4' (4-element array of int)\r
 0:?     'gl_vj' (int)\r
 0:?     'gl_vk5' (5-element array of int)\r
index 1cda2df..2591dec 100644 (file)
@@ -2,31 +2,35 @@
 0:5  Sequence\r
 0:5    move second child to first child (4-component vector of float)\r
 0:5      'v1' (4-component vector of float)\r
-0:5      2.000000\r
-0:5      3.000000\r
-0:5      5.000000\r
-0:5      7.000000\r
+0:5      Constant:\r
+0:5        2.000000\r
+0:5        3.000000\r
+0:5        5.000000\r
+0:5        7.000000\r
 0:6  Sequence\r
 0:6    move second child to first child (4-component vector of float)\r
 0:6      'v2' (4-component vector of float)\r
-0:6      11.000000\r
-0:6      13.000000\r
-0:6      17.000000\r
-0:6      19.000000\r
+0:6      Constant:\r
+0:6        11.000000\r
+0:6        13.000000\r
+0:6        17.000000\r
+0:6        19.000000\r
 0:7  Sequence\r
 0:7    move second child to first child (4-component vector of float)\r
 0:7      'v3' (4-component vector of float)\r
-0:7      23.000000\r
-0:7      29.000000\r
-0:7      31.000000\r
-0:7      37.000000\r
+0:7      Constant:\r
+0:7        23.000000\r
+0:7        29.000000\r
+0:7        31.000000\r
+0:7        37.000000\r
 0:8  Sequence\r
 0:8    move second child to first child (4-component vector of float)\r
 0:8      'v4' (4-component vector of float)\r
-0:8      41.000000\r
-0:8      43.000000\r
-0:8      47.000000\r
-0:8      53.000000\r
+0:8      Constant:\r
+0:8        41.000000\r
+0:8        43.000000\r
+0:8        47.000000\r
+0:8        53.000000\r
 0:16  Function Definition: main( (void)\r
 0:16    Function Parameters: \r
 0:18    Sequence\r
 0:21          direct index (float)\r
 0:21            direct index (4-component vector of float)\r
 0:21              'mm' (4X4 matrix of float)\r
-0:21              1 (const int)\r
-0:21            3 (const int)\r
+0:21              Constant:\r
+0:21                1 (const int)\r
+0:21            Constant:\r
+0:21              3 (const int)\r
 0:24      Sequence\r
 0:24        move second child to first child (float)\r
 0:24          'g' (float)\r
 0:24              component-wise multiply (4X4 matrix of float)\r
 0:24                'm' (4X4 matrix of float)\r
 0:24                'm' (4X4 matrix of float)\r
-0:24              2 (const int)\r
-0:24            1 (const int)\r
+0:24              Constant:\r
+0:24                2 (const int)\r
+0:24            Constant:\r
+0:24              1 (const int)\r
 0:26      Sequence\r
 0:26        move second child to first child (float)\r
 0:26          'h' (float)\r
-0:26          5.000000\r
+0:26          Constant:\r
+0:26            5.000000\r
 0:28      Sequence\r
 0:28        move second child to first child (float)\r
 0:28          'i' (float)\r
 0:28          direct index (float)\r
 0:28            Function Call: texture2D(s21;vf2; (4-component vector of float)\r
 0:28              'sampler' (uniform sampler2D)\r
-0:28              0.500000\r
-0:28              0.500000\r
-0:28            1 (const int)\r
+0:28              Constant:\r
+0:28                0.500000\r
+0:28                0.500000\r
+0:28            Constant:\r
+0:28              1 (const int)\r
 0:30      add second child into first child (float)\r
 0:30        'i' (float)\r
 0:30        direct index (float)\r
 0:30            Condition\r
 0:30            Compare Greater Than (bool)\r
 0:30              'i' (float)\r
-0:30              0.100000\r
+0:30              Constant:\r
+0:30                0.100000\r
 0:30            true case\r
 0:30            'v1' (4-component vector of float)\r
 0:30            false case\r
 0:30            'v2' (4-component vector of float)\r
-0:30          3 (const int)\r
+0:30          Constant:\r
+0:30            3 (const int)\r
 0:33      add second child into first child (float)\r
 0:33        'i' (float)\r
 0:33        direct index (float)\r
 0:33            b: direct index for structure (3-element array of 2-component vector of float)\r
 0:33              move second child to first child (structure)\r
 0:33                't' (structure)\r
+0:33                Constant:\r
+0:33                  1 (const int)\r
+0:33                  2.000000\r
+0:33                  3.000000\r
+0:33                  4.000000\r
+0:33                  5.000000\r
+0:33                  6.000000\r
+0:33                  7.000000\r
+0:33                  true (const bool)\r
+0:33              Constant:\r
 0:33                1 (const int)\r
-0:33                2.000000\r
-0:33                3.000000\r
-0:33                4.000000\r
-0:33                5.000000\r
-0:33                6.000000\r
-0:33                7.000000\r
-0:33                true (const bool)\r
-0:33              1 (const int)\r
-0:33            2 (const int)\r
-0:33          1 (const int)\r
+0:33            Constant:\r
+0:33              2 (const int)\r
+0:33          Constant:\r
+0:33            1 (const int)\r
 0:35      move second child to first child (4-component vector of float)\r
 0:35        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:35        Construct vec4 (4-component vector of float)\r
index 6cc221f..97f012b 100644 (file)
@@ -5,17 +5,19 @@
 0:6      Sequence\r
 0:6        move second child to first child (4-component vector of float)\r
 0:6          'white' (4-component vector of float)\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
-0:6          1.000000\r
+0:6          Constant:\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
+0:6            1.000000\r
 0:7      Sequence\r
 0:7        move second child to first child (4-component vector of float)\r
 0:7          'black' (4-component vector of float)\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
-0:7          0.200000\r
+0:7          Constant:\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
+0:7            0.200000\r
 0:8      Sequence\r
 0:8        move second child to first child (4-component vector of float)\r
 0:8          'color' (4-component vector of float)\r
 0:11            component-wise multiply (float)\r
 0:11              direct index (float)\r
 0:11                'tex_coord' (smooth in 2-component vector of float)\r
-0:11                0 (const int)\r
-0:11              2.000000\r
-0:11            1.000000\r
+0:11                Constant:\r
+0:11                  0 (const int)\r
+0:11              Constant:\r
+0:11                2.000000\r
+0:11            Constant:\r
+0:11              1.000000\r
 0:12      Sequence\r
 0:12        move second child to first child (float)\r
 0:12          'y' (float)\r
 0:12            component-wise multiply (float)\r
 0:12              direct index (float)\r
 0:12                'tex_coord' (smooth in 2-component vector of float)\r
-0:12                1 (const int)\r
-0:12              2.000000\r
-0:12            1.000000\r
+0:12                Constant:\r
+0:12                  1 (const int)\r
+0:12              Constant:\r
+0:12                2.000000\r
+0:12            Constant:\r
+0:12              1.000000\r
 0:14      Sequence\r
 0:14        move second child to first child (float)\r
 0:14          'radius' (float)\r
 0:15        Condition\r
 0:15        Compare Greater Than (bool)\r
 0:15          'radius' (float)\r
-0:15          1.000000\r
+0:15          Constant:\r
+0:15            1.000000\r
 0:15        true case\r
 0:16        Sequence\r
 0:16          Test condition and select (void)\r
 0:16            Condition\r
 0:16            Compare Greater Than (bool)\r
 0:16              'radius' (float)\r
-0:16              1.100000\r
+0:16              Constant:\r
+0:16                1.100000\r
 0:16            true case\r
 0:17            Sequence\r
 0:17              Pre-Increment (4-component vector of float)\r
@@ -74,7 +84,8 @@
 0:22            Condition\r
 0:22            Compare Greater Than (bool)\r
 0:22              'radius' (float)\r
-0:22              1.200000\r
+0:22              Constant:\r
+0:22                1.200000\r
 0:22            true case\r
 0:23            Sequence\r
 0:23              Pre-Increment (4-component vector of float)\r
@@ -84,7 +95,8 @@
 0:30        Condition\r
 0:30        Compare Greater Than or Equal (bool)\r
 0:30          'radius' (float)\r
-0:30          0.750000\r
+0:30          Constant:\r
+0:30            0.750000\r
 0:30        true case\r
 0:31        subtract second child into first child (4-component vector of float)\r
 0:31          'color' (4-component vector of float)\r
 0:31            divide (float)\r
 0:31              pow (float)\r
 0:31                'radius' (float)\r
-0:31                16.000000\r
-0:31              2.000000\r
+0:31                Constant:\r
+0:31                  16.000000\r
+0:31              Constant:\r
+0:31                2.000000\r
 0:33      move second child to first child (4-component vector of float)\r
 0:33        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:33        'color' (4-component vector of float)\r
index ead28f9..32956c4 100644 (file)
@@ -11,7 +11,8 @@
 0:13        Compare Less Than (bool)\r
 0:13          direct index (float)\r
 0:13            'color' (4-component vector of float)\r
-0:13            0 (const int)\r
+0:13            Constant:\r
+0:13              0 (const int)\r
 0:13          'd' (uniform float)\r
 0:13        Loop Body\r
 0:12        Sequence\r
index f82ff3c..288f55e 100644 (file)
 0:31        Compare Less Than (bool)\r
 0:31          direct index (float)\r
 0:31            'color' (4-component vector of float)\r
-0:31            2 (const int)\r
+0:31            Constant:\r
+0:31              2 (const int)\r
 0:31          'minimum' (uniform float)\r
 0:31        true case\r
 0:32        Branch: Return\r
 0:34      Post-Increment (float)\r
 0:34        direct index (float)\r
 0:34          'color' (4-component vector of float)\r
-0:34          2 (const int)\r
+0:34          Constant:\r
+0:34            2 (const int)\r
 0:36      Test condition and select (void)\r
 0:36        Condition\r
 0:36        Compare Greater Than (bool)\r
 0:36          direct index (float)\r
 0:36            'color' (4-component vector of float)\r
-0:36            2 (const int)\r
+0:36            Constant:\r
+0:36              2 (const int)\r
 0:36          'threshhold' (uniform float)\r
 0:36        true case\r
 0:37        Branch: Kill\r
@@ -51,7 +54,8 @@
 0:42        Compare Greater Than (bool)\r
 0:42          direct index (float)\r
 0:42            'color' (4-component vector of float)\r
-0:42            3 (const int)\r
+0:42            Constant:\r
+0:42              3 (const int)\r
 0:42          'threshhold2' (uniform float)\r
 0:42        true case\r
 0:43        Sequence\r
@@ -60,7 +64,8 @@
 0:43            Compare Greater Than (bool)\r
 0:43              direct index (float)\r
 0:43                'color' (4-component vector of float)\r
-0:43                2 (const int)\r
+0:43                Constant:\r
+0:43                  2 (const int)\r
 0:43              'threshhold2' (uniform float)\r
 0:43            true case\r
 0:44            Branch: Return\r
@@ -72,7 +77,8 @@
 0:46              Post-Increment (float)\r
 0:46                direct index (float)\r
 0:46                  'color' (4-component vector of float)\r
-0:46                  2 (const int)\r
+0:46                  Constant:\r
+0:46                    2 (const int)\r
 0:45              false case\r
 0:48              Sequence\r
 0:48                Test condition and select (void)\r
@@ -80,7 +86,8 @@
 0:48                  Compare Less Than (bool)\r
 0:48                    direct index (float)\r
 0:48                      'color' (4-component vector of float)\r
-0:48                      0 (const int)\r
+0:48                      Constant:\r
+0:48                        0 (const int)\r
 0:48                    'minimum' (uniform float)\r
 0:48                  true case\r
 0:49                  Sequence\r
index b555dd3..37304d8 100644 (file)
@@ -9,6 +9,7 @@ ERROR: node is still EOpNull!
 0:1      'foo' (in mediump int)\r
 0:3    Sequence\r
 0:3      Branch: Return with expression\r
-0:3        1 (const int)\r
+0:3        Constant:\r
+0:3          1 (const int)\r
 0:?   Linker Objects\r
 \r
index 40e267c..5db7911 100644 (file)
@@ -10,7 +10,8 @@
 0:12        Sequence\r
 0:12          move second child to first child (int)\r
 0:12            'i' (int)\r
-0:12            0 (const int)\r
+0:12            Constant:\r
+0:12              0 (const int)\r
 0:12        Loop with condition tested first\r
 0:12          Loop Condition\r
 0:12          Compare Less Than (bool)\r
index 46170da..d63454a 100644 (file)
 0:28        Condition\r
 0:28        Compare Less Than (bool)\r
 0:28          'd' (uniform float)\r
-0:28          4.200000\r
+0:28          Constant:\r
+0:28            4.200000\r
 0:28        true case\r
 0:29        Branch: Return with expression\r
-0:29          1.200000\r
+0:29          Constant:\r
+0:29            1.200000\r
 0:28        false case\r
 0:31        Branch: Return with expression\r
-0:31          4.500000\r
+0:31          Constant:\r
+0:31            4.500000\r
 0:34  Function Definition: foo(vf4; (float)\r
 0:34    Function Parameters: \r
 0:34      'bar' (in 4-component vector of float)\r
 0:36        add (float)\r
 0:36          direct index (float)\r
 0:36            'bar' (in 4-component vector of float)\r
-0:36            0 (const int)\r
+0:36            Constant:\r
+0:36              0 (const int)\r
 0:36          direct index (float)\r
 0:36            'bar' (in 4-component vector of float)\r
-0:36            1 (const int)\r
+0:36            Constant:\r
+0:36              1 (const int)\r
 0:?   Linker Objects\r
 0:?     'bigColor' (uniform 4-component vector of float)\r
 0:?     'BaseColor' (smooth in 4-component vector of float)\r
index 3327c4c..2257197 100644 (file)
@@ -3,7 +3,8 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:7  Sequence\r
 0:7    move second child to first child (float)\r
 0:7      'h' (float)\r
-0:7      0.000000\r
+0:7      Constant:\r
+0:7        0.000000\r
 0:9  Function Definition: foo(vf4; (float)\r
 0:9    Function Parameters: \r
 0:9      'bar' (in 4-component vector of float)\r
@@ -12,10 +13,12 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:11        add (float)\r
 0:11          direct index (float)\r
 0:11            'bar' (in 4-component vector of float)\r
-0:11            0 (const int)\r
+0:11            Constant:\r
+0:11              0 (const int)\r
 0:11          direct index (float)\r
 0:11            'bar' (in 4-component vector of float)\r
-0:11            1 (const int)\r
+0:11            Constant:\r
+0:11              1 (const int)\r
 0:14  Function Definition: bar( (void)\r
 0:14    Function Parameters: \r
 0:18  Function Definition: unreachableReturn( (float)\r
@@ -25,13 +28,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:20        Condition\r
 0:20        Compare Less Than (bool)\r
 0:20          'd' (uniform float)\r
-0:20          4.200000\r
+0:20          Constant:\r
+0:20            4.200000\r
 0:20        true case\r
 0:21        Branch: Return with expression\r
-0:21          1.200000\r
+0:21          Constant:\r
+0:21            1.200000\r
 0:20        false case\r
 0:23        Branch: Return with expression\r
-0:23          4.500000\r
+0:23          Constant:\r
+0:23            4.500000\r
 0:27  Function Definition: missingReturn( (float)\r
 0:27    Function Parameters: \r
 0:29    Sequence\r
@@ -39,14 +45,16 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:29        Condition\r
 0:29        Compare Less Than (bool)\r
 0:29          'd' (uniform float)\r
-0:29          4.500000\r
+0:29          Constant:\r
+0:29            4.500000\r
 0:29        true case\r
 0:30        Sequence\r
 0:30          move second child to first child (float)\r
 0:30            'h' (float)\r
 0:30            'd' (uniform float)\r
 0:31          Branch: Return with expression\r
-0:31            3.900000\r
+0:31            Constant:\r
+0:31              3.900000\r
 0:35  Function Definition: main( (void)\r
 0:35    Function Parameters: \r
 0:37    Sequence\r
index 79c9b36..dd431a6 100644 (file)
 0:5            'f' (inout mediump int)\r
 0:8      multiply second child into first child (mediump int)\r
 0:8        'a' (in mediump int)\r
-0:8        64 (const int)\r
+0:8        Constant:\r
+0:8          64 (const int)\r
 0:10      multiply second child into first child (mediump int)\r
 0:10        'c' (in mediump int)\r
-0:10        64 (const int)\r
+0:10        Constant:\r
+0:10          64 (const int)\r
 0:12      move second child to first child (mediump int)\r
 0:12        'e' (out mediump int)\r
-0:12        1024 (const int)\r
+0:12        Constant:\r
+0:12          1024 (const int)\r
 0:13      multiply second child into first child (mediump int)\r
 0:13        'f' (inout mediump int)\r
-0:13        64 (const int)\r
+0:13        Constant:\r
+0:13          64 (const int)\r
 0:15      add second child into first child (mediump int)\r
 0:15        'sum' (mediump int)\r
 0:15        add (mediump int)\r
 0:15                add (mediump int)\r
 0:15                  'a' (in mediump int)\r
 0:15                  component-wise multiply (mediump int)\r
-0:15                    64 (const int)\r
+0:15                    Constant:\r
+0:15                      64 (const int)\r
 0:15                    'b' (const (read only) mediump int)\r
 0:15                'c' (in mediump int)\r
 0:15              component-wise multiply (mediump int)\r
-0:15                64 (const int)\r
+0:15                Constant:\r
+0:15                  64 (const int)\r
 0:15                'd' (const (read only) mediump int)\r
 0:15            'e' (out mediump int)\r
 0:15          'f' (inout mediump int)\r
 0:24      Sequence\r
 0:24        move second child to first child (mediump int)\r
 0:24          't' (mediump int)\r
-0:24          2 (const int)\r
+0:24          Constant:\r
+0:24            2 (const int)\r
 0:28      move second child to first child (mediump int)\r
 0:28        direct index (mediump int)\r
 0:28          t: direct index for structure (mediump 4-component vector of int)\r
 0:28            'f' (structure)\r
-0:28            0 (const int)\r
-0:28          1 (const int)\r
-0:28        32 (const int)\r
+0:28            Constant:\r
+0:28              0 (const int)\r
+0:28          Constant:\r
+0:28            1 (const int)\r
+0:28        Constant:\r
+0:28          32 (const int)\r
 0:30      Sequence\r
 0:30        move second child to first child (mediump int)\r
 0:30          'color' (mediump int)\r
 0:30          Function Call: foo(i1;i1;i1;i1;i1;i1; (mediump int)\r
-0:30            1 (const int)\r
-0:30            2 (const int)\r
+0:30            Constant:\r
+0:30              1 (const int)\r
+0:30            Constant:\r
+0:30              2 (const int)\r
 0:30            add (mediump int)\r
 0:30              't' (mediump int)\r
 0:30              't' (mediump int)\r
-0:30            8 (const int)\r
+0:30            Constant:\r
+0:30              8 (const int)\r
 0:30            'e' (mediump int)\r
 0:30            direct index (mediump int)\r
 0:30              t: direct index for structure (mediump 4-component vector of int)\r
 0:30                'f' (structure)\r
-0:30                0 (const int)\r
-0:30              1 (const int)\r
+0:30                Constant:\r
+0:30                  0 (const int)\r
+0:30              Constant:\r
+0:30                1 (const int)\r
 0:32      add second child into first child (mediump int)\r
 0:32        'color' (mediump int)\r
 0:32        component-wise multiply (mediump int)\r
-0:32          128 (const int)\r
+0:32          Constant:\r
+0:32            128 (const int)\r
 0:32          add (mediump int)\r
 0:32            'e' (mediump int)\r
 0:32            direct index (mediump int)\r
 0:32              t: direct index for structure (mediump 4-component vector of int)\r
 0:32                'f' (structure)\r
-0:32                0 (const int)\r
-0:32              1 (const int)\r
+0:32                Constant:\r
+0:32                  0 (const int)\r
+0:32              Constant:\r
+0:32                1 (const int)\r
 0:35      move second child to first child (mediump 4-component vector of float)\r
 0:35        'gl_FragColor' (fragColor mediump 4-component vector of float)\r
 0:35        Construct vec4 (mediump 4-component vector of float)\r
index 4a354ae..f7f53ac 100644 (file)
@@ -8,16 +8,19 @@
 0:15          add (2-component vector of float)\r
 0:15            direct index (smooth in 2-component vector of float)\r
 0:15              'v' (smooth in 2-element array of 2-component vector of float)\r
-0:15              0 (const int)\r
+0:15              Constant:\r
+0:15                0 (const int)\r
 0:15            direct index (smooth in 2-component vector of float)\r
 0:15              'v' (smooth in 2-element array of 2-component vector of float)\r
-0:15              1 (const int)\r
+0:15              Constant:\r
+0:15                1 (const int)\r
 0:17      move second child to first child (4-component vector of float)\r
 0:17        'gl_FragColor' (fragColor 4-component vector of float)\r
-0:17        30.000000\r
-0:17        30.000000\r
-0:17        30.000000\r
-0:17        30.000000\r
+0:17        Constant:\r
+0:17          30.000000\r
+0:17          30.000000\r
+0:17          30.000000\r
+0:17          30.000000\r
 0:?   Linker Objects\r
 0:?     'u' (uniform 3-element array of 4-component vector of float)\r
 0:?     'v' (smooth in 2-element array of 2-component vector of float)\r
index 47cfec2..06d1d4a 100644 (file)
@@ -5,7 +5,8 @@ link1.frag
 0:8    move second child to first child (4-component vector of float)\r
 0:8      'a' (4-component vector of float)\r
 0:8      vector-scale (4-component vector of float)\r
-0:8        8.000000\r
+0:8        Constant:\r
+0:8          8.000000\r
 0:8        'uv4' (uniform 4-component vector of float)\r
 0:13  Function Definition: main( (void)\r
 0:13    Function Parameters: \r
@@ -13,7 +14,8 @@ link1.frag
 0:17    move second child to first child (4-component vector of float)\r
 0:17      'b' (4-component vector of float)\r
 0:17      vector-scale (4-component vector of float)\r
-0:17        8.000000\r
+0:17        Constant:\r
+0:17          8.000000\r
 0:17        'a' (4-component vector of float)\r
 0:19  Function Definition: foo(mf22; (2-component vector of int)\r
 0:19    Function Parameters: \r
@@ -23,7 +25,8 @@ link1.frag
 0:21        Convert float to int (2-component vector of int)\r
 0:21          direct index (in 2-component vector of float)\r
 0:21            'm' (in 2X2 matrix of float)\r
-0:21            0 (const int)\r
+0:21            Constant:\r
+0:21              0 (const int)\r
 0:24  Sequence\r
 0:24    move second child to first child (4-component vector of float)\r
 0:24      'c' (4-component vector of float)\r
@@ -34,11 +37,46 @@ link1.frag
 0:?     'uv4' (uniform 4-component vector of float)\r
 0:?     'glass' (uniform 3-component vector of float)\r
 0:?     'ci' (const int)\r
+0:?       8 (const int)\r
 0:?     'a' (4-component vector of float)\r
 0:?     'iv3' (smooth in 3-component vector of float)\r
 0:?     'cup' (smooth in 4-component vector of float)\r
 0:?     'b' (4-component vector of float)\r
 0:?     'c' (4-component vector of float)\r
+0:?     'cv3' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'cv3n' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'cv3e' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'um2' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     'um2n' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     'um2e' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     's' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
+0:?     'sn' (uniform structure)\r
+0:?     'se' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
 \r
 link2.frag\r
 \r
@@ -47,20 +85,23 @@ link2.frag
 0:8    move second child to first child (4-component vector of float)\r
 0:8      'd' (4-component vector of float)\r
 0:8      vector-scale (4-component vector of float)\r
-0:8        8.000000\r
+0:8        Constant:\r
+0:8          8.000000\r
 0:8        'uv4' (uniform 4-component vector of float)\r
 0:13  Sequence\r
 0:13    move second child to first child (4-component vector of float)\r
 0:13      'e' (4-component vector of float)\r
 0:13      vector-scale (4-component vector of float)\r
-0:13        8.000000\r
+0:13        Constant:\r
+0:13          8.000000\r
 0:13        'd' (4-component vector of float)\r
 0:15  Function Definition: foo( (2-component vector of int)\r
 0:15    Function Parameters: \r
 0:17    Sequence\r
 0:17      Branch: Return with expression\r
-0:17        2 (const int)\r
-0:17        2 (const int)\r
+0:17        Constant:\r
+0:17          2 (const int)\r
+0:17          2 (const int)\r
 0:20  Sequence\r
 0:20    move second child to first child (4-component vector of float)\r
 0:20      'f' (4-component vector of float)\r
@@ -71,11 +112,40 @@ link2.frag
 0:?     'uv4' (uniform 4-component vector of float)\r
 0:?     'glass' (uniform 2-component vector of float)\r
 0:?     'ci' (const int)\r
+0:?       8 (const int)\r
 0:?     'd' (4-component vector of float)\r
 0:?     'iv3' (smooth in 3-component vector of float)\r
 0:?     'cup' (flat in 4-component vector of float)\r
 0:?     'e' (4-component vector of float)\r
 0:?     'f' (4-component vector of float)\r
+0:?     'cv3' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'cv3e' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       2.900000\r
+0:?     'um2' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     'um2n' (uniform 2X2 matrix of float)\r
+0:?     'um2e' (uniform 2X2 matrix of float)\r
+0:?       3.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       3.000000\r
+0:?     's' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
+0:?     'sn' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
+0:?     'se' (uniform structure)\r
+0:?       81 (const int)\r
+0:?       3.900000\r
 \r
 link3.frag\r
 \r
@@ -90,6 +160,12 @@ ERROR: Linking fragment stage: Types must match:
     glass: "uniform 3-component vector of float" versus "uniform 2-component vector of float"\r
 ERROR: Linking fragment stage: Interpolation and auxiliary storage qualifiers must match:\r
     cup: "smooth in 4-component vector of float" versus "flat in 4-component vector of float"\r
+ERROR: Linking fragment stage: Initializers must match:\r
+    cv3e\r
+ERROR: Linking fragment stage: Initializers must match:\r
+    um2e\r
+ERROR: Linking fragment stage: Initializers must match:\r
+    se\r
 ERROR: Linking fragment stage: Cannot mix ES profile with non-ES profile shaders\r
 \r
 ERROR: Linking fragment stage: Types must match:\r
@@ -101,7 +177,8 @@ ERROR: Linking fragment stage: Precision qualifiers must match:
 0:8    move second child to first child (4-component vector of float)\r
 0:8      'a' (4-component vector of float)\r
 0:8      vector-scale (4-component vector of float)\r
-0:8        8.000000\r
+0:8        Constant:\r
+0:8          8.000000\r
 0:8        'uv4' (uniform 4-component vector of float)\r
 0:13  Function Definition: main( (void)\r
 0:13    Function Parameters: \r
@@ -109,7 +186,8 @@ ERROR: Linking fragment stage: Precision qualifiers must match:
 0:17    move second child to first child (4-component vector of float)\r
 0:17      'b' (4-component vector of float)\r
 0:17      vector-scale (4-component vector of float)\r
-0:17        8.000000\r
+0:17        Constant:\r
+0:17          8.000000\r
 0:17        'a' (4-component vector of float)\r
 0:19  Function Definition: foo(mf22; (2-component vector of int)\r
 0:19    Function Parameters: \r
@@ -119,7 +197,8 @@ ERROR: Linking fragment stage: Precision qualifiers must match:
 0:21        Convert float to int (2-component vector of int)\r
 0:21          direct index (in 2-component vector of float)\r
 0:21            'm' (in 2X2 matrix of float)\r
-0:21            0 (const int)\r
+0:21            Constant:\r
+0:21              0 (const int)\r
 0:24  Sequence\r
 0:24    move second child to first child (4-component vector of float)\r
 0:24      'c' (4-component vector of float)\r
@@ -130,20 +209,23 @@ ERROR: Linking fragment stage: Precision qualifiers must match:
 0:8    move second child to first child (4-component vector of float)\r
 0:8      'd' (4-component vector of float)\r
 0:8      vector-scale (4-component vector of float)\r
-0:8        8.000000\r
+0:8        Constant:\r
+0:8          8.000000\r
 0:8        'uv4' (uniform 4-component vector of float)\r
 0:13  Sequence\r
 0:13    move second child to first child (4-component vector of float)\r
 0:13      'e' (4-component vector of float)\r
 0:13      vector-scale (4-component vector of float)\r
-0:13        8.000000\r
+0:13        Constant:\r
+0:13          8.000000\r
 0:13        'd' (4-component vector of float)\r
 0:15  Function Definition: foo( (2-component vector of int)\r
 0:15    Function Parameters: \r
 0:17    Sequence\r
 0:17      Branch: Return with expression\r
-0:17        2 (const int)\r
-0:17        2 (const int)\r
+0:17        Constant:\r
+0:17          2 (const int)\r
+0:17          2 (const int)\r
 0:20  Sequence\r
 0:20    move second child to first child (4-component vector of float)\r
 0:20      'f' (4-component vector of float)\r
@@ -154,11 +236,48 @@ ERROR: Linking fragment stage: Precision qualifiers must match:
 0:?     'uv4' (uniform 4-component vector of float)\r
 0:?     'glass' (uniform 3-component vector of float)\r
 0:?     'ci' (const int)\r
+0:?       8 (const int)\r
 0:?     'a' (4-component vector of float)\r
 0:?     'iv3' (smooth in 3-component vector of float)\r
 0:?     'cup' (smooth in 4-component vector of float)\r
 0:?     'b' (4-component vector of float)\r
 0:?     'c' (4-component vector of float)\r
+0:?     'cv3' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'cv3n' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'cv3e' (const 3-component vector of float)\r
+0:?       43.000000\r
+0:?       0.340000\r
+0:?       9.900000\r
+0:?     'um2' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     'um2n' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     'um2e' (uniform 2X2 matrix of float)\r
+0:?       4.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       4.000000\r
+0:?     's' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
+0:?     'sn' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
+0:?     'se' (uniform structure)\r
+0:?       82 (const int)\r
+0:?       3.900000\r
 0:?     'd' (4-component vector of float)\r
 0:?     'e' (4-component vector of float)\r
 0:?     'f' (4-component vector of float)\r
index 3e839fb..4ee071d 100644 (file)
@@ -8,101 +8,128 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas
 0:41        'locals2' (structure)\r
 0:41        s2_1: direct index for structure (structure)\r
 0:41          'foo3' (uniform structure)\r
-0:41          0 (const int)\r
+0:41          Constant:\r
+0:41            0 (const int)\r
 0:43      Test condition and select (void)\r
 0:43        Condition\r
 0:43        Compare Greater Than (bool)\r
 0:43          i: direct index for structure (int)\r
 0:43            s2_1: direct index for structure (structure)\r
 0:43              'foo3' (uniform structure)\r
+0:43              Constant:\r
+0:43                0 (const int)\r
+0:43            Constant:\r
 0:43              0 (const int)\r
+0:43          Constant:\r
 0:43            0 (const int)\r
-0:43          0 (const int)\r
 0:43        true case\r
 0:44        Sequence\r
 0:44          move second child to first child (float)\r
 0:44            f: direct index for structure (float)\r
 0:44              s1_1: direct index for structure (structure)\r
 0:44                'locals2' (structure)\r
-0:44                2 (const int)\r
-0:44              1 (const int)\r
-0:44            1.000000\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
+0:44              Constant:\r
+0:44                1 (const int)\r
+0:44            Constant:\r
+0:44              1.000000\r
 0:45          move second child to first child (float)\r
 0:45            direct index (float)\r
 0:45              'localFArray' (16-element array of float)\r
-0:45              4 (const int)\r
+0:45              Constant:\r
+0:45                4 (const int)\r
 0:45            direct index (float)\r
 0:45              'coord' (smooth in 2-component vector of float)\r
-0:45              0 (const int)\r
+0:45              Constant:\r
+0:45                0 (const int)\r
 0:46          move second child to first child (int)\r
 0:46            direct index (int)\r
 0:46              'localIArray' (8-element array of int)\r
-0:46              2 (const int)\r
+0:46              Constant:\r
+0:46                2 (const int)\r
 0:46            i: direct index for structure (int)\r
 0:46              s2_1: direct index for structure (structure)\r
 0:46                'foo3' (uniform structure)\r
+0:46                Constant:\r
+0:46                  0 (const int)\r
+0:46              Constant:\r
 0:46                0 (const int)\r
-0:46              0 (const int)\r
 0:43        false case\r
 0:48        Sequence\r
 0:48          move second child to first child (float)\r
 0:48            f: direct index for structure (float)\r
 0:48              s1_1: direct index for structure (structure)\r
 0:48                'locals2' (structure)\r
-0:48                2 (const int)\r
-0:48              1 (const int)\r
+0:48                Constant:\r
+0:48                  2 (const int)\r
+0:48              Constant:\r
+0:48                1 (const int)\r
 0:48            direct index (float)\r
 0:48              'coord' (smooth in 2-component vector of float)\r
-0:48              0 (const int)\r
+0:48              Constant:\r
+0:48                0 (const int)\r
 0:49          move second child to first child (float)\r
 0:49            direct index (float)\r
 0:49              'localFArray' (16-element array of float)\r
-0:49              4 (const int)\r
-0:49            1.000000\r
+0:49              Constant:\r
+0:49                4 (const int)\r
+0:49            Constant:\r
+0:49              1.000000\r
 0:50          move second child to first child (int)\r
 0:50            direct index (int)\r
 0:50              'localIArray' (8-element array of int)\r
-0:50              2 (const int)\r
-0:50            0 (const int)\r
+0:50              Constant:\r
+0:50                2 (const int)\r
+0:50            Constant:\r
+0:50              0 (const int)\r
 0:53      Test condition and select (void)\r
 0:53        Condition\r
 0:53        Compare Equal (bool)\r
 0:53          direct index (int)\r
 0:53            'localIArray' (8-element array of int)\r
-0:53            2 (const int)\r
-0:53          0 (const int)\r
+0:53            Constant:\r
+0:53              2 (const int)\r
+0:53          Constant:\r
+0:53            0 (const int)\r
 0:53        true case\r
 0:54        Pre-Increment (float)\r
 0:54          direct index (float)\r
 0:54            'localFArray' (16-element array of float)\r
-0:54            4 (const int)\r
+0:54            Constant:\r
+0:54              4 (const int)\r
 0:57      Sequence\r
 0:57        move second child to first child (int)\r
 0:57          'x' (int)\r
-0:57          5 (const int)\r
+0:57          Constant:\r
+0:57            5 (const int)\r
 0:58      move second child to first child (float)\r
 0:58        indirect index (float)\r
 0:58          'localArray' (16-element array of float)\r
 0:58          'x' (int)\r
 0:58        direct index (float)\r
 0:58          'coord' (smooth in 2-component vector of float)\r
-0:58          0 (const int)\r
+0:58          Constant:\r
+0:58            0 (const int)\r
 0:62      Sequence\r
 0:62        Sequence\r
 0:62          move second child to first child (int)\r
 0:62            'i' (int)\r
-0:62            0 (const int)\r
+0:62            Constant:\r
+0:62              0 (const int)\r
 0:62        Loop with condition tested first\r
 0:62          Loop Condition\r
 0:62          Compare Less Than (bool)\r
 0:62            'i' (int)\r
-0:62            16 (const int)\r
+0:62            Constant:\r
+0:62              16 (const int)\r
 0:62          Loop Body\r
 0:63          move second child to first child (float)\r
 0:63            indirect index (float)\r
 0:63              'a' (16-element array of float)\r
 0:63              'i' (int)\r
-0:63            0.000000\r
+0:63            Constant:\r
+0:63              0.000000\r
 0:62          Loop Terminal Expression\r
 0:62          Post-Increment (int)\r
 0:62            'i' (int)\r
@@ -110,7 +137,8 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas
 0:65        Condition\r
 0:65        Compare Equal (bool)\r
 0:65          'condition' (uniform int)\r
-0:65          1 (const int)\r
+0:65          Constant:\r
+0:65            1 (const int)\r
 0:65        true case\r
 0:66        move second child to first child (16-element array of float)\r
 0:66          'a' (16-element array of float)\r
@@ -118,35 +146,43 @@ WARNING: 0:5: varying deprecated in version 130; may be removed in future releas
 0:68      move second child to first child (4-component vector of float)\r
 0:68        bleh: direct index for structure (4-component vector of float)\r
 0:68          'locals2' (structure)\r
-0:68          3 (const int)\r
+0:68          Constant:\r
+0:68            3 (const int)\r
 0:68        'color' (smooth in 4-component vector of float)\r
 0:69      move second child to first child (float)\r
 0:69        direct index (float)\r
 0:69          bleh: direct index for structure (4-component vector of float)\r
 0:69            'locals2' (structure)\r
-0:69            3 (const int)\r
-0:69          2 (const int)\r
+0:69            Constant:\r
+0:69              3 (const int)\r
+0:69          Constant:\r
+0:69            2 (const int)\r
 0:69        direct index (float)\r
 0:69          'coord' (smooth in 2-component vector of float)\r
-0:69          1 (const int)\r
+0:69          Constant:\r
+0:69            1 (const int)\r
 0:71      move second child to first child (4-component vector of float)\r
 0:71        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:71        component-wise multiply (4-component vector of float)\r
 0:71          vector-scale (4-component vector of float)\r
 0:71            bleh: direct index for structure (4-component vector of float)\r
 0:71              'locals2' (structure)\r
-0:71              3 (const int)\r
+0:71              Constant:\r
+0:71                3 (const int)\r
 0:71            add (float)\r
 0:71              add (float)\r
 0:71                add (float)\r
 0:71                  direct index (float)\r
 0:71                    'localFArray' (16-element array of float)\r
-0:71                    4 (const int)\r
+0:71                    Constant:\r
+0:71                      4 (const int)\r
 0:71                  f: direct index for structure (float)\r
 0:71                    s1_1: direct index for structure (structure)\r
 0:71                      'locals2' (structure)\r
-0:71                      2 (const int)\r
-0:71                    1 (const int)\r
+0:71                      Constant:\r
+0:71                        2 (const int)\r
+0:71                    Constant:\r
+0:71                      1 (const int)\r
 0:71                indirect index (float)\r
 0:71                  'localArray' (16-element array of float)\r
 0:71                  'x' (int)\r
index 0cc1c9a..3937067 100644 (file)
@@ -9,7 +9,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:55          'BaseColor' (smooth in 4-component vector of float)\r
 0:58      Loop with condition tested first\r
 0:58        Loop Condition\r
-0:58        true (const bool)\r
+0:58        Constant:\r
+0:58          true (const bool)\r
 0:58        Loop Body\r
 0:59        Sequence\r
 0:59          Test condition and select (void)\r
@@ -17,46 +18,54 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:59            Compare Less Than (bool)\r
 0:59              direct index (float)\r
 0:59                'color' (4-component vector of float)\r
-0:59                0 (const int)\r
-0:59              0.330000\r
+0:59                Constant:\r
+0:59                  0 (const int)\r
+0:59              Constant:\r
+0:59                0.330000\r
 0:59            true case\r
 0:60            Sequence\r
 0:60              add second child into first child (4-component vector of float)\r
 0:60                'color' (4-component vector of float)\r
-0:60                0.330000\r
-0:60                0.330000\r
-0:60                0.330000\r
-0:60                0.330000\r
+0:60                Constant:\r
+0:60                  0.330000\r
+0:60                  0.330000\r
+0:60                  0.330000\r
+0:60                  0.330000\r
 0:61              Branch: Break\r
 0:63          Test condition and select (void)\r
 0:63            Condition\r
 0:63            Compare Less Than (bool)\r
 0:63              direct index (float)\r
 0:63                'color' (4-component vector of float)\r
-0:63                0 (const int)\r
-0:63              0.660000\r
+0:63                Constant:\r
+0:63                  0 (const int)\r
+0:63              Constant:\r
+0:63                0.660000\r
 0:63            true case\r
 0:64            Sequence\r
 0:64              add second child into first child (4-component vector of float)\r
 0:64                'color' (4-component vector of float)\r
-0:64                0.660000\r
-0:64                0.660000\r
-0:64                0.660000\r
-0:64                0.660000\r
+0:64                Constant:\r
+0:64                  0.660000\r
+0:64                  0.660000\r
+0:64                  0.660000\r
+0:64                  0.660000\r
 0:65              Branch: Break\r
 0:68          add second child into first child (4-component vector of float)\r
 0:68            'color' (4-component vector of float)\r
-0:68            0.330000\r
-0:68            0.330000\r
-0:68            0.330000\r
-0:68            0.330000\r
+0:68            Constant:\r
+0:68              0.330000\r
+0:68              0.330000\r
+0:68              0.330000\r
+0:68              0.330000\r
 0:69          Branch: Break\r
 0:73      Loop with condition tested first\r
 0:73        Loop Condition\r
 0:73        Compare Less Than (bool)\r
 0:73          direct index (float)\r
 0:73            'color' (4-component vector of float)\r
-0:73            0 (const int)\r
+0:73            Constant:\r
+0:73              0 (const int)\r
 0:73          'd' (uniform float)\r
 0:73        Loop Body\r
 0:74        Sequence\r
@@ -68,7 +77,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:78        Compare Less Than (bool)\r
 0:78          direct index (float)\r
 0:78            'color' (4-component vector of float)\r
-0:78            2 (const int)\r
+0:78            Constant:\r
+0:78              2 (const int)\r
 0:78          'd' (uniform float)\r
 0:78        Loop Body\r
 0:79        Sequence\r
@@ -80,7 +90,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:80            Compare Less Than (bool)\r
 0:80              direct index (float)\r
 0:80                'color' (4-component vector of float)\r
-0:80                3 (const int)\r
+0:80                Constant:\r
+0:80                  3 (const int)\r
 0:80              'd' (uniform float)\r
 0:80            true case\r
 0:81            Branch: Continue\r
@@ -92,8 +103,10 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:87        Compare Less Than (bool)\r
 0:87          direct index (float)\r
 0:87            'color' (4-component vector of float)\r
-0:87            0 (const int)\r
-0:87          42.000000\r
+0:87            Constant:\r
+0:87              0 (const int)\r
+0:87          Constant:\r
+0:87            42.000000\r
 0:87        Loop Body\r
 0:88        Sequence\r
 0:88          Pre-Increment (4-component vector of float)\r
@@ -104,12 +117,14 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:92          Compare Less Than (bool)\r
 0:92            direct index (float)\r
 0:92              'color' (4-component vector of float)\r
-0:92              3 (const int)\r
+0:92              Constant:\r
+0:92                3 (const int)\r
 0:92            'd2' (uniform float)\r
 0:92          Compare Less Than (bool)\r
 0:92            direct index (float)\r
 0:92              'color' (4-component vector of float)\r
-0:92              1 (const int)\r
+0:92              Constant:\r
+0:92                1 (const int)\r
 0:92            'd3' (uniform float)\r
 0:92        Loop Body\r
 0:93        Sequence\r
@@ -121,7 +136,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:97        Compare Less Than (bool)\r
 0:97          direct index (float)\r
 0:97            'color' (4-component vector of float)\r
-0:97            2 (const int)\r
+0:97            Constant:\r
+0:97              2 (const int)\r
 0:97          'd3' (uniform float)\r
 0:97        Loop Body\r
 0:98        Sequence\r
@@ -133,7 +149,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:99            Compare Less Than (bool)\r
 0:99              direct index (float)\r
 0:99                'color' (4-component vector of float)\r
-0:99                1 (const int)\r
+0:99                Constant:\r
+0:99                  1 (const int)\r
 0:99              'd4' (uniform float)\r
 0:99            true case\r
 0:100            Branch: Break\r
@@ -144,7 +161,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:105        Sequence\r
 0:105          move second child to first child (int)\r
 0:105            'i' (int)\r
-0:105            0 (const int)\r
+0:105            Constant:\r
+0:105              0 (const int)\r
 0:105        Loop with condition tested first\r
 0:105          Loop Condition\r
 0:105          Compare Less Than (bool)\r
@@ -163,7 +181,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:112        Compare Less Than (bool)\r
 0:112          direct index (float)\r
 0:112            'color' (4-component vector of float)\r
-0:112            0 (const int)\r
+0:112            Constant:\r
+0:112              0 (const int)\r
 0:112          'd2' (uniform float)\r
 0:112        Loop Body\r
 0:111        Sequence\r
@@ -174,18 +193,21 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:115        Sequence\r
 0:115          move second child to first child (int)\r
 0:115            'i' (int)\r
-0:115            0 (const int)\r
+0:115            Constant:\r
+0:115              0 (const int)\r
 0:115        Loop with condition tested first\r
 0:115          Loop Condition\r
 0:115          Compare Less Than (bool)\r
 0:115            'i' (int)\r
-0:115            42 (const int)\r
+0:115            Constant:\r
+0:115              42 (const int)\r
 0:115          Loop Body\r
 0:116          Sequence\r
 0:116            add second child into first child (float)\r
 0:116              direct index (float)\r
 0:116                'color' (4-component vector of float)\r
-0:116                2 (const int)\r
+0:116                Constant:\r
+0:116                  2 (const int)\r
 0:116              'd3' (uniform float)\r
 0:115          Loop Terminal Expression\r
 0:115          Pre-Increment (int)\r
@@ -194,12 +216,14 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:120        Sequence\r
 0:120          move second child to first child (int)\r
 0:120            'i' (int)\r
-0:120            0 (const int)\r
+0:120            Constant:\r
+0:120              0 (const int)\r
 0:120        Loop with condition tested first\r
 0:120          Loop Condition\r
 0:120          Compare Less Than (bool)\r
 0:120            'i' (int)\r
-0:120            100 (const int)\r
+0:120            Constant:\r
+0:120              100 (const int)\r
 0:120          Loop Body\r
 0:121          Sequence\r
 0:121            Test condition and select (void)\r
@@ -207,37 +231,46 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:121              Compare Less Than (bool)\r
 0:121                direct index (float)\r
 0:121                  'color' (4-component vector of float)\r
-0:121                  2 (const int)\r
-0:121                20.000000\r
+0:121                  Constant:\r
+0:121                    2 (const int)\r
+0:121                Constant:\r
+0:121                  20.000000\r
 0:121              true case\r
 0:122              Post-Increment (float)\r
 0:122                direct index (float)\r
 0:122                  'color' (4-component vector of float)\r
-0:122                  0 (const int)\r
+0:122                  Constant:\r
+0:122                    0 (const int)\r
 0:121              false case\r
 0:124              Post-Increment (float)\r
 0:124                direct index (float)\r
 0:124                  'color' (4-component vector of float)\r
-0:124                  1 (const int)\r
+0:124                  Constant:\r
+0:124                    1 (const int)\r
 0:125            Test condition and select (void)\r
 0:125              Condition\r
 0:125              Compare Less Than (bool)\r
 0:125                direct index (float)\r
 0:125                  'color' (4-component vector of float)\r
-0:125                  3 (const int)\r
-0:125                20.000000\r
+0:125                  Constant:\r
+0:125                    3 (const int)\r
+0:125                Constant:\r
+0:125                  20.000000\r
 0:125              true case\r
 0:126              Test condition and select (void)\r
 0:126                Condition\r
 0:126                Compare Greater Than (bool)\r
 0:126                  direct index (float)\r
 0:126                    'color' (4-component vector of float)\r
-0:126                    2 (const int)\r
+0:126                    Constant:\r
+0:126                      2 (const int)\r
 0:126                  direct index (float)\r
 0:126                    'color' (4-component vector of float)\r
-0:126                    1 (const int)\r
+0:126                    Constant:\r
+0:126                      1 (const int)\r
 0:126                true case\r
-0:127                0 (const int)\r
+0:127                Constant:\r
+0:127                  0 (const int)\r
 0:120          Loop Terminal Expression\r
 0:120          Pre-Increment (int)\r
 0:120            'i' (int)\r
@@ -245,12 +278,14 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:131        Sequence\r
 0:131          move second child to first child (int)\r
 0:131            'i' (int)\r
-0:131            0 (const int)\r
+0:131            Constant:\r
+0:131              0 (const int)\r
 0:131        Loop with condition tested first\r
 0:131          Loop Condition\r
 0:131          Compare Less Than (bool)\r
 0:131            'i' (int)\r
-0:131            120 (const int)\r
+0:131            Constant:\r
+0:131              120 (const int)\r
 0:131          Loop Body\r
 0:132          Sequence\r
 0:132            Test condition and select (void)\r
@@ -258,18 +293,22 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:132              Compare Less Than (bool)\r
 0:132                direct index (float)\r
 0:132                  'color' (4-component vector of float)\r
-0:132                  2 (const int)\r
-0:132                20.000000\r
+0:132                  Constant:\r
+0:132                    2 (const int)\r
+0:132                Constant:\r
+0:132                  20.000000\r
 0:132              true case\r
 0:133              Post-Increment (float)\r
 0:133                direct index (float)\r
 0:133                  'color' (4-component vector of float)\r
-0:133                  0 (const int)\r
+0:133                  Constant:\r
+0:133                    0 (const int)\r
 0:132              false case\r
 0:135              Post-Increment (float)\r
 0:135                direct index (float)\r
 0:135                  'color' (4-component vector of float)\r
-0:135                  1 (const int)\r
+0:135                  Constant:\r
+0:135                    1 (const int)\r
 0:131          Loop Terminal Expression\r
 0:131          Pre-Increment (int)\r
 0:131            'i' (int)\r
@@ -277,32 +316,37 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:139        Sequence\r
 0:139          move second child to first child (int)\r
 0:139            'i' (int)\r
-0:139            0 (const int)\r
+0:139            Constant:\r
+0:139              0 (const int)\r
 0:139        Loop with condition tested first\r
 0:139          Loop Condition\r
 0:139          Compare Less Than (bool)\r
 0:139            'i' (int)\r
-0:139            42 (const int)\r
+0:139            Constant:\r
+0:139              42 (const int)\r
 0:139          Loop Body\r
 0:140          Sequence\r
 0:140            add second child into first child (float)\r
 0:140              direct index (float)\r
 0:140                'color' (4-component vector of float)\r
-0:140                2 (const int)\r
+0:140                Constant:\r
+0:140                  2 (const int)\r
 0:140              'd3' (uniform float)\r
 0:141            Test condition and select (void)\r
 0:141              Condition\r
 0:141              Compare Less Than (bool)\r
 0:141                direct index (float)\r
 0:141                  'color' (4-component vector of float)\r
-0:141                  0 (const int)\r
+0:141                  Constant:\r
+0:141                    0 (const int)\r
 0:141                'd4' (uniform float)\r
 0:141              true case\r
 0:142              Branch: Continue\r
 0:143            Pre-Increment (float)\r
 0:143              direct index (float)\r
 0:143                'color' (4-component vector of float)\r
-0:143                3 (const int)\r
+0:143                Constant:\r
+0:143                  3 (const int)\r
 0:139          Loop Terminal Expression\r
 0:139          Pre-Increment (int)\r
 0:139            'i' (int)\r
@@ -310,32 +354,37 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:147        Sequence\r
 0:147          move second child to first child (int)\r
 0:147            'i' (int)\r
-0:147            0 (const int)\r
+0:147            Constant:\r
+0:147              0 (const int)\r
 0:147        Loop with condition tested first\r
 0:147          Loop Condition\r
 0:147          Compare Less Than (bool)\r
 0:147            'i' (int)\r
-0:147            42 (const int)\r
+0:147            Constant:\r
+0:147              42 (const int)\r
 0:147          Loop Body\r
 0:148          Sequence\r
 0:148            add second child into first child (float)\r
 0:148              direct index (float)\r
 0:148                'color' (4-component vector of float)\r
-0:148                2 (const int)\r
+0:148                Constant:\r
+0:148                  2 (const int)\r
 0:148              'd3' (uniform float)\r
 0:149            Test condition and select (void)\r
 0:149              Condition\r
 0:149              Compare Less Than (bool)\r
 0:149                direct index (float)\r
 0:149                  'color' (4-component vector of float)\r
-0:149                  0 (const int)\r
+0:149                  Constant:\r
+0:149                    0 (const int)\r
 0:149                'd4' (uniform float)\r
 0:149              true case\r
 0:150              Branch: Break\r
 0:151            Pre-Increment (float)\r
 0:151              direct index (float)\r
 0:151                'color' (4-component vector of float)\r
-0:151                3 (const int)\r
+0:151                Constant:\r
+0:151                  3 (const int)\r
 0:147          Loop Terminal Expression\r
 0:147          Pre-Increment (int)\r
 0:147            'i' (int)\r
@@ -344,7 +393,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:163        Compare Less Than (bool)\r
 0:163          direct index (float)\r
 0:163            'color' (4-component vector of float)\r
-0:163            2 (const int)\r
+0:163            Constant:\r
+0:163              2 (const int)\r
 0:163          'd4' (uniform float)\r
 0:163        Loop Body\r
 0:156        Sequence\r
@@ -356,7 +406,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:157            Compare Less Than (bool)\r
 0:157              direct index (float)\r
 0:157                'color' (4-component vector of float)\r
-0:157                0 (const int)\r
+0:157                Constant:\r
+0:157                  0 (const int)\r
 0:157              'd4' (uniform float)\r
 0:157            true case\r
 0:158            Branch: Continue\r
@@ -365,26 +416,30 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:159            Compare Less Than (bool)\r
 0:159              direct index (float)\r
 0:159                'color' (4-component vector of float)\r
-0:159                1 (const int)\r
+0:159                Constant:\r
+0:159                  1 (const int)\r
 0:159              'd4' (uniform float)\r
 0:159            true case\r
 0:160            add second child into first child (float)\r
 0:160              direct index (float)\r
 0:160                'color' (4-component vector of float)\r
-0:160                1 (const int)\r
+0:160                Constant:\r
+0:160                  1 (const int)\r
 0:160              'd4' (uniform float)\r
 0:159            false case\r
 0:162            add second child into first child (float)\r
 0:162              direct index (float)\r
 0:162                'color' (4-component vector of float)\r
-0:162                0 (const int)\r
+0:162                Constant:\r
+0:162                  0 (const int)\r
 0:162              'd4' (uniform float)\r
 0:170      Loop with condition not tested first\r
 0:170        Loop Condition\r
 0:170        Compare Less Than (bool)\r
 0:170          direct index (float)\r
 0:170            'color' (4-component vector of float)\r
-0:170            0 (const int)\r
+0:170            Constant:\r
+0:170              0 (const int)\r
 0:170          'd5' (uniform float)\r
 0:170        Loop Body\r
 0:167        Sequence\r
@@ -396,20 +451,23 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:168            Compare Less Than (bool)\r
 0:168              direct index (float)\r
 0:168                'color' (4-component vector of float)\r
-0:168                1 (const int)\r
+0:168                Constant:\r
+0:168                  1 (const int)\r
 0:168              'd5' (uniform float)\r
 0:168            true case\r
 0:169            add second child into first child (float)\r
 0:169              direct index (float)\r
 0:169                'color' (4-component vector of float)\r
-0:169                1 (const int)\r
+0:169                Constant:\r
+0:169                  1 (const int)\r
 0:169              'd5' (uniform float)\r
 0:173      Test condition and select (void)\r
 0:173        Condition\r
 0:173        Compare Less Than (bool)\r
 0:173          direct index (float)\r
 0:173            'color' (4-component vector of float)\r
-0:173            0 (const int)\r
+0:173            Constant:\r
+0:173              0 (const int)\r
 0:173          'd6' (uniform float)\r
 0:173        true case\r
 0:174        Sequence\r
@@ -418,7 +476,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:174            Compare Less Than (bool)\r
 0:174              direct index (float)\r
 0:174                'color' (4-component vector of float)\r
-0:174                1 (const int)\r
+0:174                Constant:\r
+0:174                  1 (const int)\r
 0:174              'd6' (uniform float)\r
 0:174            Loop Body\r
 0:175            add second child into first child (4-component vector of float)\r
@@ -431,22 +490,26 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:177            Compare Less Than (bool)\r
 0:177              direct index (float)\r
 0:177                'color' (4-component vector of float)\r
-0:177                2 (const int)\r
+0:177                Constant:\r
+0:177                  2 (const int)\r
 0:177              'd6' (uniform float)\r
 0:177            Loop Body\r
 0:178            add second child into first child (float)\r
 0:178              direct index (float)\r
 0:178                'color' (4-component vector of float)\r
-0:178                2 (const int)\r
+0:178                Constant:\r
+0:178                  2 (const int)\r
 0:178              direct index (float)\r
 0:178                'bigColor6' (uniform 4-component vector of float)\r
-0:178                2 (const int)\r
+0:178                Constant:\r
+0:178                  2 (const int)\r
 0:182      Test condition and select (void)\r
 0:182        Condition\r
 0:182        Compare Less Than (bool)\r
 0:182          direct index (float)\r
 0:182            'color' (4-component vector of float)\r
-0:182            0 (const int)\r
+0:182            Constant:\r
+0:182              0 (const int)\r
 0:182          'd6' (uniform float)\r
 0:182        true case\r
 0:183        Sequence\r
@@ -455,7 +518,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:183            Compare Less Than (bool)\r
 0:183              direct index (float)\r
 0:183                'color' (4-component vector of float)\r
-0:183                1 (const int)\r
+0:183                Constant:\r
+0:183                  1 (const int)\r
 0:183              'd6' (uniform float)\r
 0:183            Loop Body\r
 0:184            Sequence\r
@@ -466,7 +530,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:185                Condition\r
 0:185                Compare Less Than (bool)\r
 0:185                  'd7' (uniform float)\r
-0:185                  1.000000\r
+0:185                  Constant:\r
+0:185                    1.000000\r
 0:185                true case\r
 0:186                Branch: Break\r
 0:182        false case\r
@@ -476,26 +541,31 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:190            Compare Less Than (bool)\r
 0:190              direct index (float)\r
 0:190                'color' (4-component vector of float)\r
-0:190                2 (const int)\r
+0:190                Constant:\r
+0:190                  2 (const int)\r
 0:190              'd6' (uniform float)\r
 0:190            Loop Body\r
 0:191            add second child into first child (float)\r
 0:191              direct index (float)\r
 0:191                'color' (4-component vector of float)\r
-0:191                2 (const int)\r
+0:191                Constant:\r
+0:191                  2 (const int)\r
 0:191              direct index (float)\r
 0:191                'bigColor6' (uniform 4-component vector of float)\r
-0:191                2 (const int)\r
+0:191                Constant:\r
+0:191                  2 (const int)\r
 0:209      Loop with condition not tested first\r
 0:209        Loop Condition\r
-0:209        true (const bool)\r
+0:209        Constant:\r
+0:209          true (const bool)\r
 0:209        Loop Body\r
 0:197        Sequence\r
 0:197          Test condition and select (void)\r
 0:197            Condition\r
 0:197            Compare Less Than (bool)\r
 0:197              'd7' (uniform float)\r
-0:197              0.000000\r
+0:197              Constant:\r
+0:197                0.000000\r
 0:197            true case\r
 0:198            Branch: Break\r
 0:200          add second child into first child (4-component vector of float)\r
@@ -505,13 +575,15 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:202            Condition\r
 0:202            Compare Less Than (bool)\r
 0:202              'd7' (uniform float)\r
-0:202              1.000000\r
+0:202              Constant:\r
+0:202                1.000000\r
 0:202            true case\r
 0:203            Sequence\r
 0:203              Post-Increment (float)\r
 0:203                direct index (float)\r
 0:203                  'color' (4-component vector of float)\r
-0:203                  2 (const int)\r
+0:203                  Constant:\r
+0:203                    2 (const int)\r
 0:204              Branch: Break\r
 0:207          add second child into first child (4-component vector of float)\r
 0:207            'color' (4-component vector of float)\r
@@ -521,7 +593,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:234        Compare Less Than (bool)\r
 0:234          direct index (float)\r
 0:234            'color' (4-component vector of float)\r
-0:234            2 (const int)\r
+0:234            Constant:\r
+0:234              2 (const int)\r
 0:234          'd8' (uniform float)\r
 0:234        Loop Body\r
 0:217        Sequence\r
@@ -529,7 +602,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:217            Condition\r
 0:217            Compare Less Than (bool)\r
 0:217              'd8' (uniform float)\r
-0:217              0.000000\r
+0:217              Constant:\r
+0:217                0.000000\r
 0:217            true case\r
 0:218            Branch: Break\r
 0:220          add second child into first child (4-component vector of float)\r
@@ -539,30 +613,35 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:222            Condition\r
 0:222            Compare Less Than (bool)\r
 0:222              'd8' (uniform float)\r
-0:222              1.000000\r
+0:222              Constant:\r
+0:222                1.000000\r
 0:222            true case\r
 0:223            Sequence\r
 0:223              Post-Increment (float)\r
 0:223                direct index (float)\r
 0:223                  'color' (4-component vector of float)\r
-0:223                  2 (const int)\r
+0:223                  Constant:\r
+0:223                    2 (const int)\r
 0:224              Test condition and select (void)\r
 0:224                Condition\r
 0:224                Compare Less Than (bool)\r
 0:224                  'd8' (uniform float)\r
-0:224                  2.000000\r
+0:224                  Constant:\r
+0:224                    2.000000\r
 0:224                true case\r
 0:225                Sequence\r
 0:225                  Post-Increment (float)\r
 0:225                    direct index (float)\r
 0:225                      'color' (4-component vector of float)\r
-0:225                      1 (const int)\r
+0:225                      Constant:\r
+0:225                        1 (const int)\r
 0:224                false case\r
 0:227                Sequence\r
 0:227                  Post-Increment (float)\r
 0:227                    direct index (float)\r
 0:227                      'color' (4-component vector of float)\r
-0:227                      0 (const int)\r
+0:227                      Constant:\r
+0:227                        0 (const int)\r
 0:229              Branch: Break\r
 0:232          add second child into first child (4-component vector of float)\r
 0:232            'color' (4-component vector of float)\r
@@ -572,7 +651,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:237        Compare Less Than (bool)\r
 0:237          direct index (float)\r
 0:237            'color' (4-component vector of float)\r
-0:237            3 (const int)\r
+0:237            Constant:\r
+0:237              3 (const int)\r
 0:237          'd9' (uniform float)\r
 0:237        Loop Body\r
 0:238        Sequence\r
@@ -588,7 +668,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:239                Compare Less Than or Equal (bool)\r
 0:239                  direct index (float)\r
 0:239                    'color' (4-component vector of float)\r
-0:239                    0 (const int)\r
+0:239                    Constant:\r
+0:239                      0 (const int)\r
 0:239                  'd7' (uniform float)\r
 0:239                true case\r
 0:240                Sequence\r
@@ -597,13 +678,16 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:240                    Compare Equal (bool)\r
 0:240                      direct index (float)\r
 0:240                        'color' (4-component vector of float)\r
-0:240                        2 (const int)\r
-0:240                      5.000000\r
+0:240                        Constant:\r
+0:240                          2 (const int)\r
+0:240                      Constant:\r
+0:240                        5.000000\r
 0:240                    true case\r
 0:241                    Post-Increment (float)\r
 0:241                      direct index (float)\r
 0:241                        'color' (4-component vector of float)\r
-0:241                        3 (const int)\r
+0:241                        Constant:\r
+0:241                          3 (const int)\r
 0:240                    false case\r
 0:243                    Branch: Break\r
 0:250      Loop with condition tested first\r
@@ -611,44 +695,51 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:250        Compare Less Than (bool)\r
 0:250          direct index (float)\r
 0:250            'color' (4-component vector of float)\r
-0:250            2 (const int)\r
+0:250            Constant:\r
+0:250              2 (const int)\r
 0:250          'd10' (uniform float)\r
 0:250        Loop Body\r
 0:251        Sequence\r
 0:251          Post-Increment (float)\r
 0:251            direct index (float)\r
 0:251              'color' (4-component vector of float)\r
-0:251              1 (const int)\r
+0:251              Constant:\r
+0:251                1 (const int)\r
 0:252          Test condition and select (void)\r
 0:252            Condition\r
 0:252            Compare Less Than (bool)\r
 0:252              direct index (float)\r
 0:252                'color' (4-component vector of float)\r
-0:252                1 (const int)\r
+0:252                Constant:\r
+0:252                  1 (const int)\r
 0:252              'd11' (uniform float)\r
 0:252            true case\r
 0:253            Sequence\r
 0:253              Post-Increment (float)\r
 0:253                direct index (float)\r
 0:253                  'color' (4-component vector of float)\r
-0:253                  2 (const int)\r
+0:253                  Constant:\r
+0:253                    2 (const int)\r
 0:254              Test condition and select (void)\r
 0:254                Condition\r
 0:254                Compare Less Than (bool)\r
 0:254                  direct index (float)\r
 0:254                    'color' (4-component vector of float)\r
-0:254                    3 (const int)\r
+0:254                    Constant:\r
+0:254                      3 (const int)\r
 0:254                  'd12' (uniform float)\r
 0:254                true case\r
 0:255                Post-Increment (float)\r
 0:255                  direct index (float)\r
 0:255                    'color' (4-component vector of float)\r
-0:255                    3 (const int)\r
+0:255                    Constant:\r
+0:255                      3 (const int)\r
 0:254                false case\r
 0:257                Post-Increment (float)\r
 0:257                  direct index (float)\r
 0:257                    'color' (4-component vector of float)\r
-0:257                    0 (const int)\r
+0:257                    Constant:\r
+0:257                      0 (const int)\r
 0:258              Branch: Continue\r
 0:261          Post-Increment (4-component vector of float)\r
 0:261            'color' (4-component vector of float)\r
@@ -658,8 +749,10 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:266        Compare Less Than (bool)\r
 0:266          direct index (float)\r
 0:266            'color' (4-component vector of float)\r
-0:266            0 (const int)\r
-0:266          10.000000\r
+0:266            Constant:\r
+0:266              0 (const int)\r
+0:266          Constant:\r
+0:266            10.000000\r
 0:266        Loop Body\r
 0:267        Sequence\r
 0:267          add second child into first child (4-component vector of float)\r
@@ -670,7 +763,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:269            Compare Less Than (bool)\r
 0:269              direct index (float)\r
 0:269                'color' (4-component vector of float)\r
-0:269                2 (const int)\r
+0:269                Constant:\r
+0:269                  2 (const int)\r
 0:269              'd8' (uniform float)\r
 0:269            true case\r
 0:270            Test condition and select (void)\r
@@ -678,17 +772,20 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:270              Compare Less Than (bool)\r
 0:270                direct index (float)\r
 0:270                  'color' (4-component vector of float)\r
-0:270                  3 (const int)\r
+0:270                  Constant:\r
+0:270                    3 (const int)\r
 0:270                'd6' (uniform float)\r
 0:270              true case\r
 0:271              Branch: Continue\r
 0:273          add second child into first child (float)\r
 0:273            direct index (float)\r
 0:273              'color' (4-component vector of float)\r
-0:273              1 (const int)\r
+0:273              Constant:\r
+0:273                1 (const int)\r
 0:273            direct index (float)\r
 0:273              'bigColor8' (uniform 4-component vector of float)\r
-0:273              0 (const int)\r
+0:273              Constant:\r
+0:273                0 (const int)\r
 0:276      Post-Increment (4-component vector of float)\r
 0:276        'color' (4-component vector of float)\r
 0:277      move second child to first child (4-component vector of float)\r
@@ -699,7 +796,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:280        Compare Less Than (bool)\r
 0:280          direct index (float)\r
 0:280            'color' (4-component vector of float)\r
-0:280            0 (const int)\r
+0:280            Constant:\r
+0:280              0 (const int)\r
 0:280          'd14' (uniform float)\r
 0:280        Loop Body\r
 0:281        Sequence\r
@@ -708,7 +806,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:281            Compare Less Than (bool)\r
 0:281              direct index (float)\r
 0:281                'color' (4-component vector of float)\r
-0:281                1 (const int)\r
+0:281                Constant:\r
+0:281                  1 (const int)\r
 0:281              'd15' (uniform float)\r
 0:281            true case\r
 0:282            Sequence\r
@@ -723,26 +822,30 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:290        Compare Less Than (bool)\r
 0:290          direct index (float)\r
 0:290            'color' (4-component vector of float)\r
-0:290            3 (const int)\r
+0:290            Constant:\r
+0:290              3 (const int)\r
 0:290          'd16' (uniform float)\r
 0:290        Loop Body\r
 0:291        Sequence\r
 0:291          Post-Increment (float)\r
 0:291            direct index (float)\r
 0:291              'color' (4-component vector of float)\r
-0:291              3 (const int)\r
+0:291              Constant:\r
+0:291                3 (const int)\r
 0:296      Loop with condition tested first\r
 0:296        Loop Condition\r
 0:296        logical-and (bool)\r
 0:296          Compare Less Than (bool)\r
 0:296            direct index (float)\r
 0:296              'color' (4-component vector of float)\r
-0:296              3 (const int)\r
+0:296              Constant:\r
+0:296                3 (const int)\r
 0:296            'd2' (uniform float)\r
 0:296          Compare Less Than (bool)\r
 0:296            direct index (float)\r
 0:296              'color' (4-component vector of float)\r
-0:296              1 (const int)\r
+0:296              Constant:\r
+0:296                1 (const int)\r
 0:296            'd3' (uniform float)\r
 0:296        Loop Body\r
 0:297        Sequence\r
@@ -754,7 +857,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:298            Compare Less Than (bool)\r
 0:298              direct index (float)\r
 0:298                'color' (4-component vector of float)\r
-0:298                2 (const int)\r
+0:298                Constant:\r
+0:298                  2 (const int)\r
 0:298              'd3' (uniform float)\r
 0:298            true case\r
 0:299            Branch: Return\r
@@ -763,7 +867,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:307        Compare Less Than (bool)\r
 0:307          direct index (float)\r
 0:307            'color' (4-component vector of float)\r
-0:307            0 (const int)\r
+0:307            Constant:\r
+0:307              0 (const int)\r
 0:307          'd17' (uniform float)\r
 0:307        Loop Body\r
 0:304        Sequence\r
@@ -772,7 +877,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:304            Compare Less Than (bool)\r
 0:304              direct index (float)\r
 0:304                'color' (4-component vector of float)\r
-0:304                1 (const int)\r
+0:304                Constant:\r
+0:304                  1 (const int)\r
 0:304              'd18' (uniform float)\r
 0:304            true case\r
 0:305            Branch: Return\r
@@ -783,7 +889,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:310        Compare Less Than (bool)\r
 0:310          direct index (float)\r
 0:310            'color' (4-component vector of float)\r
-0:310            1 (const int)\r
+0:310            Constant:\r
+0:310              1 (const int)\r
 0:310          'd16' (uniform float)\r
 0:310        Loop Body\r
 0:311        Sequence\r
@@ -792,7 +899,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:311            Compare Less Than (bool)\r
 0:311              direct index (float)\r
 0:311                'color' (4-component vector of float)\r
-0:311                3 (const int)\r
+0:311                Constant:\r
+0:311                  3 (const int)\r
 0:311              'd16' (uniform float)\r
 0:311            true case\r
 0:312            Sequence\r
index 5681ac4..d63d8ed 100644 (file)
@@ -12,7 +12,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:71        Compare Less Than (bool)\r
 0:71          direct index (float)\r
 0:71            'color' (4-component vector of float)\r
-0:71            2 (const int)\r
+0:71            Constant:\r
+0:71              2 (const int)\r
 0:71          'd4' (uniform float)\r
 0:71        Loop Body\r
 0:59        Sequence\r
@@ -24,54 +25,63 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:60            Compare Less Than (bool)\r
 0:60              direct index (float)\r
 0:60                'color' (4-component vector of float)\r
-0:60                0 (const int)\r
+0:60                Constant:\r
+0:60                  0 (const int)\r
 0:60              'd4' (uniform float)\r
 0:60            true case\r
 0:61            Sequence\r
 0:61              add second child into first child (float)\r
 0:61                direct index (float)\r
 0:61                  'color' (4-component vector of float)\r
-0:61                  2 (const int)\r
-0:61                2.000000\r
+0:61                  Constant:\r
+0:61                    2 (const int)\r
+0:61                Constant:\r
+0:61                  2.000000\r
 0:62              Test condition and select (void)\r
 0:62                Condition\r
 0:62                Compare Less Than (bool)\r
 0:62                  direct index (float)\r
 0:62                    'color' (4-component vector of float)\r
-0:62                    2 (const int)\r
+0:62                    Constant:\r
+0:62                      2 (const int)\r
 0:62                  'd4' (uniform float)\r
 0:62                true case\r
 0:63                Sequence\r
 0:63                  Post-Increment (float)\r
 0:63                    direct index (float)\r
 0:63                      'color' (4-component vector of float)\r
-0:63                      0 (const int)\r
+0:63                      Constant:\r
+0:63                        0 (const int)\r
 0:64                  Branch: Continue\r
 0:67          Test condition and select (void)\r
 0:67            Condition\r
 0:67            Compare Less Than (bool)\r
 0:67              direct index (float)\r
 0:67                'color' (4-component vector of float)\r
-0:67                1 (const int)\r
+0:67                Constant:\r
+0:67                  1 (const int)\r
 0:67              'd4' (uniform float)\r
 0:67            true case\r
 0:68            add second child into first child (float)\r
 0:68              direct index (float)\r
 0:68                'color' (4-component vector of float)\r
-0:68                1 (const int)\r
+0:68                Constant:\r
+0:68                  1 (const int)\r
 0:68              'd4' (uniform float)\r
 0:67            false case\r
 0:70            add second child into first child (float)\r
 0:70              direct index (float)\r
 0:70                'color' (4-component vector of float)\r
-0:70                0 (const int)\r
+0:70                Constant:\r
+0:70                  0 (const int)\r
 0:70              'd4' (uniform float)\r
 0:74      Loop with condition tested first\r
 0:74        Loop Condition\r
 0:74        Compare Less Than (bool)\r
 0:74          direct index (float)\r
 0:74            'color' (4-component vector of float)\r
-0:74            3 (const int)\r
+0:74            Constant:\r
+0:74              3 (const int)\r
 0:74          'd13' (uniform float)\r
 0:74        Loop Body\r
 0:75        Sequence\r
@@ -80,7 +90,8 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:75            Compare Less Than (bool)\r
 0:75              direct index (float)\r
 0:75                'color' (4-component vector of float)\r
-0:75                2 (const int)\r
+0:75                Constant:\r
+0:75                  2 (const int)\r
 0:75              'd13' (uniform float)\r
 0:75            true case\r
 0:76            Post-Increment (4-component vector of float)\r
@@ -96,47 +107,55 @@ WARNING: 0:14: varying deprecated in version 130; may be removed in future relea
 0:81            Compare Less Than (bool)\r
 0:81              direct index (float)\r
 0:81                'color' (4-component vector of float)\r
-0:81                0 (const int)\r
+0:81                Constant:\r
+0:81                  0 (const int)\r
 0:81              'd4' (uniform float)\r
 0:81            true case\r
 0:82            Sequence\r
 0:82              add second child into first child (float)\r
 0:82                direct index (float)\r
 0:82                  'color' (4-component vector of float)\r
-0:82                  2 (const int)\r
-0:82                2.000000\r
+0:82                  Constant:\r
+0:82                    2 (const int)\r
+0:82                Constant:\r
+0:82                  2.000000\r
 0:83              Test condition and select (void)\r
 0:83                Condition\r
 0:83                Compare Less Than (bool)\r
 0:83                  direct index (float)\r
 0:83                    'color' (4-component vector of float)\r
-0:83                    2 (const int)\r
+0:83                    Constant:\r
+0:83                      2 (const int)\r
 0:83                  'd4' (uniform float)\r
 0:83                true case\r
 0:84                Sequence\r
 0:84                  Post-Increment (float)\r
 0:84                    direct index (float)\r
 0:84                      'color' (4-component vector of float)\r
-0:84                      0 (const int)\r
+0:84                      Constant:\r
+0:84                        0 (const int)\r
 0:85                  Branch: Continue\r
 0:88          Test condition and select (void)\r
 0:88            Condition\r
 0:88            Compare Less Than (bool)\r
 0:88              direct index (float)\r
 0:88                'color' (4-component vector of float)\r
-0:88                1 (const int)\r
+0:88                Constant:\r
+0:88                  1 (const int)\r
 0:88              'd4' (uniform float)\r
 0:88            true case\r
 0:89            add second child into first child (float)\r
 0:89              direct index (float)\r
 0:89                'color' (4-component vector of float)\r
-0:89                1 (const int)\r
+0:89                Constant:\r
+0:89                  1 (const int)\r
 0:89              'd4' (uniform float)\r
 0:88            false case\r
 0:91            add second child into first child (float)\r
 0:91              direct index (float)\r
 0:91                'color' (4-component vector of float)\r
-0:91                0 (const int)\r
+0:91                Constant:\r
+0:91                  0 (const int)\r
 0:91              'd4' (uniform float)\r
 0:94      Post-Increment (4-component vector of float)\r
 0:94        'color' (4-component vector of float)\r
index 2c28b78..1f5914d 100644 (file)
@@ -10,14 +10,16 @@ WARNING: 0:22: varying deprecated in version 130; may be removed in future relea
 0:27        Construct vec4 (4-component vector of float)\r
 0:27          direct index (uniform 4-component vector of float)\r
 0:27            'un34' (uniform 4X4 matrix of float)\r
-0:27            1 (const int)\r
+0:27            Constant:\r
+0:27              1 (const int)\r
 0:28      add second child into first child (4-component vector of float)\r
 0:28        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:28        Construct vec4 (4-component vector of float)\r
 0:28          vector-times-matrix (3-component vector of float)\r
 0:28            'Color' (smooth in 3-component vector of float)\r
 0:28            'colorTransform' (uniform 3X3 matrix of float)\r
-0:28          1.000000\r
+0:28          Constant:\r
+0:28            1.000000\r
 0:30      Test condition and select (void)\r
 0:30        Condition\r
 0:30        Compare Not Equal (bool)\r
@@ -48,139 +50,176 @@ WARNING: 0:22: varying deprecated in version 130; may be removed in future relea
 0:42            component-wise multiply (float)\r
 0:42              direct index (float)\r
 0:42                'v' (smooth in 4-component vector of float)\r
-0:42                0 (const int)\r
+0:42                Constant:\r
+0:42                  0 (const int)\r
 0:42              direct index (float)\r
 0:42                'u' (smooth in 4-component vector of float)\r
-0:42                0 (const int)\r
+0:42                Constant:\r
+0:42                  0 (const int)\r
 0:42            component-wise multiply (float)\r
 0:42              direct index (float)\r
 0:42                'v' (smooth in 4-component vector of float)\r
-0:42                0 (const int)\r
+0:42                Constant:\r
+0:42                  0 (const int)\r
 0:42              direct index (float)\r
 0:42                'u' (smooth in 4-component vector of float)\r
-0:42                1 (const int)\r
+0:42                Constant:\r
+0:42                  1 (const int)\r
 0:42            component-wise multiply (float)\r
 0:42              direct index (float)\r
 0:42                'v' (smooth in 4-component vector of float)\r
-0:42                0 (const int)\r
+0:42                Constant:\r
+0:42                  0 (const int)\r
 0:42              direct index (float)\r
 0:42                'u' (smooth in 4-component vector of float)\r
-0:42                2 (const int)\r
+0:42                Constant:\r
+0:42                  2 (const int)\r
 0:42            component-wise multiply (float)\r
 0:42              direct index (float)\r
 0:42                'v' (smooth in 4-component vector of float)\r
-0:42                0 (const int)\r
+0:42                Constant:\r
+0:42                  0 (const int)\r
 0:42              direct index (float)\r
 0:42                'u' (smooth in 4-component vector of float)\r
-0:42                3 (const int)\r
+0:42                Constant:\r
+0:42                  3 (const int)\r
 0:43            component-wise multiply (float)\r
 0:43              direct index (float)\r
 0:43                'v' (smooth in 4-component vector of float)\r
-0:43                1 (const int)\r
+0:43                Constant:\r
+0:43                  1 (const int)\r
 0:43              direct index (float)\r
 0:43                'u' (smooth in 4-component vector of float)\r
-0:43                0 (const int)\r
+0:43                Constant:\r
+0:43                  0 (const int)\r
 0:43            component-wise multiply (float)\r
 0:43              direct index (float)\r
 0:43                'v' (smooth in 4-component vector of float)\r
-0:43                1 (const int)\r
+0:43                Constant:\r
+0:43                  1 (const int)\r
 0:43              direct index (float)\r
 0:43                'u' (smooth in 4-component vector of float)\r
-0:43                1 (const int)\r
+0:43                Constant:\r
+0:43                  1 (const int)\r
 0:43            component-wise multiply (float)\r
 0:43              direct index (float)\r
 0:43                'v' (smooth in 4-component vector of float)\r
-0:43                1 (const int)\r
+0:43                Constant:\r
+0:43                  1 (const int)\r
 0:43              direct index (float)\r
 0:43                'u' (smooth in 4-component vector of float)\r
-0:43                2 (const int)\r
+0:43                Constant:\r
+0:43                  2 (const int)\r
 0:43            component-wise multiply (float)\r
 0:43              direct index (float)\r
 0:43                'v' (smooth in 4-component vector of float)\r
-0:43                1 (const int)\r
+0:43                Constant:\r
+0:43                  1 (const int)\r
 0:43              direct index (float)\r
 0:43                'u' (smooth in 4-component vector of float)\r
-0:43                3 (const int)\r
+0:43                Constant:\r
+0:43                  3 (const int)\r
 0:44            component-wise multiply (float)\r
 0:44              direct index (float)\r
 0:44                'v' (smooth in 4-component vector of float)\r
-0:44                2 (const int)\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
 0:44              direct index (float)\r
 0:44                'u' (smooth in 4-component vector of float)\r
-0:44                0 (const int)\r
+0:44                Constant:\r
+0:44                  0 (const int)\r
 0:44            component-wise multiply (float)\r
 0:44              direct index (float)\r
 0:44                'v' (smooth in 4-component vector of float)\r
-0:44                2 (const int)\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
 0:44              direct index (float)\r
 0:44                'u' (smooth in 4-component vector of float)\r
-0:44                1 (const int)\r
+0:44                Constant:\r
+0:44                  1 (const int)\r
 0:44            component-wise multiply (float)\r
 0:44              direct index (float)\r
 0:44                'v' (smooth in 4-component vector of float)\r
-0:44                2 (const int)\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
 0:44              direct index (float)\r
 0:44                'u' (smooth in 4-component vector of float)\r
-0:44                2 (const int)\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
 0:44            component-wise multiply (float)\r
 0:44              direct index (float)\r
 0:44                'v' (smooth in 4-component vector of float)\r
-0:44                2 (const int)\r
+0:44                Constant:\r
+0:44                  2 (const int)\r
 0:44              direct index (float)\r
 0:44                'u' (smooth in 4-component vector of float)\r
-0:44                3 (const int)\r
+0:44                Constant:\r
+0:44                  3 (const int)\r
 0:45            component-wise multiply (float)\r
 0:45              direct index (float)\r
 0:45                'v' (smooth in 4-component vector of float)\r
-0:45                3 (const int)\r
+0:45                Constant:\r
+0:45                  3 (const int)\r
 0:45              direct index (float)\r
 0:45                'u' (smooth in 4-component vector of float)\r
-0:45                0 (const int)\r
+0:45                Constant:\r
+0:45                  0 (const int)\r
 0:45            component-wise multiply (float)\r
 0:45              direct index (float)\r
 0:45                'v' (smooth in 4-component vector of float)\r
-0:45                3 (const int)\r
+0:45                Constant:\r
+0:45                  3 (const int)\r
 0:45              direct index (float)\r
 0:45                'u' (smooth in 4-component vector of float)\r
-0:45                1 (const int)\r
+0:45                Constant:\r
+0:45                  1 (const int)\r
 0:45            component-wise multiply (float)\r
 0:45              direct index (float)\r
 0:45                'v' (smooth in 4-component vector of float)\r
-0:45                3 (const int)\r
+0:45                Constant:\r
+0:45                  3 (const int)\r
 0:45              direct index (float)\r
 0:45                'u' (smooth in 4-component vector of float)\r
-0:45                2 (const int)\r
+0:45                Constant:\r
+0:45                  2 (const int)\r
 0:45            component-wise multiply (float)\r
 0:45              direct index (float)\r
 0:45                'v' (smooth in 4-component vector of float)\r
-0:45                3 (const int)\r
+0:45                Constant:\r
+0:45                  3 (const int)\r
 0:45              direct index (float)\r
 0:45                'u' (smooth in 4-component vector of float)\r
-0:45                3 (const int)\r
+0:45                Constant:\r
+0:45                  3 (const int)\r
 0:46      add second child into first child (4X4 matrix of float)\r
 0:46        'm34' (4X4 matrix of float)\r
 0:46        Construct mat4 (4X4 matrix of float)\r
 0:46          direct index (float)\r
 0:46            'v' (smooth in 4-component vector of float)\r
-0:46            0 (const int)\r
+0:46            Constant:\r
+0:46              0 (const int)\r
 0:47      add second child into first child (4X4 matrix of float)\r
 0:47        'm34' (4X4 matrix of float)\r
 0:47        Construct mat4 (4X4 matrix of float)\r
 0:47          'u' (smooth in 4-component vector of float)\r
 0:47          direct index (float)\r
 0:47            'u' (smooth in 4-component vector of float)\r
-0:47            0 (const int)\r
+0:47            Constant:\r
+0:47              0 (const int)\r
 0:47          'u' (smooth in 4-component vector of float)\r
 0:47          direct index (float)\r
 0:47            'u' (smooth in 4-component vector of float)\r
-0:47            0 (const int)\r
+0:47            Constant:\r
+0:47              0 (const int)\r
 0:47          'u' (smooth in 4-component vector of float)\r
 0:47          direct index (float)\r
 0:47            'u' (smooth in 4-component vector of float)\r
-0:47            0 (const int)\r
+0:47            Constant:\r
+0:47              0 (const int)\r
 0:47          direct index (float)\r
 0:47            'u' (smooth in 4-component vector of float)\r
-0:47            0 (const int)\r
+0:47            Constant:\r
+0:47              0 (const int)\r
 0:51      Test condition and select (void)\r
 0:51        Condition\r
 0:51        Compare Equal (bool)\r
index 8bf9225..0111378 100644 (file)
@@ -13,35 +13,39 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:21            'u' (smooth in 3-component vector of float)\r
 0:23      add second child into first child (3X4 matrix of float)\r
 0:23        'm34' (3X4 matrix of float)\r
-0:23        4.300000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        4.300000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        0.000000\r
-0:23        4.300000\r
-0:23        0.000000\r
+0:23        Constant:\r
+0:23          4.300000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          4.300000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          0.000000\r
+0:23          4.300000\r
+0:23          0.000000\r
 0:25      move second child to first child (4-component vector of float)\r
 0:25        'FragColor' (out 4-component vector of float)\r
 0:25        Construct vec4 (4-component vector of float)\r
 0:25          'Color' (smooth in 3-component vector of float)\r
-0:25          1.000000\r
+0:25          Constant:\r
+0:25            1.000000\r
 0:26      multiply second child into first child (4-component vector of float)\r
 0:26        'FragColor' (out 4-component vector of float)\r
 0:26        Construct vec4 (4-component vector of float)\r
 0:26          vector-times-matrix (3-component vector of float)\r
 0:26            'FragColor' (out 4-component vector of float)\r
 0:26            'm34' (3X4 matrix of float)\r
-0:26          1.000000\r
+0:26          Constant:\r
+0:26            1.000000\r
 0:28      matrix scale second child into first child (3X4 matrix of float)\r
 0:28        'm34' (3X4 matrix of float)\r
 0:28        direct index (float)\r
 0:28          'v' (smooth in 4-component vector of float)\r
-0:28          0 (const int)\r
+0:28          Constant:\r
+0:28            0 (const int)\r
 0:30      Sequence\r
 0:30        move second child to first child (4X4 matrix of float)\r
 0:30          'm44' (4X4 matrix of float)\r
@@ -73,7 +77,8 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:39          vector-times-matrix (3-component vector of float)\r
 0:39            'FragColor' (out 4-component vector of float)\r
 0:39            'm34' (3X4 matrix of float)\r
-0:39          1.000000\r
+0:39          Constant:\r
+0:39            1.000000\r
 0:40      multiply second child into first child (4-component vector of float)\r
 0:40        'FragColor' (out 4-component vector of float)\r
 0:40        Construct vec4 (4-component vector of float)\r
@@ -90,23 +95,31 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:42          direct index (float)\r
 0:42            direct index (2-component vector of float)\r
 0:42              'inv' (2X2 matrix of float)\r
+0:42              Constant:\r
+0:42                0 (const int)\r
+0:42            Constant:\r
 0:42              0 (const int)\r
-0:42            0 (const int)\r
 0:42          direct index (float)\r
 0:42            direct index (2-component vector of float)\r
 0:42              'inv' (2X2 matrix of float)\r
-0:42              1 (const int)\r
-0:42            0 (const int)\r
+0:42              Constant:\r
+0:42                1 (const int)\r
+0:42            Constant:\r
+0:42              0 (const int)\r
 0:42          direct index (float)\r
 0:42            direct index (2-component vector of float)\r
 0:42              'inv' (2X2 matrix of float)\r
-0:42              0 (const int)\r
-0:42            1 (const int)\r
+0:42              Constant:\r
+0:42                0 (const int)\r
+0:42            Constant:\r
+0:42              1 (const int)\r
 0:42          direct index (float)\r
 0:42            direct index (2-component vector of float)\r
 0:42              'inv' (2X2 matrix of float)\r
+0:42              Constant:\r
+0:42                1 (const int)\r
+0:42            Constant:\r
 0:42              1 (const int)\r
-0:42            1 (const int)\r
 0:43      Sequence\r
 0:43        move second child to first child (3X3 matrix of float)\r
 0:43          'inv3' (3X3 matrix of float)\r
@@ -118,8 +131,10 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:44          direct index (float)\r
 0:44            direct index (3-component vector of float)\r
 0:44              'inv3' (3X3 matrix of float)\r
-0:44              2 (const int)\r
-0:44            1 (const int)\r
+0:44              Constant:\r
+0:44                2 (const int)\r
+0:44            Constant:\r
+0:44              1 (const int)\r
 0:46      Sequence\r
 0:46        move second child to first child (4X4 matrix of float)\r
 0:46          'inv4' (4X4 matrix of float)\r
index 0f014cf..4a6face 100644 (file)
@@ -25,8 +25,10 @@ ERROR: node is still EOpNull!
 0:21          direct index (float)\r
 0:21            direct index (4-component vector of float)\r
 0:21              'm24' (2X4 matrix of float)\r
-0:21              2 (const int)\r
-0:21            4 (const int)\r
+0:21              Constant:\r
+0:21                2 (const int)\r
+0:21            Constant:\r
+0:21              4 (const int)\r
 0:?   Linker Objects\r
 0:?     'v3' (in 3-component vector of float)\r
 0:?     'm32' (uniform 3X2 matrix of float)\r
index 8bb8a41..40613b1 100644 (file)
 0:38        Function Call: textureLod(sA21;vf3;f1; (4-component vector of float)\r
 0:38          's2DArray' (uniform sampler2DArray)\r
 0:38          'c3D' (smooth in 3-component vector of float)\r
-0:38          1.200000\r
+0:38          Constant:\r
+0:38            1.200000\r
 0:39      add second child into first child (float)\r
 0:39        direct index (float)\r
 0:39          'v' (4-component vector of float)\r
-0:39          1 (const int)\r
+0:39          Constant:\r
+0:39            1 (const int)\r
 0:39        Function Call: textureOffset(sS21;vf3;vi2;f1; (float)\r
 0:39          's2DShadow' (uniform sampler2DShadow)\r
 0:39          'c3D' (smooth in 3-component vector of float)\r
 0:41        Function Call: texelFetchOffset(s21;vi2;i1;vi2; (4-component vector of float)\r
 0:41          's2D' (uniform sampler2D)\r
 0:41          'ic2D' (flat in 2-component vector of int)\r
-0:41          4 (const int)\r
+0:41          Constant:\r
+0:41            4 (const int)\r
 0:41          'ic2D' (flat in 2-component vector of int)\r
 0:42      add second child into first child (float)\r
 0:42        direct index (float)\r
 0:42          'v' (4-component vector of float)\r
-0:42          1 (const int)\r
+0:42          Constant:\r
+0:42            1 (const int)\r
 0:42        Function Call: textureLodOffset(sS21;vf3;f1;vi2; (float)\r
 0:42          's2DShadow' (uniform sampler2DShadow)\r
 0:42          'c3D' (smooth in 3-component vector of float)\r
@@ -67,7 +71,8 @@
 0:45      add second child into first child (float)\r
 0:45        direct index (float)\r
 0:45          'v' (4-component vector of float)\r
-0:45          0 (const int)\r
+0:45          Constant:\r
+0:45            0 (const int)\r
 0:45        Function Call: textureGradOffset(sAS21;vf4;vf2;vf2;vi2; (float)\r
 0:45          's2DArrayShadow' (uniform sampler2DArrayShadow)\r
 0:45          'c4D' (smooth in 4-component vector of float)\r
 0:57        Function Call: texture(is31;vf3;f1; (4-component vector of int)\r
 0:57          'is3D' (uniform isampler3D)\r
 0:57          'c3D' (smooth in 3-component vector of float)\r
-0:57          4.200000\r
+0:57          Constant:\r
+0:57            4.200000\r
 0:58      add second child into first child (4-component vector of float)\r
 0:58        'v' (4-component vector of float)\r
 0:58        Convert int to float (4-component vector of float)\r
 0:64          'iv2' (2-component vector of int)\r
 0:64          Function Call: textureSize(sSC1;i1; (2-component vector of int)\r
 0:64            'sCubeShadow' (uniform samplerCubeShadow)\r
-0:64            2 (const int)\r
+0:64            Constant:\r
+0:64              2 (const int)\r
 0:67      move second child to first child (4-component vector of float)\r
 0:67        'FragData' (out 4-component vector of float)\r
 0:67        add (4-component vector of float)\r
 0:67          Construct vec4 (4-component vector of float)\r
 0:67            Convert int to float (2-component vector of float)\r
 0:67              'iv2' (2-component vector of int)\r
-0:67            0.000000\r
-0:67            0.000000\r
+0:67            Constant:\r
+0:67              0.000000\r
+0:67            Constant:\r
+0:67              0.000000\r
 0:?   Linker Objects\r
 0:?     's2D' (uniform sampler2D)\r
 0:?     's3D' (uniform sampler3D)\r
index 631fa59..6b1961d 100644 (file)
 0:23                      'm23' (2X3 matrix of float)\r
 0:23                      'm32' (uniform 3X2 matrix of float)\r
 0:23                    'v3' (in 3-component vector of float)\r
-0:23                  0.000000\r
+0:23                  Constant:\r
+0:23                    0.000000\r
 0:24                matrix-times-vector (4-component vector of float)\r
-0:24                  3.000000\r
-0:24                  6.000000\r
-0:24                  0.000000\r
-0:24                  0.000000\r
-0:24                  9.000000\r
-0:24                  12.000000\r
-0:24                  0.000000\r
-0:24                  0.000000\r
-0:24                  15.000000\r
-0:24                  18.000000\r
-0:24                  0.000000\r
-0:24                  0.000000\r
-0:24                  21.000000\r
-0:24                  24.000000\r
-0:24                  0.000000\r
-0:24                  0.000000\r
+0:24                  Constant:\r
+0:24                    3.000000\r
+0:24                    6.000000\r
+0:24                    0.000000\r
+0:24                    0.000000\r
+0:24                    9.000000\r
+0:24                    12.000000\r
+0:24                    0.000000\r
+0:24                    0.000000\r
+0:24                    15.000000\r
+0:24                    18.000000\r
+0:24                    0.000000\r
+0:24                    0.000000\r
+0:24                    21.000000\r
+0:24                    24.000000\r
+0:24                    0.000000\r
+0:24                    0.000000\r
 0:24                  'v4' (in 4-component vector of float)\r
-0:24              50.000000\r
-0:24              110.000000\r
-0:24              170.000000\r
-0:24              230.000000\r
-0:24            30.000000\r
-0:24            60.000000\r
-0:24            0.000000\r
-0:24            0.000000\r
-0:24          20.000000\r
-0:24          10.000000\r
-0:24          6.000000\r
-0:24          5.000000\r
+0:24              Constant:\r
+0:24                50.000000\r
+0:24                110.000000\r
+0:24                170.000000\r
+0:24                230.000000\r
+0:24            Constant:\r
+0:24              30.000000\r
+0:24              60.000000\r
+0:24              0.000000\r
+0:24              0.000000\r
+0:24          Constant:\r
+0:24            20.000000\r
+0:24            10.000000\r
+0:24            6.000000\r
+0:24            5.000000\r
 0:?   Linker Objects\r
 0:?     'v3' (in 3-component vector of float)\r
 0:?     'v4' (in 4-component vector of float)\r
 0:?     'm32' (uniform 3X2 matrix of float)\r
 0:?     'cv2' (const 2-component vector of float)\r
+0:?       10.000000\r
+0:?       20.000000\r
 0:?     'm24' (const 2X4 matrix of float)\r
+0:?       3.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
+0:?       3.000000\r
+0:?       0.000000\r
+0:?       0.000000\r
 0:?     'm42' (const 4X2 matrix of float)\r
+0:?       1.000000\r
+0:?       2.000000\r
+0:?       3.000000\r
+0:?       4.000000\r
+0:?       5.000000\r
+0:?       6.000000\r
+0:?       7.000000\r
+0:?       8.000000\r
 \r
index 6b99a42..99216ec 100644 (file)
@@ -17,287 +17,358 @@ ERROR: node is still EOpNull!
 0:5      Sequence\r
 0:5        move second child to first child (int)\r
 0:5          'o00' (int)\r
-0:5          0 (const int)\r
+0:5          Constant:\r
+0:5            0 (const int)\r
 0:6      Sequence\r
 0:6        move second child to first child (int)\r
 0:6          'o000' (int)\r
-0:6          0 (const int)\r
+0:6          Constant:\r
+0:6            0 (const int)\r
 0:7      Sequence\r
 0:7        move second child to first child (int)\r
 0:7          'o0000' (int)\r
-0:7          0 (const int)\r
+0:7          Constant:\r
+0:7            0 (const int)\r
 0:8      Sequence\r
 0:8        move second child to first child (int)\r
 0:8          'o5' (int)\r
-0:8          5 (const int)\r
+0:8          Constant:\r
+0:8            5 (const int)\r
 0:9      Sequence\r
 0:9        move second child to first child (int)\r
 0:9          'o05' (int)\r
-0:9          5 (const int)\r
+0:9          Constant:\r
+0:9            5 (const int)\r
 0:10      Sequence\r
 0:10        move second child to first child (int)\r
 0:10          'o006' (int)\r
-0:10          6 (const int)\r
+0:10          Constant:\r
+0:10            6 (const int)\r
 0:11      Sequence\r
 0:11        move second child to first child (int)\r
 0:11          'o7' (int)\r
-0:11          7 (const int)\r
+0:11          Constant:\r
+0:11            7 (const int)\r
 0:12      Sequence\r
 0:12        move second child to first child (int)\r
 0:12          'o58' (int)\r
-0:12          58 (const int)\r
+0:12          Constant:\r
+0:12            58 (const int)\r
 0:13      Sequence\r
 0:13        move second child to first child (int)\r
 0:13          'omax' (int)\r
-0:13          -1 (const int)\r
+0:13          Constant:\r
+0:13            -1 (const int)\r
 0:14      Sequence\r
 0:14        move second child to first child (int)\r
 0:14          'o8' (int)\r
-0:14          0 (const int)\r
+0:14          Constant:\r
+0:14            0 (const int)\r
 0:15      Sequence\r
 0:15        move second child to first child (int)\r
 0:15          'o08' (int)\r
-0:15          0 (const int)\r
+0:15          Constant:\r
+0:15            0 (const int)\r
 0:16      Sequence\r
 0:16        move second child to first child (int)\r
 0:16          'o009' (int)\r
-0:16          0 (const int)\r
+0:16          Constant:\r
+0:16            0 (const int)\r
 0:17      Sequence\r
 0:17        move second child to first child (int)\r
 0:17          'obig' (int)\r
-0:17          995208915 (const int)\r
+0:17          Constant:\r
+0:17            995208915 (const int)\r
 0:18      Sequence\r
 0:18        move second child to first child (int)\r
 0:18          'omax1' (int)\r
-0:18          536870912 (const int)\r
+0:18          Constant:\r
+0:18            536870912 (const int)\r
 0:20      Sequence\r
 0:20        move second child to first child (uint)\r
 0:20          'uo5' (uint)\r
-0:20          5 (const uint)\r
+0:20          Constant:\r
+0:20            5 (const uint)\r
 0:21      Sequence\r
 0:21        move second child to first child (uint)\r
 0:21          'uo6' (uint)\r
-0:21          6 (const uint)\r
+0:21          Constant:\r
+0:21            6 (const uint)\r
 0:22      Sequence\r
 0:22        move second child to first child (uint)\r
 0:22          'uo7' (uint)\r
-0:22          7 (const uint)\r
+0:22          Constant:\r
+0:22            7 (const uint)\r
 0:23      Sequence\r
 0:23        move second child to first child (uint)\r
 0:23          'uo8' (uint)\r
-0:23          0 (const uint)\r
+0:23          Constant:\r
+0:23            0 (const uint)\r
 0:24      Sequence\r
 0:24        move second child to first child (uint)\r
 0:24          'uo9' (uint)\r
-0:24          0 (const uint)\r
+0:24          Constant:\r
+0:24            0 (const uint)\r
 0:26      Sequence\r
 0:26        move second child to first child (int)\r
 0:26          'h0' (int)\r
-0:26          0 (const int)\r
+0:26          Constant:\r
+0:26            0 (const int)\r
 0:27      Sequence\r
 0:27        move second child to first child (int)\r
 0:27          'h00' (int)\r
-0:27          0 (const int)\r
+0:27          Constant:\r
+0:27            0 (const int)\r
 0:28      Sequence\r
 0:28        move second child to first child (int)\r
 0:28          'h000' (int)\r
-0:28          0 (const int)\r
+0:28          Constant:\r
+0:28            0 (const int)\r
 0:29      Sequence\r
 0:29        move second child to first child (int)\r
 0:29          'h1' (int)\r
-0:29          1 (const int)\r
+0:29          Constant:\r
+0:29            1 (const int)\r
 0:30      Sequence\r
 0:30        move second child to first child (int)\r
 0:30          'h2' (int)\r
-0:30          2 (const int)\r
+0:30          Constant:\r
+0:30            2 (const int)\r
 0:31      Sequence\r
 0:31        move second child to first child (int)\r
 0:31          'h300' (int)\r
-0:31          768 (const int)\r
+0:31          Constant:\r
+0:31            768 (const int)\r
 0:32      Sequence\r
 0:32        move second child to first child (int)\r
 0:32          'hABCDEF' (int)\r
-0:32          11259375 (const int)\r
+0:32          Constant:\r
+0:32            11259375 (const int)\r
 0:33      Sequence\r
 0:33        move second child to first child (int)\r
 0:33          'hFFFFFFFF' (int)\r
-0:33          -1 (const int)\r
+0:33          Constant:\r
+0:33            -1 (const int)\r
 0:34      Sequence\r
 0:34        move second child to first child (int)\r
 0:34          'h12345678' (int)\r
-0:34          12345678 (const int)\r
+0:34          Constant:\r
+0:34            12345678 (const int)\r
 0:35      Sequence\r
 0:35        move second child to first child (int)\r
 0:35          'hToBeOrNotToBe' (int)\r
-0:35          -1 (const int)\r
+0:35          Constant:\r
+0:35            -1 (const int)\r
 0:37      Sequence\r
 0:37        move second child to first child (uint)\r
 0:37          'uh0' (uint)\r
-0:37          0 (const uint)\r
+0:37          Constant:\r
+0:37            0 (const uint)\r
 0:38      Sequence\r
 0:38        move second child to first child (uint)\r
 0:38          'uhg' (uint)\r
-0:38          12 (const uint)\r
+0:38          Constant:\r
+0:38            12 (const uint)\r
 0:39      Sequence\r
 0:39        move second child to first child (uint)\r
 0:39          'uh000' (uint)\r
-0:39          0 (const uint)\r
+0:39          Constant:\r
+0:39            0 (const uint)\r
 0:40      Sequence\r
 0:40        move second child to first child (uint)\r
 0:40          'uh1' (uint)\r
-0:40          1 (const uint)\r
+0:40          Constant:\r
+0:40            1 (const uint)\r
 0:41      Sequence\r
 0:41        move second child to first child (uint)\r
 0:41          'uh2' (uint)\r
-0:41          2 (const uint)\r
+0:41          Constant:\r
+0:41            2 (const uint)\r
 0:42      Sequence\r
 0:42        move second child to first child (uint)\r
 0:42          'uh300' (uint)\r
-0:42          768 (const uint)\r
+0:42          Constant:\r
+0:42            768 (const uint)\r
 0:43      Sequence\r
 0:43        move second child to first child (uint)\r
 0:43          'uhABCDEF' (uint)\r
-0:43          11259375 (const uint)\r
+0:43          Constant:\r
+0:43            11259375 (const uint)\r
 0:44      Sequence\r
 0:44        move second child to first child (uint)\r
 0:44          'uhFFFFFFFF' (uint)\r
-0:44          4294967295 (const uint)\r
+0:44          Constant:\r
+0:44            4294967295 (const uint)\r
 0:45      Sequence\r
 0:45        move second child to first child (uint)\r
 0:45          'uh12345678' (uint)\r
-0:45          12345678 (const uint)\r
+0:45          Constant:\r
+0:45            12345678 (const uint)\r
 0:46      Sequence\r
 0:46        move second child to first child (uint)\r
 0:46          'uhToBeOrNotToBe' (uint)\r
-0:46          4294967295 (const uint)\r
+0:46          Constant:\r
+0:46            4294967295 (const uint)\r
 0:49      Sequence\r
 0:49        move second child to first child (int)\r
 0:49          'he2' (int)\r
-0:49          0 (const int)\r
+0:49          Constant:\r
+0:49            0 (const int)\r
 0:50      Sequence\r
 0:50        move second child to first child (int)\r
 0:50          'hbig' (int)\r
-0:50          -1 (const int)\r
+0:50          Constant:\r
+0:50            -1 (const int)\r
 0:52      Sequence\r
 0:52        move second child to first child (float)\r
 0:52          'f1' (float)\r
-0:52          1.000000\r
+0:52          Constant:\r
+0:52            1.000000\r
 0:53      Sequence\r
 0:53        move second child to first child (float)\r
 0:53          'f2' (float)\r
-0:53          2.000000\r
+0:53          Constant:\r
+0:53            2.000000\r
 0:54      Sequence\r
 0:54        move second child to first child (float)\r
 0:54          'f3' (float)\r
-0:54          3.000000\r
+0:54          Constant:\r
+0:54            3.000000\r
 0:55      Sequence\r
 0:55        move second child to first child (float)\r
 0:55          'f4' (float)\r
-0:55          4.000000\r
+0:55          Constant:\r
+0:55            4.000000\r
 0:56      Sequence\r
 0:56        move second child to first child (float)\r
 0:56          'f5' (float)\r
-0:56          5.000000\r
+0:56          Constant:\r
+0:56            5.000000\r
 0:57      Sequence\r
 0:57        move second child to first child (float)\r
 0:57          'f6' (float)\r
-0:57          6.000000\r
+0:57          Constant:\r
+0:57            6.000000\r
 0:58      Sequence\r
 0:58        move second child to first child (float)\r
 0:58          'f7' (float)\r
-0:58          7.000000\r
+0:58          Constant:\r
+0:58            7.000000\r
 0:59      Sequence\r
 0:59        move second child to first child (float)\r
 0:59          'f8' (float)\r
-0:59          8.000000\r
+0:59          Constant:\r
+0:59            8.000000\r
 0:60      Sequence\r
 0:60        move second child to first child (float)\r
 0:60          'f9' (float)\r
-0:60          9.000000\r
+0:60          Constant:\r
+0:60            9.000000\r
 0:61      Sequence\r
 0:61        move second child to first child (float)\r
 0:61          'f10' (float)\r
-0:61          10.000000\r
+0:61          Constant:\r
+0:61            10.000000\r
 0:62      Sequence\r
 0:62        move second child to first child (float)\r
 0:62          'f11' (float)\r
-0:62          11.000000\r
+0:62          Constant:\r
+0:62            11.000000\r
 0:63      Sequence\r
 0:63        move second child to first child (float)\r
 0:63          'f12' (float)\r
-0:63          12.000000\r
+0:63          Constant:\r
+0:63            12.000000\r
 0:64      Sequence\r
 0:64        move second child to first child (float)\r
 0:64          'f543' (float)\r
-0:64          543.000000\r
+0:64          Constant:\r
+0:64            543.000000\r
 0:65      Sequence\r
 0:65        move second child to first child (float)\r
 0:65          'f6789' (float)\r
-0:65          6789.000000\r
+0:65          Constant:\r
+0:65            6789.000000\r
 0:66      Sequence\r
 0:66        move second child to first child (float)\r
 0:66          'f88' (float)\r
-0:66          88.000000\r
+0:66          Constant:\r
+0:66            88.000000\r
 0:68      Sequence\r
 0:68        move second child to first child (float)\r
 0:68          'g1' (float)\r
-0:68          53876.000000\r
+0:68          Constant:\r
+0:68            53876.000000\r
 0:69      Sequence\r
 0:69        move second child to first child (float)\r
 0:69          'g2' (float)\r
-0:69          0.040000\r
+0:69          Constant:\r
+0:69            0.040000\r
 0:70      Sequence\r
 0:70        move second child to first child (float)\r
 0:70          'g3' (float)\r
-0:70          100000.000000\r
+0:70          Constant:\r
+0:70            100000.000000\r
 0:71      Sequence\r
 0:71        move second child to first child (float)\r
 0:71          'g4' (float)\r
-0:71          0.007321\r
+0:71          Constant:\r
+0:71            0.007321\r
 0:72      Sequence\r
 0:72        move second child to first child (float)\r
 0:72          'g5' (float)\r
-0:72          32000.000000\r
+0:72          Constant:\r
+0:72            32000.000000\r
 0:73      Sequence\r
 0:73        move second child to first child (float)\r
 0:73          'g6' (float)\r
-0:73          0.000005\r
+0:73          Constant:\r
+0:73            0.000005\r
 0:74      Sequence\r
 0:74        move second child to first child (float)\r
 0:74          'g7' (float)\r
-0:74          0.450000\r
+0:74          Constant:\r
+0:74            0.450000\r
 0:75      Sequence\r
 0:75        move second child to first child (float)\r
 0:75          'g8' (float)\r
-0:75          60000000000.000000\r
+0:75          Constant:\r
+0:75            60000000000.000000\r
 0:77      Sequence\r
 0:77        move second child to first child (double)\r
 0:77          'gf1' (double)\r
-0:77          1.000000\r
+0:77          Constant:\r
+0:77            1.000000\r
 0:78      Sequence\r
 0:78        move second child to first child (double)\r
 0:78          'gf2' (double)\r
-0:78          2.000000\r
+0:78          Constant:\r
+0:78            2.000000\r
 0:79      Sequence\r
 0:79        move second child to first child (double)\r
 0:79          'gf3' (double)\r
-0:79          3.000000\r
+0:79          Constant:\r
+0:79            3.000000\r
 0:80      Sequence\r
 0:80        move second child to first child (double)\r
 0:80          'gf4' (double)\r
-0:80          4.000000\r
+0:80          Constant:\r
+0:80            4.000000\r
 0:81      Sequence\r
 0:81        move second child to first child (float)\r
 0:81          'gf5' (float)\r
-0:81          5.000000\r
+0:81          Constant:\r
+0:81            5.000000\r
 0:82      Sequence\r
 0:82        move second child to first child (float)\r
 0:82          'gf6' (float)\r
-0:82          6.000000\r
+0:82          Constant:\r
+0:82            6.000000\r
 0:88      Sequence\r
 0:88        move second child to first child (float)\r
 0:88          'e5' (float)\r
-0:88          5.000000\r
+0:88          Constant:\r
+0:88            5.000000\r
 0:?   Linker Objects\r
 0:?     'c2' (layout(location=2 ) out 4-component vector of float)\r
 0:?     'c3' (layout(location=3 ) out 4-component vector of float)\r
index 94cef16..ed4fe56 100644 (file)
@@ -8,7 +8,8 @@ WARNING: #version: statement missing; use #version on first line of shader
 0:9        Compare Less Than (bool)\r
 0:9          length (mediump float)\r
 0:9            'gl_PointCoord' (gl_PointCoord mediump 2-component vector of float)\r
-0:9          0.300000\r
+0:9          Constant:\r
+0:9            0.300000\r
 0:9        true case\r
 0:10        move second child to first child (highp 4-component vector of float)\r
 0:10          'color' (highp 4-component vector of float)\r
@@ -18,10 +19,11 @@ WARNING: #version: statement missing; use #version on first line of shader
 0:9        false case\r
 0:12        move second child to first child (highp 4-component vector of float)\r
 0:12          'color' (highp 4-component vector of float)\r
-0:12          0.000000\r
-0:12          0.000000\r
-0:12          0.000000\r
-0:12          0.000000\r
+0:12          Constant:\r
+0:12            0.000000\r
+0:12            0.000000\r
+0:12            0.000000\r
+0:12            0.000000\r
 0:14      move second child to first child (highp 4-component vector of float)\r
 0:14        'gl_FragColor' (fragColor mediump 4-component vector of float)\r
 0:14        'color' (highp 4-component vector of float)\r
index 38d1a20..59e30e2 100644 (file)
@@ -16,8 +16,10 @@ ERROR: node is still EOpNull!
 0:8        vector swizzle (highp 2-component vector of float)\r
 0:8          'hv4' (highp 4-component vector of float)\r
 0:8          Sequence\r
-0:8            0 (const int)\r
-0:8            1 (const int)\r
+0:8            Constant:\r
+0:8              0 (const int)\r
+0:8            Constant:\r
+0:8              1 (const int)\r
 0:25  Function Definition: main( (void)\r
 0:25    Function Parameters: \r
 0:27    Sequence\r
@@ -31,7 +33,8 @@ ERROR: node is still EOpNull!
 0:29        'gl_FragColor' (fragColor mediump 4-component vector of float)\r
 0:29        Construct vec4 (mediump 4-component vector of float)\r
 0:29          'color' (smooth in mediump 3-component vector of float)\r
-0:29          1.000000\r
+0:29          Constant:\r
+0:29            1.000000\r
 0:32      add second child into first child (highp int)\r
 0:32        'sum' (lowp int)\r
 0:32        'level1_high' (highp int)\r
@@ -53,12 +56,14 @@ ERROR: node is still EOpNull!
 0:49          'level2_high' (highp int)\r
 0:58        Loop with condition not tested first\r
 0:58          Loop Condition\r
-0:58          true (const bool)\r
+0:58          Constant:\r
+0:58            true (const bool)\r
 0:58          Loop Body\r
 0:51          Sequence\r
 0:51            Test condition and select (void)\r
 0:51              Condition\r
-0:51              true (const bool)\r
+0:51              Constant:\r
+0:51                true (const bool)\r
 0:51              true case\r
 0:?               Sequence\r
 0:54                add second child into first child (mediump int)\r
@@ -76,7 +81,8 @@ ERROR: node is still EOpNull!
 0:65      add second child into first child (lowp int)\r
 0:65        'sum' (lowp int)\r
 0:65        add (lowp int)\r
-0:65          4 (const int)\r
+0:65          Constant:\r
+0:65            4 (const int)\r
 0:65          direct index (lowp int)\r
 0:65            add (lowp 2-component vector of int)\r
 0:65              component-wise multiply (lowp 2-component vector of int)\r
@@ -88,19 +94,23 @@ ERROR: node is still EOpNull!
 0:65                Comma (highp int)\r
 0:65                  'level1_low3' (lowp int)\r
 0:65                  'level1_high' (highp int)\r
-0:65            0 (const int)\r
+0:65            Constant:\r
+0:65              0 (const int)\r
 0:67      Function Call: texture2D(s21;vf2; (lowp 4-component vector of float)\r
 0:67        'samplerLow' (uniform lowp sampler2D)\r
-0:67        0.100000\r
-0:67        0.200000\r
+0:67        Constant:\r
+0:67          0.100000\r
+0:67          0.200000\r
 0:68      Function Call: texture2D(s21;vf2; (mediump 4-component vector of float)\r
 0:68        'samplerMed' (uniform mediump sampler2D)\r
-0:68        0.100000\r
-0:68        0.200000\r
+0:68        Constant:\r
+0:68          0.100000\r
+0:68          0.200000\r
 0:69      Function Call: texture2D(s21;vf2; (highp 4-component vector of float)\r
 0:69        'samplerHigh' (uniform highp sampler2D)\r
-0:69        0.100000\r
-0:69        0.200000\r
+0:69        Constant:\r
+0:69          0.100000\r
+0:69          0.200000\r
 0:?   Linker Objects\r
 0:?     'color' (smooth in mediump 3-component vector of float)\r
 0:?     'global_medium' (mediump int)\r
index ed13267..8024291 100644 (file)
@@ -12,22 +12,25 @@ ERROR: node is still EOpNull!
 0:20          't' (highp 4-component vector of float)\r
 0:20          Function Call: texture(s21;vf2; (highp 4-component vector of float)\r
 0:20            's2D' (uniform lowp sampler2D)\r
-0:20            0.100000\r
-0:20            0.200000\r
+0:20            Constant:\r
+0:20              0.100000\r
+0:20              0.200000\r
 0:21      add second child into first child (highp 4-component vector of float)\r
 0:21        't' (highp 4-component vector of float)\r
 0:21        Function Call: texture(s21;vf2; (highp 4-component vector of float)\r
 0:21          's2Dhigh' (uniform highp sampler2D)\r
-0:21          0.100000\r
-0:21          0.200000\r
+0:21          Constant:\r
+0:21            0.100000\r
+0:21            0.200000\r
 0:22      add second child into first child (highp 4-component vector of float)\r
 0:22        't' (highp 4-component vector of float)\r
 0:22        Function Call: texture(sAS21;vf4; (highp float)\r
 0:22          's2dAS' (uniform mediump sampler2DArrayShadow)\r
-0:22          0.500000\r
-0:22          0.500000\r
-0:22          0.500000\r
-0:22          0.500000\r
+0:22          Constant:\r
+0:22            0.500000\r
+0:22            0.500000\r
+0:22            0.500000\r
+0:22            0.500000\r
 0:24      move second child to first child (highp 4-component vector of float)\r
 0:24        'gl_Position' (gl_Position highp 4-component vector of float)\r
 0:24        'pos' (in highp 4-component vector of float)\r
index f322cc7..337117d 100644 (file)
@@ -5,29 +5,36 @@
 0:10      Sequence\r
 0:10        move second child to first child (int)\r
 0:10          'index' (int)\r
-0:10          5 (const int)\r
+0:10          Constant:\r
+0:10            5 (const int)\r
 0:12      move second child to first child (float)\r
 0:12        direct index (float)\r
 0:12          y: direct index for structure (5-element array of float)\r
 0:12            'str' (structure)\r
-0:12            0 (const int)\r
-0:12          4 (const int)\r
-0:12        2.000000\r
+0:12            Constant:\r
+0:12              0 (const int)\r
+0:12          Constant:\r
+0:12            4 (const int)\r
+0:12        Constant:\r
+0:12          2.000000\r
 0:13      move second child to first child (float)\r
 0:13        't' (float)\r
 0:13        Pre-Increment (float)\r
 0:13          indirect index (float)\r
 0:13            y: direct index for structure (5-element array of float)\r
 0:13              'str' (structure)\r
-0:13              0 (const int)\r
+0:13              Constant:\r
+0:13                0 (const int)\r
 0:13            Pre-Decrement (int)\r
 0:13              'index' (int)\r
 0:14      add second child into first child (float)\r
 0:14        direct index (float)\r
 0:14          y: direct index for structure (5-element array of float)\r
 0:14            'str' (structure)\r
-0:14            0 (const int)\r
-0:14          4 (const int)\r
+0:14            Constant:\r
+0:14              0 (const int)\r
+0:14          Constant:\r
+0:14            4 (const int)\r
 0:14        't' (float)\r
 0:15      move second child to first child (float)\r
 0:15        't' (float)\r
 0:15          direct index (float)\r
 0:15            y: direct index for structure (5-element array of float)\r
 0:15              'str' (structure)\r
-0:15              0 (const int)\r
-0:15            4 (const int)\r
+0:15              Constant:\r
+0:15                0 (const int)\r
+0:15            Constant:\r
+0:15              4 (const int)\r
 0:16      add second child into first child (float)\r
 0:16        indirect index (float)\r
 0:16          y: direct index for structure (5-element array of float)\r
 0:16            'str' (structure)\r
-0:16            0 (const int)\r
+0:16            Constant:\r
+0:16              0 (const int)\r
 0:16          Post-Increment (int)\r
 0:16            'index' (int)\r
 0:16        't' (float)\r
@@ -49,7 +59,8 @@
 0:17        indirect index (float)\r
 0:17          y: direct index for structure (5-element array of float)\r
 0:17            'str' (structure)\r
-0:17            0 (const int)\r
+0:17            Constant:\r
+0:17              0 (const int)\r
 0:17          Pre-Decrement (int)\r
 0:17            'index' (int)\r
 0:19      Sequence\r
 0:19          direct index (float)\r
 0:19            y: direct index for structure (5-element array of float)\r
 0:19              'str' (structure)\r
-0:19              0 (const int)\r
-0:19            4 (const int)\r
+0:19              Constant:\r
+0:19                0 (const int)\r
+0:19            Constant:\r
+0:19              4 (const int)\r
 0:20      Pre-Increment (float)\r
 0:20        'x' (float)\r
 0:21      Pre-Decrement (float)\r
 0:33      Sequence\r
 0:33        move second child to first child (4-component vector of float)\r
 0:33          'v' (4-component vector of float)\r
-0:33          1.000000\r
-0:33          2.000000\r
-0:33          3.000000\r
-0:33          4.000000\r
+0:33          Constant:\r
+0:33            1.000000\r
+0:33            2.000000\r
+0:33            3.000000\r
+0:33            4.000000\r
 0:34      move second child to first child (float)\r
 0:34        direct index (float)\r
 0:34          'v' (4-component vector of float)\r
-0:34          1 (const int)\r
+0:34          Constant:\r
+0:34            1 (const int)\r
 0:34        Post-Decrement (float)\r
 0:34          direct index (float)\r
 0:34            'v' (4-component vector of float)\r
-0:34            2 (const int)\r
+0:34            Constant:\r
+0:34              2 (const int)\r
 0:35      move second child to first child (float)\r
 0:35        direct index (float)\r
 0:35          'v' (4-component vector of float)\r
-0:35          0 (const int)\r
+0:35          Constant:\r
+0:35            0 (const int)\r
 0:35        Pre-Decrement (float)\r
 0:35          direct index (float)\r
 0:35            'v' (4-component vector of float)\r
-0:35            3 (const int)\r
+0:35            Constant:\r
+0:35              3 (const int)\r
 0:37      move second child to first child (4-component vector of float)\r
 0:37        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:37        vector-scale (4-component vector of float)\r
index 0b5f302..0e85f8e 100644 (file)
@@ -6,7 +6,8 @@
 0:40        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:40        Construct vec4 (4-component vector of float)\r
 0:40          'color' (smooth in 3-component vector of float)\r
-0:40          1.000000\r
+0:40          Constant:\r
+0:40            1.000000\r
 0:?   Linker Objects\r
 0:?     'color' (smooth in 3-component vector of float)\r
 \r
index 34628e3..e7942be 100644 (file)
@@ -4,9 +4,10 @@
 0:40    Sequence\r
 0:40      move second child to first child (3-component vector of float)\r
 0:40        'color' (smooth out 3-component vector of float)\r
-0:40        1.000000\r
-0:40        1.000000\r
-0:40        1.000000\r
+0:40        Constant:\r
+0:40          1.000000\r
+0:40          1.000000\r
+0:40          1.000000\r
 0:42      move second child to first child (4-component vector of float)\r
 0:42        'gl_Position' (gl_Position 4-component vector of float)\r
 0:42        matrix-times-vector (4-component vector of float)\r
index c776306..d0f248c 100644 (file)
@@ -59,71 +59,79 @@ ERROR: node is still EOpNull!
 0:5  Sequence\r
 0:5    move second child to first child (int)\r
 0:5      'a' (int)\r
-0:5      -1 (const int)\r
+0:5      Constant:\r
+0:5        -1 (const int)\r
 0:7  Sequence\r
 0:7    move second child to first child (uint)\r
 0:7      'c' (uint)\r
-0:7      4294967295 (const uint)\r
+0:7      Constant:\r
+0:7        4294967295 (const uint)\r
 0:8  Sequence\r
 0:8    move second child to first child (uint)\r
 0:8      'd' (uint)\r
-0:8      4294967295 (const uint)\r
+0:8      Constant:\r
+0:8        4294967295 (const uint)\r
 0:9  Sequence\r
 0:9    move second child to first child (int)\r
 0:9      'e' (int)\r
-0:9      -1 (const int)\r
+0:9      Constant:\r
+0:9        -1 (const int)\r
 0:13  Sequence\r
 0:13    move second child to first child (uint)\r
 0:13      'f' (uint)\r
-0:13      4294967295 (const uint)\r
+0:13      Constant:\r
+0:13        4294967295 (const uint)\r
 0:17  Sequence\r
 0:17    move second child to first child (int)\r
 0:17      'g' (int)\r
-0:17      -1294967296 (const int)\r
+0:17      Constant:\r
+0:17        -1294967296 (const int)\r
 0:19  Sequence\r
 0:19    move second child to first child (int)\r
 0:19      'h' (int)\r
-0:19      -1610612736 (const int)\r
+0:19      Constant:\r
+0:19        -1610612736 (const int)\r
 0:20  Sequence\r
 0:20    move second child to first child (int)\r
 0:20      'i' (int)\r
-0:20      -1 (const int)\r
+0:20      Constant:\r
+0:20        -1 (const int)\r
 0:21  Sequence\r
 0:21    move second child to first child (int)\r
 0:21      'j' (int)\r
-0:21      -1 (const int)\r
+0:21      Constant:\r
+0:21        -1 (const int)\r
 0:22  Sequence\r
 0:22    move second child to first child (int)\r
 0:22      'k' (int)\r
-0:22      -2147483648 (const int)\r
+0:22      Constant:\r
+0:22        -2147483648 (const int)\r
 0:23  Sequence\r
 0:23    move second child to first child (int)\r
 0:23      'l' (int)\r
-0:23      -2147483648 (const int)\r
+0:23      Constant:\r
+0:23        -2147483648 (const int)\r
 0:25  Sequence\r
 0:25    move second child to first child (float)\r
 0:25      'fb' (float)\r
-0:25      1.500000\r
+0:25      Constant:\r
+0:25        1.500000\r
 0:26  Sequence\r
 0:26    move second child to first child (double)\r
 0:26      'fd' (double)\r
-0:26      2.000000\r
-0:69  Sequence\r
-0:69    move second child to first child (3-component vector of float)\r
-0:69      'color' (uniform 3-component vector of float)\r
-0:69      0.700000\r
-0:69      0.700000\r
-0:69      0.200000\r
+0:26      Constant:\r
+0:26        2.000000\r
 0:127  Function Definition: foo(f1[5]; (5-element array of float)\r
 0:127    Function Parameters: \r
 0:127      '' (in 5-element array of float)\r
 0:129    Sequence\r
 0:129      Branch: Return with expression\r
-0:129        3.400000\r
-0:129        4.200000\r
-0:129        5.000000\r
-0:129        5.200000\r
-0:129        1.100000\r
+0:129        Constant:\r
+0:129          3.400000\r
+0:129          4.200000\r
+0:129          5.000000\r
+0:129          5.200000\r
+0:129          1.100000\r
 0:137  Function Definition: main( (void)\r
 0:137    Function Parameters: \r
 0:140    Sequence\r
@@ -131,32 +139,35 @@ ERROR: node is still EOpNull!
 0:140        Sequence\r
 0:140          move second child to first child (5-element array of float)\r
 0:140            'a' (5-element array of float)\r
-0:140            3.400000\r
-0:140            4.200000\r
-0:140            5.000000\r
-0:140            5.200000\r
-0:140            1.100000\r
+0:140            Constant:\r
+0:140              3.400000\r
+0:140              4.200000\r
+0:140              5.000000\r
+0:140              5.200000\r
+0:140              1.100000\r
 0:143      Sequence\r
 0:143        Sequence\r
 0:143          move second child to first child (5-element array of float)\r
 0:143            'a' (5-element array of float)\r
-0:143            3.400000\r
-0:143            4.200000\r
-0:143            5.000000\r
-0:143            5.200000\r
-0:143            1.100000\r
+0:143            Constant:\r
+0:143              3.400000\r
+0:143              4.200000\r
+0:143              5.000000\r
+0:143              5.200000\r
+0:143              1.100000\r
 0:?       Sequence\r
 0:149        Sequence\r
 0:149          move second child to first child (2-element array of 4-component vector of float)\r
 0:149            'b' (2-element array of 4-component vector of float)\r
-0:149            0.000000\r
-0:149            0.000000\r
-0:149            0.000000\r
-0:149            0.000000\r
-0:149            0.100000\r
-0:149            0.100000\r
-0:149            0.100000\r
-0:149            0.100000\r
+0:149            Constant:\r
+0:149              0.000000\r
+0:149              0.000000\r
+0:149              0.000000\r
+0:149              0.000000\r
+0:149              0.100000\r
+0:149              0.100000\r
+0:149              0.100000\r
+0:149              0.100000\r
 0:150        Sequence\r
 0:150          move second child to first child (3-element array of 4-component vector of float)\r
 0:150            'a3' (3-element array of 4-component vector of float)\r
@@ -176,26 +187,33 @@ ERROR: node is still EOpNull!
 0:165          Sequence\r
 0:165            move second child to first child (5-element array of float)\r
 0:165              'b' (5-element array of float)\r
-0:165              1.000000\r
-0:165              2.000000\r
-0:165              3.000000\r
-0:165              4.000000\r
-0:165              5.000000\r
-0:167        5 (const int)\r
+0:165              Constant:\r
+0:165                1.000000\r
+0:165                2.000000\r
+0:165                3.000000\r
+0:165                4.000000\r
+0:165                5.000000\r
+0:167        Constant:\r
+0:167          5 (const int)\r
 0:?       Sequence\r
-0:171        3 (const int)\r
-0:172        0.000000\r
-0:175      0.000000\r
-0:178      0.000000\r
+0:171        Constant:\r
+0:171          3 (const int)\r
+0:172        Constant:\r
+0:172          0.000000\r
+0:175      Constant:\r
+0:175        0.000000\r
+0:178      Constant:\r
+0:178        0.000000\r
 0:216      Sequence\r
 0:216        Sequence\r
 0:216          move second child to first child (5-element array of float)\r
 0:216            'a' (5-element array of float)\r
-0:216            3.400000\r
-0:216            4.200000\r
-0:216            5.000000\r
-0:216            5.200000\r
-0:216            1.100000\r
+0:216            Constant:\r
+0:216              3.400000\r
+0:216              4.200000\r
+0:216              5.000000\r
+0:216              5.200000\r
+0:216              1.100000\r
 0:218        Sequence\r
 0:218          move second child to first child (5-element array of float)\r
 0:218            'c' (5-element array of float)\r
@@ -235,6 +253,7 @@ ERROR: node is still EOpNull!
 0:?     'lightPosition' (uniform 4-element array of 4-component vector of float)\r
 0:?     'lights' (2-element array of structure)\r
 0:?     'numLights' (const int)\r
+0:?       2 (const int)\r
 0:?     'normal' (smooth in 3-component vector of float)\r
 0:?     'TexCoord' (centroid smooth in 2-component vector of float)\r
 0:?     'Color' (invariant centroid smooth in 4-component vector of float)\r
@@ -242,6 +261,9 @@ ERROR: node is still EOpNull!
 0:?     'myColor' (flat in 3-component vector of float)\r
 0:?     'myTexCoord' (centroid noperspective in 2-component vector of float)\r
 0:?     'color' (uniform 3-component vector of float)\r
+0:?       0.700000\r
+0:?       0.700000\r
+0:?       0.200000\r
 0:?     'gl_FragCoord' (gl_FragCoord 4-component vector of float)\r
 0:?     'factor' (layout(location=3 ) out 4-component vector of float)\r
 0:?     'colors' (layout(location=2 ) out 3-element array of 4-component vector of float)\r
index 3b9733a..c1b7c96 100644 (file)
@@ -132,57 +132,72 @@ ERROR: node is still EOpNull!
 0:162        vector swizzle (3-component vector of float)\r
 0:162          'v' (smooth out 4-component vector of float)\r
 0:162          Sequence\r
-0:162            0 (const int)\r
-0:162            1 (const int)\r
-0:162            2 (const int)\r
+0:162            Constant:\r
+0:162              0 (const int)\r
+0:162            Constant:\r
+0:162              1 (const int)\r
+0:162            Constant:\r
+0:162              2 (const int)\r
 0:162        add (3-component vector of float)\r
 0:162          'r' (3-component vector of float)\r
 0:162          's' (3-component vector of float)\r
 0:163      move second child to first child (float)\r
 0:163        direct index (float)\r
 0:163          'v' (smooth out 4-component vector of float)\r
-0:163          3 (const int)\r
+0:163          Constant:\r
+0:163            3 (const int)\r
 0:163        add (float)\r
 0:163          component-wise multiply (float)\r
 0:163            Convert int to float (float)\r
 0:163              'a' (uniform int)\r
 0:163            direct index (float)\r
 0:163              'b' (in 4-component vector of float)\r
-0:163              3 (const int)\r
+0:163              Constant:\r
+0:163                3 (const int)\r
 0:163          component-wise multiply (float)\r
 0:163            direct index (float)\r
 0:163              'c' (in 4-component vector of float)\r
-0:163              3 (const int)\r
+0:163              Constant:\r
+0:163                3 (const int)\r
 0:163            direct index (float)\r
 0:163              'd' (in 4-component vector of float)\r
-0:163              3 (const int)\r
+0:163              Constant:\r
+0:163                3 (const int)\r
 0:164      move second child to first child (float)\r
 0:164        direct index (float)\r
 0:164          'v' (smooth out 4-component vector of float)\r
-0:164          0 (const int)\r
-0:164        0.000000\r
+0:164          Constant:\r
+0:164            0 (const int)\r
+0:164        Constant:\r
+0:164          0.000000\r
 0:166      move second child to first child (float)\r
 0:166        direct index (float)\r
 0:166          'v' (smooth out 4-component vector of float)\r
-0:166          0 (const int)\r
-0:166        0.000000\r
+0:166          Constant:\r
+0:166            0 (const int)\r
+0:166        Constant:\r
+0:166          0.000000\r
 0:167      Function Call: func3(f1;f1;f1; (float)\r
 0:167        component-wise multiply (float)\r
 0:167          Convert int to float (float)\r
 0:167            'a' (uniform int)\r
 0:167          direct index (float)\r
 0:167            'b' (in 4-component vector of float)\r
-0:167            0 (const int)\r
+0:167            Constant:\r
+0:167              0 (const int)\r
 0:167        component-wise multiply (float)\r
 0:167          direct index (float)\r
 0:167            'c' (in 4-component vector of float)\r
-0:167            0 (const int)\r
+0:167            Constant:\r
+0:167              0 (const int)\r
 0:167          direct index (float)\r
 0:167            'd' (in 4-component vector of float)\r
-0:167            0 (const int)\r
+0:167            Constant:\r
+0:167              0 (const int)\r
 0:167        direct index (float)\r
 0:167          'v' (smooth out 4-component vector of float)\r
-0:167          0 (const int)\r
+0:167          Constant:\r
+0:167            0 (const int)\r
 0:169      Function Call: funcA(I21; (4-component vector of float)\r
 0:169        'img1' (uniform image2D)\r
 0:170      Function Call: funcB(I21; (4-component vector of float)\r
@@ -191,19 +206,22 @@ ERROR: node is still EOpNull!
 0:178        Sequence\r
 0:178          move second child to first child (structure)\r
 0:178            'lightVar' (structure)\r
-0:178            3.000000\r
-0:178            1.000000\r
-0:178            2.000000\r
-0:178            3.000000\r
+0:178            Constant:\r
+0:178              3.000000\r
+0:178              1.000000\r
+0:178              2.000000\r
+0:178              3.000000\r
 0:?       Sequence\r
 0:185        Sequence\r
 0:185          move second child to first child (5-element array of float)\r
 0:185            'a' (5-element array of float)\r
 0:185            Construct float (5-element array of float)\r
 0:185              'g' (float)\r
-0:185              1.000000\r
+0:185              Constant:\r
+0:185                1.000000\r
 0:185              'g' (float)\r
-0:185              2.300000\r
+0:185              Constant:\r
+0:185                2.300000\r
 0:185              'g' (float)\r
 0:188        move second child to first child (3-element array of float)\r
 0:188          'b' (3-element array of float)\r
@@ -211,10 +229,12 @@ ERROR: node is still EOpNull!
 0:188            'g' (float)\r
 0:188            add (float)\r
 0:188              'g' (float)\r
-0:188              1.000000\r
+0:188              Constant:\r
+0:188                1.000000\r
 0:188            add (float)\r
 0:188              'g' (float)\r
-0:188              2.000000\r
+0:188              Constant:\r
+0:188                2.000000\r
 0:?       Sequence\r
 0:192        Construct vec4 (3-element array of 4-component vector of float)\r
 0:193        Construct vec4 (3-element array of 4-component vector of float)\r
index 2eb679a..9ca8325 100644 (file)
@@ -9,15 +9,19 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:33          i: direct index for structure (int)\r
 0:33            s2_1: direct index for structure (structure)\r
 0:33              'foo3' (uniform structure)\r
+0:33              Constant:\r
+0:33                0 (const int)\r
+0:33            Constant:\r
 0:33              0 (const int)\r
+0:33          Constant:\r
 0:33            0 (const int)\r
-0:33          0 (const int)\r
 0:33        true case\r
 0:34        move second child to first child (structure)\r
 0:34          'locals2' (structure)\r
 0:34          s2_1: direct index for structure (structure)\r
 0:34            'foo3' (uniform structure)\r
-0:34            0 (const int)\r
+0:34            Constant:\r
+0:34              0 (const int)\r
 0:33        false case\r
 0:36        move second child to first child (structure)\r
 0:36          'locals2' (structure)\r
@@ -28,8 +32,10 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:38          f: direct index for structure (float)\r
 0:38            s1_1: direct index for structure (structure)\r
 0:38              'locals2' (structure)\r
-0:38              2 (const int)\r
-0:38            1 (const int)\r
+0:38              Constant:\r
+0:38                2 (const int)\r
+0:38            Constant:\r
+0:38              1 (const int)\r
 0:38          Function Call: texture2D(s21;vf2; (4-component vector of float)\r
 0:38            'sampler' (uniform sampler2D)\r
 0:38            'coord' (smooth in 2-component vector of float)\r
index 453ebcc..a4d4c33 100644 (file)
@@ -10,82 +10,103 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:51            direct index (structure)\r
 0:51              s2_1: direct index for structure (12-element array of structure)\r
 0:51                'foo3' (uniform structure)\r
-0:51                0 (const int)\r
-0:51              9 (const int)\r
+0:51                Constant:\r
+0:51                  0 (const int)\r
+0:51              Constant:\r
+0:51                9 (const int)\r
+0:51            Constant:\r
+0:51              0 (const int)\r
+0:51          Constant:\r
 0:51            0 (const int)\r
-0:51          0 (const int)\r
 0:51        true case\r
 0:52        Sequence\r
 0:52          move second child to first child (float)\r
 0:52            f: direct index for structure (float)\r
 0:52              'locals2' (structure)\r
-0:52              1 (const int)\r
-0:52            1.000000\r
+0:52              Constant:\r
+0:52                1 (const int)\r
+0:52            Constant:\r
+0:52              1.000000\r
 0:53          move second child to first child (structure)\r
 0:53            s1_1: direct index for structure (structure)\r
 0:53              'locals2' (structure)\r
-0:53              2 (const int)\r
-0:53            0 (const int)\r
-0:53            1.000000\r
-0:53            0 (const int)\r
+0:53              Constant:\r
+0:53                2 (const int)\r
+0:53            Constant:\r
+0:53              0 (const int)\r
+0:53              1.000000\r
+0:53              0 (const int)\r
 0:54          move second child to first child (6-element array of float)\r
 0:54            'fArray' (6-element array of float)\r
-0:54            0.000000\r
-0:54            0.000000\r
-0:54            0.000000\r
-0:54            0.000000\r
-0:54            0.000000\r
-0:54            0.000000\r
+0:54            Constant:\r
+0:54              0.000000\r
+0:54              0.000000\r
+0:54              0.000000\r
+0:54              0.000000\r
+0:54              0.000000\r
+0:54              0.000000\r
 0:55          move second child to first child (structure)\r
 0:55            direct index (structure)\r
 0:55              'locals1Array' (10-element array of structure)\r
-0:55              6 (const int)\r
+0:55              Constant:\r
+0:55                6 (const int)\r
 0:55            'foo1' (uniform structure)\r
 0:56          move second child to first child (structure)\r
 0:56            'locals0' (structure)\r
-0:56            0 (const int)\r
+0:56            Constant:\r
+0:56              0 (const int)\r
 0:57          move second child to first child (structure)\r
 0:57            'locals00' (structure)\r
-0:57            0 (const int)\r
+0:57            Constant:\r
+0:57              0 (const int)\r
 0:51        false case\r
 0:59        Sequence\r
 0:59          move second child to first child (float)\r
 0:59            f: direct index for structure (float)\r
 0:59              'locals2' (structure)\r
-0:59              1 (const int)\r
+0:59              Constant:\r
+0:59                1 (const int)\r
 0:59            direct index (float)\r
 0:59              'coord' (smooth in 2-component vector of float)\r
-0:59              0 (const int)\r
+0:59              Constant:\r
+0:59                0 (const int)\r
 0:60          move second child to first child (structure)\r
 0:60            s1_1: direct index for structure (structure)\r
 0:60              'locals2' (structure)\r
-0:60              2 (const int)\r
+0:60              Constant:\r
+0:60                2 (const int)\r
 0:60            Construct structure (structure)\r
-0:60              1 (const int)\r
+0:60              Constant:\r
+0:60                1 (const int)\r
 0:60              direct index (float)\r
 0:60                'coord' (smooth in 2-component vector of float)\r
-0:60                1 (const int)\r
+0:60                Constant:\r
+0:60                  1 (const int)\r
 0:60              'foo0' (uniform structure)\r
 0:61          move second child to first child (6-element array of float)\r
 0:61            'fArray' (6-element array of float)\r
-0:61            0.000000\r
-0:61            1.000000\r
-0:61            2.000000\r
-0:61            3.000000\r
-0:61            4.000000\r
-0:61            5.000000\r
+0:61            Constant:\r
+0:61              0.000000\r
+0:61              1.000000\r
+0:61              2.000000\r
+0:61              3.000000\r
+0:61              4.000000\r
+0:61              5.000000\r
 0:62          move second child to first child (structure)\r
 0:62            direct index (structure)\r
 0:62              'locals1Array' (10-element array of structure)\r
-0:62              6 (const int)\r
+0:62              Constant:\r
+0:62                6 (const int)\r
 0:62            s1_1: direct index for structure (structure)\r
 0:62              'locals2' (structure)\r
-0:62              2 (const int)\r
+0:62              Constant:\r
+0:62                2 (const int)\r
 0:63          move second child to first child (structure)\r
 0:63            'locals0' (structure)\r
 0:63            s0_1: direct index for structure (structure)\r
 0:63              'foo1' (uniform structure)\r
-0:63              2 (const int)\r
+0:63              Constant:\r
+0:63                2 (const int)\r
 0:64          move second child to first child (structure)\r
 0:64            'locals00' (structure)\r
 0:64            'foo00' (uniform structure)\r
@@ -94,14 +115,17 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:67        Compare Greater Than (bool)\r
 0:67          i: direct index for structure (int)\r
 0:67            'locals0' (structure)\r
-0:67            0 (const int)\r
-0:67          5 (const int)\r
+0:67            Constant:\r
+0:67              0 (const int)\r
+0:67          Constant:\r
+0:67            5 (const int)\r
 0:67        true case\r
 0:68        move second child to first child (structure)\r
 0:68          'locals0' (structure)\r
 0:68          s0_0: direct index for structure (structure)\r
 0:68            'locals00' (structure)\r
-0:68            0 (const int)\r
+0:68            Constant:\r
+0:68              0 (const int)\r
 0:70      move second child to first child (4-component vector of float)\r
 0:70        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:70        vector-scale (4-component vector of float)\r
@@ -111,20 +135,26 @@ WARNING: 0:4: varying deprecated in version 130; may be removed in future releas
 0:70                Convert int to float (float)\r
 0:70                  i: direct index for structure (int)\r
 0:70                    'locals0' (structure)\r
-0:70                    0 (const int)\r
+0:70                    Constant:\r
+0:70                      0 (const int)\r
 0:70                f: direct index for structure (float)\r
 0:70                  direct index (structure)\r
 0:70                    'locals1Array' (10-element array of structure)\r
-0:70                    6 (const int)\r
-0:70                  1 (const int)\r
+0:70                    Constant:\r
+0:70                      6 (const int)\r
+0:70                  Constant:\r
+0:70                    1 (const int)\r
 0:70              direct index (float)\r
 0:70                'fArray' (6-element array of float)\r
-0:70                3 (const int)\r
+0:70                Constant:\r
+0:70                  3 (const int)\r
 0:70            f: direct index for structure (float)\r
 0:70              s1_1: direct index for structure (structure)\r
 0:70                'locals2' (structure)\r
-0:70                2 (const int)\r
-0:70              1 (const int)\r
+0:70                Constant:\r
+0:70                  2 (const int)\r
+0:70              Constant:\r
+0:70                1 (const int)\r
 0:70          Function Call: texture2D(s21;vf2; (4-component vector of float)\r
 0:70            'sampler' (uniform sampler2D)\r
 0:70            'coord' (smooth in 2-component vector of float)\r
index 9d03594..f05893d 100644 (file)
@@ -6,7 +6,8 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:22      Sequence\r
 0:22        move second child to first child (float)\r
 0:22          'scale' (float)\r
-0:22          0.000000\r
+0:22          Constant:\r
+0:22            0.000000\r
 0:24      Test condition and select (void)\r
 0:24        Condition\r
 0:24        Compare Greater Than (bool)\r
@@ -14,10 +15,14 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:24            i: direct index for structure (5-element array of int)\r
 0:24              direct index (uniform structure)\r
 0:24                'foo2' (uniform 5-element array of structure)\r
-0:24                3 (const int)\r
-0:24              0 (const int)\r
-0:24            4 (const int)\r
-0:24          0 (const int)\r
+0:24                Constant:\r
+0:24                  3 (const int)\r
+0:24              Constant:\r
+0:24                0 (const int)\r
+0:24            Constant:\r
+0:24              4 (const int)\r
+0:24          Constant:\r
+0:24            0 (const int)\r
 0:24        true case\r
 0:25        move second child to first child (float)\r
 0:25          'scale' (float)\r
@@ -28,12 +33,18 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:25                  s1_1: direct index for structure (7-element array of structure)\r
 0:25                    direct index (uniform structure)\r
 0:25                      'foo2' (uniform 5-element array of structure)\r
-0:25                      3 (const int)\r
+0:25                      Constant:\r
+0:25                        3 (const int)\r
+0:25                    Constant:\r
+0:25                      2 (const int)\r
+0:25                  Constant:\r
 0:25                    2 (const int)\r
+0:25                Constant:\r
 0:25                  2 (const int)\r
-0:25                2 (const int)\r
-0:25              3 (const int)\r
-0:25            0 (const int)\r
+0:25              Constant:\r
+0:25                3 (const int)\r
+0:25            Constant:\r
+0:25              0 (const int)\r
 0:24        false case\r
 0:27        move second child to first child (float)\r
 0:27          'scale' (float)\r
@@ -43,11 +54,16 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:27                s1_1: direct index for structure (7-element array of structure)\r
 0:27                  direct index (uniform structure)\r
 0:27                    'foo2' (uniform 5-element array of structure)\r
-0:27                    3 (const int)\r
+0:27                    Constant:\r
+0:27                      3 (const int)\r
+0:27                  Constant:\r
+0:27                    2 (const int)\r
+0:27                Constant:\r
 0:27                  2 (const int)\r
-0:27                2 (const int)\r
-0:27              1 (const int)\r
-0:27            3 (const int)\r
+0:27              Constant:\r
+0:27                1 (const int)\r
+0:27            Constant:\r
+0:27              3 (const int)\r
 0:29      move second child to first child (4-component vector of float)\r
 0:29        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:29        vector-scale (4-component vector of float)\r
index 01b2ce2..a55f091 100644 (file)
@@ -28,7 +28,8 @@ ERROR: node is still EOpNull!
 0:28              sine (highp float)\r
 0:28                'x' (smooth in highp float)\r
 0:29          case:  with expression\r
-0:29            2 (const int)\r
+0:29            Constant:\r
+0:29              2 (const int)\r
 0:?           Sequence\r
 0:30            move second child to first child (highp float)\r
 0:30              'f' (highp float)\r
@@ -44,7 +45,8 @@ ERROR: node is still EOpNull!
 0:?           Sequence\r
 0:36            Branch: Break\r
 0:37          case:  with expression\r
-0:37            1 (const int)\r
+0:37            Constant:\r
+0:37              1 (const int)\r
 0:?           Sequence\r
 0:38            move second child to first child (highp float)\r
 0:38              'f' (highp float)\r
@@ -52,7 +54,8 @@ ERROR: node is still EOpNull!
 0:38                'x' (smooth in highp float)\r
 0:39            Branch: Break\r
 0:40          case:  with expression\r
-0:40            2 (const int)\r
+0:40            Constant:\r
+0:40              2 (const int)\r
 0:?           Sequence\r
 0:41            move second child to first child (highp float)\r
 0:41              'f' (highp float)\r
@@ -71,7 +74,8 @@ ERROR: node is still EOpNull!
 0:47      body\r
 0:47        Sequence\r
 0:48          case:  with expression\r
-0:48            1 (const int)\r
+0:48            Constant:\r
+0:48              1 (const int)\r
 0:?           Sequence\r
 0:49            move second child to first child (highp float)\r
 0:49              'f' (highp float)\r
@@ -79,7 +83,8 @@ ERROR: node is still EOpNull!
 0:49                'x' (smooth in highp float)\r
 0:50            Branch: Break\r
 0:51          case:  with expression\r
-0:51            2 (const int)\r
+0:51            Constant:\r
+0:51              2 (const int)\r
 0:?           Sequence\r
 0:52            switch\r
 0:52            condition\r
@@ -87,7 +92,8 @@ ERROR: node is still EOpNull!
 0:52            body\r
 0:52              Sequence\r
 0:53                case:  with expression\r
-0:53                  1 (const int)\r
+0:53                  Constant:\r
+0:53                    1 (const int)\r
 0:?                 Sequence\r
 0:54                  move second child to first child (highp float)\r
 0:54                    'f' (highp float)\r
@@ -98,7 +104,8 @@ ERROR: node is still EOpNull!
 0:54                      'x' (smooth in highp float)\r
 0:55                  Branch: Break\r
 0:56                case:  with expression\r
-0:56                  2 (const int)\r
+0:56                  Constant:\r
+0:56                    2 (const int)\r
 0:?                 Sequence\r
 0:57                  move second child to first child (highp float)\r
 0:57                    'f' (highp float)\r
@@ -114,11 +121,13 @@ ERROR: node is still EOpNull!
 0:62              tangent (highp float)\r
 0:62                'x' (smooth in highp float)\r
 0:63          case:  with expression\r
-0:63            1 (const int)\r
+0:63            Constant:\r
+0:63              1 (const int)\r
 0:?           Sequence\r
 0:64            Branch: Break\r
 0:65          case:  with expression\r
-0:65            3.800000\r
+0:65            Constant:\r
+0:65              3.800000\r
 0:?           Sequence\r
 0:66            Branch: Break\r
 0:67          case:  with expression\r
@@ -131,7 +140,8 @@ ERROR: node is still EOpNull!
 0:71      body\r
 0:71        Sequence\r
 0:72          case:  with expression\r
-0:72            1 (const int)\r
+0:72            Constant:\r
+0:72              1 (const int)\r
 0:?           Sequence\r
 0:73            move second child to first child (highp float)\r
 0:73              'f' (highp float)\r
@@ -139,7 +149,8 @@ ERROR: node is still EOpNull!
 0:73                'x' (smooth in highp float)\r
 0:74            Branch: Break\r
 0:75          case:  with expression\r
-0:75            2 (const int)\r
+0:75            Constant:\r
+0:75              2 (const int)\r
 0:?           Sequence\r
 0:76            switch\r
 0:76            condition\r
@@ -147,7 +158,8 @@ ERROR: node is still EOpNull!
 0:76            body\r
 0:76              Sequence\r
 0:77                case:  with expression\r
-0:77                  1 (const int)\r
+0:77                  Constant:\r
+0:77                    1 (const int)\r
 0:?                 Sequence\r
 0:78                  move second child to first child (highp float)\r
 0:78                    'f' (highp float)\r
@@ -158,7 +170,8 @@ ERROR: node is still EOpNull!
 0:78                      'x' (smooth in highp float)\r
 0:79                  Branch: Break\r
 0:80                case:  with expression\r
-0:80                  2 (const int)\r
+0:80                  Constant:\r
+0:80                    2 (const int)\r
 0:?                 Sequence\r
 0:81                  move second child to first child (highp float)\r
 0:81                    'f' (highp float)\r
index 103c6b0..e6b3a93 100644 (file)
@@ -5,7 +5,8 @@
 0:11      Sequence\r
 0:11        move second child to first child (float)\r
 0:11          'blendscale' (float)\r
-0:11          1.789000\r
+0:11          Constant:\r
+0:11            1.789000\r
 0:13      Sequence\r
 0:13        move second child to first child (4-component vector of float)\r
 0:13          'w' (4-component vector of float)\r
 0:20      move second child to first child (float)\r
 0:20        direct index (float)\r
 0:20          'w_reorder' (4-component vector of float)\r
-0:20          2 (const int)\r
+0:20          Constant:\r
+0:20            2 (const int)\r
 0:20        'blendscale' (float)\r
 0:22      move second child to first child (2-component vector of float)\r
 0:22        vector swizzle (2-component vector of float)\r
 0:22          'w' (4-component vector of float)\r
 0:22          Sequence\r
-0:22            3 (const int)\r
-0:22            1 (const int)\r
+0:22            Constant:\r
+0:22              3 (const int)\r
+0:22            Constant:\r
+0:22              1 (const int)\r
 0:22        't' (smooth in 2-component vector of float)\r
 0:24      move second child to first child (float)\r
 0:24        direct index (float)\r
 0:24          'w_reorder' (4-component vector of float)\r
-0:24          0 (const int)\r
+0:24          Constant:\r
+0:24            0 (const int)\r
 0:24        'blendscale' (float)\r
 0:26      move second child to first child (4-component vector of float)\r
 0:26        vector swizzle (4-component vector of float)\r
 0:26          'w2' (4-component vector of float)\r
 0:26          Sequence\r
-0:26            0 (const int)\r
-0:26            1 (const int)\r
-0:26            2 (const int)\r
-0:26            3 (const int)\r
+0:26            Constant:\r
+0:26              0 (const int)\r
+0:26            Constant:\r
+0:26              1 (const int)\r
+0:26            Constant:\r
+0:26              2 (const int)\r
+0:26            Constant:\r
+0:26              3 (const int)\r
 0:26        vector swizzle (4-component vector of float)\r
 0:26          'u' (uniform 4-component vector of float)\r
 0:26          Sequence\r
-0:26            2 (const int)\r
-0:26            3 (const int)\r
-0:26            0 (const int)\r
-0:26            1 (const int)\r
+0:26            Constant:\r
+0:26              2 (const int)\r
+0:26            Constant:\r
+0:26              3 (const int)\r
+0:26            Constant:\r
+0:26              0 (const int)\r
+0:26            Constant:\r
+0:26              1 (const int)\r
 0:28      move second child to first child (float)\r
 0:28        direct index (float)\r
 0:28          'w_reorder' (4-component vector of float)\r
-0:28          1 (const int)\r
+0:28          Constant:\r
+0:28            1 (const int)\r
 0:28        'blendscale' (float)\r
 0:30      move second child to first child (2-component vector of float)\r
 0:30        vector swizzle (2-component vector of float)\r
 0:30          'w_dep' (4-component vector of float)\r
 0:30          Sequence\r
-0:30            0 (const int)\r
-0:30            1 (const int)\r
+0:30            Constant:\r
+0:30              0 (const int)\r
+0:30            Constant:\r
+0:30              1 (const int)\r
 0:30        vector swizzle (2-component vector of float)\r
 0:30          'w2' (4-component vector of float)\r
 0:30          Sequence\r
-0:30            0 (const int)\r
-0:30            2 (const int)\r
+0:30            Constant:\r
+0:30              0 (const int)\r
+0:30            Constant:\r
+0:30              2 (const int)\r
 0:31      move second child to first child (2-component vector of float)\r
 0:31        vector swizzle (2-component vector of float)\r
 0:31          'w_dep' (4-component vector of float)\r
 0:31          Sequence\r
-0:31            2 (const int)\r
-0:31            3 (const int)\r
+0:31            Constant:\r
+0:31              2 (const int)\r
+0:31            Constant:\r
+0:31              3 (const int)\r
 0:31        't' (smooth in 2-component vector of float)\r
 0:33      move second child to first child (2-component vector of float)\r
 0:33        vector swizzle (2-component vector of float)\r
 0:33          'w_undef' (4-component vector of float)\r
 0:33          Sequence\r
-0:33            0 (const int)\r
-0:33            1 (const int)\r
+0:33            Constant:\r
+0:33              0 (const int)\r
+0:33            Constant:\r
+0:33              1 (const int)\r
 0:33        vector swizzle (2-component vector of float)\r
 0:33          'u' (uniform 4-component vector of float)\r
 0:33          Sequence\r
-0:33            2 (const int)\r
-0:33            3 (const int)\r
+0:33            Constant:\r
+0:33              2 (const int)\r
+0:33            Constant:\r
+0:33              3 (const int)\r
 0:35      Test condition and select (void)\r
 0:35        Condition\r
 0:35        'p' (uniform bool)\r
 0:36        move second child to first child (float)\r
 0:36          direct index (float)\r
 0:36            'w_flow' (4-component vector of float)\r
-0:36            0 (const int)\r
+0:36            Constant:\r
+0:36              0 (const int)\r
 0:36          direct index (float)\r
 0:36            't' (smooth in 2-component vector of float)\r
-0:36            0 (const int)\r
+0:36            Constant:\r
+0:36              0 (const int)\r
 0:35        false case\r
 0:38        move second child to first child (float)\r
 0:38          direct index (float)\r
 0:38            'w_flow' (4-component vector of float)\r
-0:38            0 (const int)\r
+0:38            Constant:\r
+0:38              0 (const int)\r
 0:38          direct index (float)\r
 0:38            't' (smooth in 2-component vector of float)\r
-0:38            1 (const int)\r
+0:38            Constant:\r
+0:38              1 (const int)\r
 0:40      move second child to first child (4-component vector of float)\r
 0:40        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:40        mix (4-component vector of float)\r
 0:43      Sequence\r
 0:43        move second child to first child (4-component vector of float)\r
 0:43          'rep' (4-component vector of float)\r
-0:43          0.000000\r
-0:43          0.000000\r
-0:43          0.000000\r
-0:43          1.000000\r
+0:43          Constant:\r
+0:43            0.000000\r
+0:43            0.000000\r
+0:43            0.000000\r
+0:43            1.000000\r
 0:45      Test condition and select (void)\r
 0:45        Condition\r
 0:45        Compare Less Than (bool)\r
 0:45          direct index (float)\r
 0:45            'c' (2-component vector of float)\r
-0:45            0 (const int)\r
-0:45          0.000000\r
+0:45            Constant:\r
+0:45              0 (const int)\r
+0:45          Constant:\r
+0:45            0.000000\r
 0:45        true case\r
 0:46        multiply second child into first child (float)\r
 0:46          direct index (float)\r
 0:46            'c' (2-component vector of float)\r
-0:46            0 (const int)\r
-0:46          -1.000000\r
+0:46            Constant:\r
+0:46              0 (const int)\r
+0:46          Constant:\r
+0:46            -1.000000\r
 0:48      Test condition and select (void)\r
 0:48        Condition\r
 0:48        Compare Less Than or Equal (bool)\r
 0:48          direct index (float)\r
 0:48            'c' (2-component vector of float)\r
-0:48            0 (const int)\r
-0:48          1.000000\r
+0:48            Constant:\r
+0:48              0 (const int)\r
+0:48          Constant:\r
+0:48            1.000000\r
 0:48        true case\r
 0:49        move second child to first child (float)\r
 0:49          direct index (float)\r
 0:49            'rep' (4-component vector of float)\r
-0:49            0 (const int)\r
-0:49          3.400000\r
+0:49            Constant:\r
+0:49              0 (const int)\r
+0:49          Constant:\r
+0:49            3.400000\r
 0:51      add second child into first child (4-component vector of float)\r
 0:51        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:51        'rep' (4-component vector of float)\r
index 582d2d3..74bf270 100644 (file)
@@ -5,7 +5,8 @@
 0:15      Sequence\r
 0:15        move second child to first child (float)\r
 0:15          'blendscale' (float)\r
-0:15          1.789000\r
+0:15          Constant:\r
+0:15            1.789000\r
 0:17      Sequence\r
 0:17        move second child to first child (4-component vector of float)\r
 0:17          'v' (4-component vector of float)\r
 0:17                  'scale' (uniform 2-component vector of float)\r
 0:17                'scale' (uniform 2-component vector of float)\r
 0:17            Sequence\r
-0:17              3 (const int)\r
-0:17              2 (const int)\r
-0:17              1 (const int)\r
-0:17              0 (const int)\r
+0:17              Constant:\r
+0:17                3 (const int)\r
+0:17              Constant:\r
+0:17                2 (const int)\r
+0:17              Constant:\r
+0:17                1 (const int)\r
+0:17              Constant:\r
+0:17                0 (const int)\r
 0:19      Sequence\r
 0:19        move second child to first child (4-component vector of float)\r
 0:19          'w' (4-component vector of float)\r
index 806c38f..4a2738d 100644 (file)
@@ -7,43 +7,51 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:19      Sequence\r
 0:19        move second child to first child (float)\r
 0:19          'blendscale' (float)\r
-0:19          1.789000\r
+0:19          Constant:\r
+0:19            1.789000\r
 0:20      Sequence\r
 0:20        move second child to first child (float)\r
 0:20          'bias' (float)\r
-0:20          2.000000\r
+0:20          Constant:\r
+0:20            2.000000\r
 0:21      Sequence\r
 0:21        move second child to first child (float)\r
 0:21          'lod' (float)\r
-0:21          3.000000\r
+0:21          Constant:\r
+0:21            3.000000\r
 0:22      Sequence\r
 0:22        move second child to first child (float)\r
 0:22          'proj' (float)\r
-0:22          2.000000\r
+0:22          Constant:\r
+0:22            2.000000\r
 0:23      Sequence\r
 0:23        move second child to first child (float)\r
 0:23          'coords1D' (float)\r
-0:23          1.789000\r
+0:23          Constant:\r
+0:23            1.789000\r
 0:24      Sequence\r
 0:24        move second child to first child (3-component vector of float)\r
 0:24          'coords3D' (3-component vector of float)\r
-0:24          1.789000\r
-0:24          2.718000\r
-0:24          3.453000\r
+0:24          Constant:\r
+0:24            1.789000\r
+0:24            2.718000\r
+0:24            3.453000\r
 0:25      Sequence\r
 0:25        move second child to first child (4-component vector of float)\r
 0:25          'coords4D' (4-component vector of float)\r
-0:25          1.789000\r
-0:25          2.718000\r
-0:25          3.453000\r
-0:25          2.000000\r
+0:25          Constant:\r
+0:25            1.789000\r
+0:25            2.718000\r
+0:25            3.453000\r
+0:25            2.000000\r
 0:26      Sequence\r
 0:26        move second child to first child (4-component vector of float)\r
 0:26          'color' (4-component vector of float)\r
-0:26          0.000000\r
-0:26          0.000000\r
-0:26          0.000000\r
-0:26          0.000000\r
+0:26          Constant:\r
+0:26            0.000000\r
+0:26            0.000000\r
+0:26            0.000000\r
+0:26            0.000000\r
 0:28      add second child into first child (4-component vector of float)\r
 0:28        'color' (4-component vector of float)\r
 0:28        Function Call: texture1D(s11;f1; (4-component vector of float)\r
@@ -179,12 +187,14 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:57      Sequence\r
 0:57        move second child to first child (2-component vector of int)\r
 0:57          'iCoords2D' (2-component vector of int)\r
-0:57          0 (const int)\r
-0:57          5 (const int)\r
+0:57          Constant:\r
+0:57            0 (const int)\r
+0:57            5 (const int)\r
 0:58      Sequence\r
 0:58        move second child to first child (int)\r
 0:58          'iLod' (int)\r
-0:58          1 (const int)\r
+0:58          Constant:\r
+0:58            1 (const int)\r
 0:60      add second child into first child (4-component vector of float)\r
 0:60        'color' (4-component vector of float)\r
 0:60        Function Call: texelFetch(s21;vi2;i1; (4-component vector of float)\r
@@ -204,8 +214,9 @@ WARNING: 0:15: varying deprecated in version 130; may be removed in future relea
 0:64      Sequence\r
 0:64        move second child to first child (2-component vector of int)\r
 0:64          'offset' (2-component vector of int)\r
-0:64          3 (const int)\r
-0:64          -7 (const int)\r
+0:64          Constant:\r
+0:64            3 (const int)\r
+0:64            -7 (const int)\r
 0:66      add second child into first child (4-component vector of float)\r
 0:66        'color' (4-component vector of float)\r
 0:66        Function Call: textureGrad(s21;vf2;vf2;vf2; (4-component vector of float)\r
index f371596..fb82cc3 100644 (file)
@@ -18,35 +18,43 @@ ERROR: node is still EOpNull!
 0:9  Sequence\r
 0:9    move second child to first child (highp int)\r
 0:9      'E1' (highp int)\r
-0:9      -1 (const int)\r
+0:9      Constant:\r
+0:9        -1 (const int)\r
 0:10  Sequence\r
 0:10    move second child to first child (highp int)\r
 0:10      'E2' (highp int)\r
-0:10      -1 (const int)\r
+0:10      Constant:\r
+0:10        -1 (const int)\r
 0:11  Sequence\r
 0:11    move second child to first child (highp int)\r
 0:11      'B' (highp int)\r
-0:11      -1 (const int)\r
+0:11      Constant:\r
+0:11        -1 (const int)\r
 0:13  Sequence\r
 0:13    move second child to first child (highp int)\r
 0:13      'OE' (highp int)\r
-0:13      1073741823 (const int)\r
+0:13      Constant:\r
+0:13        1073741823 (const int)\r
 0:14  Sequence\r
 0:14    move second child to first child (highp int)\r
 0:14      'HE' (highp int)\r
-0:14      -1 (const int)\r
+0:14      Constant:\r
+0:14        -1 (const int)\r
 0:17  Sequence\r
 0:17    move second child to first child (highp float)\r
 0:17      'F' (highp float)\r
-0:17      1.012346\r
+0:17      Constant:\r
+0:17        1.012346\r
 0:20  Sequence\r
 0:20    move second child to first child (highp float)\r
 0:20      'G' (highp float)\r
-0:20      1.012346\r
+0:20      Constant:\r
+0:20        1.012346\r
 0:23  Sequence\r
 0:23    move second child to first child (highp float)\r
 0:23      'E3' (highp float)\r
-0:23      12.000000\r
+0:23      Constant:\r
+0:23        12.000000\r
 0:25  Function Definition: main( (void)\r
 0:25    Function Parameters: \r
 0:27    Sequence\r
@@ -61,19 +69,23 @@ ERROR: node is still EOpNull!
 0:33  Sequence\r
 0:33    move second child to first child (highp int)\r
 0:33      'superH' (highp int)\r
-0:33      -1 (const int)\r
+0:33      Constant:\r
+0:33        -1 (const int)\r
 0:34  Sequence\r
 0:34    move second child to first child (highp int)\r
 0:34      'superO' (highp int)\r
-0:34      1073741823 (const int)\r
+0:34      Constant:\r
+0:34        1073741823 (const int)\r
 0:35  Sequence\r
 0:35    move second child to first child (highp int)\r
 0:35      'superI' (highp int)\r
-0:35      -1 (const int)\r
+0:35      Constant:\r
+0:35        -1 (const int)\r
 0:36  Sequence\r
 0:36    move second child to first child (highp float)\r
 0:36      'superF' (highp float)\r
-0:36      1.#INF00\r
+0:36      Constant:\r
+0:36        1.#INF00\r
 0:?   Linker Objects\r
 0:?     'BCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)\r
 0:?     'ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789' (in highp float)\r
index af4db5b..ee4164e 100644 (file)
 0:36                logical-and (bool)\r
 0:36                  direct index (bool)\r
 0:36                    'u_b2' (uniform 2-component vector of bool)\r
-0:36                    0 (const int)\r
+0:36                    Constant:\r
+0:36                      0 (const int)\r
 0:36                  direct index (bool)\r
 0:36                    'i_b2' (uniform 2-component vector of bool)\r
-0:36                    0 (const int)\r
+0:36                    Constant:\r
+0:36                      0 (const int)\r
 0:36                direct index (bool)\r
 0:36                  'u_b2' (uniform 2-component vector of bool)\r
-0:36                  1 (const int)\r
+0:36                  Constant:\r
+0:36                    1 (const int)\r
 0:36              direct index (bool)\r
 0:36                'i_b2' (uniform 2-component vector of bool)\r
-0:36                1 (const int)\r
+0:36                Constant:\r
+0:36                  1 (const int)\r
 0:37      Sequence\r
 0:37        move second child to first child (3-component vector of bool)\r
 0:37          'b3' (3-component vector of bool)\r
 0:37                    logical-and (bool)\r
 0:37                      direct index (bool)\r
 0:37                        'u_b3' (uniform 3-component vector of bool)\r
-0:37                        0 (const int)\r
+0:37                        Constant:\r
+0:37                          0 (const int)\r
 0:37                      direct index (bool)\r
 0:37                        'i_b3' (uniform 3-component vector of bool)\r
-0:37                        0 (const int)\r
+0:37                        Constant:\r
+0:37                          0 (const int)\r
 0:37                    direct index (bool)\r
 0:37                      'u_b3' (uniform 3-component vector of bool)\r
-0:37                      1 (const int)\r
+0:37                      Constant:\r
+0:37                        1 (const int)\r
 0:37                  direct index (bool)\r
 0:37                    'i_b3' (uniform 3-component vector of bool)\r
-0:37                    1 (const int)\r
+0:37                    Constant:\r
+0:37                      1 (const int)\r
 0:37                direct index (bool)\r
 0:37                  'u_b3' (uniform 3-component vector of bool)\r
-0:37                  2 (const int)\r
+0:37                  Constant:\r
+0:37                    2 (const int)\r
 0:37              direct index (bool)\r
 0:37                'i_b3' (uniform 3-component vector of bool)\r
-0:37                2 (const int)\r
+0:37                Constant:\r
+0:37                  2 (const int)\r
 0:38      Sequence\r
 0:38        move second child to first child (4-component vector of bool)\r
 0:38          'b4' (4-component vector of bool)\r
 0:38                        logical-and (bool)\r
 0:38                          direct index (bool)\r
 0:38                            'u_b4' (uniform 4-component vector of bool)\r
-0:38                            0 (const int)\r
+0:38                            Constant:\r
+0:38                              0 (const int)\r
 0:38                          direct index (bool)\r
 0:38                            'i_b4' (uniform 4-component vector of bool)\r
-0:38                            0 (const int)\r
+0:38                            Constant:\r
+0:38                              0 (const int)\r
 0:38                        direct index (bool)\r
 0:38                          'u_b4' (uniform 4-component vector of bool)\r
-0:38                          1 (const int)\r
+0:38                          Constant:\r
+0:38                            1 (const int)\r
 0:38                      direct index (bool)\r
 0:38                        'i_b4' (uniform 4-component vector of bool)\r
-0:38                        1 (const int)\r
+0:38                        Constant:\r
+0:38                          1 (const int)\r
 0:38                    direct index (bool)\r
 0:38                      'u_b4' (uniform 4-component vector of bool)\r
-0:38                      2 (const int)\r
+0:38                      Constant:\r
+0:38                        2 (const int)\r
 0:38                  direct index (bool)\r
 0:38                    'i_b4' (uniform 4-component vector of bool)\r
-0:38                    2 (const int)\r
+0:38                    Constant:\r
+0:38                      2 (const int)\r
 0:38                direct index (bool)\r
 0:38                  'u_b4' (uniform 4-component vector of bool)\r
-0:38                  3 (const int)\r
+0:38                  Constant:\r
+0:38                    3 (const int)\r
 0:38              direct index (bool)\r
 0:38                'i_b4' (uniform 4-component vector of bool)\r
-0:38                3 (const int)\r
+0:38                Constant:\r
+0:38                  3 (const int)\r
 0:40      Sequence\r
 0:40        move second child to first child (int)\r
 0:40          'i' (int)\r
 0:51                            'b' (bool)\r
 0:52                            direct index (bool)\r
 0:52                              'b2' (2-component vector of bool)\r
-0:52                              0 (const int)\r
+0:52                              Constant:\r
+0:52                                0 (const int)\r
 0:53                          direct index (bool)\r
 0:53                            'b2' (2-component vector of bool)\r
-0:53                            1 (const int)\r
+0:53                            Constant:\r
+0:53                              1 (const int)\r
 0:54                        direct index (bool)\r
 0:54                          'b3' (3-component vector of bool)\r
-0:54                          0 (const int)\r
+0:54                          Constant:\r
+0:54                            0 (const int)\r
 0:55                      direct index (bool)\r
 0:55                        'b3' (3-component vector of bool)\r
-0:55                        1 (const int)\r
+0:55                        Constant:\r
+0:55                          1 (const int)\r
 0:56                    direct index (bool)\r
 0:56                      'b3' (3-component vector of bool)\r
-0:56                      2 (const int)\r
+0:56                      Constant:\r
+0:56                        2 (const int)\r
 0:57                  direct index (bool)\r
 0:57                    'b4' (4-component vector of bool)\r
-0:57                    0 (const int)\r
+0:57                    Constant:\r
+0:57                      0 (const int)\r
 0:58                direct index (bool)\r
 0:58                  'b4' (4-component vector of bool)\r
-0:58                  1 (const int)\r
+0:58                  Constant:\r
+0:58                    1 (const int)\r
 0:59              direct index (bool)\r
 0:59                'b4' (4-component vector of bool)\r
-0:59                2 (const int)\r
+0:59                Constant:\r
+0:59                  2 (const int)\r
 0:60            direct index (bool)\r
 0:60              'b4' (4-component vector of bool)\r
-0:60              3 (const int)\r
+0:60              Constant:\r
+0:60                3 (const int)\r
 0:60          true case\r
 0:79          Construct vec4 (4-component vector of float)\r
 0:79            add (float)\r
 0:61                                                    'i' (int)\r
 0:62                                                    direct index (int)\r
 0:62                                                      'i2' (2-component vector of int)\r
-0:62                                                      0 (const int)\r
+0:62                                                      Constant:\r
+0:62                                                        0 (const int)\r
 0:63                                                  direct index (int)\r
 0:63                                                    'i2' (2-component vector of int)\r
-0:63                                                    1 (const int)\r
+0:63                                                    Constant:\r
+0:63                                                      1 (const int)\r
 0:64                                                direct index (int)\r
 0:64                                                  'i3' (3-component vector of int)\r
-0:64                                                  0 (const int)\r
+0:64                                                  Constant:\r
+0:64                                                    0 (const int)\r
 0:65                                              direct index (int)\r
 0:65                                                'i3' (3-component vector of int)\r
-0:65                                                1 (const int)\r
+0:65                                                Constant:\r
+0:65                                                  1 (const int)\r
 0:66                                            direct index (int)\r
 0:66                                              'i3' (3-component vector of int)\r
-0:66                                              2 (const int)\r
+0:66                                              Constant:\r
+0:66                                                2 (const int)\r
 0:67                                          direct index (int)\r
 0:67                                            'i4' (4-component vector of int)\r
-0:67                                            0 (const int)\r
+0:67                                            Constant:\r
+0:67                                              0 (const int)\r
 0:68                                        direct index (int)\r
 0:68                                          'i4' (4-component vector of int)\r
-0:68                                          1 (const int)\r
+0:68                                          Constant:\r
+0:68                                            1 (const int)\r
 0:69                                      direct index (int)\r
 0:69                                        'i4' (4-component vector of int)\r
-0:69                                        2 (const int)\r
+0:69                                        Constant:\r
+0:69                                          2 (const int)\r
 0:70                                    direct index (int)\r
 0:70                                      'i4' (4-component vector of int)\r
-0:70                                      3 (const int)\r
+0:70                                      Constant:\r
+0:70                                        3 (const int)\r
 0:71                                'f' (float)\r
 0:72                              direct index (float)\r
 0:72                                'f2' (2-component vector of float)\r
-0:72                                0 (const int)\r
+0:72                                Constant:\r
+0:72                                  0 (const int)\r
 0:73                            direct index (float)\r
 0:73                              'f2' (2-component vector of float)\r
-0:73                              1 (const int)\r
+0:73                              Constant:\r
+0:73                                1 (const int)\r
 0:74                          direct index (float)\r
 0:74                            'f3' (3-component vector of float)\r
-0:74                            0 (const int)\r
+0:74                            Constant:\r
+0:74                              0 (const int)\r
 0:75                        direct index (float)\r
 0:75                          'f3' (3-component vector of float)\r
-0:75                          1 (const int)\r
+0:75                          Constant:\r
+0:75                            1 (const int)\r
 0:76                      direct index (float)\r
 0:76                        'f3' (3-component vector of float)\r
-0:76                        2 (const int)\r
+0:76                        Constant:\r
+0:76                          2 (const int)\r
 0:77                    direct index (float)\r
 0:77                      'f4' (4-component vector of float)\r
-0:77                      0 (const int)\r
+0:77                      Constant:\r
+0:77                        0 (const int)\r
 0:78                  direct index (float)\r
 0:78                    'f4' (4-component vector of float)\r
-0:78                    1 (const int)\r
+0:78                    Constant:\r
+0:78                      1 (const int)\r
 0:79                direct index (float)\r
 0:79                  'f4' (4-component vector of float)\r
-0:79                  2 (const int)\r
+0:79                  Constant:\r
+0:79                    2 (const int)\r
 0:80              direct index (float)\r
 0:80                'f4' (4-component vector of float)\r
-0:80                3 (const int)\r
+0:80                Constant:\r
+0:80                  3 (const int)\r
 0:60          false case\r
-0:80          1.000000\r
-0:80          1.000000\r
-0:80          1.000000\r
-0:80          1.000000\r
+0:80          Constant:\r
+0:80            1.000000\r
+0:80            1.000000\r
+0:80            1.000000\r
+0:80            1.000000\r
 0:?   Linker Objects\r
 0:?     'u_b' (uniform bool)\r
 0:?     'u_b2' (uniform 2-component vector of bool)\r
index b871722..6b17b95 100644 (file)
@@ -16,73 +16,92 @@ ERROR: node is still EOpNull!
 0:17      Sequence\r
 0:17        move second child to first child (mediump int)\r
 0:17          'count' (mediump int)\r
-0:17          1 (const int)\r
+0:17          Constant:\r
+0:17            1 (const int)\r
 0:19      Sequence\r
 0:19        move second child to first child (mediump uint)\r
 0:19          'u' (mediump uint)\r
 0:19          add (mediump uint)\r
 0:19            direct index (mediump uint)\r
 0:19              't' (flat in mediump 2-component vector of uint)\r
-0:19              1 (const int)\r
-0:19            3 (const uint)\r
+0:19              Constant:\r
+0:19                1 (const int)\r
+0:19            Constant:\r
+0:19              3 (const uint)\r
 0:27      Test condition and select (void)\r
 0:27        Condition\r
-0:27        true (const bool)\r
+0:27        Constant:\r
+0:27          true (const bool)\r
 0:27        true case\r
 0:28        multiply second child into first child (mediump int)\r
 0:28          'count' (mediump int)\r
-0:28          2 (const int)\r
+0:28          Constant:\r
+0:28            2 (const int)\r
 0:29      Test condition and select (void)\r
 0:29        Condition\r
-0:29        true (const bool)\r
+0:29        Constant:\r
+0:29          true (const bool)\r
 0:29        true case\r
 0:30        multiply second child into first child (mediump int)\r
 0:30          'count' (mediump int)\r
-0:30          3 (const int)\r
+0:30          Constant:\r
+0:30            3 (const int)\r
 0:31      Test condition and select (void)\r
 0:31        Condition\r
-0:31        false (const bool)\r
+0:31        Constant:\r
+0:31          false (const bool)\r
 0:31        true case\r
 0:32        multiply second child into first child (mediump int)\r
 0:32          'count' (mediump int)\r
-0:32          5 (const int)\r
+0:32          Constant:\r
+0:32            5 (const int)\r
 0:41      Test condition and select (void)\r
 0:41        Condition\r
-0:41        true (const bool)\r
+0:41        Constant:\r
+0:41          true (const bool)\r
 0:41        true case\r
 0:42        multiply second child into first child (mediump int)\r
 0:42          'count' (mediump int)\r
-0:42          7 (const int)\r
+0:42          Constant:\r
+0:42            7 (const int)\r
 0:43      Test condition and select (void)\r
 0:43        Condition\r
-0:43        true (const bool)\r
+0:43        Constant:\r
+0:43          true (const bool)\r
 0:43        true case\r
 0:44        multiply second child into first child (mediump int)\r
 0:44          'count' (mediump int)\r
-0:44          11 (const int)\r
+0:44          Constant:\r
+0:44            11 (const int)\r
 0:45      Test condition and select (void)\r
 0:45        Condition\r
-0:45        false (const bool)\r
+0:45        Constant:\r
+0:45          false (const bool)\r
 0:45        true case\r
 0:46        multiply second child into first child (mediump int)\r
 0:46          'count' (mediump int)\r
-0:46          13 (const int)\r
+0:46          Constant:\r
+0:46            13 (const int)\r
 0:49      Sequence\r
 0:49        move second child to first child (mediump int)\r
 0:49          'shiftedii' (mediump int)\r
-0:49          -1 (const int)\r
+0:49          Constant:\r
+0:49            -1 (const int)\r
 0:50      Sequence\r
 0:50        move second child to first child (mediump uint)\r
 0:50          'shiftedui' (mediump uint)\r
-0:50          4194303 (const uint)\r
+0:50          Constant:\r
+0:50            4194303 (const uint)\r
 0:52      Sequence\r
 0:52        move second child to first child (mediump int)\r
 0:52          'shiftediu' (mediump int)\r
-0:52          -1 (const int)\r
+0:52          Constant:\r
+0:52            -1 (const int)\r
 0:53      Sequence\r
 0:53        move second child to first child (mediump uint)\r
 0:53          'shifteduu' (mediump uint)\r
-0:53          4194303 (const uint)\r
+0:53          Constant:\r
+0:53            4194303 (const uint)\r
 0:55      Test condition and select (void)\r
 0:55        Condition\r
 0:55        Compare Equal (bool)\r
@@ -106,7 +125,8 @@ ERROR: node is still EOpNull!
 0:58            'usampler' (uniform lowp usampler2D)\r
 0:58            add (highp 2-component vector of float)\r
 0:58              'tc' (smooth in highp 2-component vector of float)\r
-0:58              1.000000\r
+0:58              Constant:\r
+0:58                1.000000\r
 0:59      Test condition and select (void)\r
 0:59        Condition\r
 0:59        Compare Equal (bool)\r
@@ -120,15 +140,18 @@ ERROR: node is still EOpNull!
 0:60            'usampler' (uniform lowp usampler2D)\r
 0:60            subtract (highp 2-component vector of float)\r
 0:60              'tc' (smooth in highp 2-component vector of float)\r
-0:60              2.000000\r
-0:60              2.000000\r
+0:60              Constant:\r
+0:60                2.000000\r
+0:60                2.000000\r
 0:62      Test condition and select (void)\r
 0:62        Condition\r
 0:62        Compare Greater Than (bool)\r
 0:62          direct index (mediump uint)\r
 0:62            't' (flat in mediump 2-component vector of uint)\r
-0:62            0 (const int)\r
-0:62          4 (const uint)\r
+0:62            Constant:\r
+0:62              0 (const int)\r
+0:62          Constant:\r
+0:62            4 (const uint)\r
 0:62        true case\r
 0:63        Sequence\r
 0:63          Sequence\r
@@ -159,50 +182,62 @@ ERROR: node is still EOpNull!
 0:67                'count' (mediump int)\r
 0:75      Test condition and select (void)\r
 0:75        Condition\r
-0:75        true (const bool)\r
+0:75        Constant:\r
+0:75          true (const bool)\r
 0:75        true case\r
 0:76        multiply second child into first child (mediump int)\r
 0:76          'count' (mediump int)\r
-0:76          17 (const int)\r
+0:76          Constant:\r
+0:76            17 (const int)\r
 0:78      Test condition and select (void)\r
 0:78        Condition\r
-0:78        false (const bool)\r
+0:78        Constant:\r
+0:78          false (const bool)\r
 0:78        true case\r
 0:79        multiply second child into first child (mediump int)\r
 0:79          'count' (mediump int)\r
-0:79          19 (const int)\r
+0:79          Constant:\r
+0:79            19 (const int)\r
 0:81      Test condition and select (void)\r
 0:81        Condition\r
-0:81        true (const bool)\r
+0:81        Constant:\r
+0:81          true (const bool)\r
 0:81        true case\r
 0:82        multiply second child into first child (mediump int)\r
 0:82          'count' (mediump int)\r
-0:82          23 (const int)\r
+0:82          Constant:\r
+0:82            23 (const int)\r
 0:84      Test condition and select (void)\r
 0:84        Condition\r
-0:84        true (const bool)\r
+0:84        Constant:\r
+0:84          true (const bool)\r
 0:84        true case\r
 0:85        multiply second child into first child (mediump int)\r
 0:85          'count' (mediump int)\r
-0:85          27 (const int)\r
+0:85          Constant:\r
+0:85            27 (const int)\r
 0:87      Sequence\r
 0:87        move second child to first child (mediump uint)\r
 0:87          'mask1' (mediump uint)\r
-0:87          161 (const uint)\r
+0:87          Constant:\r
+0:87            161 (const uint)\r
 0:88      Sequence\r
 0:88        move second child to first child (mediump uint)\r
 0:88          'mask2' (mediump uint)\r
-0:88          2576 (const uint)\r
+0:88          Constant:\r
+0:88            2576 (const uint)\r
 0:89      Sequence\r
 0:89        move second child to first child (mediump uint)\r
 0:89          'mask3' (mediump uint)\r
 0:89          left-shift (mediump uint)\r
 0:89            'mask1' (mediump uint)\r
-0:89            4 (const int)\r
+0:89            Constant:\r
+0:89              4 (const int)\r
 0:90      Sequence\r
 0:90        move second child to first child (mediump uint)\r
 0:90          'mask4' (mediump uint)\r
-0:90          2737 (const uint)\r
+0:90          Constant:\r
+0:90            2737 (const uint)\r
 0:92      Test condition and select (void)\r
 0:92        Condition\r
 0:92        Compare Equal (bool)\r
@@ -211,18 +246,21 @@ ERROR: node is still EOpNull!
 0:92        true case\r
 0:93        multiply second child into first child (mediump int)\r
 0:93          'count' (mediump int)\r
-0:93          100 (const int)\r
+0:93          Constant:\r
+0:93            100 (const int)\r
 0:95      Test condition and select (void)\r
 0:95        Condition\r
 0:95        Compare Not Equal (bool)\r
 0:95          bitwise and (mediump uint)\r
 0:95            'mask3' (mediump uint)\r
 0:95            'mask1' (mediump uint)\r
-0:95          0 (const uint)\r
+0:95          Constant:\r
+0:95            0 (const uint)\r
 0:95        true case\r
 0:96        multiply second child into first child (mediump int)\r
 0:96          'count' (mediump int)\r
-0:96          101 (const int)\r
+0:96          Constant:\r
+0:96            101 (const int)\r
 0:98      Test condition and select (void)\r
 0:98        Condition\r
 0:98        Compare Equal (bool)\r
@@ -233,18 +271,21 @@ ERROR: node is still EOpNull!
 0:98        true case\r
 0:99        multiply second child into first child (mediump int)\r
 0:99          'count' (mediump int)\r
-0:99          102 (const int)\r
+0:99          Constant:\r
+0:99            102 (const int)\r
 0:101      Test condition and select (void)\r
 0:101        Condition\r
 0:101        Compare Equal (bool)\r
 0:101          exclusive-or (mediump uint)\r
 0:101            'mask1' (mediump uint)\r
 0:101            'mask4' (mediump uint)\r
-0:101          2576 (const uint)\r
+0:101          Constant:\r
+0:101            2576 (const uint)\r
 0:101        true case\r
 0:102        multiply second child into first child (mediump int)\r
 0:102          'count' (mediump int)\r
-0:102          103 (const int)\r
+0:102          Constant:\r
+0:102            103 (const int)\r
 0:104      add second child into first child (mediump 4-component vector of uint)\r
 0:104        'c' (out mediump 4-component vector of uint)\r
 0:104        Construct uvec4 (mediump 4-component vector of uint)\r
index f67d80d..b8f1594 100644 (file)
@@ -8,25 +8,32 @@
 0:9          add (4-component vector of float)\r
 0:9            direct index (uniform 4-component vector of float)\r
 0:9              'color' (uniform 6-element array of 4-component vector of float)\r
-0:9              1 (const int)\r
+0:9              Constant:\r
+0:9                1 (const int)\r
 0:9            direct index (uniform 4-component vector of float)\r
 0:9              'color' (uniform 6-element array of 4-component vector of float)\r
-0:9              1 (const int)\r
+0:9              Constant:\r
+0:9                1 (const int)\r
 0:11      add second child into first child (3-component vector of float)\r
 0:11        vector swizzle (3-component vector of float)\r
 0:11          'texColor' (4-component vector of float)\r
 0:11          Sequence\r
-0:11            0 (const int)\r
-0:11            1 (const int)\r
-0:11            2 (const int)\r
+0:11            Constant:\r
+0:11              0 (const int)\r
+0:11            Constant:\r
+0:11              1 (const int)\r
+0:11            Constant:\r
+0:11              2 (const int)\r
 0:11        'inColor' (uniform 3-component vector of float)\r
 0:13      add second child into first child (float)\r
 0:13        direct index (float)\r
 0:13          'texColor' (4-component vector of float)\r
-0:13          3 (const int)\r
+0:13          Constant:\r
+0:13            3 (const int)\r
 0:13        direct index (uniform float)\r
 0:13          'alpha' (uniform 16-element array of float)\r
-0:13          12 (const int)\r
+0:13          Constant:\r
+0:13            12 (const int)\r
 0:15      move second child to first child (4-component vector of float)\r
 0:15        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:15        'texColor' (4-component vector of float)\r
index a217c28..96db492 100644 (file)
@@ -14,10 +14,14 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:34            direct index (structure)\r
 0:34              s2_1: direct index for structure (3-element array of structure)\r
 0:34                'foo3' (uniform structure)\r
-0:34                0 (const int)\r
-0:34              1 (const int)\r
+0:34                Constant:\r
+0:34                  0 (const int)\r
+0:34              Constant:\r
+0:34                1 (const int)\r
+0:34            Constant:\r
+0:34              0 (const int)\r
+0:34          Constant:\r
 0:34            0 (const int)\r
-0:34          0 (const int)\r
 0:34        true case\r
 0:35        move second child to first child (float)\r
 0:35          'scale' (float)\r
@@ -31,16 +35,22 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:35                      indirect index (structure)\r
 0:35                        s2_1: direct index for structure (3-element array of structure)\r
 0:35                          'foo3' (uniform structure)\r
-0:35                          0 (const int)\r
+0:35                          Constant:\r
+0:35                            0 (const int)\r
 0:35                        i: direct index for structure (int)\r
 0:35                          'foo' (uniform structure)\r
-0:35                          0 (const int)\r
-0:35                      0 (const int)\r
-0:35                    2 (const int)\r
+0:35                          Constant:\r
+0:35                            0 (const int)\r
+0:35                      Constant:\r
+0:35                        0 (const int)\r
+0:35                    Constant:\r
+0:35                      2 (const int)\r
 0:35                  Pre-Increment (int)\r
 0:35                    'iLocal' (int)\r
-0:35              2 (const int)\r
-0:35            1 (const int)\r
+0:35              Constant:\r
+0:35                2 (const int)\r
+0:35            Constant:\r
+0:35              1 (const int)\r
 0:34        false case\r
 0:37        move second child to first child (float)\r
 0:37          'scale' (float)\r
@@ -49,10 +59,14 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:37              direct index (structure)\r
 0:37                s2_1: direct index for structure (3-element array of structure)\r
 0:37                  'foo3' (uniform structure)\r
+0:37                  Constant:\r
+0:37                    0 (const int)\r
+0:37                Constant:\r
 0:37                  0 (const int)\r
-0:37                0 (const int)\r
-0:37              2 (const int)\r
-0:37            1 (const int)\r
+0:37              Constant:\r
+0:37                2 (const int)\r
+0:37            Constant:\r
+0:37              1 (const int)\r
 0:43      move second child to first child (4-component vector of float)\r
 0:43        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:43        vector-scale (4-component vector of float)\r
@@ -67,8 +81,9 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:45            'coord' (smooth in 2-component vector of float)\r
 0:45            Construct vec2 (2-component vector of float)\r
 0:45              'scale' (float)\r
-0:45            1.000000\r
-0:45            2.000000\r
+0:45            Constant:\r
+0:45              1.000000\r
+0:45              2.000000\r
 0:46      add second child into first child (4-component vector of float)\r
 0:46        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:46        Construct vec4 (4-component vector of float)\r
@@ -76,12 +91,14 @@ WARNING: 0:3: varying deprecated in version 130; may be removed in future releas
 0:46            'constructed' (3-element array of 2-component vector of float)\r
 0:46            i: direct index for structure (int)\r
 0:46              'foo' (uniform structure)\r
-0:46              0 (const int)\r
+0:46              Constant:\r
+0:46                0 (const int)\r
 0:46          indirect index (2-component vector of float)\r
 0:46            'constructed' (3-element array of 2-component vector of float)\r
 0:46            i: direct index for structure (int)\r
 0:46              'foo' (uniform structure)\r
-0:46              0 (const int)\r
+0:46              Constant:\r
+0:46                0 (const int)\r
 0:?   Linker Objects\r
 0:?     'sampler' (uniform sampler2D)\r
 0:?     'coord' (smooth in 2-component vector of float)\r
index 57048da..aa905ac 100644 (file)
@@ -15,17 +15,20 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas
 0:12              add (4-component vector of float)\r
 0:12                direct index (smooth in 4-component vector of float)\r
 0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:12                  4 (const int)\r
+0:12                  Constant:\r
+0:12                    4 (const int)\r
 0:12                direct index (smooth in 4-component vector of float)\r
 0:12                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:12                  5 (const int)\r
+0:12                  Constant:\r
+0:12                    5 (const int)\r
 0:14      add second child into first child (4-component vector of float)\r
 0:14        'texColor' (4-component vector of float)\r
 0:14        'color' (smooth in 4-component vector of float)\r
 0:16      move second child to first child (float)\r
 0:16        direct index (float)\r
 0:16          'texColor' (4-component vector of float)\r
-0:16          3 (const int)\r
+0:16          Constant:\r
+0:16            3 (const int)\r
 0:16        'alpha' (smooth in float)\r
 0:18      move second child to first child (4-component vector of float)\r
 0:18        'gl_FragColor' (fragColor 4-component vector of float)\r
@@ -34,13 +37,16 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas
 0:18            add (4-component vector of float)\r
 0:18              direct index (smooth in 4-component vector of float)\r
 0:18                'foo' (smooth in 3-element array of 4-component vector of float)\r
-0:18                1 (const int)\r
+0:18                Constant:\r
+0:18                  1 (const int)\r
 0:18              direct index (smooth in 4-component vector of float)\r
 0:18                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:18                0 (const int)\r
+0:18                Constant:\r
+0:18                  0 (const int)\r
 0:18            direct index (smooth in 4-component vector of float)\r
 0:18              'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:18              4 (const int)\r
+0:18              Constant:\r
+0:18                4 (const int)\r
 0:18          'texColor' (4-component vector of float)\r
 0:?   Linker Objects\r
 0:?     'texSampler2D' (uniform sampler2D)\r
index 8e60670..24b3582 100644 (file)
@@ -22,14 +22,16 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas
 0:14                    'a' (uniform int)\r
 0:14                direct index (smooth in 4-component vector of float)\r
 0:14                  'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:14                  5 (const int)\r
+0:14                  Constant:\r
+0:14                    5 (const int)\r
 0:16      add second child into first child (4-component vector of float)\r
 0:16        'texColor' (4-component vector of float)\r
 0:16        'color' (smooth in 4-component vector of float)\r
 0:18      move second child to first child (float)\r
 0:18        direct index (float)\r
 0:18          'texColor' (4-component vector of float)\r
-0:18          3 (const int)\r
+0:18          Constant:\r
+0:18            3 (const int)\r
 0:18        'alpha' (smooth in float)\r
 0:20      move second child to first child (4-component vector of float)\r
 0:20        'gl_FragColor' (fragColor 4-component vector of float)\r
@@ -38,7 +40,8 @@ WARNING: 0:8: varying deprecated in version 130; may be removed in future releas
 0:20            add (4-component vector of float)\r
 0:20              direct index (smooth in 4-component vector of float)\r
 0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
-0:20                0 (const int)\r
+0:20                Constant:\r
+0:20                  0 (const int)\r
 0:20              indirect index (smooth in 4-component vector of float)\r
 0:20                'gl_TexCoord' (smooth in 6-element array of 4-component vector of float)\r
 0:20                'b' (uniform int)\r
index 8014ce5..19082c3 100644 (file)
@@ -9,7 +9,8 @@ ERROR: node is still EOpNull!
 0:43        'foo' (out highp 4-component vector of float)\r
 0:43        Construct vec4 (highp 4-component vector of float)\r
 0:43          'color' (smooth in highp 3-component vector of float)\r
-0:43          142.000000\r
+0:43          Constant:\r
+0:43            142.000000\r
 0:44      Branch: Kill\r
 0:?   Linker Objects\r
 0:?     'color' (smooth in highp 3-component vector of float)\r
index 807ee88..259ad00 100644 (file)
@@ -6,7 +6,8 @@
 0:42        'gl_Position' (gl_Position 4-component vector of float)\r
 0:42        Construct vec4 (4-component vector of float)\r
 0:42          'color' (in 3-component vector of float)\r
-0:42          142.000000\r
+0:42          Constant:\r
+0:42            142.000000\r
 0:?   Linker Objects\r
 0:?     'color' (in 3-component vector of float)\r
 0:?     'foo' (uniform sampler2DRect)\r
index 4110560..b339567 100644 (file)
@@ -12,7 +12,8 @@ ERROR: node is still EOpNull!
 0:44        'gl_FragColor' (fragColor 4-component vector of float)\r
 0:44        Construct vec4 (4-component vector of float)\r
 0:44          'color' (smooth in 3-component vector of float)\r
-0:44          142.000000\r
+0:44          Constant:\r
+0:44            142.000000\r
 0:45      Branch: Kill\r
 0:?   Linker Objects\r
 0:?     'color' (smooth in 3-component vector of float)\r
index 0622ec2..12ab775 100644 (file)
@@ -11,7 +11,8 @@ ERROR: node is still EOpNull!
 0:44        'gl_Position' (gl_Position 4-component vector of float)\r
 0:44        Construct vec4 (4-component vector of float)\r
 0:44          'color' (in 3-component vector of float)\r
-0:44          142.000000\r
+0:44          Constant:\r
+0:44            142.000000\r
 0:45      Branch: Kill\r
 0:?   Linker Objects\r
 0:?     'color' (in 3-component vector of float)\r
index 3f8254a..4b62cd2 100644 (file)
@@ -2,7 +2,8 @@
 0:7  Sequence\r
 0:7    move second child to first child (float)\r
 0:7      'bar' (float)\r
-0:7      2.000000\r
+0:7      Constant:\r
+0:7        2.000000\r
 0:9  Function Definition: foo( (void)\r
 0:9    Function Parameters: \r
 0:11    Sequence\r
@@ -26,7 +27,8 @@
 0:29      add second child into first child (float)\r
 0:29        direct index (float)\r
 0:29          'outColor' (4-component vector of float)\r
-0:29          0 (const int)\r
+0:29          Constant:\r
+0:29            0 (const int)\r
 0:29        'bar' (float)\r
 0:31      move second child to first child (4-component vector of float)\r
 0:31        'gl_FragColor' (fragColor 4-component vector of float)\r
index b8575b3..7b25a0c 100644 (file)
@@ -11,7 +11,8 @@
 0:11        Compare Less Than (bool)\r
 0:11          direct index (float)\r
 0:11            'color' (4-component vector of float)\r
-0:11            0 (const int)\r
+0:11            Constant:\r
+0:11              0 (const int)\r
 0:11          'd' (uniform float)\r
 0:11        Loop Body\r
 0:12        Sequence\r
index e76d385..0e41f35 100644 (file)
@@ -21,6 +21,16 @@ void vj, vk5[5] = int[](5, 6, 7, 8, 9);
 void vm2[2] = int[](10, 11), vm3[3] = int[](12, 13, 14);\r
 void vn8[4] = int[](21, 22, 23, 24), vp;\r
 \r
+const int cii4[4] = int[](1, 2, 3, 4);\r
+const int cij, cik5[5] = int[](5, 6, 7, 8, 9);\r
+const int cim2[2] = int[](10, 11), cim3[3] = int[](12, 13, 14);\r
+const int cin8[4] = int[](21, 22, 23, 24), cip;\r
+\r
+uniform int uii4[4] = int[](1, 2, 3, 4);\r
+uniform int uij, uik5[5] = int[](5, 6, 7, 8, 9);\r
+uniform int uim2[2] = int[](10, 11), uim3[3] = int[](12, 13, 14);\r
+uniform int uin8[4] = int[](21, 22, 23, 24), uip;\r
+\r
 int gl_vi4[4] = int[](1, 2, 3, 4);\r
 int gl_vj, gl_vk5[5] = int[](5, 6, 7, 8, 9);\r
 int gl_vm2[2] = int[](10, 11), gl_vm3[3] = int[](12, 13, 14);\r
index 3bb5cf6..2b8d95a 100644 (file)
@@ -22,3 +22,17 @@ ivec2 foo(mat2 m)
 }\r
 \r
 vec4 c = b * b;\r
+\r
+const vec3 cv3 = vec3(43.0, 0.34, 9.9);\r
+const vec3 cv3n = vec3(43.0, 0.34, 9.9);\r
+const vec3 cv3e = vec3(43.0, 0.34, 9.9);\r
+uniform mat2 um2 = mat2(4.0);\r
+uniform mat2 um2n = mat2(4.0);\r
+uniform mat2 um2e = mat2(4.0);\r
+struct S {\r
+    int a;\r
+    float b;\r
+};\r
+uniform S s = S(82, 3.9);\r
+uniform S sn;\r
+uniform S se = S(82, 3.9);\r
index e7fe630..3eb265e 100644 (file)
@@ -18,3 +18,16 @@ ivec2 foo()
 }\r
 \r
 vec4 f = e * e;\r
+\r
+const vec3 cv3 = vec3(43.0, 0.34, 9.9);\r
+const vec3 cv3e = vec3(43.0, 0.34, 2.9);\r
+uniform mat2 um2 = mat2(4.0);\r
+uniform mat2 um2n;\r
+uniform mat2 um2e = mat2(3.0);\r
+struct S {\r
+    int a;\r
+    float b;\r
+};\r
+uniform S s = S(82, 3.9);\r
+uniform S sn = S(82, 3.9);\r
+uniform S se = S(81, 3.9);\r
index fcfe1e2..cdabe09 100644 (file)
@@ -106,7 +106,8 @@ public:
     typedef typename std::vector<T, pool_allocator<T> >::size_type size_type;
     TVector() : std::vector<T, pool_allocator<T> >() {}
     TVector(const pool_allocator<T>& a) : std::vector<T, pool_allocator<T> >(a) {}
-    TVector(size_type i): std::vector<T, pool_allocator<T> >(i) {}
+    TVector(size_type i) : std::vector<T, pool_allocator<T> >(i) {}
+    TVector(size_type i, const T& val) : std::vector<T, pool_allocator<T> >(i, val) {}
 };
 
 template <class T> class TList   : public TBaseList  <T, pool_allocator<T> > {
index 6868d11..c179a58 100644 (file)
@@ -41,8 +41,8 @@ namespace glslang {
 
 class TConstUnion {
 public:
-
     POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
     void setIConst(int i)
     { 
         iConst = i; 
@@ -394,9 +394,9 @@ public:
         return returnValue;
     }
 
-    TBasicType getType() { return type; }
-private:
+    TBasicType getType() const { return type; }
 
+private:
     union  {
         int iConst;          // used for ivec, scalar ints
         unsigned int uConst; // used for uvec, scalar uints
@@ -407,6 +407,61 @@ private:
     TBasicType type;
 };
 
+// Encapsulate having a pointer to an array of TConstUnion,
+// which only needs to be allocated if it's size is going to be
+// bigger than 0.
+//
+// One convenience is being able to use [] to go inside the array, instead
+// of C++ assuming it as an array of pointers to vectors.
+//
+// General usage is that the size is known up front, and it is 
+// created once with the proper size.
+//
+class TConstUnionArray {
+public:
+    POOL_ALLOCATOR_NEW_DELETE(GetThreadPoolAllocator())
+
+    TConstUnionArray() { unionArray = 0; }
+
+    explicit TConstUnionArray(int size)
+    {
+        if (size == 0)
+            unionArray = 0;
+        else
+            unionArray = new TVector<TConstUnion>(size);
+    }
+    TConstUnionArray(const TConstUnionArray& a) : unionArray(a.unionArray) { }
+    TConstUnionArray(const TConstUnionArray& a, int start, int size)
+    {
+        unionArray = new TVector<TConstUnion>(size);
+        for (int i = 0; i < size; ++i)
+            (*unionArray)[i] = a[start + i];
+    }
+
+    // Use this constructor for a smear operation
+    TConstUnionArray(int size, const TConstUnion& val)
+    {
+        unionArray = new TVector<TConstUnion>(size, val);
+    }
+
+    TConstUnion& operator[](int index) { return (*unionArray)[index]; }
+    const TConstUnion& operator[](int index) const { return (*unionArray)[index]; }
+    bool operator==(const TConstUnionArray& rhs) const
+    {
+        // this includes the case that both are unallocated
+        if (unionArray == rhs.unionArray)
+            return true;
+
+        return *unionArray == *rhs.unionArray;
+    }
+    bool operator!=(const TConstUnionArray& rhs) const { return ! operator==(rhs); }
+
+    bool empty() const { return unionArray == 0; }
+
+protected:
+    TVector<TConstUnion>* unionArray;
+};
+
 } // end namespace glslang
 
 #endif // _CONSTANT_UNION_INCLUDED_
index c33e41b..7199a5b 100644 (file)
@@ -721,6 +721,42 @@ public:
         name += ';' ;
     }
 
+    // Do two structure types match?  They could be declared independently,
+    // in different places, but still might satisfy the definition of matching.
+    // From the spec:
+    //
+    // "Structures must have the same name, sequence of type names, and 
+    //  type definitions, and member names to be considered the same type. 
+    //  This rule applies recursively for nested or embedded types."
+    //
+    bool sameStructType(const TType& right) const
+    {
+        // Most commonly, they are both 0, or the same pointer to the same actual structure
+        if (structure == right.structure)
+            return true;
+
+        // Both being 0 was caught above, now they both have to be structures of the same number of elements
+        if (structure == 0 || right.structure == 0 ||
+            structure->size() != right.structure->size())
+            return false;
+
+        // Structure names have to match
+        if (*typeName != *right.typeName)
+            return false;
+
+        // Compare the names and types of all the members, which have to match
+        for (unsigned int i = 0; i < structure->size(); ++i) {
+            if ((*structure)[i].type->getFieldName() != (*right.structure)[i].type->getFieldName())
+                return false;
+
+            if (*(*structure)[i].type != *(*right.structure)[i].type)
+                return false;
+        }
+
+        return true;
+    }
+
+    // See if two types match, in all aspects except arrayness
     bool sameElementType(const TType& right) const
     {
         return  basicType == right.basicType  &&
@@ -728,20 +764,20 @@ public:
                vectorSize == right.vectorSize &&
                matrixCols == right.matrixCols &&
                matrixRows == right.matrixRows &&
-                structure == right.structure;
+               sameStructType(right);
     }
 
+    // See if two types match in all ways (just the actual type, not qualification
     bool operator==(const TType& right) const
     {
         return sameElementType(right) &&
                (arraySizes == 0 && right.arraySizes == 0 ||
                 (arraySizes && right.arraySizes && arraySizes->sizes == right.arraySizes->sizes));
-        // don't check the qualifier, it's not ever what's being sought after
     }
 
     bool operator!=(const TType& right) const
     {
-        return !operator==(right);
+        return ! operator==(right);
     }
 
 protected:
@@ -764,7 +800,7 @@ protected:
     TTypeList* structure;       // 0 unless this is a struct
     mutable int structureSize;  // a cache, updated on first access
        TString *fieldName;         // for structure field names
-       TString *typeName;          // for structure field type name
+       TString *typeName;          // for structure type name
 };
 
 } // end namespace glslang
index d735bda..549ec86 100644 (file)
@@ -460,27 +460,29 @@ public:
        // per process globalpoolallocator, then it causes increased memory usage per compile
        // it is essential to use "symbol = sym" to assign to symbol
     TIntermSymbol(int i, const TString& n, const TType& t) : 
-        TIntermTyped(t), id(i)  { name = n;} 
+        TIntermTyped(t), id(i) { name = n;} 
     virtual int getId() const { return id; }
     virtual const TString& getName() const { return name; }
     virtual void traverse(TIntermTraverser*);
     virtual TIntermSymbol* getAsSymbolNode() { return this; }
+    void setConstArray(const TConstUnionArray& c) { unionArray = c; }
+    const TConstUnionArray& getConstArray() const { return unionArray; }
 protected:
     int id;
     TString name;
+    TConstUnionArray unionArray;
 };
 
 class TIntermConstantUnion : public TIntermTyped {
 public:
-    TIntermConstantUnion(TConstUnion *unionPointer, const TType& t) : TIntermTyped(t), unionArrayPointer(unionPointer) { }
-    TConstUnion* getUnionArrayPointer() const { return unionArrayPointer; }
-    void setUnionArrayPointer(TConstUnion *c) { unionArrayPointer = c; }
+    TIntermConstantUnion(const TConstUnionArray& ua, const TType& t) : TIntermTyped(t), unionArray(ua) { }
+    const TConstUnionArray& getConstArray() const { return unionArray; }
     virtual TIntermConstantUnion* getAsConstantUnion()  { return this; }
     virtual void traverse(TIntermTraverser* );
     virtual TIntermTyped* fold(TOperator, TIntermTyped*);
     virtual TIntermTyped* fold(TOperator, const TType&);
 protected:
-    TConstUnion *unionArrayPointer;
+    const TConstUnionArray unionArray;
 };
 
 //
index 8aa4ed8..218fe94 100644 (file)
@@ -65,53 +65,6 @@ bool isInf(double x)
 
 const double pi = 3.1415926535897932384626433832795;
 
-// forward reference for mutual recursion
-bool CompareStruct(const TType& leftNodeType, TConstUnion* rightUnionArray, TConstUnion* leftUnionArray);
-
-bool CompareStructure(const TType& leftNodeType, TConstUnion* rightUnionArray, TConstUnion* leftUnionArray)
-{
-    if (leftNodeType.isArray()) {
-        TType typeWithoutArrayness;
-        typeWithoutArrayness.shallowCopy(leftNodeType);  // TODO: arrays of arrays: the shallow copy won't work if arrays are shared and dereferenced
-        typeWithoutArrayness.dereference();
-
-        int arraySize = leftNodeType.getArraySize();
-
-        for (int i = 0; i < arraySize; ++i) {
-            int offset = typeWithoutArrayness.getObjectSize() * i;
-            if (! CompareStruct(typeWithoutArrayness, &rightUnionArray[offset], &leftUnionArray[offset]))
-                return false;
-        }
-    } else
-        return CompareStruct(leftNodeType, rightUnionArray, leftUnionArray);
-
-    return true;
-}
-
-bool CompareStruct(const TType& leftNodeType, TConstUnion* rightUnionArray, TConstUnion* leftUnionArray)
-{
-    TTypeList* fields = leftNodeType.getStruct();
-
-    size_t structSize = fields->size();
-    int index = 0;
-
-    for (size_t j = 0; j < structSize; j++) {
-        int size = (*fields)[j].type->getObjectSize();
-        for (int i = 0; i < size; i++) {
-            if ((*fields)[j].type->getBasicType() == EbtStruct) {
-                if (!CompareStructure(*(*fields)[j].type, &rightUnionArray[index], &leftUnionArray[index]))
-                    return false;
-            } else {
-                if (leftUnionArray[index] != rightUnionArray[index])
-                    return false;
-                index++;
-            }
-
-        }
-    }
-    return true;
-}
-
 } // end anonymous namespace
 
 
@@ -132,10 +85,6 @@ namespace glslang {
 //
 TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNode)
 {
-    TConstUnion *unionArray = getUnionArrayPointer();
-    int objectSize = getType().getObjectSize();
-    TConstUnion* newConstArray = 0;
-
     // For most cases, the return type matches the argument type, so set that
     // up and just code to exceptions below.
     TType returnType;
@@ -146,33 +95,46 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
     //
 
     TIntermConstantUnion *node = constantNode->getAsConstantUnion();
-    TConstUnion *rightUnionArray = node->getUnionArrayPointer();
-
-    if (constantNode->getType().getObjectSize() == 1 && objectSize > 1) {
-        // for a case like float f = vec4(2,3,4,5) + 1.2;
-        rightUnionArray = new TConstUnion[objectSize];
-        for (int i = 0; i < objectSize; ++i)
-            rightUnionArray[i] = *node->getUnionArrayPointer();
-    } else if (constantNode->getType().getObjectSize() > 1 && objectSize == 1) {
-        // for a case like float f = 1.2 + vec4(2,3,4,5);
-        rightUnionArray = node->getUnionArrayPointer();
-        unionArray = new TConstUnion[constantNode->getType().getObjectSize()];
-        for (int i = 0; i < constantNode->getType().getObjectSize(); ++i)
-            unionArray[i] = *getUnionArrayPointer();
-        returnType.shallowCopy(node->getType());
-        objectSize = constantNode->getType().getObjectSize();
+    TConstUnionArray unionArray = getConstArray();
+    TConstUnionArray rightUnionArray = node->getConstArray();
+
+    // Figure out the size of the result
+    int objectSize;
+    switch(op) {
+    case EOpMatrixTimesMatrix:
+        objectSize = getMatrixRows() * node->getMatrixCols();
+        break;
+    case EOpMatrixTimesVector:
+        objectSize = getMatrixRows();
+        break;
+    case EOpVectorTimesMatrix:
+        objectSize = node->getMatrixCols();
+        break;
+    default:
+        objectSize = getType().getObjectSize();                    
+        if (constantNode->getType().getObjectSize() == 1 && getType().getObjectSize() > 1) {
+            // for a case like vec4 f = vec4(2,3,4,5) + 1.2;
+            TConstUnionArray smearedArray(objectSize, node->getConstArray()[0]);
+            rightUnionArray = smearedArray;
+        } else if (constantNode->getType().getObjectSize() > 1 && getType().getObjectSize() == 1) {
+            // for a case like vec4 f = 1.2 + vec4(2,3,4,5);            
+            objectSize = constantNode->getType().getObjectSize();
+            rightUnionArray = node->getConstArray();
+            TConstUnionArray smearedArray(objectSize, getConstArray()[0]);
+            unionArray = smearedArray;
+            returnType.shallowCopy(node->getType());
+        }
+        break;
     }
 
-    int index = 0;
-    bool boolNodeFlag = false;
+    TConstUnionArray newConstArray(objectSize);
+
     switch(op) {
     case EOpAdd:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] + rightUnionArray[i];
         break;
     case EOpSub:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] - rightUnionArray[i];
         break;
@@ -180,12 +142,10 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
     case EOpMul:
     case EOpVectorTimesScalar:
     case EOpMatrixTimesScalar:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] * rightUnionArray[i];
         break;
     case EOpMatrixTimesMatrix:
-        newConstArray = new TConstUnion[getMatrixRows() * node->getMatrixCols()];
         for (int row = 0; row < getMatrixRows(); row++) {
             for (int column = 0; column < node->getMatrixCols(); column++) {
                 double sum = 0.0f;
@@ -197,7 +157,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
         returnType.shallowCopy(TType(getType().getBasicType(), EvqConst, 0, getMatrixRows(), node->getMatrixCols()));
         break;
     case EOpDiv:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++) {
             switch (getType().getBasicType()) {
             case EbtDouble:
@@ -225,7 +184,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
         break;
 
     case EOpMatrixTimesVector:
-        newConstArray = new TConstUnion[getMatrixRows()];
         for (int i = 0; i < getMatrixRows(); i++) {
             double sum = 0.0f;
             for (int j = 0; j < node->getVectorSize(); j++) {
@@ -238,7 +196,6 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
         break;
 
     case EOpVectorTimesMatrix:
-        newConstArray = new TConstUnion[node->getMatrixCols()];
         for (int i = 0; i < node->getMatrixCols(); i++) {
             double sum = 0.0f;
             for (int j = 0; j < getVectorSize(); j++)
@@ -250,53 +207,44 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
         break;
 
     case EOpMod:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] % rightUnionArray[i];
         break;
 
     case EOpRightShift:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] >> rightUnionArray[i];
         break;
 
     case EOpLeftShift:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] << rightUnionArray[i];
         break;
 
     case EOpAnd:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] & rightUnionArray[i];
         break;
     case EOpInclusiveOr:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] | rightUnionArray[i];
         break;
     case EOpExclusiveOr:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] ^ rightUnionArray[i];
         break;
 
     case EOpLogicalAnd: // this code is written for possible future use, will not get executed currently
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] && rightUnionArray[i];
         break;
 
     case EOpLogicalOr: // this code is written for possible future use, will not get executed currently
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++)
             newConstArray[i] = unionArray[i] || rightUnionArray[i];
         break;
 
     case EOpLogicalXor:
-        newConstArray = new TConstUnion[objectSize];
         for (int i = 0; i < objectSize; i++) {
             switch (getType().getBasicType()) {
             case EbtBool: newConstArray[i].setBConst((unionArray[i] == rightUnionArray[i]) ? false : true); break;
@@ -306,71 +254,27 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
         break;
 
     case EOpLessThan:
-        assert(objectSize == 1);
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(*unionArray < *rightUnionArray);
+        newConstArray[0].setBConst(unionArray[0] < rightUnionArray[0]);
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
     case EOpGreaterThan:
-        assert(objectSize == 1);
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(*unionArray > *rightUnionArray);
+        newConstArray[0].setBConst(unionArray[0] > rightUnionArray[0]);
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
     case EOpLessThanEqual:
-    {
-        assert(objectSize == 1);
-        TConstUnion constant;
-        constant.setBConst(*unionArray > *rightUnionArray);
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(!constant.getBConst());
+        newConstArray[0].setBConst(! (unionArray[0] > rightUnionArray[0]));
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
-    }
     case EOpGreaterThanEqual:
-    {
-        assert(objectSize == 1);
-        TConstUnion constant;
-        constant.setBConst(*unionArray < *rightUnionArray);
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(!constant.getBConst());
+        newConstArray[0].setBConst(! (unionArray[0] < rightUnionArray[0]));
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
-    }
-
     case EOpEqual:
-        if (getType().getBasicType() == EbtStruct) {
-            if (! CompareStructure(node->getType(), node->getUnionArrayPointer(), unionArray))
-                boolNodeFlag = true;
-        } else {
-            for (int i = 0; i < objectSize; i++) {
-                if (unionArray[i] != rightUnionArray[i]) {
-                    boolNodeFlag = true;
-                    break;  // break out of for loop
-                }
-            }
-        }
-
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(! boolNodeFlag);
+        newConstArray[0].setBConst(node->getConstArray() == unionArray);
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
-
     case EOpNotEqual:
-        if (getType().getBasicType() == EbtStruct) {
-            if (CompareStructure(node->getType(), node->getUnionArrayPointer(), unionArray))
-                boolNodeFlag = true;
-        } else {
-            for (int i = 0; i < objectSize; i++) {
-                if (unionArray[i] == rightUnionArray[i]) {
-                    boolNodeFlag = true;
-                    break;  // break out of for loop
-                }
-            }
-        }
-
-        newConstArray = new TConstUnion[1];
-        newConstArray->setBConst(! boolNodeFlag);
+        newConstArray[0].setBConst(node->getConstArray() != unionArray);
         returnType.shallowCopy(TType(EbtBool, EvqConst));
         break;
 
@@ -389,19 +293,16 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, TIntermTyped* constantNod
 //
 TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
 {
-    TConstUnion *unionArray = getUnionArrayPointer();
-    int objectSize = getType().getObjectSize();
-
     // First, size the result, which is mostly the same as the argument's size,
     // but not always.
-    TConstUnion* newConstArray;
+    int resultSize;
     switch (op) {
     // TODO: functionality: constant folding: finish listing exceptions to size here
     case EOpDeterminant:
     case EOpAny:
     case EOpAll:
     case EOpLength:
-        newConstArray = new TConstUnion[1];
+        resultSize = 1;
         break;
 
     case EOpEmitStreamVertex:
@@ -410,10 +311,15 @@ TIntermTyped* TIntermConstantUnion::fold(TOperator op, const TType& returnType)
         return 0;
 
     default:
-        newConstArray = new TConstUnion[objectSize];
+        resultSize = getType().getObjectSize();
+        break;
     }
+    TConstUnionArray newConstArray(resultSize);
+
+    const TConstUnionArray unionArray = getConstArray();
 
     // Process non-component-wise operations
+    int objectSize = getType().getObjectSize();
     switch (op) {
     case EOpLength:
     case EOpNormalize:
@@ -671,11 +577,11 @@ TIntermTyped* TIntermediate::fold(TIntermAggregate* aggrNode)
     default:
         return aggrNode;
     }
-    TConstUnion* newConstArray = new TConstUnion[objectSize];
+    TConstUnionArray newConstArray(objectSize);
 
-    TVector<TConstUnion*> childConstUnions;
+    TVector<TConstUnionArray> childConstUnions;
     for (unsigned int arg = 0; arg < children.size(); ++arg)
-        childConstUnions.push_back(children[arg]->getAsConstantUnion()->getUnionArrayPointer());
+        childConstUnions.push_back(children[arg]->getAsConstantUnion()->getConstArray());
 
     // Second, do the actual folding
 
@@ -805,7 +711,7 @@ TIntermTyped* TIntermediate::foldConstructor(TIntermAggregate* aggrNode)
 {
     bool error = false;
 
-    TConstUnion* unionArray = new TConstUnion[aggrNode->getType().getObjectSize()];
+    TConstUnionArray unionArray(aggrNode->getType().getObjectSize());
     if (aggrNode->getSequence().size() == 1)
         error = parseConstTree(aggrNode->getLoc(), aggrNode, unionArray, aggrNode->getOp(), aggrNode->getType(), true);
     else
index ebf6d14..63bf27f 100644 (file)
@@ -757,7 +757,7 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true
     //
 
     if (cond->getAsConstantUnion() && trueBlock->getAsConstantUnion() && falseBlock->getAsConstantUnion()) {
-        if (cond->getAsConstantUnion()->getUnionArrayPointer()->getBConst())
+        if (cond->getAsConstantUnion()->getConstArray()[0].getBConst())
             return trueBlock;
         else
             return falseBlock;
@@ -779,9 +779,9 @@ TIntermTyped* TIntermediate::addSelection(TIntermTyped* cond, TIntermTyped* true
 // Returns the constant union node created.
 //
 
-TIntermConstantUnion* TIntermediate::addConstantUnion(TConstUnion* unionArrayPointer, const TType& t, TSourceLoc loc)
+TIntermConstantUnion* TIntermediate::addConstantUnion(const TConstUnionArray& unionArray, const TType& t, TSourceLoc loc)
 {
-    TIntermConstantUnion* node = new TIntermConstantUnion(unionArrayPointer, t);
+    TIntermConstantUnion* node = new TIntermConstantUnion(unionArray, t);
     node->setLoc(loc);
 
     return node;
@@ -795,11 +795,10 @@ TIntermTyped* TIntermediate::addSwizzle(TVectorFields& fields, TSourceLoc loc)
     node->setLoc(loc);
     TIntermConstantUnion* constIntNode;
     TIntermSequence &sequenceVector = node->getSequence();
-    TConstUnion* unionArray;
 
     for (int i = 0; i < fields.num; i++) {
-        unionArray = new TConstUnion[1];
-        unionArray->setIConst(fields.offsets[i]);
+        TConstUnionArray unionArray(1);
+        unionArray[0].setIConst(fields.offsets[i]);
         constIntNode = addConstantUnion(unionArray, TType(EbtInt, EvqConst), loc);
         sequenceVector.push_back(constIntNode);
     }
@@ -896,6 +895,7 @@ void TIntermediate::addSymbolLinkageNode(TIntermAggregate*& linkage, TSymbolTabl
 void TIntermediate::addSymbolLinkageNode(TIntermAggregate*& linkage, const TVariable& variable)
 {
     TIntermSymbol* node = new TIntermSymbol(variable.getUniqueId(), variable.getName(), variable.getType());
+    node->setConstArray(variable.getConstArray());
     linkage = growAggregate(linkage, node);
 }
 
@@ -975,8 +975,13 @@ void TIntermediate::mergeLinkerObjects(TInfoSink& infoSink, TIntermSequence& lin
             if (symbol->getName() == unitSymbol->getName()) {
                 // filter out copy
                 merge = false;
+
+                // but if one has an initializer and the other does not, update
+                // the initializer
+                if (symbol->getConstArray().empty() && ! unitSymbol->getConstArray().empty())
+                    symbol->setConstArray(unitSymbol->getConstArray());
                 
-                // Check for consistent types/qualification/etc.
+                // Check for consistent types/qualification/initializers etc.
                 linkErrorCheck(infoSink, *symbol, *unitSymbol, false);
             }
         }
@@ -1067,6 +1072,16 @@ void TIntermediate::linkErrorCheck(TInfoSink& infoSink, const TIntermSymbol& sym
         writeTypeComparison = true;
     }
 
+    // Initializers have to match, if both are present, and if we don't already know the types don't match
+    if (! writeTypeComparison) {
+        if (! symbol.getConstArray().empty() && ! unitSymbol.getConstArray().empty()) {
+            if (symbol.getConstArray() != unitSymbol.getConstArray()) {
+                error(infoSink, "Initializers must match:");
+                infoSink.info << "    " << symbol.getName() << "\n";
+            }
+        }
+    }
+
     if (writeTypeComparison)
         infoSink.info << "    " << symbol.getName() << ": \"" << symbol.getType().getCompleteString() << "\" versus \"" <<
                                                              unitSymbol.getType().getCompleteString() << "\"\n";
@@ -1547,12 +1562,12 @@ void TIntermTyped::propagatePrecision(TPrecisionQualifier newPrecision)
 
 TIntermTyped* TIntermediate::promoteConstantUnion(TBasicType promoteTo, TIntermConstantUnion* node) 
 {
-    TConstUnion *rightUnionArray = node->getUnionArrayPointer();
+    const TConstUnionArray& rightUnionArray = node->getConstArray();
     int size = node->getType().getObjectSize();
 
-    TConstUnion *leftUnionArray = new TConstUnion[size];
+    TConstUnionArray leftUnionArray(size);
 
-    for (int i=0; i < size; i++) {        
+    for (int i=0; i < size; i++) {
         switch (promoteTo) {
         case EbtFloat:
             switch (node->getType().getBasicType()) {
index c364c06..9fc9d3d 100644 (file)
@@ -464,8 +464,8 @@ TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TSt
         // it was a member of an anonymous container, have to insert its dereference
         const TVariable* variable = anon->getAnonContainer().getAsVariable();
         TIntermTyped* container = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), variable->getType(), loc);
-        TConstUnion* unionArray = new TConstUnion[1];
-        unionArray->setUConst(anon->getMemberNumber());
+        TConstUnionArray unionArray(1);
+        unionArray[0].setUConst(anon->getMemberNumber());
         TIntermTyped* constNode = intermediate.addConstantUnion(unionArray, TType(EbtUint, EvqConst), loc);
 
         node = intermediate.addIndex(EOpIndexDirectStruct, container, constNode, loc);
@@ -483,10 +483,9 @@ TIntermTyped* TParseContext::handleVariable(TSourceLoc loc, TSymbol* symbol, TSt
         // don't delete $1.string, it's used by error recovery, and the pool
         // pop will reclaim the memory
 
-        if (variable->getType().getQualifier().storage == EvqConst ) {
-            TConstUnion* constArray = variable->getConstUnionPointer();
-            node = intermediate.addConstantUnion(constArray, variable->getType(), loc);
-        } else
+        if (variable->getType().getQualifier().storage == EvqConst)
+            node = intermediate.addConstantUnion(variable->getConstArray(), variable->getType(), loc);
+        else
             node = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), variable->getType(), loc);
     }
 
@@ -509,30 +508,30 @@ TIntermTyped* TParseContext::handleBracketDereference(TSourceLoc loc, TIntermTyp
     } else if (base->getType().getQualifier().storage == EvqConst && index->getQualifier().storage == EvqConst) {
         if (base->isArray()) {
             // constant folding for arrays
-            result = addConstArrayNode(index->getAsConstantUnion()->getUnionArrayPointer()->getIConst(), base, loc);
+            result = addConstArrayNode(index->getAsConstantUnion()->getConstArray()[0].getIConst(), base, loc);
         } else if (base->isVector()) {
             // constant folding for vectors
             TVectorFields fields;
             fields.num = 1;
-            fields.offsets[0] = index->getAsConstantUnion()->getUnionArrayPointer()->getIConst(); // need to do it this way because v.xy sends fields integer array
+            fields.offsets[0] = index->getAsConstantUnion()->getConstArray()[0].getIConst(); // need to do it this way because v.xy sends fields integer array
             result = addConstVectorNode(fields, base, loc);
         } else if (base->isMatrix()) {
             // constant folding for matrices
-            result = addConstMatrixNode(index->getAsConstantUnion()->getUnionArrayPointer()->getIConst(), base, loc);
+            result = addConstMatrixNode(index->getAsConstantUnion()->getConstArray()[0].getIConst(), base, loc);
         }
     } else {
         if (index->getQualifier().storage == EvqConst) {
-            int indexValue = index->getAsConstantUnion()->getUnionArrayPointer()->getIConst();
+            int indexValue = index->getAsConstantUnion()->getConstArray()[0].getIConst();
             if (! base->isArray() && (base->isVector() && base->getType().getVectorSize() <= indexValue ||
                                       base->isMatrix() && base->getType().getMatrixCols() <= indexValue))
-                error(loc, "", "[", "index out of range '%d'", index->getAsConstantUnion()->getUnionArrayPointer()->getIConst());
+                error(loc, "", "[", "index out of range '%d'", index->getAsConstantUnion()->getConstArray()[0].getIConst());
             if (base->isArray()) {
                 if (base->getType().getArraySize() == 0) {
-                    if (base->getType().getMaxArraySize() <= index->getAsConstantUnion()->getUnionArrayPointer()->getIConst())
-                        arraySetMaxSize(loc, base->getAsSymbolNode(), index->getAsConstantUnion()->getUnionArrayPointer()->getIConst() + 1);
-                } else if ( index->getAsConstantUnion()->getUnionArrayPointer()->getIConst() >= base->getType().getArraySize() ||
-                            index->getAsConstantUnion()->getUnionArrayPointer()->getIConst() < 0)
-                    error(loc, "", "[", "array index out of range '%d'", index->getAsConstantUnion()->getUnionArrayPointer()->getIConst());
+                    if (base->getType().getMaxArraySize() <= index->getAsConstantUnion()->getConstArray()[0].getIConst())
+                        arraySetMaxSize(loc, base->getAsSymbolNode(), index->getAsConstantUnion()->getConstArray()[0].getIConst() + 1);
+                } else if ( index->getAsConstantUnion()->getConstArray()[0].getIConst() >= base->getType().getArraySize() ||
+                            index->getAsConstantUnion()->getConstArray()[0].getIConst() < 0)
+                    error(loc, "", "[", "array index out of range '%d'", index->getAsConstantUnion()->getConstArray()[0].getIConst());
             }
             result = intermediate.addIndex(EOpIndexDirect, base, index, loc);
         } else {
@@ -550,8 +549,8 @@ TIntermTyped* TParseContext::handleBracketDereference(TSourceLoc loc, TIntermTyp
     }
 
     if (result == 0) {
-        TConstUnion *unionArray = new TConstUnion[1];
-        unionArray->setDConst(0.0);
+        TConstUnionArray unionArray(1);
+        unionArray[0].setDConst(0.0);
         result = intermediate.addConstantUnion(unionArray, TType(EbtFloat, EvqConst), loc);
     } else {
         TType newType;
@@ -599,8 +598,8 @@ TIntermTyped* TParseContext::handleDotDereference(TSourceLoc loc, TIntermTyped*
                 result->setType(TType(base->getBasicType(), EvqConst, (int) (field).size()));
         } else {
             if (fields.num == 1) {
-                TConstUnion *unionArray = new TConstUnion[1];
-                unionArray->setIConst(fields.offsets[0]);
+                TConstUnionArray unionArray(1);
+                unionArray[0].setIConst(fields.offsets[0]);
                 TIntermTyped* index = intermediate.addConstantUnion(unionArray, TType(EbtInt, EvqConst), loc);
                 result = intermediate.addIndex(EOpIndexDirect, base, index, loc);
                 result->setType(TType(base->getBasicType(), EvqTemporary, base->getType().getQualifier().precision));
@@ -638,8 +637,8 @@ TIntermTyped* TParseContext::handleDotDereference(TSourceLoc loc, TIntermTyped*
                         result->getWritableType().getQualifier().storage = EvqConst;
                     }
                 } else {
-                    TConstUnion *unionArray = new TConstUnion[1];
-                    unionArray->setIConst(i);
+                    TConstUnionArray unionArray(1);
+                    unionArray[0].setIConst(i);
                     TIntermTyped* index = intermediate.addConstantUnion(unionArray, TType(EbtInt, EvqConst), loc);
                     result = intermediate.addIndex(EOpIndexDirectStruct, base, index, loc);
                     result->setType(*(*fields)[i].type);
@@ -761,8 +760,8 @@ TIntermTyped* TParseContext::handleFunctionCall(TSourceLoc loc, TFunction* fnCal
         } else
             length = intermNode->getAsTyped()->getType().getArraySize();
 
-        TConstUnion *unionArray = new TConstUnion[1];
-        unionArray->setIConst(length);
+        TConstUnionArray unionArray(1);
+        unionArray[0].setIConst(length);
         result = intermediate.addConstantUnion(unionArray, TType(EbtInt, EvqConst), loc);
     } else if (op != EOpNull) {
         //
@@ -836,8 +835,8 @@ TIntermTyped* TParseContext::handleFunctionCall(TSourceLoc loc, TFunction* fnCal
         } else {
             // error message was put out by PaFindFunction()
             // Put on a dummy node for error recovery
-            TConstUnion *unionArray = new TConstUnion[1];
-            unionArray->setDConst(0.0);
+            TConstUnionArray unionArray(1);
+            unionArray[0].setDConst(0.0);
             result = intermediate.addConstantUnion(unionArray, TType(EbtFloat, EvqConst), loc);
         }
     }
@@ -1074,7 +1073,7 @@ bool TParseContext::lValueErrorCheck(TSourceLoc loc, const char* op, TIntermType
                 
                 for (TIntermSequence::iterator p = aggrNode->getSequence().begin(); 
                                                p != aggrNode->getSequence().end(); p++) {
-                    int value = (*p)->getAsTyped()->getAsConstantUnion()->getUnionArrayPointer()->getIConst();
+                    int value = (*p)->getAsTyped()->getAsConstantUnion()->getConstArray()[0].getIConst();
                     offset[value]++;     
                     if (offset[value] > 1) {
                         error(loc, " l-value of swizzle cannot have duplicate components", op, "", "");
@@ -1631,7 +1630,7 @@ void TParseContext::arraySizeCheck(TSourceLoc loc, TIntermTyped* expr, int& size
         return;
     }
 
-    size = constant->getUnionArrayPointer()->getIConst();
+    size = constant->getConstArray()[0].getIConst();
 
     if (size <= 0) {
         error(loc, "array size must be a positive integer", "", "");
@@ -1767,7 +1766,7 @@ bool TParseContext::arraySetMaxSize(TSourceLoc loc, TIntermSymbol *node, int siz
     //        return true;
     //    }
 
-    //    int texCoordValue = texCoord->getAsVariable()->getConstUnionPointer()[0].getIConst();
+    //    int texCoordValue = texCoord->getAsVariable()->getConstArray()[0].getIConst();
     //    if (texCoordValue <= size) {
     //        error(loc, "", "[", "gl_TexCoord can only have a max array size of up to gl_MaxTextureCoords", "");
     //        return true;
@@ -2087,8 +2086,8 @@ TIntermNode* TParseContext::executeInitializer(TSourceLoc loc, TString& identifi
     //
     // test for and propagate constant
     //
-    if (qualifier == EvqConst) {
-        if (qualifier != initializer->getType().getQualifier().storage) {
+    if (qualifier == EvqConst || qualifier == EvqUniform) {
+        if (initializer->getType().getQualifier().storage != EvqConst) {
             error(loc, " assigning non-constant to", "=", "'%s'", variable->getType().getCompleteString().c_str());
             variable->getWritableType().getQualifier().storage = EvqTemporary;
             return 0;
@@ -2099,20 +2098,13 @@ TIntermNode* TParseContext::executeInitializer(TSourceLoc loc, TString& identifi
             variable->getWritableType().getQualifier().storage = EvqTemporary;
             return 0;
         }
-        if (initializer->getAsConstantUnion()) { 
-            TConstUnion* unionArray = variable->getConstUnionPointer();
-
-            if (type.getObjectSize() == 1 && type.getBasicType() != EbtStruct) {
-                   *unionArray = (initializer->getAsConstantUnion()->getUnionArrayPointer())[0];
-            } else {
-                variable->shareConstPointer(initializer->getAsConstantUnion()->getUnionArrayPointer());
-            }
-        } else if (initializer->getAsSymbolNode()) {
+        if (initializer->getAsConstantUnion())
+            variable->setConstArray(initializer->getAsConstantUnion()->getConstArray());
+        else if (initializer->getAsSymbolNode()) {
             TSymbol* symbol = symbolTable.find(initializer->getAsSymbolNode()->getName());
-            if (const TVariable* tVar = symbol->getAsVariable()) {
-                TConstUnion* constArray = tVar->getConstUnionPointer();
-                variable->shareConstPointer(constArray);
-            } else {
+            if (const TVariable* tVar = symbol->getAsVariable())
+                variable->setConstArray(tVar->getConstArray());
+            else {
                 error(loc, "expected variable", initializer->getAsSymbolNode()->getName().c_str(), "");
                 return 0;
             }
@@ -2121,16 +2113,14 @@ TIntermNode* TParseContext::executeInitializer(TSourceLoc loc, TString& identifi
             variable->getWritableType().getQualifier().storage = EvqTemporary;
             return 0;
         }
-    }
-    if (qualifier != EvqConst) {
+    } else {
         TIntermSymbol* intermSymbol = intermediate.addSymbol(variable->getUniqueId(), variable->getName(), variable->getType(), loc);
         TIntermNode* initNode = intermediate.addAssign(EOpAssign, intermSymbol, initializer, loc);
         if (! initNode)
             assignError(loc, "=", intermSymbol->getCompleteString(), initializer->getCompleteString());
 
         return initNode;
-    } 
+    }
 
     return 0;
 }
@@ -2559,8 +2549,8 @@ void TParseContext::wrapupSwitchSubsequence(TIntermAggregate* statements, TInter
                           newExpression != 0 &&
                          prevExpression->getAsConstantUnion() && 
                           newExpression->getAsConstantUnion() &&
-                         prevExpression->getAsConstantUnion()->getUnionArrayPointer()->getIConst() == 
-                          newExpression->getAsConstantUnion()->getUnionArrayPointer()->getIConst())
+                         prevExpression->getAsConstantUnion()->getConstArray()[0].getIConst() == 
+                          newExpression->getAsConstantUnion()->getConstArray()[0].getIConst())
                     error(branchNode->getLoc(), "duplicated value", "case", "");
             }
         }
@@ -2617,22 +2607,16 @@ TIntermTyped* TParseContext::addConstVectorNode(TVectorFields& fields, TIntermTy
     TIntermTyped* typedNode;
     TIntermConstantUnion* tempConstantNode = node->getAsConstantUnion();
 
-    TConstUnion *unionArray;
-    if (tempConstantNode) {
-        unionArray = tempConstantNode->getUnionArrayPointer();
-
-        if (!unionArray) {  // this error message should never be raised
-            infoSink.info.message(EPrefixInternalError, "TConstUnion not initialized in addConstVectorNode function", loc);
-
-            return node;
-        }
-    } else { // The node has to be either a symbol node or an aggregate node or a tempConstant node, else, its an error
+    TConstUnionArray unionArray;
+    if (tempConstantNode)
+        unionArray = tempConstantNode->getConstArray();
+    else { // The node has to be either a symbol node or an aggregate node or a tempConstant node, else, its an error
         error(loc, "Cannot offset into the vector", "Error", "");
 
         return 0;
     }
 
-    TConstUnion* constArray = new TConstUnion[fields.num];
+    TConstUnionArray constArray(fields.num);
 
     for (int i = 0; i < fields.num; i++) {
         if (fields.offsets[i] >= node->getType().getObjectSize()) {
@@ -2664,10 +2648,10 @@ TIntermTyped* TParseContext::addConstMatrixNode(int index, TIntermTyped* node, T
     }
 
     if (tempConstantNode) {
-         TConstUnion* unionArray = tempConstantNode->getUnionArrayPointer();
-         int size = tempConstantNode->getType().getMatrixRows();
-         // Note: the type is corrected (dereferenced) by the caller
-         typedNode = intermediate.addConstantUnion(&unionArray[size*index], tempConstantNode->getType(), loc);
+        const TConstUnionArray& unionArray = tempConstantNode->getConstArray();
+        int size = tempConstantNode->getType().getMatrixRows();
+        // Note: the type is corrected (dereferenced) by the caller
+        typedNode = intermediate.addConstantUnion(TConstUnionArray(unionArray, size * index, size), tempConstantNode->getType(), loc);
     } else {
         error(loc, "Cannot offset into the matrix", "Error", "");
 
@@ -2701,8 +2685,8 @@ TIntermTyped* TParseContext::addConstArrayNode(int index, TIntermTyped* node, TS
     int arrayElementSize = arrayElementType.getObjectSize();
 
     if (tempConstantNode) {
-         TConstUnion* unionArray = tempConstantNode->getUnionArrayPointer();
-         typedNode = intermediate.addConstantUnion(&unionArray[arrayElementSize * index], tempConstantNode->getType(), loc);
+         typedNode = intermediate.addConstantUnion(TConstUnionArray(tempConstantNode->getConstArray(), arrayElementSize * index, arrayElementSize), 
+                                                   tempConstantNode->getType(), loc);
     } else {
         error(loc, "Cannot offset into the array", "Error", "");
 
@@ -2722,22 +2706,24 @@ TIntermTyped* TParseContext::addConstStruct(TString& identifier, TIntermTyped* n
 {
     TTypeList* fields = node->getType().getStruct();
     TIntermTyped *typedNode;
-    int instanceSize = 0;
+    int instanceOffset = 0;
+    int instanceSize;
     unsigned int index = 0;
     TIntermConstantUnion *tempConstantNode = node->getAsConstantUnion();
 
     for ( index = 0; index < fields->size(); ++index) {
-        if ((*fields)[index].type->getFieldName() == identifier) {
+        instanceSize = (*fields)[index].type->getObjectSize();
+        
+        if ((*fields)[index].type->getFieldName() == identifier)
             break;
-        } else {
-            instanceSize += (*fields)[index].type->getObjectSize();
-        }
+        
+        instanceOffset += instanceSize;
     }
 
     if (tempConstantNode) {
-         TConstUnion* constArray = tempConstantNode->getUnionArrayPointer();
-
-         typedNode = intermediate.addConstantUnion(constArray+instanceSize, tempConstantNode->getType(), loc); // type will be changed in the calling function
+         typedNode = intermediate.addConstantUnion(TConstUnionArray(tempConstantNode->getConstArray(), instanceOffset, instanceSize), 
+                                                   tempConstantNode->getType(), loc);
+         // type will be changed in the calling function
     } else {
         error(loc, "Cannot offset into the structure", "Error", "");
 
index a4bfbfd..f32c748 100644 (file)
@@ -171,7 +171,6 @@ protected:
     void declareArray(TSourceLoc, TString& identifier, const TType&, TVariable*&, bool& newDeclaration);
     TIntermNode* executeInitializer(TSourceLoc, TString& identifier, TType&, TIntermTyped* initializer, TVariable* variable);
 
-
 public:
     //
     // Generally, bison productions, the scanner, and the PP need read/write access to these; just give them direct access
index 8e1c79d..ee964de 100644 (file)
@@ -231,13 +231,13 @@ TVariable::TVariable(const TVariable& copyOf, TStructureMap& remapper) : TSymbol
     type.deepCopy(copyOf.type, remapper);
     userType = copyOf.userType;
 
-    if (copyOf.unionArray) {
+    if (! copyOf.unionArray.empty()) {
         assert(!copyOf.type.getStruct());
         assert(copyOf.type.getObjectSize() == 1);
-        unionArray = new TConstUnion[1];
-        unionArray[0] = copyOf.unionArray[0];
-    } else
-        unionArray = 0;
+        TConstUnionArray newArray(1);
+        newArray[0] = copyOf.unionArray[0];
+        unionArray = newArray;
+    }
 }
 
 TVariable* TVariable::clone(TStructureMap& remapper)
index 0b30723..d3831bb 100644 (file)
@@ -125,7 +125,7 @@ protected:
 //
 class TVariable : public TSymbol {
 public:
-    TVariable(const TString *name, const TType& t, bool uT = false ) : TSymbol(name), userType(uT), unionArray(0) { type.shallowCopy(t); }
+    TVariable(const TString *name, const TType& t, bool uT = false ) : TSymbol(name), userType(uT) { type.shallowCopy(t); }
        virtual TVariable* clone(TStructureMap& remapper);
     virtual ~TVariable() { }
 
@@ -137,21 +137,8 @@ public:
 
     virtual void dump(TInfoSink &infoSink) const;
 
-    TConstUnion* getConstUnionPointer()
-    {
-        if (!unionArray)
-            unionArray = new TConstUnion[type.getObjectSize()];
-
-        return unionArray;
-    }
-
-    TConstUnion* getConstUnionPointer() const { return unionArray; }
-
-    void shareConstPointer( TConstUnion *constArray)
-    {
-        delete unionArray;
-        unionArray = constArray;
-    }
+    const TConstUnionArray& getConstArray() const { return unionArray; }
+    void setConstArray(const TConstUnionArray& constArray) { unionArray = constArray; }
 
 protected:
     explicit TVariable(const TVariable&);
@@ -162,7 +149,7 @@ protected:
     bool userType;
     // we are assuming that Pool Allocator will free the memory allocated to unionArray
     // when this object is destroyed
-    TConstUnion *unionArray;
+    TConstUnionArray unionArray;
 };
 
 //
index 614bf41..af986bd 100644 (file)
@@ -226,30 +226,30 @@ primary_expression
         $$ = $1;\r
     }\r
     | INTCONSTANT {\r
-        TConstUnion *unionArray = new TConstUnion[1];\r
-        unionArray->setIConst($1.i);\r
+        TConstUnionArray unionArray(1);\r
+        unionArray[0].setIConst($1.i);\r
         $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtInt, EvqConst), $1.loc);\r
     }\r
     | UINTCONSTANT {        \r
         parseContext.fullIntegerCheck($1.loc, "unsigned literal");\r
-        TConstUnion *unionArray = new TConstUnion[1];\r
-        unionArray->setUConst($1.u);\r
+        TConstUnionArray unionArray(1);\r
+        unionArray[0].setUConst($1.u);\r
         $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtUint, EvqConst), $1.loc);\r
     }\r
     | FLOATCONSTANT {\r
-        TConstUnion *unionArray = new TConstUnion[1];\r
-        unionArray->setDConst($1.d);\r
+        TConstUnionArray unionArray(1);\r
+        unionArray[0].setDConst($1.d);\r
         $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtFloat, EvqConst), $1.loc);\r
     }\r
     | DOUBLECONSTANT {\r
         parseContext.doubleCheck($1.loc, "double literal");\r
-        TConstUnion *unionArray = new TConstUnion[1];\r
-        unionArray->setDConst($1.d);\r
+        TConstUnionArray unionArray(1);\r
+        unionArray[0].setDConst($1.d);\r
         $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtDouble, EvqConst), $1.loc);\r
     }\r
     | BOOLCONSTANT {\r
-        TConstUnion *unionArray = new TConstUnion[1];\r
-        unionArray->setBConst($1.b);\r
+        TConstUnionArray unionArray(1);\r
+        unionArray[0].setBConst($1.b);\r
         $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $1.loc);\r
     }\r
     | LEFT_PAREN expression RIGHT_PAREN {\r
@@ -515,8 +515,8 @@ relational_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpLessThan, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "<", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -524,8 +524,8 @@ relational_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpGreaterThan, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, ">", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -533,8 +533,8 @@ relational_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpLessThanEqual, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "<=", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -542,8 +542,8 @@ relational_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpGreaterThanEqual, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, ">=", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -555,8 +555,8 @@ equality_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpEqual, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "==", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         } else if (($1->isArray() || $3->isArray()))\r
             parseContext.profileRequires($2.loc, ENoProfile, 120, "GL_3DL_array_objects", "==");\r
@@ -565,8 +565,8 @@ equality_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpNotEqual, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "!=", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         } else if (($1->isArray() || $3->isArray()))\r
             parseContext.profileRequires($2.loc, ENoProfile, 120, "GL_3DL_array_objects", "!=");\r
@@ -615,8 +615,8 @@ logical_and_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpLogicalAnd, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "&&", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -628,8 +628,8 @@ logical_xor_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpLogicalXor, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "^^", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
@@ -641,8 +641,8 @@ logical_or_expression
         $$ = parseContext.intermediate.addBinaryMath(EOpLogicalOr, $1, $3, $2.loc);\r
         if ($$ == 0) {\r
             parseContext.binaryOpError($2.loc, "||", $1->getCompleteString(), $3->getCompleteString());\r
-            TConstUnion *unionArray = new TConstUnion[1];\r
-            unionArray->setBConst(false);\r
+            TConstUnionArray unionArray(1);\r
+            unionArray[0].setBConst(false);\r
             $$ = parseContext.intermediate.addConstantUnion(unionArray, TType(EbtBool, EvqConst), $2.loc);\r
         }\r
     }\r
index d6b618e..b2fe2d5 100644 (file)
@@ -62,7 +62,7 @@ public:
 // Helper functions for printing, not part of traversing.
 //
 
-void OutputTreeText(TInfoSink& infoSink, TIntermNode* node, const int depth)
+void OutputTreeText(TInfoSink& infoSink, const TIntermNode* node, const int depth)
 {
     int i;
 
@@ -85,21 +85,6 @@ void OutputTreeText(TInfoSink& infoSink, TIntermNode* node, const int depth)
 // return false.
 //
 
-void OutputSymbol(TIntermSymbol* node, TIntermTraverser* it)
-{
-    TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
-
-    OutputTreeText(oit->infoSink, node, oit->depth);
-
-    const int maxSize = GlslangMaxTypeLength + GlslangMaxTokenLength;
-    char buf[maxSize];
-    snprintf(buf, maxSize, "'%s' (%s)\n",
-           node->getName().c_str(),
-           node->getCompleteString().c_str());
-
-    oit->infoSink.debug << buf;
-}
-
 bool OutputBinary(bool /* preVisit */, TIntermBinary* node, TIntermTraverser* it)
 {
     TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
@@ -127,7 +112,7 @@ bool OutputBinary(bool /* preVisit */, TIntermBinary* node, TIntermTraverser* it
     case EOpIndexDirect:   out.debug << "direct index";   break;
     case EOpIndexIndirect: out.debug << "indirect index"; break;
     case EOpIndexDirectStruct:
-        out.debug << (*node->getLeft()->getType().getStruct())[node->getRight()->getAsConstantUnion()->getUnionArrayPointer()->getIConst()].type->getFieldName();
+        out.debug << (*node->getLeft()->getType().getStruct())[node->getRight()->getAsConstantUnion()->getConstArray()[0].getIConst()].type->getFieldName();
         out.debug << ": direct index for structure";      break;
     case EOpVectorSwizzle: out.debug << "vector swizzle"; break;
 
@@ -417,18 +402,15 @@ bool OutputSelection(bool /* preVisit */, TIntermSelection* node, TIntermTravers
     return false;
 }
 
-void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
+void OutputConstantUnion(TInfoSink& out, const TIntermTyped* node, const TConstUnionArray& constUnion, int depth)
 {
-    TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
-    TInfoSink& out = oit->infoSink;
-
     int size = node->getType().getObjectSize();
 
     for (int i = 0; i < size; i++) {
-        OutputTreeText(out, node, oit->depth);
-        switch (node->getUnionArrayPointer()[i].getType()) {
+        OutputTreeText(out, node, depth);
+        switch (constUnion[i].getType()) {
         case EbtBool:
-            if (node->getUnionArrayPointer()[i].getBConst())
+            if (constUnion[i].getBConst())
                 out.debug << "true";
             else
                 out.debug << "false";
@@ -442,7 +424,7 @@ void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
             {
                                const int maxSize = 300;
                 char buf[maxSize];
-                snprintf(buf, maxSize, "%f", node->getUnionArrayPointer()[i].getDConst());
+                snprintf(buf, maxSize, "%f", constUnion[i].getDConst());
 
                 out.debug << buf << "\n";
             }
@@ -451,7 +433,7 @@ void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
             {
                                const int maxSize = 300;
                 char buf[maxSize];
-                snprintf(buf, maxSize, "%d (%s)", node->getUnionArrayPointer()[i].getIConst(), "const int");
+                snprintf(buf, maxSize, "%d (%s)", constUnion[i].getIConst(), "const int");
 
                 out.debug << buf << "\n";
             }
@@ -460,7 +442,7 @@ void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
             {
                                const int maxSize = 300;
                 char buf[maxSize];
-                snprintf(buf, maxSize, "%u (%s)", node->getUnionArrayPointer()[i].getUConst(), "const uint");
+                snprintf(buf, maxSize, "%u (%s)", constUnion[i].getUConst(), "const uint");
 
                 out.debug << buf << "\n";
             }
@@ -472,6 +454,34 @@ void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
     }
 }
 
+void OutputConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
+{
+    TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
+    TInfoSink& out = oit->infoSink;
+
+    OutputTreeText(oit->infoSink, node, oit->depth);
+    oit->infoSink.debug << "Constant:\n";
+
+    OutputConstantUnion(oit->infoSink, node, node->getConstArray(), oit->depth + 1);
+}
+
+void OutputSymbol(TIntermSymbol* node, TIntermTraverser* it)
+{
+    TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
+
+    OutputTreeText(oit->infoSink, node, oit->depth);
+
+    const int maxSize = GlslangMaxTypeLength + GlslangMaxTokenLength;
+    char buf[maxSize];
+    snprintf(buf, maxSize, "'%s' (%s)\n",
+             node->getName().c_str(),
+             node->getCompleteString().c_str());
+    oit->infoSink.debug << buf;
+
+    if (! node->getConstArray().empty())
+        OutputConstantUnion(oit->infoSink, node, node->getConstArray(), oit->depth + 1);
+}
+
 bool OutputLoop(bool /* preVisit */, TIntermLoop* node, TIntermTraverser* it)
 {
     TOutputTraverser* oit = static_cast<TOutputTraverser*>(it);
index 9b92244..3992e26 100644 (file)
@@ -87,9 +87,9 @@ public:
     TIntermTyped* addSelection(TIntermTyped* cond, TIntermTyped* trueBlock, TIntermTyped* falseBlock, TSourceLoc);
     TIntermTyped* addComma(TIntermTyped* left, TIntermTyped* right, TSourceLoc);
     TIntermTyped* addMethod(TIntermTyped*, const TType&, const TString*, TSourceLoc);
-    TIntermConstantUnion* addConstantUnion(TConstUnion*, const TType&, TSourceLoc);
+    TIntermConstantUnion* addConstantUnion(const TConstUnionArray&, const TType&, TSourceLoc);
     TIntermTyped* promoteConstantUnion(TBasicType, TIntermConstantUnion*) ;
-    bool parseConstTree(TSourceLoc, TIntermNode*, TConstUnion*, TOperator, const TType&, bool singleConstantParam = false);
+    bool parseConstTree(TSourceLoc, TIntermNode*, TConstUnionArray, TOperator, const TType&, bool singleConstantParam = false);
     TIntermNode* addLoop(TIntermNode*, TIntermTyped*, TIntermTyped*, bool testFirst, TSourceLoc);
     TIntermBranch* addBranch(TOperator, TSourceLoc);
     TIntermBranch* addBranch(TOperator, TIntermTyped*, TSourceLoc);
index 54ee791..a5280db 100644 (file)
@@ -43,11 +43,11 @@ namespace glslang {
 
 class TConstTraverser : public TIntermTraverser {
 public:
-    TConstTraverser(TConstUnion* cUnion, bool singleConstParam, TOperator constructType, const TType& t) : unionArray(cUnion), type(t),
+    TConstTraverser(const TConstUnionArray& cUnion, bool singleConstParam, TOperator constructType, const TType& t) : unionArray(cUnion), type(t),
         constructorType(constructType), singleConstantParam(singleConstParam), error(false), isMatrix(false), 
         matrixCols(0), matrixRows(0) {  index = 0; tOp = EOpNull;}
-    int index ;
-    TConstUnion *unionArray;
+    int index;
+    TConstUnionArray unionArray;
     TOperator tOp;
     const TType& type;
     TOperator constructorType;
@@ -112,7 +112,7 @@ bool ParseAggregate(bool /* preVisit */, TIntermAggregate* node, TIntermTraverse
 void ParseConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
 {
     TConstTraverser* oit = static_cast<TConstTraverser*>(it);
-    TConstUnion* leftUnionArray = oit->unionArray;
+    TConstUnionArray leftUnionArray(oit->unionArray);
     int instanceSize = oit->type.getObjectSize();
 
     if (oit->index >= instanceSize)
@@ -121,7 +121,7 @@ void ParseConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
     if (!oit->singleConstantParam) {
         int size = node->getType().getObjectSize();
     
-        TConstUnion *rightUnionArray = node->getUnionArrayPointer();
+        const TConstUnionArray& rightUnionArray = node->getConstArray();
         for (int i=0; i < size; i++) {
             if (oit->index >= instanceSize)
                 return;
@@ -137,7 +137,7 @@ void ParseConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
         matrixRows = oit->matrixRows;
         isMatrix = oit->isMatrix;
         totalSize = oit->index + size;
-        TConstUnion *rightUnionArray = node->getUnionArrayPointer();
+        const TConstUnionArray& rightUnionArray = node->getConstArray();
         if (! isMatrix) {
             int count = 0;
             for (int i = oit->index; i < totalSize; i++) {
@@ -171,7 +171,7 @@ void ParseConstantUnion(TIntermConstantUnion* node, TIntermTraverser* it)
     }
 }
 
-bool TIntermediate::parseConstTree(TSourceLoc line, TIntermNode* root, TConstUnion* unionArray, TOperator constructorType, const TType& t, bool singleConstantParam)
+bool TIntermediate::parseConstTree(TSourceLoc line, TIntermNode* root, TConstUnionArray unionArray, TOperator constructorType, const TType& t, bool singleConstantParam)
 {
     if (root == 0)
         return false;