Cleanup
This commit is contained in:
+36
-33
@@ -5,6 +5,7 @@ module Preload.Render (
|
||||
cleanUpRenderPreload,
|
||||
) where
|
||||
|
||||
import Control.Lens
|
||||
import Control.Monad
|
||||
import Data.Preload.Render
|
||||
import qualified Data.Vector.Mutable as MV
|
||||
@@ -46,8 +47,8 @@ preloadRender = do
|
||||
bindVertexArrayObject $= Just wpColVAOname
|
||||
setupVertexAttribPointer 0 4 8 0
|
||||
setupVertexAttribPointer 1 4 8 4
|
||||
let wpVAO = VAO{_vao = wpVAOname, _vaoVBO = wpVBO}
|
||||
wpColVAO = VAO{_vao = wpColVAOname, _vaoVBO = wpVBO}
|
||||
let wpVAO = VAO{_vaoName = wpVAOname, _vaoVBO = wpVBO}
|
||||
wpColVAO = VAO{_vaoName = wpColVAOname, _vaoVBO = wpVBO}
|
||||
-- setup window points VBO, VAOs and shaders
|
||||
winVBOname <- genObjectName
|
||||
winVBOptr <- mallocArray (8 * numDrawableWalls)
|
||||
@@ -62,7 +63,7 @@ preloadRender = do
|
||||
bindVertexArrayObject $= Just winColVAOname
|
||||
setupVertexAttribPointer 0 4 8 0
|
||||
setupVertexAttribPointer 1 4 8 4
|
||||
let winColVAO = VAO{_vao = winColVAOname, _vaoVBO = winVBO}
|
||||
let winColVAO = VAO{_vaoName = winColVAOname, _vaoVBO = winVBO}
|
||||
-- setup shape geometry/cap VBO and two VAOs
|
||||
shEBOname <- genObjectName
|
||||
shEBOptr <- mallocArray numDrawableElements
|
||||
@@ -93,8 +94,8 @@ preloadRender = do
|
||||
bindBuffer ArrayBuffer $= Just shVBOname
|
||||
setupVertexAttribPointer 0 3 7 0
|
||||
bindBuffer ElementArrayBuffer $= Just shEBOname
|
||||
let shPosColVAO = VAO{_vao = shPosColVAOname, _vaoVBO = shVBO}
|
||||
shPosVAO = VAO{_vao = shPosVAOname, _vaoVBO = shVBO}
|
||||
let shPosColVAO = VAO{_vaoName = shPosColVAOname, _vaoVBO = shVBO}
|
||||
shPosVAO = VAO{_vaoName = shPosVAOname, _vaoVBO = shVBO}
|
||||
--setup silhouette edge VAO
|
||||
shEdgeVAOname <- genObjectName
|
||||
bindVertexArrayObject $= Just shEdgeVAOname
|
||||
@@ -111,56 +112,58 @@ preloadRender = do
|
||||
, StreamDraw
|
||||
)
|
||||
let silEBO = EBO{_ebo = silEBOname, _eboPtr = silEBOptr}
|
||||
shEdgeVAO = VAO{_vao = shEdgeVAOname, _vaoVBO = shVBO}
|
||||
shEdgeVAO = VAO{_vaoName = shEdgeVAOname, _vaoVBO = shVBO}
|
||||
-- lighting shaders
|
||||
lightingWallShadShad <-
|
||||
makeShaderUsingVAO' "lighting/wallShadow" [vert', geom', frag'] EPoints wpVAO
|
||||
>>= addUniforms' ["lightPos"]
|
||||
makeShaderUsingVAO "lighting/wallShadow" [vert', geom', frag'] EPoints wpVAO
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingCapShad <-
|
||||
makeShaderUsingVAO' "lighting/cap" [vert', geom', frag'] ETriangles shPosVAO
|
||||
>>= addUniforms' ["lightPos"]
|
||||
makeShaderUsingVAO "lighting/cap" [vert', geom', frag'] ETriangles shPosVAO
|
||||
>>= addUniforms ["lightPos"]
|
||||
lightingLineShadowShad <-
|
||||
makeShaderUsingVAO' "lighting/lineShadow" [vert', geom', frag'] ELinesAdjacency shEdgeVAO
|
||||
>>= addUniforms' ["lightPos", "radiusUniform"]
|
||||
makeShaderUsingVAO "lighting/lineShadow" [vert', geom', frag'] 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
|
||||
>>= vaddTextureNoFilter' "data/texture/charMap.png"
|
||||
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
|
||||
|
||||
bloomBlurShad <- makeShaderUsingShaderVAO' "texture/bloomBlur" [vert', frag'] ETriangleStrip fsShad
|
||||
colorBlurShad <- makeShaderUsingShaderVAO' "texture/colorBlur" [vert', frag'] ETriangleStrip fsShad
|
||||
grayscaleShad <- makeShaderUsingShaderVAO' "texture/grayscale" [vert', frag'] ETriangleStrip fsShad
|
||||
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
|
||||
lightingTextureShad <-
|
||||
makeShaderUsingShaderVAO' "lighting/texture" [vert', frag'] ETriangleStrip fsShad
|
||||
>>= addUniforms' ["lightPos", "lumRad"]
|
||||
barrelShad <- makeShader' "texture/barrel" [vert', geom', frag'] [2, 2, 2, 1] EPoints
|
||||
makeShaderUsingVAO "lighting/texture" [vert', frag'] ETriangleStrip fsshadvao
|
||||
>>= addUniforms ["lightPos", "lumRad"]
|
||||
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
|
||||
>>= addTexture' "data/texture/grayscaleDirt.png"
|
||||
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
|
||||
>>= addTextureArray' "data/texture/ayene_wooden_floor_transformed.png"
|
||||
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
|
||||
bindShaderBuffers' [fsShad] [4, 4]
|
||||
|
||||
Reference in New Issue
Block a user