summaryrefslogtreecommitdiffstats
path: root/Render.hs
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2010-02-23 20:51:30 +0100
committerMatthias Schiffer <matthias@gamezock.de>2010-02-23 20:51:30 +0100
commit366eb711dd05a7ad446f48d57f0645d89813ade4 (patch)
tree728d01ef05d9decf2631dd17b1b9266e60383889 /Render.hs
parent9772130708a4ed069ad00ee1652ba6d0eea81766 (diff)
downloadhtanks-366eb711dd05a7ad446f48d57f0645d89813ade4.tar
htanks-366eb711dd05a7ad446f48d57f0645d89813ade4.zip
Update viewport on resize
Diffstat (limited to 'Render.hs')
-rw-r--r--Render.hs38
1 files changed, 34 insertions, 4 deletions
diff --git a/Render.hs b/Render.hs
index d871678..86a7ccf 100644
--- a/Render.hs
+++ b/Render.hs
@@ -1,14 +1,44 @@
-module Render ( render
+module Render ( setup
+ , resize
+ , render
) where
import Game
import Control.Monad.State
+
+import Graphics.Rendering.OpenGL.GL (($=), GLfloat)
+import Graphics.Rendering.OpenGL.GL.BeginEnd (renderPrimitive, PrimitiveMode(..))
+import Graphics.Rendering.OpenGL.GL.CoordTrans (matrixMode, MatrixMode(..), viewport, Position(..), Size(..), loadIdentity, ortho)
import Graphics.Rendering.OpenGL.GL.Framebuffer (clear, ClearBuffer(..))
+import Graphics.Rendering.OpenGL.GL.VertexSpec
+
+
+setup :: Int -> Int -> IO ()
+setup = resize
+
+resize :: Int -> Int -> IO ()
+resize w h = do
+ let wn = fromIntegral w
+ hn = fromIntegral h
+ aspect = wn/hn
+
+ matrixMode $= Projection
+ loadIdentity
+ ortho (-aspect) (aspect) (-1) 1 (-1) 1
+
+ matrixMode $= Modelview 0
+
+ viewport $= ((Position 0 0), (Size (fromIntegral w) (fromIntegral h)))
render :: Game ()
-render = do
- liftIO $ clear [ColorBuffer]
- \ No newline at end of file
+render = liftIO $ do
+ clear [ColorBuffer]
+
+ renderPrimitive Triangles $ do
+ vertex $ Vertex2 (-0.5 :: GLfloat) (0.5 :: GLfloat)
+ vertex $ Vertex2 (0.5 :: GLfloat) (0.5 :: GLfloat)
+ vertex $ Vertex2 (0.5 :: GLfloat) (-0.5 :: GLfloat)
+ \ No newline at end of file