diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 53722d8c2..76e87e6a4 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -174,7 +174,8 @@ doDrawing' win pdata u = do glEnable GL_BLEND glBlendFunc GL_ZERO GL_ONE_MINUS_SRC_COLOR glUseProgram (pdata ^. fullscreenShader) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 -- no longer need lighting texture with GL_COLOR_ATTACHMENT0 $ glInvalidateNamedFramebufferData (pdata ^. fboLighting . _1 . unFBO) 1 @@ -217,7 +218,8 @@ doDrawing' win pdata u = do -- glClearNamedFramebufferfv (pdata ^. fboHalf2 . _1 . unFBO) GL_COLOR 0 -- glBlendFunc GL_ONE GL_ONE_MINUS_SRC_ALPHA glUseProgram (_bloomBlurShader pdata) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 when (cfig ^. gr_bloom) $ do replicateM_ 1 $ pingPongBetween @@ -270,7 +272,8 @@ doDrawing' win pdata u = do glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _2 . unTO) glDepthMask GL_FALSE glUseProgram (pdata ^. alphaDivideShader) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 ----draw lightmap for cloud buffer glDepthMask GL_TRUE glDepthFunc GL_LESS @@ -327,20 +330,24 @@ doDrawing' win pdata u = do glEnable GL_BLEND glBlendFuncSeparate GL_ZERO GL_ONE_MINUS_SRC_COLOR GL_ZERO GL_ONE glUseProgram (pdata ^. fullscreenShader) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -- bind base buffer for drawing clouds and bloom glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) glUseProgram (pdata ^. fullscreenShader) glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _2 . unTO) glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 glBindTextureUnit 0 (pdata ^. fboCloud . _2 . _1 . unTO) glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 glBindTextureUnit 0 (pdata ^. fboWindow . _2 . _1 . unTO) glBlendFunc GL_DST_COLOR GL_ONE_MINUS_SRC_ALPHA - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 --Draw blurred bloom onto base buffer glEnable GL_BLEND @@ -348,7 +355,8 @@ doDrawing' win pdata u = do --glBlendFunc GL_ONE GL_ONE glBindTextureUnit 0 (_unTO . snd $ _fboHalf1 pdata) glUseProgram (pdata ^. fullscreenShader) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 --set viewport for radial distortion --setViewportSize (round winx) (round winy) @@ -361,7 +369,8 @@ doDrawing' win pdata u = do glBindTextureUnit 0 $ pdata ^. fboBase . _2 . _1 . unTO glBindFramebuffer GL_FRAMEBUFFER 0 glUseProgram (pdata ^. fullscreenShader) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 rs' -> do let rs = take 15 rs' glBindFramebuffer GL_FRAMEBUFFER 0 @@ -371,7 +380,8 @@ doDrawing' win pdata u = do glBindTextureUnit 1 $ pdata ^. fboBase . _2 . _1 . unTO glUseProgram (pdata ^. barrelShader . _1) glUniform1i 0 (fromIntegral (length rs)) - glDrawArrays GL_TRIANGLES 0 6 + --glDrawArrays GL_TRIANGLES 0 6 + glDrawArrays GL_TRIANGLES 0 3 glBlendFunc GL_SRC_ALPHA GL_ONE_MINUS_SRC_ALPHA -- draw the overlay glDepthFunc GL_ALWAYS diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index 7d31c6d30..d20fda631 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -42,7 +42,8 @@ preloadRender = do glBindBufferBase GL_UNIFORM_BUFFER 1 lightubo fulltexbo <- mglCreate glCreateBuffers - let ftsize = fromIntegral $ sizeOf (0::Float) * 6 * 4 + --let ftsize = fromIntegral $ sizeOf (0::Float) * 6 * 4 + let ftsize = fromIntegral $ sizeOf (0::Float) * 3 * 4 withArray cornerList $ \ptr -> glNamedBufferStorage fulltexbo ftsize ptr 0 glBindBufferBase GL_UNIFORM_BUFFER 2 fulltexbo @@ -226,6 +227,15 @@ preloadRender = do --------------------end preloadRender cornerList :: [Float] cornerList = concat + [ bl, br, tl + ] + where + bl = [-1, -1, 0, 0] + br = [ 3, -1, 2, 0] + tl = [-1, 3, 0, 2] + +cornerList' :: [Float] +cornerList' = concat [ bl, br, tl , tl, br, tr ]