halive-0.1.3: A live recompiler

Safe HaskellNone
LanguageHaskell2010

Halive.FileListener

Synopsis

Documentation

atomicallyIO :: MonadIO m => STM a -> m a Source #

readTChanIO :: MonadIO m => TChan a -> m a Source #

writeTChanIO :: MonadIO m => TChan a -> a -> m () Source #

onFileEvent :: MonadIO m => FileEventListener -> m () -> m () Source #

onTChanRead :: MonadIO m => TChan a -> m () -> m () Source #

makeWatchedResource :: FilePath -> IO a -> IO (IO a) Source #

Creates a getter for a set of resources that will be rebuilt whenever the file changes. Takes a filename and an action to create a resource based on that file. getWatchedResource <- makeWatchedResource "resources/shapes.frag" $ do shader <- createShaderProgram "resourcesshapes.vert" "resourcesshapes.frag" useProgram shader

uTime <- getShaderUniform shader "uTime"

(quadVAO, quadVertCount) <- makeScreenSpaceQuad shader return (quadVAO, quadVertCount, uTime) Then use (quadVAO, quadVertCount, uResolution, uMouse, uTime) <- getWatchedResource in main loop