Shaders: work on fullscreen, cleanup creation
This commit is contained in:
+13
-7
@@ -147,7 +147,7 @@ doDrawing' win pdata u = do
|
||||
-- (_unPrimitiveMode $ pdata ^. wallShader . shaderPrimitive)
|
||||
-- 0
|
||||
-- (fromIntegral trueNWalls)
|
||||
glUseProgram (pdata ^. pullWallShader . shaderUINT)
|
||||
glUseProgram (pdata ^. pullWallShader)
|
||||
--glBindVertexArray $ pdata ^. dummyVAO . vaoName
|
||||
glDrawArrays GL_TRIANGLES 0 (fromIntegral trueNWalls * 6)
|
||||
--draw object shapes onto base buffer
|
||||
@@ -202,7 +202,8 @@ doDrawing' win pdata u = do
|
||||
glBindTextureUnit 0 (pdata ^. fboLighting . _2 . unTO)
|
||||
glEnable GL_BLEND
|
||||
glBlendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
glUseProgram (pdata ^. fullscreenShader)
|
||||
glDrawArrays GL_TRIANGLES 0 6
|
||||
with GL_COLOR_ATTACHMENT0 $
|
||||
glInvalidateNamedFramebufferData (pdata ^. fboLighting . _1 . unFBO) 1
|
||||
--draw bloom onto bloom buffer
|
||||
@@ -334,7 +335,9 @@ doDrawing' win pdata u = do
|
||||
ptr
|
||||
glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _2 . unTO)
|
||||
glDepthMask GL_FALSE
|
||||
drawShader (pdata ^. alphaDivideShader) 4
|
||||
-- drawShader (pdata ^. alphaDivideShader) 4
|
||||
glUseProgram (pdata ^. alphaDivideShader . shaderUINT)
|
||||
glDrawArrays GL_TRIANGLES 0 6
|
||||
----draw lightmap for cloud buffer
|
||||
glDepthMask GL_TRUE
|
||||
glDepthFunc GL_LESS
|
||||
@@ -364,7 +367,7 @@ doDrawing' win pdata u = do
|
||||
glDisable GL_BLEND
|
||||
-- glDepthFunc GL_ALWAYS
|
||||
-- glDisable GL_CULL_FACE
|
||||
glUseProgram $ pdata ^. windowPullShader . shaderUINT
|
||||
glUseProgram $ pdata ^. windowPullShader
|
||||
glBindVertexArray $ pdata ^. dummyVAO . vaoName
|
||||
glDrawArrays GL_TRIANGLES 0 (fromIntegral nWins * 6)
|
||||
glDisable GL_DEPTH_CLAMP
|
||||
@@ -380,7 +383,8 @@ doDrawing' win pdata u = do
|
||||
glBindTextureUnit 0 (_unTO . snd $ _fboLighting pdata)
|
||||
glEnable GL_BLEND
|
||||
glBlendFuncSeparate GL_ZERO GL_ONE_MINUS_SRC_COLOR GL_ZERO GL_ONE
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
glUseProgram (pdata ^. fullscreenShader)
|
||||
glDrawArrays GL_TRIANGLES 0 6
|
||||
glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||
|
||||
-- bind base buffer for drawing clouds and bloom
|
||||
@@ -406,7 +410,8 @@ doDrawing' win pdata u = do
|
||||
glBlendFunc GL_SRC_ALPHA GL_ONE
|
||||
--glBlendFunc GL_ONE GL_ONE
|
||||
glBindTextureUnit 0 (_unTO . snd $ _fboHalf1 pdata)
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
glUseProgram (pdata ^. fullscreenShader)
|
||||
glDrawArrays GL_TRIANGLES 0 6
|
||||
-- glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA
|
||||
|
||||
--set viewport for radial distortion
|
||||
@@ -420,7 +425,8 @@ doDrawing' win pdata u = do
|
||||
(rds, x) | null rds || not x -> do
|
||||
glBindTextureUnit 0 $ pdata ^. fboBase . _2 . _1 . unTO
|
||||
glBindFramebuffer GL_FRAMEBUFFER 0
|
||||
drawShader (_fullscreenShader pdata) 4
|
||||
glUseProgram (pdata ^. fullscreenShader)
|
||||
glDrawArrays GL_TRIANGLES 0 6
|
||||
(rds, _) -> do
|
||||
let bindDrawDist :: Distortion -> IO ()
|
||||
bindDrawDist (RadialDistortion (V2 a b) (V2 c d) (V2 e f) g) = do
|
||||
|
||||
Reference in New Issue
Block a user