-- This file was automatically generated.
{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.EXT.GpuShader4 (
  -- * Extension Support
    gl_EXT_gpu_shader4

  -- * GL_EXT_gpu_shader4
  , glBindFragDataLocationEXT
  , glGetFragDataLocationEXT
  , glGetUniformuivEXT
  , glUniform1uiEXT
  , glUniform1uivEXT
  , glUniform2uiEXT
  , glUniform2uivEXT
  , glUniform3uiEXT
  , glUniform3uivEXT
  , glUniform4uiEXT
  , glUniform4uivEXT
  , pattern GL_INT_SAMPLER_1D_ARRAY_EXT
  , pattern GL_INT_SAMPLER_1D_EXT
  , pattern GL_INT_SAMPLER_2D_ARRAY_EXT
  , pattern GL_INT_SAMPLER_2D_EXT
  , pattern GL_INT_SAMPLER_2D_RECT_EXT
  , pattern GL_INT_SAMPLER_3D_EXT
  , pattern GL_INT_SAMPLER_BUFFER_EXT
  , pattern GL_INT_SAMPLER_CUBE_EXT
  , pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT
  , pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT
  , pattern GL_SAMPLER_1D_ARRAY_EXT
  , pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT
  , pattern GL_SAMPLER_2D_ARRAY_EXT
  , pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT
  , pattern GL_SAMPLER_BUFFER_EXT
  , pattern GL_SAMPLER_CUBE_SHADOW_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT
  , pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT
  , pattern GL_UNSIGNED_INT_VEC2_EXT
  , pattern GL_UNSIGNED_INT_VEC3_EXT
  , pattern GL_UNSIGNED_INT_VEC4_EXT
  , pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT
) where

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

-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/gpu_shader4.txt GL_EXT_gpu_shader4> extension is available.

gl_EXT_gpu_shader4 :: Bool
gl_EXT_gpu_shader4 :: Bool
gl_EXT_gpu_shader4 = String -> Set String -> Bool
forall a. Ord a => a -> Set a -> Bool
member String
"GL_EXT_gpu_shader4" Set String
extensions
{-# NOINLINE gl_EXT_gpu_shader4 #-}

-- | Usage: @'glGetFragDataLocationEXT' program name@
--
-- The length of @name@ should be @COMPSIZE(name)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetFragDataLocation'.


glGetFragDataLocationEXT :: MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetFragDataLocationEXT :: forall (m :: * -> *). MonadIO m => GLuint -> Ptr GLchar -> m GLint
glGetFragDataLocationEXT = FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-> GLuint -> Ptr GLchar -> m GLint
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> Ptr GLchar -> IO GLint)
-> GLuint -> Ptr GLchar -> m GLint
ffiuintPtrcharIOint FunPtr (GLuint -> Ptr GLchar -> IO GLint)
glGetFragDataLocationEXTFunPtr

glGetFragDataLocationEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
glGetFragDataLocationEXTFunPtr :: FunPtr (GLuint -> Ptr GLchar -> IO GLint)
glGetFragDataLocationEXTFunPtr = IO (FunPtr (GLuint -> Ptr GLchar -> IO GLint))
-> FunPtr (GLuint -> Ptr GLchar -> IO GLint)
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> Ptr GLchar -> IO GLint))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetFragDataLocationEXT")

{-# NOINLINE glGetFragDataLocationEXTFunPtr #-}

-- | Usage: @'glGetUniformuivEXT' program location params@
--
-- The length of @params@ should be @COMPSIZE(program,location)@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glGetUniformuiv'.


glGetUniformuivEXT :: MonadIO m => GLuint -> GLint -> Ptr GLuint -> m ()
glGetUniformuivEXT :: forall (m :: * -> *).
MonadIO m =>
GLuint -> GLint -> Ptr GLuint -> m ()
glGetUniformuivEXT = FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-> GLuint -> GLint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
-> GLuint -> GLint -> Ptr GLuint -> m ()
ffiuintintPtruintIOV FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
glGetUniformuivEXTFunPtr

glGetUniformuivEXTFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
glGetUniformuivEXTFunPtr :: FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
glGetUniformuivEXTFunPtr = IO (FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()))
-> FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLuint -> GLint -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glGetUniformuivEXT")

{-# NOINLINE glGetUniformuivEXTFunPtr #-}

-- | Usage: @'glUniform1uiEXT' location v0@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1ui'.


glUniform1uiEXT :: MonadIO m => GLint -> GLuint -> m ()
glUniform1uiEXT :: forall (m :: * -> *). MonadIO m => GLint -> GLuint -> m ()
glUniform1uiEXT = FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLuint -> IO ()) -> GLint -> GLuint -> m ()
ffiintuintIOV FunPtr (GLint -> GLuint -> IO ())
glUniform1uiEXTFunPtr

