-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A raw binding for the OpenGL graphics system
--   
--   GLURaw is a raw Haskell binding for the GLU 1.3 OpenGL utility
--   library. It is basically a 1:1 mapping of GLU's C API, intended as a
--   basis for a nicer interface.
--   
--   OpenGL is the industry's most widely used and supported 2D and 3D
--   graphics application programming interface (API), incorporating a
--   broad set of rendering, texture mapping, special effects, and other
--   powerful visualization functions. For more information about OpenGL
--   and its various extensions, please see <a>http://www.opengl.org/</a>
--   and <a>http://www.opengl.org/registry/</a>.
@package GLURaw
@version 2.0.0.2


-- | All callbacks from GLU 1.3, see <a>http://www.opengl.org/</a>.
module Graphics.GLU.Callbacks
type TessBeginCallback = GLenum -> IO ()
makeTessBeginCallback :: TessBeginCallback -> IO (FunPtr TessBeginCallback)
type TessEdgeFlagCallback = GLboolean -> IO ()
makeTessEdgeFlagCallback :: TessEdgeFlagCallback -> IO (FunPtr TessEdgeFlagCallback)
type TessVertexCallback v = Ptr v -> IO ()
makeTessVertexCallback :: TessVertexCallback v -> IO (FunPtr (TessVertexCallback v))
type TessEndCallback = IO ()
makeTessEndCallback :: TessEndCallback -> IO (FunPtr TessEndCallback)
type TessErrorCallback = GLenum -> IO ()
makeTessErrorCallback :: TessErrorCallback -> IO (FunPtr TessErrorCallback)
type TessCombineCallback v = Ptr GLdouble -> Ptr (Ptr v) -> Ptr GLfloat -> Ptr (Ptr v) -> IO ()
makeTessCombineCallback :: TessCombineCallback v -> IO (FunPtr (TessCombineCallback v))
type TessBeginDataCallback p = GLenum -> Ptr p -> IO ()
makeTessBeginDataCallback :: TessBeginDataCallback p -> IO (FunPtr (TessBeginDataCallback p))
type TessEdgeFlagDataCallback p = GLboolean -> Ptr p -> IO ()
makeTessEdgeFlagDataCallback :: TessEdgeFlagDataCallback p -> IO (FunPtr (TessEdgeFlagDataCallback p))
type TessVertexDataCallback v p = Ptr v -> Ptr p -> IO ()
makeTessVertexDataCallback :: TessVertexDataCallback v p -> IO (FunPtr (TessVertexDataCallback v p))
type TessEndDataCallback p = Ptr p -> IO ()
makeTessEndDataCallback :: TessEndDataCallback p -> IO (FunPtr (TessEndDataCallback p))
type TessErrorDataCallback p = GLenum -> Ptr p -> IO ()
makeTessErrorDataCallback :: TessErrorDataCallback p -> IO (FunPtr (TessErrorDataCallback p))
type TessCombineDataCallback v p = Ptr GLdouble -> Ptr (Ptr v) -> Ptr GLfloat -> Ptr (Ptr v) -> Ptr p -> IO ()
makeTessCombineDataCallback :: TessCombineDataCallback v p -> IO (FunPtr (TessCombineDataCallback v p))
type QuadricCallback = GLenum -> IO ()
makeQuadricCallback :: QuadricCallback -> IO (FunPtr QuadricCallback)
type NURBSBeginCallback = GLenum -> IO ()
makeNURBSBeginCallback :: NURBSBeginCallback -> IO (FunPtr NURBSBeginCallback)
type NURBSVertexCallback = Ptr GLfloat -> IO ()
makeNURBSVertexCallback :: NURBSVertexCallback -> IO (FunPtr NURBSVertexCallback)
type NURBSNormalCallback = Ptr GLfloat -> IO ()
makeNURBSNormalCallback :: NURBSNormalCallback -> IO (FunPtr NURBSNormalCallback)
type NURBSColorCallback = Ptr GLfloat -> IO ()
makeNURBSColorCallback :: NURBSColorCallback -> IO (FunPtr NURBSColorCallback)
type NURBSTexCoordCallback = Ptr GLfloat -> IO ()
makeNURBSTexCoordCallback :: NURBSTexCoordCallback -> IO (FunPtr NURBSTexCoordCallback)
type NURBSEndCallback = IO ()
makeNURBSEndCallback :: NURBSEndCallback -> IO (FunPtr NURBSEndCallback)
type NURBSErrorCallback = GLenum -> IO ()
makeNURBSErrorCallback :: NURBSErrorCallback -> IO (FunPtr NURBSErrorCallback)
type NURBSBeginDataCallback u = GLenum -> Ptr u -> IO ()
makeNURBSBeginDataCallback :: NURBSBeginDataCallback u -> IO (FunPtr (NURBSBeginDataCallback u))
type NURBSVertexDataCallback u = Ptr GLfloat -> Ptr u -> IO ()
makeNURBSVertexDataCallback :: NURBSVertexDataCallback u -> IO (FunPtr (NURBSVertexDataCallback u))
type NURBSNormalDataCallback u = Ptr GLfloat -> Ptr u -> IO ()
makeNURBSNormalDataCallback :: NURBSNormalDataCallback u -> IO (FunPtr (NURBSNormalDataCallback u))
type NURBSColorDataCallback u = Ptr GLfloat -> Ptr u -> IO ()
makeNURBSColorDataCallback :: NURBSColorDataCallback u -> IO (FunPtr (NURBSColorDataCallback u))
type NURBSTexCoordDataCallback u = Ptr GLfloat -> Ptr u -> IO ()
makeNURBSTexCoordDataCallback :: NURBSTexCoordDataCallback u -> IO (FunPtr (NURBSTexCoordDataCallback u))
type NURBSEndDataCallback u = Ptr u -> IO ()
makeNURBSEndDataCallback :: NURBSEndDataCallback u -> IO (FunPtr (NURBSEndDataCallback u))


