module LiveCoding.Gloss.GHCi where
-- base
import Control.Concurrent
-- foreign-store
import Foreign.Store
-- essence-of-live-coding
import LiveCoding.LiveProgram
-- essence-of-live-coding-gloss
import LiveCoding.Gloss
livegloss "" = livegloss "glossCell"
livegloss glossCell = return $ unlines
[ "var <- playCell " ++ glossCell
, "saveGloss var"
]
livereloadgloss "" = livereloadgloss "glossCell"
livereloadgloss glossCell = return $ unlines
[ ":reload"
, "var <- loadGloss"
, "updateGloss var " ++ glossCell
]
loadGloss :: IO (MVar GlossCell)
loadGloss = readStore (Store 0)
saveGloss :: MVar GlossCell -> IO ()
saveGloss var = writeStore (Store 0) var