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

  -- * GL_NV_fragment_program
  , glGetProgramNamedParameterdvNV
  , glGetProgramNamedParameterfvNV
  , glProgramNamedParameter4dNV
  , glProgramNamedParameter4dvNV
  , glProgramNamedParameter4fNV
  , glProgramNamedParameter4fvNV
  , pattern GL_FRAGMENT_PROGRAM_BINDING_NV
  , pattern GL_FRAGMENT_PROGRAM_NV
  , pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV
  , pattern GL_MAX_TEXTURE_COORDS_NV
  , pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV
  , pattern GL_PROGRAM_ERROR_STRING_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_fragment_program :: Bool
gl_NV_fragment_program = member "GL_NV_fragment_program" extensions

glGetProgramNamedParameterdvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
glGetProgramNamedParameterdvNV = ffiuintsizeiPtrubytePtrdoubleIOV glGetProgramNamedParameterdvNVFunPtr

glGetProgramNamedParameterdvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
glGetProgramNamedParameterdvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramNamedParameterdvNV")

{-# NOINLINE glGetProgramNamedParameterdvNVFunPtr #-}

glGetProgramNamedParameterfvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
glGetProgramNamedParameterfvNV = ffiuintsizeiPtrubytePtrfloatIOV glGetProgramNamedParameterfvNVFunPtr

glGetProgramNamedParameterfvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
glGetProgramNamedParameterfvNVFunPtr = unsafePerformIO (getProcAddress "glGetProgramNamedParameterfvNV")

{-# NOINLINE glGetProgramNamedParameterfvNVFunPtr #-}

glProgramNamedParameter4dNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> m ()
glProgramNamedParameter4dNV = ffiuintsizeiPtrubytedoubledoubledoubledoubleIOV glProgramNamedParameter4dNVFunPtr

glProgramNamedParameter4dNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO ())
glProgramNamedParameter4dNVFunPtr = unsafePerformIO (getProcAddress "glProgramNamedParameter4dNV")

{-# NOINLINE glProgramNamedParameter4dNVFunPtr #-}

glProgramNamedParameter4dvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> m ()
glProgramNamedParameter4dvNV = ffiuintsizeiPtrubytePtrdoubleIOV glProgramNamedParameter4dvNVFunPtr

glProgramNamedParameter4dvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLdouble -> IO ())
glProgramNamedParameter4dvNVFunPtr = unsafePerformIO (getProcAddress "glProgramNamedParameter4dvNV")

{-# NOINLINE glProgramNamedParameter4dvNVFunPtr #-}

glProgramNamedParameter4fNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> m ()
glProgramNamedParameter4fNV = ffiuintsizeiPtrubytefloatfloatfloatfloatIOV glProgramNamedParameter4fNVFunPtr

glProgramNamedParameter4fNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> GLfloat -> GLfloat -> GLfloat -> GLfloat -> IO ())
glProgramNamedParameter4fNVFunPtr = unsafePerformIO (getProcAddress "glProgramNamedParameter4fNV")

{-# NOINLINE glProgramNamedParameter4fNVFunPtr #-}

glProgramNamedParameter4fvNV :: MonadIO m => GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> m ()
glProgramNamedParameter4fvNV = ffiuintsizeiPtrubytePtrfloatIOV glProgramNamedParameter4fvNVFunPtr

glProgramNamedParameter4fvNVFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLubyte -> Ptr GLfloat -> IO ())
glProgramNamedParameter4fvNVFunPtr = unsafePerformIO (getProcAddress "glProgramNamedParameter4fvNV")

{-# NOINLINE glProgramNamedParameter4fvNVFunPtr #-}

pattern GL_FRAGMENT_PROGRAM_BINDING_NV = 0x8873 :: GLenum

pattern GL_FRAGMENT_PROGRAM_NV = 0x8870 :: GLenum

pattern GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV = 0x8868 :: GLenum

pattern GL_MAX_TEXTURE_COORDS_NV = 0x8871 :: GLenum

pattern GL_MAX_TEXTURE_IMAGE_UNITS_NV = 0x8872 :: GLenum

pattern GL_PROGRAM_ERROR_STRING_NV = 0x8874 :: GLenum