-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.NV.Evaluators (
  -- * Extension Support
    gl_NV_evaluators

  -- * GL_NV_evaluators
  , glEvalMapsNV
  , glGetMapAttribParameterfvNV
  , glGetMapAttribParameterivNV
  , glGetMapControlPointsNV
  , glGetMapParameterfvNV
  , glGetMapParameterivNV
  , glMapControlPointsNV
  , glMapParameterfvNV
  , glMapParameterivNV
  , pattern GL_EVAL_2D_NV
  , pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV
  , pattern GL_EVAL_TRIANGULAR_2D_NV
  , pattern GL_EVAL_VERTEX_ATTRIB0_NV
  , pattern GL_EVAL_VERTEX_ATTRIB10_NV
  , pattern GL_EVAL_VERTEX_ATTRIB11_NV
  , pattern GL_EVAL_VERTEX_ATTRIB12_NV
  , pattern GL_EVAL_VERTEX_ATTRIB13_NV
  , pattern GL_EVAL_VERTEX_ATTRIB14_NV
  , pattern GL_EVAL_VERTEX_ATTRIB15_NV
  , pattern GL_EVAL_VERTEX_ATTRIB1_NV
  , pattern GL_EVAL_VERTEX_ATTRIB2_NV
  , pattern GL_EVAL_VERTEX_ATTRIB3_NV
  , pattern GL_EVAL_VERTEX_ATTRIB4_NV
  , pattern GL_EVAL_VERTEX_ATTRIB5_NV
  , pattern GL_EVAL_VERTEX_ATTRIB6_NV
  , pattern GL_EVAL_VERTEX_ATTRIB7_NV
  , pattern GL_EVAL_VERTEX_ATTRIB8_NV
  , pattern GL_EVAL_VERTEX_ATTRIB9_NV
  , pattern GL_MAP_ATTRIB_U_ORDER_NV
  , pattern GL_MAP_ATTRIB_V_ORDER_NV
  , pattern GL_MAP_TESSELLATION_NV
  , pattern GL_MAX_MAP_TESSELLATION_NV
  , pattern GL_MAX_RATIONAL_EVAL_ORDER_NV
) where

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

gl_NV_evaluators :: Bool
gl_NV_evaluators = member "GL_NV_evaluators" extensions

glEvalMapsNV :: MonadIO m => GLenum -> GLenum -> m ()
glEvalMapsNV = ffienumenumIOV glEvalMapsNVFunPtr

glEvalMapsNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
glEvalMapsNVFunPtr = unsafePerformIO (getProcAddress "glEvalMapsNV")

{-# NOINLINE glEvalMapsNVFunPtr #-}

glGetMapAttribParameterfvNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLfloat -> m ()
glGetMapAttribParameterfvNV = ffienumuintenumPtrfloatIOV glGetMapAttribParameterfvNVFunPtr

glGetMapAttribParameterfvNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLfloat -> IO ())
glGetMapAttribParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetMapAttribParameterfvNV")

{-# NOINLINE glGetMapAttribParameterfvNVFunPtr #-}

glGetMapAttribParameterivNV :: MonadIO m => GLenum -> GLuint -> GLenum -> Ptr GLint -> m ()
glGetMapAttribParameterivNV = ffienumuintenumPtrintIOV glGetMapAttribParameterivNVFunPtr

glGetMapAttribParameterivNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> Ptr GLint -> IO ())
glGetMapAttribParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetMapAttribParameterivNV")

{-# NOINLINE glGetMapAttribParameterivNVFunPtr #-}

glGetMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> m ()
glGetMapControlPointsNV = ffienumuintenumsizeisizeibooleanPtrVIOV glGetMapControlPointsNVFunPtr

glGetMapControlPointsNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLboolean -> Ptr () -> IO ())
glGetMapControlPointsNVFunPtr = unsafePerformIO (getProcAddress "glGetMapControlPointsNV")

{-# NOINLINE glGetMapControlPointsNVFunPtr #-}

glGetMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glGetMapParameterfvNV = ffienumenumPtrfloatIOV glGetMapParameterfvNVFunPtr

glGetMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glGetMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterfvNV")

{-# NOINLINE glGetMapParameterfvNVFunPtr #-}

glGetMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glGetMapParameterivNV = ffienumenumPtrintIOV glGetMapParameterivNVFunPtr

glGetMapParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glGetMapParameterivNVFunPtr = unsafePerformIO (getProcAddress "glGetMapParameterivNV")

{-# NOINLINE glGetMapParameterivNVFunPtr #-}

glMapControlPointsNV :: MonadIO m => GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> m ()
glMapControlPointsNV = ffienumuintenumsizeisizeiintintbooleanPtrVIOV glMapControlPointsNVFunPtr

glMapControlPointsNVFunPtr :: FunPtr (GLenum -> GLuint -> GLenum -> GLsizei -> GLsizei -> GLint -> GLint -> GLboolean -> Ptr () -> IO ())
glMapControlPointsNVFunPtr = unsafePerformIO (getProcAddress "glMapControlPointsNV")

{-# NOINLINE glMapControlPointsNVFunPtr #-}

glMapParameterfvNV :: MonadIO m => GLenum -> GLenum -> Ptr GLfloat -> m ()
glMapParameterfvNV = ffienumenumPtrfloatIOV glMapParameterfvNVFunPtr

glMapParameterfvNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLfloat -> IO ())
glMapParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glMapParameterfvNV")

{-# NOINLINE glMapParameterfvNVFunPtr #-}

glMapParameterivNV :: MonadIO m => GLenum -> GLenum -> Ptr GLint -> m ()
glMapParameterivNV = ffienumenumPtrintIOV glMapParameterivNVFunPtr

glMapParameterivNVFunPtr :: FunPtr (GLenum -> GLenum -> Ptr GLint -> IO ())
glMapParameterivNVFunPtr = unsafePerformIO (getProcAddress "glMapParameterivNV")

{-# NOINLINE glMapParameterivNVFunPtr #-}

pattern GL_EVAL_2D_NV = 0x86C0 :: GLenum

pattern GL_EVAL_FRACTIONAL_TESSELLATION_NV = 0x86C5 :: GLenum

pattern GL_EVAL_TRIANGULAR_2D_NV = 0x86C1 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB0_NV = 0x86C6 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB10_NV = 0x86D0 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB11_NV = 0x86D1 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB12_NV = 0x86D2 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB13_NV = 0x86D3 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB14_NV = 0x86D4 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB15_NV = 0x86D5 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB1_NV = 0x86C7 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB2_NV = 0x86C8 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB3_NV = 0x86C9 :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB4_NV = 0x86CA :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB5_NV = 0x86CB :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB6_NV = 0x86CC :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB7_NV = 0x86CD :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB8_NV = 0x86CE :: GLenum

pattern GL_EVAL_VERTEX_ATTRIB9_NV = 0x86CF :: GLenum

pattern GL_MAP_ATTRIB_U_ORDER_NV = 0x86C3 :: GLenum

pattern GL_MAP_ATTRIB_V_ORDER_NV = 0x86C4 :: GLenum

pattern GL_MAP_TESSELLATION_NV = 0x86C2 :: GLenum

pattern GL_MAX_MAP_TESSELLATION_NV = 0x86D6 :: GLenum

pattern GL_MAX_RATIONAL_EVAL_ORDER_NV = 0x86D7 :: GLenum