-- 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 http://www.opengl.org/
--   and http://www.opengl.org/registry/.
@package GLURaw
@version 2.0.0.5

-- | All callbacks from GLU 1.3, see http://www.opengl.org/.
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 tokens from GLU 1.3, see http://www.opengl.org/.
module Graphics.GLU.Tokens
pattern GLU_FALSE :: GLenum
pattern GLU_TRUE :: GLenum
pattern GLU_VERSION :: GLenum
pattern GLU_EXTENSIONS :: GLenum
pattern GLU_INVALID_ENUM :: GLenum
pattern GLU_INVALID_VALUE :: GLenum
pattern GLU_OUT_OF_MEMORY :: GLenum
pattern GLU_INCOMPATIBLE_GL_VERSION :: GLenum
pattern GLU_INVALID_OPERATION :: GLenum
pattern GLU_OUTLINE_POLYGON :: GLenum
pattern GLU_OUTLINE_PATCH :: GLenum
pattern GLU_NURBS_ERROR :: GLenum
pattern GLU_ERROR :: GLenum
pattern GLU_NURBS_BEGIN :: GLenum
pattern GLU_NURBS_BEGIN_EXT :: GLenum
pattern GLU_NURBS_VERTEX :: GLenum
pattern GLU_NURBS_VERTEX_EXT :: GLenum
pattern GLU_NURBS_NORMAL :: GLenum
pattern GLU_NURBS_NORMAL_EXT :: GLenum
pattern GLU_NURBS_COLOR :: GLenum
pattern GLU_NURBS_COLOR_EXT :: GLenum
pattern GLU_NURBS_TEXTURE_COORD :: GLenum
pattern GLU_NURBS_TEX_COORD_EXT :: GLenum
pattern GLU_NURBS_END :: GLenum
pattern GLU_NURBS_END_EXT :: GLenum
pattern GLU_NURBS_BEGIN_DATA :: GLenum
pattern GLU_NURBS_BEGIN_DATA_EXT :: GLenum
pattern GLU_NURBS_VERTEX_DATA :: GLenum
pattern GLU_NURBS_VERTEX_DATA_EXT :: GLenum
pattern GLU_NURBS_NORMAL_DATA :: GLenum
pattern GLU_NURBS_NORMAL_DATA_EXT :: GLenum
pattern GLU_NURBS_COLOR_DATA :: GLenum
pattern GLU_NURBS_COLOR_DATA_EXT :: GLenum
pattern GLU_NURBS_TEXTURE_COORD_DATA :: GLenum
pattern GLU_NURBS_TEX_COORD_DATA_EXT :: GLenum
pattern GLU_NURBS_END_DATA :: GLenum
pattern GLU_NURBS_END_DATA_EXT :: GLenum
pattern GLU_NURBS_ERROR1 :: GLenum
pattern GLU_NURBS_ERROR2 :: GLenum
pattern GLU_NURBS_ERROR3 :: GLenum
pattern GLU_NURBS_ERROR4 :: GLenum
pattern GLU_NURBS_ERROR5 :: GLenum
pattern GLU_NURBS_ERROR6 :: GLenum
pattern GLU_NURBS_ERROR7 :: GLenum
pattern GLU_NURBS_ERROR8 :: GLenum
pattern GLU_NURBS_ERROR9 :: GLenum
pattern GLU_NURBS_ERROR10 :: GLenum
pattern GLU_NURBS_ERROR11 :: GLenum
pattern GLU_NURBS_ERROR12 :: GLenum
pattern GLU_NURBS_ERROR13 :: GLenum
pattern GLU_NURBS_ERROR14 :: GLenum
pattern GLU_NURBS_ERROR15 :: GLenum
pattern GLU_NURBS_ERROR16 :: GLenum
pattern GLU_NURBS_ERROR17 :: GLenum
pattern GLU_NURBS_ERROR18 :: GLenum
pattern GLU_NURBS_ERROR19 :: GLenum
pattern GLU_NURBS_ERROR20 :: GLenum
pattern GLU_NURBS_ERROR21 :: GLenum
pattern GLU_NURBS_ERROR22 :: GLenum
pattern GLU_NURBS_ERROR23 :: GLenum
pattern GLU_NURBS_ERROR24 :: GLenum
pattern GLU_NURBS_ERROR25 :: GLenum
pattern GLU_NURBS_ERROR26 :: GLenum
pattern GLU_NURBS_ERROR27 :: GLenum
pattern GLU_NURBS_ERROR28 :: GLenum
pattern GLU_NURBS_ERROR29 :: GLenum
pattern GLU_NURBS_ERROR30 :: GLenum
pattern GLU_NURBS_ERROR31 :: GLenum
pattern GLU_NURBS_ERROR32 :: GLenum
pattern GLU_NURBS_ERROR33 :: GLenum
pattern GLU_NURBS_ERROR34 :: GLenum
pattern GLU_NURBS_ERROR35 :: GLenum
pattern GLU_NURBS_ERROR36 :: GLenum
pattern GLU_NURBS_ERROR37 :: GLenum
pattern GLU_AUTO_LOAD_MATRIX :: GLenum
pattern GLU_CULLING :: GLenum
pattern GLU_SAMPLING_TOLERANCE :: GLenum
pattern GLU_DISPLAY_MODE :: GLenum
pattern GLU_PARAMETRIC_TOLERANCE :: GLenum
pattern GLU_SAMPLING_METHOD :: GLenum
pattern GLU_U_STEP :: GLenum
pattern GLU_V_STEP :: GLenum
pattern GLU_NURBS_MODE :: GLenum
pattern GLU_NURBS_MODE_EXT :: GLenum
pattern GLU_NURBS_TESSELLATOR :: GLenum
pattern GLU_NURBS_TESSELLATOR_EXT :: GLenum
pattern GLU_NURBS_RENDERER :: GLenum
pattern GLU_NURBS_RENDERER_EXT :: GLenum
pattern GLU_OBJECT_PARAMETRIC_ERROR :: GLenum
pattern GLU_OBJECT_PARAMETRIC_ERROR_EXT :: GLenum
pattern GLU_OBJECT_PATH_LENGTH :: GLenum
pattern GLU_OBJECT_PATH_LENGTH_EXT :: GLenum
pattern GLU_PATH_LENGTH :: GLenum
pattern GLU_PARAMETRIC_ERROR :: GLenum
pattern GLU_DOMAIN_DISTANCE :: GLenum
pattern GLU_MAP1_TRIM_2 :: GLenum
pattern GLU_MAP1_TRIM_3 :: GLenum
pattern GLU_POINT :: GLenum
pattern GLU_LINE :: GLenum
pattern GLU_FILL :: GLenum
pattern GLU_SILHOUETTE :: GLenum
pattern GLU_SMOOTH :: GLenum
pattern GLU_FLAT :: GLenum
pattern GLU_NONE :: GLenum
pattern GLU_OUTSIDE :: GLenum
pattern GLU_INSIDE :: GLenum
pattern GLU_TESS_BEGIN :: GLenum
pattern GLU_BEGIN :: GLenum
pattern GLU_TESS_VERTEX :: GLenum
pattern GLU_VERTEX :: GLenum
pattern GLU_TESS_END :: GLenum
pattern GLU_END :: GLenum
pattern GLU_TESS_ERROR :: GLenum
pattern GLU_TESS_EDGE_FLAG :: GLenum
pattern GLU_EDGE_FLAG :: GLenum
pattern GLU_TESS_COMBINE :: GLenum
pattern GLU_TESS_BEGIN_DATA :: GLenum
pattern GLU_TESS_VERTEX_DATA :: GLenum
pattern GLU_TESS_END_DATA :: GLenum
pattern GLU_TESS_ERROR_DATA :: GLenum
pattern GLU_TESS_EDGE_FLAG_DATA :: GLenum
pattern GLU_TESS_COMBINE_DATA :: GLenum
pattern GLU_CW :: GLenum
pattern GLU_CCW :: GLenum
pattern GLU_INTERIOR :: GLenum
pattern GLU_EXTERIOR :: GLenum
pattern GLU_UNKNOWN :: GLenum
pattern GLU_TESS_WINDING_RULE :: GLenum
pattern GLU_TESS_BOUNDARY_ONLY :: GLenum
pattern GLU_TESS_TOLERANCE :: GLenum
pattern GLU_TESS_ERROR1 :: GLenum
pattern GLU_TESS_ERROR2 :: GLenum
pattern GLU_TESS_ERROR3 :: GLenum
pattern GLU_TESS_ERROR4 :: GLenum
pattern GLU_TESS_ERROR5 :: GLenum
pattern GLU_TESS_ERROR6 :: GLenum
pattern GLU_TESS_ERROR7 :: GLenum
pattern GLU_TESS_ERROR8 :: GLenum
pattern GLU_TESS_MISSING_BEGIN_POLYGON :: GLenum
pattern GLU_TESS_MISSING_BEGIN_CONTOUR :: GLenum
pattern GLU_TESS_MISSING_END_POLYGON :: GLenum
pattern GLU_TESS_MISSING_END_CONTOUR :: GLenum
pattern GLU_TESS_COORD_TOO_LARGE :: GLenum
pattern GLU_TESS_NEED_COMBINE_CALLBACK :: GLenum
pattern GLU_TESS_WINDING_ODD :: GLenum
pattern GLU_TESS_WINDING_NONZERO :: GLenum
pattern GLU_TESS_WINDING_POSITIVE :: GLenum
pattern GLU_TESS_WINDING_NEGATIVE :: GLenum
pattern GLU_TESS_WINDING_ABS_GEQ_TWO :: GLenum

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

-- | All functions from GLU 1.3, see http://www.opengl.org/.
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
