Prevent cloud "pop" when an overlapping cloud fades out to nothing

This commit is contained in:
2023-03-21 14:46:41 +00:00
parent e56ca3dd8d
commit d5fbc06332
7 changed files with 40 additions and 17 deletions
+14 -3
View File
@@ -2,6 +2,7 @@ module Shader
( freeShaderPointers'
, drawShaderLay
, shadVBOptr
, drawFullShader
, drawShader
, pokeBindFoldable
, pokeBindFoldableLayer
@@ -35,9 +36,9 @@ drawShaderLay l countsVector shadIn fs = do
(fromIntegral $ l*numSubElements)
(fromIntegral i)
drawShader :: FullShader -> Int -> IO ()
{-# INLINE drawShader #-}
drawShader fs i = do
drawFullShader :: FullShader -> Int -> IO ()
{-# INLINE drawFullShader #-}
drawFullShader fs i = do
glUseProgram (_shadName fs)
glBindVertexArray $ fs ^. shadVAO . vaoName
case _shadTex' fs of
@@ -50,6 +51,16 @@ drawShader fs i = do
0
(fromIntegral i)
drawShader :: Shader -> Int -> IO ()
{-# INLINE drawShader #-}
drawShader fs i = do
glUseProgram (_shaderUINT fs)
glBindVertexArray $ fs ^. shaderVAO . vaoName
glDrawArrays
(_shaderPrimitive fs)
0
(fromIntegral i)
freeShaderPointers' :: (FullShader,VBO) -> IO ()
freeShaderPointers' = free . _vboPtr . snd