summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPéter Diviánszky <divipp@gmail.com>2016-02-18 10:17:30 +0100
committerPéter Diviánszky <divipp@gmail.com>2016-02-18 10:17:30 +0100
commit30e482a72d6c83490ae7d4656de9bd01cc4ef499 (patch)
tree4190a01fda8d6ea5e876c3a29ca5cb9c4175dcad
parentc468af5fdba01215c117aa7637f10fe1acfcdb4d (diff)
inline uniform variables
-rw-r--r--src/LambdaCube/Compiler/CoreToIR.hs8
-rw-r--r--testdata/Graphics.out114
-rw-r--r--testdata/HyperbolicParaboloic.out5
-rw-r--r--testdata/Hyperboloid.out5
-rw-r--r--testdata/Spiral.out7
-rw-r--r--testdata/editor-examples/Heartbeat.out9
-rw-r--r--testdata/editor-examples/LambdaCube.out3
-rw-r--r--testdata/editor-examples/RecLC.out8
-rw-r--r--testdata/editor-examples/RecursiveTexture.out60
-rw-r--r--testdata/example08.out56
-rw-r--r--testdata/fragment04ifthenelse.out3
-rw-r--r--testdata/gfx03.out11
-rw-r--r--testdata/gfx04.out3
-rw-r--r--testdata/gfx05.out11
-rw-r--r--testdata/heartbeat01.out9
-rw-r--r--testdata/simple02.out3
-rw-r--r--testdata/simple03.out6
17 files changed, 75 insertions, 246 deletions
diff --git a/src/LambdaCube/Compiler/CoreToIR.hs b/src/LambdaCube/Compiler/CoreToIR.hs
index 80bc07cc..de7a7720 100644
--- a/src/LambdaCube/Compiler/CoreToIR.hs
+++ b/src/LambdaCube/Compiler/CoreToIR.hs
@@ -610,13 +610,19 @@ type Uniforms = Map String (Uniform, IR.InputType)
610 610
611tellUniform x = tell (x, mempty) 611tellUniform x = tell (x, mempty)
612 612
613simpleExpr = \case
614 Con cn xs -> case cn of
615 "Uniform" -> True
616 _ -> False
617 _ -> False
618
613genGLSL :: [SName] -> ExpTV -> WriterT (Uniforms, Map.Map SName (ExpTV, ExpTV, [ExpTV])) (State [String]) Doc 619genGLSL :: [SName] -> ExpTV -> WriterT (Uniforms, Map.Map SName (ExpTV, ExpTV, [ExpTV])) (State [String]) Doc
614genGLSL dns e = case e of 620genGLSL dns e = case e of
615 621
616 ELit a -> pure $ text $ show a 622 ELit a -> pure $ text $ show a
617 Var i _ -> pure $ text $ dns !! i 623 Var i _ -> pure $ text $ dns !! i
618 624
619 Func fn def ty xs -> tell (mempty, Map.singleton fn (def, ty, map tyOf xs)) >> call fn xs 625 Func fn def ty xs | not (simpleExpr def) -> tell (mempty, Map.singleton fn (def, ty, map tyOf xs)) >> call fn xs
620 626
621 Con cn xs -> case cn of 627 Con cn xs -> case cn of
622 "primIfThenElse" -> case xs of [a, b, c] -> hsep <$> sequence [gen a, pure "?", gen b, pure ":", gen c] 628 "primIfThenElse" -> case xs of [a, b, c] -> hsep <$> sequence [gen a, pure "?", gen b, pure ":", gen c]
diff --git a/testdata/Graphics.out b/testdata/Graphics.out
index cea97671..fc891b27 100644
--- a/testdata/Graphics.out
+++ b/testdata/Graphics.out
@@ -38,8 +38,6 @@ Pipeline
38 vec4 snoc(vec3 z0,float z1) { 38 vec4 snoc(vec3 z0,float z1) {
39 return vec4 ((z0).x,(z0).y,(z0).z,z1); 39 return vec4 ((z0).x,(z0).y,(z0).z,z1);
40 } 40 }
41 mat4 viewProj = viewProj;
42 mat4 worldMat = worldMat;
43 void main() { 41 void main() {
44 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 42 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
45 vo1 = vi2; 43 vo1 = vi2;
@@ -84,8 +82,6 @@ Pipeline
84 vec4 snoc(vec3 z0,float z1) { 82 vec4 snoc(vec3 z0,float z1) {
85 return vec4 ((z0).x,(z0).y,(z0).z,z1); 83 return vec4 ((z0).x,(z0).y,(z0).z,z1);
86 } 84 }
87 mat4 viewProj = viewProj;
88 mat4 worldMat = worldMat;
89 void main() { 85 void main() {
90 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 86 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
91 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,0.5); 87 vo1 = vec4 ((vi2).x,(vi2).y,(vi2).z,0.5);
@@ -140,8 +136,6 @@ Pipeline
140 vec4 snoc(vec3 z0,float z1) { 136 vec4 snoc(vec3 z0,float z1) {
141 return vec4 ((z0).x,(z0).y,(z0).z,z1); 137 return vec4 ((z0).x,(z0).y,(z0).z,z1);
142 } 138 }
143 mat4 viewProj = viewProj;
144 mat4 worldMat = worldMat;
145 void main() { 139 void main() {
146 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 140 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
147 vo1 = vi4; 141 vo1 = vi4;
@@ -200,8 +194,6 @@ Pipeline
200 vec4 snoc(vec3 z0,float z1) { 194 vec4 snoc(vec3 z0,float z1) {
201 return vec4 ((z0).x,(z0).y,(z0).z,z1); 195 return vec4 ((z0).x,(z0).y,(z0).z,z1);
202 } 196 }
203 mat4 viewProj = viewProj;
204 mat4 worldMat = worldMat;
205 void main() { 197 void main() {
206 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 198 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
207 vo1 = vi3; 199 vo1 = vi3;
@@ -261,9 +253,6 @@ Pipeline
261 vec4 snoc(vec3 z0,float z1) { 253 vec4 snoc(vec3 z0,float z1) {
262 return vec4 ((z0).x,(z0).y,(z0).z,z1); 254 return vec4 ((z0).x,(z0).y,(z0).z,z1);
263 } 255 }
264 float time = time;
265 mat4 viewProj = viewProj;
266 mat4 worldMat = worldMat;
267 void main() { 256 void main() {
268 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 257 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
269 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2 258 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2
@@ -325,8 +314,6 @@ Pipeline
325 vec4 snoc(vec3 z0,float z1) { 314 vec4 snoc(vec3 z0,float z1) {
326 return vec4 ((z0).x,(z0).y,(z0).z,z1); 315 return vec4 ((z0).x,(z0).y,(z0).z,z1);
327 } 316 }
328 mat4 viewProj = viewProj;
329 mat4 worldMat = worldMat;
330 void main() { 317 void main() {
331 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 318 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
332 vo1 = vi3; 319 vo1 = vi3;
@@ -385,8 +372,6 @@ Pipeline
385 vec4 snoc(vec3 z0,float z1) { 372 vec4 snoc(vec3 z0,float z1) {
386 return vec4 ((z0).x,(z0).y,(z0).z,z1); 373 return vec4 ((z0).x,(z0).y,(z0).z,z1);
387 } 374 }
388 mat4 viewProj = viewProj;
389 mat4 worldMat = worldMat;
390 void main() { 375 void main() {
391 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 376 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
392 vo1 = vi3; 377 vo1 = vi3;
@@ -447,9 +432,6 @@ Pipeline
447 vec4 snoc(vec3 z0,float z1) { 432 vec4 snoc(vec3 z0,float z1) {
448 return vec4 ((z0).x,(z0).y,(z0).z,z1); 433 return vec4 ((z0).x,(z0).y,(z0).z,z1);
449 } 434 }
450 float time = time;
451 mat4 viewProj = viewProj;
452 mat4 worldMat = worldMat;
453 void main() { 435 void main() {
454 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 436 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
455 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2 437 vo1 = (((vi3) + ((vec2 (0.0,1.0)) * (time))) + ((sin (vec2
@@ -512,8 +494,6 @@ Pipeline
512 vec4 snoc(vec3 z0,float z1) { 494 vec4 snoc(vec3 z0,float z1) {
513 return vec4 ((z0).x,(z0).y,(z0).z,z1); 495 return vec4 ((z0).x,(z0).y,(z0).z,z1);
514 } 496 }
515 mat4 viewProj = viewProj;
516 mat4 worldMat = worldMat;
517 void main() { 497 void main() {
518 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 498 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
519 vo1 = vi4; 499 vo1 = vi4;
@@ -574,8 +554,6 @@ Pipeline
574 vec4 snoc(vec3 z0,float z1) { 554 vec4 snoc(vec3 z0,float z1) {
575 return vec4 ((z0).x,(z0).y,(z0).z,z1); 555 return vec4 ((z0).x,(z0).y,(z0).z,z1);
576 } 556 }
577 mat4 viewProj = viewProj;
578 mat4 worldMat = worldMat;
579 void main() { 557 void main() {
580 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 558 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
581 vo1 = vi3; 559 vo1 = vi3;
@@ -636,8 +614,6 @@ Pipeline
636 vec4 snoc(vec3 z0,float z1) { 614 vec4 snoc(vec3 z0,float z1) {
637 return vec4 ((z0).x,(z0).y,(z0).z,z1); 615 return vec4 ((z0).x,(z0).y,(z0).z,z1);
638 } 616 }
639 mat4 viewProj = viewProj;
640 mat4 worldMat = worldMat;
641 void main() { 617 void main() {
642 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 618 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
643 vo1 = vi3; 619 vo1 = vi3;
@@ -698,8 +674,6 @@ Pipeline
698 vec4 snoc(vec3 z0,float z1) { 674 vec4 snoc(vec3 z0,float z1) {
699 return vec4 ((z0).x,(z0).y,(z0).z,z1); 675 return vec4 ((z0).x,(z0).y,(z0).z,z1);
700 } 676 }
701 mat4 viewProj = viewProj;
702 mat4 worldMat = worldMat;
703 void main() { 677 void main() {
704 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 678 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
705 vo1 = vi3; 679 vo1 = vi3;
@@ -759,8 +733,6 @@ Pipeline
759 vec4 snoc(vec3 z0,float z1) { 733 vec4 snoc(vec3 z0,float z1) {
760 return vec4 ((z0).x,(z0).y,(z0).z,z1); 734 return vec4 ((z0).x,(z0).y,(z0).z,z1);
761 } 735 }
762 mat4 viewProj = viewProj;
763 mat4 worldMat = worldMat;
764 void main() { 736 void main() {
765 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 737 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
766 vo1 = vi3; 738 vo1 = vi3;
@@ -821,8 +793,6 @@ Pipeline
821 vec4 snoc(vec3 z0,float z1) { 793 vec4 snoc(vec3 z0,float z1) {
822 return vec4 ((z0).x,(z0).y,(z0).z,z1); 794 return vec4 ((z0).x,(z0).y,(z0).z,z1);
823 } 795 }
824 mat4 viewProj = viewProj;
825 mat4 worldMat = worldMat;
826 void main() { 796 void main() {
827 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 797 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
828 vo1 = vi3; 798 vo1 = vi3;
@@ -883,8 +853,6 @@ Pipeline
883 vec4 snoc(vec3 z0,float z1) { 853 vec4 snoc(vec3 z0,float z1) {
884 return vec4 ((z0).x,(z0).y,(z0).z,z1); 854 return vec4 ((z0).x,(z0).y,(z0).z,z1);
885 } 855 }
886 mat4 viewProj = viewProj;
887 mat4 worldMat = worldMat;
888 void main() { 856 void main() {
889 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 857 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
890 vo1 = vi3; 858 vo1 = vi3;
@@ -945,8 +913,6 @@ Pipeline
945 vec4 snoc(vec3 z0,float z1) { 913 vec4 snoc(vec3 z0,float z1) {
946 return vec4 ((z0).x,(z0).y,(z0).z,z1); 914 return vec4 ((z0).x,(z0).y,(z0).z,z1);
947 } 915 }
948 mat4 viewProj = viewProj;
949 mat4 worldMat = worldMat;
950 void main() { 916 void main() {
951 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 917 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
952 vo1 = vi3; 918 vo1 = vi3;
@@ -1007,8 +973,6 @@ Pipeline
1007 vec4 snoc(vec3 z0,float z1) { 973 vec4 snoc(vec3 z0,float z1) {
1008 return vec4 ((z0).x,(z0).y,(z0).z,z1); 974 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1009 } 975 }
1010 mat4 viewProj = viewProj;
1011 mat4 worldMat = worldMat;
1012 void main() { 976 void main() {
1013 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 977 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1014 vo1 = vi3; 978 vo1 = vi3;
@@ -1069,8 +1033,6 @@ Pipeline
1069 vec4 snoc(vec3 z0,float z1) { 1033 vec4 snoc(vec3 z0,float z1) {
1070 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1034 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1071 } 1035 }
1072 mat4 viewProj = viewProj;
1073 mat4 worldMat = worldMat;
1074 void main() { 1036 void main() {
1075 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1037 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1076 vo1 = vi3; 1038 vo1 = vi3;
@@ -1131,8 +1093,6 @@ Pipeline
1131 vec4 snoc(vec3 z0,float z1) { 1093 vec4 snoc(vec3 z0,float z1) {
1132 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1094 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1133 } 1095 }
1134 mat4 viewProj = viewProj;
1135 mat4 worldMat = worldMat;
1136 void main() { 1096 void main() {
1137 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1097 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1138 vo1 = vi3; 1098 vo1 = vi3;
@@ -1193,8 +1153,6 @@ Pipeline
1193 vec4 snoc(vec3 z0,float z1) { 1153 vec4 snoc(vec3 z0,float z1) {
1194 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1154 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1195 } 1155 }
1196 mat4 viewProj = viewProj;
1197 mat4 worldMat = worldMat;
1198 void main() { 1156 void main() {
1199 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1157 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1200 vo1 = vi3; 1158 vo1 = vi3;
@@ -1255,8 +1213,6 @@ Pipeline
1255 vec4 snoc(vec3 z0,float z1) { 1213 vec4 snoc(vec3 z0,float z1) {
1256 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1214 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1257 } 1215 }
1258 mat4 viewProj = viewProj;
1259 mat4 worldMat = worldMat;
1260 void main() { 1216 void main() {
1261 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1217 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1262 vo1 = vi3; 1218 vo1 = vi3;
@@ -1317,8 +1273,6 @@ Pipeline
1317 vec4 snoc(vec3 z0,float z1) { 1273 vec4 snoc(vec3 z0,float z1) {
1318 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1274 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1319 } 1275 }
1320 mat4 viewProj = viewProj;
1321 mat4 worldMat = worldMat;
1322 void main() { 1276 void main() {
1323 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1277 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1324 vo1 = vi3; 1278 vo1 = vi3;
@@ -1379,8 +1333,6 @@ Pipeline
1379 vec4 snoc(vec3 z0,float z1) { 1333 vec4 snoc(vec3 z0,float z1) {
1380 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1334 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1381 } 1335 }
1382 mat4 viewProj = viewProj;
1383 mat4 worldMat = worldMat;
1384 void main() { 1336 void main() {
1385 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1337 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1386 vo1 = vi3; 1338 vo1 = vi3;
@@ -1441,8 +1393,6 @@ Pipeline
1441 vec4 snoc(vec3 z0,float z1) { 1393 vec4 snoc(vec3 z0,float z1) {
1442 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1394 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1443 } 1395 }
1444 mat4 viewProj = viewProj;
1445 mat4 worldMat = worldMat;
1446 void main() { 1396 void main() {
1447 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1397 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1448 vo1 = vi3; 1398 vo1 = vi3;
@@ -1503,8 +1453,6 @@ Pipeline
1503 vec4 snoc(vec3 z0,float z1) { 1453 vec4 snoc(vec3 z0,float z1) {
1504 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1454 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1505 } 1455 }
1506 mat4 viewProj = viewProj;
1507 mat4 worldMat = worldMat;
1508 void main() { 1456 void main() {
1509 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1457 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1510 vo1 = vi3; 1458 vo1 = vi3;
@@ -1565,8 +1513,6 @@ Pipeline
1565 vec4 snoc(vec3 z0,float z1) { 1513 vec4 snoc(vec3 z0,float z1) {
1566 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1514 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1567 } 1515 }
1568 mat4 viewProj = viewProj;
1569 mat4 worldMat = worldMat;
1570 void main() { 1516 void main() {
1571 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1517 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1572 vo1 = vi3; 1518 vo1 = vi3;
@@ -1627,8 +1573,6 @@ Pipeline
1627 vec4 snoc(vec3 z0,float z1) { 1573 vec4 snoc(vec3 z0,float z1) {
1628 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1574 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1629 } 1575 }
1630 mat4 viewProj = viewProj;
1631 mat4 worldMat = worldMat;
1632 void main() { 1576 void main() {
1633 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1577 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1634 vo1 = vi3; 1578 vo1 = vi3;
@@ -1688,8 +1632,6 @@ Pipeline
1688 vec4 snoc(vec3 z0,float z1) { 1632 vec4 snoc(vec3 z0,float z1) {
1689 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1633 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1690 } 1634 }
1691 mat4 viewProj = viewProj;
1692 mat4 worldMat = worldMat;
1693 void main() { 1635 void main() {
1694 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1636 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1695 vo1 = vi3; 1637 vo1 = vi3;
@@ -1750,8 +1692,6 @@ Pipeline
1750 vec4 snoc(vec3 z0,float z1) { 1692 vec4 snoc(vec3 z0,float z1) {
1751 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1693 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1752 } 1694 }
1753 mat4 viewProj = viewProj;
1754 mat4 worldMat = worldMat;
1755 void main() { 1695 void main() {
1756 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1696 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1757 vo1 = vi3; 1697 vo1 = vi3;
@@ -1812,8 +1752,6 @@ Pipeline
1812 vec4 snoc(vec3 z0,float z1) { 1752 vec4 snoc(vec3 z0,float z1) {
1813 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1753 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1814 } 1754 }
1815 mat4 viewProj = viewProj;
1816 mat4 worldMat = worldMat;
1817 void main() { 1755 void main() {
1818 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1756 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1819 vo1 = vi3; 1757 vo1 = vi3;
@@ -1874,8 +1812,6 @@ Pipeline
1874 vec4 snoc(vec3 z0,float z1) { 1812 vec4 snoc(vec3 z0,float z1) {
1875 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1813 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1876 } 1814 }
1877 mat4 viewProj = viewProj;
1878 mat4 worldMat = worldMat;
1879 void main() { 1815 void main() {
1880 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1816 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1881 vo1 = vi3; 1817 vo1 = vi3;
@@ -1936,8 +1872,6 @@ Pipeline
1936 vec4 snoc(vec3 z0,float z1) { 1872 vec4 snoc(vec3 z0,float z1) {
1937 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1873 return vec4 ((z0).x,(z0).y,(z0).z,z1);
1938 } 1874 }
1939 mat4 viewProj = viewProj;
1940 mat4 worldMat = worldMat;
1941 void main() { 1875 void main() {
1942 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1876 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
1943 vo1 = vi3; 1877 vo1 = vi3;
@@ -1998,8 +1932,6 @@ Pipeline
1998 vec4 snoc(vec3 z0,float z1) { 1932 vec4 snoc(vec3 z0,float z1) {
1999 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1933 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2000 } 1934 }
2001 mat4 viewProj = viewProj;
2002 mat4 worldMat = worldMat;
2003 void main() { 1935 void main() {
2004 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1936 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2005 vo1 = vi3; 1937 vo1 = vi3;
@@ -2060,8 +1992,6 @@ Pipeline
2060 vec4 snoc(vec3 z0,float z1) { 1992 vec4 snoc(vec3 z0,float z1) {
2061 return vec4 ((z0).x,(z0).y,(z0).z,z1); 1993 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2062 } 1994 }
2063 mat4 viewProj = viewProj;
2064 mat4 worldMat = worldMat;
2065 void main() { 1995 void main() {
2066 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 1996 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2067 vo1 = vi3; 1997 vo1 = vi3;
@@ -2122,8 +2052,6 @@ Pipeline
2122 vec4 snoc(vec3 z0,float z1) { 2052 vec4 snoc(vec3 z0,float z1) {
2123 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2053 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2124 } 2054 }
2125 mat4 viewProj = viewProj;
2126 mat4 worldMat = worldMat;
2127 void main() { 2055 void main() {
2128 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2056 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2129 vo1 = vi3; 2057 vo1 = vi3;
@@ -2184,8 +2112,6 @@ Pipeline
2184 vec4 snoc(vec3 z0,float z1) { 2112 vec4 snoc(vec3 z0,float z1) {
2185 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2113 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2186 } 2114 }
2187 mat4 viewProj = viewProj;
2188 mat4 worldMat = worldMat;
2189 void main() { 2115 void main() {
2190 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2116 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2191 vo1 = vi3; 2117 vo1 = vi3;
@@ -2246,8 +2172,6 @@ Pipeline
2246 vec4 snoc(vec3 z0,float z1) { 2172 vec4 snoc(vec3 z0,float z1) {
2247 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2173 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2248 } 2174 }
2249 mat4 viewProj = viewProj;
2250 mat4 worldMat = worldMat;
2251 void main() { 2175 void main() {
2252 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2176 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2253 vo1 = vi3; 2177 vo1 = vi3;
@@ -2308,8 +2232,6 @@ Pipeline
2308 vec4 snoc(vec3 z0,float z1) { 2232 vec4 snoc(vec3 z0,float z1) {
2309 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2233 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2310 } 2234 }
2311 mat4 viewProj = viewProj;
2312 mat4 worldMat = worldMat;
2313 void main() { 2235 void main() {
2314 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2236 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2315 vo1 = vi3; 2237 vo1 = vi3;
@@ -2370,8 +2292,6 @@ Pipeline
2370 vec4 snoc(vec3 z0,float z1) { 2292 vec4 snoc(vec3 z0,float z1) {
2371 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2293 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2372 } 2294 }
2373 mat4 viewProj = viewProj;
2374 mat4 worldMat = worldMat;
2375 void main() { 2295 void main() {
2376 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2296 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2377 vo1 = vi3; 2297 vo1 = vi3;
@@ -2432,8 +2352,6 @@ Pipeline
2432 vec4 snoc(vec3 z0,float z1) { 2352 vec4 snoc(vec3 z0,float z1) {
2433 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2353 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2434 } 2354 }
2435 mat4 viewProj = viewProj;
2436 mat4 worldMat = worldMat;
2437 void main() { 2355 void main() {
2438 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2356 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2439 vo1 = vi3; 2357 vo1 = vi3;
@@ -2494,8 +2412,6 @@ Pipeline
2494 vec4 snoc(vec3 z0,float z1) { 2412 vec4 snoc(vec3 z0,float z1) {
2495 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2413 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2496 } 2414 }
2497 mat4 viewProj = viewProj;
2498 mat4 worldMat = worldMat;
2499 void main() { 2415 void main() {
2500 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2416 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2501 vo1 = vi3; 2417 vo1 = vi3;
@@ -2556,8 +2472,6 @@ Pipeline
2556 vec4 snoc(vec3 z0,float z1) { 2472 vec4 snoc(vec3 z0,float z1) {
2557 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2473 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2558 } 2474 }
2559 mat4 viewProj = viewProj;
2560 mat4 worldMat = worldMat;
2561 void main() { 2475 void main() {
2562 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2476 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2563 vo1 = vi3; 2477 vo1 = vi3;
@@ -2618,8 +2532,6 @@ Pipeline
2618 vec4 snoc(vec3 z0,float z1) { 2532 vec4 snoc(vec3 z0,float z1) {
2619 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2533 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2620 } 2534 }
2621 mat4 viewProj = viewProj;
2622 mat4 worldMat = worldMat;
2623 void main() { 2535 void main() {
2624 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2536 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2625 vo1 = vi3; 2537 vo1 = vi3;
@@ -2679,8 +2591,6 @@ Pipeline
2679 vec4 snoc(vec3 z0,float z1) { 2591 vec4 snoc(vec3 z0,float z1) {
2680 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2592 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2681 } 2593 }
2682 mat4 viewProj = viewProj;
2683 mat4 worldMat = worldMat;
2684 void main() { 2594 void main() {
2685 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2595 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2686 vo1 = vi3; 2596 vo1 = vi3;
@@ -2741,8 +2651,6 @@ Pipeline
2741 vec4 snoc(vec3 z0,float z1) { 2651 vec4 snoc(vec3 z0,float z1) {
2742 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2652 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2743 } 2653 }
2744 mat4 viewProj = viewProj;
2745 mat4 worldMat = worldMat;
2746 void main() { 2654 void main() {
2747 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2655 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2748 vo1 = vi3; 2656 vo1 = vi3;
@@ -2803,8 +2711,6 @@ Pipeline
2803 vec4 snoc(vec3 z0,float z1) { 2711 vec4 snoc(vec3 z0,float z1) {
2804 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2712 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2805 } 2713 }
2806 mat4 viewProj = viewProj;
2807 mat4 worldMat = worldMat;
2808 void main() { 2714 void main() {
2809 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2715 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2810 vo1 = vi3; 2716 vo1 = vi3;
@@ -2865,8 +2771,6 @@ Pipeline
2865 vec4 snoc(vec3 z0,float z1) { 2771 vec4 snoc(vec3 z0,float z1) {
2866 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2772 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2867 } 2773 }
2868 mat4 viewProj = viewProj;
2869 mat4 worldMat = worldMat;
2870 void main() { 2774 void main() {
2871 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2775 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2872 vo1 = vi3; 2776 vo1 = vi3;
@@ -2927,8 +2831,6 @@ Pipeline
2927 vec4 snoc(vec3 z0,float z1) { 2831 vec4 snoc(vec3 z0,float z1) {
2928 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2832 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2929 } 2833 }
2930 mat4 viewProj = viewProj;
2931 mat4 worldMat = worldMat;
2932 void main() { 2834 void main() {
2933 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2835 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2934 vo1 = vi3; 2836 vo1 = vi3;
@@ -2989,8 +2891,6 @@ Pipeline
2989 vec4 snoc(vec3 z0,float z1) { 2891 vec4 snoc(vec3 z0,float z1) {
2990 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2892 return vec4 ((z0).x,(z0).y,(z0).z,z1);
2991 } 2893 }
2992 mat4 viewProj = viewProj;
2993 mat4 worldMat = worldMat;
2994 void main() { 2894 void main() {
2995 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2895 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
2996 vo1 = vi3; 2896 vo1 = vi3;
@@ -3051,8 +2951,6 @@ Pipeline
3051 vec4 snoc(vec3 z0,float z1) { 2951 vec4 snoc(vec3 z0,float z1) {
3052 return vec4 ((z0).x,(z0).y,(z0).z,z1); 2952 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3053 } 2953 }
3054 mat4 viewProj = viewProj;
3055 mat4 worldMat = worldMat;
3056 void main() { 2954 void main() {
3057 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 2955 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3058 vo1 = vi3; 2956 vo1 = vi3;
@@ -3113,8 +3011,6 @@ Pipeline
3113 vec4 snoc(vec3 z0,float z1) { 3011 vec4 snoc(vec3 z0,float z1) {
3114 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3012 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3115 } 3013 }
3116 mat4 viewProj = viewProj;
3117 mat4 worldMat = worldMat;
3118 void main() { 3014 void main() {
3119 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3015 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3120 vo1 = vi3; 3016 vo1 = vi3;
@@ -3175,8 +3071,6 @@ Pipeline
3175 vec4 snoc(vec3 z0,float z1) { 3071 vec4 snoc(vec3 z0,float z1) {
3176 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3072 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3177 } 3073 }
3178 mat4 viewProj = viewProj;
3179 mat4 worldMat = worldMat;
3180 void main() { 3074 void main() {
3181 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3075 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3182 vo1 = vi3; 3076 vo1 = vi3;
@@ -3237,8 +3131,6 @@ Pipeline
3237 vec4 snoc(vec3 z0,float z1) { 3131 vec4 snoc(vec3 z0,float z1) {
3238 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3132 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3239 } 3133 }
3240 mat4 viewProj = viewProj;
3241 mat4 worldMat = worldMat;
3242 void main() { 3134 void main() {
3243 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3135 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3244 vo1 = vi3; 3136 vo1 = vi3;
@@ -3299,8 +3191,6 @@ Pipeline
3299 vec4 snoc(vec3 z0,float z1) { 3191 vec4 snoc(vec3 z0,float z1) {
3300 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3192 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3301 } 3193 }
3302 mat4 viewProj = viewProj;
3303 mat4 worldMat = worldMat;
3304 void main() { 3194 void main() {
3305 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3195 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3306 vo1 = vi3; 3196 vo1 = vi3;
@@ -3361,8 +3251,6 @@ Pipeline
3361 vec4 snoc(vec3 z0,float z1) { 3251 vec4 snoc(vec3 z0,float z1) {
3362 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3252 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3363 } 3253 }
3364 mat4 viewProj = viewProj;
3365 mat4 worldMat = worldMat;
3366 void main() { 3254 void main() {
3367 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3255 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3368 vo1 = vi3; 3256 vo1 = vi3;
@@ -3423,8 +3311,6 @@ Pipeline
3423 vec4 snoc(vec3 z0,float z1) { 3311 vec4 snoc(vec3 z0,float z1) {
3424 return vec4 ((z0).x,(z0).y,(z0).z,z1); 3312 return vec4 ((z0).x,(z0).y,(z0).z,z1);
3425 } 3313 }
3426 mat4 viewProj = viewProj;
3427 mat4 worldMat = worldMat;
3428 void main() { 3314 void main() {
3429 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0))); 3315 gl_Position = (viewProj) * ((worldMat) * (snoc (vi1,1.0)));
3430 vo1 = vi3; 3316 vo1 = vi3;
diff --git a/testdata/HyperbolicParaboloic.out b/testdata/HyperbolicParaboloic.out
index 7b9b420d..5d3a227d 100644
--- a/testdata/HyperbolicParaboloic.out
+++ b/testdata/HyperbolicParaboloic.out
@@ -32,16 +32,15 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse;
36 vec4 scale(float z0,vec4 z1) { 35 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0)); 36 return (z1) * (vec4 (z0,z0,z0,1.0));
38 } 37 }
39 float t = (m).y; 38 float t = (Mouse).y;
40 void main() { 39 void main() {
41 gl_Position = scale 40 gl_Position = scale
42 (0.1 41 (0.1
43 ,(MVP) * (vec4 ((t) * ((vi1).x) 42 ,(MVP) * (vec4 ((t) * ((vi1).x)
44 ,(((0.5) * ((m).x)) * ((vi1).x)) * ((vi1).y) 43 ,(((0.5) * ((Mouse).x)) * ((vi1).x)) * ((vi1).y)
45 ,(t) * ((vi1).y) 44 ,(t) * ((vi1).y)
46 ,1.0))); 45 ,1.0)));
47 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 46 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
diff --git a/testdata/Hyperboloid.out b/testdata/Hyperboloid.out
index bf3367bb..d5b9ffe4 100644
--- a/testdata/Hyperboloid.out
+++ b/testdata/Hyperboloid.out
@@ -32,9 +32,8 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse; 35 float k = (2.0) * ((Mouse).y);
36 float k = (2.0) * ((m).y); 36 float r = (Mouse).x;
37 float r = (m).x;
38 vec4 scale(float z0,vec4 z1) { 37 vec4 scale(float z0,vec4 z1) {
39 return (z1) * (vec4 (z0,z0,z0,1.0)); 38 return (z1) * (vec4 (z0,z0,z0,1.0));
40 } 39 }
diff --git a/testdata/Spiral.out b/testdata/Spiral.out
index d4922494..caf959b7 100644
--- a/testdata/Spiral.out
+++ b/testdata/Spiral.out
@@ -32,18 +32,17 @@ Pipeline
32 uniform vec2 Mouse; 32 uniform vec2 Mouse;
33 in vec3 vi1; 33 in vec3 vi1;
34 smooth out vec4 vo1; 34 smooth out vec4 vo1;
35 vec2 m = Mouse;
36 vec4 scale(float z0,vec4 z1) { 35 vec4 scale(float z0,vec4 z1) {
37 return (z1) * (vec4 (z0,z0,z0,1.0)); 36 return (z1) * (vec4 (z0,z0,z0,1.0));
38 } 37 }
39 void main() { 38 void main() {
40 gl_Position = scale 39 gl_Position = scale
41 (0.5 40 (0.5
42 ,(MVP) * (vec4 ((exp ((((m).x) - (0.5)) * ((vi1).x))) * (sin 41 ,(MVP) * (vec4 ((exp ((((Mouse).x) - (0.5)) * ((vi1).x))) * (sin
43 ((0.9) * ((vi1).x))) 42 ((0.9) * ((vi1).x)))
44 ,(exp ((((m).x) - (0.5)) * ((vi1).x))) * (cos 43 ,(exp ((((Mouse).x) - (0.5)) * ((vi1).x))) * (cos
45 ((0.9) * ((vi1).x))) 44 ((0.9) * ((vi1).x)))
46 ,((m).y) * ((0.9) * ((vi1).x)) 45 ,((Mouse).y) * ((0.9) * ((vi1).x))
47 ,1.0))); 46 ,1.0)));
48 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 47 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
49 } 48 }
diff --git a/testdata/editor-examples/Heartbeat.out b/testdata/editor-examples/Heartbeat.out
index 435db6b7..d38215cc 100644
--- a/testdata/editor-examples/Heartbeat.out
+++ b/testdata/editor-examples/Heartbeat.out
@@ -108,8 +108,7 @@ Pipeline
108 } 108 }
109 vec4 blue = rgb (0.0,0.0,1.0); 109 vec4 blue = rgb (0.0,0.0,1.0);
110 vec4 navy = rgb (0.0,0.0,0.5); 110 vec4 navy = rgb (0.0,0.0,0.5);
111 float ti = abs ((sin ((time) * (4.0))) - (0.37)); 111 float ti = abs ((sin ((Time) * (4.0))) - (0.37));
112 float time = Time;
113 vec4 white = rgb (1.0,1.0,1.0); 112 vec4 white = rgb (1.0,1.0,1.0);
114 vec4 yellow = rgb (1.0,1.0,0.0); 113 vec4 yellow = rgb (1.0,1.0,0.0);
115 void main() { 114 void main() {
@@ -117,13 +116,13 @@ Pipeline
117 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin 116 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin
118 (((3.0) * (atan 117 (((3.0) * (atan
119 (((vo1).x) - (0.85) 118 (((vo1).x) - (0.85)
120 ,((vo1).y) - (0.85)))) + ((15.0) * (time)))))) < ((5.0e-3) * (ti)) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin 119 ,((vo1).y) - (0.85)))) + ((15.0) * (Time)))))) < ((5.0e-3) * (ti)) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
121 (((5.0) * (atan 120 (((5.0) * (atan
122 (((vo1).x) - (0.85) 121 (((vo1).x) - (0.85)
123 ,((vo1).y) - (0.85)))) - ((5.0) * (time)))))) < ((2.0e-2) * (ti)) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin 122 ,((vo1).y) - (0.85)))) - ((5.0) * (Time)))))) < ((2.0e-2) * (ti)) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
124 (((7.0) * (atan 123 (((7.0) * (atan
125 (((vo1).x) - (0.85) 124 (((vo1).x) - (0.85)
126 ,((vo1).y) - (0.85)))) + ((3.0) * (time)))))) < ((5.0e-2) * (ti)) ? white : yellow; 125 ,((vo1).y) - (0.85)))) + ((3.0) * (Time)))))) < ((5.0e-2) * (ti)) ? white : yellow;
127 } 126 }
128 """ 127 """
129 } 128 }
diff --git a/testdata/editor-examples/LambdaCube.out b/testdata/editor-examples/LambdaCube.out
index f46f8645..313c1fb5 100644
--- a/testdata/editor-examples/LambdaCube.out
+++ b/testdata/editor-examples/LambdaCube.out
@@ -30,8 +30,7 @@ Pipeline
30 uniform float Time; 30 uniform float Time;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 float time = Time; 33 float phase = fract ((Time) * (0.2));
34 float phase = fract ((time) * (0.2));
35 mat4 rotMatrixY(float z0) { 34 mat4 rotMatrixY(float z0) {
36 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0) 35 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
37 ,vec4 (0.0,1.0,0.0,0.0) 36 ,vec4 (0.0,1.0,0.0,0.0)
diff --git a/testdata/editor-examples/RecLC.out b/testdata/editor-examples/RecLC.out
index 4dc75416..ca91c9c1 100644
--- a/testdata/editor-examples/RecLC.out
+++ b/testdata/editor-examples/RecLC.out
@@ -188,7 +188,6 @@ Pipeline
188 in vec4 vi1; 188 in vec4 vi1;
189 in vec2 vi2; 189 in vec2 vi2;
190 smooth out vec2 vo1; 190 smooth out vec2 vo1;
191 mat4 rotMatrix = MVP;
192 mat4 rotMatrixX(float z0) { 191 mat4 rotMatrixX(float z0) {
193 return mat4 (vec4 (1.0,0.0,0.0,0.0) 192 return mat4 (vec4 (1.0,0.0,0.0,0.0)
194 ,vec4 (0.0,cos (z0),sin (z0),0.0) 193 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -199,8 +198,7 @@ Pipeline
199 return (z1) * (vec4 (z0,z0,z0,1.0)); 198 return (z1) * (vec4 (z0,z0,z0,1.0));
200 } 199 }
201 void main() { 200 void main() {
202 gl_Position = (rotMatrix) * (scale 201 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1)));
203 (0.4,(rotMatrixX (0.0)) * (vi1)));
204 vo1 = vi2; 202 vo1 = vi2;
205 } 203 }
206 """ 204 """
@@ -243,7 +241,6 @@ Pipeline
243 in vec4 vi1; 241 in vec4 vi1;
244 in vec2 vi2; 242 in vec2 vi2;
245 smooth out vec2 vo1; 243 smooth out vec2 vo1;
246 mat4 rotMatrix = MVP;
247 mat4 rotMatrixX(float z0) { 244 mat4 rotMatrixX(float z0) {
248 return mat4 (vec4 (1.0,0.0,0.0,0.0) 245 return mat4 (vec4 (1.0,0.0,0.0,0.0)
249 ,vec4 (0.0,cos (z0),sin (z0),0.0) 246 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -254,8 +251,7 @@ Pipeline
254 return (z1) * (vec4 (z0,z0,z0,1.0)); 251 return (z1) * (vec4 (z0,z0,z0,1.0));
255 } 252 }
256 void main() { 253 void main() {
257 gl_Position = (rotMatrix) * (scale 254 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1)));
258 (0.4,(rotMatrixX (0.1)) * (vi1)));
259 vo1 = vi2; 255 vo1 = vi2;
260 } 256 }
261 """ 257 """
diff --git a/testdata/editor-examples/RecursiveTexture.out b/testdata/editor-examples/RecursiveTexture.out
index 4a693a78..98124568 100644
--- a/testdata/editor-examples/RecursiveTexture.out
+++ b/testdata/editor-examples/RecursiveTexture.out
@@ -814,7 +814,6 @@ Pipeline
814 in vec4 vi1; 814 in vec4 vi1;
815 in vec2 vi2; 815 in vec2 vi2;
816 smooth out vec2 vo1; 816 smooth out vec2 vo1;
817 mat4 rotMatrix = MVP;
818 mat4 rotMatrixX(float z0) { 817 mat4 rotMatrixX(float z0) {
819 return mat4 (vec4 (1.0,0.0,0.0,0.0) 818 return mat4 (vec4 (1.0,0.0,0.0,0.0)
820 ,vec4 (0.0,cos (z0),sin (z0),0.0) 819 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -825,8 +824,7 @@ Pipeline
825 return (z1) * (vec4 (z0,z0,z0,1.0)); 824 return (z1) * (vec4 (z0,z0,z0,1.0));
826 } 825 }
827 void main() { 826 void main() {
828 gl_Position = (rotMatrix) * (scale 827 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1)));
829 (0.4,(rotMatrixX (0.0)) * (vi1)));
830 vo1 = vi2; 828 vo1 = vi2;
831 } 829 }
832 """ 830 """
@@ -869,7 +867,6 @@ Pipeline
869 in vec4 vi1; 867 in vec4 vi1;
870 in vec2 vi2; 868 in vec2 vi2;
871 smooth out vec2 vo1; 869 smooth out vec2 vo1;
872 mat4 rotMatrix = MVP;
873 mat4 rotMatrixX(float z0) { 870 mat4 rotMatrixX(float z0) {
874 return mat4 (vec4 (1.0,0.0,0.0,0.0) 871 return mat4 (vec4 (1.0,0.0,0.0,0.0)
875 ,vec4 (0.0,cos (z0),sin (z0),0.0) 872 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -880,8 +877,7 @@ Pipeline
880 return (z1) * (vec4 (z0,z0,z0,1.0)); 877 return (z1) * (vec4 (z0,z0,z0,1.0));
881 } 878 }
882 void main() { 879 void main() {
883 gl_Position = (rotMatrix) * (scale 880 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1)));
884 (0.4,(rotMatrixX (0.1)) * (vi1)));
885 vo1 = vi2; 881 vo1 = vi2;
886 } 882 }
887 """ 883 """
@@ -924,7 +920,6 @@ Pipeline
924 in vec4 vi1; 920 in vec4 vi1;
925 in vec2 vi2; 921 in vec2 vi2;
926 smooth out vec2 vo1; 922 smooth out vec2 vo1;
927 mat4 rotMatrix = MVP;
928 mat4 rotMatrixX(float z0) { 923 mat4 rotMatrixX(float z0) {
929 return mat4 (vec4 (1.0,0.0,0.0,0.0) 924 return mat4 (vec4 (1.0,0.0,0.0,0.0)
930 ,vec4 (0.0,cos (z0),sin (z0),0.0) 925 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -935,8 +930,7 @@ Pipeline
935 return (z1) * (vec4 (z0,z0,z0,1.0)); 930 return (z1) * (vec4 (z0,z0,z0,1.0));
936 } 931 }
937 void main() { 932 void main() {
938 gl_Position = (rotMatrix) * (scale 933 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.2)) * (vi1)));
939 (0.4,(rotMatrixX (0.2)) * (vi1)));
940 vo1 = vi2; 934 vo1 = vi2;
941 } 935 }
942 """ 936 """
@@ -979,7 +973,6 @@ Pipeline
979 in vec4 vi1; 973 in vec4 vi1;
980 in vec2 vi2; 974 in vec2 vi2;
981 smooth out vec2 vo1; 975 smooth out vec2 vo1;
982 mat4 rotMatrix = MVP;
983 mat4 rotMatrixX(float z0) { 976 mat4 rotMatrixX(float z0) {
984 return mat4 (vec4 (1.0,0.0,0.0,0.0) 977 return mat4 (vec4 (1.0,0.0,0.0,0.0)
985 ,vec4 (0.0,cos (z0),sin (z0),0.0) 978 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -990,8 +983,7 @@ Pipeline
990 return (z1) * (vec4 (z0,z0,z0,1.0)); 983 return (z1) * (vec4 (z0,z0,z0,1.0));
991 } 984 }
992 void main() { 985 void main() {
993 gl_Position = (rotMatrix) * (scale 986 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.3)) * (vi1)));
994 (0.4,(rotMatrixX (0.3)) * (vi1)));
995 vo1 = vi2; 987 vo1 = vi2;
996 } 988 }
997 """ 989 """
@@ -1034,7 +1026,6 @@ Pipeline
1034 in vec4 vi1; 1026 in vec4 vi1;
1035 in vec2 vi2; 1027 in vec2 vi2;
1036 smooth out vec2 vo1; 1028 smooth out vec2 vo1;
1037 mat4 rotMatrix = MVP;
1038 mat4 rotMatrixX(float z0) { 1029 mat4 rotMatrixX(float z0) {
1039 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1030 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1040 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1031 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1045,8 +1036,7 @@ Pipeline
1045 return (z1) * (vec4 (z0,z0,z0,1.0)); 1036 return (z1) * (vec4 (z0,z0,z0,1.0));
1046 } 1037 }
1047 void main() { 1038 void main() {
1048 gl_Position = (rotMatrix) * (scale 1039 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.4)) * (vi1)));
1049 (0.4,(rotMatrixX (0.4)) * (vi1)));
1050 vo1 = vi2; 1040 vo1 = vi2;
1051 } 1041 }
1052 """ 1042 """
@@ -1089,7 +1079,6 @@ Pipeline
1089 in vec4 vi1; 1079 in vec4 vi1;
1090 in vec2 vi2; 1080 in vec2 vi2;
1091 smooth out vec2 vo1; 1081 smooth out vec2 vo1;
1092 mat4 rotMatrix = MVP;
1093 mat4 rotMatrixX(float z0) { 1082 mat4 rotMatrixX(float z0) {
1094 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1083 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1095 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1084 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1100,8 +1089,7 @@ Pipeline
1100 return (z1) * (vec4 (z0,z0,z0,1.0)); 1089 return (z1) * (vec4 (z0,z0,z0,1.0));
1101 } 1090 }
1102 void main() { 1091 void main() {
1103 gl_Position = (rotMatrix) * (scale 1092 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.5)) * (vi1)));
1104 (0.4,(rotMatrixX (0.5)) * (vi1)));
1105 vo1 = vi2; 1093 vo1 = vi2;
1106 } 1094 }
1107 """ 1095 """
@@ -1144,7 +1132,6 @@ Pipeline
1144 in vec4 vi1; 1132 in vec4 vi1;
1145 in vec2 vi2; 1133 in vec2 vi2;
1146 smooth out vec2 vo1; 1134 smooth out vec2 vo1;
1147 mat4 rotMatrix = MVP;
1148 mat4 rotMatrixX(float z0) { 1135 mat4 rotMatrixX(float z0) {
1149 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1136 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1150 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1137 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1155,8 +1142,7 @@ Pipeline
1155 return (z1) * (vec4 (z0,z0,z0,1.0)); 1142 return (z1) * (vec4 (z0,z0,z0,1.0));
1156 } 1143 }
1157 void main() { 1144 void main() {
1158 gl_Position = (rotMatrix) * (scale 1145 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.6)) * (vi1)));
1159 (0.4,(rotMatrixX (0.6)) * (vi1)));
1160 vo1 = vi2; 1146 vo1 = vi2;
1161 } 1147 }
1162 """ 1148 """
@@ -1199,7 +1185,6 @@ Pipeline
1199 in vec4 vi1; 1185 in vec4 vi1;
1200 in vec2 vi2; 1186 in vec2 vi2;
1201 smooth out vec2 vo1; 1187 smooth out vec2 vo1;
1202 mat4 rotMatrix = MVP;
1203 mat4 rotMatrixX(float z0) { 1188 mat4 rotMatrixX(float z0) {
1204 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1189 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1205 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1190 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1210,8 +1195,7 @@ Pipeline
1210 return (z1) * (vec4 (z0,z0,z0,1.0)); 1195 return (z1) * (vec4 (z0,z0,z0,1.0));
1211 } 1196 }
1212 void main() { 1197 void main() {
1213 gl_Position = (rotMatrix) * (scale 1198 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.7)) * (vi1)));
1214 (0.4,(rotMatrixX (0.7)) * (vi1)));
1215 vo1 = vi2; 1199 vo1 = vi2;
1216 } 1200 }
1217 """ 1201 """
@@ -1254,7 +1238,6 @@ Pipeline
1254 in vec4 vi1; 1238 in vec4 vi1;
1255 in vec2 vi2; 1239 in vec2 vi2;
1256 smooth out vec2 vo1; 1240 smooth out vec2 vo1;
1257 mat4 rotMatrix = MVP;
1258 mat4 rotMatrixX(float z0) { 1241 mat4 rotMatrixX(float z0) {
1259 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1242 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1260 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1243 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1265,8 +1248,7 @@ Pipeline
1265 return (z1) * (vec4 (z0,z0,z0,1.0)); 1248 return (z1) * (vec4 (z0,z0,z0,1.0));
1266 } 1249 }
1267 void main() { 1250 void main() {
1268 gl_Position = (rotMatrix) * (scale 1251 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.8)) * (vi1)));
1269 (0.4,(rotMatrixX (0.8)) * (vi1)));
1270 vo1 = vi2; 1252 vo1 = vi2;
1271 } 1253 }
1272 """ 1254 """
@@ -1309,7 +1291,6 @@ Pipeline
1309 in vec4 vi1; 1291 in vec4 vi1;
1310 in vec2 vi2; 1292 in vec2 vi2;
1311 smooth out vec2 vo1; 1293 smooth out vec2 vo1;
1312 mat4 rotMatrix = MVP;
1313 mat4 rotMatrixX(float z0) { 1294 mat4 rotMatrixX(float z0) {
1314 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1295 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1315 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1296 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1320,8 +1301,7 @@ Pipeline
1320 return (z1) * (vec4 (z0,z0,z0,1.0)); 1301 return (z1) * (vec4 (z0,z0,z0,1.0));
1321 } 1302 }
1322 void main() { 1303 void main() {
1323 gl_Position = (rotMatrix) * (scale 1304 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.9)) * (vi1)));
1324 (0.4,(rotMatrixX (0.9)) * (vi1)));
1325 vo1 = vi2; 1305 vo1 = vi2;
1326 } 1306 }
1327 """ 1307 """
@@ -1364,7 +1344,6 @@ Pipeline
1364 in vec4 vi1; 1344 in vec4 vi1;
1365 in vec2 vi2; 1345 in vec2 vi2;
1366 smooth out vec2 vo1; 1346 smooth out vec2 vo1;
1367 mat4 rotMatrix = MVP;
1368 mat4 rotMatrixX(float z0) { 1347 mat4 rotMatrixX(float z0) {
1369 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1348 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1370 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1349 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1375,8 +1354,7 @@ Pipeline
1375 return (z1) * (vec4 (z0,z0,z0,1.0)); 1354 return (z1) * (vec4 (z0,z0,z0,1.0));
1376 } 1355 }
1377 void main() { 1356 void main() {
1378 gl_Position = (rotMatrix) * (scale 1357 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.0)) * (vi1)));
1379 (0.4,(rotMatrixX (1.0)) * (vi1)));
1380 vo1 = vi2; 1358 vo1 = vi2;
1381 } 1359 }
1382 """ 1360 """
@@ -1419,7 +1397,6 @@ Pipeline
1419 in vec4 vi1; 1397 in vec4 vi1;
1420 in vec2 vi2; 1398 in vec2 vi2;
1421 smooth out vec2 vo1; 1399 smooth out vec2 vo1;
1422 mat4 rotMatrix = MVP;
1423 mat4 rotMatrixX(float z0) { 1400 mat4 rotMatrixX(float z0) {
1424 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1401 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1425 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1402 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1430,8 +1407,7 @@ Pipeline
1430 return (z1) * (vec4 (z0,z0,z0,1.0)); 1407 return (z1) * (vec4 (z0,z0,z0,1.0));
1431 } 1408 }
1432 void main() { 1409 void main() {
1433 gl_Position = (rotMatrix) * (scale 1410 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.1)) * (vi1)));
1434 (0.4,(rotMatrixX (1.1)) * (vi1)));
1435 vo1 = vi2; 1411 vo1 = vi2;
1436 } 1412 }
1437 """ 1413 """
@@ -1474,7 +1450,6 @@ Pipeline
1474 in vec4 vi1; 1450 in vec4 vi1;
1475 in vec2 vi2; 1451 in vec2 vi2;
1476 smooth out vec2 vo1; 1452 smooth out vec2 vo1;
1477 mat4 rotMatrix = MVP;
1478 mat4 rotMatrixX(float z0) { 1453 mat4 rotMatrixX(float z0) {
1479 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1454 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1480 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1455 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1485,8 +1460,7 @@ Pipeline
1485 return (z1) * (vec4 (z0,z0,z0,1.0)); 1460 return (z1) * (vec4 (z0,z0,z0,1.0));
1486 } 1461 }
1487 void main() { 1462 void main() {
1488 gl_Position = (rotMatrix) * (scale 1463 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.2)) * (vi1)));
1489 (0.4,(rotMatrixX (1.2)) * (vi1)));
1490 vo1 = vi2; 1464 vo1 = vi2;
1491 } 1465 }
1492 """ 1466 """
@@ -1529,7 +1503,6 @@ Pipeline
1529 in vec4 vi1; 1503 in vec4 vi1;
1530 in vec2 vi2; 1504 in vec2 vi2;
1531 smooth out vec2 vo1; 1505 smooth out vec2 vo1;
1532 mat4 rotMatrix = MVP;
1533 mat4 rotMatrixX(float z0) { 1506 mat4 rotMatrixX(float z0) {
1534 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1507 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1535 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1508 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1540,8 +1513,7 @@ Pipeline
1540 return (z1) * (vec4 (z0,z0,z0,1.0)); 1513 return (z1) * (vec4 (z0,z0,z0,1.0));
1541 } 1514 }
1542 void main() { 1515 void main() {
1543 gl_Position = (rotMatrix) * (scale 1516 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.3)) * (vi1)));
1544 (0.4,(rotMatrixX (1.3)) * (vi1)));
1545 vo1 = vi2; 1517 vo1 = vi2;
1546 } 1518 }
1547 """ 1519 """
@@ -1584,7 +1556,6 @@ Pipeline
1584 in vec4 vi1; 1556 in vec4 vi1;
1585 in vec2 vi2; 1557 in vec2 vi2;
1586 smooth out vec2 vo1; 1558 smooth out vec2 vo1;
1587 mat4 rotMatrix = MVP;
1588 mat4 rotMatrixX(float z0) { 1559 mat4 rotMatrixX(float z0) {
1589 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1560 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1590 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1561 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1595,8 +1566,7 @@ Pipeline
1595 return (z1) * (vec4 (z0,z0,z0,1.0)); 1566 return (z1) * (vec4 (z0,z0,z0,1.0));
1596 } 1567 }
1597 void main() { 1568 void main() {
1598 gl_Position = (rotMatrix) * (scale 1569 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.4)) * (vi1)));
1599 (0.4,(rotMatrixX (1.4)) * (vi1)));
1600 vo1 = vi2; 1570 vo1 = vi2;
1601 } 1571 }
1602 """ 1572 """
diff --git a/testdata/example08.out b/testdata/example08.out
index 1921b311..9cb32d49 100644
--- a/testdata/example08.out
+++ b/testdata/example08.out
@@ -47,7 +47,6 @@ Pipeline
47 vec4 scale(float z0,vec4 z1) { 47 vec4 scale(float z0,vec4 z1) {
48 return (z1) * (vec4 (z0,z0,z0,1.0)); 48 return (z1) * (vec4 (z0,z0,z0,1.0));
49 } 49 }
50 float time = Time;
51 vec4 trMat(mat4 z0,vec4 z1) { 50 vec4 trMat(mat4 z0,vec4 z1) {
52 return (z0) * (z1); 51 return (z0) * (z1);
53 } 52 }
@@ -56,11 +55,11 @@ Pipeline
56 } 55 }
57 void main() { 56 void main() {
58 gl_Position = trMat 57 gl_Position = trMat
59 (rotMatrixZ ((time) * (2.0)) 58 (rotMatrixZ ((Time) * (2.0))
60 ,(MVP) * (trX 59 ,(MVP) * (trX
61 ((1.0) + ((sin (time)) * (0.1)) 60 ((1.0) + ((sin (Time)) * (0.1))
62 ,scale 61 ,scale
63 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (2.0)),vi1))))); 62 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (2.0)),vi1)))));
64 vo1 = vi1; 63 vo1 = vi1;
65 } 64 }
66 """ 65 """
@@ -111,7 +110,6 @@ Pipeline
111 vec4 scale(float z0,vec4 z1) { 110 vec4 scale(float z0,vec4 z1) {
112 return (z1) * (vec4 (z0,z0,z0,1.0)); 111 return (z1) * (vec4 (z0,z0,z0,1.0));
113 } 112 }
114 float time = Time;
115 vec4 trMat(mat4 z0,vec4 z1) { 113 vec4 trMat(mat4 z0,vec4 z1) {
116 return (z0) * (z1); 114 return (z0) * (z1);
117 } 115 }
@@ -120,11 +118,11 @@ Pipeline
120 } 118 }
121 void main() { 119 void main() {
122 gl_Position = trMat 120 gl_Position = trMat
123 (rotMatrixZ ((time) * (1.0)) 121 (rotMatrixZ ((Time) * (1.0))
124 ,(MVP) * (trX 122 ,(MVP) * (trX
125 ((0.5) + ((sin (time)) * (0.1)) 123 ((0.5) + ((sin (Time)) * (0.1))
126 ,scale 124 ,scale
127 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (1.0)),vi1))))); 125 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (1.0)),vi1)))));
128 vo1 = vi1; 126 vo1 = vi1;
129 } 127 }
130 """ 128 """
@@ -175,7 +173,6 @@ Pipeline
175 vec4 scale(float z0,vec4 z1) { 173 vec4 scale(float z0,vec4 z1) {
176 return (z1) * (vec4 (z0,z0,z0,1.0)); 174 return (z1) * (vec4 (z0,z0,z0,1.0));
177 } 175 }
178 float time = Time;
179 vec4 trMat(mat4 z0,vec4 z1) { 176 vec4 trMat(mat4 z0,vec4 z1) {
180 return (z0) * (z1); 177 return (z0) * (z1);
181 } 178 }
@@ -184,11 +181,11 @@ Pipeline
184 } 181 }
185 void main() { 182 void main() {
186 gl_Position = trMat 183 gl_Position = trMat
187 (rotMatrixZ ((time) * (0.0)) 184 (rotMatrixZ ((Time) * (0.0))
188 ,(MVP) * (trX 185 ,(MVP) * (trX
189 ((0.0) + ((sin (time)) * (0.1)) 186 ((0.0) + ((sin (Time)) * (0.1))
190 ,scale 187 ,scale
191 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.0)),vi1))))); 188 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (0.0)),vi1)))));
192 vo1 = vi1; 189 vo1 = vi1;
193 } 190 }
194 """ 191 """
@@ -239,7 +236,6 @@ Pipeline
239 vec4 scale(float z0,vec4 z1) { 236 vec4 scale(float z0,vec4 z1) {
240 return (z1) * (vec4 (z0,z0,z0,1.0)); 237 return (z1) * (vec4 (z0,z0,z0,1.0));
241 } 238 }
242 float time = Time;
243 vec4 trMat(mat4 z0,vec4 z1) { 239 vec4 trMat(mat4 z0,vec4 z1) {
244 return (z0) * (z1); 240 return (z0) * (z1);
245 } 241 }
@@ -248,11 +244,11 @@ Pipeline
248 } 244 }
249 void main() { 245 void main() {
250 gl_Position = trMat 246 gl_Position = trMat
251 (rotMatrixZ ((time) * (-1.0)) 247 (rotMatrixZ ((Time) * (-1.0))
252 ,(MVP) * (trX 248 ,(MVP) * (trX
253 ((-0.5) + ((sin (time)) * (0.1)) 249 ((-0.5) + ((sin (Time)) * (0.1))
254 ,scale 250 ,scale
255 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (-1.0)),vi1))))); 251 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (-1.0)),vi1)))));
256 vo1 = vi1; 252 vo1 = vi1;
257 } 253 }
258 """ 254 """
@@ -303,7 +299,6 @@ Pipeline
303 vec4 scale(float z0,vec4 z1) { 299 vec4 scale(float z0,vec4 z1) {
304 return (z1) * (vec4 (z0,z0,z0,1.0)); 300 return (z1) * (vec4 (z0,z0,z0,1.0));
305 } 301 }
306 float time = Time;
307 vec4 trMat(mat4 z0,vec4 z1) { 302 vec4 trMat(mat4 z0,vec4 z1) {
308 return (z0) * (z1); 303 return (z0) * (z1);
309 } 304 }
@@ -312,11 +307,11 @@ Pipeline
312 } 307 }
313 void main() { 308 void main() {
314 gl_Position = trMat 309 gl_Position = trMat
315 (rotMatrixZ ((time) * (0.75)) 310 (rotMatrixZ ((Time) * (0.75))
316 ,(MVP) * (trX 311 ,(MVP) * (trX
317 ((0.375) + ((sin (time)) * (0.1)) 312 ((0.375) + ((sin (Time)) * (0.1))
318 ,scale 313 ,scale
319 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.75)),vi1))))); 314 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (0.75)),vi1)))));
320 vo1 = vi1; 315 vo1 = vi1;
321 } 316 }
322 """ 317 """
@@ -367,7 +362,6 @@ Pipeline
367 vec4 scale(float z0,vec4 z1) { 362 vec4 scale(float z0,vec4 z1) {
368 return (z1) * (vec4 (z0,z0,z0,1.0)); 363 return (z1) * (vec4 (z0,z0,z0,1.0));
369 } 364 }
370 float time = Time;
371 vec4 trMat(mat4 z0,vec4 z1) { 365 vec4 trMat(mat4 z0,vec4 z1) {
372 return (z0) * (z1); 366 return (z0) * (z1);
373 } 367 }
@@ -376,11 +370,11 @@ Pipeline
376 } 370 }
377 void main() { 371 void main() {
378 gl_Position = trMat 372 gl_Position = trMat
379 (rotMatrixZ ((time) * (0.3)) 373 (rotMatrixZ ((Time) * (0.3))
380 ,(MVP) * (trX 374 ,(MVP) * (trX
381 ((0.15) + ((sin (time)) * (0.1)) 375 ((0.15) + ((sin (Time)) * (0.1))
382 ,scale 376 ,scale
383 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.3)),vi1))))); 377 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (0.3)),vi1)))));
384 vo1 = vi1; 378 vo1 = vi1;
385 } 379 }
386 """ 380 """
@@ -431,7 +425,6 @@ Pipeline
431 vec4 scale(float z0,vec4 z1) { 425 vec4 scale(float z0,vec4 z1) {
432 return (z1) * (vec4 (z0,z0,z0,1.0)); 426 return (z1) * (vec4 (z0,z0,z0,1.0));
433 } 427 }
434 float time = Time;
435 vec4 trMat(mat4 z0,vec4 z1) { 428 vec4 trMat(mat4 z0,vec4 z1) {
436 return (z0) * (z1); 429 return (z0) * (z1);
437 } 430 }
@@ -440,11 +433,11 @@ Pipeline
440 } 433 }
441 void main() { 434 void main() {
442 gl_Position = trMat 435 gl_Position = trMat
443 (rotMatrixZ ((time) * (0.5)) 436 (rotMatrixZ ((Time) * (0.5))
444 ,(MVP) * (trX 437 ,(MVP) * (trX
445 ((0.25) + ((sin (time)) * (0.1)) 438 ((0.25) + ((sin (Time)) * (0.1))
446 ,scale 439 ,scale
447 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (0.5)),vi1))))); 440 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (0.5)),vi1)))));
448 vo1 = vi1; 441 vo1 = vi1;
449 } 442 }
450 """ 443 """
@@ -495,7 +488,6 @@ Pipeline
495 vec4 scale(float z0,vec4 z1) { 488 vec4 scale(float z0,vec4 z1) {
496 return (z1) * (vec4 (z0,z0,z0,1.0)); 489 return (z1) * (vec4 (z0,z0,z0,1.0));
497 } 490 }
498 float time = Time;
499 vec4 trMat(mat4 z0,vec4 z1) { 491 vec4 trMat(mat4 z0,vec4 z1) {
500 return (z0) * (z1); 492 return (z0) * (z1);
501 } 493 }
@@ -504,11 +496,11 @@ Pipeline
504 } 496 }
505 void main() { 497 void main() {
506 gl_Position = trMat 498 gl_Position = trMat
507 (rotMatrixZ ((time) * (-0.5)) 499 (rotMatrixZ ((Time) * (-0.5))
508 ,(MVP) * (trX 500 ,(MVP) * (trX
509 ((-0.25) + ((sin (time)) * (0.1)) 501 ((-0.25) + ((sin (Time)) * (0.1))
510 ,scale 502 ,scale
511 (4.0e-2,trMat (rotMatrixX (((time) * (2.0)) * (-0.5)),vi1))))); 503 (4.0e-2,trMat (rotMatrixX (((Time) * (2.0)) * (-0.5)),vi1)))));
512 vo1 = vi1; 504 vo1 = vi1;
513 } 505 }
514 """ 506 """
diff --git a/testdata/fragment04ifthenelse.out b/testdata/fragment04ifthenelse.out
index 1d3fd074..d6ea99b4 100644
--- a/testdata/fragment04ifthenelse.out
+++ b/testdata/fragment04ifthenelse.out
@@ -45,9 +45,8 @@ Pipeline
45 return vec4 (z0,z1,z2,1.0); 45 return vec4 (z0,z1,z2,1.0);
46 } 46 }
47 vec4 blue = rgb (0.0,0.0,1.0); 47 vec4 blue = rgb (0.0,0.0,1.0);
48 float time = Time;
49 void main() { 48 void main() {
50 f0 = (time) < (0.5) ? vo1 : blue; 49 f0 = (Time) < (0.5) ? vo1 : blue;
51 } 50 }
52 """ 51 """
53 } 52 }
diff --git a/testdata/gfx03.out b/testdata/gfx03.out
index 1462c801..3ea828c2 100644
--- a/testdata/gfx03.out
+++ b/testdata/gfx03.out
@@ -28,10 +28,8 @@ Pipeline
28 } 28 }
29 uniform mat4 MVP2; 29 uniform mat4 MVP2;
30 in vec3 vi1; 30 in vec3 vi1;
31 mat4 modelViewProj = MVP2;
32 void main() { 31 void main() {
33 gl_Position = (modelViewProj) * (vec4 32 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0));
34 ((vi1).x,(vi1).y,(vi1).z,1.0));
35 } 33 }
36 """ 34 """
37 , geometryShader = Nothing 35 , geometryShader = Nothing
@@ -62,10 +60,8 @@ Pipeline
62 uniform mat4 MVP2; 60 uniform mat4 MVP2;
63 in vec3 vi1; 61 in vec3 vi1;
64 smooth out vec4 vo1; 62 smooth out vec4 vo1;
65 mat4 modelViewProj = MVP2;
66 void main() { 63 void main() {
67 gl_Position = (modelViewProj) * (vec4 64 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0));
68 ((vi1).x,(vi1).y,(vi1).z,1.0));
69 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 65 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
70 } 66 }
71 """ 67 """
@@ -99,9 +95,8 @@ Pipeline
99 uniform mat4 MVP; 95 uniform mat4 MVP;
100 in vec4 vi1; 96 in vec4 vi1;
101 flat out vec4 vo1; 97 flat out vec4 vo1;
102 mat4 modelViewProj = MVP;
103 void main() { 98 void main() {
104 gl_Position = (modelViewProj) * (vi1); 99 gl_Position = (MVP) * (vi1);
105 vo1 = vi1; 100 vo1 = vi1;
106 } 101 }
107 """ 102 """
diff --git a/testdata/gfx04.out b/testdata/gfx04.out
index e17394f1..b39f1a1c 100644
--- a/testdata/gfx04.out
+++ b/testdata/gfx04.out
@@ -33,12 +33,11 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec3 vi2; 34 in vec3 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 mat4 modelViewProj = MVP;
37 vec4 v3FToV4F(vec3 z0) { 36 vec4 v3FToV4F(vec3 z0) {
38 return vec4 ((z0).x,(z0).y,(z0).z,1.0); 37 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
39 } 38 }
40 void main() { 39 void main() {
41 gl_Position = (modelViewProj) * (v3FToV4F (vi1)); 40 gl_Position = (MVP) * (v3FToV4F (vi1));
42 vo1 = v3FToV4F (vi2); 41 vo1 = v3FToV4F (vi2);
43 } 42 }
44 """ 43 """
diff --git a/testdata/gfx05.out b/testdata/gfx05.out
index a06d0612..10c98bd1 100644
--- a/testdata/gfx05.out
+++ b/testdata/gfx05.out
@@ -81,10 +81,8 @@ Pipeline
81 } 81 }
82 uniform mat4 MVP2; 82 uniform mat4 MVP2;
83 in vec3 vi1; 83 in vec3 vi1;
84 mat4 modelViewProj = MVP2;
85 void main() { 84 void main() {
86 gl_Position = (modelViewProj) * (vec4 85 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0));
87 ((vi1).x,(vi1).y,(vi1).z,1.0));
88 } 86 }
89 """ 87 """
90 , geometryShader = Nothing 88 , geometryShader = Nothing
@@ -115,10 +113,8 @@ Pipeline
115 uniform mat4 MVP2; 113 uniform mat4 MVP2;
116 in vec3 vi1; 114 in vec3 vi1;
117 smooth out vec4 vo1; 115 smooth out vec4 vo1;
118 mat4 modelViewProj = MVP2;
119 void main() { 116 void main() {
120 gl_Position = (modelViewProj) * (vec4 117 gl_Position = (MVP2) * (vec4 ((vi1).x,(vi1).y,(vi1).z,1.0));
121 ((vi1).x,(vi1).y,(vi1).z,1.0));
122 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0); 118 vo1 = vec4 ((vi1).x,(vi1).y,(vi1).z,1.0);
123 } 119 }
124 """ 120 """
@@ -155,9 +151,8 @@ Pipeline
155 in vec4 vi1; 151 in vec4 vi1;
156 in vec2 vi2; 152 in vec2 vi2;
157 smooth out vec2 vo1; 153 smooth out vec2 vo1;
158 mat4 modelViewProj = MVP;
159 void main() { 154 void main() {
160 gl_Position = (modelViewProj) * (vi1); 155 gl_Position = (MVP) * (vi1);
161 vo1 = vi2; 156 vo1 = vi2;
162 } 157 }
163 """ 158 """
diff --git a/testdata/heartbeat01.out b/testdata/heartbeat01.out
index 35528cae..51ac0675 100644
--- a/testdata/heartbeat01.out
+++ b/testdata/heartbeat01.out
@@ -108,8 +108,7 @@ Pipeline
108 } 108 }
109 vec4 blue = rgb (0.0,0.0,1.0); 109 vec4 blue = rgb (0.0,0.0,1.0);
110 vec4 navy = rgb (0.0,0.0,0.5); 110 vec4 navy = rgb (0.0,0.0,0.5);
111 float ti = abs ((sin ((time) * (4.0))) - (0.37)); 111 float ti = abs ((sin ((Time) * (4.0))) - (0.37));
112 float time = Time;
113 vec4 white = rgb (1.0,1.0,1.0); 112 vec4 white = rgb (1.0,1.0,1.0);
114 vec4 yellow = rgb (1.0,1.0,0.0); 113 vec4 yellow = rgb (1.0,1.0,0.0);
115 void main() { 114 void main() {
@@ -117,13 +116,13 @@ Pipeline
117 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin 116 ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((5.0e-4) * (sin
118 (((3.0) * (atan 117 (((3.0) * (atan
119 (((vo1).x) - (0.85) 118 (((vo1).x) - (0.85)
120 ,((vo1).y) - (0.85)))) + ((15.0) * (time)))))) < ((5.0e-3) * (ti)) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin 119 ,((vo1).y) - (0.85)))) + ((15.0) * (Time)))))) < ((5.0e-3) * (ti)) ? navy : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
121 (((5.0) * (atan 120 (((5.0) * (atan
122 (((vo1).x) - (0.85) 121 (((vo1).x) - (0.85)
123 ,((vo1).y) - (0.85)))) - ((5.0) * (time)))))) < ((2.0e-2) * (ti)) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin 122 ,((vo1).y) - (0.85)))) - ((5.0) * (Time)))))) < ((2.0e-2) * (ti)) ? blue : ((((((vo1).x) - (0.85)) * (((vo1).x) - (0.85))) + ((((vo1).y) - (0.85)) * (((vo1).y) - (0.85)))) + ((2.0e-3) * (sin
124 (((7.0) * (atan 123 (((7.0) * (atan
125 (((vo1).x) - (0.85) 124 (((vo1).x) - (0.85)
126 ,((vo1).y) - (0.85)))) + ((3.0) * (time)))))) < ((5.0e-2) * (ti)) ? white : yellow; 125 ,((vo1).y) - (0.85)))) + ((3.0) * (Time)))))) < ((5.0e-2) * (ti)) ? white : yellow;
127 } 126 }
128 """ 127 """
129 } 128 }
diff --git a/testdata/simple02.out b/testdata/simple02.out
index 63f86974..faf41dea 100644
--- a/testdata/simple02.out
+++ b/testdata/simple02.out
@@ -30,9 +30,8 @@ Pipeline
30 uniform mat4 MVP; 30 uniform mat4 MVP;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 mat4 modelViewProj = MVP;
34 void main() { 33 void main() {
35 gl_Position = (modelViewProj) * (vi1); 34 gl_Position = (MVP) * (vi1);
36 vo1 = vi1; 35 vo1 = vi1;
37 } 36 }
38 """ 37 """
diff --git a/testdata/simple03.out b/testdata/simple03.out
index 79bc503a..dc2dcca3 100644
--- a/testdata/simple03.out
+++ b/testdata/simple03.out
@@ -33,12 +33,11 @@ Pipeline
33 in vec3 vi1; 33 in vec3 vi1;
34 in vec3 vi2; 34 in vec3 vi2;
35 smooth out vec4 vo1; 35 smooth out vec4 vo1;
36 mat4 modelViewProj = viewProj;
37 vec4 v3FToV4F(vec3 z0) { 36 vec4 v3FToV4F(vec3 z0) {
38 return vec4 ((z0).x,(z0).y,(z0).z,1.0); 37 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
39 } 38 }
40 void main() { 39 void main() {
41 gl_Position = (modelViewProj) * (v3FToV4F (vi1)); 40 gl_Position = (viewProj) * (v3FToV4F (vi1));
42 vo1 = v3FToV4F (vi2); 41 vo1 = v3FToV4F (vi2);
43 } 42 }
44 """ 43 """
@@ -75,12 +74,11 @@ Pipeline
75 in vec3 vi1; 74 in vec3 vi1;
76 in vec3 vi2; 75 in vec3 vi2;
77 smooth out vec4 vo1; 76 smooth out vec4 vo1;
78 mat4 modelViewProj = viewProj;
79 vec4 v3FToV4F(vec3 z0) { 77 vec4 v3FToV4F(vec3 z0) {
80 return vec4 ((z0).x,(z0).y,(z0).z,1.0); 78 return vec4 ((z0).x,(z0).y,(z0).z,1.0);
81 } 79 }
82 void main() { 80 void main() {
83 gl_Position = (modelViewProj) * (v3FToV4F (vi1)); 81 gl_Position = (viewProj) * (v3FToV4F (vi1));
84 vo1 = v3FToV4F (vi2); 82 vo1 = v3FToV4F (vi2);
85 } 83 }
86 """ 84 """