Pipeline { info = "" , backend = OpenGL33 , textures = [ TextureDescriptor { textureType = Texture2D (FloatT Red) 1 , textureSize = VV2U (V2 1024 768) , textureSemantic = Depth , textureSampler = SamplerDescriptor { samplerWrapS = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 = MirroredRepeat , samplerWrapT = Just MirroredRepeat , 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 vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } uniform mat4 MVP; in vec4 vi1; in vec2 vi2; smooth out vec2 vo1; vec4 scale(float z0,vec4 z1) { return (z1) * (vec4 (z0,z0,z0,1.0)); } void main() { gl_Position = scale (0.5,(MVP) * (vi1)); vo1 = vi2; } """ , geometryShader = Nothing , fragmentShader = """ #version 330 core vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } smooth in vec2 vo1; out vec4 f0; void main() { f0 = (vo1).xyxy; } """ } , 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 vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } uniform mat4 MVP; in vec4 vi1; in vec2 vi2; smooth out vec2 vo1; vec4 scale(float z0,vec4 z1) { return (z1) * (vec4 (z0,z0,z0,1.0)); } void main() { gl_Position = scale (1.0,(MVP) * (vi1)); vo1 = vi2; } """ , geometryShader = Nothing , fragmentShader = """ #version 330 core vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } uniform sampler2D s0; smooth in vec2 vo1; out vec4 f0; void main() { f0 = (texture2D (s0,vo1)) * (vec4 (0.7,0.7,0.7,1.0)); } """ } ] , slots = [ Slot { slotName = "stream4" , slotStreams = fromList [ ( "position4" , V4F ) , ( "vertexUV" , V2F ) ] , slotUniforms = fromList [ ( "MVP" , M44F ) ] , slotPrimitive = Triangles , slotPrograms = [ 0 , 1 , 1 , 1 , 1 , 1 ] } ] , 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 1 , 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 1 , 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 1 , 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 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 ] }