packages feed

GLFW-b-demo 0.0.1 → 0.0.2

raw patch · 3 files changed

+91/−1 lines, 3 files

Files

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