sendProjectionMatrix :: Program -> M44 GLfloat -> IO ()
sendProjectionMatrix program mat = do
  (UniformLocation projU) <- GL.get $ GL.uniformLocation program "projection"
  with mat $ GLRaw.glUniformMatrix4fv projU 1 (fromBool True) . castPtr
sendProjectionMatrix :: Program -> M44 GLfloat -> IO ()
sendProjectionMatrix program mat = do
  (UniformLocation projU) <- GL.get $ GL.uniformLocation program "projection"
  with mat $ GLRaw.glUniformMatrix4fv projU 1 (fromBool True) . castPtr
sendProjectionMatrix program mat = do
  (UniformLocation projU) <- GL.get $ GL.uniformLocation program "projection"
  with mat $ GLRaw.glUniformMatrix4fv projU 1 (fromBool True) . castPtr