38 lines
695 B
Haskell
38 lines
695 B
Haskell
module Types where
|
|
|
|
import qualified SDL
|
|
|
|
import qualified Graphics.Rendering.OpenGL as GL
|
|
|
|
import qualified Graphics.GLUtil as GU
|
|
|
|
import qualified Data.Text as T
|
|
|
|
import Data.Word (Word32)
|
|
|
|
import Data.Time.Clock
|
|
|
|
data Options = Options
|
|
{ optFullscreen :: Bool
|
|
, optFlipScreens :: Bool
|
|
, optVerbose :: Bool
|
|
, optFile :: T.Text
|
|
}
|
|
deriving (Show)
|
|
|
|
data State = State
|
|
{ stCurrentPage :: Word
|
|
, stFilename :: T.Text
|
|
, stPresentationWindow :: Word
|
|
, stStartTime :: Word32
|
|
, stLastTime :: Word32
|
|
, stWindows :: [(Word, SDL.Window)]
|
|
, stProgram :: GU.ShaderProgram
|
|
, stVEBO :: GLvebo
|
|
}
|
|
|
|
data GLvebo = GLvebo
|
|
{ giVBO :: GL.BufferObject
|
|
, giEBO :: GL.BufferObject
|
|
}
|