Implement basic config file
This commit is contained in:
+4
-2
@@ -3,6 +3,7 @@ module Main where
|
||||
import Loop
|
||||
import Shader
|
||||
import Shapes
|
||||
import LoadConfig
|
||||
|
||||
import Dodge.Prototypes
|
||||
import Dodge.Data
|
||||
@@ -45,10 +46,11 @@ ppt = [(0,0),(-0.50,0),(0.20,0.25)]
|
||||
main :: IO ()
|
||||
main = do
|
||||
-- loadedSounds <- loadSounds
|
||||
(sizex,sizey) <- loadConfig
|
||||
setupLoop
|
||||
"windowName"
|
||||
800 600
|
||||
doPreload
|
||||
sizex sizey
|
||||
(doPreload >>= resizeSpareFBO sizex sizey)
|
||||
cleanUpPreload
|
||||
(initializeWorld $ generateFromTree lev1 $ initWorld)
|
||||
( \preData w -> do
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"windowxsize": 800,
|
||||
"windowxsize": 600,
|
||||
"windowysize": 600
|
||||
}
|
||||
|
||||
+4
-3
@@ -15,19 +15,20 @@ import Preload
|
||||
|
||||
import Control.Lens ((.~),(&),(+~))
|
||||
|
||||
winConfig :: Int -> Int -> WindowConfig
|
||||
winConfig x y = defaultWindow
|
||||
{ windowGraphicsContext
|
||||
= OpenGLContext (defaultOpenGL { glProfile = Core Normal 4 3
|
||||
, glColorPrecision = V4 8 8 8 8
|
||||
}
|
||||
)
|
||||
, windowInitialSize = V2 x y
|
||||
, windowInitialSize = V2 (fromIntegral x) (fromIntegral y)
|
||||
, windowResizable =True
|
||||
}
|
||||
|
||||
setupLoop :: String
|
||||
-> CInt
|
||||
-> CInt
|
||||
-> Int
|
||||
-> Int
|
||||
-> IO (PreloadData a)
|
||||
-> (PreloadData a -> IO ())
|
||||
-> world
|
||||
|
||||
@@ -27,6 +27,7 @@ data RenderData = RenderData
|
||||
, _listShaders :: [FullShader RenderType]
|
||||
, _spareFBO :: FramebufferObject
|
||||
, _fboTexture :: TextureObject
|
||||
, _fboRenderbufferObject :: RenderbufferObject
|
||||
}
|
||||
|
||||
makeLenses ''RenderData
|
||||
@@ -73,7 +74,7 @@ preloadRender = do
|
||||
>>= addUniforms ["perpMat"]
|
||||
|
||||
-- framebuffer for lighting
|
||||
(fbo,fboTO) <- setupFramebuffer
|
||||
(fbo,fboTO,fboRBO) <- setupFramebuffer
|
||||
|
||||
-- reset to default framebuffer, ready for drawing direct to screen
|
||||
bindFramebuffer Framebuffer $= defaultFramebufferObject
|
||||
@@ -88,12 +89,13 @@ preloadRender = do
|
||||
, _fullscreenShader = fsShad
|
||||
, _spareFBO = fbo
|
||||
, _fboTexture = fboTO
|
||||
, _fboRenderbufferObject = fboRBO
|
||||
}
|
||||
|
||||
|
||||
--------------------end preloadRender
|
||||
|
||||
setupFramebuffer :: IO (FramebufferObject, TextureObject)
|
||||
setupFramebuffer :: IO (FramebufferObject, TextureObject,RenderbufferObject)
|
||||
setupFramebuffer = do
|
||||
fboName <- genObjectName
|
||||
bindFramebuffer Framebuffer $= fboName
|
||||
@@ -113,8 +115,7 @@ setupFramebuffer = do
|
||||
fboStatus <- framebufferStatus Framebuffer
|
||||
putStrLn $ show fboStatus
|
||||
|
||||
return (fboName, fboTO)
|
||||
|
||||
return (fboName, fboTO, fboRBO)
|
||||
|
||||
cleanUpRenderPreload :: RenderData -> IO ()
|
||||
cleanUpRenderPreload pd = do
|
||||
|
||||
+7
-17
@@ -1,28 +1,18 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
module Preload
|
||||
( module Preload
|
||||
, module Preload.Data
|
||||
, module Preload.Update
|
||||
)
|
||||
where
|
||||
import Preload.Data
|
||||
import Preload.Update
|
||||
|
||||
import Picture.Preload
|
||||
import Sound.Preload
|
||||
import Control.Lens
|
||||
|
||||
import GHC.Word (Word32)
|
||||
|
||||
data PreloadData a = PreloadData
|
||||
{ _renderData :: RenderData
|
||||
, _soundData :: SoundData a
|
||||
, _currentTime :: Word32
|
||||
, _renderTime :: Word32
|
||||
, _renderLighting :: Word32
|
||||
, _renderPicture :: Word32
|
||||
, _simTime :: Word32
|
||||
, _mixerTime :: Word32
|
||||
, _idleTime :: Word32
|
||||
, _gcTime :: Word32
|
||||
, _pokeTime :: Word32
|
||||
}
|
||||
|
||||
makeLenses ''PreloadData
|
||||
|
||||
doPreload :: IO (PreloadData a)
|
||||
doPreload = do
|
||||
sData <- preloadSound
|
||||
|
||||
Reference in New Issue
Block a user