Draw walls using perspective divide
This commit is contained in:
@@ -16,7 +16,7 @@ import Control.Lens
|
||||
import Foreign
|
||||
import Shader
|
||||
|
||||
import Geometry (Point2,Point4)
|
||||
import Geometry (Point2,Point3,Point4)
|
||||
|
||||
import qualified Control.Foldl as F
|
||||
|
||||
@@ -25,7 +25,7 @@ data RenderData = RenderData
|
||||
, _wallShadowShader :: FullShader (Point2,Point2,Point2,Point2)
|
||||
, _backgroundShader :: FullShader (Point2,Point2,Point2,Point2)
|
||||
, _fullscreenShader :: FullShader ()
|
||||
, _wallShader :: FullShader (Point2,Point4)
|
||||
, _wallShader :: FullShader (Point3,Point4)
|
||||
, _listShaders :: [FullShader RenderType]
|
||||
, _dummyVBO :: BufferObject
|
||||
, _dummyPtr :: Ptr Float
|
||||
@@ -47,7 +47,7 @@ preloadRender = do
|
||||
wsShad <- makeShaderCustomUnis "wallShadow" [vert,geom,frag] [(0,4),(1,4)] Points pokeWPStrat
|
||||
["lightPos"]
|
||||
|
||||
wlShad <- makeShader "wall" [vert,geom,frag] [(0,2),(1,4)] Triangles pokeWlStrat
|
||||
wlShad <- makeShader "wall" [vert,frag] [(0,3),(1,4)] TriangleStrip pokeWlStrat
|
||||
|
||||
bslist <- makeShader "basic" [vert,frag] [(0,3),(1,4)] Triangles pokeTriStrat
|
||||
lslist <- makeShader "basic" [vert,frag] [(0,3),(1,4)] Lines pokeLineStrat
|
||||
@@ -145,8 +145,8 @@ pokeTriStrat :: RenderType -> [[[Float]]]
|
||||
pokeTriStrat (RenderPoly vs) = fmap (\((x,y,z),(r,g,b,a)) -> [[x,y,z],[r,g,b,a]]) vs
|
||||
pokeTriStrat _ = []
|
||||
|
||||
pokeWlStrat :: (Point2,Point4) -> [[[Float]]]
|
||||
pokeWlStrat ((x,y),(r,g,b,a)) = [[[x,y],[r,g,b,a]]]
|
||||
pokeWlStrat :: (Point3,Point4) -> [[[Float]]]
|
||||
pokeWlStrat ((x,y,z),(r,g,b,a)) = [[[x,y,z],[r,g,b,a]]]
|
||||
|
||||
pokeCharStrat (RenderText vs) = fmap (\(a,b,c) -> flat3 (flat3 a, flat4 b, flat3 c)) vs
|
||||
pokeCharStrat _ = []
|
||||
|
||||
Reference in New Issue
Block a user