{-# LANGUAGE CPP #-} -------------------------------------------------------------------------------- -- | -- Module : Graphics.GLU.Functions -- Copyright : (c) Sven Panne 2018 -- License : BSD3 -- -- Maintainer : Sven Panne -- Stability : stable -- Portability : portable -- -- All functions from GLU 1.3, see . -- -------------------------------------------------------------------------------- module Graphics.GLU.Functions ( gluBeginCurve, gluBeginPolygon, gluBeginSurface, gluBeginTrim, gluBuild1DMipmapLevels, gluBuild1DMipmaps, gluBuild2DMipmapLevels, gluBuild2DMipmaps, gluBuild3DMipmapLevels, gluBuild3DMipmaps, gluCheckExtension, gluCylinder, gluDeleteNurbsRenderer, gluDeleteQuadric, gluDeleteTess, gluDisk, gluEndCurve, gluEndPolygon, gluEndSurface, gluEndTrim, gluErrorString, gluGetNurbsProperty, gluGetString, gluGetTessProperty, gluLoadSamplingMatrices, gluLookAt, gluNewNurbsRenderer, gluNewQuadric, gluNewTess, gluNextContour, gluNurbsCallback, gluNurbsCallbackData, gluNurbsCallbackDataEXT, gluNurbsCurve, gluNurbsProperty, gluNurbsSurface, gluOrtho2D, gluPartialDisk, gluPerspective, gluPickMatrix, gluProject, gluPwlCurve, gluQuadricCallback, gluQuadricDrawStyle, gluQuadricNormals, gluQuadricOrientation, gluQuadricTexture, gluScaleImage, gluSphere, gluTessBeginContour, gluTessBeginPolygon, gluTessCallback, gluTessEndContour, gluTessEndPolygon, gluTessNormal, gluTessProperty, gluTessVertex, gluUnProject, gluUnProject4, ) where import Control.Monad.IO.Class ( MonadIO(..) ) import Foreign.C.String ( withCString, CString ) import Foreign.Marshal.Error ( throwIf ) import Foreign.Ptr ( Ptr, FunPtr, nullFunPtr ) import System.IO.Unsafe ( unsafePerformIO ) import Graphics.GLU.Types import Graphics.GL.Types -------------------------------------------------------------------------------- -- | Retrieve a GLU API entry by name. Throws a userError when no entry with the -- given name was found. getAPIEntry :: String -> IO (FunPtr a) getAPIEntry extensionEntry = throwIfNullFunPtr ("unknown GLU entry " ++ extensionEntry) $ withCString extensionEntry hs_GLU_getProcAddress throwIfNullFunPtr :: String -> IO (FunPtr a) -> IO (FunPtr a) throwIfNullFunPtr = throwIf (== nullFunPtr) . const foreign import ccall unsafe "hs_GLU_getProcAddress" hs_GLU_getProcAddress :: CString -> IO (FunPtr a) -- gluBeginCurve ---------------------------------------------------------------------- gluBeginCurve :: MonadIO m => Ptr GLUnurbs -> m () gluBeginCurve v1 = liftIO $ dyn_gluBeginCurve ptr_gluBeginCurve v1 foreign import CALLCONV "dynamic" dyn_gluBeginCurve :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluBeginCurve #-} ptr_gluBeginCurve :: FunPtr a ptr_gluBeginCurve = unsafePerformIO $ getAPIEntry "gluBeginCurve" -- gluBeginPolygon ---------------------------------------------------------------------- gluBeginPolygon :: MonadIO m => Ptr GLUtesselator -> m () gluBeginPolygon v1 = liftIO $ dyn_gluBeginPolygon ptr_gluBeginPolygon v1 foreign import CALLCONV "dynamic" dyn_gluBeginPolygon :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluBeginPolygon #-} ptr_gluBeginPolygon :: FunPtr a ptr_gluBeginPolygon = unsafePerformIO $ getAPIEntry "gluBeginPolygon" -- gluBeginSurface ---------------------------------------------------------------------- gluBeginSurface :: MonadIO m => Ptr GLUnurbs -> m () gluBeginSurface v1 = liftIO $ dyn_gluBeginSurface ptr_gluBeginSurface v1 foreign import CALLCONV "dynamic" dyn_gluBeginSurface :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluBeginSurface #-} ptr_gluBeginSurface :: FunPtr a ptr_gluBeginSurface = unsafePerformIO $ getAPIEntry "gluBeginSurface" -- gluBeginTrim ---------------------------------------------------------------------- gluBeginTrim :: MonadIO m => Ptr GLUnurbs -> m () gluBeginTrim v1 = liftIO $ dyn_gluBeginTrim ptr_gluBeginTrim v1 foreign import CALLCONV "dynamic" dyn_gluBeginTrim :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluBeginTrim #-} ptr_gluBeginTrim :: FunPtr a ptr_gluBeginTrim = unsafePerformIO $ getAPIEntry "gluBeginTrim" -- gluBuild1DMipmapLevels ---------------------------------------------------------------------- gluBuild1DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint gluBuild1DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn_gluBuild1DMipmapLevels ptr_gluBuild1DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 foreign import CALLCONV "dynamic" dyn_gluBuild1DMipmapLevels :: FunPtr (GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild1DMipmapLevels #-} ptr_gluBuild1DMipmapLevels :: FunPtr a ptr_gluBuild1DMipmapLevels = unsafePerformIO $ getAPIEntry "gluBuild1DMipmapLevels" -- gluBuild1DMipmaps ---------------------------------------------------------------------- gluBuild1DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint gluBuild1DMipmaps v1 v2 v3 v4 v5 v6 = liftIO $ dyn_gluBuild1DMipmaps ptr_gluBuild1DMipmaps v1 v2 v3 v4 v5 v6 foreign import CALLCONV "dynamic" dyn_gluBuild1DMipmaps :: FunPtr (GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild1DMipmaps #-} ptr_gluBuild1DMipmaps :: FunPtr a ptr_gluBuild1DMipmaps = unsafePerformIO $ getAPIEntry "gluBuild1DMipmaps" -- gluBuild2DMipmapLevels ---------------------------------------------------------------------- gluBuild2DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint gluBuild2DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 = liftIO $ dyn_gluBuild2DMipmapLevels ptr_gluBuild2DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 foreign import CALLCONV "dynamic" dyn_gluBuild2DMipmapLevels :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild2DMipmapLevels #-} ptr_gluBuild2DMipmapLevels :: FunPtr a ptr_gluBuild2DMipmapLevels = unsafePerformIO $ getAPIEntry "gluBuild2DMipmapLevels" -- gluBuild2DMipmaps ---------------------------------------------------------------------- gluBuild2DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint gluBuild2DMipmaps v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn_gluBuild2DMipmaps ptr_gluBuild2DMipmaps v1 v2 v3 v4 v5 v6 v7 foreign import CALLCONV "dynamic" dyn_gluBuild2DMipmaps :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild2DMipmaps #-} ptr_gluBuild2DMipmaps :: FunPtr a ptr_gluBuild2DMipmaps = unsafePerformIO $ getAPIEntry "gluBuild2DMipmaps" -- gluBuild3DMipmapLevels ---------------------------------------------------------------------- gluBuild3DMipmapLevels :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> m GLint gluBuild3DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11= liftIO $ dyn_gluBuild3DMipmapLevels ptr_gluBuild3DMipmapLevels v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 foreign import CALLCONV "dynamic" dyn_gluBuild3DMipmapLevels :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild3DMipmapLevels #-} ptr_gluBuild3DMipmapLevels :: FunPtr a ptr_gluBuild3DMipmapLevels = unsafePerformIO $ getAPIEntry "gluBuild3DMipmapLevels" -- gluBuild3DMipmaps ---------------------------------------------------------------------- gluBuild3DMipmaps :: MonadIO m => GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> m GLint gluBuild3DMipmaps v1 v2 v3 v4 v5 v6 v7 v8 = liftIO $ dyn_gluBuild3DMipmaps ptr_gluBuild3DMipmaps v1 v2 v3 v4 v5 v6 v7 v8 foreign import CALLCONV "dynamic" dyn_gluBuild3DMipmaps :: FunPtr (GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint) -> GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint {-# NOINLINE ptr_gluBuild3DMipmaps #-} ptr_gluBuild3DMipmaps :: FunPtr a ptr_gluBuild3DMipmaps = unsafePerformIO $ getAPIEntry "gluBuild3DMipmaps" -- gluCheckExtension ---------------------------------------------------------------------- gluCheckExtension :: MonadIO m => Ptr GLubyte -> Ptr GLubyte -> m GLboolean gluCheckExtension v1 v2 = liftIO $ dyn_gluCheckExtension ptr_gluCheckExtension v1 v2 foreign import CALLCONV "dynamic" dyn_gluCheckExtension :: FunPtr (Ptr GLubyte -> Ptr GLubyte -> IO GLboolean) -> Ptr GLubyte -> Ptr GLubyte -> IO GLboolean {-# NOINLINE ptr_gluCheckExtension #-} ptr_gluCheckExtension :: FunPtr a ptr_gluCheckExtension = unsafePerformIO $ getAPIEntry "gluCheckExtension" -- gluCylinder ---------------------------------------------------------------------- gluCylinder :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLdouble -> GLint -> GLint -> m () gluCylinder v1 v2 v3 v4 v5 v6 = liftIO $ dyn_gluCylinder ptr_gluCylinder v1 v2 v3 v4 v5 v6 foreign import CALLCONV "dynamic" dyn_gluCylinder :: FunPtr (Ptr GLUquadric -> GLdouble -> GLdouble -> GLdouble -> GLint -> GLint -> IO ()) -> Ptr GLUquadric -> GLdouble -> GLdouble -> GLdouble -> GLint -> GLint -> IO () {-# NOINLINE ptr_gluCylinder #-} ptr_gluCylinder :: FunPtr a ptr_gluCylinder = unsafePerformIO $ getAPIEntry "gluCylinder" -- gluDeleteNurbsRenderer ---------------------------------------------------------------------- gluDeleteNurbsRenderer :: MonadIO m => Ptr GLUnurbs -> m () gluDeleteNurbsRenderer v1 = liftIO $ dyn_gluDeleteNurbsRenderer ptr_gluDeleteNurbsRenderer v1 foreign import CALLCONV "dynamic" dyn_gluDeleteNurbsRenderer :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluDeleteNurbsRenderer #-} ptr_gluDeleteNurbsRenderer :: FunPtr a ptr_gluDeleteNurbsRenderer = unsafePerformIO $ getAPIEntry "gluDeleteNurbsRenderer" -- gluDeleteQuadric ---------------------------------------------------------------------- gluDeleteQuadric :: MonadIO m => Ptr GLUquadric -> m () gluDeleteQuadric v1 = liftIO $ dyn_gluDeleteQuadric ptr_gluDeleteQuadric v1 foreign import CALLCONV "dynamic" dyn_gluDeleteQuadric :: FunPtr (Ptr GLUquadric -> IO ()) -> Ptr GLUquadric -> IO () {-# NOINLINE ptr_gluDeleteQuadric #-} ptr_gluDeleteQuadric :: FunPtr a ptr_gluDeleteQuadric = unsafePerformIO $ getAPIEntry "gluDeleteQuadric" -- gluDeleteTess ---------------------------------------------------------------------- gluDeleteTess :: MonadIO m => Ptr GLUtesselator -> m () gluDeleteTess v1 = liftIO $ dyn_gluDeleteTess ptr_gluDeleteTess v1 foreign import CALLCONV "dynamic" dyn_gluDeleteTess :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluDeleteTess #-} ptr_gluDeleteTess :: FunPtr a ptr_gluDeleteTess = unsafePerformIO $ getAPIEntry "gluDeleteTess" -- gluDisk ---------------------------------------------------------------------- gluDisk :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> m () gluDisk v1 v2 v3 v4 v5 = liftIO $ dyn_gluDisk ptr_gluDisk v1 v2 v3 v4 v5 foreign import CALLCONV "dynamic" dyn_gluDisk :: FunPtr (Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> IO ()) -> Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> IO () {-# NOINLINE ptr_gluDisk #-} ptr_gluDisk :: FunPtr a ptr_gluDisk = unsafePerformIO $ getAPIEntry "gluDisk" -- gluEndCurve ---------------------------------------------------------------------- gluEndCurve :: MonadIO m => Ptr GLUnurbs -> m () gluEndCurve v1 = liftIO $ dyn_gluEndCurve ptr_gluEndCurve v1 foreign import CALLCONV "dynamic" dyn_gluEndCurve :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluEndCurve #-} ptr_gluEndCurve :: FunPtr a ptr_gluEndCurve = unsafePerformIO $ getAPIEntry "gluEndCurve" -- gluEndPolygon ---------------------------------------------------------------------- gluEndPolygon :: MonadIO m => Ptr GLUtesselator -> m () gluEndPolygon v1 = liftIO $ dyn_gluEndPolygon ptr_gluEndPolygon v1 foreign import CALLCONV "dynamic" dyn_gluEndPolygon :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluEndPolygon #-} ptr_gluEndPolygon :: FunPtr a ptr_gluEndPolygon = unsafePerformIO $ getAPIEntry "gluEndPolygon" -- gluEndSurface ---------------------------------------------------------------------- gluEndSurface :: MonadIO m => Ptr GLUnurbs -> m () gluEndSurface v1 = liftIO $ dyn_gluEndSurface ptr_gluEndSurface v1 foreign import CALLCONV "dynamic" dyn_gluEndSurface :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluEndSurface #-} ptr_gluEndSurface :: FunPtr a ptr_gluEndSurface = unsafePerformIO $ getAPIEntry "gluEndSurface" -- gluEndTrim ---------------------------------------------------------------------- gluEndTrim :: MonadIO m => Ptr GLUnurbs -> m () gluEndTrim v1 = liftIO $ dyn_gluEndTrim ptr_gluEndTrim v1 foreign import CALLCONV "dynamic" dyn_gluEndTrim :: FunPtr (Ptr GLUnurbs -> IO ()) -> Ptr GLUnurbs -> IO () {-# NOINLINE ptr_gluEndTrim #-} ptr_gluEndTrim :: FunPtr a ptr_gluEndTrim = unsafePerformIO $ getAPIEntry "gluEndTrim" -- gluErrorString ---------------------------------------------------------------------- gluErrorString :: MonadIO m => GLenum -> m (Ptr GLubyte) gluErrorString v1 = liftIO $ dyn_gluErrorString ptr_gluErrorString v1 foreign import CALLCONV "dynamic" dyn_gluErrorString :: FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte) {-# NOINLINE ptr_gluErrorString #-} ptr_gluErrorString :: FunPtr a ptr_gluErrorString = unsafePerformIO $ getAPIEntry "gluErrorString" -- gluGetNurbsProperty ---------------------------------------------------------------------- gluGetNurbsProperty :: MonadIO m => Ptr GLUnurbs -> GLenum -> Ptr GLfloat -> m () gluGetNurbsProperty v1 v2 v3 = liftIO $ dyn_gluGetNurbsProperty ptr_gluGetNurbsProperty v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluGetNurbsProperty :: FunPtr (Ptr GLUnurbs -> GLenum -> Ptr GLfloat -> IO ()) -> Ptr GLUnurbs -> GLenum -> Ptr GLfloat -> IO () {-# NOINLINE ptr_gluGetNurbsProperty #-} ptr_gluGetNurbsProperty :: FunPtr a ptr_gluGetNurbsProperty = unsafePerformIO $ getAPIEntry "gluGetNurbsProperty" -- gluGetString ---------------------------------------------------------------------- gluGetString :: MonadIO m => GLenum -> m (Ptr GLubyte) gluGetString v1 = liftIO $ dyn_gluGetString ptr_gluGetString v1 foreign import CALLCONV "dynamic" dyn_gluGetString :: FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte) {-# NOINLINE ptr_gluGetString #-} ptr_gluGetString :: FunPtr a ptr_gluGetString = unsafePerformIO $ getAPIEntry "gluGetString" -- gluGetTessProperty ---------------------------------------------------------------------- gluGetTessProperty :: MonadIO m => Ptr GLUtesselator -> GLenum -> Ptr GLdouble -> m () gluGetTessProperty v1 v2 v3 = liftIO $ dyn_gluGetTessProperty ptr_gluGetTessProperty v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluGetTessProperty :: FunPtr (Ptr GLUtesselator -> GLenum -> Ptr GLdouble -> IO ()) -> Ptr GLUtesselator -> GLenum -> Ptr GLdouble -> IO () {-# NOINLINE ptr_gluGetTessProperty #-} ptr_gluGetTessProperty :: FunPtr a ptr_gluGetTessProperty = unsafePerformIO $ getAPIEntry "gluGetTessProperty" -- gluLoadSamplingMatrices ---------------------------------------------------------------------- gluLoadSamplingMatrices :: MonadIO m => Ptr GLUnurbs -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLint -> m () gluLoadSamplingMatrices v1 v2 v3 v4 = liftIO $ dyn_gluLoadSamplingMatrices ptr_gluLoadSamplingMatrices v1 v2 v3 v4 foreign import CALLCONV "dynamic" dyn_gluLoadSamplingMatrices :: FunPtr (Ptr GLUnurbs -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLint -> IO ()) -> Ptr GLUnurbs -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLint -> IO () {-# NOINLINE ptr_gluLoadSamplingMatrices #-} ptr_gluLoadSamplingMatrices :: FunPtr a ptr_gluLoadSamplingMatrices = unsafePerformIO $ getAPIEntry "gluLoadSamplingMatrices" -- gluLookAt ---------------------------------------------------------------------- gluLookAt :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m () gluLookAt v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn_gluLookAt ptr_gluLookAt v1 v2 v3 v4 v5 v6 v7 v8 v9 foreign import CALLCONV "dynamic" dyn_gluLookAt :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () {-# NOINLINE ptr_gluLookAt #-} ptr_gluLookAt :: FunPtr a ptr_gluLookAt = unsafePerformIO $ getAPIEntry "gluLookAt" -- gluNewNurbsRenderer ---------------------------------------------------------------------- gluNewNurbsRenderer :: MonadIO m => m (Ptr GLUnurbs) gluNewNurbsRenderer = liftIO $ dyn_gluNewNurbsRenderer ptr_gluNewNurbsRenderer foreign import CALLCONV "dynamic" dyn_gluNewNurbsRenderer :: FunPtr (IO (Ptr GLUnurbs)) -> IO (Ptr GLUnurbs) {-# NOINLINE ptr_gluNewNurbsRenderer #-} ptr_gluNewNurbsRenderer :: FunPtr a ptr_gluNewNurbsRenderer = unsafePerformIO $ getAPIEntry "gluNewNurbsRenderer" -- gluNewQuadric ---------------------------------------------------------------------- gluNewQuadric :: MonadIO m => m (Ptr GLUquadric) gluNewQuadric = liftIO $ dyn_gluNewQuadric ptr_gluNewQuadric foreign import CALLCONV "dynamic" dyn_gluNewQuadric :: FunPtr (IO (Ptr GLUquadric)) -> IO (Ptr GLUquadric) {-# NOINLINE ptr_gluNewQuadric #-} ptr_gluNewQuadric :: FunPtr a ptr_gluNewQuadric = unsafePerformIO $ getAPIEntry "gluNewQuadric" -- gluNewTess ---------------------------------------------------------------------- gluNewTess :: MonadIO m => m (Ptr GLUtesselator) gluNewTess = liftIO $ dyn_gluNewTess ptr_gluNewTess foreign import CALLCONV "dynamic" dyn_gluNewTess :: FunPtr (IO (Ptr GLUtesselator)) -> IO (Ptr GLUtesselator) {-# NOINLINE ptr_gluNewTess #-} ptr_gluNewTess :: FunPtr a ptr_gluNewTess = unsafePerformIO $ getAPIEntry "gluNewTess" -- gluNextContour ---------------------------------------------------------------------- gluNextContour :: MonadIO m => Ptr GLUtesselator -> GLenum -> m () gluNextContour v1 v2 = liftIO $ dyn_gluNextContour ptr_gluNextContour v1 v2 foreign import CALLCONV "dynamic" dyn_gluNextContour :: FunPtr (Ptr GLUtesselator -> GLenum -> IO ()) -> Ptr GLUtesselator -> GLenum -> IO () {-# NOINLINE ptr_gluNextContour #-} ptr_gluNextContour :: FunPtr a ptr_gluNextContour = unsafePerformIO $ getAPIEntry "gluNextContour" -- gluNurbsCallback ---------------------------------------------------------------------- gluNurbsCallback :: MonadIO m => Ptr GLUnurbs -> GLenum -> FunPtr a -> m () gluNurbsCallback v1 v2 v3 = liftIO $ dyn_gluNurbsCallback ptr_gluNurbsCallback v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluNurbsCallback :: FunPtr (Ptr GLUnurbs -> GLenum -> FunPtr a -> IO ()) -> Ptr GLUnurbs -> GLenum -> FunPtr a -> IO () {-# NOINLINE ptr_gluNurbsCallback #-} ptr_gluNurbsCallback :: FunPtr a ptr_gluNurbsCallback = unsafePerformIO $ getAPIEntry "gluNurbsCallback" -- gluNurbsCallbackData ---------------------------------------------------------------------- gluNurbsCallbackData :: MonadIO m => Ptr GLUnurbs -> Ptr a -> m () gluNurbsCallbackData v1 v2 = liftIO $ dyn_gluNurbsCallbackData ptr_gluNurbsCallbackData v1 v2 foreign import CALLCONV "dynamic" dyn_gluNurbsCallbackData :: FunPtr (Ptr GLUnurbs -> Ptr a -> IO ()) -> Ptr GLUnurbs -> Ptr a -> IO () {-# NOINLINE ptr_gluNurbsCallbackData #-} ptr_gluNurbsCallbackData :: FunPtr a ptr_gluNurbsCallbackData = unsafePerformIO $ getAPIEntry "gluNurbsCallbackData" -- gluNurbsCallbackDataEXT ---------------------------------------------------------------------- gluNurbsCallbackDataEXT :: MonadIO m => Ptr GLUnurbs -> Ptr a -> m () gluNurbsCallbackDataEXT v1 v2 = liftIO $ dyn_gluNurbsCallbackDataEXT ptr_gluNurbsCallbackDataEXT v1 v2 foreign import CALLCONV "dynamic" dyn_gluNurbsCallbackDataEXT :: FunPtr (Ptr GLUnurbs -> Ptr a -> IO ()) -> Ptr GLUnurbs -> Ptr a -> IO () {-# NOINLINE ptr_gluNurbsCallbackDataEXT #-} ptr_gluNurbsCallbackDataEXT :: FunPtr a ptr_gluNurbsCallbackDataEXT = unsafePerformIO $ getAPIEntry "gluNurbsCallbackDataEXT" -- gluNurbsCurve ---------------------------------------------------------------------- gluNurbsCurve :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLenum -> m () gluNurbsCurve v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn_gluNurbsCurve ptr_gluNurbsCurve v1 v2 v3 v4 v5 v6 v7 foreign import CALLCONV "dynamic" dyn_gluNurbsCurve :: FunPtr (Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO ()) -> Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO () {-# NOINLINE ptr_gluNurbsCurve #-} ptr_gluNurbsCurve :: FunPtr a ptr_gluNurbsCurve = unsafePerformIO $ getAPIEntry "gluNurbsCurve" -- gluNurbsProperty ---------------------------------------------------------------------- gluNurbsProperty :: MonadIO m => Ptr GLUnurbs -> GLenum -> GLfloat -> m () gluNurbsProperty v1 v2 v3 = liftIO $ dyn_gluNurbsProperty ptr_gluNurbsProperty v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluNurbsProperty :: FunPtr (Ptr GLUnurbs -> GLenum -> GLfloat -> IO ()) -> Ptr GLUnurbs -> GLenum -> GLfloat -> IO () {-# NOINLINE ptr_gluNurbsProperty #-} ptr_gluNurbsProperty :: FunPtr a ptr_gluNurbsProperty = unsafePerformIO $ getAPIEntry "gluNurbsProperty" -- gluNurbsSurface ---------------------------------------------------------------------- gluNurbsSurface :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr GLfloat -> GLint -> GLint -> GLenum -> m () gluNurbsSurface v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 = liftIO $ dyn_gluNurbsSurface ptr_gluNurbsSurface v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 foreign import CALLCONV "dynamic" dyn_gluNurbsSurface :: FunPtr (Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr GLfloat -> GLint -> GLint -> GLenum -> IO ()) -> Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr GLfloat -> GLint -> GLint -> GLenum -> IO () {-# NOINLINE ptr_gluNurbsSurface #-} ptr_gluNurbsSurface :: FunPtr a ptr_gluNurbsSurface = unsafePerformIO $ getAPIEntry "gluNurbsSurface" -- gluOrtho2D ---------------------------------------------------------------------- gluOrtho2D :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m () gluOrtho2D v1 v2 v3 v4 = liftIO $ dyn_gluOrtho2D ptr_gluOrtho2D v1 v2 v3 v4 foreign import CALLCONV "dynamic" dyn_gluOrtho2D :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () {-# NOINLINE ptr_gluOrtho2D #-} ptr_gluOrtho2D :: FunPtr a ptr_gluOrtho2D = unsafePerformIO $ getAPIEntry "gluOrtho2D" -- gluPartialDisk ---------------------------------------------------------------------- gluPartialDisk :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> m () gluPartialDisk v1 v2 v3 v4 v5 v6 v7 = liftIO $ dyn_gluPartialDisk ptr_gluPartialDisk v1 v2 v3 v4 v5 v6 v7 foreign import CALLCONV "dynamic" dyn_gluPartialDisk :: FunPtr (Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> IO ()) -> Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> IO () {-# NOINLINE ptr_gluPartialDisk #-} ptr_gluPartialDisk :: FunPtr a ptr_gluPartialDisk = unsafePerformIO $ getAPIEntry "gluPartialDisk" -- gluPerspective ---------------------------------------------------------------------- gluPerspective :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> m () gluPerspective v1 v2 v3 v4 = liftIO $ dyn_gluPerspective ptr_gluPerspective v1 v2 v3 v4 foreign import CALLCONV "dynamic" dyn_gluPerspective :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () {-# NOINLINE ptr_gluPerspective #-} ptr_gluPerspective :: FunPtr a ptr_gluPerspective = unsafePerformIO $ getAPIEntry "gluPerspective" -- gluPickMatrix ---------------------------------------------------------------------- gluPickMatrix :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLint -> m () gluPickMatrix v1 v2 v3 v4 v5 = liftIO $ dyn_gluPickMatrix ptr_gluPickMatrix v1 v2 v3 v4 v5 foreign import CALLCONV "dynamic" dyn_gluPickMatrix :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLint -> IO ()) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLint -> IO () {-# NOINLINE ptr_gluPickMatrix #-} ptr_gluPickMatrix :: FunPtr a ptr_gluPickMatrix = unsafePerformIO $ getAPIEntry "gluPickMatrix" -- gluProject ---------------------------------------------------------------------- gluProject :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> m GLint gluProject v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn_gluProject ptr_gluProject v1 v2 v3 v4 v5 v6 v7 v8 v9 foreign import CALLCONV "dynamic" dyn_gluProject :: FunPtr (GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint) -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint {-# NOINLINE ptr_gluProject #-} ptr_gluProject :: FunPtr a ptr_gluProject = unsafePerformIO $ getAPIEntry "gluProject" -- gluPwlCurve ---------------------------------------------------------------------- gluPwlCurve :: MonadIO m => Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> GLenum -> m () gluPwlCurve v1 v2 v3 v4 v5 = liftIO $ dyn_gluPwlCurve ptr_gluPwlCurve v1 v2 v3 v4 v5 foreign import CALLCONV "dynamic" dyn_gluPwlCurve :: FunPtr (Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO ()) -> Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO () {-# NOINLINE ptr_gluPwlCurve #-} ptr_gluPwlCurve :: FunPtr a ptr_gluPwlCurve = unsafePerformIO $ getAPIEntry "gluPwlCurve" -- gluQuadricCallback ---------------------------------------------------------------------- gluQuadricCallback :: MonadIO m => Ptr GLUquadric -> GLenum -> FunPtr a -> m () gluQuadricCallback v1 v2 v3 = liftIO $ dyn_gluQuadricCallback ptr_gluQuadricCallback v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluQuadricCallback :: FunPtr (Ptr GLUquadric -> GLenum -> FunPtr a -> IO ()) -> Ptr GLUquadric -> GLenum -> FunPtr a -> IO () {-# NOINLINE ptr_gluQuadricCallback #-} ptr_gluQuadricCallback :: FunPtr a ptr_gluQuadricCallback = unsafePerformIO $ getAPIEntry "gluQuadricCallback" -- gluQuadricDrawStyle ---------------------------------------------------------------------- gluQuadricDrawStyle :: MonadIO m => Ptr GLUquadric -> GLenum -> m () gluQuadricDrawStyle v1 v2 = liftIO $ dyn_gluQuadricDrawStyle ptr_gluQuadricDrawStyle v1 v2 foreign import CALLCONV "dynamic" dyn_gluQuadricDrawStyle :: FunPtr (Ptr GLUquadric -> GLenum -> IO ()) -> Ptr GLUquadric -> GLenum -> IO () {-# NOINLINE ptr_gluQuadricDrawStyle #-} ptr_gluQuadricDrawStyle :: FunPtr a ptr_gluQuadricDrawStyle = unsafePerformIO $ getAPIEntry "gluQuadricDrawStyle" -- gluQuadricNormals ---------------------------------------------------------------------- gluQuadricNormals :: MonadIO m => Ptr GLUquadric -> GLenum -> m () gluQuadricNormals v1 v2 = liftIO $ dyn_gluQuadricNormals ptr_gluQuadricNormals v1 v2 foreign import CALLCONV "dynamic" dyn_gluQuadricNormals :: FunPtr (Ptr GLUquadric -> GLenum -> IO ()) -> Ptr GLUquadric -> GLenum -> IO () {-# NOINLINE ptr_gluQuadricNormals #-} ptr_gluQuadricNormals :: FunPtr a ptr_gluQuadricNormals = unsafePerformIO $ getAPIEntry "gluQuadricNormals" -- gluQuadricOrientation ---------------------------------------------------------------------- gluQuadricOrientation :: MonadIO m => Ptr GLUquadric -> GLenum -> m () gluQuadricOrientation v1 v2 = liftIO $ dyn_gluQuadricOrientation ptr_gluQuadricOrientation v1 v2 foreign import CALLCONV "dynamic" dyn_gluQuadricOrientation :: FunPtr (Ptr GLUquadric -> GLenum -> IO ()) -> Ptr GLUquadric -> GLenum -> IO () {-# NOINLINE ptr_gluQuadricOrientation #-} ptr_gluQuadricOrientation :: FunPtr a ptr_gluQuadricOrientation = unsafePerformIO $ getAPIEntry "gluQuadricOrientation" -- gluQuadricTexture ---------------------------------------------------------------------- gluQuadricTexture :: MonadIO m => Ptr GLUquadric -> GLboolean -> m () gluQuadricTexture v1 v2 = liftIO $ dyn_gluQuadricTexture ptr_gluQuadricTexture v1 v2 foreign import CALLCONV "dynamic" dyn_gluQuadricTexture :: FunPtr (Ptr GLUquadric -> GLboolean -> IO ()) -> Ptr GLUquadric -> GLboolean -> IO () {-# NOINLINE ptr_gluQuadricTexture #-} ptr_gluQuadricTexture :: FunPtr a ptr_gluQuadricTexture = unsafePerformIO $ getAPIEntry "gluQuadricTexture" -- gluScaleImage ---------------------------------------------------------------------- gluScaleImage :: MonadIO m => GLenum -> GLsizei -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLenum -> Ptr b -> m GLint gluScaleImage v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn_gluScaleImage ptr_gluScaleImage v1 v2 v3 v4 v5 v6 v7 v8 v9 foreign import CALLCONV "dynamic" dyn_gluScaleImage :: FunPtr (GLenum -> GLsizei -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLenum -> Ptr b -> IO GLint) -> GLenum -> GLsizei -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLenum -> Ptr b -> IO GLint {-# NOINLINE ptr_gluScaleImage #-} ptr_gluScaleImage :: FunPtr a ptr_gluScaleImage = unsafePerformIO $ getAPIEntry "gluScaleImage" -- gluSphere ---------------------------------------------------------------------- gluSphere :: MonadIO m => Ptr GLUquadric -> GLdouble -> GLint -> GLint -> m () gluSphere v1 v2 v3 v4 = liftIO $ dyn_gluSphere ptr_gluSphere v1 v2 v3 v4 foreign import CALLCONV "dynamic" dyn_gluSphere :: FunPtr (Ptr GLUquadric -> GLdouble -> GLint -> GLint -> IO ()) -> Ptr GLUquadric -> GLdouble -> GLint -> GLint -> IO () {-# NOINLINE ptr_gluSphere #-} ptr_gluSphere :: FunPtr a ptr_gluSphere = unsafePerformIO $ getAPIEntry "gluSphere" -- gluTessBeginContour ---------------------------------------------------------------------- gluTessBeginContour :: MonadIO m => Ptr GLUtesselator -> m () gluTessBeginContour v1 = liftIO $ dyn_gluTessBeginContour ptr_gluTessBeginContour v1 foreign import CALLCONV "dynamic" dyn_gluTessBeginContour :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluTessBeginContour #-} ptr_gluTessBeginContour :: FunPtr a ptr_gluTessBeginContour = unsafePerformIO $ getAPIEntry "gluTessBeginContour" -- gluTessBeginPolygon ---------------------------------------------------------------------- gluTessBeginPolygon :: MonadIO m => Ptr GLUtesselator -> Ptr a -> m () gluTessBeginPolygon v1 v2 = liftIO $ dyn_gluTessBeginPolygon ptr_gluTessBeginPolygon v1 v2 foreign import CALLCONV "dynamic" dyn_gluTessBeginPolygon :: FunPtr (Ptr GLUtesselator -> Ptr a -> IO ()) -> Ptr GLUtesselator -> Ptr a -> IO () {-# NOINLINE ptr_gluTessBeginPolygon #-} ptr_gluTessBeginPolygon :: FunPtr a ptr_gluTessBeginPolygon = unsafePerformIO $ getAPIEntry "gluTessBeginPolygon" -- gluTessCallback ---------------------------------------------------------------------- gluTessCallback :: MonadIO m => Ptr GLUtesselator -> GLenum -> FunPtr a -> m () gluTessCallback v1 v2 v3 = liftIO $ dyn_gluTessCallback ptr_gluTessCallback v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluTessCallback :: FunPtr (Ptr GLUtesselator -> GLenum -> FunPtr a -> IO ()) -> Ptr GLUtesselator -> GLenum -> FunPtr a -> IO () {-# NOINLINE ptr_gluTessCallback #-} ptr_gluTessCallback :: FunPtr a ptr_gluTessCallback = unsafePerformIO $ getAPIEntry "gluTessCallback" -- gluTessEndContour ---------------------------------------------------------------------- gluTessEndContour :: MonadIO m => Ptr GLUtesselator -> m () gluTessEndContour v1 = liftIO $ dyn_gluTessEndContour ptr_gluTessEndContour v1 foreign import CALLCONV "dynamic" dyn_gluTessEndContour :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluTessEndContour #-} ptr_gluTessEndContour :: FunPtr a ptr_gluTessEndContour = unsafePerformIO $ getAPIEntry "gluTessEndContour" -- gluTessEndPolygon ---------------------------------------------------------------------- gluTessEndPolygon :: MonadIO m => Ptr GLUtesselator -> m () gluTessEndPolygon v1 = liftIO $ dyn_gluTessEndPolygon ptr_gluTessEndPolygon v1 foreign import CALLCONV "dynamic" dyn_gluTessEndPolygon :: FunPtr (Ptr GLUtesselator -> IO ()) -> Ptr GLUtesselator -> IO () {-# NOINLINE ptr_gluTessEndPolygon #-} ptr_gluTessEndPolygon :: FunPtr a ptr_gluTessEndPolygon = unsafePerformIO $ getAPIEntry "gluTessEndPolygon" -- gluTessNormal ---------------------------------------------------------------------- gluTessNormal :: MonadIO m => Ptr GLUtesselator -> GLdouble -> GLdouble -> GLdouble -> m () gluTessNormal v1 v2 v3 v4 = liftIO $ dyn_gluTessNormal ptr_gluTessNormal v1 v2 v3 v4 foreign import CALLCONV "dynamic" dyn_gluTessNormal :: FunPtr (Ptr GLUtesselator -> GLdouble -> GLdouble -> GLdouble -> IO ()) -> Ptr GLUtesselator -> GLdouble -> GLdouble -> GLdouble -> IO () {-# NOINLINE ptr_gluTessNormal #-} ptr_gluTessNormal :: FunPtr a ptr_gluTessNormal = unsafePerformIO $ getAPIEntry "gluTessNormal" -- gluTessProperty ---------------------------------------------------------------------- gluTessProperty :: MonadIO m => Ptr GLUtesselator -> GLenum -> GLdouble -> m () gluTessProperty v1 v2 v3 = liftIO $ dyn_gluTessProperty ptr_gluTessProperty v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluTessProperty :: FunPtr (Ptr GLUtesselator -> GLenum -> GLdouble -> IO ()) -> Ptr GLUtesselator -> GLenum -> GLdouble -> IO () {-# NOINLINE ptr_gluTessProperty #-} ptr_gluTessProperty :: FunPtr a ptr_gluTessProperty = unsafePerformIO $ getAPIEntry "gluTessProperty" -- gluTessVertex ---------------------------------------------------------------------- gluTessVertex :: MonadIO m => Ptr GLUtesselator -> Ptr GLdouble -> Ptr a -> m () gluTessVertex v1 v2 v3 = liftIO $ dyn_gluTessVertex ptr_gluTessVertex v1 v2 v3 foreign import CALLCONV "dynamic" dyn_gluTessVertex :: FunPtr (Ptr GLUtesselator -> Ptr GLdouble -> Ptr a -> IO ()) -> Ptr GLUtesselator -> Ptr GLdouble -> Ptr a -> IO () {-# NOINLINE ptr_gluTessVertex #-} ptr_gluTessVertex :: FunPtr a ptr_gluTessVertex = unsafePerformIO $ getAPIEntry "gluTessVertex" -- gluUnProject ---------------------------------------------------------------------- gluUnProject :: MonadIO m => GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> m GLint gluUnProject v1 v2 v3 v4 v5 v6 v7 v8 v9 = liftIO $ dyn_gluUnProject ptr_gluUnProject v1 v2 v3 v4 v5 v6 v7 v8 v9 foreign import CALLCONV "dynamic" dyn_gluUnProject :: FunPtr (GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint) -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint {-# NOINLINE ptr_gluUnProject #-} ptr_gluUnProject :: FunPtr a ptr_gluUnProject = unsafePerformIO $ getAPIEntry "gluUnProject" -- gluUnProject4 ---------------------------------------------------------------------- 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 gluUnProject4 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 = liftIO $ dyn_gluUnProject4 ptr_gluUnProject4 v1 v2 v3 v4 v5 v6 v7 v8 v9 v10 v11 v12 v13 foreign import CALLCONV "dynamic" dyn_gluUnProject4 :: FunPtr (GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> GLclampd -> GLclampd -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint) -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> GLclampd -> GLclampd -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint {-# NOINLINE ptr_gluUnProject4 #-} ptr_gluUnProject4 :: FunPtr a ptr_gluUnProject4 = unsafePerformIO $ getAPIEntry "gluUnProject4"