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

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

-- | All tokens from GLU 1.3, see http://www.opengl.org/.
module Graphics.Rendering.GLU.Raw.Tokens
glu_FALSE :: GLenum
glu_TRUE :: GLenum
glu_VERSION :: GLenum
glu_EXTENSIONS :: GLenum
glu_INVALID_ENUM :: GLenum
glu_INVALID_VALUE :: GLenum
glu_OUT_OF_MEMORY :: GLenum
glu_INCOMPATIBLE_GL_VERSION :: GLenum
glu_INVALID_OPERATION :: GLenum
glu_OUTLINE_POLYGON :: GLenum
glu_OUTLINE_PATCH :: GLenum
glu_NURBS_ERROR :: GLenum
glu_ERROR :: GLenum
glu_NURBS_BEGIN :: GLenum
glu_NURBS_BEGIN_EXT :: GLenum
glu_NURBS_VERTEX :: GLenum
glu_NURBS_VERTEX_EXT :: GLenum
glu_NURBS_NORMAL :: GLenum
glu_NURBS_NORMAL_EXT :: GLenum
glu_NURBS_COLOR :: GLenum
glu_NURBS_COLOR_EXT :: GLenum
glu_NURBS_TEXTURE_COORD :: GLenum
glu_NURBS_TEX_COORD_EXT :: GLenum
glu_NURBS_END :: GLenum
glu_NURBS_END_EXT :: GLenum
glu_NURBS_BEGIN_DATA :: GLenum
glu_NURBS_BEGIN_DATA_EXT :: GLenum
glu_NURBS_VERTEX_DATA :: GLenum
glu_NURBS_VERTEX_DATA_EXT :: GLenum
glu_NURBS_NORMAL_DATA :: GLenum
glu_NURBS_NORMAL_DATA_EXT :: GLenum
glu_NURBS_COLOR_DATA :: GLenum
glu_NURBS_COLOR_DATA_EXT :: GLenum
glu_NURBS_TEXTURE_COORD_DATA :: GLenum
glu_NURBS_TEX_COORD_DATA_EXT :: GLenum
glu_NURBS_END_DATA :: GLenum
glu_NURBS_END_DATA_EXT :: GLenum
glu_NURBS_ERROR1 :: GLenum
glu_NURBS_ERROR2 :: GLenum
glu_NURBS_ERROR3 :: GLenum
glu_NURBS_ERROR4 :: GLenum
glu_NURBS_ERROR5 :: GLenum
glu_NURBS_ERROR6 :: GLenum
glu_NURBS_ERROR7 :: GLenum
glu_NURBS_ERROR8 :: GLenum
glu_NURBS_ERROR9 :: GLenum
glu_NURBS_ERROR10 :: GLenum
glu_NURBS_ERROR11 :: GLenum
glu_NURBS_ERROR12 :: GLenum
glu_NURBS_ERROR13 :: GLenum
glu_NURBS_ERROR14 :: GLenum
glu_NURBS_ERROR15 :: GLenum
glu_NURBS_ERROR16 :: GLenum
glu_NURBS_ERROR17 :: GLenum
glu_NURBS_ERROR18 :: GLenum
glu_NURBS_ERROR19 :: GLenum
glu_NURBS_ERROR20 :: GLenum
glu_NURBS_ERROR21 :: GLenum
glu_NURBS_ERROR22 :: GLenum
glu_NURBS_ERROR23 :: GLenum
glu_NURBS_ERROR24 :: GLenum
glu_NURBS_ERROR25 :: GLenum
glu_NURBS_ERROR26 :: GLenum
glu_NURBS_ERROR27 :: GLenum
glu_NURBS_ERROR28 :: GLenum
glu_NURBS_ERROR29 :: GLenum
glu_NURBS_ERROR30 :: GLenum
glu_NURBS_ERROR31 :: GLenum
glu_NURBS_ERROR32 :: GLenum
glu_NURBS_ERROR33 :: GLenum
glu_NURBS_ERROR34 :: GLenum
glu_NURBS_ERROR35 :: GLenum
glu_NURBS_ERROR36 :: GLenum
glu_NURBS_ERROR37 :: GLenum
glu_AUTO_LOAD_MATRIX :: GLenum
glu_CULLING :: GLenum
glu_SAMPLING_TOLERANCE :: GLenum
glu_DISPLAY_MODE :: GLenum
glu_PARAMETRIC_TOLERANCE :: GLenum
glu_SAMPLING_METHOD :: GLenum
glu_U_STEP :: GLenum
glu_V_STEP :: GLenum
glu_NURBS_MODE :: GLenum
glu_NURBS_MODE_EXT :: GLenum
glu_NURBS_TESSELLATOR :: GLenum
glu_NURBS_TESSELLATOR_EXT :: GLenum
glu_NURBS_RENDERER :: GLenum
glu_NURBS_RENDERER_EXT :: GLenum
glu_OBJECT_PARAMETRIC_ERROR :: GLenum
glu_OBJECT_PARAMETRIC_ERROR_EXT :: GLenum
glu_OBJECT_PATH_LENGTH :: GLenum
glu_OBJECT_PATH_LENGTH_EXT :: GLenum
glu_PATH_LENGTH :: GLenum
glu_PARAMETRIC_ERROR :: GLenum
glu_DOMAIN_DISTANCE :: GLenum
glu_MAP1_TRIM_2 :: GLenum
glu_MAP1_TRIM_3 :: GLenum
glu_POINT :: GLenum
glu_LINE :: GLenum
glu_FILL :: GLenum
glu_SILHOUETTE :: GLenum
glu_SMOOTH :: GLenum
glu_FLAT :: GLenum
glu_NONE :: GLenum
glu_OUTSIDE :: GLenum
glu_INSIDE :: GLenum
glu_TESS_BEGIN :: GLenum
glu_BEGIN :: GLenum
glu_TESS_VERTEX :: GLenum
glu_VERTEX :: GLenum
glu_TESS_END :: GLenum
glu_END :: GLenum
glu_TESS_ERROR :: GLenum
glu_TESS_EDGE_FLAG :: GLenum
glu_EDGE_FLAG :: GLenum
glu_TESS_COMBINE :: GLenum
glu_TESS_BEGIN_DATA :: GLenum
glu_TESS_VERTEX_DATA :: GLenum
glu_TESS_END_DATA :: GLenum
glu_TESS_ERROR_DATA :: GLenum
glu_TESS_EDGE_FLAG_DATA :: GLenum
glu_TESS_COMBINE_DATA :: GLenum
glu_CW :: GLenum
glu_CCW :: GLenum
glu_INTERIOR :: GLenum
glu_EXTERIOR :: GLenum
glu_UNKNOWN :: GLenum
glu_TESS_WINDING_RULE :: GLenum
glu_TESS_BOUNDARY_ONLY :: GLenum
glu_TESS_TOLERANCE :: GLenum
glu_TESS_ERROR1 :: GLenum
glu_TESS_ERROR2 :: GLenum
glu_TESS_ERROR3 :: GLenum
glu_TESS_ERROR4 :: GLenum
glu_TESS_ERROR5 :: GLenum
glu_TESS_ERROR6 :: GLenum
glu_TESS_ERROR7 :: GLenum
glu_TESS_ERROR8 :: GLenum
glu_TESS_MISSING_BEGIN_POLYGON :: GLenum
glu_TESS_MISSING_BEGIN_CONTOUR :: GLenum
glu_TESS_MISSING_END_POLYGON :: GLenum
glu_TESS_MISSING_END_CONTOUR :: GLenum
glu_TESS_COORD_TOO_LARGE :: GLenum
glu_TESS_NEED_COMBINE_CALLBACK :: GLenum
glu_TESS_WINDING_ODD :: GLenum
glu_TESS_WINDING_NONZERO :: GLenum
glu_TESS_WINDING_POSITIVE :: GLenum
glu_TESS_WINDING_NEGATIVE :: GLenum
glu_TESS_WINDING_ABS_GEQ_TWO :: GLenum

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

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