glUniform1uiEXTFunPtr :: FunPtr (GLint -> GLuint -> IO ())
glUniform1uiEXTFunPtr :: FunPtr (GLint -> GLuint -> IO ())
glUniform1uiEXTFunPtr = IO (FunPtr (GLint -> GLuint -> IO ()))
-> FunPtr (GLint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform1uiEXT")

{-# NOINLINE glUniform1uiEXTFunPtr #-}

-- | Usage: @'glUniform1uivEXT' location count value@
--
-- The length of @value@ should be @count*1@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform1uiv'.


glUniform1uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform1uivEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLint -> Ptr GLuint -> m ()
glUniform1uivEXT = FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
ffiintsizeiPtruintIOV FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform1uivEXTFunPtr

glUniform1uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
glUniform1uivEXTFunPtr :: FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform1uivEXTFunPtr = IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
-> FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform1uivEXT")

{-# NOINLINE glUniform1uivEXTFunPtr #-}

-- | Usage: @'glUniform2uiEXT' location v0 v1@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2ui'.


glUniform2uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> m ()
glUniform2uiEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLuint -> GLuint -> m ()
glUniform2uiEXT = FunPtr (GLint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> m ()
ffiintuintuintIOV FunPtr (GLint -> GLuint -> GLuint -> IO ())
glUniform2uiEXTFunPtr

glUniform2uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
glUniform2uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> IO ())
glUniform2uiEXTFunPtr = IO (FunPtr (GLint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLuint -> GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform2uiEXT")

{-# NOINLINE glUniform2uiEXTFunPtr #-}

-- | Usage: @'glUniform2uivEXT' location count value@
--
-- The length of @value@ should be @count*2@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform2uiv'.


glUniform2uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform2uivEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLint -> Ptr GLuint -> m ()
glUniform2uivEXT = FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
ffiintsizeiPtruintIOV FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform2uivEXTFunPtr

glUniform2uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
glUniform2uivEXTFunPtr :: FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform2uivEXTFunPtr = IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
-> FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform2uivEXT")

{-# NOINLINE glUniform2uivEXTFunPtr #-}

-- | Usage: @'glUniform3uiEXT' location v0 v1 v2@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3ui'.


glUniform3uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> m ()
glUniform3uiEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLuint -> GLuint -> GLuint -> m ()
glUniform3uiEXT = FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> GLuint -> m ()
ffiintuintuintuintIOV FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform3uiEXTFunPtr

glUniform3uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform3uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform3uiEXTFunPtr = IO (FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO (FunPtr (GLint -> GLuint -> GLuint -> GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform3uiEXT")

{-# NOINLINE glUniform3uiEXTFunPtr #-}

-- | Usage: @'glUniform3uivEXT' location count value@
--
-- The length of @value@ should be @count*3@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform3uiv'.


glUniform3uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform3uivEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLint -> Ptr GLuint -> m ()
glUniform3uivEXT = FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
ffiintsizeiPtruintIOV FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform3uivEXTFunPtr

glUniform3uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
glUniform3uivEXTFunPtr :: FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform3uivEXTFunPtr = IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
-> FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform3uivEXT")

{-# NOINLINE glUniform3uivEXTFunPtr #-}

-- | Usage: @'glUniform4uiEXT' location v0 v1 v2 v3@
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4ui'.


glUniform4uiEXT :: MonadIO m => GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glUniform4uiEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
glUniform4uiEXT = FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
-> GLint -> GLuint -> GLuint -> GLuint -> GLuint -> m ()
ffiintuintuintuintuintIOV FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform4uiEXTFunPtr

glUniform4uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform4uiEXTFunPtr :: FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
glUniform4uiEXTFunPtr = IO
  (FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
-> FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String
-> IO
     (FunPtr (GLint -> GLuint -> GLuint -> GLuint -> GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform4uiEXT")

{-# NOINLINE glUniform4uiEXTFunPtr #-}

-- | Usage: @'glUniform4uivEXT' location count value@
--
-- The length of @value@ should be @count*4@.
--
-- This command is an alias for 'Graphics.GL.Internal.Shared.glUniform4uiv'.


glUniform4uivEXT :: MonadIO m => GLint -> GLsizei -> Ptr GLuint -> m ()
glUniform4uivEXT :: forall (m :: * -> *).
MonadIO m =>
GLint -> GLint -> Ptr GLuint -> m ()
glUniform4uivEXT = FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
-> GLint -> GLint -> Ptr GLuint -> m ()
ffiintsizeiPtruintIOV FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform4uivEXTFunPtr

glUniform4uivEXTFunPtr :: FunPtr (GLint -> GLsizei -> Ptr GLuint -> IO ())
glUniform4uivEXTFunPtr :: FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
glUniform4uivEXTFunPtr = IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
-> FunPtr (GLint -> GLint -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO (String -> IO (FunPtr (GLint -> GLint -> Ptr GLuint -> IO ()))
forall a. String -> IO (FunPtr a)
getProcAddress String
"glUniform4uivEXT")

{-# NOINLINE glUniform4uivEXTFunPtr #-}

pattern GL_INT_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_1D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_1D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_1D_ARRAY_EXT = 0x8DCE

pattern GL_INT_SAMPLER_1D_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_1D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_1D_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_1D_EXT = 0x8DC9

pattern GL_INT_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_2D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_2D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_2D_ARRAY_EXT = 0x8DCF

pattern GL_INT_SAMPLER_2D_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_2D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_2D_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_2D_EXT = 0x8DCA

pattern GL_INT_SAMPLER_2D_RECT_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_2D_RECT_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_2D_RECT_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_2D_RECT_EXT = 0x8DCD

pattern GL_INT_SAMPLER_3D_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_3D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_3D_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_3D_EXT = 0x8DCB

pattern GL_INT_SAMPLER_CUBE_EXT  :: (Eq a, Num a) => a

pattern $mGL_INT_SAMPLER_CUBE_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_INT_SAMPLER_CUBE_EXT :: forall a. (Eq a, Num a) => a
GL_INT_SAMPLER_CUBE_EXT = 0x8DCC

pattern GL_MAX_PROGRAM_TEXEL_OFFSET_EXT  :: (Eq a, Num a) => a

pattern $mGL_MAX_PROGRAM_TEXEL_OFFSET_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MAX_PROGRAM_TEXEL_OFFSET_EXT :: forall a. (Eq a, Num a) => a
GL_MAX_PROGRAM_TEXEL_OFFSET_EXT = 0x8905

pattern GL_MIN_PROGRAM_TEXEL_OFFSET_EXT  :: (Eq a, Num a) => a

pattern $mGL_MIN_PROGRAM_TEXEL_OFFSET_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_MIN_PROGRAM_TEXEL_OFFSET_EXT :: forall a. (Eq a, Num a) => a
GL_MIN_PROGRAM_TEXEL_OFFSET_EXT = 0x8904

pattern GL_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_SAMPLER_1D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_SAMPLER_1D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_SAMPLER_1D_ARRAY_EXT = 0x8DC0

pattern GL_SAMPLER_1D_ARRAY_SHADOW_EXT  :: (Eq a, Num a) => a

pattern $mGL_SAMPLER_1D_ARRAY_SHADOW_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_SAMPLER_1D_ARRAY_SHADOW_EXT :: forall a. (Eq a, Num a) => a
GL_SAMPLER_1D_ARRAY_SHADOW_EXT = 0x8DC3

pattern GL_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_SAMPLER_2D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_SAMPLER_2D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_SAMPLER_2D_ARRAY_EXT = 0x8DC1

pattern GL_SAMPLER_2D_ARRAY_SHADOW_EXT  :: (Eq a, Num a) => a

pattern $mGL_SAMPLER_2D_ARRAY_SHADOW_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_SAMPLER_2D_ARRAY_SHADOW_EXT :: forall a. (Eq a, Num a) => a
GL_SAMPLER_2D_ARRAY_SHADOW_EXT = 0x8DC4

pattern GL_SAMPLER_CUBE_SHADOW_EXT  :: (Eq a, Num a) => a

pattern $mGL_SAMPLER_CUBE_SHADOW_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_SAMPLER_CUBE_SHADOW_EXT :: forall a. (Eq a, Num a) => a
GL_SAMPLER_CUBE_SHADOW_EXT = 0x8DC5

pattern GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT = 0x8DD6

pattern GL_UNSIGNED_INT_SAMPLER_1D_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_1D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_1D_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_1D_EXT = 0x8DD1

pattern GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT = 0x8DD7

pattern GL_UNSIGNED_INT_SAMPLER_2D_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_2D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_2D_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_2D_EXT = 0x8DD2

pattern GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT = 0x8DD5

pattern GL_UNSIGNED_INT_SAMPLER_3D_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_3D_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_3D_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_3D_EXT = 0x8DD3

pattern GL_UNSIGNED_INT_SAMPLER_CUBE_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_SAMPLER_CUBE_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_SAMPLER_CUBE_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_SAMPLER_CUBE_EXT = 0x8DD4

pattern GL_UNSIGNED_INT_VEC2_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_VEC2_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_VEC2_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_VEC2_EXT = 0x8DC6

pattern GL_UNSIGNED_INT_VEC3_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_VEC3_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_VEC3_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_VEC3_EXT = 0x8DC7

pattern GL_UNSIGNED_INT_VEC4_EXT  :: (Eq a, Num a) => a

pattern $mGL_UNSIGNED_INT_VEC4_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_UNSIGNED_INT_VEC4_EXT :: forall a. (Eq a, Num a) => a
GL_UNSIGNED_INT_VEC4_EXT = 0x8DC8

pattern GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT  :: (Eq a, Num a) => a

pattern $mGL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT :: forall {r} {a}.
(Eq a, Num a) =>
a -> ((# #) -> r) -> ((# #) -> r) -> r
$bGL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT :: forall a. (Eq a, Num a) => a
GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT = 0x88FD