-- 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.4


-- | 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 tokens from GLU 1.3, see <a>http://www.opengl.org/</a>.
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 <a>http://www.opengl.org/</a>.
module Graphics.GLU.Types
data GLUnurbs
data GLUquadric
data GLUtesselator


-- | 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
