Implement basic config file

This commit is contained in:
jgk
2021-03-22 22:40:11 +01:00
parent 553c6978d6
commit 54b28db249
5 changed files with 23 additions and 29 deletions
+4 -2
View File
@@ -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
View File
@@ -1,4 +1,4 @@
{
"windowxsize": 800,
"windowxsize": 600,
"windowysize": 600
}
+4 -3
View File
@@ -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
+5 -4
View File
@@ -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
View File
@@ -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