Move FBOs to opengl raw
This commit is contained in:
+20
-10
@@ -111,7 +111,8 @@ doDrawing win pdata u = do
|
||||
-- set the coordinate uniform ready for drawing elements using world coordinates
|
||||
bufferUBO $ perspectiveMatrixb rot camzoom trans wins viewFroms
|
||||
setViewportSize (round winx `div` resFact) (round winy `div` resFact)
|
||||
bindFramebuffer Framebuffer $= fst (_fboBase pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboBase pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboBase pdata)))
|
||||
clearColor $= Color4 0 0 0 0
|
||||
clear [ColorBuffer, DepthBuffer]
|
||||
depthFunc $= Just Less
|
||||
@@ -148,7 +149,8 @@ doDrawing win pdata u = do
|
||||
-- nTextArrayVs <- pokePoint33s (shadVBOptr $ _textureArrayShader pdata) (_floorTiles w)
|
||||
drawShader (_textureArrayShader pdata) nFls
|
||||
--draw lightmap into its own buffer
|
||||
bindFramebuffer Framebuffer $= fst (_fboLighting pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboLighting pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboLighting pdata)))
|
||||
createLightMap
|
||||
pdata
|
||||
lightPoints
|
||||
@@ -162,14 +164,16 @@ doDrawing win pdata u = do
|
||||
colorMask $= Color4 Enabled Enabled Enabled Enabled
|
||||
clearColor $= Color4 0 0 0 0
|
||||
--apply lightmap to base buffer
|
||||
bindFramebuffer Framebuffer $= pdata ^. fboBase . _1 --fst (_fboBase pdata)
|
||||
--bindFramebuffer Framebuffer $= pdata ^. fboBase . _1 --fst (_fboBase pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO)
|
||||
--textureBinding Texture2D $= Just (snd $ _fboLighting pdata)
|
||||
textureBinding Texture2D $= pdata ^? fboLighting . _2 -- Just (snd $ _fboLighting pdata)
|
||||
blend $= Enabled
|
||||
blendFunc $= (Zero, OneMinusSrcColor)
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
--draw bloom onto bloom buffer
|
||||
bindFramebuffer Framebuffer $= pdata ^. fboBloom . _1 --fst (_fboBloom pdata)
|
||||
--bindFramebuffer Framebuffer $= pdata ^. fboBloom . _1 --fst (_fboBloom pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBloom . _1 . unFBO)
|
||||
clear [ColorBuffer]
|
||||
depthFunc $= Just Less
|
||||
blendFunc $= (SrcAlpha, OneMinusSrcAlpha)
|
||||
@@ -180,7 +184,8 @@ doDrawing win pdata u = do
|
||||
--depthMask $= Enabled
|
||||
--setup downscale viewport for blurring bloom
|
||||
setViewportSize (round winx `div` (2 * resFact)) (round winy `div` (2 * resFact))
|
||||
bindFramebuffer Framebuffer $= fst (_fboHalf1 pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboHalf1 pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboHalf1 pdata)))
|
||||
depthFunc $= Just Always
|
||||
textureBinding Texture2D $= pdata ^? fboBloom . _2 -- Just (snd $ _fboBloom pdata)
|
||||
blend $= Disabled
|
||||
@@ -189,7 +194,8 @@ doDrawing win pdata u = do
|
||||
blend $= Enabled
|
||||
setViewportSize (round winx `div` resFact) (round winy `div` resFact)
|
||||
--draw clouds onto cloud buffer
|
||||
bindFramebuffer Framebuffer $= fst (_fboCloud pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboCloud pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboCloud pdata)))
|
||||
depthFunc $= Just Lequal
|
||||
depthMask $= Disabled
|
||||
clearColor $= Color4 0.5 0.5 0.5 0
|
||||
@@ -212,7 +218,8 @@ doDrawing win pdata u = do
|
||||
----draw lightmap for cloud buffer
|
||||
depthMask $= Disabled
|
||||
blend $= Enabled
|
||||
bindFramebuffer Framebuffer $= fst (_fboLighting pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboLighting pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboLighting pdata)))
|
||||
createLightMap
|
||||
pdata
|
||||
lightPoints
|
||||
@@ -226,7 +233,8 @@ doDrawing win pdata u = do
|
||||
clearColor $= Color4 0 0 0 0
|
||||
--apply lightmap to cloud buffer
|
||||
clearColor $= Color4 0 0 0 0
|
||||
bindFramebuffer Framebuffer $= fst (_fboCloud pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboCloud pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboCloud pdata)))
|
||||
depthMask $= Disabled
|
||||
drawBuffers $= [FBOColorAttachment 0, NoBuffers]
|
||||
depthFunc $= Just Always
|
||||
@@ -237,7 +245,8 @@ doDrawing win pdata u = do
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
blendFunc $= (SrcAlpha, OneMinusSrcAlpha)
|
||||
-- bind base buffer for drawing bloom then clouds
|
||||
bindFramebuffer Framebuffer $= fst (_fboBase pdata)
|
||||
--bindFramebuffer Framebuffer $= fst (_fboBase pdata)
|
||||
glBindFramebuffer GL_FRAMEBUFFER (_unFBO (fst (_fboBase pdata)))
|
||||
--Draw blurred bloom onto base buffer
|
||||
blend $= Enabled
|
||||
blendFunc $= (SrcAlpha, One)
|
||||
@@ -266,7 +275,8 @@ doDrawing win pdata u = do
|
||||
drawShader (_barrelShader pdata) 1
|
||||
fboList =
|
||||
take (length rds - 1) (concat (repeat [fst $ _fbo2 pdata, fst $ _fbo3 pdata]))
|
||||
++ [defaultFramebufferObject]
|
||||
-- ++ [defaultFramebufferObject]
|
||||
++ [FBO 0]
|
||||
toList = fst (snd (_fboBase pdata)) : concat (repeat [snd $ _fbo2 pdata, snd $ _fbo3 pdata])
|
||||
bindings = zipWith (>>) (map bindFBO fboList) (map bindTO toList)
|
||||
activeTexture $= TextureUnit 1
|
||||
|
||||
Reference in New Issue
Block a user