module LiveCoding.Gloss.PictureM where -- transformers import Control.Monad.Trans.Writer -- gloss import Graphics.Gloss import Graphics.Gloss.Interface.IO.Game -- essence-of-live-coding import LiveCoding type PictureM = WriterT Picture IO runPictureM :: GlossCell -> Cell IO [Event] Picture runPictureM = transformOutput $ fmap massageWriterOutput . runWriterT massageWriterOutput (((), s), pic) = (pic, s) -- TODO Rhine integration instead of fixed sample size type GlossCell = Cell PictureM [Event] () addPicture :: Cell PictureM Picture () addPicture = arrM tell