module Graphics.Rendering.OpenGL.Raw.Types (
  
  GLboolean,
  GLbyte,
  GLubyte,
  GLchar,
  GLshort,
  GLushort,
  GLint,
  GLuint,
  GLfixed,
  GLint64,
  GLuint64,
  GLsizei,
  GLenum,
  GLintptr,
  GLsizeiptr,
  GLsync,
  GLbitfield,
  GLhalf,
  GLfloat,
  GLclampf,
  GLdouble,
  GLclampd,
  GLDEBUGPROC, GLDEBUGPROCFunc, makeGLDEBUGPROC,
  GLvoid,
  
  GLcharARB,
  GLint64EXT,
  GLuint64EXT,
  GLintptrARB,
  GLsizeiptrARB,
  GLhalfARB,
  GLhalfNV,
  GLDEBUGPROCAMD, GLDEBUGPROCAMDFunc, makeGLDEBUGPROCAMD,
  GLDEBUGPROCARB, GLDEBUGPROCARBFunc, makeGLDEBUGPROCARB,
  GLDEBUGPROCKHR, GLDEBUGPROCKHRFunc, makeGLDEBUGPROCKHR,
  
  GLclampx,
  GLhandleARB,
  GLvdpauSurfaceNV,
  GLeglImageOES
) where
import Data.Int
import Data.Word
import Foreign.C.Types
import Foreign.Ptr
type GLboolean = CUChar
type GLbyte = CSChar
type GLubyte = CUChar
type GLchar = CChar
type GLshort = CShort
type GLushort = CUShort
type GLint = CInt
type GLuint = CUInt
type GLfixed = CInt
type GLint64 = Int64
type GLuint64 = Word64
type GLsizei = CInt
type GLenum = CUInt
type GLintptr = CPtrdiff
type GLsizeiptr = CPtrdiff
type GLsync = Ptr ()
type GLbitfield = CUInt
type GLhalf = CUShort
type GLfloat = CFloat
type GLclampf = CFloat
type GLdouble = CDouble
type GLclampd = CDouble
type GLDEBUGPROC = FunPtr GLDEBUGPROCFunc
type GLDEBUGPROCFunc
  =  GLenum 
  -> GLenum 
  -> GLuint 
  -> GLenum 
  -> GLsizei 
  -> Ptr GLchar 
  -> Ptr () 
  -> IO ()
foreign import CALLCONV "wrapper"
   makeGLDEBUGPROC :: GLDEBUGPROCFunc -> IO (FunPtr GLDEBUGPROCFunc)
type GLvoid = ()
type GLcharARB = CChar
type GLint64EXT = Int64
type GLuint64EXT = Word64
type GLintptrARB = CPtrdiff
type GLsizeiptrARB = CPtrdiff
type GLhalfARB = CUShort
type GLhalfNV = CUShort
type GLDEBUGPROCAMD = FunPtr GLDEBUGPROCAMDFunc
type GLDEBUGPROCAMDFunc
  =  GLuint 
  -> GLenum 
  -> GLenum 
  -> GLsizei 
  -> Ptr GLchar 
  -> Ptr () 
  -> IO ()
foreign import CALLCONV "wrapper"
  makeGLDEBUGPROCAMD :: GLDEBUGPROCAMDFunc -> IO (FunPtr GLDEBUGPROCAMDFunc)
type GLDEBUGPROCARB = GLDEBUGPROC
type GLDEBUGPROCARBFunc = GLDEBUGPROCFunc
makeGLDEBUGPROCARB :: GLDEBUGPROCARBFunc -> IO (FunPtr GLDEBUGPROCARBFunc)
makeGLDEBUGPROCARB = makeGLDEBUGPROC
type GLDEBUGPROCKHR = GLDEBUGPROC
type GLDEBUGPROCKHRFunc = GLDEBUGPROCFunc
makeGLDEBUGPROCKHR :: GLDEBUGPROCKHRFunc -> IO (FunPtr GLDEBUGPROCKHRFunc)
makeGLDEBUGPROCKHR = makeGLDEBUGPROC
type GLclampx = CInt
#if HANDLE_IS_POINTER
type GLhandleARB = Ptr ()
#else
type GLhandleARB = CUInt
#endif
type GLvdpauSurfaceNV = GLintptr
type GLeglImageOES = Ptr ()