Separate sound and render io parameters

This commit is contained in:
2021-02-23 15:05:48 +01:00
parent 62a1a57913
commit c188512abb
4 changed files with 23 additions and 14 deletions
+7 -7
View File
@@ -16,7 +16,7 @@ import Foreign
import Shaders
data PreloadData = PreloadData
data RenderData = RenderData
{ --_charMap :: Image PixelRGBA8
_textures :: [TextureObject]
, _basicShader :: Program
@@ -52,7 +52,7 @@ data VAO = VAO
, _vaoBufferTargets :: [(BufferObject,Ptr Float,Int)]
}
makeLenses ''PreloadData
makeLenses ''RenderData
makeLenses ''VAO
floatSize = sizeOf (0.5 :: GLfloat)
@@ -100,8 +100,8 @@ loadTextures = do
bufferOffset :: Integral a => a -> Ptr b
bufferOffset = plusPtr nullPtr . fromIntegral
doPreload' :: IO PreloadData
doPreload' = do
preloadRender :: IO RenderData
preloadRender = do
-- compile shader programs
bs <- makeBasicShader
ts <- makeTextureShader
@@ -172,7 +172,7 @@ doPreload' = do
wallvao <- setupVAO [(posVBO,0,4),(colVBO,1,4)]
fadecircvao <- setupVAO [(posVBO,0,4)]
return $ PreloadData
return $ RenderData
{ -- _charMap = convertRGBA8 cmap
_textures = [chartex,dirttex]
,_basicShader = bs
@@ -207,8 +207,8 @@ doPreload' = do
vaoPointers :: VAO -> [Ptr Float]
vaoPointers = (\(_,ps,_) -> ps) . unzip3 . _vaoBufferTargets
cleanUpPreload :: PreloadData -> IO ()
cleanUpPreload pd = do
cleanUpRenderPreload :: RenderData -> IO ()
cleanUpRenderPreload pd = do
mapM_ free $ vaoPointers $ _triVAO pd
mapM_ free $ vaoPointers $ _textVAO pd
mapM_ free $ vaoPointers $ _circVAO pd