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 -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
+7 -6
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
@@ -86,14 +87,15 @@ preloadRender = do
, _wallFaceShader = wlShad
, _backgroundShader = bgShad
, _fullscreenShader = fsShad
, _spareFBO = fbo
, _fboTexture = fboTO
, _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