summaryrefslogtreecommitdiff
path: root/testdata
diff options
context:
space:
mode:
authorCsaba Hruska <csaba.hruska@gmail.com>2016-02-13 12:58:12 +0100
committerCsaba Hruska <csaba.hruska@gmail.com>2016-02-13 12:58:20 +0100
commitf1368ab5c95229af52f61678fc18ab0fd2c1df86 (patch)
treeeb4e5dd856b397a841343fe237c9992b2d7be2d6 /testdata
parent203b47f9f54090cecb8624d7d2fb2a4e10de2c9b (diff)
fix vertex shader output codegen
Diffstat (limited to 'testdata')
-rw-r--r--testdata/Graphics.out2
-rw-r--r--testdata/HyperbolicParaboloic.out2
-rw-r--r--testdata/Hyperboloid.out2
-rw-r--r--testdata/NewStyle.out2
-rw-r--r--testdata/Spiral.out2
-rw-r--r--testdata/editor-examples/Cube.out2
-rw-r--r--testdata/editor-examples/Heartbeat.lc2
-rw-r--r--testdata/editor-examples/Heartbeat.out2
-rw-r--r--testdata/editor-examples/LambdaCube.lc2
-rw-r--r--testdata/editor-examples/LambdaCube.out2
-rw-r--r--testdata/editor-examples/LambdaCube2.out2
-rw-r--r--testdata/editor-examples/MagicCube.out2
-rw-r--r--testdata/editor-examples/Stripes.out2
-rw-r--r--testdata/editor-examples/Tetrahedron.lc2
-rw-r--r--testdata/editor-examples/Tetrahedron.out2
-rw-r--r--testdata/editor-examples/Texturing.out2
-rw-r--r--testdata/example06.out2
-rw-r--r--testdata/example07.out2
-rw-r--r--testdata/example08.out2
-rw-r--r--testdata/fetcharrays01.out2
-rw-r--r--testdata/fragment03swizzling.out2
-rw-r--r--testdata/fragment04ifthenelse.out2
-rw-r--r--testdata/fragment07let.out2
-rw-r--r--testdata/gfx02.out2
-rw-r--r--testdata/gfx03.out2
-rw-r--r--testdata/gfx04.out2
-rw-r--r--testdata/gfx05.out2
-rw-r--r--testdata/heartbeat01.out2
-rw-r--r--testdata/helloWorld.out2
-rw-r--r--testdata/line01.out2
-rw-r--r--testdata/point01.out2
-rw-r--r--testdata/recursivetexture02.out2
-rw-r--r--testdata/reduce01.out2
-rw-r--r--testdata/reduce05.out2
-rw-r--r--testdata/simple02.out2
-rw-r--r--testdata/simple03.out2
-rw-r--r--testdata/texture01.out2
-rw-r--r--testdata/texture02.out2
-rw-r--r--testdata/uniformparam01.out2
-rw-r--r--testdata/uniformparam02.out2
-rw-r--r--testdata/uniformparam03.out2
41 files changed, 41 insertions, 41 deletions
diff --git a/testdata/Graphics.out b/testdata/Graphics.out
index e2eff7f4..90e57e69 100644
--- a/testdata/Graphics.out
+++ b/testdata/Graphics.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( ( 1.0 ) - ( ( vo1 ).x ),( 1.0 ) - ( ( vo1 ).y ),( 1.0 ) - ( ( vo1 ).z ),1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,0.5 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3562558025",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3562558025",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3562558025 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3562558025,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_47037129",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_47037129",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float time ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = ( ( ( vi3 ) + ( ( vec2 ( 0.0,1.0 ) ) * ( time ) ) ) + ( ( sin ( vec2 ( ( 6.28 ) * ( ( ( ( ( vi1 ).x ) + ( ( vi1 ).z ) ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 1.6 ) ) ) ),( 6.28 ) * ( ( ( ( vi1 ).y ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 1.6 ) ) ) ) ) ) ) * ( 0.25 ) ) ) * ( vec2 ( 4.0,4.0 ) );\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_47037129 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_47037129,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1910997598",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1910997598",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1910997598 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1910997598,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4077187607",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4077187607",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4077187607 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4077187607,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3416962274",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3416962274",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float time ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = ( ( ( vi3 ) + ( ( vec2 ( 0.0,1.0 ) ) * ( time ) ) ) + ( ( sin ( vec2 ( ( 6.28 ) * ( ( ( ( ( vi1 ).x ) + ( ( vi1 ).z ) ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 5.6 ) ) ) ),( 6.28 ) * ( ( ( ( vi1 ).y ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 5.6 ) ) ) ) ) ) ) * ( 0.25 ) ) ) * ( vec2 ( 1.5,1.5 ) );\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3416962274 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3416962274,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4288602201",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4288602201",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4288602201 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4288602201,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3202786139",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3202786139",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3202786139 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3202786139,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4255130505",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4255130505",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4255130505 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4255130505,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_564811775",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_564811775",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_564811775 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_564811775,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2073154888",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2073154888",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2073154888 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2073154888,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2099456856",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2099456856",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2099456856 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2099456856,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1581337759",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1581337759",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1581337759 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1581337759,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1062467595",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1062467595",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1062467595 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1062467595,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2024854890",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2024854890",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2024854890 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2024854890,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1284708166",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1284708166",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1284708166 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1284708166,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2432583247",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2432583247",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2432583247 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2432583247,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1002517541",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1002517541",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1002517541 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1002517541,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2639119078",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2639119078",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2639119078 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2639119078,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3479185666",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3479185666",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3479185666 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3479185666,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3448884269",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3448884269",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3448884269 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3448884269,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1201212243",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1201212243",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1201212243 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1201212243,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3389727963",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3389727963",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3389727963 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3389727963,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3836020895",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3836020895",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3836020895 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3836020895,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_209322640",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_209322640",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_209322640 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_209322640,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2893650486",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2893650486",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2893650486 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2893650486,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3814342582",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3814342582",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3814342582 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3814342582,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4189195777",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4189195777",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4189195777 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4189195777,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2239853403",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2239853403",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2239853403 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2239853403,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2367525081",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2367525081",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2367525081 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2367525081,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2523116863",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2523116863",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2523116863 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2523116863,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2512757607",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2512757607",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2512757607 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2512757607,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4289279309",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4289279309",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4289279309 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4289279309,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2525124732",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2525124732",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2525124732 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2525124732,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3071107621",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3071107621",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3071107621 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3071107621,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3921745736",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3921745736",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3921745736 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3921745736,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3647563961",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3647563961",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3647563961 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3647563961,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3593923076",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3593923076",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3593923076 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3593923076,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1435187472",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1435187472",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1435187472 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1435187472,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1318715778",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1318715778",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1318715778 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1318715778,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_442868841",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_442868841",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_442868841 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_442868841,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2289735512",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2289735512",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2289735512 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2289735512,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3939430064",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3939430064",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3939430064 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3939430064,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3012001075",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3012001075",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3012001075 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3012001075,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3768122504",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3768122504",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3768122504 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3768122504,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2634868983",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2634868983",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2634868983 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2634868983,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3269743316",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3269743316",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3269743316 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3269743316,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3617993418",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3617993418",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3617993418 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3617993418,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1243894392",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1243894392",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1243894392 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1243894392,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2966885788",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2966885788",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2966885788 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2966885788,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1250438154",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1250438154",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1250438154 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1250438154,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2490648334",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2490648334",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2490648334 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2490648334,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3694494180",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3694494180",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 gl_Position ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3694494180 ;\nsmooth in vec2 gl_Position ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3694494180,vo1 ) );\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V4F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "textures/gothic_block/demon_block15fx", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3562558025",FTexture2D),("Tex_47037129",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [2,3,4]},Slot {slotName = "textures/gothic_trim/pitted_rust2_trans", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1910997598",FTexture2D),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [5,6]},Slot {slotName = "textures/gothic_door/skullarch_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3416962274",FTexture2D),("Tex_4077187607",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [7,8,9]},Slot {slotName = "textures/gothic_block/blocks11b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4288602201",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [10,11]},Slot {slotName = "textures/gothic_trim/baseboard09_l2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3202786139",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [12,13]},Slot {slotName = "textures/gothic_door/skull_door_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4255130505",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [14,15]},Slot {slotName = "textures/gothic_wall/supportborder_blue_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_564811775",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [16,17]},Slot {slotName = "textures/gothic_door/km_arena1archfinalc_mid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2073154888",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [18,19]},Slot {slotName = "textures/gothic_trim/pitted_rust2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2099456856",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [20,21]},Slot {slotName = "textures/gothic_floor/metalbridge06", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1581337759",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [22,23]},Slot {slotName = "textures/gothic_trim/metaldemonkillblock", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1062467595",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [24,25]},Slot {slotName = "textures/gothic_door/skullarch_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2024854890",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [26,27]},Slot {slotName = "textures/gothic_door/skull_door_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1284708166",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [28,29]},Slot {slotName = "textures/gothic_wall/iron01_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2432583247",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [30,31]},Slot {slotName = "textures/gothic_trim/baseboard04", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1002517541",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [32,33]},Slot {slotName = "textures/gothic_block/blocks18b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2639119078",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [34,35]},Slot {slotName = "textures/gothic_trim/km_arena1tower4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3479185666",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [36,37]},Slot {slotName = "textures/gothic_door/skullarch_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3448884269",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [38,39]},Slot {slotName = "textures/gothic_door/km_arena1archfinald_bot", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1201212243",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [40,41]},Slot {slotName = "textures/gothic_trim/pitted_rust3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3389727963",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [42,43]},Slot {slotName = "textures/gothic_floor/xstairtop4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3836020895",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [44,45]},Slot {slotName = "textures/gothic_block/killblock_i", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_209322640",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [46,47]},Slot {slotName = "textures/gothic_trim/metalsupsolid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2893650486",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [48,49]},Slot {slotName = "textures/gothic_floor/blocks17floor2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3814342582",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [50,51]},Slot {slotName = "textures/gothic_door/skull_door_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4189195777",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [52,53]},Slot {slotName = "textures/gothic_wall/skull4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2239853403",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [54,55]},Slot {slotName = "textures/gothic_trim/baseboard09_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2367525081",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [56,57]},Slot {slotName = "textures/gothic_block/blocks15", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2523116863",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [58,59]},Slot {slotName = "textures/gothic_trim/baseboard09_o3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2512757607",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [60,61]},Slot {slotName = "textures/gothic_door/skull_door_f", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4289279309",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [62,63]},Slot {slotName = "textures/gothic_wall/supportborder_blue_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2525124732",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [64,65]},Slot {slotName = "textures/gothic_door/km_arena1archfinalc_top", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3071107621",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [66,67]},Slot {slotName = "textures/gothic_floor/metalbridge06broke", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3921745736",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [68,69]},Slot {slotName = "textures/gothic_block/killblock", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3647563961",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [70,71]},Slot {slotName = "textures/gothic_trim/metalsupport4b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3593923076",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [72,73]},Slot {slotName = "textures/gothic_door/xian_tourneyarch_inside2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1435187472",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [74,75]},Slot {slotName = "textures/gothic_door/skull_door_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1318715778",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [76,77]},Slot {slotName = "textures/gothic_wall/iron01_ntech3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_442868841",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [78,79]},Slot {slotName = "textures/gothic_trim/baseboard09_c3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2289735512",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [80,81]},Slot {slotName = "textures/gothic_block/blocks18c_3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3939430064",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [82,83]},Slot {slotName = "textures/gothic_trim/km_arena1tower4_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3012001075",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [84,85]},Slot {slotName = "textures/gothic_door/km_arena1archfinald_mid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3768122504",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [86,87]},Slot {slotName = "textures/gothic_trim/skullsvertgray02b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2634868983",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [88,89]},Slot {slotName = "textures/gothic_floor/xstepborder3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3269743316",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [90,91]},Slot {slotName = "textures/gothic_block/killblock_i4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3617993418",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [92,93]},Slot {slotName = "textures/gothic_trim/pitted_rust", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1243894392",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [94,95]},Slot {slotName = "textures/gothic_floor/largerblock3b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2966885788",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [96,97]},Slot {slotName = "textures/gothic_door/skull_door_d", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1250438154",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [98,99]},Slot {slotName = "textures/gothic_wall/slateroofc", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2490648334",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [100,101]},Slot {slotName = "textures/gothic_trim/baseboard09_e2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3694494180",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [102,103]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 0.0)}],SetProgram 103,SetSamplerUniform "Tex_3694494180" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 50,SetProgram 102,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 50,SetProgram 101,SetSamplerUniform "Tex_2490648334" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 49,SetProgram 100,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 49,SetProgram 99,SetSamplerUniform "Tex_1250438154" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 48,SetProgram 98,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 48,SetProgram 97,SetSamplerUniform "Tex_2966885788" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 47,SetProgram 96,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 47,SetProgram 95,SetSamplerUniform "Tex_1243894392" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 46,SetProgram 94,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 46,SetProgram 93,SetSamplerUniform "Tex_3617993418" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 45,SetProgram 92,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 45,SetProgram 91,SetSamplerUniform "Tex_3269743316" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 44,SetProgram 90,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 44,SetProgram 89,SetSamplerUniform "Tex_2634868983" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 43,SetProgram 88,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 43,SetProgram 87,SetSamplerUniform "Tex_3768122504" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 42,SetProgram 86,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 42,SetProgram 85,SetSamplerUniform "Tex_3012001075" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 41,SetProgram 84,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 41,SetProgram 83,SetSamplerUniform "Tex_3939430064" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 40,SetProgram 82,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 40,SetProgram 81,SetSamplerUniform "Tex_2289735512" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 39,SetProgram 80,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 39,SetProgram 79,SetSamplerUniform "Tex_442868841" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 38,SetProgram 78,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 38,SetProgram 77,SetSamplerUniform "Tex_1318715778" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 37,SetProgram 76,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 37,SetProgram 75,SetSamplerUniform "Tex_1435187472" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 36,SetProgram 74,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 36,SetProgram 73,SetSamplerUniform "Tex_3593923076" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 35,SetProgram 72,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 35,SetProgram 71,SetSamplerUniform "Tex_3647563961" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 34,SetProgram 70,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 34,SetProgram 69,SetSamplerUniform "Tex_3921745736" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 33,SetProgram 68,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 33,SetProgram 67,SetSamplerUniform "Tex_3071107621" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 32,SetProgram 66,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 32,SetProgram 65,SetSamplerUniform "Tex_2525124732" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 31,SetProgram 64,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 31,SetProgram 63,SetSamplerUniform "Tex_4289279309" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 30,SetProgram 62,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 30,SetProgram 61,SetSamplerUniform "Tex_2512757607" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 29,SetProgram 60,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 29,SetProgram 59,SetSamplerUniform "Tex_2523116863" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 28,SetProgram 58,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 28,SetProgram 57,SetSamplerUniform "Tex_2367525081" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 27,SetProgram 56,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 27,SetProgram 55,SetSamplerUniform "Tex_2239853403" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 26,SetProgram 54,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 26,SetProgram 53,SetSamplerUniform "Tex_4189195777" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 25,SetProgram 52,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 25,SetProgram 51,SetSamplerUniform "Tex_3814342582" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 24,SetProgram 50,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 24,SetProgram 49,SetSamplerUniform "Tex_2893650486" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 23,SetProgram 48,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 23,SetProgram 47,SetSamplerUniform "Tex_209322640" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 22,SetProgram 46,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 22,SetProgram 45,SetSamplerUniform "Tex_3836020895" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 21,SetProgram 44,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 21,SetProgram 43,SetSamplerUniform "Tex_3389727963" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 20,SetProgram 42,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 20,SetProgram 41,SetSamplerUniform "Tex_1201212243" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 19,SetProgram 40,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 19,SetProgram 39,SetSamplerUniform "Tex_3448884269" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 18,SetProgram 38,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 18,SetProgram 37,SetSamplerUniform "Tex_3479185666" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 17,SetProgram 36,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 17,SetProgram 35,SetSamplerUniform "Tex_2639119078" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 16,SetProgram 34,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 16,SetProgram 33,SetSamplerUniform "Tex_1002517541" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 15,SetProgram 32,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 15,SetProgram 31,SetSamplerUniform "Tex_2432583247" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 14,SetProgram 30,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 14,SetProgram 29,SetSamplerUniform "Tex_1284708166" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 13,SetProgram 28,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 13,SetProgram 27,SetSamplerUniform "Tex_2024854890" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 12,SetProgram 26,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 12,SetProgram 25,SetSamplerUniform "Tex_1062467595" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 11,SetProgram 24,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 11,SetProgram 23,SetSamplerUniform "Tex_1581337759" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 10,SetProgram 22,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 10,SetProgram 21,SetSamplerUniform "Tex_2099456856" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 9,SetProgram 20,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 9,SetProgram 19,SetSamplerUniform "Tex_2073154888" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 8,SetProgram 18,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 8,SetProgram 17,SetSamplerUniform "Tex_564811775" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 7,SetProgram 16,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 7,SetProgram 15,SetSamplerUniform "Tex_4255130505" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 6,SetProgram 14,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 6,SetProgram 13,SetSamplerUniform "Tex_3202786139" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 5,SetProgram 12,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 5,SetProgram 11,SetSamplerUniform "Tex_4288602201" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 4,SetProgram 10,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 4,SetProgram 9,SetSamplerUniform "Tex_3416962274" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 8,SetSamplerUniform "Tex_4077187607" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 7,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 6,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 2,SetProgram 5,SetSamplerUniform "Tex_1910997598" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 2,SetProgram 4,SetSamplerUniform "Tex_47037129" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 3,SetSamplerUniform "Tex_3562558025" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 2,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = OneMinusDstAlpha, alphaFSrc = DstColor, alphaFDst = OneMinusDstAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = Min, colorFSrc = One, colorFDst = One, alphaFSrc = One, alphaFDst = One, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 1.0) NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( ( 1.0 ) - ( ( vo1 ).x ),( 1.0 ) - ( ( vo1 ).y ),( 1.0 ) - ( ( vo1 ).z ),1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,0.5 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3562558025",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3562558025",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3562558025 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3562558025,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_47037129",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_47037129",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float time ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = ( ( ( vi3 ) + ( ( vec2 ( 0.0,1.0 ) ) * ( time ) ) ) + ( ( sin ( vec2 ( ( 6.28 ) * ( ( ( ( ( vi1 ).x ) + ( ( vi1 ).z ) ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 1.6 ) ) ) ),( 6.28 ) * ( ( ( ( vi1 ).y ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 1.6 ) ) ) ) ) ) ) * ( 0.25 ) ) ) * ( vec2 ( 4.0,4.0 ) );\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_47037129 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_47037129,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1910997598",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1910997598",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1910997598 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1910997598,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4077187607",FTexture2D),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4077187607",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4077187607 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4077187607,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3416962274",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3416962274",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float time ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = ( ( ( vi3 ) + ( ( vec2 ( 0.0,1.0 ) ) * ( time ) ) ) + ( ( sin ( vec2 ( ( 6.28 ) * ( ( ( ( ( vi1 ).x ) + ( ( vi1 ).z ) ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 5.6 ) ) ) ),( 6.28 ) * ( ( ( ( vi1 ).y ) * ( 9.765625e-4 ) ) + ( ( 0.0 ) + ( ( time ) * ( 5.6 ) ) ) ) ) ) ) * ( 0.25 ) ) ) * ( vec2 ( 1.5,1.5 ) );\nvo2 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3416962274 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3416962274,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4288602201",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4288602201",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4288602201 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4288602201,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3202786139",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3202786139",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3202786139 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3202786139,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4255130505",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4255130505",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4255130505 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4255130505,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_564811775",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_564811775",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_564811775 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_564811775,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2073154888",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2073154888",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2073154888 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2073154888,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2099456856",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2099456856",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2099456856 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2099456856,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1581337759",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1581337759",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1581337759 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1581337759,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1062467595",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1062467595",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1062467595 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1062467595,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2024854890",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2024854890",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2024854890 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2024854890,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1284708166",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1284708166",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1284708166 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1284708166,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2432583247",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2432583247",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2432583247 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2432583247,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1002517541",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1002517541",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1002517541 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1002517541,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2639119078",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2639119078",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2639119078 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2639119078,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3479185666",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3479185666",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3479185666 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3479185666,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3448884269",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3448884269",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3448884269 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3448884269,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1201212243",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1201212243",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1201212243 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1201212243,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3389727963",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3389727963",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3389727963 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3389727963,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3836020895",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3836020895",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3836020895 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3836020895,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_209322640",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_209322640",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_209322640 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_209322640,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2893650486",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2893650486",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2893650486 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2893650486,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3814342582",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3814342582",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3814342582 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3814342582,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4189195777",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4189195777",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4189195777 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4189195777,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2239853403",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2239853403",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2239853403 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2239853403,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2367525081",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2367525081",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2367525081 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2367525081,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2523116863",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2523116863",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2523116863 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2523116863,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2512757607",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2512757607",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2512757607 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2512757607,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_4289279309",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_4289279309",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_4289279309 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_4289279309,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2525124732",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2525124732",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2525124732 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2525124732,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3071107621",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3071107621",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3071107621 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3071107621,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3921745736",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3921745736",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3921745736 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3921745736,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3647563961",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3647563961",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3647563961 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3647563961,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3593923076",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3593923076",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3593923076 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3593923076,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1435187472",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1435187472",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1435187472 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1435187472,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1318715778",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1318715778",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1318715778 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1318715778,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_442868841",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_442868841",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_442868841 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_442868841,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2289735512",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2289735512",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2289735512 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2289735512,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3939430064",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3939430064",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3939430064 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3939430064,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3012001075",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3012001075",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3012001075 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3012001075,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3768122504",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3768122504",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3768122504 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3768122504,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2634868983",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2634868983",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2634868983 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2634868983,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3269743316",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3269743316",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3269743316 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3269743316,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3617993418",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3617993418",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3617993418 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3617993418,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1243894392",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1243894392",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1243894392 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1243894392,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2966885788",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2966885788",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2966885788 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2966885788,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_1250438154",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_1250438154",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_1250438154 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_1250438154,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_2490648334",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_2490648334",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_2490648334 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_2490648334,vo1 ) );\n}\n"},Program {programUniforms = fromList [("LightMap",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("LightMap",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi4;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D LightMap ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( LightMap,vo1 ) );\n}\n"},Program {programUniforms = fromList [("Tex_3694494180",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F}),("vi3",Parameter {name = "diffuseUV", ty = V2F}),("vi4",Parameter {name = "lightmapUV", ty = V2F}),("vi5",Parameter {name = "color", ty = V4F})], programInTextures = fromList [("Tex_3694494180",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float identityLight ;\nuniform mat4 viewProj ;\nuniform mat4 worldMat ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nin vec2 vi3 ;\nin vec2 vi4 ;\nin vec4 vi5 ;\nsmooth out vec2 vo1 ;\nsmooth out vec4 vo2 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( ( worldMat ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) );\nvo1 = vi3;\nvo2 = vec4 ( identityLight,identityLight,identityLight,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Tex_3694494180 ;\nsmooth in vec2 vo1 ;\nsmooth in vec4 vo2 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo2 ) * ( texture2D ( Tex_3694494180,vo1 ) );\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V4F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "textures/gothic_block/demon_block15fx", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3562558025",FTexture2D),("Tex_47037129",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [2,3,4]},Slot {slotName = "textures/gothic_trim/pitted_rust2_trans", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1910997598",FTexture2D),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [5,6]},Slot {slotName = "textures/gothic_door/skullarch_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3416962274",FTexture2D),("Tex_4077187607",FTexture2D),("time",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [7,8,9]},Slot {slotName = "textures/gothic_block/blocks11b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4288602201",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [10,11]},Slot {slotName = "textures/gothic_trim/baseboard09_l2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3202786139",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [12,13]},Slot {slotName = "textures/gothic_door/skull_door_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4255130505",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [14,15]},Slot {slotName = "textures/gothic_wall/supportborder_blue_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_564811775",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [16,17]},Slot {slotName = "textures/gothic_door/km_arena1archfinalc_mid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2073154888",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [18,19]},Slot {slotName = "textures/gothic_trim/pitted_rust2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2099456856",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [20,21]},Slot {slotName = "textures/gothic_floor/metalbridge06", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1581337759",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [22,23]},Slot {slotName = "textures/gothic_trim/metaldemonkillblock", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1062467595",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [24,25]},Slot {slotName = "textures/gothic_door/skullarch_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2024854890",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [26,27]},Slot {slotName = "textures/gothic_door/skull_door_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1284708166",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [28,29]},Slot {slotName = "textures/gothic_wall/iron01_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2432583247",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [30,31]},Slot {slotName = "textures/gothic_trim/baseboard04", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1002517541",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [32,33]},Slot {slotName = "textures/gothic_block/blocks18b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2639119078",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [34,35]},Slot {slotName = "textures/gothic_trim/km_arena1tower4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3479185666",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [36,37]},Slot {slotName = "textures/gothic_door/skullarch_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3448884269",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [38,39]},Slot {slotName = "textures/gothic_door/km_arena1archfinald_bot", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1201212243",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [40,41]},Slot {slotName = "textures/gothic_trim/pitted_rust3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3389727963",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [42,43]},Slot {slotName = "textures/gothic_floor/xstairtop4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3836020895",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [44,45]},Slot {slotName = "textures/gothic_block/killblock_i", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_209322640",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [46,47]},Slot {slotName = "textures/gothic_trim/metalsupsolid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2893650486",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [48,49]},Slot {slotName = "textures/gothic_floor/blocks17floor2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3814342582",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [50,51]},Slot {slotName = "textures/gothic_door/skull_door_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4189195777",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [52,53]},Slot {slotName = "textures/gothic_wall/skull4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2239853403",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [54,55]},Slot {slotName = "textures/gothic_trim/baseboard09_e", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2367525081",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [56,57]},Slot {slotName = "textures/gothic_block/blocks15", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2523116863",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [58,59]},Slot {slotName = "textures/gothic_trim/baseboard09_o3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2512757607",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [60,61]},Slot {slotName = "textures/gothic_door/skull_door_f", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_4289279309",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [62,63]},Slot {slotName = "textures/gothic_wall/supportborder_blue_c", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2525124732",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [64,65]},Slot {slotName = "textures/gothic_door/km_arena1archfinalc_top", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3071107621",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [66,67]},Slot {slotName = "textures/gothic_floor/metalbridge06broke", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3921745736",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [68,69]},Slot {slotName = "textures/gothic_block/killblock", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3647563961",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [70,71]},Slot {slotName = "textures/gothic_trim/metalsupport4b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3593923076",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [72,73]},Slot {slotName = "textures/gothic_door/xian_tourneyarch_inside2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1435187472",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [74,75]},Slot {slotName = "textures/gothic_door/skull_door_b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1318715778",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [76,77]},Slot {slotName = "textures/gothic_wall/iron01_ntech3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_442868841",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [78,79]},Slot {slotName = "textures/gothic_trim/baseboard09_c3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2289735512",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [80,81]},Slot {slotName = "textures/gothic_block/blocks18c_3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3939430064",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [82,83]},Slot {slotName = "textures/gothic_trim/km_arena1tower4_a", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3012001075",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [84,85]},Slot {slotName = "textures/gothic_door/km_arena1archfinald_mid", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3768122504",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [86,87]},Slot {slotName = "textures/gothic_trim/skullsvertgray02b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2634868983",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [88,89]},Slot {slotName = "textures/gothic_floor/xstepborder3", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3269743316",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [90,91]},Slot {slotName = "textures/gothic_block/killblock_i4", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3617993418",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [92,93]},Slot {slotName = "textures/gothic_trim/pitted_rust", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1243894392",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [94,95]},Slot {slotName = "textures/gothic_floor/largerblock3b", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2966885788",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [96,97]},Slot {slotName = "textures/gothic_door/skull_door_d", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_1250438154",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [98,99]},Slot {slotName = "textures/gothic_wall/slateroofc", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_2490648334",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [100,101]},Slot {slotName = "textures/gothic_trim/baseboard09_e2", slotStreams = fromList [("color",V4F),("diffuseUV",V2F),("lightmapUV",V2F),("normal",V3F),("position",V3F)], slotUniforms = fromList [("LightMap",FTexture2D),("Tex_3694494180",FTexture2D),("identityLight",Float),("viewProj",M44F),("worldMat",M44F)], slotPrimitive = Triangles, slotPrograms = [102,103]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.0 0.0)}],SetProgram 103,SetSamplerUniform "Tex_3694494180" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 50,SetProgram 102,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 50,SetProgram 101,SetSamplerUniform "Tex_2490648334" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 49,SetProgram 100,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 49,SetProgram 99,SetSamplerUniform "Tex_1250438154" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 48,SetProgram 98,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 48,SetProgram 97,SetSamplerUniform "Tex_2966885788" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 47,SetProgram 96,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 47,SetProgram 95,SetSamplerUniform "Tex_1243894392" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 46,SetProgram 94,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 46,SetProgram 93,SetSamplerUniform "Tex_3617993418" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 45,SetProgram 92,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 45,SetProgram 91,SetSamplerUniform "Tex_3269743316" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 44,SetProgram 90,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 44,SetProgram 89,SetSamplerUniform "Tex_2634868983" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 43,SetProgram 88,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 43,SetProgram 87,SetSamplerUniform "Tex_3768122504" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 42,SetProgram 86,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 42,SetProgram 85,SetSamplerUniform "Tex_3012001075" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 41,SetProgram 84,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 41,SetProgram 83,SetSamplerUniform "Tex_3939430064" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 40,SetProgram 82,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 40,SetProgram 81,SetSamplerUniform "Tex_2289735512" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 39,SetProgram 80,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 39,SetProgram 79,SetSamplerUniform "Tex_442868841" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 38,SetProgram 78,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 38,SetProgram 77,SetSamplerUniform "Tex_1318715778" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 37,SetProgram 76,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 37,SetProgram 75,SetSamplerUniform "Tex_1435187472" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 36,SetProgram 74,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 36,SetProgram 73,SetSamplerUniform "Tex_3593923076" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 35,SetProgram 72,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 35,SetProgram 71,SetSamplerUniform "Tex_3647563961" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 34,SetProgram 70,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 34,SetProgram 69,SetSamplerUniform "Tex_3921745736" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 33,SetProgram 68,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 33,SetProgram 67,SetSamplerUniform "Tex_3071107621" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 32,SetProgram 66,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 32,SetProgram 65,SetSamplerUniform "Tex_2525124732" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 31,SetProgram 64,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 31,SetProgram 63,SetSamplerUniform "Tex_4289279309" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 30,SetProgram 62,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 30,SetProgram 61,SetSamplerUniform "Tex_2512757607" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 29,SetProgram 60,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 29,SetProgram 59,SetSamplerUniform "Tex_2523116863" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 28,SetProgram 58,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 28,SetProgram 57,SetSamplerUniform "Tex_2367525081" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 27,SetProgram 56,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 27,SetProgram 55,SetSamplerUniform "Tex_2239853403" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 26,SetProgram 54,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 26,SetProgram 53,SetSamplerUniform "Tex_4189195777" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 25,SetProgram 52,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 25,SetProgram 51,SetSamplerUniform "Tex_3814342582" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 24,SetProgram 50,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 24,SetProgram 49,SetSamplerUniform "Tex_2893650486" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 23,SetProgram 48,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 23,SetProgram 47,SetSamplerUniform "Tex_209322640" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 22,SetProgram 46,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 22,SetProgram 45,SetSamplerUniform "Tex_3836020895" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 21,SetProgram 44,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 21,SetProgram 43,SetSamplerUniform "Tex_3389727963" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 20,SetProgram 42,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 20,SetProgram 41,SetSamplerUniform "Tex_1201212243" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 19,SetProgram 40,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 19,SetProgram 39,SetSamplerUniform "Tex_3448884269" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 18,SetProgram 38,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 18,SetProgram 37,SetSamplerUniform "Tex_3479185666" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 17,SetProgram 36,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 17,SetProgram 35,SetSamplerUniform "Tex_2639119078" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 16,SetProgram 34,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 16,SetProgram 33,SetSamplerUniform "Tex_1002517541" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 15,SetProgram 32,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 15,SetProgram 31,SetSamplerUniform "Tex_2432583247" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 14,SetProgram 30,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 14,SetProgram 29,SetSamplerUniform "Tex_1284708166" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 13,SetProgram 28,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 13,SetProgram 27,SetSamplerUniform "Tex_2024854890" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 12,SetProgram 26,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 12,SetProgram 25,SetSamplerUniform "Tex_1062467595" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 11,SetProgram 24,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 11,SetProgram 23,SetSamplerUniform "Tex_1581337759" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 10,SetProgram 22,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 10,SetProgram 21,SetSamplerUniform "Tex_2099456856" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 9,SetProgram 20,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 9,SetProgram 19,SetSamplerUniform "Tex_2073154888" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 8,SetProgram 18,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 8,SetProgram 17,SetSamplerUniform "Tex_564811775" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 7,SetProgram 16,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 7,SetProgram 15,SetSamplerUniform "Tex_4255130505" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 6,SetProgram 14,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 6,SetProgram 13,SetSamplerUniform "Tex_3202786139" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 5,SetProgram 12,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 5,SetProgram 11,SetSamplerUniform "Tex_4288602201" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 4,SetProgram 10,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 4,SetProgram 9,SetSamplerUniform "Tex_3416962274" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 8,SetSamplerUniform "Tex_4077187607" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 7,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 3,SetProgram 6,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 2,SetProgram 5,SetSamplerUniform "Tex_1910997598" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = Zero, alphaFSrc = DstColor, alphaFDst = Zero, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 2,SetProgram 4,SetSamplerUniform "Tex_47037129" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 3,SetSamplerUniform "Tex_3562558025" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 2,SetSamplerUniform "LightMap" 0,SetRasterContext (TriangleCtx (CullFront CCW) PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = DstColor, colorFDst = OneMinusDstAlpha, alphaFSrc = DstColor, alphaFDst = OneMinusDstAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = Min, colorFSrc = One, colorFDst = One, alphaFSrc = One, alphaFDst = One, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 1.0) NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/HyperbolicParaboloic.out b/testdata/HyperbolicParaboloic.out
index aad883d3..dced508d 100644
--- a/testdata/HyperbolicParaboloic.out
+++ b/testdata/HyperbolicParaboloic.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( ( vi1 ).x ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( ( vi1 ).x ) ) * ( ( vi1 ).y ),( ( Mouse ).y ) * ( ( vi1 ).y ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,-3.0,-3.0,0.0,3.0,-3.0,0.0,-3.0,-2.0,0.0,3.0,-2.0,0.0,-3.0,-1.0,0.0,3.0,-1.0,0.0,-3.0,0.0,0.0,3.0,0.0,0.0,-3.0,1.0,0.0,3.0,1.0,0.0,-3.0,2.0,0.0,3.0,2.0,0.0,-3.0,3.0,0.0,3.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( Mouse ).y ) * ( ( vi1 ).x ),( ( ( 0.5 ) * ( ( Mouse ).x ) ) * ( ( vi1 ).x ) ) * ( ( vi1 ).y ),( ( Mouse ).y ) * ( ( vi1 ).y ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,-3.0,-3.0,0.0,3.0,-3.0,0.0,-3.0,-2.0,0.0,3.0,-2.0,0.0,-3.0,-1.0,0.0,3.0,-1.0,0.0,-3.0,0.0,0.0,3.0,0.0,0.0,-3.0,1.0,0.0,3.0,1.0,0.0,-3.0,2.0,0.0,3.0,2.0,0.0,-3.0,3.0,0.0,3.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/Hyperboloid.out b/testdata/Hyperboloid.out
index 425f877d..227257bc 100644
--- a/testdata/Hyperboloid.out
+++ b/testdata/Hyperboloid.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( ( 0.7 ) * ( ( vi1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( vi1 ).y ) ) ) ),( vi1 ).y,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( ( 0.7 ) * ( ( vi1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( vi1 ).y ) ) ) ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,-3.0,0.0,-5.0,3.0,0.0,-4.0,-3.0,0.0,-4.0,3.0,0.0,-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,4.0,-3.0,0.0,4.0,3.0,0.0,5.0,-3.0,0.0,5.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( ( 2.0 ) * ( ( Mouse ).y ) ) * ( sin ( ( ( 0.7 ) * ( ( vi1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( vi1 ).y ) ) ) ),( vi1 ).y,( ( 2.0 ) * ( ( Mouse ).y ) ) * ( cos ( ( ( 0.7 ) * ( ( vi1 ).x ) ) + ( ( ( Mouse ).x ) * ( ( vi1 ).y ) ) ) ),1.0 ) ) ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,-3.0,0.0,-5.0,3.0,0.0,-4.0,-3.0,0.0,-4.0,3.0,0.0,-3.0,-3.0,0.0,-3.0,3.0,0.0,-2.0,-3.0,0.0,-2.0,3.0,0.0,-1.0,-3.0,0.0,-1.0,3.0,0.0,0.0,-3.0,0.0,0.0,3.0,0.0,1.0,-3.0,0.0,1.0,3.0,0.0,2.0,-3.0,0.0,2.0,3.0,0.0,3.0,-3.0,0.0,3.0,3.0,0.0,4.0,-3.0,0.0,4.0,3.0,0.0,5.0,-3.0,0.0,5.0,3.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/NewStyle.out b/testdata/NewStyle.out
index df24cbc2..9e876269 100644
--- a/testdata/NewStyle.out
+++ b/testdata/NewStyle.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.2 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.2 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/Spiral.out b/testdata/Spiral.out
index 92f6ea96..be099700 100644
--- a/testdata/Spiral.out
+++ b/testdata/Spiral.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( vi1 ).x ) ) ) * ( sin ( ( 0.9 ) * ( ( vi1 ).x ) ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( vi1 ).x ) ) ) * ( cos ( ( 0.9 ) * ( ( vi1 ).x ) ) ),( ( Mouse ).y ) * ( ( 0.9 ) * ( ( vi1 ).x ) ),1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,0.0,0.0,-4.0,0.0,0.0,-4.0,0.0,0.0,-3.0,0.0,0.0,-3.0,0.0,0.0,-2.0,0.0,0.0,-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,4.0,0.0,0.0,5.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Mouse",V2F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform vec2 Mouse ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( vi1 ).x ) ) ) * ( sin ( ( 0.9 ) * ( ( vi1 ).x ) ) ),( exp ( ( ( ( Mouse ).x ) - ( 0.5 ) ) * ( ( vi1 ).x ) ) ) * ( cos ( ( 0.9 ) * ( ( vi1 ).x ) ) ),( ( Mouse ).y ) * ( ( 0.9 ) * ( ( vi1 ).x ) ),1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-5.0,0.0,0.0,-4.0,0.0,0.0,-4.0,0.0,0.0,-3.0,0.0,0.0,-3.0,0.0,0.0,-2.0,0.0,0.0,-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0,3.0,0.0,0.0,4.0,0.0,0.0,4.0,0.0,0.0,5.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 1.0 1.0 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/Cube.out b/testdata/editor-examples/Cube.out
index 0d0e6e12..11ac3c64 100644
--- a/testdata/editor-examples/Cube.out
+++ b/testdata/editor-examples/Cube.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/Heartbeat.lc b/testdata/editor-examples/Heartbeat.lc
index fa7def20..ec42f3d1 100644
--- a/testdata/editor-examples/Heartbeat.lc
+++ b/testdata/editor-examples/Heartbeat.lc
@@ -13,7 +13,7 @@ cubeVertexStream = fetch "stream4" Triangle (Attribute "position4" :: Vec 4 Floa
13 13
14texImage = PrjImageColor $ 14texImage = PrjImageColor $
15 cubeVertexStream 15 cubeVertexStream
16 & mapPrimitives (\(x, y) -> (scale 1.0 x, y)) 16 & mapPrimitives (\(x, y) -> (scale 1.0 x, V2 y%x (1-y%y)))
17 & rasterize 17 & rasterize
18 & mapFragments (\xy -> let 18 & mapFragments (\xy -> let
19 x = xy%x - 0.85 19 x = xy%x - 0.85
diff --git a/testdata/editor-examples/Heartbeat.out b/testdata/editor-examples/Heartbeat.out
index 5525f041..29f89240 100644
--- a/testdata/editor-examples/Heartbeat.out
+++ b/testdata/editor-examples/Heartbeat.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vec2 ( ( vi2 ).x,( 1.0 ) - ( ( vi2 ).y ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/LambdaCube.lc b/testdata/editor-examples/LambdaCube.lc
index 8cd62219..bf0e36b3 100644
--- a/testdata/editor-examples/LambdaCube.lc
+++ b/testdata/editor-examples/LambdaCube.lc
@@ -1,8 +1,8 @@
1time = Uniform "Time" :: Float
1deg45 = 0.78539816339 2deg45 = 0.78539816339
2deg60 = 1.0471975512 3deg60 = 1.0471975512
3deg360 = 6.28318530718 4deg360 = 6.28318530718
4 5
5time = Uniform "Time" :: Float
6phase = fract (time *! 0.2) 6phase = fract (time *! 0.2)
7smoothPhase = phase *! phase *! (3 -! 2 *! phase) 7smoothPhase = phase *! phase *! (3 -! 2 *! phase)
8 8
diff --git a/testdata/editor-examples/LambdaCube.out b/testdata/editor-examples/LambdaCube.out
index a385d90d..df9ea2d2 100644
--- a/testdata/editor-examples/LambdaCube.out
+++ b/testdata/editor-examples/LambdaCube.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( mat4 ( vec4 ( cos ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0,( 0.0 ) - ( sin ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0,cos ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( 2.35619449017 ),sin ( 2.35619449017 ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( 2.35619449017 ) ),cos ( 2.35619449017 ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) ) * ( vec4 ( ( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( abs ( ( vo1 ).x ) ) > ( 0.99999 ) ? vec4 ( ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) * ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ),1.0,( ( 1.0 ) - ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) ) * ( ( 1.0 ) - ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) ),( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).y ) > ( 0.75 ) ? 0.0 : 1.0 ) : ( abs ( ( vo1 ).y ) ) > ( 0.99999 ) ? vec4 ( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( -0.5,0.5 ) ) ) + ( 0.4 ),1.0,0.0,( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 1.0,-1.0 ) ) ) > ( -0.25 ) ) && ( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 1.0,-1.0 ) ) ) < ( 0.0 ) ) ? 0.0 : 1.0 ) : ( abs ( ( vo1 ).z ) ) > ( 0.99999 ) ? vec4 ( 0.0,1.0,( dot ( ( ( ( ( vo1 ).xy ) * ( sign ( ( vo1 ).z ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 0.5,-0.5 ) ) ) + ( 0.4 ),( ( ( ( ( ( vo1 ).xy ) * ( sign ( ( vo1 ).z ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).y ) > ( 0.75 ) ? 0.0 : 1.0 ) : vec4 ( 0.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( mat4 ( vec4 ( cos ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0,( 0.0 ) - ( sin ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0,cos ( ( 4.1 ) + ( ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) * ( 6.28318530718 ) ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( 2.35619449017 ),sin ( 2.35619449017 ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( 2.35619449017 ) ),cos ( 2.35619449017 ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) ) * ( vec4 ( ( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),( 0.2 ) + ( ( abs ( ( 0.5 ) - ( ( ( fract ( ( Time ) * ( 0.2 ) ) ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) * ( ( 3.0 ) - ( ( 2.0 ) * ( fract ( ( Time ) * ( 0.2 ) ) ) ) ) ) ) ) * ( 0.6 ) ),1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( abs ( ( vo1 ).x ) ) > ( 0.99999 ) ? vec4 ( ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) * ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ),1.0,( ( 1.0 ) - ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) ) * ( ( 1.0 ) - ( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).x ) ),( ( ( ( ( ( vo1 ).yz ) * ( sign ( ( vo1 ).x ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).y ) > ( 0.75 ) ? 0.0 : 1.0 ) : ( abs ( ( vo1 ).y ) ) > ( 0.99999 ) ? vec4 ( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( -0.5,0.5 ) ) ) + ( 0.4 ),1.0,0.0,( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 1.0,-1.0 ) ) ) > ( -0.25 ) ) && ( ( dot ( ( ( ( ( vo1 ).zx ) * ( sign ( ( vo1 ).y ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 1.0,-1.0 ) ) ) < ( 0.0 ) ) ? 0.0 : 1.0 ) : ( abs ( ( vo1 ).z ) ) > ( 0.99999 ) ? vec4 ( 0.0,1.0,( dot ( ( ( ( ( vo1 ).xy ) * ( sign ( ( vo1 ).z ) ) ) * ( 0.5 ) ) + ( 0.5 ),vec2 ( 0.5,-0.5 ) ) ) + ( 0.4 ),( ( ( ( ( ( vo1 ).xy ) * ( sign ( ( vo1 ).z ) ) ) * ( 0.5 ) ) + ( 0.5 ) ).y ) > ( 0.75 ) ? 0.0 : 1.0 ) : vec4 ( 0.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/LambdaCube2.out b/testdata/editor-examples/LambdaCube2.out
index 551a552e..5fb253d5 100644
--- a/testdata/editor-examples/LambdaCube2.out
+++ b/testdata/editor-examples/LambdaCube2.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).x ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).x ) ) + ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).y ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).y ) ) ) + ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).z ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).z ) ) ) > ( abs ( ( 3.0 ) * ( sin ( ( 1.0 ) * ( Time ) ) ) ) ) ) ) ) ))) discard;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) + ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) + ( ( vo1 ).z ) ) > ( 1.0 ) ) || ( ( abs ( ( ( ( ( vo1 ).y ) - ( ( vo1 ).x ) ) - ( ( vo1 ).z ) ) - ( 1.0 ) ) ) > ( 0.25 ) ) ) && ( ( ( ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).x ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).x ) ) + ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).y ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).y ) ) ) + ( ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).z ) * ( ( sin ( ( vo1 ) * ( 20.0 ) ) ).z ) ) ) > ( abs ( ( 3.0 ) * ( sin ( ( 1.0 ) * ( Time ) ) ) ) ) ) ) ) ))) discard;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/MagicCube.out b/testdata/editor-examples/MagicCube.out
index 11e0d049..570e1f5a 100644
--- a/testdata/editor-examples/MagicCube.out
+++ b/testdata/editor-examples/MagicCube.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( ( ( ( ( vo1 ).y ) * ( ( vo1 ).y ) ) + ( ( ( vo1 ).x ) * ( ( vo1 ).x ) ) ) + ( ( ( vo1 ).z ) * ( ( vo1 ).z ) ) ) > ( 1.5 ))) discard;\nf0 = ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).w ) ) * ( ( mod ( ( ( Time ) + ( sin ( Time ) ) ) + ( sin ( ( 1.1 ) * ( Time ) ) ),4.0 ) ) * ( 2.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( ( ( ( ( vo1 ).y ) * ( ( vo1 ).y ) ) + ( ( ( vo1 ).x ) * ( ( vo1 ).x ) ) ) + ( ( ( vo1 ).z ) * ( ( vo1 ).z ) ) ) > ( 1.5 ))) discard;\nf0 = ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( vec4 ( ( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).x,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).y,( ( vec3 ( 0.5,0.5,0.5 ) ) + ( ( cos ( ( ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).xyz ) + ( vec3 ( 0.0,0.1,0.2 ) ) ) * ( 6.28318 ) ) ) * ( 0.5 ) ) ).z,( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( Time ),sin ( Time ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).w ) ) * ( ( 1.0 ) + ( ( 0.5 ) * ( sin ( Time ) ) ) ) ) ) ).w ) ) * ( ( mod ( ( ( Time ) + ( sin ( Time ) ) ) + ( sin ( ( 1.1 ) * ( Time ) ) ),4.0 ) ) * ( 2.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/Stripes.out b/testdata/editor-examples/Stripes.out
index c3979ea6..db8f26b6 100644
--- a/testdata/editor-examples/Stripes.out
+++ b/testdata/editor-examples/Stripes.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.9,0.9,0.9,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.9 ) ),sin ( ( Time ) * ( 0.9 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.9 ) ) ),cos ( ( Time ) * ( 0.9 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 9.999999999999998e-2,9.999999999999998e-2,9.999999999999998e-2,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.8,0.8,0.8,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.8 ) ),sin ( ( Time ) * ( 0.8 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.8 ) ) ),cos ( ( Time ) * ( 0.8 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.19999999999999996,0.19999999999999996,0.19999999999999996,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.7 ) ),sin ( ( Time ) * ( 0.7 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.7 ) ) ),cos ( ( Time ) * ( 0.7 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.30000000000000004,0.30000000000000004,0.30000000000000004,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.6,0.6,0.6,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.6 ) ),sin ( ( Time ) * ( 0.6 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.6 ) ) ),cos ( ( Time ) * ( 0.6 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.4,0.4,0.4,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.5,0.5,0.5,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.4,0.4,0.4,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.4 ) ),sin ( ( Time ) * ( 0.4 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.4 ) ) ),cos ( ( Time ) * ( 0.4 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.6,0.6,0.6,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.3,0.3,0.3,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.7,0.7,0.7,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.2,0.2,0.2,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.2 ) ),sin ( ( Time ) * ( 0.2 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.2 ) ) ),cos ( ( Time ) * ( 0.2 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.8,0.8,0.8,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.1 ) ),sin ( ( Time ) * ( 0.1 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.1 ) ) ),cos ( ( Time ) * ( 0.1 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.9,0.9,0.9,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8,9]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 9,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.9,0.9,0.9,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.9 ) ),sin ( ( Time ) * ( 0.9 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.9 ) ) ),cos ( ( Time ) * ( 0.9 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 9.999999999999998e-2,9.999999999999998e-2,9.999999999999998e-2,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.8,0.8,0.8,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.8 ) ),sin ( ( Time ) * ( 0.8 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.8 ) ) ),cos ( ( Time ) * ( 0.8 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.19999999999999996,0.19999999999999996,0.19999999999999996,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.7 ) ),sin ( ( Time ) * ( 0.7 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.7 ) ) ),cos ( ( Time ) * ( 0.7 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.30000000000000004,0.30000000000000004,0.30000000000000004,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.6,0.6,0.6,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.6 ) ),sin ( ( Time ) * ( 0.6 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.6 ) ) ),cos ( ( Time ) * ( 0.6 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.4,0.4,0.4,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.5,0.5,0.5,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.4,0.4,0.4,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.4 ) ),sin ( ( Time ) * ( 0.4 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.4 ) ) ),cos ( ( Time ) * ( 0.4 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.6,0.6,0.6,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.3,0.3,0.3,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.7,0.7,0.7,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.2,0.2,0.2,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.2 ) ),sin ( ( Time ) * ( 0.2 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.2 ) ) ),cos ( ( Time ) * ( 0.2 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.8,0.8,0.8,1.0 );\n}\n"},Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 0.1,0.1,0.1,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(( sin ( ( 10.0 ) * ( ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.1 ) ),sin ( ( Time ) * ( 0.1 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.1 ) ) ),cos ( ( Time ) * ( 0.1 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ).x ) ) ) > ( 0.5 ))) discard;\nf0 = vec4 ( 0.9,0.9,0.9,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8,9]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 9,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/Tetrahedron.lc b/testdata/editor-examples/Tetrahedron.lc
index 3de44242..79c81aeb 100644
--- a/testdata/editor-examples/Tetrahedron.lc
+++ b/testdata/editor-examples/Tetrahedron.lc
@@ -2,7 +2,7 @@ tetrahedron =
2 [ V3 0 0 0, V3 1 0 0, V3 0 1 0 2 [ V3 0 0 0, V3 1 0 0, V3 0 1 0
3 , V3 1 0 0, V3 0 1 0, V3 0 0 1 3 , V3 1 0 0, V3 0 1 0, V3 0 0 1
4 , V3 0 1 0, V3 0 0 1, V3 0 0 0 4 , V3 0 1 0, V3 0 0 1, V3 0 0 0
5 , V3 0 0 1, V3 0 0 0, V3 0 0 1 5 , V3 0 0 1, V3 0 0 0, V3 1 0 0
6 ] 6 ]
7 7
8f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2 8f x = (x + sin x + sin (1.1 * x)) `mod` 4 * 2
diff --git a/testdata/editor-examples/Tetrahedron.out b/testdata/editor-examples/Tetrahedron.out
index 7fd61799..9989dfda 100644
--- a/testdata/editor-examples/Tetrahedron.out
+++ b/testdata/editor-examples/Tetrahedron.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ) * ( ( mod ( ( ( Time ) + ( sin ( Time ) ) ) + ( sin ( ( 1.1 ) * ( Time ) ) ),4.0 ) ) * ( 2.0 ) );\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0])], streamType = fromList [("attribute_0",V4F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = ( ( mat4 ( vec4 ( cos ( Time ),sin ( Time ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( Time ) ),cos ( Time ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( mat4 ( vec4 ( cos ( Time ),0.0,( 0.0 ) - ( sin ( Time ) ),0.0 ),vec4 ( 0.0,1.0,0.0,0.0 ),vec4 ( sin ( Time ),0.0,cos ( Time ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vo1 ) ) ) * ( ( mod ( ( ( Time ) + ( sin ( Time ) ) ) + ( sin ( ( 1.1 ) * ( Time ) ) ),4.0 ) ) * ( 2.0 ) );\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,1.0,0.0,0.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,1.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0])], streamType = fromList [("attribute_0",V4F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/editor-examples/Texturing.out b/testdata/editor-examples/Texturing.out
index f96210b0..b9911bad 100644
--- a/testdata/editor-examples/Texturing.out
+++ b/testdata/editor-examples/Texturing.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Diffuse",FTexture2D),("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("Diffuse",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Diffuse ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( Diffuse,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("Diffuse",FTexture2D),("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetSamplerUniform "Diffuse" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Diffuse",FTexture2D),("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("Diffuse",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D Diffuse ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( Diffuse,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("Diffuse",FTexture2D),("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetSamplerUniform "Diffuse" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/example06.out b/testdata/example06.out
index 8bc81e95..4efb8d9c 100644
--- a/testdata/example06.out
+++ b/testdata/example06.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/example07.out b/testdata/example07.out
index b86daafb..372e159e 100644
--- a/testdata/example07.out
+++ b/testdata/example07.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vo1 ).x ) < ( 0.5 ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.2 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vo1 ).x ) < ( 0.5 ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.2 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/example08.out b/testdata/example08.out
index c5c81f19..3689191a 100644
--- a/testdata/example08.out
+++ b/testdata/example08.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 2.0 ) ),sin ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 2.0 ) ) ),cos ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 1.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -1.0 ) ),sin ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -1.0 ) ) ),cos ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.75 ) ),sin ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.75 ) ) ),cos ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.375 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.15 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -0.5 ) ),sin ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -0.5 ) ) ),cos ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 2.0 ) ),sin ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 2.0 ) ) ),cos ( ( Time ) * ( 2.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 1.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 2.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 1.0 ) ),sin ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 1.0 ) ) ),cos ( ( Time ) * ( 1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -1.0 ) ),sin ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -1.0 ) ) ),cos ( ( Time ) * ( -1.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.5 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -1.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.75 ) ),sin ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.75 ) ) ),cos ( ( Time ) * ( 0.75 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.375 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.75 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.3 ) ),sin ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.3 ) ) ),cos ( ( Time ) * ( 0.3 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.15 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.3 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.5 ) ),sin ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.5 ) ) ),cos ( ( Time ) * ( 0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( 0.0 ) ),sin ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( 0.0 ) ) ),cos ( ( Time ) * ( 0.0 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( 0.0 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( 0.0 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"},Program {programUniforms = fromList [("MVP",M44F),("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nuniform float Time ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( mat4 ( vec4 ( cos ( ( Time ) * ( -0.5 ) ),sin ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( ( 0.0 ) - ( sin ( ( Time ) * ( -0.5 ) ) ),cos ( ( Time ) * ( -0.5 ) ),0.0,0.0 ),vec4 ( 0.0,0.0,1.0,0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( ( MVP ) * ( ( vec4 ( ( -0.25 ) + ( ( sin ( Time ) ) * ( 0.1 ) ),0.0,0.0,0.0 ) ) + ( ( ( mat4 ( vec4 ( 1.0,0.0,0.0,0.0 ),vec4 ( 0.0,cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,( 0.0 ) - ( sin ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ) ),cos ( ( ( Time ) * ( 2.0 ) ) * ( -0.5 ) ),0.0 ),vec4 ( 0.0,0.0,0.0,1.0 ) ) ) * ( vi1 ) ) * ( vec4 ( 4.0e-2,4.0e-2,4.0e-2,1.0 ) ) ) ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5,6,7,8]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 8,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 7,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 6,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 5,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 4,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 3,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fetcharrays01.out b/testdata/fetcharrays01.out
index 8a715a55..890a2bcc 100644
--- a/testdata/fetcharrays01.out
+++ b/testdata/fetcharrays01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F}),("vi2",Parameter {name = "attribute_1", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0]),("attribute_1",VFloatArray [0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V3F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F}),("vi2",Parameter {name = "attribute_1", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,1.0,-1.0,-1.0,1.0,-1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,-1.0,1.0,-1.0,-1.0]),("attribute_1",VFloatArray [0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V3F)], streamPrimitive = Triangles, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/fragment03swizzling.out b/testdata/fragment03swizzling.out
index 65a6c933..fcc867de 100644
--- a/testdata/fragment03swizzling.out
+++ b/testdata/fragment03swizzling.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vo1 ).xxxw ) + ( ( vo1 ).yyyw );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( vo1 ).xxxw ) + ( ( vo1 ).yyyw );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fragment04ifthenelse.out b/testdata/fragment04ifthenelse.out
index 27953134..178d5b09 100644
--- a/testdata/fragment04ifthenelse.out
+++ b/testdata/fragment04ifthenelse.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( Time ) < ( 0.5 ) ? vo1 : vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( Time ) < ( 0.5 ) ? vo1 : vec4 ( 0.0,0.0,1.0,1.0 );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/fragment07let.out b/testdata/fragment07let.out
index 3d285264..e7e24d46 100644
--- a/testdata/fragment07let.out
+++ b/testdata/fragment07let.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = sin ( sin ( vo1 ) );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = sin ( sin ( vo1 ) );\n}\n"}], slots = [Slot {slotName = "quad", slotStreams = fromList [("position",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 0.5)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx02.out b/testdata/gfx02.out
index 9b88b651..c47bfb91 100644
--- a/testdata/gfx02.out
+++ b/testdata/gfx02.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx03.out b/testdata/gfx03.out
index cc359092..2bf989f6 100644
--- a/testdata/gfx03.out
+++ b/testdata/gfx03.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [2]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [2]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx04.out b/testdata/gfx04.out
index 2814264b..487c5a41 100644
--- a/testdata/gfx04.out
+++ b/testdata/gfx04.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("normal",V3F),("position",V3F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "normal", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("normal",V3F),("position",V3F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/gfx05.out b/testdata/gfx05.out
index 9015bc59..49e63678 100644
--- a/testdata/gfx05.out
+++ b/testdata/gfx05.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,( vo1 ).xy ) ) * ( 0.7 );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [3]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.3 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 3,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) + ( vec4 ( 1.0,1.4,1.0,0.6 ) );\n}\n"},Program {programUniforms = fromList [("MVP2",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP2 ;\nin vec3 vi1 ;\nvoid main() {\ngl_Position = ( MVP2 ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,0.4,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,( vo1 ).xy ) ) * ( 0.7 );\n}\n"}], slots = [Slot {slotName = "stream", slotStreams = fromList [("position",V3F)], slotUniforms = fromList [("MVP2",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2]},Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [3]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.1 0.0 0.3 1.0)}],SetProgram 2,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 3,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 1,SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Always False,ColorOp NoBlending (VV4B (V4 True True False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/heartbeat01.out b/testdata/heartbeat01.out
index 47db280f..c99e73e2 100644
--- a/testdata/heartbeat01.out
+++ b/testdata/heartbeat01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("Time",Float)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( vi1 ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform float Time ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 5.0e-4 ) * ( sin ( ( ( 3.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 15.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-3 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,0.5,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 5.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) - ( ( 5.0 ) * ( Time ) ) ) ) ) ) < ( ( 2.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 0.0,0.0,1.0,1.0 ) : ( ( ( ( ( ( vo1 ).x ) - ( 0.85 ) ) * ( ( ( vo1 ).x ) - ( 0.85 ) ) ) + ( ( ( ( vo1 ).y ) - ( 0.85 ) ) * ( ( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 2.0e-3 ) * ( sin ( ( ( 7.0 ) * ( atan ( ( ( vo1 ).x ) - ( 0.85 ),( ( vo1 ).y ) - ( 0.85 ) ) ) ) + ( ( 3.0 ) * ( Time ) ) ) ) ) ) < ( ( 5.0e-2 ) * ( abs ( ( sin ( ( Time ) * ( 4.0 ) ) ) - ( 0.37 ) ) ) ) ? vec4 ( 1.0,1.0,1.0,1.0 ) : vec4 ( 1.0,1.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("Time",Float)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/helloWorld.out b/testdata/helloWorld.out
index 1a6e3d64..28f591b9 100644
--- a/testdata/helloWorld.out
+++ b/testdata/helloWorld.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nif (!(true)) discard;\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/line01.out b/testdata/line01.out
index 902bc00b..abbc261d 100644
--- a/testdata/line01.out
+++ b/testdata/line01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0])], streamType = fromList [("attribute_0",V3F)], streamPrimitive = Lines, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/point01.out b/testdata/point01.out
index 4a7890e1..ebe32e4b 100644
--- a/testdata/point01.out
+++ b/testdata/point01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F}),("vi2",Parameter {name = "attribute_1", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\ngl_PointSize = 30.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0]),("attribute_1",VFloatArray [1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V4F)], streamPrimitive = Points, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (PointCtx ProgramPointSize 1.0 LowerLeft),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "attribute_0", ty = V3F}),("vi2",Parameter {name = "attribute_1", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec3 vi1 ;\nin vec4 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\ngl_PointSize = 30.0;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [], streams = [StreamData {streamData = fromList [("attribute_0",VFloatArray [-2.0,0.0,0.0,-1.0,0.0,0.0,-1.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,1.0,0.0,0.0,1.0,0.0,0.0,2.0,0.0,0.0,2.0,0.0,0.0,3.0,0.0,0.0]),("attribute_1",VFloatArray [1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0,1.0,0.0,0.0,1.0])], streamType = fromList [("attribute_0",V3F),("attribute_1",V4F)], streamPrimitive = Points, streamPrograms = [0]}], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.5 1.0)}],SetProgram 0,SetRasterContext (PointCtx ProgramPointSize 1.0 LowerLeft),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderStream 0]} \ No newline at end of file
diff --git a/testdata/recursivetexture02.out b/testdata/recursivetexture02.out
index 341c73de..558e2284 100644
--- a/testdata/recursivetexture02.out
+++ b/testdata/recursivetexture02.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 2 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 3 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 4 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 5 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 6 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 7 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 8 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 9 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ).xyxy;\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5]}], streams = [], commands = [SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 9,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 3,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 7,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 2,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 5,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 3,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 1024 768), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 2 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 3 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 4 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 5 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 6 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 7 0 Nothing)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 8 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 9 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ).xyxy;\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"},Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 1.0,1.0,1.0,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( texture2D ( s0,vo1 ) ) * ( vec4 ( 0.7,0.7,0.7,1.0 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1,2,3,4,5]}], streams = [], commands = [SetRenderTarget 5,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 4,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 1,SetTexture 0 9,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 3,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 2,SetTexture 0 7,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 2,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 3,SetTexture 0 5,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 4,SetTexture 0 3,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.0 1.0)}],SetProgram 5,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/reduce01.out b/testdata/reduce01.out
index 9b88b651..c47bfb91 100644
--- a/testdata/reduce01.out
+++ b/testdata/reduce01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/reduce05.out b/testdata/reduce05.out
index f51d1d0d..ace284e6 100644
--- a/testdata/reduce05.out
+++ b/testdata/reduce05.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,1.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 False True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True False False False))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,0.0,0.0,1.0 );\n}\n"},Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 0.0,1.0,0.0,1.0 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 False True False False))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True False False False))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/simple02.out b/testdata/simple02.out
index 7d2b8f60..e79b9b8f 100644
--- a/testdata/simple02.out
+++ b/testdata/simple02.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,0.4,0.0,0.2 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = ( vo1 ) * ( vec4 ( 1.0,0.4,0.0,0.2 ) );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp (Blend {colorEqSrc = FuncAdd, alphaEqSrc = FuncAdd, colorFSrc = SrcAlpha, colorFDst = OneMinusSrcAlpha, alphaFSrc = SrcAlpha, alphaFDst = OneMinusSrcAlpha, color = V4 1.0 1.0 1.0 1.0}) (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/simple03.out b/testdata/simple03.out
index c2b3f451..c1236861 100644
--- a/testdata/simple03.out
+++ b/testdata/simple03.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( viewProj ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( viewProj ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V3F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) (Offset (-1.0) 0.0) FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vec4 ( 1.0,1.0,1.0,1.0 );\n}\n"},Program {programUniforms = fromList [("viewProj",M44F)], programStreams = fromList [("vi1",Parameter {name = "position", ty = V3F}),("vi2",Parameter {name = "color", ty = V3F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 viewProj ;\nin vec3 vi1 ;\nin vec3 vi2 ;\nsmooth out vec4 vo1 ;\nvoid main() {\ngl_Position = ( viewProj ) * ( vec4 ( ( vi1 ).x,( vi1 ).y,( vi1 ).z,1.0 ) );\nvo1 = vec4 ( ( vi2 ).x,( vi2 ).y,( vi2 ).z,1.0 );\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nsmooth in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "missing shader", slotStreams = fromList [("color",V3F),("position",V3F)], slotUniforms = fromList [("viewProj",M44F)], slotPrimitive = Triangles, slotPrograms = [0,1]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 0.4 1.0)}],SetProgram 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0,SetProgram 0,SetRasterContext (TriangleCtx CullNone (PolygonLine 20.0) (Offset (-1.0) 0.0) FirstVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Lequal True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/texture01.out b/testdata/texture01.out
index 2f323137..4988289a 100644
--- a/testdata/texture01.out
+++ b/testdata/texture01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("diffuse",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D diffuse ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( diffuse,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetSamplerUniform "diffuse" 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("diffuse",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D diffuse ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( diffuse,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F),("diffuse",FTexture2D)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetSamplerUniform "diffuse" 1,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/texture02.out b/testdata/texture02.out
index e7e53a2e..01f26c07 100644
--- a/testdata/texture02.out
+++ b/testdata/texture02.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 gl_Position ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [TextureDescriptor {textureType = Texture2D (FloatT Red) 1, textureSize = VV2U (V2 128 128), textureSemantic = Depth, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0},TextureDescriptor {textureType = Texture2D (FloatT RGBA) 1, textureSize = VV2U (V2 128 128), textureSemantic = Color, textureSampler = SamplerDescriptor {samplerWrapS = Repeat, samplerWrapT = Nothing, samplerWrapR = Nothing, samplerMinFilter = Linear, samplerMagFilter = Linear, samplerBorderColor = VV4F (V4 0.0 0.0 0.0 1.0), samplerMinLod = Nothing, samplerMaxLod = Nothing, samplerLodBias = 0.0, samplerCompareFunc = Nothing}, textureBaseLevel = 0, textureMaxLevel = 0}], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)},TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]},RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (TextureImage 0 0 Nothing)},TargetItem {targetSemantic = Color, targetRef = Just (TextureImage 1 0 Nothing)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F}),("vi2",Parameter {name = "vertexUV", ty = V2F})], programInTextures = fromList [("s0",FTexture2D)], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nin vec2 vi2 ;\nsmooth out vec2 vo1 ;\nvoid main() {\ngl_Position = ( ( MVP ) * ( vi1 ) ) * ( vec4 ( 0.5,0.5,0.5,1.0 ) );\nvo1 = vi2;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform sampler2D s0 ;\nsmooth in vec2 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = texture2D ( s0,vo1 );\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F),("vertexUV",V2F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Triangles, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 1,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.0 0.0 1.0 1.0)}],SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0},ClearImage {imageSemantic = Color, clearValue = VV4F (V4 1.0 0.0 0.0 1.0)}],SetProgram 0,SetTexture 0 1,SetSamplerUniform "s0" 0,SetRasterContext (TriangleCtx CullNone PolygonFill NoOffset LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less True,ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/uniformparam01.out b/testdata/uniformparam01.out
index 72c14b11..6e07990d 100644
--- a/testdata/uniformparam01.out
+++ b/testdata/uniformparam01.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/uniformparam02.out b/testdata/uniformparam02.out
index 6e4b27fd..9ff50b8d 100644
--- a/testdata/uniformparam02.out
+++ b/testdata/uniformparam02.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nflat out vec4 gl_Position ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 gl_Position ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Depth, targetRef = Just (Framebuffer Depth)}]}], programs = [Program {programUniforms = fromList [], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nin vec4 vi1 ;\nflat out vec4 vo1 ;\nvoid main() {\ngl_Position = vi1;\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 vo1 ;\nvoid main() {\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Depth, clearValue = VFloat 1000.0}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [DepthOp Less False]}),RenderSlot 0]} \ No newline at end of file
diff --git a/testdata/uniformparam03.out b/testdata/uniformparam03.out
index 72c14b11..6e07990d 100644
--- a/testdata/uniformparam03.out
+++ b/testdata/uniformparam03.out
@@ -1 +1 @@
Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 gl_Position ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 gl_Position ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file Pipeline {info = "generated by lambdcube-compiler 0.5.0.0", backend = OpenGL33, textures = [], samplers = [], targets = [RenderTarget {renderTargets = [TargetItem {targetSemantic = Color, targetRef = Just (Framebuffer Color)}]}], programs = [Program {programUniforms = fromList [("MVP",M44F)], programStreams = fromList [("vi1",Parameter {name = "position4", ty = V4F})], programInTextures = fromList [], programOutput = [Parameter {name = "f0", ty = V4F}], vertexShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nuniform mat4 MVP ;\nin vec4 vi1 ;\nflat out vec4 vo1 ;\nvoid main() {\ngl_Position = ( MVP ) * ( vi1 );\nvo1 = vi1;\n}\n", geometryShader = Nothing, fragmentShader = "#version 330 core\nvec4 texture2D(sampler2D s, vec2 uv){return texture(s,uv);}\nflat in vec4 vo1 ;\nout vec4 f0 ;\nvoid main() {\nf0 = vo1;\n}\n"}], slots = [Slot {slotName = "stream4", slotStreams = fromList [("position4",V4F)], slotUniforms = fromList [("MVP",M44F)], slotPrimitive = Lines, slotPrograms = [0]}], streams = [], commands = [SetRenderTarget 0,ClearRenderTarget [ClearImage {imageSemantic = Color, clearValue = VV4F (V4 0.5 0.0 0.4 1.0)}],SetProgram 0,SetRasterContext (LineCtx 1.0 LastVertex),SetAccumulationContext (AccumulationContext {accViewportName = Nothing, accOperations = [ColorOp NoBlending (VV4B (V4 True True True True))]}),RenderSlot 0]} \ No newline at end of file