-- This file was automatically generated.
{-# LANGUAGE ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Raw.Extension.SGIX.PolynomialFfd (
  -- * Extension Support
    gl_SGIX_polynomial_ffd

  -- * GL_SGIX_polynomial_ffd
  , glDeformSGIX
  , glDeformationMap3dSGIX
  , glDeformationMap3fSGIX
  , glLoadIdentityDeformationMapSGIX
  , pattern GL_DEFORMATIONS_MASK_SGIX
  , pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX
  , pattern GL_GEOMETRY_DEFORMATION_SGIX
  , pattern GL_MAX_DEFORMATION_ORDER_SGIX
  , pattern GL_TEXTURE_DEFORMATION_BIT_SGIX
  , pattern GL_TEXTURE_DEFORMATION_SGIX
) 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_SGIX_polynomial_ffd :: Bool
gl_SGIX_polynomial_ffd = member "GL_SGIX_polynomial_ffd" extensions

glDeformSGIX :: MonadIO m => GLbitfield -> m ()
glDeformSGIX = ffibitfieldIOV glDeformSGIXFunPtr

glDeformSGIXFunPtr :: FunPtr (GLbitfield -> IO ())
glDeformSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformSGIX")

{-# NOINLINE glDeformSGIXFunPtr #-}

glDeformationMap3dSGIX :: MonadIO m => GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> m ()
glDeformationMap3dSGIX = ffienumdoubledoubleintintdoubledoubleintintdoubledoubleintintPtrdoubleIOV glDeformationMap3dSGIXFunPtr

glDeformationMap3dSGIXFunPtr :: FunPtr (GLenum -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> GLdouble -> GLdouble -> GLint -> GLint -> Ptr GLdouble -> IO ())
glDeformationMap3dSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformationMap3dSGIX")

{-# NOINLINE glDeformationMap3dSGIXFunPtr #-}

glDeformationMap3fSGIX :: MonadIO m => GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> m ()
glDeformationMap3fSGIX = ffienumfloatfloatintintfloatfloatintintfloatfloatintintPtrfloatIOV glDeformationMap3fSGIXFunPtr

glDeformationMap3fSGIXFunPtr :: FunPtr (GLenum -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> GLfloat -> GLfloat -> GLint -> GLint -> Ptr GLfloat -> IO ())
glDeformationMap3fSGIXFunPtr = unsafePerformIO (getProcAddress "glDeformationMap3fSGIX")

{-# NOINLINE glDeformationMap3fSGIXFunPtr #-}

glLoadIdentityDeformationMapSGIX :: MonadIO m => GLbitfield -> m ()
glLoadIdentityDeformationMapSGIX = ffibitfieldIOV glLoadIdentityDeformationMapSGIXFunPtr

glLoadIdentityDeformationMapSGIXFunPtr :: FunPtr (GLbitfield -> IO ())
glLoadIdentityDeformationMapSGIXFunPtr = unsafePerformIO (getProcAddress "glLoadIdentityDeformationMapSGIX")

{-# NOINLINE glLoadIdentityDeformationMapSGIXFunPtr #-}

pattern GL_DEFORMATIONS_MASK_SGIX = 0x8196

pattern GL_GEOMETRY_DEFORMATION_BIT_SGIX = 0x00000002

pattern GL_GEOMETRY_DEFORMATION_SGIX = 0x8194

pattern GL_MAX_DEFORMATION_ORDER_SGIX = 0x8197

pattern GL_TEXTURE_DEFORMATION_BIT_SGIX = 0x00000001

pattern GL_TEXTURE_DEFORMATION_SGIX = 0x8195