packages feed

GLURaw (empty) → 1.0.0.0

raw patch · 12 files changed

+1150/−0 lines, 12 filesdep +OpenGLRawdep +basesetup-changed

Dependencies added: OpenGLRaw, base

Files

+ GLURaw.cabal view
@@ -0,0 +1,57 @@+name: GLURaw+version: 1.0.0.0+license: BSD3+license-file: LICENSE+maintainer: Sven Panne <sven.panne@aedion.de>+bug-reports: mailto:hopengl@haskell.org+homepage: http://www.haskell.org/HOpenGL/+category: Graphics+synopsis: A raw binding for the OpenGL graphics system+description:+   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/>.+build-type: Simple+cabal-version:  >= 1.2+extra-source-files:+   include/HsGLURaw.h++flag UseNativeWindowsLibraries+   description:+      When compiling under Windows, use the native libraries instead of e.g. the+      ones coming with Cygwin.++library+   exposed-modules:+      Graphics.Rendering.GLU.Raw+      Graphics.Rendering.GLU.Raw.Callbacks,+      Graphics.Rendering.GLU.Raw.Functions,+      Graphics.Rendering.GLU.Raw.Tokens,+      Graphics.Rendering.GLU.Raw.Types+   other-modules:+      Graphics.Rendering.GLU.Raw.APIEntry,+      Graphics.Rendering.GLU.Raw.TypesInternal+   c-sources:+      cbits/HsGLURaw.c+   hs-Source-Dirs: src+   include-dirs: include+   build-depends: base >= 3 && < 5, OpenGLRaw+   ghc-options: -Wall+   if os(windows) && flag(UseNativeWindowsLibraries)+      cpp-options: "-DCALLCONV=stdcall"+      extra-libraries: glu32+      cc-options: "-DUSE_GETPROCADDRESS"+   else+      cpp-options: "-DCALLCONV=ccall"+      extra-libraries: GLU+      if os(darwin)+         cc-options: "-DUSE_NSADDRESSOFSYMBOL"+      else+         cc-options: "-DUSE_DLSYM"
+ LICENSE view
@@ -0,0 +1,28 @@+Copyright (c) 2009, Sven Panne+All rights reserved.++Redistribution and use in source and binary forms, with or without+modification, are permitted provided that the following conditions are met:++1. Redistributions of source code must retain the above copyright notice,+   this list of conditions and the following disclaimer.++2. Redistributions in binary form must reproduce the above copyright+   notice, this list of conditions and the following disclaimer in the+   documentation and/or other materials provided with the distribution.++3. Neither the name of the author nor the names of its contributors may be+   used to endorse or promote products derived from this software without+   specific prior written permission.++THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE+POSSIBILITY OF SUCH DAMAGE.
+ Setup.hs view
@@ -0,0 +1,2 @@+import Distribution.Simple+main = defaultMain
+ cbits/HsGLURaw.c view
@@ -0,0 +1,92 @@+/* -----------------------------------------------------------------------------+ *+ * Module      :  C support for Graphics.Rendering.GLU.Raw.Extensions+ * Copyright   :  (c) Sven Panne 2009+ * License     :  BSD-style (see the file LICENSE)+ *+ * Maintainer  :  sven.panne@aedion.de+ * Stability   :  stable+ * Portability :  portable+ *+ * -------------------------------------------------------------------------- */++#if defined(USE_GETPROCADDRESS)++#define WIN32_LEAN_AND_MEAN+#include <windows.h>++void*+hs_GLU_getProcAddress(const char *name)+{+  static int firstTime = 1;+  static HMODULE handle = NULL;++  if (firstTime) {+    firstTime = 0;+    handle = LoadLibrary(TEXT("glu32"));+  }++  return handle ? GetProcAddress(handle, name) : NULL;+}++/* -------------------------------------------------------------------------- */+#elif defined(USE_NSADDRESSOFSYMBOL)++#include <mach-o/dyld.h>+#include <stdlib.h>+#include <string.h>++void*+hs_GLU_getProcAddress(const char *name)+{+  NSSymbol symbol;++  /* Prepend a '_' for the Unix C symbol mangling convention */+  char* symbolName = (char*)malloc(strlen(name) + 2);+  if (!symbolName) {+    return NULL;+  }+  symbolName[0] = '_';+  strcpy(symbolName + 1, name);++  if (!NSIsSymbolNameDefined(symbolName)) {+    free(symbolName);+    return NULL;+  }++  symbol = NSLookupAndBindSymbol(symbolName);+  free(symbolName);+  if (!symbol) {+    return NULL;+  }++  return NSAddressOfSymbol(symbol);+}++/* -------------------------------------------------------------------------- */+#elif defined(USE_DLSYM)++#include <stdlib.h>+#include <dlfcn.h>++void*+hs_GLU_getProcAddress(const char *name)+{+  static int firstTime = 1;+  static void *handle = NULL;++  if (firstTime) {+    firstTime = 0;+    /* Get a handle for our executable. */+    handle = dlopen(NULL, RTLD_LAZY);+  }++  return handle ? dlsym(handle, name) : NULL;+}++/* -------------------------------------------------------------------------- */+#else++#error "Don't know how to retrieve GLU entries"++#endif
+ include/HsGLURaw.h view
@@ -0,0 +1,33 @@+/* -----------------------------------------------------------------------------+ *+ * Module      :  GL extension support for Graphics.Rendering.GLU.Raw+ * Copyright   :  (c) Sven Panne 2009+ * License     :  BSD-style (see the file LICENSE)+ * + * Maintainer  :  sven.panne@aedion.de+ * Stability   :  stable+ * Portability :  portable+ *+ * This header should only define preprocessor macros!+ *+ * -------------------------------------------------------------------------- */++#ifndef HSGLURAW_H+#define HSGLURAW_H++/* NOTE: The macro must immediately start with the foreign declaration,+   otherwise the magic mangler (hack_foreign) in the Hugs build system+   doesn't recognize it. */+#define API_ENTRY_INTERNAL(_entry,_ty,_safety)						\+foreign import CALLCONV _safety "dynamic" dyn_/**/_entry :: Graphics.Rendering.GLU.Raw.APIEntry.Invoker (_ty) ; \+_entry :: (_ty) ; \+_entry = dyn_/**/_entry ptr_/**/_entry ; \+ptr_/**/_entry :: FunPtr a ; \+ptr_/**/_entry = unsafePerformIO (Graphics.Rendering.GLU.Raw.APIEntry.getAPIEntry "_entry") ; \+{-# NOINLINE ptr_/**/_entry #-}++#define API_ENTRY(_entry,_ty) API_ENTRY_INTERNAL(_entry,_ty,unsafe)++#define API_ENTRY_SAFE(_entry,_ty) API_ENTRY_INTERNAL(_entry,_ty,safe)++#endif
+ src/Graphics/Rendering/GLU/Raw.hs view
@@ -0,0 +1,25 @@+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- A 1:1 binding for the OpenGL utility library.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw (+   module Graphics.Rendering.GLU.Raw.Functions,+   module Graphics.Rendering.GLU.Raw.Tokens,+   module Graphics.Rendering.GLU.Raw.Types,+   module Graphics.Rendering.GLU.Raw.Callbacks+) where++import Graphics.Rendering.GLU.Raw.Functions+import Graphics.Rendering.GLU.Raw.Tokens+import Graphics.Rendering.GLU.Raw.Types+import Graphics.Rendering.GLU.Raw.Callbacks
+ src/Graphics/Rendering/GLU/Raw/APIEntry.hs view
@@ -0,0 +1,48 @@+{-# LANGUAGE ForeignFunctionInterface, CPP #-}+-- #hide+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.APIEntry+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- This module offers a portable way to retrieve GLUT entries, providing a+-- portability layer upon platform-specific mechanisms like @dlsym@,+-- @GetProcAddress@ or @NSAddressOfSymbol@.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.APIEntry (+   Invoker, getAPIEntry,+   FunPtr, unsafePerformIO+) where++import Foreign.C.String+import Foreign.Marshal.Error+import Foreign.Ptr+import System.IO.Unsafe++#ifdef __HUGS__+{-# CFILES cbits/HsOpenGLRaw.c #-}+#endif++--------------------------------------------------------------------------------++type Invoker a = FunPtr a -> a++-- | 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)
+ src/Graphics/Rendering/GLU/Raw/Callbacks.hs view
@@ -0,0 +1,190 @@+{-# LANGUAGE ForeignFunctionInterface, CPP #-}+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.Callbacks+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- All callbacks from GLU 1.3, see <http://www.opengl.org/>.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.Callbacks (+   -- * Tessellator Callbacks+   -- ** Tessellator Callbacks without Polygon Data+   TessBeginCallback, makeTessBeginCallback,+   TessEdgeFlagCallback, makeTessEdgeFlagCallback,+   TessVertexCallback, makeTessVertexCallback,+   TessEndCallback, makeTessEndCallback,+   TessErrorCallback, makeTessErrorCallback,+   TessCombineCallback, makeTessCombineCallback,+   -- ** Tessellator Callbacks with Polygon Data+   TessBeginDataCallback, makeTessBeginDataCallback,+   TessEdgeFlagDataCallback, makeTessEdgeFlagDataCallback,+   TessVertexDataCallback, makeTessVertexDataCallback,+   TessEndDataCallback, makeTessEndDataCallback,+   TessErrorDataCallback, makeTessErrorDataCallback,+   TessCombineDataCallback, makeTessCombineDataCallback,+   -- * Quadrics Callbacks+   QuadricCallback, makeQuadricCallback,+   -- * NURBS Callbacks+   -- ** NURBS Callbacks without User Data+   NURBSBeginCallback, makeNURBSBeginCallback,+   NURBSVertexCallback, makeNURBSVertexCallback,+   NURBSNormalCallback, makeNURBSNormalCallback,+   NURBSColorCallback, makeNURBSColorCallback,+   NURBSTexCoordCallback, makeNURBSTexCoordCallback,+   NURBSEndCallback, makeNURBSEndCallback,+   NURBSErrorCallback, makeNURBSErrorCallback,+   -- ** NURBS Callbacks with User Data+   NURBSBeginDataCallback, makeNURBSBeginDataCallback,+   NURBSVertexDataCallback, makeNURBSVertexDataCallback,+   NURBSNormalDataCallback, makeNURBSNormalDataCallback,+   NURBSColorDataCallback, makeNURBSColorDataCallback,+   NURBSTexCoordDataCallback, makeNURBSTexCoordDataCallback,+   NURBSEndDataCallback, makeNURBSEndDataCallback+) where++import Foreign.Ptr+import Graphics.Rendering.OpenGL.Raw++--------------------------------------------------------------------------------++type TessBeginCallback = GLenum -> IO ()++foreign import CALLCONV "wrapper"+   makeTessBeginCallback :: TessBeginCallback -> IO (FunPtr TessBeginCallback)++type TessEdgeFlagCallback = GLboolean -> IO ()++foreign import CALLCONV "wrapper"+   makeTessEdgeFlagCallback :: TessEdgeFlagCallback -> IO (FunPtr TessEdgeFlagCallback)++type TessVertexCallback v = Ptr v -> IO ()++foreign import CALLCONV "wrapper"+   makeTessVertexCallback :: TessVertexCallback v -> IO (FunPtr (TessVertexCallback v))++type TessEndCallback = IO ()++foreign import CALLCONV "wrapper"+   makeTessEndCallback :: TessEndCallback -> IO (FunPtr TessEndCallback)++type TessErrorCallback = GLenum -> IO ()++foreign import CALLCONV "wrapper"+   makeTessErrorCallback :: TessErrorCallback -> IO (FunPtr TessErrorCallback)++type TessCombineCallback v = Ptr GLdouble -> Ptr (Ptr v) -> Ptr GLfloat -> Ptr (Ptr v) -> IO ()++foreign import CALLCONV "wrapper"+   makeTessCombineCallback :: TessCombineCallback v -> IO (FunPtr (TessCombineCallback v))++type TessBeginDataCallback p = GLenum -> Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessBeginDataCallback :: TessBeginDataCallback p -> IO (FunPtr (TessBeginDataCallback p))++type TessEdgeFlagDataCallback p = GLboolean -> Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessEdgeFlagDataCallback :: TessEdgeFlagDataCallback p -> IO (FunPtr (TessEdgeFlagDataCallback p))++type TessVertexDataCallback v p = Ptr v -> Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessVertexDataCallback :: TessVertexDataCallback v p -> IO (FunPtr (TessVertexDataCallback v p))++type TessEndDataCallback p = Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessEndDataCallback :: TessEndDataCallback p -> IO (FunPtr (TessEndDataCallback p))++type TessErrorDataCallback p = GLenum -> Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessErrorDataCallback :: TessErrorDataCallback p -> IO (FunPtr (TessErrorDataCallback p))++type TessCombineDataCallback v p = Ptr GLdouble -> Ptr (Ptr v) -> Ptr GLfloat -> Ptr (Ptr v) -> Ptr p -> IO ()++foreign import CALLCONV "wrapper"+   makeTessCombineDataCallback :: TessCombineDataCallback v p -> IO (FunPtr (TessCombineDataCallback v p))++--------------------------------------------------------------------------------++type QuadricCallback = GLenum -> IO ()++foreign import CALLCONV "wrapper"+   makeQuadricCallback :: QuadricCallback -> IO (FunPtr QuadricCallback)++--------------------------------------------------------------------------------++type NURBSBeginCallback = GLenum -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSBeginCallback :: NURBSBeginCallback -> IO (FunPtr NURBSBeginCallback)++type NURBSVertexCallback = Ptr GLfloat -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSVertexCallback :: NURBSVertexCallback -> IO (FunPtr NURBSVertexCallback)++type NURBSNormalCallback = Ptr GLfloat -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSNormalCallback :: NURBSNormalCallback -> IO (FunPtr NURBSNormalCallback)++type NURBSColorCallback = Ptr GLfloat -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSColorCallback :: NURBSColorCallback -> IO (FunPtr NURBSColorCallback)++type NURBSTexCoordCallback = Ptr GLfloat -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSTexCoordCallback :: NURBSTexCoordCallback -> IO (FunPtr NURBSTexCoordCallback)++type NURBSEndCallback = IO ()++foreign import CALLCONV "wrapper"+   makeNURBSEndCallback :: NURBSEndCallback -> IO (FunPtr NURBSEndCallback)++type NURBSErrorCallback = GLenum -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSErrorCallback :: NURBSErrorCallback -> IO (FunPtr NURBSErrorCallback)++type NURBSBeginDataCallback u = GLenum -> Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSBeginDataCallback :: NURBSBeginDataCallback u -> IO (FunPtr (NURBSBeginDataCallback u))++type NURBSVertexDataCallback u = Ptr GLfloat -> Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSVertexDataCallback :: NURBSVertexDataCallback u -> IO (FunPtr (NURBSVertexDataCallback u))++type NURBSNormalDataCallback u = Ptr GLfloat -> Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSNormalDataCallback :: NURBSNormalDataCallback u -> IO (FunPtr (NURBSNormalDataCallback u))++type NURBSColorDataCallback u = Ptr GLfloat -> Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSColorDataCallback :: NURBSColorDataCallback u -> IO (FunPtr (NURBSColorDataCallback u))++type NURBSTexCoordDataCallback u = Ptr GLfloat -> Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSTexCoordDataCallback :: NURBSTexCoordDataCallback u -> IO (FunPtr (NURBSTexCoordDataCallback u))++type NURBSEndDataCallback u = Ptr u -> IO ()++foreign import CALLCONV "wrapper"+   makeNURBSEndDataCallback :: NURBSEndDataCallback u -> IO (FunPtr (NURBSEndDataCallback u))+
+ src/Graphics/Rendering/GLU/Raw/Functions.hs view
@@ -0,0 +1,145 @@+{-# LANGUAGE ForeignFunctionInterface, CPP #-}+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.Functions+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- All functions from GLU 1.3, see <http://www.opengl.org/>.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.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 Foreign.Ptr+import Graphics.Rendering.GLU.Raw.APIEntry+import Graphics.Rendering.GLU.Raw.Types+import Graphics.Rendering.OpenGL.Raw.Core31++#include "HsGLURaw.h"++--------------------------------------------------------------------------------++API_ENTRY_SAFE(gluBeginCurve,Ptr GLUnurbs -> IO ())+API_ENTRY_SAFE(gluBeginPolygon,Ptr GLUtesselator -> IO ())+API_ENTRY_SAFE(gluBeginSurface,Ptr GLUnurbs -> IO ())+API_ENTRY_SAFE(gluBeginTrim,Ptr GLUnurbs -> IO ())+API_ENTRY(gluBuild1DMipmapLevels,GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint)+API_ENTRY(gluBuild1DMipmaps,GLenum -> GLint -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint)+API_ENTRY(gluBuild2DMipmapLevels,GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint)+API_ENTRY(gluBuild2DMipmaps,GLenum -> GLint -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint)+API_ENTRY(gluBuild3DMipmapLevels,GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> GLint -> GLint -> GLint -> Ptr a -> IO GLint)+API_ENTRY(gluBuild3DMipmaps,GLenum -> GLint -> GLsizei -> GLsizei -> GLsizei -> GLenum -> GLenum -> Ptr a -> IO GLint)+API_ENTRY(gluCheckExtension,Ptr GLubyte -> Ptr GLubyte -> IO GLboolean)+API_ENTRY_SAFE(gluCylinder,Ptr GLUquadric -> GLdouble -> GLdouble -> GLdouble -> GLint -> GLint -> IO ())+API_ENTRY_SAFE(gluDeleteNurbsRenderer,Ptr GLUnurbs -> IO ())+API_ENTRY(gluDeleteQuadric,Ptr GLUquadric -> IO ())+API_ENTRY_SAFE(gluDeleteTess,Ptr GLUtesselator -> IO ())+API_ENTRY_SAFE(gluDisk,Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> IO ())+API_ENTRY_SAFE(gluEndCurve,Ptr GLUnurbs -> IO ())+API_ENTRY_SAFE(gluEndPolygon,Ptr GLUtesselator -> IO ())+API_ENTRY_SAFE(gluEndSurface,Ptr GLUnurbs -> IO ())+API_ENTRY_SAFE(gluEndTrim,Ptr GLUnurbs -> IO ())+API_ENTRY(gluErrorString,GLenum -> IO (Ptr GLubyte))+API_ENTRY_SAFE(gluGetNurbsProperty,Ptr GLUnurbs -> GLenum -> Ptr GLfloat -> IO ())+API_ENTRY(gluGetString,GLenum -> IO (Ptr GLubyte))+API_ENTRY_SAFE(gluGetTessProperty,Ptr GLUtesselator -> GLenum -> Ptr GLdouble -> IO ())+API_ENTRY_SAFE(gluLoadSamplingMatrices,Ptr GLUnurbs -> Ptr GLfloat -> Ptr GLfloat -> Ptr GLint -> IO ())+API_ENTRY(gluLookAt,GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())+API_ENTRY_SAFE(gluNewNurbsRenderer,IO (Ptr GLUnurbs))+API_ENTRY(gluNewQuadric,IO (Ptr GLUquadric))+API_ENTRY(gluNewTess,IO (Ptr GLUtesselator))+API_ENTRY_SAFE(gluNextContour,Ptr GLUtesselator -> GLenum -> IO ())+API_ENTRY_SAFE(gluNurbsCallback,Ptr GLUnurbs -> GLenum -> FunPtr a -> IO ())+API_ENTRY_SAFE(gluNurbsCallbackData,Ptr GLUnurbs -> Ptr a -> IO ())+API_ENTRY_SAFE(gluNurbsCallbackDataEXT,Ptr GLUnurbs -> Ptr a -> IO ())+API_ENTRY_SAFE(gluNurbsCurve,Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO ())+API_ENTRY_SAFE(gluNurbsProperty,Ptr GLUnurbs -> GLenum -> GLfloat -> IO ())+API_ENTRY_SAFE(gluNurbsSurface,Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr GLfloat -> GLint -> GLint -> GLenum -> IO ())+API_ENTRY(gluOrtho2D,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())+API_ENTRY_SAFE(gluPartialDisk,Ptr GLUquadric -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> IO ())+API_ENTRY(gluPerspective,GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())+API_ENTRY(gluPickMatrix,GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLint -> IO ())+API_ENTRY(gluProject,GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint)+API_ENTRY_SAFE(gluPwlCurve,Ptr GLUnurbs -> GLint -> Ptr GLfloat -> GLint -> GLenum -> IO ())+API_ENTRY_SAFE(gluQuadricCallback,Ptr GLUquadric -> GLenum -> FunPtr a -> IO ())+API_ENTRY_SAFE(gluQuadricDrawStyle,Ptr GLUquadric -> GLenum -> IO ())+API_ENTRY_SAFE(gluQuadricNormals,Ptr GLUquadric -> GLenum -> IO ())+API_ENTRY_SAFE(gluQuadricOrientation,Ptr GLUquadric -> GLenum -> IO ())+API_ENTRY_SAFE(gluQuadricTexture,Ptr GLUquadric -> GLboolean -> IO ())+API_ENTRY(gluScaleImage,GLenum -> GLsizei -> GLsizei -> GLenum -> Ptr a -> GLsizei -> GLsizei -> GLenum -> Ptr b -> IO GLint)+API_ENTRY_SAFE(gluSphere,Ptr GLUquadric -> GLdouble -> GLint -> GLint -> IO ())+API_ENTRY_SAFE(gluTessBeginContour,Ptr GLUtesselator -> IO ())+API_ENTRY_SAFE(gluTessBeginPolygon,Ptr GLUtesselator -> Ptr a -> IO ())+API_ENTRY_SAFE(gluTessCallback,Ptr GLUtesselator -> GLenum -> FunPtr a -> IO ())+API_ENTRY_SAFE(gluTessEndContour,Ptr GLUtesselator -> IO ())+API_ENTRY_SAFE(gluTessEndPolygon,Ptr GLUtesselator -> IO ())+API_ENTRY(gluTessNormal,Ptr GLUtesselator -> GLdouble -> GLdouble -> GLdouble -> IO ())+API_ENTRY_SAFE(gluTessProperty,Ptr GLUtesselator -> GLenum -> GLdouble -> IO ())+API_ENTRY_SAFE(gluTessVertex,Ptr GLUtesselator -> Ptr GLdouble -> Ptr a -> IO ())+API_ENTRY(gluUnProject,GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint)+API_ENTRY(gluUnProject4,GLdouble -> GLdouble -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLint -> GLdouble -> GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> Ptr GLdouble -> IO GLint)
+ src/Graphics/Rendering/GLU/Raw/Tokens.hs view
@@ -0,0 +1,487 @@+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.Tokens+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- All tokens from GLU 1.3, see <http://www.opengl.org/>.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.Tokens where++import Graphics.Rendering.OpenGL.Raw.Core31++--------------------------------------------------------------------------------++-- Boolean+glu_FALSE :: GLenum+glu_FALSE = 0++glu_TRUE :: GLenum+glu_TRUE = 1++-- StringName+glu_VERSION :: GLenum+glu_VERSION = 100800++glu_EXTENSIONS :: GLenum+glu_EXTENSIONS = 100801++-- ErrorCode+glu_INVALID_ENUM :: GLenum+glu_INVALID_ENUM = 100900++glu_INVALID_VALUE :: GLenum+glu_INVALID_VALUE = 100901++glu_OUT_OF_MEMORY :: GLenum+glu_OUT_OF_MEMORY = 100902++glu_INCOMPATIBLE_GL_VERSION :: GLenum+glu_INCOMPATIBLE_GL_VERSION = 100903++glu_INVALID_OPERATION :: GLenum+glu_INVALID_OPERATION = 100904++-- NurbsDisplay+--      GLU_FILL+glu_OUTLINE_POLYGON :: GLenum+glu_OUTLINE_POLYGON = 100240++glu_OUTLINE_PATCH :: GLenum+glu_OUTLINE_PATCH = 100241++-- NurbsCallback+glu_NURBS_ERROR :: GLenum+glu_NURBS_ERROR = 100103++glu_ERROR :: GLenum+glu_ERROR = 100103++glu_NURBS_BEGIN :: GLenum+glu_NURBS_BEGIN = 100164++glu_NURBS_BEGIN_EXT :: GLenum+glu_NURBS_BEGIN_EXT = 100164++glu_NURBS_VERTEX :: GLenum+glu_NURBS_VERTEX = 100165++glu_NURBS_VERTEX_EXT :: GLenum+glu_NURBS_VERTEX_EXT = 100165++glu_NURBS_NORMAL :: GLenum+glu_NURBS_NORMAL = 100166++glu_NURBS_NORMAL_EXT :: GLenum+glu_NURBS_NORMAL_EXT = 100166++glu_NURBS_COLOR :: GLenum+glu_NURBS_COLOR = 100167++glu_NURBS_COLOR_EXT :: GLenum+glu_NURBS_COLOR_EXT = 100167++glu_NURBS_TEXTURE_COORD :: GLenum+glu_NURBS_TEXTURE_COORD = 100168++glu_NURBS_TEX_COORD_EXT :: GLenum+glu_NURBS_TEX_COORD_EXT = 100168++glu_NURBS_END :: GLenum+glu_NURBS_END = 100169++glu_NURBS_END_EXT :: GLenum+glu_NURBS_END_EXT = 100169++glu_NURBS_BEGIN_DATA :: GLenum+glu_NURBS_BEGIN_DATA = 100170++glu_NURBS_BEGIN_DATA_EXT :: GLenum+glu_NURBS_BEGIN_DATA_EXT = 100170++glu_NURBS_VERTEX_DATA :: GLenum+glu_NURBS_VERTEX_DATA = 100171++glu_NURBS_VERTEX_DATA_EXT :: GLenum+glu_NURBS_VERTEX_DATA_EXT = 100171++glu_NURBS_NORMAL_DATA :: GLenum+glu_NURBS_NORMAL_DATA = 100172++glu_NURBS_NORMAL_DATA_EXT :: GLenum+glu_NURBS_NORMAL_DATA_EXT = 100172++glu_NURBS_COLOR_DATA :: GLenum+glu_NURBS_COLOR_DATA = 100173++glu_NURBS_COLOR_DATA_EXT :: GLenum+glu_NURBS_COLOR_DATA_EXT = 100173++glu_NURBS_TEXTURE_COORD_DATA :: GLenum+glu_NURBS_TEXTURE_COORD_DATA = 100174++glu_NURBS_TEX_COORD_DATA_EXT :: GLenum+glu_NURBS_TEX_COORD_DATA_EXT = 100174++glu_NURBS_END_DATA :: GLenum+glu_NURBS_END_DATA = 100175++glu_NURBS_END_DATA_EXT :: GLenum+glu_NURBS_END_DATA_EXT = 100175++-- NurbsError+glu_NURBS_ERROR1 :: GLenum+glu_NURBS_ERROR1 = 100251++glu_NURBS_ERROR2 :: GLenum+glu_NURBS_ERROR2 = 100252++glu_NURBS_ERROR3 :: GLenum+glu_NURBS_ERROR3 = 100253++glu_NURBS_ERROR4 :: GLenum+glu_NURBS_ERROR4 = 100254++glu_NURBS_ERROR5 :: GLenum+glu_NURBS_ERROR5 = 100255++glu_NURBS_ERROR6 :: GLenum+glu_NURBS_ERROR6 = 100256++glu_NURBS_ERROR7 :: GLenum+glu_NURBS_ERROR7 = 100257++glu_NURBS_ERROR8 :: GLenum+glu_NURBS_ERROR8 = 100258++glu_NURBS_ERROR9 :: GLenum+glu_NURBS_ERROR9 = 100259++glu_NURBS_ERROR10 :: GLenum+glu_NURBS_ERROR10 = 100260++glu_NURBS_ERROR11 :: GLenum+glu_NURBS_ERROR11 = 100261++glu_NURBS_ERROR12 :: GLenum+glu_NURBS_ERROR12 = 100262++glu_NURBS_ERROR13 :: GLenum+glu_NURBS_ERROR13 = 100263++glu_NURBS_ERROR14 :: GLenum+glu_NURBS_ERROR14 = 100264++glu_NURBS_ERROR15 :: GLenum+glu_NURBS_ERROR15 = 100265++glu_NURBS_ERROR16 :: GLenum+glu_NURBS_ERROR16 = 100266++glu_NURBS_ERROR17 :: GLenum+glu_NURBS_ERROR17 = 100267++glu_NURBS_ERROR18 :: GLenum+glu_NURBS_ERROR18 = 100268++glu_NURBS_ERROR19 :: GLenum+glu_NURBS_ERROR19 = 100269++glu_NURBS_ERROR20 :: GLenum+glu_NURBS_ERROR20 = 100270++glu_NURBS_ERROR21 :: GLenum+glu_NURBS_ERROR21 = 100271++glu_NURBS_ERROR22 :: GLenum+glu_NURBS_ERROR22 = 100272++glu_NURBS_ERROR23 :: GLenum+glu_NURBS_ERROR23 = 100273++glu_NURBS_ERROR24 :: GLenum+glu_NURBS_ERROR24 = 100274++glu_NURBS_ERROR25 :: GLenum+glu_NURBS_ERROR25 = 100275++glu_NURBS_ERROR26 :: GLenum+glu_NURBS_ERROR26 = 100276++glu_NURBS_ERROR27 :: GLenum+glu_NURBS_ERROR27 = 100277++glu_NURBS_ERROR28 :: GLenum+glu_NURBS_ERROR28 = 100278++glu_NURBS_ERROR29 :: GLenum+glu_NURBS_ERROR29 = 100279++glu_NURBS_ERROR30 :: GLenum+glu_NURBS_ERROR30 = 100280++glu_NURBS_ERROR31 :: GLenum+glu_NURBS_ERROR31 = 100281++glu_NURBS_ERROR32 :: GLenum+glu_NURBS_ERROR32 = 100282++glu_NURBS_ERROR33 :: GLenum+glu_NURBS_ERROR33 = 100283++glu_NURBS_ERROR34 :: GLenum+glu_NURBS_ERROR34 = 100284++glu_NURBS_ERROR35 :: GLenum+glu_NURBS_ERROR35 = 100285++glu_NURBS_ERROR36 :: GLenum+glu_NURBS_ERROR36 = 100286++glu_NURBS_ERROR37 :: GLenum+glu_NURBS_ERROR37 = 100287++-- NurbsProperty+glu_AUTO_LOAD_MATRIX :: GLenum+glu_AUTO_LOAD_MATRIX = 100200++glu_CULLING :: GLenum+glu_CULLING = 100201++glu_SAMPLING_TOLERANCE :: GLenum+glu_SAMPLING_TOLERANCE = 100203++glu_DISPLAY_MODE :: GLenum+glu_DISPLAY_MODE = 100204++glu_PARAMETRIC_TOLERANCE :: GLenum+glu_PARAMETRIC_TOLERANCE = 100202++glu_SAMPLING_METHOD :: GLenum+glu_SAMPLING_METHOD = 100205++glu_U_STEP :: GLenum+glu_U_STEP = 100206++glu_V_STEP :: GLenum+glu_V_STEP = 100207++glu_NURBS_MODE :: GLenum+glu_NURBS_MODE = 100160++glu_NURBS_MODE_EXT :: GLenum+glu_NURBS_MODE_EXT = 100160++glu_NURBS_TESSELLATOR :: GLenum+glu_NURBS_TESSELLATOR = 100161++glu_NURBS_TESSELLATOR_EXT :: GLenum+glu_NURBS_TESSELLATOR_EXT = 100161++glu_NURBS_RENDERER :: GLenum+glu_NURBS_RENDERER = 100162++glu_NURBS_RENDERER_EXT :: GLenum+glu_NURBS_RENDERER_EXT = 100162++-- NurbsSampling+glu_OBJECT_PARAMETRIC_ERROR :: GLenum+glu_OBJECT_PARAMETRIC_ERROR = 100208++glu_OBJECT_PARAMETRIC_ERROR_EXT :: GLenum+glu_OBJECT_PARAMETRIC_ERROR_EXT = 100208++glu_OBJECT_PATH_LENGTH :: GLenum+glu_OBJECT_PATH_LENGTH = 100209++glu_OBJECT_PATH_LENGTH_EXT :: GLenum+glu_OBJECT_PATH_LENGTH_EXT = 100209++glu_PATH_LENGTH :: GLenum+glu_PATH_LENGTH = 100215++glu_PARAMETRIC_ERROR :: GLenum+glu_PARAMETRIC_ERROR = 100216++glu_DOMAIN_DISTANCE :: GLenum+glu_DOMAIN_DISTANCE = 100217++-- NurbsTrim+glu_MAP1_TRIM_2 :: GLenum+glu_MAP1_TRIM_2 = 100210++glu_MAP1_TRIM_3 :: GLenum+glu_MAP1_TRIM_3 = 100211++-- QuadricDrawStyle+glu_POINT :: GLenum+glu_POINT = 100010++glu_LINE :: GLenum+glu_LINE = 100011++glu_FILL :: GLenum+glu_FILL = 100012++glu_SILHOUETTE :: GLenum+glu_SILHOUETTE = 100013++-- QuadricCallback+--      GLU_ERROR++-- QuadricNormal+glu_SMOOTH :: GLenum+glu_SMOOTH = 100000++glu_FLAT :: GLenum+glu_FLAT = 100001++glu_NONE :: GLenum+glu_NONE = 100002++-- QuadricOrientation+glu_OUTSIDE :: GLenum+glu_OUTSIDE = 100020++glu_INSIDE :: GLenum+glu_INSIDE = 100021++-- TessCallback+glu_TESS_BEGIN :: GLenum+glu_TESS_BEGIN = 100100++glu_BEGIN :: GLenum+glu_BEGIN = 100100++glu_TESS_VERTEX :: GLenum+glu_TESS_VERTEX = 100101++glu_VERTEX :: GLenum+glu_VERTEX = 100101++glu_TESS_END :: GLenum+glu_TESS_END = 100102++glu_END :: GLenum+glu_END = 100102++glu_TESS_ERROR :: GLenum+glu_TESS_ERROR = 100103++glu_TESS_EDGE_FLAG :: GLenum+glu_TESS_EDGE_FLAG = 100104++glu_EDGE_FLAG :: GLenum+glu_EDGE_FLAG = 100104++glu_TESS_COMBINE :: GLenum+glu_TESS_COMBINE = 100105++glu_TESS_BEGIN_DATA :: GLenum+glu_TESS_BEGIN_DATA = 100106++glu_TESS_VERTEX_DATA :: GLenum+glu_TESS_VERTEX_DATA = 100107++glu_TESS_END_DATA :: GLenum+glu_TESS_END_DATA = 100108++glu_TESS_ERROR_DATA :: GLenum+glu_TESS_ERROR_DATA = 100109++glu_TESS_EDGE_FLAG_DATA :: GLenum+glu_TESS_EDGE_FLAG_DATA = 100110++glu_TESS_COMBINE_DATA :: GLenum+glu_TESS_COMBINE_DATA = 100111++-- TessContour+glu_CW :: GLenum+glu_CW = 100120++glu_CCW :: GLenum+glu_CCW = 100121++glu_INTERIOR :: GLenum+glu_INTERIOR = 100122++glu_EXTERIOR :: GLenum+glu_EXTERIOR = 100123++glu_UNKNOWN :: GLenum+glu_UNKNOWN = 100124++-- TessProperty+glu_TESS_WINDING_RULE :: GLenum+glu_TESS_WINDING_RULE = 100140++glu_TESS_BOUNDARY_ONLY :: GLenum+glu_TESS_BOUNDARY_ONLY = 100141++glu_TESS_TOLERANCE :: GLenum+glu_TESS_TOLERANCE = 100142++-- TessError+glu_TESS_ERROR1 :: GLenum+glu_TESS_ERROR1 = 100151++glu_TESS_ERROR2 :: GLenum+glu_TESS_ERROR2 = 100152++glu_TESS_ERROR3 :: GLenum+glu_TESS_ERROR3 = 100153++glu_TESS_ERROR4 :: GLenum+glu_TESS_ERROR4 = 100154++glu_TESS_ERROR5 :: GLenum+glu_TESS_ERROR5 = 100155++glu_TESS_ERROR6 :: GLenum+glu_TESS_ERROR6 = 100156++glu_TESS_ERROR7 :: GLenum+glu_TESS_ERROR7 = 100157++glu_TESS_ERROR8 :: GLenum+glu_TESS_ERROR8 = 100158++glu_TESS_MISSING_BEGIN_POLYGON :: GLenum+glu_TESS_MISSING_BEGIN_POLYGON = 100151++glu_TESS_MISSING_BEGIN_CONTOUR :: GLenum+glu_TESS_MISSING_BEGIN_CONTOUR = 100152++glu_TESS_MISSING_END_POLYGON :: GLenum+glu_TESS_MISSING_END_POLYGON = 100153++glu_TESS_MISSING_END_CONTOUR :: GLenum+glu_TESS_MISSING_END_CONTOUR = 100154++glu_TESS_COORD_TOO_LARGE :: GLenum+glu_TESS_COORD_TOO_LARGE = 100155++glu_TESS_NEED_COMBINE_CALLBACK :: GLenum+glu_TESS_NEED_COMBINE_CALLBACK = 100156++-- TessWinding+glu_TESS_WINDING_ODD :: GLenum+glu_TESS_WINDING_ODD = 100130++glu_TESS_WINDING_NONZERO :: GLenum+glu_TESS_WINDING_NONZERO = 100131++glu_TESS_WINDING_POSITIVE :: GLenum+glu_TESS_WINDING_POSITIVE = 100132++glu_TESS_WINDING_NEGATIVE :: GLenum+glu_TESS_WINDING_NEGATIVE = 100133++glu_TESS_WINDING_ABS_GEQ_TWO :: GLenum+glu_TESS_WINDING_ABS_GEQ_TWO = 100134
+ src/Graphics/Rendering/GLU/Raw/Types.hs view
@@ -0,0 +1,21 @@+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.Types+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- All (abstract) types from GLU 1.3, see <http://www.opengl.org/>.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.Types (+   GLUnurbs,+   GLUquadric,+   GLUtesselator+) where++import Graphics.Rendering.GLU.Raw.TypesInternal
+ src/Graphics/Rendering/GLU/Raw/TypesInternal.hs view
@@ -0,0 +1,22 @@+-- #hide+--------------------------------------------------------------------------------+-- |+-- Module      :  Graphics.Rendering.GLU.Raw.TypesInternal+-- Copyright   :  (c) Sven Panne 2009+-- License     :  BSD-style (see the file LICENSE)+--+-- Maintainer  :  sven.panne@aedion.de+-- Stability   :  stable+-- Portability :  portable+--+-- All types from GLU 1.3, see <http://www.opengl.org/>.+--+--------------------------------------------------------------------------------++module Graphics.Rendering.GLU.Raw.TypesInternal where++data GLUnurbs = GLUnurbs++data GLUquadric = GLUquadric++data GLUtesselator = GLUtesselator