Cleanup shaders

This commit is contained in:
2025-11-13 17:52:01 +00:00
parent 0ea7af4bdd
commit a7a11ccc03
12 changed files with 142 additions and 205 deletions
+11 -37
View File
@@ -31,7 +31,7 @@ preloadRender = do
putStrLn "Number cores available:"
getNumCapabilities >>= print
-- set up uniform buffer object
-- set up uniform buffer objects
putStrLn "Setup UBO"
theUBO <- mglCreate glCreateBuffers
glNamedBufferStorage theUBO 64 nullPtr GL_DYNAMIC_STORAGE_BIT
@@ -43,7 +43,7 @@ preloadRender = do
fulltexbo <- mglCreate glCreateBuffers
let ftsize = fromIntegral $ sizeOf (0::Float) * 6 * 4
withArray cornerList' $ \ptr ->
withArray cornerList $ \ptr ->
glNamedBufferStorage fulltexbo ftsize ptr 0
glBindBufferBase GL_UNIFORM_BUFFER 2 fulltexbo
@@ -121,20 +121,12 @@ preloadRender = do
-- GL_NEAREST_MIPMAP_LINEAR GL_LINEAR ?
initTexture2DArray 50 "data/charMaps/cMap16x32.Custom.png" 2 16 32 256 GL_NEAREST GL_NEAREST
putStrLn "Setup full screen shaders"
(_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
alphadivideshader <- makeShaderUsingVAO "texture2D/alphaDivide" [vert, frag] pmTriangleStrip screentexturevao
-- (_, screentexturevao) <- setupStaticVBOVAO (toFloatVAs [2, 2]) (concat cornerList)
alphadivideshader <- makeSourcedShader "texture2D/alphaDivide" [vert, frag]
fsShad <- makeSourcedShader "texture/simple" [vert, frag]
transcompshader <-
makeShaderUsingVAO
"fullscreen/transparencyComp"
[vert, frag]
pmTriangleStrip
screentexturevao
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] pmTriangleStrip screentexturevao
colorBlurShad <- makeShaderUsingVAO "texture/colorBlur" [vert, frag] pmTriangleStrip screentexturevao
grayscaleShad <- makeShaderUsingVAO "texture/grayscale" [vert, frag] pmTriangleStrip screentexturevao
lightingTextureShad <-
makeShaderUsingVAO "lighting/texture" [vert, frag] pmTriangleStrip screentexturevao
transcompshader <- makeSourcedShader "fullscreen/transparencyComp" [vert, frag]
bloomBlurShad <- makeSourcedShader "texture/bloomBlur" [vert, frag]
lightingTextureShad <- makeSourcedShader "lighting/texture" [vert, frag]
barrelShad <- makeShaderVBO "texture/barrel" [vert, geom, frag] (toFloatVAs [2, 2, 2, 1]) pmPoints
-- blank wallShader
putStrLn "Setup floor VBO, shader"
@@ -154,21 +146,12 @@ preloadRender = do
(toFloatVAs [3])
pmTriangles
chasmvbo
-- putStrLn "Setup cloud VBO, shader"
-- let cloudverxsizes = [4, 4, 4]
-- cloudvbo <- setupVBO (floatSize * sum cloudverxsizes)
-- (cloudshader, cloudebo) <-
-- makeShaderEBO "cloud/basic" [vert, frag] (toFloatVAs cloudverxsizes) pmTriangles cloudvbo
framebuf2 <- newTextureFramebuffer
framebuf3 <- newTextureFramebuffer
putStrLn "Setup framebuffers"
rboBaseBloomName <- mglCreate glCreateRenderbuffers
glNamedRenderbufferStorage
rboBaseBloomName
GL_DEPTH24_STENCIL8
800
600
glNamedRenderbufferStorage rboBaseBloomName GL_DEPTH24_STENCIL8 800 600
-- if adding to this list, recall you need to sizeFBOs
fboBaseName <- setupFramebuffer3GivenStencil rboBaseBloomName
@@ -203,9 +186,7 @@ preloadRender = do
, _alphaDivideShader = alphadivideshader
, _lightingTextureShader = lightingTextureShad
, _bloomBlurShader = bloomBlurShad
, _colorBlurShader = colorBlurShad
, _barrelShader = barrelShad
, _grayscaleShader = grayscaleShad
, _fbo2 = framebuf2
, _fbo3 = framebuf3
, _fboHalf1 = fboHalf1Name
@@ -228,20 +209,13 @@ preloadRender = do
, _winVBO = winvbo
, _cloudVBO = cloudvbo
, _cloudShader = cloudshader
, _screenTextureVAO = screentexturevao
-- , _screenTextureVAO = screentexturevao
, _dummyVAO = VAO dummyvao
}
--------------------end preloadRender
cornerList :: [[Float]]
cornerList =
[ [-1, 1, 0, 1]
, [-1, -1, 0, 0]
, [1, 1, 1, 1]
, [1, -1, 1, 0]
]
cornerList' :: [Float]
cornerList' = concat
cornerList :: [Float]
cornerList = concat
[ bl, br, tl
, tl, br, tr
]
+1 -6
View File
@@ -32,10 +32,5 @@ renderDataResizeUpdate cfig rdata = do
(bh, bmid) = BS.breakSubstring "(" bbFrag
(_, btt) = BS.breakSubstring ")" bmid
bbFrag' = BS.append bh $ BS.append (BSC.pack $ '(' : show xsize ++ "," ++ show ysize) btt
bbShad <-
makeByteStringShaderUsingVAO
"bloomBlur"
[(vert, bbVert), (frag, bbFrag')]
pmTriangleStrip
(rdata ^. screenTextureVAO)
bbShad <- makeShaderProgram "bloomBlur" [(vert, bbVert), (frag, bbFrag')]
return rdata'{_bloomBlurShader = bbShad}