-- | All (abstract) types from GLU 1.3, see <a>http://www.opengl.org/</a>.
module Graphics.GLU.Types
data GLUnurbs
data GLUquadric
data GLUtesselator


-- | All tokens from GLU 1.3, see <a>http://www.opengl.org/</a>.
module Graphics.GLU.Tokens


-- | All functions from GLU 1.3, see <a>http://www.opengl.org/</a>.
module Graphics.GLU.Functions
gluBeginCurve :: MonadIO m => Ptr GLUnurbs -> m ()
gluBeginPolygon :: MonadIO m => Ptr GLUtesselator -> m ()
gluBeginSurface :: MonadIO m => Ptr GLUnurbs -> m ()
gluBeginTrim :: MonadIO m => Ptr GLUnurbs -> m ()
gluBuild1DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint
gluBuild1DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint
gluBuild2DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint
gluBuild2DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint
gluBuild3DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint
gluBuild3DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint
gluCheckExtension :: MonadIO m => Ptr GLubyte -> Ptr GLubyte -> m GLboolean
gluCylinder :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLdouble -> GLint -> GLint -> m ()
gluDeleteNurbsRenderer :: MonadIO m => Ptr GLUnurbs -> m ()
gluDeleteQuadric :: MonadIO m => Ptr GLUquadric -> m ()
gluDeleteTess :: MonadIO m => Ptr GLUtesselator -> m ()
gluDisk :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> m ()
gluEndCurve :: MonadIO m => Ptr GLUnurbs -> m ()
gluEndPolygon :: MonadIO m => Ptr GLUtesselator -> m ()
gluEndSurface :: MonadIO m => Ptr GLUnurbs -> m ()
gluEndTrim :: MonadIO m => Ptr GLUnurbs -> m ()
gluErrorString :: MonadIO m => GLenum -> m (Ptr GLubyte)
gluGetNurbsProperty :: MonadIO m => Ptr GLUnurbs -> GLenum -> Ptr GLfloat -> m ()
gluGetString :: MonadIO m => GLenum -> m (Ptr GLubyte)
gluGetTessProperty :: MonadIO m => Ptr GLUtesselator -> GLenum -> Ptr GLdouble -> m ()
gluLoadSamplingMatrices :: MonadIO m => Ptr GLUnurbs -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLint -> m ()
gluLookAt :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
gluNewNurbsRenderer :: MonadIO m => m (Ptr GLUnurbs)
gluNewQuadric :: MonadIO m => m (Ptr GLUquadric)
gluNewTess :: MonadIO m => m (Ptr GLUtesselator)
gluNextContour :: MonadIO m => Ptr GLUtesselator -> GLenum -> m ()
gluNurbsCallback :: MonadIO m => Ptr GLUnurbs -> GLenum -> FunPtr a -> m ()
gluNurbsCallbackData :: MonadIO m => Ptr GLUnurbs -> Ptr a -> m ()
gluNurbsCallbackDataEXT :: MonadIO m => Ptr GLUnurbs -> Ptr a -> m ()
gluNurbsCurve :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLenum -> m ()
gluNurbsProperty :: MonadIO m => Ptr GLUnurbs -> GLenum -> GLfloat -> m ()
gluNurbsSurface :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr GLfloat -> GLint -> GLint -> GLenum -> m ()
gluOrtho2D :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
gluPartialDisk :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> m ()
gluPerspective :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
gluPickMatrix :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLint -> m ()
gluProject :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> m GLint
gluPwlCurve :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> GLenum -> m ()
gluQuadricCallback :: MonadIO m => Ptr GLUquadric -> GLenum -> FunPtr a -> m ()
gluQuadricDrawStyle :: MonadIO m => Ptr GLUquadric -> GLenum -> m ()
gluQuadricNormals :: MonadIO m => Ptr GLUquadric -> GLenum -> m ()
gluQuadricOrientation :: MonadIO m => Ptr GLUquadric -> GLenum -> m ()
gluQuadricTexture :: MonadIO m => Ptr GLUquadric -> GLboolean -> m ()
gluScaleImage :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLenum -> Ptr b -> m GLint
gluSphere :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLint -> GLint -> m ()
gluTessBeginContour :: MonadIO m => Ptr GLUtesselator -> m ()
gluTessBeginPolygon :: MonadIO m => Ptr GLUtesselator -> Ptr a -> m ()
gluTessCallback :: MonadIO m => Ptr GLUtesselator -> GLenum -> FunPtr a -> m ()
gluTessEndContour :: MonadIO m => Ptr GLUtesselator -> m ()
gluTessEndPolygon :: MonadIO m => Ptr GLUtesselator -> m ()
gluTessNormal :: MonadIO m => Ptr GLUtesselator -> GLdouble -> GLdouble -> GLdouble -> m ()
gluTessProperty :: MonadIO m => Ptr GLUtesselator -> GLenum -> GLdouble -> m ()
gluTessVertex :: MonadIO m => Ptr GLUtesselator -> Ptr GLdouble -> Ptr a -> m ()
gluUnProject :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> m GLint
gluUnProject4 :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> GLclampd -> GLclampd -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> m GLint


-- | A 1:1 binding for the OpenGL utility library.
module Graphics.GLU
