vertices' = [V3 i 0.0 0.0 | i <- [(-5.0)..5.0] ] lineVertexStream = fetchArrays Line $ concat [[v1, v2] | (v1, v2) <- pairs vertices'] clear = FrameBuffer $ (DepthImage @1 1000, ColorImage @1 white) -- ... lines = LineCtx 1.0 LastVertex colorFragmentCtx = accumulationContext (DepthOp Less True, ColorOp NoBlending (V4 True True True True)) m = Uniform "Mouse" :: Vec 2 Float rasterizeWith = rasterizePrimitives mapFragments2 s fs = accumulate colorFragmentCtx ( \a -> fs a) s clear transform s f = mapPrimitives (\(p) -> let v = v3FToV4F p in (f v, v)) s trans :: Vec 4 Float -> Vec 4 Float trans (V4 i' _ _ _) = V4 (j *! sin i) (j *! cos i) (m%y *! i) 1.0 where i = 0.9 *! i' j = exp ((m%x -! 0.5) *! i') rotate' v = (Uniform "MVP" :: Mat 4 4 Float) *. v main = lineVertexStream -- cube vertices `transform` ((scale 0.5 . rotate') . trans) -- scale them & rasterizeWith lines Smooth -- rasterize `mapFragments2` id & ScreenOut -- draw into screen