diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index b8c2134aa..eb418fd52 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -19,6 +19,7 @@ data RenderData = RenderData , _lightingLineShadowShader :: FullShader , _lightingCapShader :: FullShader , _lightingTextureShader :: FullShader + , _alphaDivideShader :: Shader , _shadowEdgeShader :: FullShader , _shadowCapShader :: FullShader , _shadowWallShader :: FullShader diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 68ca8ad76..1670eb5d1 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -144,6 +144,7 @@ preloadRender = do ptr 0 screentexturevao <- setupVAOvbo' [2,2] 4 screentexturevbo + alphadivideshader <- makeShader4UsingVAO "texture2D/alphaDivide" [vert,frag] GL_TRIANGLE_STRIP screentexturevao fsShad <- makeShaderUsingVAO "texture/simple" [vert, frag] ETriangleStrip screentexturevao bloomBlurShad <- makeShaderUsingVAO "texture/bloomBlur" [vert, frag] ETriangleStrip screentexturevao colorBlurShad <- makeShaderUsingVAO "texture/colorBlur" [vert, frag] ETriangleStrip screentexturevao @@ -170,8 +171,6 @@ preloadRender = do (cloudshader, cloudebo) <- makeShaderEBO "cloud/basic" [vert, frag] cloudverxsizes (sum cloudverxsizes) GL_TRIANGLES cloudvbo --- -- bind fixed vertex data --- bufferPokedVBO (snd fsShad) 4 framebuf2 <- setupTextureFramebuffer 800 600 framebuf3 <- setupTextureFramebuffer 800 600 @@ -229,6 +228,7 @@ preloadRender = do , _windowShader = wallBlankShad{_shadVAO = winColVAO} -- , _textureArrayShader = textArrayShad , _fullscreenShader = fsShad + , _alphaDivideShader = alphadivideshader , _lightingTextureShader = lightingTextureShad , _bloomBlurShader = bloomBlurShad , _colorBlurShader = colorBlurShad diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index f12741f97..95753e845 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -4,6 +4,7 @@ module Shader.Compile ( makeShaderEBO, makeShader, makeShader4, + makeShader4UsingVAO, makeByteStringShaderUsingVAO, makeShaderSized, makeShaderUsingVAO, @@ -93,6 +94,22 @@ makeShader4 s shaderlist sizes strd pm vbo = do , _shadTex' = Nothing } +makeShader4UsingVAO :: + -- | First part of the name of the shader + String -> + -- | shader types + [GLenum] -> + GLenum -> + VAO -> + IO Shader +makeShader4UsingVAO s shaderlist pm vao = do + prog <- makeSourcedShader s shaderlist + return $ Shader + { _shaderUINT = prog + , _shaderVAO = vao + , _shaderPrimitive = pm + } + setupVBO :: Int -> IO VBO setupVBO vertexsize = do vboname <- mglCreate glCreateBuffers