prepared overview-texture
This commit is contained in:
parent
1bbf900ec4
commit
a1389ba524
@ -84,6 +84,7 @@ main =
|
|||||||
--generate map vertices
|
--generate map vertices
|
||||||
(mapBuffer, vert) <- getMapBufferObject
|
(mapBuffer, vert) <- getMapBufferObject
|
||||||
(mapprog, ci, ni, vi, pri, vii, mi, nmi, tli, tlo, mapTex) <- initMapShader
|
(mapprog, ci, ni, vi, pri, vii, mi, nmi, tli, tlo, mapTex) <- initMapShader
|
||||||
|
overTex <- GL.genObjectName
|
||||||
print window'
|
print window'
|
||||||
eventQueue <- newTQueueIO :: IO (TQueue Event)
|
eventQueue <- newTQueueIO :: IO (TQueue Event)
|
||||||
putStrLn "foo"
|
putStrLn "foo"
|
||||||
@ -123,6 +124,7 @@ main =
|
|||||||
, _mapVert = vert
|
, _mapVert = vert
|
||||||
, _mapProgram = mapprog
|
, _mapProgram = mapprog
|
||||||
, _mapTexture = mapTex
|
, _mapTexture = mapTex
|
||||||
|
, _overviewTexture = overTex
|
||||||
}
|
}
|
||||||
env = Env
|
env = Env
|
||||||
{ _eventsChan = eventQueue
|
{ _eventsChan = eventQueue
|
||||||
|
@ -30,5 +30,5 @@ type Seed = (XCoord, ZCoord)
|
|||||||
-- | Add lakes on generated Map from (possible) Seeds noted before.
|
-- | Add lakes on generated Map from (possible) Seeds noted before.
|
||||||
--
|
--
|
||||||
-- TODO: implement and erode terrain on the way down.
|
-- TODO: implement and erode terrain on the way down.
|
||||||
addLakes :: PlayMap -> [Seeds] -> PlayMap
|
addLakes :: PlayMap -> [Seed] -> PlayMap
|
||||||
addLakes m s = undefined
|
addLakes m s = undefined
|
||||||
|
@ -180,6 +180,82 @@ initRendering = do
|
|||||||
glCullFace gl_BACK
|
glCullFace gl_BACK
|
||||||
checkError "initRendering"
|
checkError "initRendering"
|
||||||
|
|
||||||
|
{-renderOverview :: Pioneers ()
|
||||||
|
renderOverview = do
|
||||||
|
liftIO $ do
|
||||||
|
---- RENDER OVERVIEW MAP ------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
bindFramebuffer Framebuffer $= (state ^. gl.glFramebuffer)
|
||||||
|
bindRenderbuffer Renderbuffer $= (state ^. gl.glRenderbuffer)
|
||||||
|
framebufferRenderbuffer
|
||||||
|
Framebuffer
|
||||||
|
DepthAttachment
|
||||||
|
Renderbuffer
|
||||||
|
(state ^. gl.glRenderbuffer)
|
||||||
|
textureBinding Texture2D $= Just (state ^. gl.glMap.mapTexture)
|
||||||
|
|
||||||
|
framebufferTexture2D
|
||||||
|
Framebuffer
|
||||||
|
(ColorAttachment 0)
|
||||||
|
Texture2D
|
||||||
|
(state ^. gl.glMap.mapTexture)
|
||||||
|
0
|
||||||
|
|
||||||
|
-- Render to FrameBufferObject
|
||||||
|
drawBuffers $= [FBOColorAttachment 0]
|
||||||
|
checkError "setup Render-Target"
|
||||||
|
|
||||||
|
clear [ColorBuffer, DepthBuffer]
|
||||||
|
checkError "clear buffer"
|
||||||
|
|
||||||
|
|
||||||
|
currentProgram $= Just (state ^. gl.glMap.mapProgram)
|
||||||
|
|
||||||
|
checkError "setting up buffer"
|
||||||
|
--set up projection (= copy from state)
|
||||||
|
with (distribute frust) $ \ptr ->
|
||||||
|
glUniformMatrix4fv proj 1 0 (castPtr (ptr :: Ptr (L.M44 CFloat)))
|
||||||
|
checkError "copy projection"
|
||||||
|
|
||||||
|
--set up camera
|
||||||
|
let ! cam = getCam camPos zDist' xa ya
|
||||||
|
with (distribute cam) $ \ptr ->
|
||||||
|
glUniformMatrix4fv vmat 1 0 (castPtr (ptr :: Ptr (L.M44 CFloat)))
|
||||||
|
checkError "copy cam"
|
||||||
|
|
||||||
|
--set up normal--Mat transpose((model*camera)^-1)
|
||||||
|
let normal' = (case L.inv33 (fmap (^. L._xyz) cam ^. L._xyz) of
|
||||||
|
(Just a) -> a
|
||||||
|
Nothing -> L.eye3) :: L.M33 CFloat
|
||||||
|
nmap = collect id normal' :: L.M33 CFloat --transpose...
|
||||||
|
|
||||||
|
with (distribute nmap) $ \ptr ->
|
||||||
|
glUniformMatrix3fv nmat 1 0 (castPtr (ptr :: Ptr (L.M33 CFloat)))
|
||||||
|
|
||||||
|
checkError "nmat"
|
||||||
|
|
||||||
|
glUniform1f tli (fromIntegral tessFac)
|
||||||
|
glUniform1f tlo (fromIntegral tessFac)
|
||||||
|
|
||||||
|
bindBuffer ArrayBuffer $= Just map'
|
||||||
|
vertexAttribPointer ci $= fgColorIndex
|
||||||
|
vertexAttribArray ci $= Enabled
|
||||||
|
vertexAttribPointer ni $= fgNormalIndex
|
||||||
|
vertexAttribArray ni $= Enabled
|
||||||
|
vertexAttribPointer vi $= fgVertexIndex
|
||||||
|
vertexAttribArray vi $= Enabled
|
||||||
|
checkError "beforeDraw"
|
||||||
|
|
||||||
|
glPatchParameteri gl_PATCH_VERTICES 3
|
||||||
|
|
||||||
|
cullFace $= Just Front
|
||||||
|
|
||||||
|
glDrawArrays gl_PATCHES 0 (fromIntegral numVert)
|
||||||
|
checkError "draw map"
|
||||||
|
-}
|
||||||
|
|
||||||
|
|
||||||
render :: Pioneers ()
|
render :: Pioneers ()
|
||||||
render = do
|
render = do
|
||||||
state <- RWS.get
|
state <- RWS.get
|
||||||
|
@ -89,6 +89,7 @@ data GLMapState = GLMapState
|
|||||||
, _mapVert :: !GL.NumArrayIndices
|
, _mapVert :: !GL.NumArrayIndices
|
||||||
, _mapProgram :: !GL.Program
|
, _mapProgram :: !GL.Program
|
||||||
, _mapTexture :: !TextureObject
|
, _mapTexture :: !TextureObject
|
||||||
|
, _overviewTexture :: !TextureObject
|
||||||
}
|
}
|
||||||
|
|
||||||
data GLHud = GLHud
|
data GLHud = GLHud
|
||||||
|
Loading…
Reference in New Issue
Block a user