summaryrefslogtreecommitdiff
path: root/testdata/editor-examples
diff options
context:
space:
mode:
authorCsaba Hruska <csaba.hruska@gmail.com>2016-02-27 01:04:23 +0100
committerCsaba Hruska <csaba.hruska@gmail.com>2016-02-27 01:04:23 +0100
commit0dcc32b6c7233ef4a888fee14fa57d647df531fb (patch)
tree870e7a47de5f2d0a90fc33ded4af1e804b9ad188 /testdata/editor-examples
parent92f557c8e2dd5f0af5d87520786b6ed28a333973 (diff)
cleanup MVP from editor examples
Diffstat (limited to 'testdata/editor-examples')
-rw-r--r--testdata/editor-examples/Cube.lc8
-rw-r--r--testdata/editor-examples/Cube.out73
-rw-r--r--testdata/editor-examples/Heartbeat.lc7
-rw-r--r--testdata/editor-examples/Heartbeat.out74
-rw-r--r--testdata/editor-examples/LambdaCube.lc8
-rw-r--r--testdata/editor-examples/MagicCube.lc6
-rw-r--r--testdata/editor-examples/MagicCube.out74
-rw-r--r--testdata/editor-examples/RecLC.out148
-rw-r--r--testdata/editor-examples/RecursiveTexture.lc5
-rw-r--r--testdata/editor-examples/RecursiveTexture.out1097
-rw-r--r--testdata/editor-examples/Tetrahedron.lc6
-rw-r--r--testdata/editor-examples/Tetrahedron.out72
-rw-r--r--testdata/editor-examples/Texturing.lc8
-rw-r--r--testdata/editor-examples/Texturing.out73
14 files changed, 1569 insertions, 90 deletions
diff --git a/testdata/editor-examples/Cube.lc b/testdata/editor-examples/Cube.lc
index bdd218b8..7efaf32b 100644
--- a/testdata/editor-examples/Cube.lc
+++ b/testdata/editor-examples/Cube.lc
@@ -1,9 +1,13 @@
1makeFrame (projmat :: Mat 4 4 Float) 1makeFrame (time :: Float)
2 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) 2 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float)))
3 3
4 = imageFrame (emptyDepthImage 1, emptyColorImage navy) 4 = imageFrame (emptyDepthImage 1, emptyColorImage navy)
5 `overlay` fragments 5 `overlay` fragments
6 where 6 where
7 projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0
8 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
9 .*. rotMatrixY (pi / 24.0 * time)
10
7 fragments = 11 fragments =
8 vertexstream 12 vertexstream
9 & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) 13 & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x))
@@ -11,6 +15,6 @@ makeFrame (projmat :: Mat 4 4 Float)
11 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) 15 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True))
12 16
13main = renderFrame $ 17main = renderFrame $
14 makeFrame (Uniform "MVP") 18 makeFrame (Uniform "Time")
15 (fetch "stream4" (Attribute "position4")) 19 (fetch "stream4" (Attribute "position4"))
16 20
diff --git a/testdata/editor-examples/Cube.out b/testdata/editor-examples/Cube.out
index e682b5ec..c2294d0f 100644
--- a/testdata/editor-examples/Cube.out
+++ b/testdata/editor-examples/Cube.out
@@ -15,7 +15,7 @@ Pipeline
15 ] 15 ]
16 , programs = 16 , programs =
17 [ Program 17 [ Program
18 { programUniforms = fromList [ ( "MVP" , M44F ) ] 18 { programUniforms = fromList [ ( "Time" , Float ) ]
19 , programStreams = 19 , programStreams =
20 fromList 20 fromList
21 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] 21 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ]
@@ -27,14 +27,79 @@ Pipeline
27 vec4 texture2D(sampler2D s,vec2 uv) { 27 vec4 texture2D(sampler2D s,vec2 uv) {
28 return texture(s,uv); 28 return texture(s,uv);
29 } 29 }
30 uniform mat4 MVP; 30 uniform float Time;
31 in vec4 vi1; 31 in vec4 vi1;
32 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 r1_Float;
34 vec4 r2_Float;
35 vec4 r3_Float;
36 vec4 ext0_Float_3(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
38 }
39 vec3 neg_VecSFloat3(vec3 z0) {
40 return - (z0);
41 }
42 mat4 translateBefore4(vec3 z0) {
43 return mat4
44 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
45 }
46 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
47 return (transpose (mat4
48 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
49 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
50 ,normalize (cross (z2,normalize ((z0) - (z1))))))
51 ,ext0_Float_3 (normalize ((z0) - (z1)))
52 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
53 (z0)));
54 }
55 mat4 perspective(float z0,float z1,float z2,float z3) {
56 return mat4
57 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
58 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
59 ((z2) / (2.0)))))))
60 ,0.0
61 ,0.0
62 ,0.0)
63 ,vec4 (0.0
64 ,((2.0) * (z0)) / (((z0) * (tan
65 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
66 ,0.0
67 ,0.0)
68 ,vec4 ((((z3) * ((z0) * (tan
69 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
70 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
71 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
72 ((z2) / (2.0)))))))
73 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
74 ((z2) / (2.0)))))) / (((z0) * (tan
75 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
76 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
77 ,-1.0)
78 ,vec4 (0.0
79 ,0.0
80 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
81 ,0.0));
82 }
83 mat4 rotMatrixY(float z0) {
84 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
85 ,vec4 (0.0,1.0,0.0,0.0)
86 ,vec4 (sin (z0),0.0,cos (z0),0.0)
87 ,vec4 (0.0,0.0,0.0,1.0));
88 }
33 vec4 scale(float z0,vec4 z1) { 89 vec4 scale(float z0,vec4 z1) {
34 return (z1) * (vec4 (z0,z0,z0,1.0)); 90 return (z1) * (vec4 (z0,z0,z0,1.0));
35 } 91 }
36 void main() { 92 void main() {
37 gl_Position = scale (0.5,(MVP) * (vi1)); 93 r1_Float = vec4 (1.0,0.0,0.0,0.0);
94 r2_Float = vec4 (0.0,1.0,0.0,0.0);
95 r3_Float = vec4 (0.0,0.0,1.0,0.0);
96 gl_Position = scale
97 (0.5
98 ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat
99 (vec3 (3.0,1.3,0.3)
100 ,vec3 (0.0,0.0,0.0)
101 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
102 ((0.1308996938995747) * (Time)))) * (vi1));
38 vo1 = vi1; 103 vo1 = vi1;
39 } 104 }
40 """ 105 """
@@ -57,7 +122,7 @@ Pipeline
57 [ Slot 122 [ Slot
58 { slotName = "stream4" 123 { slotName = "stream4"
59 , slotStreams = fromList [ ( "position4" , V4F ) ] 124 , slotStreams = fromList [ ( "position4" , V4F ) ]
60 , slotUniforms = fromList [ ( "MVP" , M44F ) ] 125 , slotUniforms = fromList [ ( "Time" , Float ) ]
61 , slotPrimitive = Triangles 126 , slotPrimitive = Triangles
62 , slotPrograms = [ 0 ] 127 , slotPrograms = [ 0 ]
63 } 128 }
diff --git a/testdata/editor-examples/Heartbeat.lc b/testdata/editor-examples/Heartbeat.lc
index 4e8e4a97..920c9097 100644
--- a/testdata/editor-examples/Heartbeat.lc
+++ b/testdata/editor-examples/Heartbeat.lc
@@ -12,7 +12,12 @@ rasterizeWith s = rasterizePrimitives triangles ((Smooth)) s
12cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) 12cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float)
13mapFragments2 s fs = accumulate colorFragmentCtx (\((a)) -> ((fs a))) s clear 13mapFragments2 s fs = accumulate colorFragmentCtx (\((a)) -> ((fs a))) s clear
14 14
15rotate' v = (Uniform "MVP" :: Mat 4 4 Float) `PrimMulMatVec` v 15rotate' v = projmat *. v
16 where
17 projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0
18 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
19 .*. rotMatrixY (pi / 24.0 * time)
20
16 21
17texImage = PrjImageColor $ 22texImage = PrjImageColor $
18 cubeVertexStream -- cube vertices 23 cubeVertexStream -- cube vertices
diff --git a/testdata/editor-examples/Heartbeat.out b/testdata/editor-examples/Heartbeat.out
index 39df50d6..5fec3cb1 100644
--- a/testdata/editor-examples/Heartbeat.out
+++ b/testdata/editor-examples/Heartbeat.out
@@ -132,7 +132,7 @@ Pipeline
132 """ 132 """
133 } 133 }
134 , Program 134 , Program
135 { programUniforms = fromList [ ( "MVP" , M44F ) ] 135 { programUniforms = fromList [ ( "Time" , Float ) ]
136 , programStreams = 136 , programStreams =
137 fromList 137 fromList
138 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 138 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -146,15 +146,81 @@ Pipeline
146 vec4 texture2D(sampler2D s,vec2 uv) { 146 vec4 texture2D(sampler2D s,vec2 uv) {
147 return texture(s,uv); 147 return texture(s,uv);
148 } 148 }
149 uniform mat4 MVP; 149 uniform float Time;
150 in vec4 vi1; 150 in vec4 vi1;
151 in vec2 vi2; 151 in vec2 vi2;
152 smooth out vec2 vo1; 152 smooth out vec2 vo1;
153 vec4 r1_Float;
154 vec4 r2_Float;
155 vec4 r3_Float;
156 vec4 ext0_Float_3(vec3 z0) {
157 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
158 }
159 vec3 neg_VecSFloat3(vec3 z0) {
160 return - (z0);
161 }
162 mat4 translateBefore4(vec3 z0) {
163 return mat4
164 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
165 }
166 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
167 return (transpose (mat4
168 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
169 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
170 ,normalize (cross (z2,normalize ((z0) - (z1))))))
171 ,ext0_Float_3 (normalize ((z0) - (z1)))
172 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
173 (z0)));
174 }
175 mat4 perspective(float z0,float z1,float z2,float z3) {
176 return mat4
177 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
178 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
179 ((z2) / (2.0)))))))
180 ,0.0
181 ,0.0
182 ,0.0)
183 ,vec4 (0.0
184 ,((2.0) * (z0)) / (((z0) * (tan
185 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
186 ,0.0
187 ,0.0)
188 ,vec4 ((((z3) * ((z0) * (tan
189 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
190 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
191 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
192 ((z2) / (2.0)))))))
193 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
194 ((z2) / (2.0)))))) / (((z0) * (tan
195 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
196 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
197 ,-1.0)
198 ,vec4 (0.0
199 ,0.0
200 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
201 ,0.0));
202 }
203 mat4 rotMatrixY(float z0) {
204 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
205 ,vec4 (0.0,1.0,0.0,0.0)
206 ,vec4 (sin (z0),0.0,cos (z0),0.0)
207 ,vec4 (0.0,0.0,0.0,1.0));
208 }
209 mat4 projmat;
153 vec4 scale(float z0,vec4 z1) { 210 vec4 scale(float z0,vec4 z1) {
154 return (z1) * (vec4 (z0,z0,z0,1.0)); 211 return (z1) * (vec4 (z0,z0,z0,1.0));
155 } 212 }
156 void main() { 213 void main() {
157 gl_Position = scale (0.5,(MVP) * (vi1)); 214 r1_Float = vec4 (1.0,0.0,0.0,0.0);
215 r2_Float = vec4 (0.0,1.0,0.0,0.0);
216 r3_Float = vec4 (0.0,0.0,1.0,0.0);
217 projmat = ((perspective
218 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
219 (vec3 (3.0,1.3,0.3)
220 ,vec3 (0.0,0.0,0.0)
221 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
222 ((0.1308996938995747) * (Time)));
223 gl_Position = scale (0.5,(projmat) * (vi1));
158 vo1 = vi2; 224 vo1 = vi2;
159 } 225 }
160 """ 226 """
@@ -179,7 +245,7 @@ Pipeline
179 { slotName = "stream4" 245 { slotName = "stream4"
180 , slotStreams = 246 , slotStreams =
181 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] 247 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ]
182 , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] 248 , slotUniforms = fromList [ ( "Time" , Float ) ]
183 , slotPrimitive = Triangles 249 , slotPrimitive = Triangles
184 , slotPrograms = [ 0 , 1 ] 250 , slotPrograms = [ 0 , 1 ]
185 } 251 }
diff --git a/testdata/editor-examples/LambdaCube.lc b/testdata/editor-examples/LambdaCube.lc
index 0fb349f3..ea3a3ba8 100644
--- a/testdata/editor-examples/LambdaCube.lc
+++ b/testdata/editor-examples/LambdaCube.lc
@@ -27,9 +27,7 @@ topSide p = V4 red 1 0 (if line > (-0.25) && line < 0 then 0 else 1)
27 27
28len2 v = v%x*v%x + v%y*v%y + v%z*v%z 28len2 v = v%x*v%x + v%y*v%y + v%z*v%z
29 29
30makeFrame (time :: Float) 30makeFrame (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float)))
31 (projmat :: Mat 4 4 Float)
32 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float)))
33 31
34 = imageFrame (emptyDepthImage 1, emptyColorImage navy) 32 = imageFrame (emptyDepthImage 1, emptyColorImage navy)
35 `overlay` 33 `overlay`
@@ -45,7 +43,5 @@ makeFrame (time :: Float)
45 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) 43 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True))
46 44
47main = renderFrame $ 45main = renderFrame $
48 makeFrame (Uniform "Time") 46 makeFrame (fetch "stream4" (Attribute "position4"))
49 (Uniform "MVP")
50 (fetch "stream4" (Attribute "position4"))
51 47
diff --git a/testdata/editor-examples/MagicCube.lc b/testdata/editor-examples/MagicCube.lc
index e44b4924..f41a9ec9 100644
--- a/testdata/editor-examples/MagicCube.lc
+++ b/testdata/editor-examples/MagicCube.lc
@@ -6,7 +6,6 @@ p1 = app34 $ \t -> (V3 0.5 0.5 0.5 + cos( (t + V3 0.0 0.1 0.2) *! 6.28318) *! 0.
6f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 6f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2
7 7
8makeFrame (time :: Float) 8makeFrame (time :: Float)
9 (projmat :: Mat 4 4 Float)
10 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) 9 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float)))
11 10
12 = imageFrame (emptyDepthImage 1, emptyColorImage navy) 11 = imageFrame (emptyDepthImage 1, emptyColorImage navy)
@@ -17,8 +16,11 @@ makeFrame (time :: Float)
17 & filterFragments (\((v)) -> v%y * v%y + v%x * v%x + v%z * v%z > 1.5) 16 & filterFragments (\((v)) -> v%y * v%y + v%x * v%x + v%z * v%z > 1.5)
18 & mapFragments (\((x)) -> ((p1 (rotMatrixZ time *. rotMatrixY time *. (p1 (rotMatrixX time *. rotMatrixY time *. x) *! (1 + 0.5 * sin time))) *! f time))) 17 & mapFragments (\((x)) -> ((p1 (rotMatrixZ time *. rotMatrixY time *. (p1 (rotMatrixX time *. rotMatrixY time *. x) *! (1 + 0.5 * sin time))) *! f time)))
19 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) 18 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True))
19 where
20 projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0
21 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
22 .*. rotMatrixY (pi / 24.0 * time)
20 23
21main = renderFrame $ 24main = renderFrame $
22 makeFrame (Uniform "Time") 25 makeFrame (Uniform "Time")
23 (Uniform "MVP")
24 (fetch "stream4" (Attribute "position4")) 26 (fetch "stream4" (Attribute "position4"))
diff --git a/testdata/editor-examples/MagicCube.out b/testdata/editor-examples/MagicCube.out
index cd066598..a2a5cbe4 100644
--- a/testdata/editor-examples/MagicCube.out
+++ b/testdata/editor-examples/MagicCube.out
@@ -15,8 +15,7 @@ Pipeline
15 ] 15 ]
16 , programs = 16 , programs =
17 [ Program 17 [ Program
18 { programUniforms = 18 { programUniforms = fromList [ ( "Time" , Float ) ]
19 fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ]
20 , programStreams = 19 , programStreams =
21 fromList 20 fromList
22 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ] 21 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) ]
@@ -28,14 +27,79 @@ Pipeline
28 vec4 texture2D(sampler2D s,vec2 uv) { 27 vec4 texture2D(sampler2D s,vec2 uv) {
29 return texture(s,uv); 28 return texture(s,uv);
30 } 29 }
31 uniform mat4 MVP; 30 uniform float Time;
32 in vec4 vi1; 31 in vec4 vi1;
33 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 r1_Float;
34 vec4 r2_Float;
35 vec4 r3_Float;
36 vec4 ext0_Float_3(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
38 }
39 vec3 neg_VecSFloat3(vec3 z0) {
40 return - (z0);
41 }
42 mat4 translateBefore4(vec3 z0) {
43 return mat4
44 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
45 }
46 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
47 return (transpose (mat4
48 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
49 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
50 ,normalize (cross (z2,normalize ((z0) - (z1))))))
51 ,ext0_Float_3 (normalize ((z0) - (z1)))
52 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
53 (z0)));
54 }
55 mat4 perspective(float z0,float z1,float z2,float z3) {
56 return mat4
57 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
58 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
59 ((z2) / (2.0)))))))
60 ,0.0
61 ,0.0
62 ,0.0)
63 ,vec4 (0.0
64 ,((2.0) * (z0)) / (((z0) * (tan
65 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
66 ,0.0
67 ,0.0)
68 ,vec4 ((((z3) * ((z0) * (tan
69 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
70 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
71 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
72 ((z2) / (2.0)))))))
73 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
74 ((z2) / (2.0)))))) / (((z0) * (tan
75 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
76 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
77 ,-1.0)
78 ,vec4 (0.0
79 ,0.0
80 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
81 ,0.0));
82 }
83 mat4 rotMatrixY(float z0) {
84 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
85 ,vec4 (0.0,1.0,0.0,0.0)
86 ,vec4 (sin (z0),0.0,cos (z0),0.0)
87 ,vec4 (0.0,0.0,0.0,1.0));
88 }
34 vec4 scale(float z0,vec4 z1) { 89 vec4 scale(float z0,vec4 z1) {
35 return (z1) * (vec4 (z0,z0,z0,1.0)); 90 return (z1) * (vec4 (z0,z0,z0,1.0));
36 } 91 }
37 void main() { 92 void main() {
38 gl_Position = scale (0.5,(MVP) * (vi1)); 93 r1_Float = vec4 (1.0,0.0,0.0,0.0);
94 r2_Float = vec4 (0.0,1.0,0.0,0.0);
95 r3_Float = vec4 (0.0,0.0,1.0,0.0);
96 gl_Position = scale
97 (0.5
98 ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat
99 (vec3 (3.0,1.3,0.3)
100 ,vec3 (0.0,0.0,0.0)
101 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
102 ((0.1308996938995747) * (Time)))) * (vi1));
39 vo1 = vi1; 103 vo1 = vi1;
40 } 104 }
41 """ 105 """
@@ -139,7 +203,7 @@ Pipeline
139 [ Slot 203 [ Slot
140 { slotName = "stream4" 204 { slotName = "stream4"
141 , slotStreams = fromList [ ( "position4" , V4F ) ] 205 , slotStreams = fromList [ ( "position4" , V4F ) ]
142 , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] 206 , slotUniforms = fromList [ ( "Time" , Float ) ]
143 , slotPrimitive = Triangles 207 , slotPrimitive = Triangles
144 , slotPrograms = [ 0 ] 208 , slotPrograms = [ 0 ]
145 } 209 }
diff --git a/testdata/editor-examples/RecLC.out b/testdata/editor-examples/RecLC.out
index 99bf8635..18f16c64 100644
--- a/testdata/editor-examples/RecLC.out
+++ b/testdata/editor-examples/RecLC.out
@@ -234,7 +234,7 @@ Pipeline
234 """ 234 """
235 } 235 }
236 , Program 236 , Program
237 { programUniforms = fromList [ ( "MVP" , M44F ) ] 237 { programUniforms = fromList [ ( "Time" , Float ) ]
238 , programStreams = 238 , programStreams =
239 fromList 239 fromList
240 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 240 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -248,10 +248,67 @@ Pipeline
248 vec4 texture2D(sampler2D s,vec2 uv) { 248 vec4 texture2D(sampler2D s,vec2 uv) {
249 return texture(s,uv); 249 return texture(s,uv);
250 } 250 }
251 uniform mat4 MVP; 251 uniform float Time;
252 in vec4 vi1; 252 in vec4 vi1;
253 in vec2 vi2; 253 in vec2 vi2;
254 smooth out vec2 vo1; 254 smooth out vec2 vo1;
255 vec4 r1_Float;
256 vec4 r2_Float;
257 vec4 r3_Float;
258 vec4 ext0_Float_3(vec3 z0) {
259 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
260 }
261 vec3 neg_VecSFloat3(vec3 z0) {
262 return - (z0);
263 }
264 mat4 translateBefore4(vec3 z0) {
265 return mat4
266 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
267 }
268 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
269 return (transpose (mat4
270 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
271 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
272 ,normalize (cross (z2,normalize ((z0) - (z1))))))
273 ,ext0_Float_3 (normalize ((z0) - (z1)))
274 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
275 (z0)));
276 }
277 mat4 perspective(float z0,float z1,float z2,float z3) {
278 return mat4
279 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
280 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
281 ((z2) / (2.0)))))))
282 ,0.0
283 ,0.0
284 ,0.0)
285 ,vec4 (0.0
286 ,((2.0) * (z0)) / (((z0) * (tan
287 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
288 ,0.0
289 ,0.0)
290 ,vec4 ((((z3) * ((z0) * (tan
291 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
292 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
293 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
294 ((z2) / (2.0)))))))
295 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
296 ((z2) / (2.0)))))) / (((z0) * (tan
297 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
298 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
299 ,-1.0)
300 ,vec4 (0.0
301 ,0.0
302 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
303 ,0.0));
304 }
305 mat4 rotMatrixY(float z0) {
306 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
307 ,vec4 (0.0,1.0,0.0,0.0)
308 ,vec4 (sin (z0),0.0,cos (z0),0.0)
309 ,vec4 (0.0,0.0,0.0,1.0));
310 }
311 mat4 rotMatrix;
255 mat4 rotMatrixX(float z0) { 312 mat4 rotMatrixX(float z0) {
256 return mat4 (vec4 (1.0,0.0,0.0,0.0) 313 return mat4 (vec4 (1.0,0.0,0.0,0.0)
257 ,vec4 (0.0,cos (z0),sin (z0),0.0) 314 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -262,7 +319,17 @@ Pipeline
262 return (z1) * (vec4 (z0,z0,z0,1.0)); 319 return (z1) * (vec4 (z0,z0,z0,1.0));
263 } 320 }
264 void main() { 321 void main() {
265 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1))); 322 r1_Float = vec4 (1.0,0.0,0.0,0.0);
323 r2_Float = vec4 (0.0,1.0,0.0,0.0);
324 r3_Float = vec4 (0.0,0.0,1.0,0.0);
325 rotMatrix = ((perspective
326 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
327 (vec3 (3.0,1.3,0.3)
328 ,vec3 (0.0,0.0,0.0)
329 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
330 ((0.1308996938995747) * (Time)));
331 gl_Position = (rotMatrix) * (scale
332 (0.4,(rotMatrixX (0.0)) * (vi1)));
266 vo1 = vi2; 333 vo1 = vi2;
267 } 334 }
268 """ 335 """
@@ -287,7 +354,7 @@ Pipeline
287 """ 354 """
288 } 355 }
289 , Program 356 , Program
290 { programUniforms = fromList [ ( "MVP" , M44F ) ] 357 { programUniforms = fromList [ ( "Time" , Float ) ]
291 , programStreams = 358 , programStreams =
292 fromList 359 fromList
293 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 360 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -301,10 +368,67 @@ Pipeline
301 vec4 texture2D(sampler2D s,vec2 uv) { 368 vec4 texture2D(sampler2D s,vec2 uv) {
302 return texture(s,uv); 369 return texture(s,uv);
303 } 370 }
304 uniform mat4 MVP; 371 uniform float Time;
305 in vec4 vi1; 372 in vec4 vi1;
306 in vec2 vi2; 373 in vec2 vi2;
307 smooth out vec2 vo1; 374 smooth out vec2 vo1;
375 vec4 r1_Float;
376 vec4 r2_Float;
377 vec4 r3_Float;
378 vec4 ext0_Float_3(vec3 z0) {
379 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
380 }
381 vec3 neg_VecSFloat3(vec3 z0) {
382 return - (z0);
383 }
384 mat4 translateBefore4(vec3 z0) {
385 return mat4
386 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
387 }
388 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
389 return (transpose (mat4
390 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
391 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
392 ,normalize (cross (z2,normalize ((z0) - (z1))))))
393 ,ext0_Float_3 (normalize ((z0) - (z1)))
394 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
395 (z0)));
396 }
397 mat4 perspective(float z0,float z1,float z2,float z3) {
398 return mat4
399 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
400 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
401 ((z2) / (2.0)))))))
402 ,0.0
403 ,0.0
404 ,0.0)
405 ,vec4 (0.0
406 ,((2.0) * (z0)) / (((z0) * (tan
407 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
408 ,0.0
409 ,0.0)
410 ,vec4 ((((z3) * ((z0) * (tan
411 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
412 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
413 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
414 ((z2) / (2.0)))))))
415 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
416 ((z2) / (2.0)))))) / (((z0) * (tan
417 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
418 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
419 ,-1.0)
420 ,vec4 (0.0
421 ,0.0
422 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
423 ,0.0));
424 }
425 mat4 rotMatrixY(float z0) {
426 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
427 ,vec4 (0.0,1.0,0.0,0.0)
428 ,vec4 (sin (z0),0.0,cos (z0),0.0)
429 ,vec4 (0.0,0.0,0.0,1.0));
430 }
431 mat4 rotMatrix;
308 mat4 rotMatrixX(float z0) { 432 mat4 rotMatrixX(float z0) {
309 return mat4 (vec4 (1.0,0.0,0.0,0.0) 433 return mat4 (vec4 (1.0,0.0,0.0,0.0)
310 ,vec4 (0.0,cos (z0),sin (z0),0.0) 434 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -315,7 +439,17 @@ Pipeline
315 return (z1) * (vec4 (z0,z0,z0,1.0)); 439 return (z1) * (vec4 (z0,z0,z0,1.0));
316 } 440 }
317 void main() { 441 void main() {
318 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1))); 442 r1_Float = vec4 (1.0,0.0,0.0,0.0);
443 r2_Float = vec4 (0.0,1.0,0.0,0.0);
444 r3_Float = vec4 (0.0,0.0,1.0,0.0);
445 rotMatrix = ((perspective
446 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
447 (vec3 (3.0,1.3,0.3)
448 ,vec3 (0.0,0.0,0.0)
449 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
450 ((0.1308996938995747) * (Time)));
451 gl_Position = (rotMatrix) * (scale
452 (0.4,(rotMatrixX (0.1)) * (vi1)));
319 vo1 = vi2; 453 vo1 = vi2;
320 } 454 }
321 """ 455 """
@@ -345,7 +479,7 @@ Pipeline
345 { slotName = "stream4" 479 { slotName = "stream4"
346 , slotStreams = 480 , slotStreams =
347 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] 481 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ]
348 , slotUniforms = fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ] 482 , slotUniforms = fromList [ ( "Time" , Float ) ]
349 , slotPrimitive = Triangles 483 , slotPrimitive = Triangles
350 , slotPrograms = [ 0 , 1 , 2 ] 484 , slotPrograms = [ 0 , 1 , 2 ]
351 } 485 }
diff --git a/testdata/editor-examples/RecursiveTexture.lc b/testdata/editor-examples/RecursiveTexture.lc
index 63daf936..69d54447 100644
--- a/testdata/editor-examples/RecursiveTexture.lc
+++ b/testdata/editor-examples/RecursiveTexture.lc
@@ -4,7 +4,10 @@ triangleRasterCtx = TriangleCtx CullNone PolygonFill NoOffset LastVertex
4colorFragmentCtx = (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) 4colorFragmentCtx = (DepthOp Less True, ColorOp NoBlending (V4 True True True True))
5 5
6cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float) 6cubeVertexStream = fetch "stream4" (Attribute "position4" :: Vec 4 Float, Attribute "vertexUV" :: Vec 2 Float)
7rotMatrix = Uniform "MVP" :: Mat 4 4 Float 7time = Uniform "Time" :: Float
8rotMatrix = perspective 0.1 100.0 (30 * pi / 180) 1.0
9 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
10 .*. rotMatrixY (pi / 24.0 * time)
8 11
9setAlpha v = v * V4 1.0 1 1 0 + V4 0 0 0 1 12setAlpha v = v * V4 1.0 1 1 0 + V4 0 0 0 1
10 13
diff --git a/testdata/editor-examples/RecursiveTexture.out b/testdata/editor-examples/RecursiveTexture.out
index f222df27..bc3e5571 100644
--- a/testdata/editor-examples/RecursiveTexture.out
+++ b/testdata/editor-examples/RecursiveTexture.out
@@ -796,7 +796,7 @@ Pipeline
796 ] 796 ]
797 , programs = 797 , programs =
798 [ Program 798 [ Program
799 { programUniforms = fromList [ ( "MVP" , M44F ) ] 799 { programUniforms = fromList [ ( "Time" , Float ) ]
800 , programStreams = 800 , programStreams =
801 fromList 801 fromList
802 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 802 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -810,10 +810,67 @@ Pipeline
810 vec4 texture2D(sampler2D s,vec2 uv) { 810 vec4 texture2D(sampler2D s,vec2 uv) {
811 return texture(s,uv); 811 return texture(s,uv);
812 } 812 }
813 uniform mat4 MVP; 813 uniform float Time;
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 vec4 r1_Float;
818 vec4 r2_Float;
819 vec4 r3_Float;
820 vec4 ext0_Float_3(vec3 z0) {
821 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
822 }
823 vec3 neg_VecSFloat3(vec3 z0) {
824 return - (z0);
825 }
826 mat4 translateBefore4(vec3 z0) {
827 return mat4
828 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
829 }
830 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
831 return (transpose (mat4
832 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
833 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
834 ,normalize (cross (z2,normalize ((z0) - (z1))))))
835 ,ext0_Float_3 (normalize ((z0) - (z1)))
836 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
837 (z0)));
838 }
839 mat4 perspective(float z0,float z1,float z2,float z3) {
840 return mat4
841 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
842 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
843 ((z2) / (2.0)))))))
844 ,0.0
845 ,0.0
846 ,0.0)
847 ,vec4 (0.0
848 ,((2.0) * (z0)) / (((z0) * (tan
849 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
850 ,0.0
851 ,0.0)
852 ,vec4 ((((z3) * ((z0) * (tan
853 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
854 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
855 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
856 ((z2) / (2.0)))))))
857 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
858 ((z2) / (2.0)))))) / (((z0) * (tan
859 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
860 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
861 ,-1.0)
862 ,vec4 (0.0
863 ,0.0
864 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
865 ,0.0));
866 }
867 mat4 rotMatrixY(float z0) {
868 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
869 ,vec4 (0.0,1.0,0.0,0.0)
870 ,vec4 (sin (z0),0.0,cos (z0),0.0)
871 ,vec4 (0.0,0.0,0.0,1.0));
872 }
873 mat4 rotMatrix;
817 mat4 rotMatrixX(float z0) { 874 mat4 rotMatrixX(float z0) {
818 return mat4 (vec4 (1.0,0.0,0.0,0.0) 875 return mat4 (vec4 (1.0,0.0,0.0,0.0)
819 ,vec4 (0.0,cos (z0),sin (z0),0.0) 876 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -824,7 +881,17 @@ Pipeline
824 return (z1) * (vec4 (z0,z0,z0,1.0)); 881 return (z1) * (vec4 (z0,z0,z0,1.0));
825 } 882 }
826 void main() { 883 void main() {
827 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.0)) * (vi1))); 884 r1_Float = vec4 (1.0,0.0,0.0,0.0);
885 r2_Float = vec4 (0.0,1.0,0.0,0.0);
886 r3_Float = vec4 (0.0,0.0,1.0,0.0);
887 rotMatrix = ((perspective
888 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
889 (vec3 (3.0,1.3,0.3)
890 ,vec3 (0.0,0.0,0.0)
891 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
892 ((0.1308996938995747) * (Time)));
893 gl_Position = (rotMatrix) * (scale
894 (0.4,(rotMatrixX (0.0)) * (vi1)));
828 vo1 = vi2; 895 vo1 = vi2;
829 } 896 }
830 """ 897 """
@@ -849,7 +916,7 @@ Pipeline
849 """ 916 """
850 } 917 }
851 , Program 918 , Program
852 { programUniforms = fromList [ ( "MVP" , M44F ) ] 919 { programUniforms = fromList [ ( "Time" , Float ) ]
853 , programStreams = 920 , programStreams =
854 fromList 921 fromList
855 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 922 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -863,10 +930,67 @@ Pipeline
863 vec4 texture2D(sampler2D s,vec2 uv) { 930 vec4 texture2D(sampler2D s,vec2 uv) {
864 return texture(s,uv); 931 return texture(s,uv);
865 } 932 }
866 uniform mat4 MVP; 933 uniform float Time;
867 in vec4 vi1; 934 in vec4 vi1;
868 in vec2 vi2; 935 in vec2 vi2;
869 smooth out vec2 vo1; 936 smooth out vec2 vo1;
937 vec4 r1_Float;
938 vec4 r2_Float;
939 vec4 r3_Float;
940 vec4 ext0_Float_3(vec3 z0) {
941 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
942 }
943 vec3 neg_VecSFloat3(vec3 z0) {
944 return - (z0);
945 }
946 mat4 translateBefore4(vec3 z0) {
947 return mat4
948 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
949 }
950 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
951 return (transpose (mat4
952 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
953 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
954 ,normalize (cross (z2,normalize ((z0) - (z1))))))
955 ,ext0_Float_3 (normalize ((z0) - (z1)))
956 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
957 (z0)));
958 }
959 mat4 perspective(float z0,float z1,float z2,float z3) {
960 return mat4
961 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
962 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
963 ((z2) / (2.0)))))))
964 ,0.0
965 ,0.0
966 ,0.0)
967 ,vec4 (0.0
968 ,((2.0) * (z0)) / (((z0) * (tan
969 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
970 ,0.0
971 ,0.0)
972 ,vec4 ((((z3) * ((z0) * (tan
973 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
974 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
975 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
976 ((z2) / (2.0)))))))
977 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
978 ((z2) / (2.0)))))) / (((z0) * (tan
979 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
980 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
981 ,-1.0)
982 ,vec4 (0.0
983 ,0.0
984 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
985 ,0.0));
986 }
987 mat4 rotMatrixY(float z0) {
988 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
989 ,vec4 (0.0,1.0,0.0,0.0)
990 ,vec4 (sin (z0),0.0,cos (z0),0.0)
991 ,vec4 (0.0,0.0,0.0,1.0));
992 }
993 mat4 rotMatrix;
870 mat4 rotMatrixX(float z0) { 994 mat4 rotMatrixX(float z0) {
871 return mat4 (vec4 (1.0,0.0,0.0,0.0) 995 return mat4 (vec4 (1.0,0.0,0.0,0.0)
872 ,vec4 (0.0,cos (z0),sin (z0),0.0) 996 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -877,7 +1001,17 @@ Pipeline
877 return (z1) * (vec4 (z0,z0,z0,1.0)); 1001 return (z1) * (vec4 (z0,z0,z0,1.0));
878 } 1002 }
879 void main() { 1003 void main() {
880 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.1)) * (vi1))); 1004 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1005 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1006 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1007 rotMatrix = ((perspective
1008 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1009 (vec3 (3.0,1.3,0.3)
1010 ,vec3 (0.0,0.0,0.0)
1011 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1012 ((0.1308996938995747) * (Time)));
1013 gl_Position = (rotMatrix) * (scale
1014 (0.4,(rotMatrixX (0.1)) * (vi1)));
881 vo1 = vi2; 1015 vo1 = vi2;
882 } 1016 }
883 """ 1017 """
@@ -902,7 +1036,7 @@ Pipeline
902 """ 1036 """
903 } 1037 }
904 , Program 1038 , Program
905 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1039 { programUniforms = fromList [ ( "Time" , Float ) ]
906 , programStreams = 1040 , programStreams =
907 fromList 1041 fromList
908 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1042 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -916,10 +1050,67 @@ Pipeline
916 vec4 texture2D(sampler2D s,vec2 uv) { 1050 vec4 texture2D(sampler2D s,vec2 uv) {
917 return texture(s,uv); 1051 return texture(s,uv);
918 } 1052 }
919 uniform mat4 MVP; 1053 uniform float Time;
920 in vec4 vi1; 1054 in vec4 vi1;
921 in vec2 vi2; 1055 in vec2 vi2;
922 smooth out vec2 vo1; 1056 smooth out vec2 vo1;
1057 vec4 r1_Float;
1058 vec4 r2_Float;
1059 vec4 r3_Float;
1060 vec4 ext0_Float_3(vec3 z0) {
1061 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1062 }
1063 vec3 neg_VecSFloat3(vec3 z0) {
1064 return - (z0);
1065 }
1066 mat4 translateBefore4(vec3 z0) {
1067 return mat4
1068 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1069 }
1070 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1071 return (transpose (mat4
1072 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1073 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1074 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1075 ,ext0_Float_3 (normalize ((z0) - (z1)))
1076 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1077 (z0)));
1078 }
1079 mat4 perspective(float z0,float z1,float z2,float z3) {
1080 return mat4
1081 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1082 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1083 ((z2) / (2.0)))))))
1084 ,0.0
1085 ,0.0
1086 ,0.0)
1087 ,vec4 (0.0
1088 ,((2.0) * (z0)) / (((z0) * (tan
1089 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1090 ,0.0
1091 ,0.0)
1092 ,vec4 ((((z3) * ((z0) * (tan
1093 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1094 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1095 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1096 ((z2) / (2.0)))))))
1097 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1098 ((z2) / (2.0)))))) / (((z0) * (tan
1099 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1100 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1101 ,-1.0)
1102 ,vec4 (0.0
1103 ,0.0
1104 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1105 ,0.0));
1106 }
1107 mat4 rotMatrixY(float z0) {
1108 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1109 ,vec4 (0.0,1.0,0.0,0.0)
1110 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1111 ,vec4 (0.0,0.0,0.0,1.0));
1112 }
1113 mat4 rotMatrix;
923 mat4 rotMatrixX(float z0) { 1114 mat4 rotMatrixX(float z0) {
924 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1115 return mat4 (vec4 (1.0,0.0,0.0,0.0)
925 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1116 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -930,7 +1121,17 @@ Pipeline
930 return (z1) * (vec4 (z0,z0,z0,1.0)); 1121 return (z1) * (vec4 (z0,z0,z0,1.0));
931 } 1122 }
932 void main() { 1123 void main() {
933 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.2)) * (vi1))); 1124 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1125 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1126 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1127 rotMatrix = ((perspective
1128 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1129 (vec3 (3.0,1.3,0.3)
1130 ,vec3 (0.0,0.0,0.0)
1131 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1132 ((0.1308996938995747) * (Time)));
1133 gl_Position = (rotMatrix) * (scale
1134 (0.4,(rotMatrixX (0.2)) * (vi1)));
934 vo1 = vi2; 1135 vo1 = vi2;
935 } 1136 }
936 """ 1137 """
@@ -955,7 +1156,7 @@ Pipeline
955 """ 1156 """
956 } 1157 }
957 , Program 1158 , Program
958 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1159 { programUniforms = fromList [ ( "Time" , Float ) ]
959 , programStreams = 1160 , programStreams =
960 fromList 1161 fromList
961 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1162 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -969,10 +1170,67 @@ Pipeline
969 vec4 texture2D(sampler2D s,vec2 uv) { 1170 vec4 texture2D(sampler2D s,vec2 uv) {
970 return texture(s,uv); 1171 return texture(s,uv);
971 } 1172 }
972 uniform mat4 MVP; 1173 uniform float Time;
973 in vec4 vi1; 1174 in vec4 vi1;
974 in vec2 vi2; 1175 in vec2 vi2;
975 smooth out vec2 vo1; 1176 smooth out vec2 vo1;
1177 vec4 r1_Float;
1178 vec4 r2_Float;
1179 vec4 r3_Float;
1180 vec4 ext0_Float_3(vec3 z0) {
1181 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1182 }
1183 vec3 neg_VecSFloat3(vec3 z0) {
1184 return - (z0);
1185 }
1186 mat4 translateBefore4(vec3 z0) {
1187 return mat4
1188 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1189 }
1190 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1191 return (transpose (mat4
1192 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1193 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1194 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1195 ,ext0_Float_3 (normalize ((z0) - (z1)))
1196 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1197 (z0)));
1198 }
1199 mat4 perspective(float z0,float z1,float z2,float z3) {
1200 return mat4
1201 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1202 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1203 ((z2) / (2.0)))))))
1204 ,0.0
1205 ,0.0
1206 ,0.0)
1207 ,vec4 (0.0
1208 ,((2.0) * (z0)) / (((z0) * (tan
1209 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1210 ,0.0
1211 ,0.0)
1212 ,vec4 ((((z3) * ((z0) * (tan
1213 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1214 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1215 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1216 ((z2) / (2.0)))))))
1217 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1218 ((z2) / (2.0)))))) / (((z0) * (tan
1219 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1220 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1221 ,-1.0)
1222 ,vec4 (0.0
1223 ,0.0
1224 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1225 ,0.0));
1226 }
1227 mat4 rotMatrixY(float z0) {
1228 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1229 ,vec4 (0.0,1.0,0.0,0.0)
1230 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1231 ,vec4 (0.0,0.0,0.0,1.0));
1232 }
1233 mat4 rotMatrix;
976 mat4 rotMatrixX(float z0) { 1234 mat4 rotMatrixX(float z0) {
977 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1235 return mat4 (vec4 (1.0,0.0,0.0,0.0)
978 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1236 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -983,7 +1241,17 @@ Pipeline
983 return (z1) * (vec4 (z0,z0,z0,1.0)); 1241 return (z1) * (vec4 (z0,z0,z0,1.0));
984 } 1242 }
985 void main() { 1243 void main() {
986 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.3)) * (vi1))); 1244 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1245 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1246 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1247 rotMatrix = ((perspective
1248 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1249 (vec3 (3.0,1.3,0.3)
1250 ,vec3 (0.0,0.0,0.0)
1251 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1252 ((0.1308996938995747) * (Time)));
1253 gl_Position = (rotMatrix) * (scale
1254 (0.4,(rotMatrixX (0.3)) * (vi1)));
987 vo1 = vi2; 1255 vo1 = vi2;
988 } 1256 }
989 """ 1257 """
@@ -1008,7 +1276,7 @@ Pipeline
1008 """ 1276 """
1009 } 1277 }
1010 , Program 1278 , Program
1011 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1279 { programUniforms = fromList [ ( "Time" , Float ) ]
1012 , programStreams = 1280 , programStreams =
1013 fromList 1281 fromList
1014 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1282 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1022,10 +1290,67 @@ Pipeline
1022 vec4 texture2D(sampler2D s,vec2 uv) { 1290 vec4 texture2D(sampler2D s,vec2 uv) {
1023 return texture(s,uv); 1291 return texture(s,uv);
1024 } 1292 }
1025 uniform mat4 MVP; 1293 uniform float Time;
1026 in vec4 vi1; 1294 in vec4 vi1;
1027 in vec2 vi2; 1295 in vec2 vi2;
1028 smooth out vec2 vo1; 1296 smooth out vec2 vo1;
1297 vec4 r1_Float;
1298 vec4 r2_Float;
1299 vec4 r3_Float;
1300 vec4 ext0_Float_3(vec3 z0) {
1301 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1302 }
1303 vec3 neg_VecSFloat3(vec3 z0) {
1304 return - (z0);
1305 }
1306 mat4 translateBefore4(vec3 z0) {
1307 return mat4
1308 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1309 }
1310 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1311 return (transpose (mat4
1312 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1313 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1314 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1315 ,ext0_Float_3 (normalize ((z0) - (z1)))
1316 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1317 (z0)));
1318 }
1319 mat4 perspective(float z0,float z1,float z2,float z3) {
1320 return mat4
1321 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1322 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1323 ((z2) / (2.0)))))))
1324 ,0.0
1325 ,0.0
1326 ,0.0)
1327 ,vec4 (0.0
1328 ,((2.0) * (z0)) / (((z0) * (tan
1329 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1330 ,0.0
1331 ,0.0)
1332 ,vec4 ((((z3) * ((z0) * (tan
1333 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1334 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1335 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1336 ((z2) / (2.0)))))))
1337 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1338 ((z2) / (2.0)))))) / (((z0) * (tan
1339 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1340 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1341 ,-1.0)
1342 ,vec4 (0.0
1343 ,0.0
1344 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1345 ,0.0));
1346 }
1347 mat4 rotMatrixY(float z0) {
1348 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1349 ,vec4 (0.0,1.0,0.0,0.0)
1350 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1351 ,vec4 (0.0,0.0,0.0,1.0));
1352 }
1353 mat4 rotMatrix;
1029 mat4 rotMatrixX(float z0) { 1354 mat4 rotMatrixX(float z0) {
1030 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1355 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1031 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1356 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1036,7 +1361,17 @@ Pipeline
1036 return (z1) * (vec4 (z0,z0,z0,1.0)); 1361 return (z1) * (vec4 (z0,z0,z0,1.0));
1037 } 1362 }
1038 void main() { 1363 void main() {
1039 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.4)) * (vi1))); 1364 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1365 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1366 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1367 rotMatrix = ((perspective
1368 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1369 (vec3 (3.0,1.3,0.3)
1370 ,vec3 (0.0,0.0,0.0)
1371 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1372 ((0.1308996938995747) * (Time)));
1373 gl_Position = (rotMatrix) * (scale
1374 (0.4,(rotMatrixX (0.4)) * (vi1)));
1040 vo1 = vi2; 1375 vo1 = vi2;
1041 } 1376 }
1042 """ 1377 """
@@ -1061,7 +1396,7 @@ Pipeline
1061 """ 1396 """
1062 } 1397 }
1063 , Program 1398 , Program
1064 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1399 { programUniforms = fromList [ ( "Time" , Float ) ]
1065 , programStreams = 1400 , programStreams =
1066 fromList 1401 fromList
1067 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1402 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1075,10 +1410,67 @@ Pipeline
1075 vec4 texture2D(sampler2D s,vec2 uv) { 1410 vec4 texture2D(sampler2D s,vec2 uv) {
1076 return texture(s,uv); 1411 return texture(s,uv);
1077 } 1412 }
1078 uniform mat4 MVP; 1413 uniform float Time;
1079 in vec4 vi1; 1414 in vec4 vi1;
1080 in vec2 vi2; 1415 in vec2 vi2;
1081 smooth out vec2 vo1; 1416 smooth out vec2 vo1;
1417 vec4 r1_Float;
1418 vec4 r2_Float;
1419 vec4 r3_Float;
1420 vec4 ext0_Float_3(vec3 z0) {
1421 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1422 }
1423 vec3 neg_VecSFloat3(vec3 z0) {
1424 return - (z0);
1425 }
1426 mat4 translateBefore4(vec3 z0) {
1427 return mat4
1428 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1429 }
1430 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1431 return (transpose (mat4
1432 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1433 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1434 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1435 ,ext0_Float_3 (normalize ((z0) - (z1)))
1436 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1437 (z0)));
1438 }
1439 mat4 perspective(float z0,float z1,float z2,float z3) {
1440 return mat4
1441 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1442 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1443 ((z2) / (2.0)))))))
1444 ,0.0
1445 ,0.0
1446 ,0.0)
1447 ,vec4 (0.0
1448 ,((2.0) * (z0)) / (((z0) * (tan
1449 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1450 ,0.0
1451 ,0.0)
1452 ,vec4 ((((z3) * ((z0) * (tan
1453 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1454 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1455 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1456 ((z2) / (2.0)))))))
1457 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1458 ((z2) / (2.0)))))) / (((z0) * (tan
1459 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1460 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1461 ,-1.0)
1462 ,vec4 (0.0
1463 ,0.0
1464 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1465 ,0.0));
1466 }
1467 mat4 rotMatrixY(float z0) {
1468 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1469 ,vec4 (0.0,1.0,0.0,0.0)
1470 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1471 ,vec4 (0.0,0.0,0.0,1.0));
1472 }
1473 mat4 rotMatrix;
1082 mat4 rotMatrixX(float z0) { 1474 mat4 rotMatrixX(float z0) {
1083 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1475 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1084 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1476 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1089,7 +1481,17 @@ Pipeline
1089 return (z1) * (vec4 (z0,z0,z0,1.0)); 1481 return (z1) * (vec4 (z0,z0,z0,1.0));
1090 } 1482 }
1091 void main() { 1483 void main() {
1092 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.5)) * (vi1))); 1484 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1485 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1486 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1487 rotMatrix = ((perspective
1488 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1489 (vec3 (3.0,1.3,0.3)
1490 ,vec3 (0.0,0.0,0.0)
1491 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1492 ((0.1308996938995747) * (Time)));
1493 gl_Position = (rotMatrix) * (scale
1494 (0.4,(rotMatrixX (0.5)) * (vi1)));
1093 vo1 = vi2; 1495 vo1 = vi2;
1094 } 1496 }
1095 """ 1497 """
@@ -1114,7 +1516,7 @@ Pipeline
1114 """ 1516 """
1115 } 1517 }
1116 , Program 1518 , Program
1117 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1519 { programUniforms = fromList [ ( "Time" , Float ) ]
1118 , programStreams = 1520 , programStreams =
1119 fromList 1521 fromList
1120 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1522 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1128,10 +1530,67 @@ Pipeline
1128 vec4 texture2D(sampler2D s,vec2 uv) { 1530 vec4 texture2D(sampler2D s,vec2 uv) {
1129 return texture(s,uv); 1531 return texture(s,uv);
1130 } 1532 }
1131 uniform mat4 MVP; 1533 uniform float Time;
1132 in vec4 vi1; 1534 in vec4 vi1;
1133 in vec2 vi2; 1535 in vec2 vi2;
1134 smooth out vec2 vo1; 1536 smooth out vec2 vo1;
1537 vec4 r1_Float;
1538 vec4 r2_Float;
1539 vec4 r3_Float;
1540 vec4 ext0_Float_3(vec3 z0) {
1541 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1542 }
1543 vec3 neg_VecSFloat3(vec3 z0) {
1544 return - (z0);
1545 }
1546 mat4 translateBefore4(vec3 z0) {
1547 return mat4
1548 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1549 }
1550 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1551 return (transpose (mat4
1552 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1553 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1554 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1555 ,ext0_Float_3 (normalize ((z0) - (z1)))
1556 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1557 (z0)));
1558 }
1559 mat4 perspective(float z0,float z1,float z2,float z3) {
1560 return mat4
1561 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1562 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1563 ((z2) / (2.0)))))))
1564 ,0.0
1565 ,0.0
1566 ,0.0)
1567 ,vec4 (0.0
1568 ,((2.0) * (z0)) / (((z0) * (tan
1569 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1570 ,0.0
1571 ,0.0)
1572 ,vec4 ((((z3) * ((z0) * (tan
1573 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1574 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1575 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1576 ((z2) / (2.0)))))))
1577 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1578 ((z2) / (2.0)))))) / (((z0) * (tan
1579 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1580 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1581 ,-1.0)
1582 ,vec4 (0.0
1583 ,0.0
1584 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1585 ,0.0));
1586 }
1587 mat4 rotMatrixY(float z0) {
1588 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1589 ,vec4 (0.0,1.0,0.0,0.0)
1590 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1591 ,vec4 (0.0,0.0,0.0,1.0));
1592 }
1593 mat4 rotMatrix;
1135 mat4 rotMatrixX(float z0) { 1594 mat4 rotMatrixX(float z0) {
1136 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1595 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1137 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1596 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1142,7 +1601,17 @@ Pipeline
1142 return (z1) * (vec4 (z0,z0,z0,1.0)); 1601 return (z1) * (vec4 (z0,z0,z0,1.0));
1143 } 1602 }
1144 void main() { 1603 void main() {
1145 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.6)) * (vi1))); 1604 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1605 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1606 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1607 rotMatrix = ((perspective
1608 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1609 (vec3 (3.0,1.3,0.3)
1610 ,vec3 (0.0,0.0,0.0)
1611 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1612 ((0.1308996938995747) * (Time)));
1613 gl_Position = (rotMatrix) * (scale
1614 (0.4,(rotMatrixX (0.6)) * (vi1)));
1146 vo1 = vi2; 1615 vo1 = vi2;
1147 } 1616 }
1148 """ 1617 """
@@ -1167,7 +1636,7 @@ Pipeline
1167 """ 1636 """
1168 } 1637 }
1169 , Program 1638 , Program
1170 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1639 { programUniforms = fromList [ ( "Time" , Float ) ]
1171 , programStreams = 1640 , programStreams =
1172 fromList 1641 fromList
1173 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1642 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1181,10 +1650,67 @@ Pipeline
1181 vec4 texture2D(sampler2D s,vec2 uv) { 1650 vec4 texture2D(sampler2D s,vec2 uv) {
1182 return texture(s,uv); 1651 return texture(s,uv);
1183 } 1652 }
1184 uniform mat4 MVP; 1653 uniform float Time;
1185 in vec4 vi1; 1654 in vec4 vi1;
1186 in vec2 vi2; 1655 in vec2 vi2;
1187 smooth out vec2 vo1; 1656 smooth out vec2 vo1;
1657 vec4 r1_Float;
1658 vec4 r2_Float;
1659 vec4 r3_Float;
1660 vec4 ext0_Float_3(vec3 z0) {
1661 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1662 }
1663 vec3 neg_VecSFloat3(vec3 z0) {
1664 return - (z0);
1665 }
1666 mat4 translateBefore4(vec3 z0) {
1667 return mat4
1668 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1669 }
1670 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1671 return (transpose (mat4
1672 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1673 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1674 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1675 ,ext0_Float_3 (normalize ((z0) - (z1)))
1676 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1677 (z0)));
1678 }
1679 mat4 perspective(float z0,float z1,float z2,float z3) {
1680 return mat4
1681 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1682 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1683 ((z2) / (2.0)))))))
1684 ,0.0
1685 ,0.0
1686 ,0.0)
1687 ,vec4 (0.0
1688 ,((2.0) * (z0)) / (((z0) * (tan
1689 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1690 ,0.0
1691 ,0.0)
1692 ,vec4 ((((z3) * ((z0) * (tan
1693 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1694 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1695 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1696 ((z2) / (2.0)))))))
1697 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1698 ((z2) / (2.0)))))) / (((z0) * (tan
1699 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1700 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1701 ,-1.0)
1702 ,vec4 (0.0
1703 ,0.0
1704 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1705 ,0.0));
1706 }
1707 mat4 rotMatrixY(float z0) {
1708 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1709 ,vec4 (0.0,1.0,0.0,0.0)
1710 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1711 ,vec4 (0.0,0.0,0.0,1.0));
1712 }
1713 mat4 rotMatrix;
1188 mat4 rotMatrixX(float z0) { 1714 mat4 rotMatrixX(float z0) {
1189 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1715 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1190 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1716 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1195,7 +1721,17 @@ Pipeline
1195 return (z1) * (vec4 (z0,z0,z0,1.0)); 1721 return (z1) * (vec4 (z0,z0,z0,1.0));
1196 } 1722 }
1197 void main() { 1723 void main() {
1198 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.7)) * (vi1))); 1724 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1725 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1726 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1727 rotMatrix = ((perspective
1728 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1729 (vec3 (3.0,1.3,0.3)
1730 ,vec3 (0.0,0.0,0.0)
1731 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1732 ((0.1308996938995747) * (Time)));
1733 gl_Position = (rotMatrix) * (scale
1734 (0.4,(rotMatrixX (0.7)) * (vi1)));
1199 vo1 = vi2; 1735 vo1 = vi2;
1200 } 1736 }
1201 """ 1737 """
@@ -1220,7 +1756,7 @@ Pipeline
1220 """ 1756 """
1221 } 1757 }
1222 , Program 1758 , Program
1223 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1759 { programUniforms = fromList [ ( "Time" , Float ) ]
1224 , programStreams = 1760 , programStreams =
1225 fromList 1761 fromList
1226 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1762 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1234,10 +1770,67 @@ Pipeline
1234 vec4 texture2D(sampler2D s,vec2 uv) { 1770 vec4 texture2D(sampler2D s,vec2 uv) {
1235 return texture(s,uv); 1771 return texture(s,uv);
1236 } 1772 }
1237 uniform mat4 MVP; 1773 uniform float Time;
1238 in vec4 vi1; 1774 in vec4 vi1;
1239 in vec2 vi2; 1775 in vec2 vi2;
1240 smooth out vec2 vo1; 1776 smooth out vec2 vo1;
1777 vec4 r1_Float;
1778 vec4 r2_Float;
1779 vec4 r3_Float;
1780 vec4 ext0_Float_3(vec3 z0) {
1781 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1782 }
1783 vec3 neg_VecSFloat3(vec3 z0) {
1784 return - (z0);
1785 }
1786 mat4 translateBefore4(vec3 z0) {
1787 return mat4
1788 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1789 }
1790 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1791 return (transpose (mat4
1792 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1793 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1794 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1795 ,ext0_Float_3 (normalize ((z0) - (z1)))
1796 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1797 (z0)));
1798 }
1799 mat4 perspective(float z0,float z1,float z2,float z3) {
1800 return mat4
1801 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1802 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1803 ((z2) / (2.0)))))))
1804 ,0.0
1805 ,0.0
1806 ,0.0)
1807 ,vec4 (0.0
1808 ,((2.0) * (z0)) / (((z0) * (tan
1809 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1810 ,0.0
1811 ,0.0)
1812 ,vec4 ((((z3) * ((z0) * (tan
1813 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1814 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1815 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1816 ((z2) / (2.0)))))))
1817 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1818 ((z2) / (2.0)))))) / (((z0) * (tan
1819 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1820 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1821 ,-1.0)
1822 ,vec4 (0.0
1823 ,0.0
1824 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1825 ,0.0));
1826 }
1827 mat4 rotMatrixY(float z0) {
1828 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1829 ,vec4 (0.0,1.0,0.0,0.0)
1830 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1831 ,vec4 (0.0,0.0,0.0,1.0));
1832 }
1833 mat4 rotMatrix;
1241 mat4 rotMatrixX(float z0) { 1834 mat4 rotMatrixX(float z0) {
1242 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1835 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1243 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1836 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1248,7 +1841,17 @@ Pipeline
1248 return (z1) * (vec4 (z0,z0,z0,1.0)); 1841 return (z1) * (vec4 (z0,z0,z0,1.0));
1249 } 1842 }
1250 void main() { 1843 void main() {
1251 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.8)) * (vi1))); 1844 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1845 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1846 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1847 rotMatrix = ((perspective
1848 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1849 (vec3 (3.0,1.3,0.3)
1850 ,vec3 (0.0,0.0,0.0)
1851 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1852 ((0.1308996938995747) * (Time)));
1853 gl_Position = (rotMatrix) * (scale
1854 (0.4,(rotMatrixX (0.8)) * (vi1)));
1252 vo1 = vi2; 1855 vo1 = vi2;
1253 } 1856 }
1254 """ 1857 """
@@ -1273,7 +1876,7 @@ Pipeline
1273 """ 1876 """
1274 } 1877 }
1275 , Program 1878 , Program
1276 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1879 { programUniforms = fromList [ ( "Time" , Float ) ]
1277 , programStreams = 1880 , programStreams =
1278 fromList 1881 fromList
1279 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 1882 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1287,10 +1890,67 @@ Pipeline
1287 vec4 texture2D(sampler2D s,vec2 uv) { 1890 vec4 texture2D(sampler2D s,vec2 uv) {
1288 return texture(s,uv); 1891 return texture(s,uv);
1289 } 1892 }
1290 uniform mat4 MVP; 1893 uniform float Time;
1291 in vec4 vi1; 1894 in vec4 vi1;
1292 in vec2 vi2; 1895 in vec2 vi2;
1293 smooth out vec2 vo1; 1896 smooth out vec2 vo1;
1897 vec4 r1_Float;
1898 vec4 r2_Float;
1899 vec4 r3_Float;
1900 vec4 ext0_Float_3(vec3 z0) {
1901 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
1902 }
1903 vec3 neg_VecSFloat3(vec3 z0) {
1904 return - (z0);
1905 }
1906 mat4 translateBefore4(vec3 z0) {
1907 return mat4
1908 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
1909 }
1910 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
1911 return (transpose (mat4
1912 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
1913 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
1914 ,normalize (cross (z2,normalize ((z0) - (z1))))))
1915 ,ext0_Float_3 (normalize ((z0) - (z1)))
1916 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
1917 (z0)));
1918 }
1919 mat4 perspective(float z0,float z1,float z2,float z3) {
1920 return mat4
1921 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
1922 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1923 ((z2) / (2.0)))))))
1924 ,0.0
1925 ,0.0
1926 ,0.0)
1927 ,vec4 (0.0
1928 ,((2.0) * (z0)) / (((z0) * (tan
1929 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1930 ,0.0
1931 ,0.0)
1932 ,vec4 ((((z3) * ((z0) * (tan
1933 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
1934 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
1935 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
1936 ((z2) / (2.0)))))))
1937 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
1938 ((z2) / (2.0)))))) / (((z0) * (tan
1939 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
1940 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
1941 ,-1.0)
1942 ,vec4 (0.0
1943 ,0.0
1944 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
1945 ,0.0));
1946 }
1947 mat4 rotMatrixY(float z0) {
1948 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
1949 ,vec4 (0.0,1.0,0.0,0.0)
1950 ,vec4 (sin (z0),0.0,cos (z0),0.0)
1951 ,vec4 (0.0,0.0,0.0,1.0));
1952 }
1953 mat4 rotMatrix;
1294 mat4 rotMatrixX(float z0) { 1954 mat4 rotMatrixX(float z0) {
1295 return mat4 (vec4 (1.0,0.0,0.0,0.0) 1955 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1296 ,vec4 (0.0,cos (z0),sin (z0),0.0) 1956 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1301,7 +1961,17 @@ Pipeline
1301 return (z1) * (vec4 (z0,z0,z0,1.0)); 1961 return (z1) * (vec4 (z0,z0,z0,1.0));
1302 } 1962 }
1303 void main() { 1963 void main() {
1304 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (0.9)) * (vi1))); 1964 r1_Float = vec4 (1.0,0.0,0.0,0.0);
1965 r2_Float = vec4 (0.0,1.0,0.0,0.0);
1966 r3_Float = vec4 (0.0,0.0,1.0,0.0);
1967 rotMatrix = ((perspective
1968 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
1969 (vec3 (3.0,1.3,0.3)
1970 ,vec3 (0.0,0.0,0.0)
1971 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
1972 ((0.1308996938995747) * (Time)));
1973 gl_Position = (rotMatrix) * (scale
1974 (0.4,(rotMatrixX (0.9)) * (vi1)));
1305 vo1 = vi2; 1975 vo1 = vi2;
1306 } 1976 }
1307 """ 1977 """
@@ -1326,7 +1996,7 @@ Pipeline
1326 """ 1996 """
1327 } 1997 }
1328 , Program 1998 , Program
1329 { programUniforms = fromList [ ( "MVP" , M44F ) ] 1999 { programUniforms = fromList [ ( "Time" , Float ) ]
1330 , programStreams = 2000 , programStreams =
1331 fromList 2001 fromList
1332 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 2002 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1340,10 +2010,67 @@ Pipeline
1340 vec4 texture2D(sampler2D s,vec2 uv) { 2010 vec4 texture2D(sampler2D s,vec2 uv) {
1341 return texture(s,uv); 2011 return texture(s,uv);
1342 } 2012 }
1343 uniform mat4 MVP; 2013 uniform float Time;
1344 in vec4 vi1; 2014 in vec4 vi1;
1345 in vec2 vi2; 2015 in vec2 vi2;
1346 smooth out vec2 vo1; 2016 smooth out vec2 vo1;
2017 vec4 r1_Float;
2018 vec4 r2_Float;
2019 vec4 r3_Float;
2020 vec4 ext0_Float_3(vec3 z0) {
2021 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
2022 }
2023 vec3 neg_VecSFloat3(vec3 z0) {
2024 return - (z0);
2025 }
2026 mat4 translateBefore4(vec3 z0) {
2027 return mat4
2028 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
2029 }
2030 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
2031 return (transpose (mat4
2032 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
2033 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
2034 ,normalize (cross (z2,normalize ((z0) - (z1))))))
2035 ,ext0_Float_3 (normalize ((z0) - (z1)))
2036 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
2037 (z0)));
2038 }
2039 mat4 perspective(float z0,float z1,float z2,float z3) {
2040 return mat4
2041 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
2042 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2043 ((z2) / (2.0)))))))
2044 ,0.0
2045 ,0.0
2046 ,0.0)
2047 ,vec4 (0.0
2048 ,((2.0) * (z0)) / (((z0) * (tan
2049 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2050 ,0.0
2051 ,0.0)
2052 ,vec4 ((((z3) * ((z0) * (tan
2053 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
2054 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
2055 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2056 ((z2) / (2.0)))))))
2057 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
2058 ((z2) / (2.0)))))) / (((z0) * (tan
2059 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2060 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
2061 ,-1.0)
2062 ,vec4 (0.0
2063 ,0.0
2064 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
2065 ,0.0));
2066 }
2067 mat4 rotMatrixY(float z0) {
2068 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
2069 ,vec4 (0.0,1.0,0.0,0.0)
2070 ,vec4 (sin (z0),0.0,cos (z0),0.0)
2071 ,vec4 (0.0,0.0,0.0,1.0));
2072 }
2073 mat4 rotMatrix;
1347 mat4 rotMatrixX(float z0) { 2074 mat4 rotMatrixX(float z0) {
1348 return mat4 (vec4 (1.0,0.0,0.0,0.0) 2075 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1349 ,vec4 (0.0,cos (z0),sin (z0),0.0) 2076 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1354,7 +2081,17 @@ Pipeline
1354 return (z1) * (vec4 (z0,z0,z0,1.0)); 2081 return (z1) * (vec4 (z0,z0,z0,1.0));
1355 } 2082 }
1356 void main() { 2083 void main() {
1357 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.0)) * (vi1))); 2084 r1_Float = vec4 (1.0,0.0,0.0,0.0);
2085 r2_Float = vec4 (0.0,1.0,0.0,0.0);
2086 r3_Float = vec4 (0.0,0.0,1.0,0.0);
2087 rotMatrix = ((perspective
2088 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
2089 (vec3 (3.0,1.3,0.3)
2090 ,vec3 (0.0,0.0,0.0)
2091 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
2092 ((0.1308996938995747) * (Time)));
2093 gl_Position = (rotMatrix) * (scale
2094 (0.4,(rotMatrixX (1.0)) * (vi1)));
1358 vo1 = vi2; 2095 vo1 = vi2;
1359 } 2096 }
1360 """ 2097 """
@@ -1379,7 +2116,7 @@ Pipeline
1379 """ 2116 """
1380 } 2117 }
1381 , Program 2118 , Program
1382 { programUniforms = fromList [ ( "MVP" , M44F ) ] 2119 { programUniforms = fromList [ ( "Time" , Float ) ]
1383 , programStreams = 2120 , programStreams =
1384 fromList 2121 fromList
1385 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 2122 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1393,10 +2130,67 @@ Pipeline
1393 vec4 texture2D(sampler2D s,vec2 uv) { 2130 vec4 texture2D(sampler2D s,vec2 uv) {
1394 return texture(s,uv); 2131 return texture(s,uv);
1395 } 2132 }
1396 uniform mat4 MVP; 2133 uniform float Time;
1397 in vec4 vi1; 2134 in vec4 vi1;
1398 in vec2 vi2; 2135 in vec2 vi2;
1399 smooth out vec2 vo1; 2136 smooth out vec2 vo1;
2137 vec4 r1_Float;
2138 vec4 r2_Float;
2139 vec4 r3_Float;
2140 vec4 ext0_Float_3(vec3 z0) {
2141 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
2142 }
2143 vec3 neg_VecSFloat3(vec3 z0) {
2144 return - (z0);
2145 }
2146 mat4 translateBefore4(vec3 z0) {
2147 return mat4
2148 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
2149 }
2150 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
2151 return (transpose (mat4
2152 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
2153 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
2154 ,normalize (cross (z2,normalize ((z0) - (z1))))))
2155 ,ext0_Float_3 (normalize ((z0) - (z1)))
2156 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
2157 (z0)));
2158 }
2159 mat4 perspective(float z0,float z1,float z2,float z3) {
2160 return mat4
2161 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
2162 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2163 ((z2) / (2.0)))))))
2164 ,0.0
2165 ,0.0
2166 ,0.0)
2167 ,vec4 (0.0
2168 ,((2.0) * (z0)) / (((z0) * (tan
2169 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2170 ,0.0
2171 ,0.0)
2172 ,vec4 ((((z3) * ((z0) * (tan
2173 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
2174 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
2175 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2176 ((z2) / (2.0)))))))
2177 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
2178 ((z2) / (2.0)))))) / (((z0) * (tan
2179 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2180 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
2181 ,-1.0)
2182 ,vec4 (0.0
2183 ,0.0
2184 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
2185 ,0.0));
2186 }
2187 mat4 rotMatrixY(float z0) {
2188 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
2189 ,vec4 (0.0,1.0,0.0,0.0)
2190 ,vec4 (sin (z0),0.0,cos (z0),0.0)
2191 ,vec4 (0.0,0.0,0.0,1.0));
2192 }
2193 mat4 rotMatrix;
1400 mat4 rotMatrixX(float z0) { 2194 mat4 rotMatrixX(float z0) {
1401 return mat4 (vec4 (1.0,0.0,0.0,0.0) 2195 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1402 ,vec4 (0.0,cos (z0),sin (z0),0.0) 2196 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1407,7 +2201,17 @@ Pipeline
1407 return (z1) * (vec4 (z0,z0,z0,1.0)); 2201 return (z1) * (vec4 (z0,z0,z0,1.0));
1408 } 2202 }
1409 void main() { 2203 void main() {
1410 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.1)) * (vi1))); 2204 r1_Float = vec4 (1.0,0.0,0.0,0.0);
2205 r2_Float = vec4 (0.0,1.0,0.0,0.0);
2206 r3_Float = vec4 (0.0,0.0,1.0,0.0);
2207 rotMatrix = ((perspective
2208 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
2209 (vec3 (3.0,1.3,0.3)
2210 ,vec3 (0.0,0.0,0.0)
2211 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
2212 ((0.1308996938995747) * (Time)));
2213 gl_Position = (rotMatrix) * (scale
2214 (0.4,(rotMatrixX (1.1)) * (vi1)));
1411 vo1 = vi2; 2215 vo1 = vi2;
1412 } 2216 }
1413 """ 2217 """
@@ -1432,7 +2236,7 @@ Pipeline
1432 """ 2236 """
1433 } 2237 }
1434 , Program 2238 , Program
1435 { programUniforms = fromList [ ( "MVP" , M44F ) ] 2239 { programUniforms = fromList [ ( "Time" , Float ) ]
1436 , programStreams = 2240 , programStreams =
1437 fromList 2241 fromList
1438 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 2242 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1446,10 +2250,67 @@ Pipeline
1446 vec4 texture2D(sampler2D s,vec2 uv) { 2250 vec4 texture2D(sampler2D s,vec2 uv) {
1447 return texture(s,uv); 2251 return texture(s,uv);
1448 } 2252 }
1449 uniform mat4 MVP; 2253 uniform float Time;
1450 in vec4 vi1; 2254 in vec4 vi1;
1451 in vec2 vi2; 2255 in vec2 vi2;
1452 smooth out vec2 vo1; 2256 smooth out vec2 vo1;
2257 vec4 r1_Float;
2258 vec4 r2_Float;
2259 vec4 r3_Float;
2260 vec4 ext0_Float_3(vec3 z0) {
2261 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
2262 }
2263 vec3 neg_VecSFloat3(vec3 z0) {
2264 return - (z0);
2265 }
2266 mat4 translateBefore4(vec3 z0) {
2267 return mat4
2268 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
2269 }
2270 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
2271 return (transpose (mat4
2272 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
2273 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
2274 ,normalize (cross (z2,normalize ((z0) - (z1))))))
2275 ,ext0_Float_3 (normalize ((z0) - (z1)))
2276 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
2277 (z0)));
2278 }
2279 mat4 perspective(float z0,float z1,float z2,float z3) {
2280 return mat4
2281 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
2282 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2283 ((z2) / (2.0)))))))
2284 ,0.0
2285 ,0.0
2286 ,0.0)
2287 ,vec4 (0.0
2288 ,((2.0) * (z0)) / (((z0) * (tan
2289 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2290 ,0.0
2291 ,0.0)
2292 ,vec4 ((((z3) * ((z0) * (tan
2293 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
2294 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
2295 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2296 ((z2) / (2.0)))))))
2297 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
2298 ((z2) / (2.0)))))) / (((z0) * (tan
2299 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2300 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
2301 ,-1.0)
2302 ,vec4 (0.0
2303 ,0.0
2304 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
2305 ,0.0));
2306 }
2307 mat4 rotMatrixY(float z0) {
2308 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
2309 ,vec4 (0.0,1.0,0.0,0.0)
2310 ,vec4 (sin (z0),0.0,cos (z0),0.0)
2311 ,vec4 (0.0,0.0,0.0,1.0));
2312 }
2313 mat4 rotMatrix;
1453 mat4 rotMatrixX(float z0) { 2314 mat4 rotMatrixX(float z0) {
1454 return mat4 (vec4 (1.0,0.0,0.0,0.0) 2315 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1455 ,vec4 (0.0,cos (z0),sin (z0),0.0) 2316 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1460,7 +2321,17 @@ Pipeline
1460 return (z1) * (vec4 (z0,z0,z0,1.0)); 2321 return (z1) * (vec4 (z0,z0,z0,1.0));
1461 } 2322 }
1462 void main() { 2323 void main() {
1463 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.2)) * (vi1))); 2324 r1_Float = vec4 (1.0,0.0,0.0,0.0);
2325 r2_Float = vec4 (0.0,1.0,0.0,0.0);
2326 r3_Float = vec4 (0.0,0.0,1.0,0.0);
2327 rotMatrix = ((perspective
2328 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
2329 (vec3 (3.0,1.3,0.3)
2330 ,vec3 (0.0,0.0,0.0)
2331 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
2332 ((0.1308996938995747) * (Time)));
2333 gl_Position = (rotMatrix) * (scale
2334 (0.4,(rotMatrixX (1.2)) * (vi1)));
1464 vo1 = vi2; 2335 vo1 = vi2;
1465 } 2336 }
1466 """ 2337 """
@@ -1485,7 +2356,7 @@ Pipeline
1485 """ 2356 """
1486 } 2357 }
1487 , Program 2358 , Program
1488 { programUniforms = fromList [ ( "MVP" , M44F ) ] 2359 { programUniforms = fromList [ ( "Time" , Float ) ]
1489 , programStreams = 2360 , programStreams =
1490 fromList 2361 fromList
1491 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 2362 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1499,10 +2370,67 @@ Pipeline
1499 vec4 texture2D(sampler2D s,vec2 uv) { 2370 vec4 texture2D(sampler2D s,vec2 uv) {
1500 return texture(s,uv); 2371 return texture(s,uv);
1501 } 2372 }
1502 uniform mat4 MVP; 2373 uniform float Time;
1503 in vec4 vi1; 2374 in vec4 vi1;
1504 in vec2 vi2; 2375 in vec2 vi2;
1505 smooth out vec2 vo1; 2376 smooth out vec2 vo1;
2377 vec4 r1_Float;
2378 vec4 r2_Float;
2379 vec4 r3_Float;
2380 vec4 ext0_Float_3(vec3 z0) {
2381 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
2382 }
2383 vec3 neg_VecSFloat3(vec3 z0) {
2384 return - (z0);
2385 }
2386 mat4 translateBefore4(vec3 z0) {
2387 return mat4
2388 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
2389 }
2390 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
2391 return (transpose (mat4
2392 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
2393 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
2394 ,normalize (cross (z2,normalize ((z0) - (z1))))))
2395 ,ext0_Float_3 (normalize ((z0) - (z1)))
2396 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
2397 (z0)));
2398 }
2399 mat4 perspective(float z0,float z1,float z2,float z3) {
2400 return mat4
2401 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
2402 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2403 ((z2) / (2.0)))))))
2404 ,0.0
2405 ,0.0
2406 ,0.0)
2407 ,vec4 (0.0
2408 ,((2.0) * (z0)) / (((z0) * (tan
2409 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2410 ,0.0
2411 ,0.0)
2412 ,vec4 ((((z3) * ((z0) * (tan
2413 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
2414 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
2415 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2416 ((z2) / (2.0)))))))
2417 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
2418 ((z2) / (2.0)))))) / (((z0) * (tan
2419 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2420 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
2421 ,-1.0)
2422 ,vec4 (0.0
2423 ,0.0
2424 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
2425 ,0.0));
2426 }
2427 mat4 rotMatrixY(float z0) {
2428 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
2429 ,vec4 (0.0,1.0,0.0,0.0)
2430 ,vec4 (sin (z0),0.0,cos (z0),0.0)
2431 ,vec4 (0.0,0.0,0.0,1.0));
2432 }
2433 mat4 rotMatrix;
1506 mat4 rotMatrixX(float z0) { 2434 mat4 rotMatrixX(float z0) {
1507 return mat4 (vec4 (1.0,0.0,0.0,0.0) 2435 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1508 ,vec4 (0.0,cos (z0),sin (z0),0.0) 2436 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1513,7 +2441,17 @@ Pipeline
1513 return (z1) * (vec4 (z0,z0,z0,1.0)); 2441 return (z1) * (vec4 (z0,z0,z0,1.0));
1514 } 2442 }
1515 void main() { 2443 void main() {
1516 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.3)) * (vi1))); 2444 r1_Float = vec4 (1.0,0.0,0.0,0.0);
2445 r2_Float = vec4 (0.0,1.0,0.0,0.0);
2446 r3_Float = vec4 (0.0,0.0,1.0,0.0);
2447 rotMatrix = ((perspective
2448 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
2449 (vec3 (3.0,1.3,0.3)
2450 ,vec3 (0.0,0.0,0.0)
2451 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
2452 ((0.1308996938995747) * (Time)));
2453 gl_Position = (rotMatrix) * (scale
2454 (0.4,(rotMatrixX (1.3)) * (vi1)));
1517 vo1 = vi2; 2455 vo1 = vi2;
1518 } 2456 }
1519 """ 2457 """
@@ -1538,7 +2476,7 @@ Pipeline
1538 """ 2476 """
1539 } 2477 }
1540 , Program 2478 , Program
1541 { programUniforms = fromList [ ( "MVP" , M44F ) ] 2479 { programUniforms = fromList [ ( "Time" , Float ) ]
1542 , programStreams = 2480 , programStreams =
1543 fromList 2481 fromList
1544 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 2482 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -1552,10 +2490,67 @@ Pipeline
1552 vec4 texture2D(sampler2D s,vec2 uv) { 2490 vec4 texture2D(sampler2D s,vec2 uv) {
1553 return texture(s,uv); 2491 return texture(s,uv);
1554 } 2492 }
1555 uniform mat4 MVP; 2493 uniform float Time;
1556 in vec4 vi1; 2494 in vec4 vi1;
1557 in vec2 vi2; 2495 in vec2 vi2;
1558 smooth out vec2 vo1; 2496 smooth out vec2 vo1;
2497 vec4 r1_Float;
2498 vec4 r2_Float;
2499 vec4 r3_Float;
2500 vec4 ext0_Float_3(vec3 z0) {
2501 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
2502 }
2503 vec3 neg_VecSFloat3(vec3 z0) {
2504 return - (z0);
2505 }
2506 mat4 translateBefore4(vec3 z0) {
2507 return mat4
2508 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
2509 }
2510 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
2511 return (transpose (mat4
2512 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
2513 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
2514 ,normalize (cross (z2,normalize ((z0) - (z1))))))
2515 ,ext0_Float_3 (normalize ((z0) - (z1)))
2516 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
2517 (z0)));
2518 }
2519 mat4 perspective(float z0,float z1,float z2,float z3) {
2520 return mat4
2521 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
2522 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2523 ((z2) / (2.0)))))))
2524 ,0.0
2525 ,0.0
2526 ,0.0)
2527 ,vec4 (0.0
2528 ,((2.0) * (z0)) / (((z0) * (tan
2529 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2530 ,0.0
2531 ,0.0)
2532 ,vec4 ((((z3) * ((z0) * (tan
2533 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
2534 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
2535 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
2536 ((z2) / (2.0)))))))
2537 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
2538 ((z2) / (2.0)))))) / (((z0) * (tan
2539 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
2540 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
2541 ,-1.0)
2542 ,vec4 (0.0
2543 ,0.0
2544 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
2545 ,0.0));
2546 }
2547 mat4 rotMatrixY(float z0) {
2548 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
2549 ,vec4 (0.0,1.0,0.0,0.0)
2550 ,vec4 (sin (z0),0.0,cos (z0),0.0)
2551 ,vec4 (0.0,0.0,0.0,1.0));
2552 }
2553 mat4 rotMatrix;
1559 mat4 rotMatrixX(float z0) { 2554 mat4 rotMatrixX(float z0) {
1560 return mat4 (vec4 (1.0,0.0,0.0,0.0) 2555 return mat4 (vec4 (1.0,0.0,0.0,0.0)
1561 ,vec4 (0.0,cos (z0),sin (z0),0.0) 2556 ,vec4 (0.0,cos (z0),sin (z0),0.0)
@@ -1566,7 +2561,17 @@ Pipeline
1566 return (z1) * (vec4 (z0,z0,z0,1.0)); 2561 return (z1) * (vec4 (z0,z0,z0,1.0));
1567 } 2562 }
1568 void main() { 2563 void main() {
1569 gl_Position = (MVP) * (scale (0.4,(rotMatrixX (1.4)) * (vi1))); 2564 r1_Float = vec4 (1.0,0.0,0.0,0.0);
2565 r2_Float = vec4 (0.0,1.0,0.0,0.0);
2566 r3_Float = vec4 (0.0,0.0,1.0,0.0);
2567 rotMatrix = ((perspective
2568 (0.1,100.0,0.5235987755982988,1.0)) * (lookat
2569 (vec3 (3.0,1.3,0.3)
2570 ,vec3 (0.0,0.0,0.0)
2571 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
2572 ((0.1308996938995747) * (Time)));
2573 gl_Position = (rotMatrix) * (scale
2574 (0.4,(rotMatrixX (1.4)) * (vi1)));
1570 vo1 = vi2; 2575 vo1 = vi2;
1571 } 2576 }
1572 """ 2577 """
@@ -1596,7 +2601,7 @@ Pipeline
1596 { slotName = "stream4" 2601 { slotName = "stream4"
1597 , slotStreams = 2602 , slotStreams =
1598 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] 2603 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ]
1599 , slotUniforms = fromList [ ( "MVP" , M44F ) ] 2604 , slotUniforms = fromList [ ( "Time" , Float ) ]
1600 , slotPrimitive = Triangles 2605 , slotPrimitive = Triangles
1601 , slotPrograms = 2606 , slotPrograms =
1602 [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ] 2607 [ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ]
diff --git a/testdata/editor-examples/Tetrahedron.lc b/testdata/editor-examples/Tetrahedron.lc
index 0aab3e39..cc790218 100644
--- a/testdata/editor-examples/Tetrahedron.lc
+++ b/testdata/editor-examples/Tetrahedron.lc
@@ -8,12 +8,15 @@ tetrahedron =
8f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 8f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2
9 9
10makeFrame (time :: Float) 10makeFrame (time :: Float)
11 (projmat :: Mat 4 4 Float)
12 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float))) 11 (vertexstream :: PrimitiveStream Triangle ((Vec 4 Float)))
13 12
14 = imageFrame (emptyDepthImage 1, emptyColorImage navy) 13 = imageFrame (emptyDepthImage 1, emptyColorImage navy)
15 `overlay` accumulablefragments 14 `overlay` accumulablefragments
16 where 15 where
16 projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0
17 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
18 .*. rotMatrixY (pi / 24.0 * time)
19
17 accumulablefragments 20 accumulablefragments
18 = vertexstream 21 = vertexstream
19 & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x)) 22 & mapPrimitives (\((x)) -> (scale 0.5 (projmat *. x), x))
@@ -24,7 +27,6 @@ makeFrame (time :: Float)
24 27
25main = renderFrame $ 28main = renderFrame $
26 makeFrame (Uniform "Time") 29 makeFrame (Uniform "Time")
27 (Uniform "MVP")
28 tetrahedronStream 30 tetrahedronStream
29 31
30tetrahedronStream = fetchArrays ((map (\v -> V4 v%x v%y v%z 1) tetrahedron)) 32tetrahedronStream = fetchArrays ((map (\v -> V4 v%x v%y v%z 1) tetrahedron))
diff --git a/testdata/editor-examples/Tetrahedron.out b/testdata/editor-examples/Tetrahedron.out
index 64583387..1f2372ec 100644
--- a/testdata/editor-examples/Tetrahedron.out
+++ b/testdata/editor-examples/Tetrahedron.out
@@ -15,8 +15,7 @@ Pipeline
15 ] 15 ]
16 , programs = 16 , programs =
17 [ Program 17 [ Program
18 { programUniforms = 18 { programUniforms = fromList [ ( "Time" , Float ) ]
19 fromList [ ( "MVP" , M44F ) , ( "Time" , Float ) ]
20 , programStreams = 19 , programStreams =
21 fromList 20 fromList
22 [ ( "vi1" , Parameter { name = "attribute_0" , ty = V4F } ) ] 21 [ ( "vi1" , Parameter { name = "attribute_0" , ty = V4F } ) ]
@@ -28,14 +27,79 @@ Pipeline
28 vec4 texture2D(sampler2D s,vec2 uv) { 27 vec4 texture2D(sampler2D s,vec2 uv) {
29 return texture(s,uv); 28 return texture(s,uv);
30 } 29 }
31 uniform mat4 MVP; 30 uniform float Time;
32 in vec4 vi1; 31 in vec4 vi1;
33 smooth out vec4 vo1; 32 smooth out vec4 vo1;
33 vec4 r1_Float;
34 vec4 r2_Float;
35 vec4 r3_Float;
36 vec4 ext0_Float_3(vec3 z0) {
37 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
38 }
39 vec3 neg_VecSFloat3(vec3 z0) {
40 return - (z0);
41 }
42 mat4 translateBefore4(vec3 z0) {
43 return mat4
44 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
45 }
46 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
47 return (transpose (mat4
48 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
49 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
50 ,normalize (cross (z2,normalize ((z0) - (z1))))))
51 ,ext0_Float_3 (normalize ((z0) - (z1)))
52 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
53 (z0)));
54 }
55 mat4 perspective(float z0,float z1,float z2,float z3) {
56 return mat4
57 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
58 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
59 ((z2) / (2.0)))))))
60 ,0.0
61 ,0.0
62 ,0.0)
63 ,vec4 (0.0
64 ,((2.0) * (z0)) / (((z0) * (tan
65 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
66 ,0.0
67 ,0.0)
68 ,vec4 ((((z3) * ((z0) * (tan
69 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
70 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
71 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
72 ((z2) / (2.0)))))))
73 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
74 ((z2) / (2.0)))))) / (((z0) * (tan
75 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
76 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
77 ,-1.0)
78 ,vec4 (0.0
79 ,0.0
80 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
81 ,0.0));
82 }
83 mat4 rotMatrixY(float z0) {
84 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
85 ,vec4 (0.0,1.0,0.0,0.0)
86 ,vec4 (sin (z0),0.0,cos (z0),0.0)
87 ,vec4 (0.0,0.0,0.0,1.0));
88 }
34 vec4 scale(float z0,vec4 z1) { 89 vec4 scale(float z0,vec4 z1) {
35 return (z1) * (vec4 (z0,z0,z0,1.0)); 90 return (z1) * (vec4 (z0,z0,z0,1.0));
36 } 91 }
37 void main() { 92 void main() {
38 gl_Position = scale (0.5,(MVP) * (vi1)); 93 r1_Float = vec4 (1.0,0.0,0.0,0.0);
94 r2_Float = vec4 (0.0,1.0,0.0,0.0);
95 r3_Float = vec4 (0.0,0.0,1.0,0.0);
96 gl_Position = scale
97 (0.5
98 ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat
99 (vec3 (3.0,1.3,0.3)
100 ,vec3 (0.0,0.0,0.0)
101 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
102 ((0.1308996938995747) * (Time)))) * (vi1));
39 vo1 = vi1; 103 vo1 = vi1;
40 } 104 }
41 """ 105 """
diff --git a/testdata/editor-examples/Texturing.lc b/testdata/editor-examples/Texturing.lc
index d4b17f03..05478d4e 100644
--- a/testdata/editor-examples/Texturing.lc
+++ b/testdata/editor-examples/Texturing.lc
@@ -1,9 +1,13 @@
1makeFrame (projmat :: Mat 4 4 Float) 1makeFrame (time :: Float)
2 (vertexstream :: PrimitiveStream Triangle (Vec 4 Float,Vec 2 Float)) 2 (vertexstream :: PrimitiveStream Triangle (Vec 4 Float,Vec 2 Float))
3 3
4 = imageFrame (emptyDepthImage 1, emptyColorImage navy) 4 = imageFrame (emptyDepthImage 1, emptyColorImage navy)
5 `overlay` fragments 5 `overlay` fragments
6 where 6 where
7 projmat = perspective 0.1 100.0 (30 * pi / 180) 1.0
8 .*. lookat (V3 3.0 1.3 0.3) (V3 0.0 0.0 0.0) (V3 0.0 1.0 0.0)
9 .*. rotMatrixY (pi / 24.0 * time)
10
7 sampler = Sampler LinearFilter MirroredRepeat $ Texture2DSlot "Diffuse" 11 sampler = Sampler LinearFilter MirroredRepeat $ Texture2DSlot "Diffuse"
8 fragments = 12 fragments =
9 vertexstream 13 vertexstream
@@ -13,6 +17,6 @@ makeFrame (projmat :: Mat 4 4 Float)
13 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) 17 & accumulateWith (DepthOp Less True, ColorOp NoBlending (V4 True True True True))
14 18
15main = renderFrame $ 19main = renderFrame $
16 makeFrame (Uniform "MVP") 20 makeFrame (Uniform "Time")
17 (fetch "stream4" (Attribute "position4", Attribute "vertexUV")) 21 (fetch "stream4" (Attribute "position4", Attribute "vertexUV"))
18 22
diff --git a/testdata/editor-examples/Texturing.out b/testdata/editor-examples/Texturing.out
index 6b1b8109..96240bd5 100644
--- a/testdata/editor-examples/Texturing.out
+++ b/testdata/editor-examples/Texturing.out
@@ -16,7 +16,7 @@ Pipeline
16 , programs = 16 , programs =
17 [ Program 17 [ Program
18 { programUniforms = 18 { programUniforms =
19 fromList [ ( "Diffuse" , FTexture2D ) , ( "MVP" , M44F ) ] 19 fromList [ ( "Diffuse" , FTexture2D ) , ( "Time" , Float ) ]
20 , programStreams = 20 , programStreams =
21 fromList 21 fromList
22 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } ) 22 [ ( "vi1" , Parameter { name = "position4" , ty = V4F } )
@@ -30,15 +30,80 @@ Pipeline
30 vec4 texture2D(sampler2D s,vec2 uv) { 30 vec4 texture2D(sampler2D s,vec2 uv) {
31 return texture(s,uv); 31 return texture(s,uv);
32 } 32 }
33 uniform mat4 MVP; 33 uniform float Time;
34 in vec4 vi1; 34 in vec4 vi1;
35 in vec2 vi2; 35 in vec2 vi2;
36 smooth out vec2 vo1; 36 smooth out vec2 vo1;
37 vec4 r1_Float;
38 vec4 r2_Float;
39 vec4 r3_Float;
40 vec4 ext0_Float_3(vec3 z0) {
41 return vec4 ((z0).x,(z0).y,(z0).z,0.0);
42 }
43 vec3 neg_VecSFloat3(vec3 z0) {
44 return - (z0);
45 }
46 mat4 translateBefore4(vec3 z0) {
47 return mat4
48 (r1_Float,r2_Float,r3_Float,vec4 ((z0).x,(z0).y,(z0).z,1.0));
49 }
50 mat4 lookat(vec3 z0,vec3 z1,vec3 z2) {
51 return (transpose (mat4
52 (ext0_Float_3 (normalize (cross (z2,normalize ((z0) - (z1)))))
53 ,ext0_Float_3 (cross (normalize ((z0) - (z1))
54 ,normalize (cross (z2,normalize ((z0) - (z1))))))
55 ,ext0_Float_3 (normalize ((z0) - (z1)))
56 ,vec4 (0.0,0.0,0.0,1.0)))) * (translateBefore4 (neg_VecSFloat3
57 (z0)));
58 }
59 mat4 perspective(float z0,float z1,float z2,float z3) {
60 return mat4
61 (vec4 (((2.0) * (z0)) / (((z3) * ((z0) * (tan
62 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
63 ((z2) / (2.0)))))))
64 ,0.0
65 ,0.0
66 ,0.0)
67 ,vec4 (0.0
68 ,((2.0) * (z0)) / (((z0) * (tan
69 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
70 ,0.0
71 ,0.0)
72 ,vec4 ((((z3) * ((z0) * (tan
73 ((z2) / (2.0))))) + ((0.0) - ((z3) * ((z0) * (tan
74 ((z2) / (2.0))))))) / (((z3) * ((z0) * (tan
75 ((z2) / (2.0))))) - ((0.0) - ((z3) * ((z0) * (tan
76 ((z2) / (2.0)))))))
77 ,(((z0) * (tan ((z2) / (2.0)))) + ((0.0) - ((z0) * (tan
78 ((z2) / (2.0)))))) / (((z0) * (tan
79 ((z2) / (2.0)))) - ((0.0) - ((z0) * (tan ((z2) / (2.0))))))
80 ,(0.0) - (((z1) + (z0)) / ((z1) - (z0)))
81 ,-1.0)
82 ,vec4 (0.0
83 ,0.0
84 ,(0.0) - ((((2.0) * (z1)) * (z0)) / ((z1) - (z0)))
85 ,0.0));
86 }
87 mat4 rotMatrixY(float z0) {
88 return mat4 (vec4 (cos (z0),0.0,(0.0) - (sin (z0)),0.0)
89 ,vec4 (0.0,1.0,0.0,0.0)
90 ,vec4 (sin (z0),0.0,cos (z0),0.0)
91 ,vec4 (0.0,0.0,0.0,1.0));
92 }
37 vec4 scale(float z0,vec4 z1) { 93 vec4 scale(float z0,vec4 z1) {
38 return (z1) * (vec4 (z0,z0,z0,1.0)); 94 return (z1) * (vec4 (z0,z0,z0,1.0));
39 } 95 }
40 void main() { 96 void main() {
41 gl_Position = scale (0.5,(MVP) * (vi1)); 97 r1_Float = vec4 (1.0,0.0,0.0,0.0);
98 r2_Float = vec4 (0.0,1.0,0.0,0.0);
99 r3_Float = vec4 (0.0,0.0,1.0,0.0);
100 gl_Position = scale
101 (0.5
102 ,(((perspective (0.1,100.0,0.5235987755982988,1.0)) * (lookat
103 (vec3 (3.0,1.3,0.3)
104 ,vec3 (0.0,0.0,0.0)
105 ,vec3 (0.0,1.0,0.0)))) * (rotMatrixY
106 ((0.1308996938995747) * (Time)))) * (vi1));
42 vo1 = vi2; 107 vo1 = vi2;
43 } 108 }
44 """ 109 """
@@ -64,7 +129,7 @@ Pipeline
64 , slotStreams = 129 , slotStreams =
65 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] 130 fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ]
66 , slotUniforms = 131 , slotUniforms =
67 fromList [ ( "Diffuse" , FTexture2D ) , ( "MVP" , M44F ) ] 132 fromList [ ( "Diffuse" , FTexture2D ) , ( "Time" , Float ) ]
68 , slotPrimitive = Triangles 133 , slotPrimitive = Triangles
69 , slotPrograms = [ 0 ] 134 , slotPrograms = [ 0 ]
70 } 135 }