Cleanup
This commit is contained in:
+25
-21
@@ -35,7 +35,10 @@ preloadRender = do
|
||||
isoUBO <- mglCreate glCreateBuffers
|
||||
withArray (isoMatrix 0 1 (V2 0 0) (V2 2 2)) $ \ptr ->
|
||||
glNamedBufferStorage isoUBO 64 ptr 0
|
||||
glBindBufferBase GL_UNIFORM_BUFFER 1 theUBO
|
||||
|
||||
lightsubo <- mglCreate glCreateBuffers
|
||||
glNamedBufferData lightsubo 560 nullPtr GL_STREAM_DRAW
|
||||
glBindBufferBase GL_UNIFORM_BUFFER 1 lightsubo
|
||||
|
||||
-- setup wall points VBO, VAOs and shaders
|
||||
wpVBOname <- mglCreate glCreateBuffers
|
||||
@@ -127,54 +130,54 @@ preloadRender = do
|
||||
shEdgeVAO = VAO{_vaoName = shEdgeVAOname, _vaoVBO = shVBO}
|
||||
-- lighting shaders
|
||||
lightingWallShadShad <-
|
||||
makeShaderUsingVAO "lighting/wallShadow" [vert', geom', frag'] EPoints wpVAO
|
||||
makeShaderUsingVAO "lighting/wallShadow" [vert, geom, frag] EPoints wpVAO
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingCapShad <-
|
||||
makeShaderUsingVAO "lighting/cap" [vert', geom', frag'] ETriangles shPosVAO
|
||||
makeShaderUsingVAO "lighting/cap" [vert, geom] ETriangles shPosVAO
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingLineShadowShad <-
|
||||
makeShaderUsingVAO "lighting/lineShadow" [vert', geom', frag'] ELinesAdjacency shEdgeVAO
|
||||
makeShaderUsingVAO "lighting/lineShadow" [vert, geom] ELinesAdjacency shEdgeVAO
|
||||
>>= addUniforms ["lightPos", "radiusUniform"]
|
||||
-- positional shader
|
||||
positionalBlankShad <- makeShader "positional/blank" [vert', frag'] [3] ETriangles
|
||||
positionalBlankShad <- makeShader "positional/blank" [vert, frag] [3] ETriangles
|
||||
-- 2D draw shaders
|
||||
bslist <- makeShader "dualTwoD/basic" [vert', frag'] [3, 4] ETriangles
|
||||
bslista <- makeShader "dualTwoD/basic" [vert', frag'] [3, 4] ETriangles
|
||||
aslist <- makeShader "dualTwoD/arc" [vert', frag'] [3, 4, 3] ETriangles
|
||||
eslist <- makeShader "dualTwoD/ellipse" [vert', geom', frag'] [3, 4] ETriangles
|
||||
bezierQuadShader <- makeShader "dualTwoD/bezierQuad" [vert', frag'] [3, 4, 4] ETriangleStrip
|
||||
bslist <- makeShader "dualTwoD/basic" [vert, frag] [3, 4] ETriangles
|
||||
bslista <- makeShader "dualTwoD/basic" [vert, frag] [3, 4] ETriangles
|
||||
aslist <- makeShader "dualTwoD/arc" [vert, frag] [3, 4, 3] ETriangles
|
||||
eslist <- makeShader "dualTwoD/ellipse" [vert, geom, frag] [3, 4] ETriangles
|
||||
bezierQuadShader <- makeShader "dualTwoD/bezierQuad" [vert, frag] [3, 4, 4] ETriangleStrip
|
||||
cslist <-
|
||||
makeShader "dualTwoD/character" [vert', frag'] [3, 4, 2] ETriangles
|
||||
makeShader "dualTwoD/character" [vert, frag] [3, 4, 2] ETriangles
|
||||
>>= vaddTextureNoFilter "data/texture/charMap.png"
|
||||
-- this should really be a 2d texture array
|
||||
basicTweakZShad <- makeShader "dualTwoD/basicTweakZ" [vert', frag'] [4, 4] ETriangles
|
||||
basicTweakZShad <- makeShader "dualTwoD/basicTweakZ" [vert, frag] [4, 4] ETriangles
|
||||
-- fullscreen shaders
|
||||
--fullscreenAlphaHalveShad <- makeShaderSized "fullscreen/alphaHalve" [vert,frag] [2] 4 ETriangleStrip
|
||||
--pokeArray (shadVBOptr fullscreenAlphaHalveShad) $ concat cornerListNoCoord
|
||||
-- texture shaders, no textures attached
|
||||
fsShad <- makeShaderSized "texture/simple" [vert', frag'] [2, 2] 4 ETriangleStrip
|
||||
fsShad <- makeShaderSized "texture/simple" [vert, frag] [2, 2] 4 ETriangleStrip
|
||||
-- note we directly poke the shader vertex data here
|
||||
-- could possibly use an indirect draw call
|
||||
pokeArray (shadVBOptr' fsShad) $ concat cornerList
|
||||
|
||||
let fsshadvao = fsShad ^. shadVAO'
|
||||
|
||||
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert', frag'] ETriangleStrip fsshadvao
|
||||
colorBlurShad <- makeShaderUsingVAO "texture/colorBlur" [vert', frag'] ETriangleStrip fsshadvao
|
||||
grayscaleShad <- makeShaderUsingVAO "texture/grayscale" [vert', frag'] ETriangleStrip fsshadvao
|
||||
bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] ETriangleStrip fsshadvao
|
||||
colorBlurShad <- makeShaderUsingVAO "texture/colorBlur" [vert, frag] ETriangleStrip fsshadvao
|
||||
grayscaleShad <- makeShaderUsingVAO "texture/grayscale" [vert, frag] ETriangleStrip fsshadvao
|
||||
lightingTextureShad <-
|
||||
makeShaderUsingVAO "lighting/texture" [vert', frag'] ETriangleStrip fsshadvao
|
||||
makeShaderUsingVAO "lighting/texture" [vert, frag] ETriangleStrip fsshadvao
|
||||
>>= addUniforms ["lightPos", "lumRad"]
|
||||
barrelShad <- makeShader "texture/barrel" [vert', geom', frag'] [2, 2, 2, 1] EPoints
|
||||
barrelShad <- makeShader "texture/barrel" [vert, geom, frag] [2, 2, 2, 1] EPoints
|
||||
-- blank wallShader
|
||||
wallBlankShad <- makeShaderUsingVAO "wall/blank" [vert', geom', frag'] EPoints wpColVAO
|
||||
wallBlankShad <- makeShaderUsingVAO "wall/blank" [vert, geom, frag] EPoints wpColVAO
|
||||
-- textured wallShader
|
||||
wallTextureShad <-
|
||||
makeShaderUsingVAO "wall/texture" [vert', geom', frag'] EPoints wpColVAO
|
||||
makeShaderUsingVAO "wall/texture" [vert, geom, frag] EPoints wpColVAO
|
||||
>>= addTexture "data/texture/grayscaleDirt.png"
|
||||
---- texture array shader
|
||||
textArrayShad <-
|
||||
makeShader "texture/arrayPos" [vert', frag'] [3, 3] ETriangles
|
||||
makeShader "texture/arrayPos" [vert, frag] [3, 3] ETriangles
|
||||
>>= addTextureArray "data/texture/ayene_wooden_floor_transformed.png"
|
||||
-- >>= addTextureArray "data/texture/ayene_wooden_floor.png"
|
||||
-- bind fixed vertex data
|
||||
@@ -257,6 +260,7 @@ preloadRender = do
|
||||
, _rboBaseBloom = rboBaseBloomName
|
||||
, _matUBO = theUBO
|
||||
, _isoMatUBO = isoUBO
|
||||
, _lightsUBO = lightsubo
|
||||
}
|
||||
|
||||
--------------------end preloadRender
|
||||
|
||||
@@ -50,7 +50,7 @@ renderDataResizeUpdate xsize ysize xfull yfull rdata = do
|
||||
bbShad <-
|
||||
makeByteStringShaderUsingVAO
|
||||
"bloomBlur"
|
||||
[(vert', bbVert), (frag', bbFrag')]
|
||||
[(vert, bbVert), (frag, bbFrag')]
|
||||
ETriangleStrip
|
||||
(rdata ^. fullscreenShader . shadVAO')
|
||||
return (rdata'{_bloomBlurShader = bbShad})
|
||||
|
||||
Reference in New Issue
Block a user