Interleave vertex buffer data
This commit is contained in:
@@ -34,7 +34,7 @@ setWallDepth
|
||||
setWallDepth pdata wallPoints (viewFromx,viewFromy) _ = do
|
||||
startTicks <- SDL.ticks
|
||||
colorMask $= Color4 Disabled Disabled Disabled Disabled
|
||||
nWalls <- F.foldM (pokeShader $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
||||
nWalls <- F.foldM (pokeShader' $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
||||
bindShaderBuffers [_lightingOccludeShader pdata] [nWalls]
|
||||
|
||||
currentProgram $= Just (_shaderProgram $ _lightingOccludeShader pdata)
|
||||
@@ -76,9 +76,9 @@ createLightMap pdata resDiv wallPoints lightPoints (viewFromx,viewFromy) pmat _
|
||||
bindFramebuffer Framebuffer $= _spareFBO pdata
|
||||
|
||||
-- store wall and light positions into buffer
|
||||
nWallLights <- F.foldM (pokeShader $ _lightingWallShader pdata) (map Render22 wallPoints)
|
||||
nWallLights <- F.foldM (pokeShader' $ _lightingWallShader pdata) (map Render22 wallPoints)
|
||||
bindShaderBuffers [_lightingWallShader pdata] [nWallLights]
|
||||
nWalls <- F.foldM (pokeShader $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
||||
nWalls <- F.foldM (pokeShader' $ _lightingOccludeShader pdata) (map Render22 wallPoints)
|
||||
bindShaderBuffers [_lightingOccludeShader pdata] [nWalls]
|
||||
-- set uniforms for shader that draws lights
|
||||
currentProgram $= Just (_shaderProgram $ _lightingWallShader pdata)
|
||||
@@ -114,8 +114,7 @@ createLightMap pdata resDiv wallPoints lightPoints (viewFromx,viewFromy) pmat _
|
||||
stencilTest $= Enabled
|
||||
forM_ lightPoints $ \(x,y,r,lum) -> do
|
||||
-- bind buffer for floor light circle
|
||||
let lightPtr = (\(_,ptr,_) -> ptr) $ head
|
||||
$ _vaoBufferTargets $ _shaderVAO $ _lightingFloorShader pdata
|
||||
let lightPtr = _vboPointer $ _vaoVBO $ _shaderVAO $ _lightingFloorShader pdata
|
||||
pokeFourOff lightPtr 0 (x,y,r,lum)
|
||||
-- stencil out walls
|
||||
colorMask $= Color4 Disabled Disabled Disabled Disabled
|
||||
@@ -200,7 +199,8 @@ renderBackground pdata rot camZoom (tranx,trany) (winx,winy) = do
|
||||
-- set drawing for on top
|
||||
--blendFuncSeparate $= ((SrcAlphaSaturate, OneMinusSrcAlpha), (Zero,One))
|
||||
-- draw background
|
||||
bindArrayBuffers 1 $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata
|
||||
--bindArrayBuffers 1 $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata
|
||||
bindArrayBuffers' 1 $ _vaoVBO $ _shaderVAO $ _backgroundShader pdata
|
||||
currentProgram $= Just (_shaderProgram $ _backgroundShader pdata)
|
||||
bindVertexArrayObject $= Just (_vao $ _shaderVAO $ _backgroundShader pdata)
|
||||
let backPtr = (\(_,x,_) -> x) $ head $ _vaoBufferTargets $ _shaderVAO $ _backgroundShader pdata
|
||||
@@ -248,7 +248,7 @@ renderShader
|
||||
-> IO Word32
|
||||
renderShader shad dat = do
|
||||
sticks <- SDL.ticks
|
||||
i <- F.foldM (pokeShader shad) dat
|
||||
i <- F.foldM (pokeShader' shad) dat
|
||||
bindShaderBuffers [shad] [i]
|
||||
drawShader shad i
|
||||
eticks <- SDL.ticks
|
||||
|
||||
Reference in New Issue
Block a user