-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Compatibility45 (
  -- * Graphics.GL.Compatibility45
    module Graphics.GL.Compatibility44
  , module Graphics.GL.Core45
  , glGetnColorTable
  , glGetnConvolutionFilter
  , glGetnHistogram
  , glGetnMapdv
  , glGetnMapfv
  , glGetnMapiv
  , glGetnMinmax
  , glGetnPixelMapfv
  , glGetnPixelMapuiv
  , glGetnPixelMapusv
  , glGetnPolygonStipple
  , glGetnSeparableFilter
) where

import Control.Monad.IO.Class
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Types
import System.IO.Unsafe

import Graphics.GL.Compatibility44
import Graphics.GL.Core45

-- | Usage: @'glGetnColorTable' target format type bufSize table@


glGetnColorTable :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnColorTable :: GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnColorTable = FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumenumsizeiPtrVIOV FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnColorTableFunPtr

glGetnColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnColorTableFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnColorTableFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnColorTable")

{-# NOINLINE glGetnColorTableFunPtr #-}

-- | Usage: @'glGetnConvolutionFilter' target format type bufSize image@


glGetnConvolutionFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnConvolutionFilter :: GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnConvolutionFilter = FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
ffienumenumenumsizeiPtrVIOV FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnConvolutionFilterFunPtr

glGetnConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnConvolutionFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnConvolutionFilterFunPtr = IO
  (FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr
     (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnConvolutionFilter")

{-# NOINLINE glGetnConvolutionFilterFunPtr #-}

-- | Usage: @'glGetnHistogram' target reset format type bufSize values@


glGetnHistogram :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnHistogram :: GLenum
-> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnHistogram = FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum
-> GLboolean
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum
-> GLboolean
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> m ()
ffienumbooleanenumenumsizeiPtrVIOV FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnHistogramFunPtr

glGetnHistogramFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnHistogramFunPtr :: FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnHistogramFunPtr = IO
  (FunPtr
     (GLenum
      -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr
     (GLenum
      -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnHistogram")

{-# NOINLINE glGetnHistogramFunPtr #-}

-- | Usage: @'glGetnMapdv' target query bufSize v@


glGetnMapdv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapdv :: GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
glGetnMapdv = FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> m ()
ffienumenumsizeiPtrdoubleIOV FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
glGetnMapdvFunPtr

glGetnMapdvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
glGetnMapdvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
glGetnMapdvFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLdouble -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnMapdv")

{-# NOINLINE glGetnMapdvFunPtr #-}

-- | Usage: @'glGetnMapfv' target query bufSize v@


glGetnMapfv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapfv :: GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnMapfv = FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> m ()
ffienumenumsizeiPtrfloatIOV FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnMapfvFunPtr

glGetnMapfvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnMapfvFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnMapfvFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnMapfv")

{-# NOINLINE glGetnMapfvFunPtr #-}

-- | Usage: @'glGetnMapiv' target query bufSize v@


glGetnMapiv :: MonadIO m => GLenum -> GLenum -> GLsizei -> Ptr GLint -> m ()
glGetnMapiv :: GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> m ()
glGetnMapiv = FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ())
-> GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> m ()
ffienumenumsizeiPtrintIOV FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ())
glGetnMapivFunPtr

glGetnMapivFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLint -> IO ())
glGetnMapivFunPtr :: FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ())
glGetnMapivFunPtr = IO (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ()))
-> FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLenum -> GLenum -> GLsizei -> Ptr GLsizei -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnMapiv")

{-# NOINLINE glGetnMapivFunPtr #-}

-- | Usage: @'glGetnMinmax' target reset format type bufSize values@


glGetnMinmax :: MonadIO m => GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnMinmax :: GLenum
-> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> m ()
glGetnMinmax = FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum
-> GLboolean
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
-> GLenum
-> GLboolean
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> m ()
ffienumbooleanenumenumsizeiPtrVIOV FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnMinmaxFunPtr

glGetnMinmaxFunPtr :: FunPtr (GLenum -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnMinmaxFunPtr :: FunPtr
  (GLenum
   -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
glGetnMinmaxFunPtr = IO
  (FunPtr
     (GLenum
      -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
-> FunPtr
     (GLenum
      -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLboolean -> GLenum -> GLenum -> GLsizei -> Ptr () -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnMinmax")

{-# NOINLINE glGetnMinmaxFunPtr #-}

-- | Usage: @'glGetnPixelMapfv' map bufSize values@


glGetnPixelMapfv :: MonadIO m => GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapfv :: GLenum -> GLsizei -> Ptr GLfloat -> m ()
glGetnPixelMapfv = FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-> GLenum -> GLsizei -> Ptr GLfloat -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
-> GLenum -> GLsizei -> Ptr GLfloat -> m ()
ffienumsizeiPtrfloatIOV FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnPixelMapfvFunPtr

glGetnPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnPixelMapfvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
glGetnPixelMapfvFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLfloat -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnPixelMapfv")

{-# NOINLINE glGetnPixelMapfvFunPtr #-}

-- | Usage: @'glGetnPixelMapuiv' map bufSize values@


glGetnPixelMapuiv :: MonadIO m => GLenum -> GLsizei -> Ptr GLuint -> m ()
glGetnPixelMapuiv :: GLenum -> GLsizei -> Ptr GLenum -> m ()
glGetnPixelMapuiv = FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-> GLenum -> GLsizei -> Ptr GLenum -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
-> GLenum -> GLsizei -> Ptr GLenum -> m ()
ffienumsizeiPtruintIOV FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
glGetnPixelMapuivFunPtr

glGetnPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLuint -> IO ())
glGetnPixelMapuivFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
glGetnPixelMapuivFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLenum -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnPixelMapuiv")

{-# NOINLINE glGetnPixelMapuivFunPtr #-}

-- | Usage: @'glGetnPixelMapusv' map bufSize values@


glGetnPixelMapusv :: MonadIO m => GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPixelMapusv :: GLenum -> GLsizei -> Ptr GLushort -> m ()
glGetnPixelMapusv = FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-> GLenum -> GLsizei -> Ptr GLushort -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
-> GLenum -> GLsizei -> Ptr GLushort -> m ()
ffienumsizeiPtrushortIOV FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
glGetnPixelMapusvFunPtr

glGetnPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
glGetnPixelMapusvFunPtr :: FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
glGetnPixelMapusvFunPtr = IO (FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()))
-> FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLenum -> GLsizei -> Ptr GLushort -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnPixelMapusv")

{-# NOINLINE glGetnPixelMapusvFunPtr #-}

-- | Usage: @'glGetnPolygonStipple' bufSize pattern@


glGetnPolygonStipple :: MonadIO m => GLsizei -> Ptr GLubyte -> m ()
glGetnPolygonStipple :: GLsizei -> Ptr GLboolean -> m ()
glGetnPolygonStipple = FunPtr (GLsizei -> Ptr GLboolean -> IO ())
-> GLsizei -> Ptr GLboolean -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLboolean -> IO ())
-> GLsizei -> Ptr GLboolean -> m ()
ffisizeiPtrubyteIOV FunPtr (GLsizei -> Ptr GLboolean -> IO ())
glGetnPolygonStippleFunPtr

glGetnPolygonStippleFunPtr :: FunPtr (GLsizei -> Ptr GLubyte -> IO ())
glGetnPolygonStippleFunPtr :: FunPtr (GLsizei -> Ptr GLboolean -> IO ())
glGetnPolygonStippleFunPtr = IO (FunPtr (GLsizei -> Ptr GLboolean -> IO ()))
-> FunPtr (GLsizei -> Ptr GLboolean -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLsizei -> Ptr GLboolean -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnPolygonStipple")

{-# NOINLINE glGetnPolygonStippleFunPtr #-}

-- | Usage: @'glGetnSeparableFilter' target format type rowBufSize row columnBufSize column span@


glGetnSeparableFilter :: MonadIO m => GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> m ()
glGetnSeparableFilter :: GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> GLsizei
-> Ptr ()
-> Ptr ()
-> m ()
glGetnSeparableFilter = FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLsizei
   -> Ptr ()
   -> GLsizei
   -> Ptr ()
   -> Ptr ()
   -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> GLsizei
-> Ptr ()
-> Ptr ()
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLsizei
   -> Ptr ()
   -> GLsizei
   -> Ptr ()
   -> Ptr ()
   -> IO ())
-> GLenum
-> GLenum
-> GLenum
-> GLsizei
-> Ptr ()
-> GLsizei
-> Ptr ()
-> Ptr ()
-> m ()
ffienumenumenumsizeiPtrVsizeiPtrVPtrVIOV FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLsizei
   -> Ptr ()
   -> GLsizei
   -> Ptr ()
   -> Ptr ()
   -> IO ())
glGetnSeparableFilterFunPtr

glGetnSeparableFilterFunPtr :: FunPtr (GLenum -> GLenum -> GLenum -> GLsizei -> Ptr () -> GLsizei -> Ptr () -> Ptr () -> IO ())
glGetnSeparableFilterFunPtr :: FunPtr
  (GLenum
   -> GLenum
   -> GLenum
   -> GLsizei
   -> Ptr ()
   -> GLsizei
   -> Ptr ()
   -> Ptr ()
   -> IO ())
glGetnSeparableFilterFunPtr = IO
  (FunPtr
     (GLenum
      -> GLenum
      -> GLenum
      -> GLsizei
      -> Ptr ()
      -> GLsizei
      -> Ptr ()
      -> Ptr ()
      -> IO ()))
-> FunPtr
     (GLenum
      -> GLenum
      -> GLenum
      -> GLsizei
      -> Ptr ()
      -> GLsizei
      -> Ptr ()
      -> Ptr ()
      -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr
        (GLenum
         -> GLenum
         -> GLenum
         -> GLsizei
         -> Ptr ()
         -> GLsizei
         -> Ptr ()
         -> Ptr ()
         -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress "glGetnSeparableFilter")

{-# NOINLINE glGetnSeparableFilterFunPtr #-}