reanimate-0.2.0.0: src/Reanimate/Parameters.hs
module Reanimate.Parameters
( pFPS
, pWidth
, pHeight
, pNoExternals
, setFPS
, setWidth
, setHeight
, setNoExternals
) where
import System.IO.Unsafe
import Data.IORef
import Reanimate.Render
{-# NOINLINE pFPSRef #-}
pFPSRef :: IORef FPS
pFPSRef = unsafePerformIO (newIORef 0)
{-# NOINLINE pFPS #-}
pFPS :: FPS
pFPS = unsafePerformIO (readIORef pFPSRef)
setFPS :: FPS -> IO ()
setFPS = writeIORef pFPSRef
{-# NOINLINE pWidthRef #-}
pWidthRef :: IORef FPS
pWidthRef = unsafePerformIO (newIORef 0)
{-# NOINLINE pWidth #-}
pWidth :: Width
pWidth = unsafePerformIO (readIORef pWidthRef)
setWidth :: Width -> IO ()
setWidth = writeIORef pWidthRef
{-# NOINLINE pHeightRef #-}
pHeightRef :: IORef FPS
pHeightRef = unsafePerformIO (newIORef 0)
{-# NOINLINE pHeight #-}
pHeight :: Height
pHeight = unsafePerformIO (readIORef pHeightRef)
setHeight :: Height -> IO ()
setHeight = writeIORef pHeightRef
{-# NOINLINE pNoExternalsRef #-}
pNoExternalsRef :: IORef Bool
pNoExternalsRef = unsafePerformIO (newIORef False)
{-# NOINLINE pNoExternals #-}
pNoExternals :: Bool
pNoExternals = unsafePerformIO (readIORef pNoExternalsRef)
setNoExternals :: Bool -> IO ()
setNoExternals = writeIORef pNoExternalsRef