33 lines
630 B
Haskell
33 lines
630 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.Time.Clock
|
|
|
|
data Options = Options
|
|
{ optFullscreen :: Bool
|
|
, optFlipScreens :: Bool
|
|
, optVerbose :: Bool
|
|
, optFile :: T.Text
|
|
}
|
|
deriving (Show)
|
|
|
|
data State = State
|
|
{ stCurrentPage :: Word
|
|
, stPresentationWindow :: Word
|
|
, stStartTime :: UTCTime
|
|
, stWindows :: [(Word, SDL.Window)]
|
|
, stPrograms :: [(Word, GU.ShaderProgram)]
|
|
, stVEBO :: GLvebo
|
|
}
|
|
|
|
data GLvebo = GLvebo
|
|
{ giVBO :: GL.BufferObject
|
|
, giEBO :: GL.BufferObject
|
|
}
|