Implement basic config file
This commit is contained in:
+4
-2
@@ -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
@@ -1,4 +1,4 @@
|
|||||||
{
|
{
|
||||||
"windowxsize": 800,
|
"windowxsize": 600,
|
||||||
"windowysize": 600
|
"windowysize": 600
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-3
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -86,14 +87,15 @@ preloadRender = do
|
|||||||
, _wallFaceShader = wlShad
|
, _wallFaceShader = wlShad
|
||||||
, _backgroundShader = bgShad
|
, _backgroundShader = bgShad
|
||||||
, _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
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user