TimePiece-0.0.1: Internals.hs
module Internals ( getDataFileName, module Internals ) where
import Paths_TimePiece
import System.IO.Unsafe
import Data.IORef
{-# NOINLINE _WIDTH_ #-}
_WIDTH_ :: IORef Integer
_WIDTH_ = unsafePerformIO $ newIORef 1024
{-# NOINLINE _HEIGHT_ #-}
_HEIGHT_ :: IORef Integer
_HEIGHT_ = unsafePerformIO $ newIORef 768
getScreenWidth :: Num a => IO a
getScreenWidth = fmap fromIntegral (readIORef _WIDTH_)
getScreenHeight :: Num a => IO a
getScreenHeight = fmap fromIntegral (readIORef _HEIGHT_)
setScreenWidth :: Integral a => a -> IO ()
setScreenWidth = writeIORef _WIDTH_ . toInteger
setScreenHeight :: Integral a => a -> IO ()
setScreenHeight = writeIORef _HEIGHT_ . toInteger
type X = Int
type Y = Int
type Size = Int
data Point = MkPoint
{ pointX :: !X
, pointY :: !Y
}
deriving (Show, Eq, Ord)