spice-0.3.2.4: src/FRP/Spice/Engine/Driver.hs
{-|
This module need not be used directly. Refer to @'FRP.Spice.Engine'@ instead.
-}
module FRP.Spice.Engine.Driver where
--------------------
-- Global Imports --
import FRP.Spice.Engine.RenderWrapper
import FRP.Spice.Game
----------
-- Code --
{-|
Driving a network created with the @'FRP.Spice.Engine.Network.makeNetwork'@
function and a function such as @'FRP.Spice.Engine.RunInput.runInput'@.
-}
driveNetwork :: Game a => (Float -> IO a) -> IO (Maybe Float) -> IO ()
driveNetwork network iomdriver = do
mdriver <- iomdriver
case mdriver of
Just driver -> do state <- network driver
renderWrapper $ render state
driveNetwork network iomdriver
Nothing -> return ()