import Graphics.Rendering.OpenGL
import Graphics.UI.GLUT  as GLUT

import Squares
import OrbitPointOfView 
import StateUtil
import ColorCube

main = do
  (progName,_) <-  getArgsAndInitialize
  initialDisplayMode $= [WithDepthBuffer,DoubleBuffered]
  createWindow progName
  depthFunc $= Just Less

  pPos <- new (90::Int,270::Int,2.0)
  keyboardMouseCallback $= Just (keyboard pPos)

  displayCallback $= display pPos
  reshapeCallback $= Just reshape
  mainLoop
display pPos = do
  loadIdentity
  setPointOfView pPos
  clear [ColorBuffer,DepthBuffer]
  colorCube 1
  swapBuffers
keyboard pPos c _  _ _ = keyForPos pPos c
