41 lines
766 B
Haskell
41 lines
766 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
|
|
, stMaxPage :: Word
|
|
, stAspectRatio :: Double
|
|
, stFilename :: T.Text
|
|
, stPresentationWindow :: Word
|
|
, stStartTime :: Word32
|
|
, stLastTime :: Word32
|
|
, stWindows :: [(Word, SDL.Window)]
|
|
, stProgram :: GU.ShaderProgram
|
|
, stBO :: GLbo
|
|
}
|
|
|
|
data GLbo = GLbo
|
|
{ glVBO :: GL.BufferObject
|
|
, glEBO :: GL.BufferObject
|
|
, glTBO :: GL.BufferObject
|
|
}
|