diff --git a/shader/lighting/cap.vert b/shader/lighting/cap.vert index 7f6b54a3a..823f16601 100644 --- a/shader/lighting/cap.vert +++ b/shader/lighting/cap.vert @@ -14,27 +14,18 @@ vec4 projNear (vec4 pos) vec2 xy = (pos.xyz + a * dir).xy ; return vec4 ( xy, 100 , 1) ; } -vec4 tris[3] = - {vec4(0,0,0,1) - ,vec4(1,1,0,1) - ,vec4(0,1,0,1) - }; bool ztest (vec4 p) {return p.z - lightPos.z > 0;} void main() { int j = gl_VertexID/3; int i1 = j * 3; - uint t = indices[gl_VertexID]; - //uint t = gl_VertexID; - gl_Position = tris[t]; - //uint t = gl_VertexID % 3; - vec4 p = data[indices[gl_VertexID]].pos; -// gl_Position = (p.w == 1 -// && ztest(data[indices[i1]].pos) -// && ztest(data[indices[i1+1]].pos) -// && ztest(data[indices[i1+2]].pos) -// ? theMat * projNear(p) -// : vec4(1,1,1,0) -// ); + vec4 po = data[indices[gl_VertexID]].pos; + gl_Position = (po.w == 1 + && ztest(data[indices[i1]].pos) + && ztest(data[indices[i1+1]].pos) + && ztest(data[indices[i1+2]].pos) + ? theMat * projNear(po) + : vec4(1,1,1,0) + ); } //layout (location = 0) in vec4 position; //layout (std140, binding = 0) uniform TheMat { mat4 theMat; } ; diff --git a/src/Dodge/Render.hs b/src/Dodge/Render.hs index 963c1a3aa..b46522361 100644 --- a/src/Dodge/Render.hs +++ b/src/Dodge/Render.hs @@ -116,16 +116,28 @@ doDrawing' win pdata u = do glNamedBufferSubData (pdata ^. wallSSBO) 0 (fromIntegral $ trueNWalls * sizeOf (0::Float) * 8) (pdata ^. wallVBO . vboPtr) +-- withArray +-- [V4 0 0 0 (1:: Float) +-- ,V4 0 0 0 0 +-- ,V4 0 0 0 0 +-- ,V4 1 1 0 1 +-- ,V4 0 0 0 0 +-- ,V4 0 0 0 0 +-- ,V4 0 1 0 1 +-- ,V4 0 0 0 0 +-- ,V4 0 0 0 0 +-- ] +-- $ glNamedBufferSubData (pdata ^. shapeSSBO) 0 +-- (fromIntegral $ 9 * (sizeOf (0::Float)*12)) +-- withArray [0::GLuint,1,2] $ +-- glNamedBufferSubData (pdata ^. ishapeSSBO) 0 +-- (fromIntegral $ 3 * (sizeOf (0::GLuint))) glNamedBufferSubData (pdata ^. shapeSSBO) 0 --- (fromIntegral $ nShapeVs * (sizeOf (0::Float)*8 + sizeOf (0::Word8)*4)) (fromIntegral $ nShapeVs * (sizeOf (0::Float)*12)) (pdata ^. vboShapes . vboPtr) - withArray [0::GLuint,1,2] $ - glNamedBufferSubData (pdata ^. ishapeSSBO) 0 - (fromIntegral $ 3 * (sizeOf (0::GLuint))) --- glNamedBufferSubData (pdata ^. ishapeSSBO) 0 --- (fromIntegral $ nIndices * (sizeOf (0::GLushort))) --- (pdata ^. shapeEBO . eboPtr) + glNamedBufferSubData (pdata ^. ishapeSSBO) 0 + (fromIntegral $ nIndices * (sizeOf (0::GLuint))) + (pdata ^. shapeEBO . eboPtr) setViewport _gr_world_res cfig glBindFramebuffer GL_FRAMEBUFFER (pdata ^. fboBase . _1 . unFBO) glDepthMask GL_TRUE @@ -185,7 +197,7 @@ doDrawing' win pdata u = do glDrawElements (_unPrimitiveMode $ _shaderPrimitive fs) (fromIntegral nIndices) - GL_UNSIGNED_SHORT + GL_UNSIGNED_INT nullPtr -- draw chasm shader blocking floor glUseProgram (pdata ^. chasmShader . shaderUINT) @@ -263,7 +275,7 @@ doDrawing' win pdata u = do glDrawElements (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) (fromIntegral nCloudIs) - GL_UNSIGNED_SHORT + GL_UNSIGNED_INT nullPtr glDepthMask GL_TRUE @@ -307,7 +319,7 @@ doDrawing' win pdata u = do glDrawElements (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) (fromIntegral nCloudIs) - GL_UNSIGNED_SHORT + GL_UNSIGNED_INT nullPtr -- glEnable GL_CULL_FACE -- glEnable GL_DEPTH_CLAMP @@ -339,7 +351,7 @@ doDrawing' win pdata u = do glDrawElements (pdata ^. cloudShader . shaderPrimitive . unPrimitiveMode) (fromIntegral nCloudIs) - GL_UNSIGNED_SHORT + GL_UNSIGNED_INT nullPtr --- -- glEnable GL_CULL_FACE diff --git a/src/Preload/Render.hs b/src/Preload/Render.hs index f8032d693..81939ac1f 100644 --- a/src/Preload/Render.hs +++ b/src/Preload/Render.hs @@ -54,7 +54,7 @@ preloadRender = do glNamedBufferStorage shapessbo shapessbosize nullPtr GL_DYNAMIC_STORAGE_BIT glBindBufferBase GL_SHADER_STORAGE_BUFFER 3 shapessbo ishapessbo <- mglCreate glCreateBuffers - let ishapessbosize = fromIntegral (sizeOf (0::GLushort) * 65536) + let ishapessbosize = fromIntegral (sizeOf (0::GLuint) * 65536) glNamedBufferStorage ishapessbo ishapessbosize nullPtr GL_DYNAMIC_STORAGE_BIT glBindBufferBase GL_SHADER_STORAGE_BUFFER 4 ishapessbo diff --git a/src/Render.hs b/src/Render.hs index 8041d6118..6e648986b 100644 --- a/src/Render.hs +++ b/src/Render.hs @@ -190,7 +190,7 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li glDrawElements (_unPrimitiveMode $ _shaderPrimitive llinesShad) (fromIntegral nSils) - GL_UNSIGNED_SHORT + GL_UNSIGNED_INT nullPtr --draw caps on the near plane as required glEnable GL_CULL_FACE @@ -204,8 +204,8 @@ renderShadows shadrendertype nWalls nSils nCaps positiontexture normaltexture li glDrawArrays GL_TRIANGLES 0 - 3 - --(fromIntegral nCaps) + --3 + (fromIntegral nCaps) glFrontFace(GL_CCW) --glDrawElements -- (_unPrimitiveMode $ _shaderPrimitive lcapShad) diff --git a/src/Shader/Bind.hs b/src/Shader/Bind.hs index 44297f082..7258b8641 100644 --- a/src/Shader/Bind.hs +++ b/src/Shader/Bind.hs @@ -30,7 +30,7 @@ bufferEBO ebo numis = glNamedBufferSubData (ebo ^. eboName) 0 - (fromIntegral $ glushortSize * numis) + (fromIntegral $ gluintSize * numis) (ebo ^. eboPtr) bufferShaderLayers :: MV.MVector (PrimState IO) (Shader, VBO) -> UMV.MVector (PrimState IO) Int -> IO () diff --git a/src/Shader/Compile.hs b/src/Shader/Compile.hs index 5bc238a1b..f0fbc5fe9 100644 --- a/src/Shader/Compile.hs +++ b/src/Shader/Compile.hs @@ -191,12 +191,12 @@ setupVAOUsingVBO vas vbo = do setupEBO :: VAO -> IO EBO setupEBO vao = do - eboptr <- mallocArray numGLushort + eboptr <- mallocArray 65536 -- so we can go back to glushort... eboname <- mglCreate glCreateBuffers --glNamedBufferData glNamedBufferStorage eboname - (fromIntegral $ glushortSize * numGLushort) + (fromIntegral $ gluintSize * 65536) nullPtr GL_DYNAMIC_STORAGE_BIT --GL_STREAM_DRAW diff --git a/src/Shader/Data.hs b/src/Shader/Data.hs index 1409103cd..eaea5849a 100644 --- a/src/Shader/Data.hs +++ b/src/Shader/Data.hs @@ -93,7 +93,7 @@ data FloatBO = FloatBO data EBO = EBO { _eboName :: GLuint - , _eboPtr :: Ptr GLushort + , _eboPtr :: Ptr GLuint } -- | Datatype containing the reference to a texture object. diff --git a/src/Shader/Parameters.hs b/src/Shader/Parameters.hs index b2798c154..18b6ae09e 100644 --- a/src/Shader/Parameters.hs +++ b/src/Shader/Parameters.hs @@ -3,8 +3,8 @@ module Shader.Parameters , ubyteSize , numDrawableVertices , numSubElements - , glushortSize - , numGLushort + , gluintSize + , numGLuint ) where --import Picture.Data import Graphics.GL.Core45 @@ -22,13 +22,13 @@ floatSize = sizeOf (0.5 :: GLfloat) --intSize = sizeOf (1 :: GLuint) --{-# INLINE intSize #-} -glushortSize :: Int -glushortSize = sizeOf (0 :: GLushort) -{-# INLINE glushortSize #-} +gluintSize :: Int +gluintSize = sizeOf (0 :: GLuint) +{-# INLINE gluintSize #-} -numGLushort :: Int -numGLushort = fromIntegral (maxBound :: GLushort) + 1 -{-# INLINE numGLushort #-} +numGLuint :: Int +numGLuint = fromIntegral (maxBound :: GLint) + 1 +{-# INLINE numGLuint #-} -- why 6? numDrawableVertices :: Int diff --git a/src/Shader/Poke.hs b/src/Shader/Poke.hs index 05b99f4b9..8b2acae80 100644 --- a/src/Shader/Poke.hs +++ b/src/Shader/Poke.hs @@ -111,8 +111,8 @@ pokeW ptr i' ((V2 a b, V2 c d), V4 e f g h) = do pokeShape :: (Surface -> Bool) -> Ptr Float -> - Ptr GLushort -> - Ptr GLushort -> + Ptr GLuint -> + Ptr GLuint -> (Int, Int, Int) -> [Surface] -> IO (Int, Int, Int) @@ -124,8 +124,8 @@ pokeShape shadowtest ptr iptr ieptr is = pokeShapeObj :: (Surface -> Bool) -> Ptr Float -> - Ptr GLushort -> - Ptr GLushort -> + Ptr GLuint -> + Ptr GLuint -> (Int, Int, Int) -> Surface -> IO (Int, Int, Int) @@ -142,8 +142,8 @@ pokeRoundedFaces :: Point4 -> Int -> Ptr Float -> - Ptr GLushort -> - Ptr GLushort -> + Ptr GLuint -> + Ptr GLuint -> (Int, Int, Int) -> [Point3] -> IO (Int, Int, Int) @@ -174,8 +174,8 @@ pokeCylinder :: Point4 -> Int -> Ptr Float -> - Ptr GLushort -> - Ptr GLushort -> + Ptr GLuint -> + Ptr GLuint -> (Int, Int, Int) -> [Point3] -> IO (Int, Int, Int) @@ -229,8 +229,8 @@ pokeBox :: Point4 -> Int -> Ptr Float -> - Ptr GLushort -> - Ptr GLushort -> + Ptr GLuint -> + Ptr GLuint -> (Int, Int, Int) -> [Point3] -> IO (Int, Int, Int) @@ -297,7 +297,7 @@ boxSurfacesIndices n = pokeIndex :: -- | base index Int -> - Ptr GLushort -> + Ptr GLuint -> -- | number poked Int -> -- | index offset diff --git a/src/Shader/Poke/Cloud.hs b/src/Shader/Poke/Cloud.hs index a8e92d32f..4028237fd 100644 --- a/src/Shader/Poke/Cloud.hs +++ b/src/Shader/Poke/Cloud.hs @@ -12,10 +12,10 @@ import Geometry.Data import Graphics.GL.Core45 import Linear -pokeCloud :: Ptr Float -> Ptr GLushort -> (Int, Int) -> Cloud -> IO (Int, Int) +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 GLushort -> (Int, Int) -> Dust -> IO (Int, Int) +pokeDust :: Ptr Float -> Ptr GLuint -> (Int, Int) -> Dust -> IO (Int, Int) pokeDust vptr iptr (nv, ni) = pokeCloudLike vptr iptr (nv, ni) . mkDustCloudLike mkCloudCloudLike :: Cloud -> (Point3, Point4) @@ -31,7 +31,7 @@ mkDustCloudLike x = (x ^. dsPos, V4 r g b a) a = a' * min 1 (fromIntegral (_dsTimer x) / 100) pokeCloudLike :: - Ptr Float -> Ptr GLushort -> (Int, Int) -> (Point3, Point4) -> IO (Int, Int) + 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)] @@ -57,7 +57,7 @@ pokeCloudFloat :: Ptr Float -> Int -> Int -> Float -> IO () {-# INLINE pokeCloudFloat #-} pokeCloudFloat ptr nv i = pokeElemOff ptr (nv * 12 + i) -pokeCloudIndex :: Ptr GLushort -> Int -> Int -> Int -> Int -> IO () +pokeCloudIndex :: Ptr GLuint -> Int -> Int -> Int -> Int -> IO () {-# INLINE pokeCloudIndex #-} pokeCloudIndex ptr nv ni ioff voff = pokeElemOff ptr (ni + ioff) (fromIntegral $ nv + voff) diff --git a/tags b/tags index c344aac10..bcdd40824 100644 --- a/tags +++ b/tags @@ -1592,8 +1592,8 @@ _cdtUp src/Dodge/Data/DoubleTree.hs 92;" f _ceSideEffect src/Dodge/Data/Universe.hs 66;" f _ceString src/Dodge/Data/Universe.hs 67;" f _ceilingStencilShader src/Data/Preload/Render.hs 18;" f -_chasmShader src/Data/Preload/Render.hs 53;" f -_chasmVBO src/Data/Preload/Render.hs 52;" f +_chasmShader src/Data/Preload/Render.hs 55;" f +_chasmVBO src/Data/Preload/Render.hs 54;" f _chasms src/Dodge/Data/CWorld.hs 33;" f _ciFilter src/Dodge/Data/HUD.hs 25;" f _ciInvIDs src/Dodge/Data/Combine.hs 9;" f @@ -1622,9 +1622,9 @@ _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 +_cloudEBO src/Data/Preload/Render.hs 60;" f +_cloudShader src/Data/Preload/Render.hs 59;" f +_cloudVBO src/Data/Preload/Render.hs 58;" f _clouds src/Dodge/Data/LWorld.hs 96;" f _colorBlurShader src/Data/Preload/Render.hs 26;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f @@ -1754,7 +1754,7 @@ _dsZoning src/Dodge/Data/World.hs 48;" f _dtLeft src/Dodge/Data/DoubleTree.hs 29;" f _dtRight src/Dodge/Data/DoubleTree.hs 29;" f _dtValue src/Dodge/Data/DoubleTree.hs 29;" f -_dummyVAO src/Data/Preload/Render.hs 60;" f +_dummyVAO src/Data/Preload/Render.hs 62;" f _dusts src/Dodge/Data/LWorld.hs 97;" f _ebID src/Dodge/Data/EnergyBall/Type.hs 13;" f _ebPos src/Dodge/Data/EnergyBall.hs 17;" f @@ -1786,8 +1786,8 @@ _flankTarget src/Dodge/Data/ActionPlan.hs 129;" f _flares src/Dodge/Data/LWorld.hs 108;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 14;" f _floorItems src/Dodge/Data/LWorld.hs 127;" f -_floorShader src/Data/Preload/Render.hs 51;" f -_floorVBO src/Data/Preload/Render.hs 50;" f +_floorShader src/Data/Preload/Render.hs 53;" f +_floorVBO src/Data/Preload/Render.hs 52;" f _foreShapes src/Dodge/Data/LWorld.hs 132;" f _fsDir src/Dodge/Data/ForegroundShape.hs 14;" f _fsPos src/Dodge/Data/ForegroundShape.hs 13;" f @@ -1869,6 +1869,7 @@ _incNode src/Dodge/Data/CWorld.hs 30;" f _incNodeZoning src/Dodge/Data/World.hs 52;" f _input src/Dodge/Data/World.hs 41;" f _isWarming src/Dodge/Data/Item/Params.hs 21;" f +_ishapeSSBO src/Data/Preload/Render.hs 48;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" f _itConsumables src/Dodge/Data/Item.hs 28;" f @@ -2193,7 +2194,7 @@ _scOptions src/Dodge/Data/Universe.hs 84;" f _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f _scTitle src/Dodge/Data/Universe.hs 83;" f -_screenTextureVAO src/Data/Preload/Render.hs 59;" f +_screenTextureVAO src/Data/Preload/Render.hs 61;" f _scrollAmount src/Dodge/Data/Input.hs 40;" f _scrollItemID src/Dodge/Data/World.hs 68;" f _scrollItemID src/Dodge/Data/World.hs 77;" f @@ -2225,6 +2226,7 @@ _shaderUINT src/Shader/Data.hs 52;" f _shaderVAO src/Shader/Data.hs 54;" f _shapeEBO src/Data/Preload/Render.hs 30;" f _shapeHalfSize src/Shape/Data.hs 13;" f +_shapeSSBO src/Data/Preload/Render.hs 47;" f _shapeShader src/Data/Preload/Render.hs 29;" f _shellPayload src/Dodge/Data/Item/Combine.hs 101;" f _shockwaves src/Dodge/Data/LWorld.hs 112;" f @@ -2398,9 +2400,9 @@ _vaType src/Shader/Data.hs 68;" f _vaoName src/Shader/Data.hs 64;" f _vboName src/Shader/Data.hs 80;" f _vboPtr src/Shader/Data.hs 81;" f -_vboShapes src/Data/Preload/Render.hs 49;" f +_vboShapes src/Data/Preload/Render.hs 51;" f _vboVertexBytes src/Shader/Data.hs 82;" f -_vboWindows src/Data/Preload/Render.hs 48;" f +_vboWindows src/Data/Preload/Render.hs 50;" f _vcCoolDown src/Dodge/Data/Creature/Misc.hs 22;" f _vcMaxCoolDown src/Dodge/Data/Creature/Misc.hs 21;" f _vertices src/Polyhedra/Data.hs 22;" f @@ -2423,8 +2425,8 @@ _waitThenAction src/Dodge/Data/ActionPlan.hs 76;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 75;" f _wallDamages src/Dodge/Data/LWorld.hs 119;" f _wallSSBO src/Data/Preload/Render.hs 46;" f -_wallShader src/Data/Preload/Render.hs 55;" f -_wallVBO src/Data/Preload/Render.hs 54;" f +_wallShader src/Data/Preload/Render.hs 57;" f +_wallVBO src/Data/Preload/Render.hs 56;" f _walls src/Dodge/Data/LWorld.hs 118;" f _wanID src/Dodge/Data/LWorld.hs 158;" f _wanPos src/Dodge/Data/LWorld.hs 157;" f @@ -2643,7 +2645,7 @@ beltMag src/Dodge/Item/Ammo.hs 39;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 226;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 118;" f bgunSound src/Dodge/HeldUse.hs 514;" f -bindFBO src/Render.hs 252;" f +bindFBO src/Render.hs 261;" f bingate src/Dodge/Item/Scope.hs 109;" f black src/Color.hs 27;" f blank src/Picture/Base.hs 59;" f @@ -2699,7 +2701,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 471;" f +bufferPerspectiveMatrixUBO src/Dodge/Render.hs 481;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 36;" f bulletBeltBracer src/Dodge/Item/Equipment.hs 67;" f @@ -2792,7 +2794,7 @@ clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 676;" f clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f cldtPropagateFold src/Dodge/DoubleTree.hs 358;" f cleanUpPreload src/Preload.hs 10;" f -cleanUpRenderPreload src/Preload/Render.hs 267;" f +cleanUpRenderPreload src/Preload/Render.hs 269;" f cleanUpSoundPreload src/Preload.hs 15;" f cleanupHalted src/Sound.hs 117;" f cleatLabel src/Dodge/Cleat.hs 30;" f @@ -2878,7 +2880,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 244;" 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 @@ -3554,7 +3556,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 477;" f +getDistortions src/Dodge/Render.hs 487;" f getEdgesCrossing src/Dodge/Path.hs 37;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1264;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f @@ -3595,7 +3597,7 @@ glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f glassSwitchBack src/Dodge/Room/Room.hs 72;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 106;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 400;" f -glushortSize src/Shader/Parameters.hs 25;" f +gluintSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 150;" f grahamEliminate src/Geometry/Polygon.hs 163;" f @@ -3705,7 +3707,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 262;" 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 @@ -4236,7 +4238,7 @@ notLink src/Dodge/Data/Room.hs 72;" f nulgate src/Dodge/Item/Scope.hs 95;" f numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f -numGLushort src/Shader/Parameters.hs 29;" f +numGLuint src/Shader/Parameters.hs 29;" f numLayers src/Picture/Data.hs 29;" f numMetaTree src/Dodge/Tree/Compose.hs 119;" f numMetaTree' src/Dodge/Tree/Compose.hs 122;" f @@ -4330,7 +4332,7 @@ pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP'' src/Dodge/Creature/Boid.hs 106;" f pincerP''' src/Dodge/Creature/Boid.hs 77;" f -pingPongBetween src/Render.hs 228;" f +pingPongBetween src/Render.hs 237;" f pipe src/Dodge/Item/Craftable.hs 32;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f @@ -4608,7 +4610,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f renderFlatLighting src/Render.hs 107;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f -renderLayer src/Render.hs 241;" f +renderLayer src/Render.hs 250;" f renderLightingNoShadows src/Render.hs 48;" f renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 122;" f @@ -4820,7 +4822,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 482;" f +setViewport src/Dodge/Render.hs 492;" f setVol src/Dodge/Config.hs 47;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Euse.hs 38;" f @@ -4845,8 +4847,8 @@ 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 -shapeVerxAttributes src/Shape/Parameters.hs 13;" f -shapeVerxSize src/Shape/Parameters.hs 10;" f +shapeVerxAttributes src/Shape/Parameters.hs 14;" f +shapeVerxSize src/Shape/Parameters.hs 11;" 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