Fix bloom resize bug, bloom itself could use improvement

This commit is contained in:
jgk
2021-08-19 23:39:12 +02:00
parent 9ef1f9b574
commit 6933d610cd
9 changed files with 214 additions and 48 deletions
+48 -38
View File
@@ -1,6 +1,7 @@
module Shader.Compile
( makeShader
--, makeVShader
, makeByteStringShader
, makeByteStringShaderUsingVAO
, makeShaderSized
, makeShaderUsingShaderVAO
, makeSourcedShader
@@ -15,43 +16,6 @@ import qualified Data.ByteString as BS
import Control.Monad
--import Control.Lens
import Graphics.Rendering.OpenGL hiding (Point,translate,scale,imageHeight)
--{- |
--Compiles a vertex shader found within the shader directory.
--The shader is made up of files begining with the inputted string with extensions .vert, .geom etc.
---}
--makeVShader
-- :: String -- ^ First part of the name of the shader
-- -> [ShaderType] -- ^ Filetype extensions
-- -> [Int] -- ^ The input vertex sizes
-- -> EPrimitiveMode
-- -> IO VShader
--makeVShader s shaderlist sizes pm = do
-- prog <- makeSourcedShader s shaderlist
-- vaob <- setupVAO sizes
-- return $ VShader
-- { _vshaderProgram = prog
-- , _vshaderVAO = vaob
-- , _vshaderTexture = Nothing
-- , _vshaderCustomUnis = []
-- , _vshaderDrawPrimitive = pm
-- }
-- | Takes the VAO from another shader
makeShaderUsingShaderVAO
:: String -- ^ First part of the name of the shader
-> [ShaderType] -- ^ Filetype extensions
-> EPrimitiveMode
-> FullShader
-> IO FullShader
makeShaderUsingShaderVAO s shaderlist pm fs = do
prog <- makeSourcedShader s shaderlist
return $ fs
{ _shaderProgram = prog
, _shaderDrawPrimitive = pm
, _shaderTexture = Nothing
, _shaderCustomUnis = []
}
{- |
Compiles a full shader found within the shader directory.
The shader is made up of files begining with the inputted string with extensions .vert, .geom etc.
@@ -72,6 +36,52 @@ makeShader s shaderlist sizes pm = do
, _shaderTexture = Nothing
, _shaderCustomUnis = []
}
makeByteStringShader
:: String -- ^ (Arbitrary) name of the shader
-> [(ShaderType,BS.ByteString)] -- ^ Filetype extensions and shader data
-> [Int] -- ^ The input vertex sizes
-> EPrimitiveMode
-> IO FullShader
makeByteStringShader s shaderlist sizes pm = do
prog <- makeShaderProgram s shaderlist
vaob <- setupVAO sizes
return $ FullShader
{ _shaderProgram = prog
, _shaderVAO = vaob
, _shaderDrawPrimitive = pm
, _shaderTexture = Nothing
, _shaderCustomUnis = []
}
makeByteStringShaderUsingVAO
:: String -- ^ (Arbitrary) name of the shader
-> [(ShaderType,BS.ByteString)] -- ^ Filetype extensions and shader data
-> EPrimitiveMode
-> FullShader
-> IO FullShader
makeByteStringShaderUsingVAO s shaderlist pm fs = do
prog <- makeShaderProgram s shaderlist
return $ fs
{ _shaderProgram = prog
, _shaderDrawPrimitive = pm
, _shaderTexture = Nothing
, _shaderCustomUnis = []
}
-- | Takes the VAO from another shader
makeShaderUsingShaderVAO
:: String -- ^ First part of the name of the shader
-> [ShaderType] -- ^ Filetype extensions
-> EPrimitiveMode
-> FullShader
-> IO FullShader
makeShaderUsingShaderVAO s shaderlist pm fs = do
prog <- makeSourcedShader s shaderlist
return $ fs
{ _shaderProgram = prog
, _shaderDrawPrimitive = pm
, _shaderTexture = Nothing
, _shaderCustomUnis = []
}
{- |
Compiles a full shader found within the shader directory.
The shader is made up of files begining with the inputted string with extensions .vert, .geom etc.