{-# LANGUAGE ForeignFunctionInterface #-} module Init where import Affection as A import SDL (($=)) import qualified SDL import qualified Graphics.Rendering.OpenGL as GL import NanoVG hiding (V2(..), V3(..)) import Linear import Control.Monad.IO.Class (liftIO) import Control.Concurrent.STM import qualified Data.Set as S import qualified Data.Map.Strict as M import Data.Ecstasy import Foreign.C.Types (CInt(..)) import Types import Floorplan import Debug.Trace foreign import ccall unsafe "glewInit" glewInit :: IO CInt load :: IO UserData load = do _ <- glewInit nvg <- createGL3 (S.fromList [StencilStrokes]) subs <- Subsystems <$> (Window <$> newTVarIO []) <*> (Mouse <$> newTVarIO []) w <- runSystemT defWorld getWorld let fc = FloorConfig (20, 45) [(5, 5), (30,80)] (40, 90) floor <- buildHallFloorIO fc traceIO $ show floor return UserData { state = Menu , subsystems = subs , assetImages = M.empty -- FILLME! , nano = nvg , uuid = [] , world = w , stateData = None }