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