From 366eb711dd05a7ad446f48d57f0645d89813ade4 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Tue, 23 Feb 2010 20:51:30 +0100 Subject: Update viewport on resize --- Render.hs | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) (limited to 'Render.hs') 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 -- cgit v1.2.3