{-# LINE 1 "src/SDL/Raw/Framerate.hsc" #-}
{-# OPTIONS_GHC -fno-warn-missing-signatures #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TemplateHaskell #-}
module SDL.Raw.Framerate
( Manager(..)
, init
, framerateDelay
, setFramerate
, pattern FPS_DEFAULT
, pattern FPS_LOWER_LIMIT
, pattern FPS_UPPER_LIMIT
, getFramerate
, getFramecount
) where
{-# LINE 33 "src/SDL/Raw/Framerate.hsc" #-}
import Foreign.C.Types (CFloat(..), CInt(..))
import Foreign.Ptr (Ptr)
import Foreign.Storable (Storable(..))
import Data.Word (Word32)
import Prelude hiding (init)
import SDL.Raw.Helper (liftF)
pattern FPS_DEFAULT = (30)
{-# LINE 42 "src/SDL/Raw/Framerate.hsc" #-}
pattern FPS_LOWER_LIMIT = (1)
{-# LINE 43 "src/SDL/Raw/Framerate.hsc" #-}
pattern FPS_UPPER_LIMIT = (200)
{-# LINE 44 "src/SDL/Raw/Framerate.hsc" #-}
data Manager = Manager
{ frameCount :: Word32
, rateTicks :: CFloat
, baseTicks :: Word32
, lastTicks :: Word32
, rate :: Word32
} deriving (Eq, Show, Read)
instance Storable Manager where
alignment = sizeOf
sizeOf _ = ((20))
{-# LINE 56 "src/SDL/Raw/Framerate.hsc" #-}
peek ptr =
Manager
<$> ((\hsc_ptr -> peekByteOff hsc_ptr 0)) ptr
{-# LINE 60 "src/SDL/Raw/Framerate.hsc" #-}
<*> ((\hsc_ptr -> peekByteOff hsc_ptr 4)) ptr
{-# LINE 61 "src/SDL/Raw/Framerate.hsc" #-}
<*> ((\hsc_ptr -> peekByteOff hsc_ptr 8)) ptr
{-# LINE 62 "src/SDL/Raw/Framerate.hsc" #-}
<*> ((\hsc_ptr -> peekByteOff hsc_ptr 12)) ptr
{-# LINE 63 "src/SDL/Raw/Framerate.hsc" #-}
<*> ((\hsc_ptr -> peekByteOff hsc_ptr 16)) ptr
{-# LINE 64 "src/SDL/Raw/Framerate.hsc" #-}
poke ptr (Manager {..}) = do
((\hsc_ptr -> pokeByteOff hsc_ptr 0)) ptr frameCount
{-# LINE 67 "src/SDL/Raw/Framerate.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 4)) ptr rateTicks
{-# LINE 68 "src/SDL/Raw/Framerate.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 8)) ptr baseTicks
{-# LINE 69 "src/SDL/Raw/Framerate.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 12)) ptr lastTicks
{-# LINE 70 "src/SDL/Raw/Framerate.hsc" #-}
((\hsc_ptr -> pokeByteOff hsc_ptr 16)) ptr rate
{-# LINE 71 "src/SDL/Raw/Framerate.hsc" #-}
liftF "init" "SDL_initFramerate"
[t|Ptr Manager -> IO ()|]
liftF "getFramecount" "SDL_getFramecount"
[t|Ptr Manager -> IO CInt|]
liftF "framerateDelay" "SDL_framerateDelay"
[t|Ptr Manager -> IO Word32|]
liftF "getFramerate" "SDL_getFramerate"
[t|Ptr Manager -> IO CInt|]
liftF "setFramerate" "SDL_setFramerate"
[t|Ptr Manager -> Word32 -> IO CInt|]