GLFW-b-demo 0.0.1 → 0.0.2
raw patch · 3 files changed
+91/−1 lines, 3 files
Files
- GLFW-b-demo.cabal +5/−1
- src/Cube.hs +62/−0
- src/Display.hs +24/−0
GLFW-b-demo.cabal view
@@ -1,5 +1,5 @@ name: GLFW-b-demo-version: 0.0.1+version: 0.0.2 category: Graphics @@ -22,6 +22,10 @@ build-type: Simple -- -- -- -- -- -- -- -- -- --++extra-source-files:+ src/Cube.hs+ src/Display.hs executable GLFW-b-demo main-is: Main.hs
+ src/Cube.hs view
@@ -0,0 +1,62 @@+module Cube+ ( draw+ ) where++import qualified Graphics.Rendering.OpenGL as GL++draw :: GL.GLfloat -> IO ()+draw s = do+ GL.scale s s s+ GL.renderPrimitive GL.Quads $ do+ -- front+ GL.color red+ GL.normal (GL.Normal3 z z p1)+ GL.vertex (GL.Vertex3 n1 n1 p1)+ GL.vertex (GL.Vertex3 p1 n1 p1)+ GL.vertex (GL.Vertex3 p1 p1 p1)+ GL.vertex (GL.Vertex3 n1 p1 p1)+ -- back+ GL.color red+ GL.normal (GL.Normal3 z z n1)+ GL.vertex (GL.Vertex3 n1 n1 n1)+ GL.vertex (GL.Vertex3 n1 p1 n1)+ GL.vertex (GL.Vertex3 p1 p1 n1)+ GL.vertex (GL.Vertex3 p1 n1 n1)+ -- top+ GL.color green+ GL.normal (GL.Normal3 z p1 z)+ GL.vertex (GL.Vertex3 n1 p1 n1)+ GL.vertex (GL.Vertex3 n1 p1 p1)+ GL.vertex (GL.Vertex3 p1 p1 p1)+ GL.vertex (GL.Vertex3 p1 p1 n1)+ -- bottom+ GL.color green+ GL.normal (GL.Normal3 z n1 z)+ GL.vertex (GL.Vertex3 n1 n1 n1)+ GL.vertex (GL.Vertex3 p1 n1 n1)+ GL.vertex (GL.Vertex3 p1 n1 p1)+ GL.vertex (GL.Vertex3 n1 n1 p1)+ -- right+ GL.color blue+ GL.normal (GL.Normal3 p1 z z)+ GL.vertex (GL.Vertex3 p1 n1 n1)+ GL.vertex (GL.Vertex3 p1 p1 n1)+ GL.vertex (GL.Vertex3 p1 p1 p1)+ GL.vertex (GL.Vertex3 p1 n1 p1)+ -- left+ GL.color blue+ GL.normal (GL.Normal3 n1 z z)+ GL.vertex (GL.Vertex3 n1 n1 n1)+ GL.vertex (GL.Vertex3 n1 n1 p1)+ GL.vertex (GL.Vertex3 n1 p1 p1)+ GL.vertex (GL.Vertex3 n1 p1 n1)++red, green, blue :: GL.Color4 GL.GLfloat+red = GL.Color4 1 0 0 1+green = GL.Color4 0 1 0 1+blue = GL.Color4 0 0 1 1++z, n1, p1 :: GL.GLfloat+z = 0+n1 = -1+p1 = 1
+ src/Display.hs view
@@ -0,0 +1,24 @@+module Display+ ( draw+ ) where++import qualified Cube as Cube++import qualified Graphics.Rendering.OpenGL as GL+import qualified Graphics.UI.GLFW as GLFW++draw :: Float -> Float -> IO ()+draw xa ya = do+ GL.clear [GL.ColorBuffer, GL.DepthBuffer]+ GL.loadIdentity++ GL.preservingMatrix $ do+ GL.rotate (realToFrac xa) xVector3+ GL.rotate (realToFrac ya) yVector3+ Cube.draw w++ GLFW.swapBuffers+ where+ xVector3 = GL.Vector3 1 0 0 :: GL.Vector3 GL.GLfloat+ yVector3 = GL.Vector3 0 1 0 :: GL.Vector3 GL.GLfloat+ w = 0.5