From 409180959cdc783d6937d14f9320d358f7501c72 Mon Sep 17 00:00:00 2001 From: justin Date: Wed, 12 Nov 2025 19:57:07 +0000 Subject: [PATCH] Use vertex pulling for clouds --- shader/pull/cloud.frag | 15 ++++++ shader/pull/cloud.vert | 25 +++++++++ shader/pull/ellipse.vert | 18 +++++++ shader/shape/basic.frag | 1 - shader/shape/basic.vert | 5 +- src/Data/Preload/Render.hs | 2 +- src/Dodge/Render.hs | 101 +++++++++++++++++++++++-------------- src/Preload/Render.hs | 38 +++++++------- src/Shader/Poke/Cloud.hs | 75 +++++++++++++++++---------- src/Shape/Parameters.hs | 1 - tags | 28 +++++----- 11 files changed, 202 insertions(+), 107 deletions(-) create mode 100644 shader/pull/cloud.frag create mode 100644 shader/pull/cloud.vert create mode 100644 shader/pull/ellipse.vert diff --git a/shader/pull/cloud.frag b/shader/pull/cloud.frag new file mode 100644 index 000000000..bfec33c64 --- /dev/null +++ b/shader/pull/cloud.frag @@ -0,0 +1,15 @@ +#version 450 core +in vec3 vPos; +in vec4 vCol; +in vec2 vControls; +layout (location=0) out vec4 fCol; +layout (location=1) out vec4 fPos; +layout (location=2) out vec4 fNorm; +void main() +{ + float d = dot(vControls,vControls); + if (d > 1) {discard;} + fCol = vec4(vCol.xyz,vCol.w*(1-d)); + fPos = vec4(vPos, vCol.w*(1-d)); + fNorm = vec4(-vControls, -0.1 + 0.2 * d ,fPos.w); +} diff --git a/shader/pull/cloud.vert b/shader/pull/cloud.vert new file mode 100644 index 000000000..a4002197c --- /dev/null +++ b/shader/pull/cloud.vert @@ -0,0 +1,25 @@ +#version 450 core +struct CloudPosCol { vec4 pos; vec4 col; }; +layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; +layout (std430, binding = 6) readonly buffer CPos { CloudPosCol data[]; }; +const vec2 indices[6] = + {vec2(-1,-1) // 0 2--3 + ,vec2( 1,-1) // 1 | | + ,vec2( 1, 1) // 3 0--1 + ,vec2(-1,-1) // 0 + ,vec2(-1, 1) // 2 + ,vec2( 1, 1) // 3 + }; +out vec4 vCol; +out vec2 vControls; +out vec3 vPos; +void main() +{ + uint i = gl_VertexID / 6; + uint k = gl_VertexID % 6; + vCol = data[i].col; +// vCol = vec4(1,0.5,0,1); + vControls = indices[k]; + vPos = vec3(data[i].pos.xy + 20*vControls, data[i].pos.z); + gl_Position = theMat * vec4(vPos,1); +} diff --git a/shader/pull/ellipse.vert b/shader/pull/ellipse.vert new file mode 100644 index 000000000..8f1bbcc13 --- /dev/null +++ b/shader/pull/ellipse.vert @@ -0,0 +1,18 @@ +#version 450 core +struct Verx { vec4 pos; vec4 col; }; +layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; +layout (std430, binding = 6) readonly buffer Pos { Verx data[]; }; +int indices[6] = {0,1,3,0,3,2}; +out vec4 vColC; +out vec4 vColE; +out vec4 vPos; +out vec2 vDist; +void main() +{ + uint i0 = gl_VertexID / 6; + uint k = indices[gl_VertexID % 6]; + vec4 br = + //gl_Position = theMat * vec4(pos,1); + gl_Position = vec4(pos,1); + vCol = col; +} diff --git a/shader/shape/basic.frag b/shader/shape/basic.frag index f461b1b83..c217f0445 100644 --- a/shader/shape/basic.frag +++ b/shader/shape/basic.frag @@ -9,6 +9,5 @@ void main() { fCol = vCol; fPos = vPos; - //fNorm = vec4(vNorm.xyz - vPos.xyz,1); fNorm = vNorm ; } diff --git a/shader/shape/basic.vert b/shader/shape/basic.vert index bc47d171e..7859a3a0a 100644 --- a/shader/shape/basic.vert +++ b/shader/shape/basic.vert @@ -1,7 +1,5 @@ #version 450 core -//struct PosColNorm { vec4 pos; vec4 norm;uint col; uint dummy; }; -struct PosColNorm { vec4 pos; uint norm;uint col; }; -// I don't know if the dummy is necessary +struct PosColNorm { vec4 pos; uint norm; uint col; }; layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; layout (std430, binding = 3) readonly buffer Data { PosColNorm data[]; }; layout (std430, binding = 4) readonly buffer Indices { uint indices[]; }; @@ -12,7 +10,6 @@ void main() { vPos = data[indices[gl_VertexID]].pos; vCol = unpackUnorm4x8(data[indices[gl_VertexID]].col); vNorm = unpackSnorm4x8(data[indices[gl_VertexID]].norm); - //vNorm = n *2 - vec4(1,1,1,1); gl_Position = theMat * vec4(vPos.xyz,1); } //layout (location = 0) in vec4 pos; diff --git a/src/Data/Preload/Render.hs b/src/Data/Preload/Render.hs index 2498d1eb6..8f504817e 100644 --- a/src/Data/Preload/Render.hs +++ b/src/Data/Preload/Render.hs @@ -55,7 +55,7 @@ data RenderData = RenderData , _wallVBO :: VBO , _cloudVBO :: VBO , _cloudShader :: Shader - , _cloudEBO :: UintBO +-- , _cloudEBO :: UintBO , _screenTextureVAO :: VAO , _dummyVAO :: VAO } diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 6853bc5d3..a83fcc558 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -61,6 +61,11 @@ doDrawing' win pdata u = do let wswp = wallSPics <> worldSPic cfig u ws = wswp ^. _1 wp = wswp ^. _2 + nCloudVs <- + V.foldM' + (pokeCloud (pdata ^. cloudVBO . vboPtr)) + 0 + (V.fromList $ w ^. cWorld . lWorld . clouds) ((nWins, trueNWalls), (nShapeVs, nIndices, nSilIndices)) <- MP.liftM3 (\_ a b -> (a, b)) @@ -83,28 +88,40 @@ doDrawing' win pdata u = do (0, 0, 0) ws ) - (nCloudVs', nCloudIs') <- - -- Might want to sort the clouds based on z depth, not sure - V.foldM' - (pokeCloud (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) - (0, 0) - (V.fromList $ w ^. cWorld . lWorld . clouds) - (nCloudVs, nCloudIs) <- - V.foldM' - (pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) - (nCloudVs', nCloudIs') - (V.fromList $ w ^. cWorld . lWorld . dusts) +-- (nCloudVs', nCloudIs') <- +-- -- Might want to sort the clouds based on z depth, not sure +-- V.foldM' +-- (pokeCloud (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) +-- (0, 0) +-- (V.fromList $ w ^. cWorld . lWorld . clouds) +-- (nCloudVs, nCloudIs) <- +-- V.foldM' +-- (pokeDust (pdata ^. cloudVBO . vboPtr) (pdata ^. cloudEBO . uiboPtr)) +-- (nCloudVs', nCloudIs') +-- (V.fromList $ w ^. cWorld . lWorld . dusts) + --nCloudVs' <- +-- nCloudVs <- +-- V.foldM' +-- (pokeCloud (pdata ^. cloudVBO . vboPtr)) +-- 0 +-- (V.fromList $ w ^. cWorld . lWorld . clouds) +-- nCloudVs <- +-- V.foldM' +-- (pokeDust (pdata ^. cloudVBO . vboPtr)) +-- nCloudVs' +-- (V.fromList $ w ^. cWorld . lWorld . dusts) -- bind wall points, silhouette data, surface geometry bufferShaderLayers shadV pokeCounts mapM_ (uncurry bufferPokedVBO) [ (_vboShapes pdata, nShapeVs) - , (pdata ^. cloudVBO, nCloudVs) +-- , (pdata ^. cloudVBO, nCloudVs) should probably do it this way +-- eventually ] mapM_ (uncurry bufferEBO) - [ (_cloudEBO pdata, nCloudIs) - , (_shapeEBO pdata, nIndices) + [-- (_cloudEBO pdata, nCloudIs) + (_shapeEBO pdata, nIndices) ] -- set the coordinate uniform ready for drawing elements using world coordinates bufferPerspectiveMatrixUBO cfig (w ^. wCam) (pdata ^. matUBO) @@ -115,13 +132,20 @@ doDrawing' win pdata u = do glNamedBufferSubData (pdata ^. wallVBO . vboName) 0 (fromIntegral $ trueNWalls * sizeOf (0::Float) * 8) (pdata ^. wallVBO . vboPtr) - glNamedBufferSubData (pdata ^. vboShapes . vboName) 0 - (fromIntegral $ nShapeVs * shapeVerxSize) - (pdata ^. vboShapes . vboPtr) +-- glNamedBufferSubData (pdata ^. vboShapes . vboName) 0 +-- (fromIntegral $ nShapeVs * shapeVerxSize) +-- (pdata ^. vboShapes . vboPtr) glNamedBufferSubData (pdata ^. shapeEBO . uiboName) 0 (fromIntegral $ nIndices * (sizeOf (0::GLuint))) (pdata ^. shapeEBO . uiboPtr) bufferEBO (pdata ^. silhouetteEBO) nSilIndices +-- withArray [0::Float,0,30,1,1,1,1,1] $ +-- glNamedBufferSubData (pdata ^. cloudVBO . vboName) 0 +-- (fromIntegral (sizeOf (0::Float)) * 8) + glNamedBufferSubData (pdata ^. cloudVBO . vboName) + 0 + (fromIntegral $ 8 * nCloudVs * (sizeOf (0::Float))) + (pdata ^. cloudVBO . vboPtr) setViewport _gr_world_res cfig glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) glDepthMask GL_TRUE @@ -169,11 +193,8 @@ doDrawing' win pdata u = do -- 0 -- (fromIntegral trueNWalls) glUseProgram (pdata ^. pullWallShader . shaderUINT) - glBindVertexArray $ pdata ^. dummyVAO . vaoName - glDrawArrays - GL_TRIANGLES - 0 - (fromIntegral trueNWalls * 6) + --glBindVertexArray $ pdata ^. dummyVAO . vaoName + glDrawArrays GL_TRIANGLES 0 (fromIntegral trueNWalls * 6) --draw object shapes onto base buffer let fs = _shapeShader pdata glUseProgram (_shaderUINT fs) @@ -251,11 +272,13 @@ doDrawing' win pdata u = do glBlendFuncSeparate GL_ZERO GL_ONE GL_CONSTANT_ALPHA GL_ONE_MINUS_SRC_ALPHA glUseProgram (pdata ^. cloudShader . shaderUINT) glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName - glDrawElements - (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) - (fromIntegral nCloudIs) - GL_UNSIGNED_INT - nullPtr + glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) + --glDrawArrays GL_TRIANGLES 0 6 +-- glDrawElements +-- (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) +-- (fromIntegral nCloudIs) +-- GL_UNSIGNED_INT +-- nullPtr glDepthMask GL_TRUE --setup downscale viewport for blurring bloom @@ -295,11 +318,13 @@ doDrawing' win pdata u = do 0 glUseProgram (pdata ^. cloudShader . shaderUINT) glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName - glDrawElements - (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) - (fromIntegral nCloudIs) - GL_UNSIGNED_INT - nullPtr + glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) + --glDrawArrays GL_TRIANGLES 0 6 +---- glDrawElements +---- (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) +---- (fromIntegral nCloudIs) +---- GL_UNSIGNED_INT +---- nullPtr -- glEnable GL_CULL_FACE -- glEnable GL_DEPTH_CLAMP -- glCullFace GL_BACK @@ -327,11 +352,13 @@ doDrawing' win pdata u = do glUseProgram (pdata ^. cloudShader . shaderUINT) glBindVertexArray $ pdata ^. cloudShader . shaderVAO . vaoName -- glDepthMask GL_TRUE - glDrawElements - (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) - (fromIntegral nCloudIs) - GL_UNSIGNED_INT - nullPtr + glDrawArrays GL_TRIANGLES 0 (fromIntegral nCloudVs * 6) + --glDrawArrays GL_TRIANGLES 0 6 + ----glDrawElements + ---- (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) + ---- (fromIntegral nCloudIs) + ---- GL_UNSIGNED_INT + ---- nullPtr --- -- glEnable GL_CULL_FACE -- glEnable GL_DEPTH_CLAMP diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index a121bc2ed..db20029b7 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -58,7 +58,8 @@ preloadRender = do let shapessbosize = fromIntegral shapeVerxSize * 65536 glNamedBufferStorage shapessbo shapessbosize nullPtr GL_DYNAMIC_STORAGE_BIT glBindBufferBase GL_SHADER_STORAGE_BUFFER 3 shapessbo - shptr <- mallocArray (fromIntegral shapessbosize) + --shptr <- mallocArray (fromIntegral shapessbosize) + shptr <- mallocArray (8 * 65536) let shVBO = VBO shapessbo shptr shapeVerxSize ishapessbo <- mglCreate glCreateBuffers @@ -74,27 +75,26 @@ preloadRender = do glBindBufferBase GL_SHADER_STORAGE_BUFFER 5 ieshapessbo ieptr <- mallocArray 65536 -- so we can go back to glushort... + cloudbo <- mglCreate glCreateBuffers + let cvsize = (sizeOf (0::Float)) * 8 + cloudbosize = fromIntegral cvsize * 65536 -- this should be changed + glNamedBufferStorage cloudbo cloudbosize nullPtr GL_DYNAMIC_STORAGE_BIT + glBindBufferBase GL_SHADER_STORAGE_BUFFER 6 cloudbo + cloudptr <- mallocBytes (fromIntegral cloudbosize) + let cloudvbo = VBO cloudbo cloudptr cvsize + dummyvao <- mglCreate glGenVertexArrays + winpull <- makeShaderUsingVAO "pull/window" [vert,frag] pmTriangles (VAO dummyvao) wallpull <- makeShaderUsingVAO "pull/wall" [vert,frag] pmTriangles (VAO dummyvao) - putStrLn "Setup shape VBO, VAO, EBO" --- shVBO <- setupVBO shapeVerxSize --- shPosVAO <- setupVAOUsingVBO [VertexAttribute 4 GL_FLOAT GL_FALSE 0] shVBO --- shEBO <- setupEBO shPosVAO - -- note the shape shader vao is distinct from the position vao, but they - -- share an EBO --- shapeshader <- makeShaderUsingVBO "shape/basic" [vert, frag] shapeVerxAttributes --- pmTriangles --- shVBO --- glVertexArrayElementBuffer (shapeshader ^. shaderVAO . vaoName) (shEBO ^. uiboName) shapeshader <- makeShaderUsingVAO "shape/basic" [vert, frag] pmTriangles (VAO dummyvao) - putStrLn "Setup wall/windows VBO, VAO, EBO, shader" --- winvbo <- setupVBO (floatSize * 8) + cloudshader <- makeShaderUsingVAO "pull/cloud" [vert,frag] pmTriangles (VAO dummyvao) + putStrLn "Setup lighting shaders" lightingWallShadShad <- makeShaderUsingVAO "lighting/wallShadow" [vert] pmTriangles (VAO dummyvao) @@ -158,11 +158,11 @@ preloadRender = do (toFloatVAs [3]) pmTriangles chasmvbo - putStrLn "Setup cloud VBO, shader" - let cloudverxsizes = [4, 4, 4] - cloudvbo <- setupVBO (floatSize * sum cloudverxsizes) - (cloudshader, cloudebo) <- - makeShaderEBO "cloud/basic" [vert, frag] (toFloatVAs cloudverxsizes) pmTriangles cloudvbo +-- putStrLn "Setup cloud VBO, shader" +-- let cloudverxsizes = [4, 4, 4] +-- cloudvbo <- setupVBO (floatSize * sum cloudverxsizes) +-- (cloudshader, cloudebo) <- +-- makeShaderEBO "cloud/basic" [vert, frag] (toFloatVAs cloudverxsizes) pmTriangles cloudvbo framebuf2 <- newTextureFramebuffer framebuf3 <- newTextureFramebuffer @@ -240,7 +240,7 @@ preloadRender = do -- , _wallShader = wallshader , _cloudVBO = cloudvbo , _cloudShader = cloudshader - , _cloudEBO = cloudebo +-- , _cloudEBO = cloudebo , _screenTextureVAO = screentexturevao , _dummyVAO = VAO dummyvao } diff --git a/src/Shader/Poke/Cloud.hs b/src/Shader/Poke/Cloud.hs index 4028237fd..a21168468 100644 --- a/src/Shader/Poke/Cloud.hs +++ b/src/Shader/Poke/Cloud.hs @@ -4,19 +4,21 @@ module Shader.Poke.Cloud (pokeCloud, pokeDust) where import Color import Control.Lens -import qualified Data.Vector.Unboxed as UV +--import qualified Data.Vector.Unboxed as UV import Dodge.Data.Cloud import Dodge.Material.Color import Foreign import Geometry.Data -import Graphics.GL.Core45 -import Linear +--import Graphics.GL.Core45 +--import Linear -pokeCloud :: Ptr Float -> Ptr GLuint -> (Int, Int) -> Cloud -> IO (Int, Int) -pokeCloud vptr iptr (nv, ni) = pokeCloudLike vptr iptr (nv, ni) . mkCloudCloudLike +pokeCloud :: Ptr Float -> Int -> Cloud -> IO Int +pokeCloud vptr nv = pokeCloudLike vptr nv . mkCloudCloudLike +--pokeCloud :: Ptr Float -> Ptr GLuint -> (Int, Int) -> Cloud -> IO (Int, Int) +--pokeCloud vptr iptr (nv, ni) = pokeCloudLike vptr iptr (nv, ni) . mkCloudCloudLike -pokeDust :: Ptr Float -> Ptr GLuint -> (Int, Int) -> Dust -> IO (Int, Int) -pokeDust vptr iptr (nv, ni) = pokeCloudLike vptr iptr (nv, ni) . mkDustCloudLike +pokeDust :: Ptr Float -> Int -> Dust -> IO Int +pokeDust vptr nv = pokeCloudLike vptr nv . mkDustCloudLike mkCloudCloudLike :: Cloud -> (Point3, Point4) mkCloudCloudLike x = (x ^. clPos, V4 r g b a) @@ -30,21 +32,38 @@ mkDustCloudLike x = (x ^. dsPos, V4 r g b a) (V4 r g b a') = dustColor x a = a' * min 1 (fromIntegral (_dsTimer x) / 100) -pokeCloudLike :: - Ptr Float -> Ptr GLuint -> (Int, Int) -> (Point3, Point4) -> IO (Int, Int) -pokeCloudLike vptr iptr (nv, ni) x = do - UV.imapM_ (pokeCloudLikeVerx vptr x nv) $ - UV.fromList [(1, 1), (-1, 1), (-1, -1), (1, -1)] - UV.imapM_ (pokeCloudIndex iptr nv ni) $ UV.fromList [0, 1, 2, 2, 0, 3] - return (nv + 4, ni + 6) +--pokeCloudLike :: +-- Ptr Float -> Ptr GLuint -> (Int, Int) -> (Point3, Point4) -> IO (Int, Int) +--pokeCloudLike vptr iptr (nv, ni) x = do +-- UV.imapM_ (pokeCloudLikeVerx vptr x nv) $ +-- UV.fromList [(1, 1), (-1, 1), (-1, -1), (1, -1)] +-- UV.imapM_ (pokeCloudIndex iptr nv ni) $ UV.fromList [0, 1, 2, 2, 0, 3] +-- return (nv + 4, ni + 6) +pokeCloudLike :: Ptr Float -> Int -> (Point3, Point4) -> IO Int +pokeCloudLike ptr nv (V3 x y z, V4 r g b a) = do + pokeElemOff ptr (nv * 8) x + pokeElemOff ptr (nv * 8 + 1) y + pokeElemOff ptr (nv * 8 + 2) z + pokeElemOff ptr (nv * 8 + 3) 1 + pokeElemOff ptr (nv * 8 + 4) r + pokeElemOff ptr (nv * 8 + 5) g + pokeElemOff ptr (nv * 8 + 6) b + pokeElemOff ptr (nv * 8 + 7) a + return $ nv + 1 -pokeCloudLikeVerx :: Ptr Float -> (Point3, Point4) -> Int -> Int -> (Float, Float) -> IO () -{-# INLINE pokeCloudLikeVerx #-} -pokeCloudLikeVerx ptr (V3 cx cy cz, V4 r g b a) nv i (dx, dy) = - UV.imapM_ (pokeCloudFloat ptr (nv + i)) $ - UV.fromList [x, y, cz, 1, r, g, b, a, dx, dy, 0, 0] - where - V2 x y = V2 cx cy + 20 *^ V2 dx dy +--pokeCloudLikeVerx :: Ptr Float -> (Point3, Point4) -> Int -> Int -> (Float, Float) -> IO () +--{-# INLINE pokeCloudLikeVerx #-} +--pokeCloudLikeVerx ptr (V3 cx cy cz, V4 r g b a) nv i (dx, dy) = +-- UV.imapM_ (pokeCloudFloat ptr (nv + i)) $ +-- UV.fromList [x, y, cz, 1, r, g, b, a, dx, dy, 0, 0] +-- where +-- V2 x y = V2 cx cy + 20 *^ V2 dx dy + +--pokeCloudLikeVerx :: Ptr Float -> (Point3, Point4) -> Int -> Int -> (Float, Float) -> IO () +--{-# INLINE pokeCloudLikeVerx #-} +--pokeCloudLikeVerx ptr (V3 x y z, V4 r g b a) nv i (dx, dy) = +-- UV.imapM_ (pokeCloudFloat ptr (nv + i)) $ +-- UV.fromList [x, y, z, 1, r, g, b, a] clColor :: CloudType -> Color clColor = \case @@ -53,13 +72,13 @@ clColor = \case CryoReleaseCloud -> white GasCloud -> green -pokeCloudFloat :: Ptr Float -> Int -> Int -> Float -> IO () -{-# INLINE pokeCloudFloat #-} -pokeCloudFloat ptr nv i = pokeElemOff ptr (nv * 12 + i) - -pokeCloudIndex :: Ptr GLuint -> Int -> Int -> Int -> Int -> IO () -{-# INLINE pokeCloudIndex #-} -pokeCloudIndex ptr nv ni ioff voff = pokeElemOff ptr (ni + ioff) (fromIntegral $ nv + voff) +--pokeCloudFloat :: Ptr Float -> Int -> Int -> Float -> IO () +--{-# INLINE pokeCloudFloat #-} +--pokeCloudFloat ptr nv i = pokeElemOff ptr (nv * 12 + i) +-- +--pokeCloudIndex :: Ptr GLuint -> Int -> Int -> Int -> Int -> IO () +--{-# INLINE pokeCloudIndex #-} +--pokeCloudIndex ptr nv ni ioff voff = pokeElemOff ptr (ni + ioff) (fromIntegral $ nv + voff) dustColor :: Dust -> Color dustColor = materialColor . _dsType diff --git a/src/Shape/Parameters.hs b/src/Shape/Parameters.hs index 404220530..d74742309 100644 --- a/src/Shape/Parameters.hs +++ b/src/Shape/Parameters.hs @@ -1,5 +1,4 @@ module Shape.Parameters (shapeVerxSize) where - -- ,shapeVerxAttributes) where import Foreign.Storable diff --git a/tags b/tags index cc5a2118f..0c04b4c95 100644 --- a/tags +++ b/tags @@ -1623,7 +1623,6 @@ _clickPos src/Dodge/Data/Input.hs 42;" f _clickWorldPos src/Dodge/Data/Input.hs 44;" f _closeButtons src/Dodge/Data/HUD.hs 36;" f _closeItems src/Dodge/Data/HUD.hs 35;" f -_cloudEBO src/Data/Preload/Render.hs 58;" f _cloudShader src/Data/Preload/Render.hs 57;" f _cloudVBO src/Data/Preload/Render.hs 56;" f _clouds src/Dodge/Data/LWorld.hs 96;" f @@ -2699,7 +2698,7 @@ brightX src/Color.hs 116;" f btSPic src/Dodge/Render/ShapePicture.hs 129;" f btText src/Dodge/Inventory/SelectionList.hs 237;" f bufferEBO src/Shader/Bind.hs 28;" f -bufferPerspectiveMatrixUBO src/Dodge/Render.hs 472;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 490;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 32;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2784,7 +2783,7 @@ circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f clAlt src/Dodge/Cloud.hs 5;" f clClSpringVel src/Dodge/Update.hs 839;" f -clColor src/Shader/Poke/Cloud.hs 49;" f +clColor src/Shader/Poke/Cloud.hs 68;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 146;" f clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 560;" f @@ -2877,7 +2876,7 @@ copier src/Dodge/Item/Scope.hs 88;" f copierItemUpdate src/Dodge/Creature/State.hs 131;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f corDoor src/Dodge/Room/Room.hs 385;" f -cornerList src/Preload/Render.hs 249;" f +cornerList src/Preload/Render.hs 246;" f corpseOrGib src/Dodge/Creature/Update.hs 111;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f @@ -3370,7 +3369,7 @@ dtToLRAdjEither src/Dodge/DoubleTree.hs 181;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 153;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f dummyMenuOption src/Dodge/Menu/Option.hs 72;" f -dustColor src/Shader/Poke/Cloud.hs 64;" f +dustColor src/Shader/Poke/Cloud.hs 83;" f dustSpringVel src/Dodge/Update.hs 850;" f ebColor src/Dodge/EnergyBall.hs 77;" f ebDamage src/Dodge/EnergyBall.hs 85;" f @@ -3553,7 +3552,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 357;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 344;" f getDebugMouseOver src/Dodge/Update.hs 374;" f -getDistortions src/Dodge/Render.hs 478;" f +getDistortions src/Dodge/Render.hs 496;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3704,7 +3703,7 @@ initWallZoning src/Dodge/Wall/Zone.hs 12;" f initialRoomTree src/Dodge/Floor.hs 24;" f initialWorld src/Dodge/Initialisation.hs 15;" f initialisePlaying src/Sound.hs 77;" f -initializeGLState src/Preload/Render.hs 267;" f +initializeGLState src/Preload/Render.hs 264;" f initializeOptionMenu src/Dodge/Menu/Option.hs 17;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 30;" f initializeTexture2D src/Framebuffer/Update.hs 205;" f @@ -4151,9 +4150,9 @@ missileLaunchS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 674;" f mixColors src/Color.hs 86;" f mixColorsFrac src/Color.hs 82;" f mixColorsLinear src/Color.hs 95;" f -mkCloudCloudLike src/Shader/Poke/Cloud.hs 21;" f +mkCloudCloudLike src/Shader/Poke/Cloud.hs 23;" f mkCustomLenses src/ThirdPartyLens.hs 7;" f -mkDustCloudLike src/Shader/Poke/Cloud.hs 27;" f +mkDustCloudLike src/Shader/Poke/Cloud.hs 29;" f mkGraphFromEdges src/GraphHelp.hs 4;" f mkNode src/Dodge/Graph.hs 29;" f mkRectangle src/Dodge/LevelGen/DoorPane.hs 7;" f @@ -4391,13 +4390,10 @@ pokeBoxSurface src/Shader/Poke.hs 263;" f pokeChasm src/Shader/Poke/Floor.hs 24;" f pokeChasmVerx src/Shader/Poke/Floor.hs 28;" f pokeCloud src/Shader/Poke/Cloud.hs 15;" f -pokeCloudFloat src/Shader/Poke/Cloud.hs 56;" f -pokeCloudIndex src/Shader/Poke/Cloud.hs 60;" f -pokeCloudLike src/Shader/Poke/Cloud.hs 33;" f -pokeCloudLikeVerx src/Shader/Poke/Cloud.hs 41;" f +pokeCloudLike src/Shader/Poke/Cloud.hs 42;" f pokeCylinder src/Shader/Poke.hs 173;" f pokeCylinderCaps src/Shader/Poke.hs 216;" f -pokeDust src/Shader/Poke/Cloud.hs 18;" f +pokeDust src/Shader/Poke/Cloud.hs 20;" f pokeF src/Shader/Poke.hs 68;" f pokeFlatV src/Shader/Poke.hs 449;" f pokeFloors src/Shader/Poke.hs 62;" f @@ -4820,7 +4816,7 @@ setTiles src/Dodge/Layout.hs 67;" f setTreeInts src/Dodge/Room/Tutorial.hs 98;" f setViewDistance src/Dodge/Update/Camera.hs 239;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f -setViewport src/Dodge/Render.hs 483;" f +setViewport src/Dodge/Render.hs 501;" f setVol src/Dodge/Config.hs 47;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Euse.hs 38;" f @@ -4845,7 +4841,7 @@ shadVBOptr src/Shader.hs 40;" f shaderTypeExt src/Shader/Compile.hs 176;" f shapeBounds src/Dodge/Room/Foreground.hs 147;" f shapePoints src/Dodge/Room/Foreground.hs 144;" f -shapeVerxSize src/Shape/Parameters.hs 6;" f +shapeVerxSize src/Shape/Parameters.hs 5;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 312;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 50;" f