time = Uniform "Time" :: Float clear = FrameBuffer ((ColorImage @1 $ V4 1 0 0 0.5)) triangleRasterCtx = TriangleCtx CullNone PolygonFill NoOffset LastVertex colorFragmentCtx = accumulationContext ((ColorOp NoBlending (V4 True True True True))) rasterizeWith = rasterizePrimitives triangles = triangleRasterCtx quadVertexStream = fetch "quad" ((Attribute "position" :: Vec 4 Float)) transform s f = mapPrimitives (\((v)) -> (f v, v)) s mapFragments2 s fs = accumulate colorFragmentCtx ( \((a)) -> ((fs a))) s clear render f = quadVertexStream -- id vertices `transform` id & rasterizeWith triangles ((Smooth)) -- rasterize `mapFragments2` f & ScreenOut -- draw into screen main = render $ \c -> if time < 0.5 then c else blue