Pipeline { info = "" , 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 vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } uniform mat4 MVP; in vec3 vi1; in vec3 vi2; smooth out vec4 vo1; vec4 scale(float z0,vec4 z1) { return (z1) * (vec4 (z0,z0,z0,1.0)); } vec4 v3FToV4F(vec3 z0) { return vec4 ((z0).x,(z0).y,(z0).z,1.0); } void main() { gl_Position = scale (0.5,(MVP) * (v3FToV4F (vi1))); vo1 = v3FToV4F (vi1); } """ , geometryShader = Nothing , fragmentShader = """ #version 330 core vec4 texture2D(sampler2D s,vec2 uv) { return texture(s,uv); } smooth in vec4 vo1; out vec4 f0; void main() { f0 = vo1; } """ } ] , 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 ] }