vertices' = [V3 i 0.0 0.0 | i <- [(-5.0)..5.0] ] lineVertexStream = fetchArrays ((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