Fix autodoor wall rendering
This commit is contained in:
+6
-15
@@ -7,15 +7,13 @@ module Picture.Preload
|
||||
where
|
||||
|
||||
import Picture.Data
|
||||
import Shader
|
||||
import Geometry (Point2,Point3,Point4)
|
||||
|
||||
import Graphics.Rendering.OpenGL hiding (Point (..),translate,scale,imageHeight,imageWidth)
|
||||
|
||||
import Control.Lens
|
||||
|
||||
import Foreign
|
||||
import Shader
|
||||
|
||||
import Geometry (Point2,Point3,Point4)
|
||||
|
||||
import qualified Control.Foldl as F
|
||||
|
||||
@@ -34,7 +32,6 @@ makeLenses ''RenderData
|
||||
|
||||
preloadRender :: IO RenderData
|
||||
preloadRender = do
|
||||
-- compile shader programs
|
||||
-- lighting shaders
|
||||
lsShad <- makeShader "lighting/lightmapCircle" [vert,geom,frag] [(0,4)] Points
|
||||
(return . return . flat4)
|
||||
@@ -63,17 +60,16 @@ preloadRender = do
|
||||
,[[ 1,-1],[1,0]]
|
||||
]
|
||||
)
|
||||
n <- F.foldM (pokeShader fsShad) [()]
|
||||
n <- F.foldM (pokeShader fsShad) [()] -- fix fullscreen vertex positions now
|
||||
|
||||
-- background shader
|
||||
bgShad <- makeTextureShader "background" [vert,geom,frag] [(0,4),(1,2)] Points pokeBGStrat
|
||||
"data/texture/smudgedDirt.png"
|
||||
-- input a list of (attribute location, attrib length) pairs
|
||||
-- these will have buffers and pointers created
|
||||
backgroundvao <- setupVAO [(0,4),(1,2)]
|
||||
|
||||
-- framebuffer for lighting
|
||||
(fbo,fboTO) <- setupFramebuffer
|
||||
|
||||
-- reset to default framebuffer, ready for drawing direct to screen
|
||||
bindFramebuffer Framebuffer $= defaultFramebufferObject
|
||||
|
||||
return $ RenderData
|
||||
@@ -119,6 +115,7 @@ cleanUpRenderPreload pd = do
|
||||
freeShaderPointers $ _lightSourceShader pd
|
||||
freeShaderPointers $ _wallShadowShader pd
|
||||
freeShaderPointers $ _backgroundShader pd
|
||||
freeShaderPointers $ _fullscreenShader pd
|
||||
|
||||
{-# INLINE pokeBezQStrat #-}
|
||||
pokeBezQStrat :: RenderType -> [[[Float]]]
|
||||
@@ -144,9 +141,6 @@ pokeLineStrat _ = []
|
||||
pokeEllStrat (RenderEllipse vs) = fmap (\((x,y,z),(r,g,b,a)) -> [[x,y,z],[r,g,b,a]]) vs
|
||||
pokeEllStrat _ = []
|
||||
|
||||
bufferOffset :: Integral a => a -> Ptr b
|
||||
bufferOffset = plusPtr nullPtr . fromIntegral
|
||||
|
||||
vert = VertexShader
|
||||
geom = GeometryShader
|
||||
frag = FragmentShader
|
||||
@@ -154,9 +148,6 @@ frag = FragmentShader
|
||||
pokeWPStrat :: (Point2,Point2) -> [[[Float]]]
|
||||
pokeWPStrat ((x,y),(z,w)) = [[[x,y,z,w]]]
|
||||
|
||||
pokeLightWallStrat :: Point3 -> [[[Float]]]
|
||||
pokeLightWallStrat (x,y,z) = [[[x,y,z]]]
|
||||
|
||||
pokeBGStrat :: a -> [[[Float]]]
|
||||
pokeBGStrat = const []
|
||||
|
||||
|
||||
Reference in New Issue
Block a user