diff options
author | Matthias Schiffer <matthias@gamezock.de> | 2010-02-23 20:51:30 +0100 |
---|---|---|
committer | Matthias Schiffer <matthias@gamezock.de> | 2010-02-23 20:51:30 +0100 |
commit | 366eb711dd05a7ad446f48d57f0645d89813ade4 (patch) | |
tree | 728d01ef05d9decf2631dd17b1b9266e60383889 /Render.hs | |
parent | 9772130708a4ed069ad00ee1652ba6d0eea81766 (diff) | |
download | htanks-366eb711dd05a7ad446f48d57f0645d89813ade4.tar htanks-366eb711dd05a7ad446f48d57f0645d89813ade4.zip |
Update viewport on resize
Diffstat (limited to 'Render.hs')
-rw-r--r-- | Render.hs | 38 |
1 files changed, 34 insertions, 4 deletions
@@ -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 |